mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 00:32:57 -04:00
parent
343c808fc4
commit
66b338c112
@ -2185,6 +2185,8 @@ triangulate_single_polygon(int nvert, int posmax, int side) {
|
|||||||
endv = mchain[posmax].vnum;
|
endv = mchain[posmax].vnum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int num_triangles = 0;
|
||||||
|
|
||||||
while ((v != endv) || (ri > 1))
|
while ((v != endv) || (ri > 1))
|
||||||
{
|
{
|
||||||
// cerr << " v = " << v << " ri = " << ri << " rc = " << rc.size() << "
|
// cerr << " v = " << v << " ri = " << ri << " rc = " << rc.size() << "
|
||||||
@ -2199,8 +2201,13 @@ triangulate_single_polygon(int nvert, int posmax, int side) {
|
|||||||
vert[rc[ri]].pt);
|
vert[rc[ri]].pt);
|
||||||
if ( crossResult >= 0 ) /* could be convex corner or straight */
|
if ( crossResult >= 0 ) /* could be convex corner or straight */
|
||||||
{
|
{
|
||||||
if ( crossResult > 0) /* convex corner: cut it off */
|
if (crossResult > 0) { /* convex corner: cut it off */
|
||||||
_result.push_back(Triangle(this, rc[ri - 1], rc[ri], v));
|
_result.push_back(Triangle(this, rc[ri - 1], rc[ri], v));
|
||||||
|
if (++num_triangles >= nvert - 2) {
|
||||||
|
// We can't generate more than this number of triangles.
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
/* else : perfectly straight, will be abandoned anyway */
|
/* else : perfectly straight, will be abandoned anyway */
|
||||||
ri--;
|
ri--;
|
||||||
rc.pop_back();
|
rc.pop_back();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user