mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-01 09:23:03 -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::
|
CollisionPlane *EggLoader::
|
||||||
create_collision_plane(EggPolygon *egg_poly, EggGroup *parent_group) {
|
create_collision_plane(EggPolygon *egg_poly, EggGroup *parent_group) {
|
||||||
if (!egg_poly->cleanup()) {
|
if (!egg_poly->cleanup()) {
|
||||||
egg2pg_cat.error()
|
egg2pg_cat.info()
|
||||||
<< "Degenerate collision plane in " << parent_group->get_name()
|
<< "Ignoring degenerate collision plane in " << parent_group->get_name()
|
||||||
<< "\n";
|
<< "\n";
|
||||||
_error = true;
|
|
||||||
return NULL;
|
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();
|
LMatrix4d mat = egg_poly->get_vertex_to_node();
|
||||||
|
|
||||||
pvector<Vertexf> vertices;
|
pvector<Vertexf> vertices;
|
||||||
@ -2620,18 +2626,18 @@ create_collision_polygons(CollisionNode *cnode, EggPolygon *egg_poly,
|
|||||||
PT(EggGroup) group = new EggGroup;
|
PT(EggGroup) group = new EggGroup;
|
||||||
|
|
||||||
if (!egg_poly->triangulate_into(group, false)) {
|
if (!egg_poly->triangulate_into(group, false)) {
|
||||||
egg2pg_cat.error()
|
egg2pg_cat.info()
|
||||||
<< "Degenerate collision polygon in " << parent_group->get_name()
|
<< "Ignoring degenerate collision polygon in "
|
||||||
|
<< parent_group->get_name()
|
||||||
<< "\n";
|
<< "\n";
|
||||||
_error = true;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (group->size() != 1) {
|
if (group->size() != 1) {
|
||||||
egg2pg_cat.error()
|
egg2pg_cat.info()
|
||||||
<< "Concave collision polygon in " << parent_group->get_name()
|
<< "Triangulating concave or non-planar collision polygon in "
|
||||||
|
<< parent_group->get_name()
|
||||||
<< "\n";
|
<< "\n";
|
||||||
_error = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EggGroup::iterator ci;
|
EggGroup::iterator ci;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user