mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 08:44:19 -04:00
automatically triangulate non-planar collision polygons
This commit is contained in:
parent
a25a78ebbc
commit
1ed3266d9e
@ -2567,13 +2567,19 @@ find_collision_geometry(EggGroup *egg_group) {
|
||||
CollisionPlane *EggLoader::
|
||||
create_collision_plane(EggPolygon *egg_poly, EggGroup *parent_group) {
|
||||
if (!egg_poly->cleanup()) {
|
||||
egg2pg_cat.error()
|
||||
<< "Degenerate collision plane in " << parent_group->get_name()
|
||||
egg2pg_cat.info()
|
||||
<< "Ignoring degenerate collision plane in " << parent_group->get_name()
|
||||
<< "\n";
|
||||
_error = true;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (!egg_poly->is_planar()) {
|
||||
egg2pg_cat.warning()
|
||||
<< "Non-planar polygon defining collision plane in "
|
||||
<< parent_group->get_name()
|
||||
<< "\n";
|
||||
}
|
||||
|
||||
LMatrix4d mat = egg_poly->get_vertex_to_node();
|
||||
|
||||
pvector<Vertexf> vertices;
|
||||
@ -2620,18 +2626,18 @@ create_collision_polygons(CollisionNode *cnode, EggPolygon *egg_poly,
|
||||
PT(EggGroup) group = new EggGroup;
|
||||
|
||||
if (!egg_poly->triangulate_into(group, false)) {
|
||||
egg2pg_cat.error()
|
||||
<< "Degenerate collision polygon in " << parent_group->get_name()
|
||||
egg2pg_cat.info()
|
||||
<< "Ignoring degenerate collision polygon in "
|
||||
<< parent_group->get_name()
|
||||
<< "\n";
|
||||
_error = true;
|
||||
return;
|
||||
}
|
||||
|
||||
if (group->size() != 1) {
|
||||
egg2pg_cat.error()
|
||||
<< "Concave collision polygon in " << parent_group->get_name()
|
||||
egg2pg_cat.info()
|
||||
<< "Triangulating concave or non-planar collision polygon in "
|
||||
<< parent_group->get_name()
|
||||
<< "\n";
|
||||
_error = true;
|
||||
}
|
||||
|
||||
EggGroup::iterator ci;
|
||||
|
Loading…
x
Reference in New Issue
Block a user