|
|
@ -758,7 +758,6 @@ void Subdiv2D::getTriangleList(std::vector<Vec6f>& triangleList) const |
|
|
|
triangleList.clear(); |
|
|
|
triangleList.clear(); |
|
|
|
int i, total = (int)(qedges.size()*4); |
|
|
|
int i, total = (int)(qedges.size()*4); |
|
|
|
std::vector<bool> edgemask(total, false); |
|
|
|
std::vector<bool> edgemask(total, false); |
|
|
|
const bool filterPoints = true; |
|
|
|
|
|
|
|
Rect2f rect(topLeft.x, topLeft.y, bottomRight.x - topLeft.x, bottomRight.y - topLeft.y); |
|
|
|
Rect2f rect(topLeft.x, topLeft.y, bottomRight.x - topLeft.x, bottomRight.y - topLeft.y); |
|
|
|
|
|
|
|
|
|
|
|
for( i = 4; i < total; i += 2 ) |
|
|
|
for( i = 4; i < total; i += 2 ) |
|
|
@ -768,15 +767,15 @@ void Subdiv2D::getTriangleList(std::vector<Vec6f>& triangleList) const |
|
|
|
Point2f a, b, c; |
|
|
|
Point2f a, b, c; |
|
|
|
int edge_a = i; |
|
|
|
int edge_a = i; |
|
|
|
edgeOrg(edge_a, &a); |
|
|
|
edgeOrg(edge_a, &a); |
|
|
|
if (filterPoints && !rect.contains(a)) |
|
|
|
if ( !rect.contains(a) ) |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
int edge_b = getEdge(edge_a, NEXT_AROUND_LEFT); |
|
|
|
int edge_b = getEdge(edge_a, NEXT_AROUND_LEFT); |
|
|
|
edgeOrg(edge_b, &b); |
|
|
|
edgeOrg(edge_b, &b); |
|
|
|
if (filterPoints && !rect.contains(b)) |
|
|
|
if ( !rect.contains(b) ) |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
int edge_c = getEdge(edge_b, NEXT_AROUND_LEFT); |
|
|
|
int edge_c = getEdge(edge_b, NEXT_AROUND_LEFT); |
|
|
|
edgeOrg(edge_c, &c); |
|
|
|
edgeOrg(edge_c, &c); |
|
|
|
if (filterPoints && !rect.contains(c)) |
|
|
|
if ( !rect.contains(c) ) |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
edgemask[edge_a] = true; |
|
|
|
edgemask[edge_a] = true; |
|
|
|
edgemask[edge_b] = true; |
|
|
|
edgemask[edge_b] = true; |
|
|
|