Revert "Minor style fixup of calc_points_inside()."
This reverts commit 28c2bb1971894be175a51232e0502882683fc3e8.
This commit is contained in:
parent
fe3f38c662
commit
aa03c7c2f5
1 changed files with 25 additions and 8 deletions
|
@ -626,6 +626,20 @@ static void calc_point_inside( TGContourNode *node, TGPolygon &p ) {
|
||||||
|
|
||||||
if ( contour_num < 0 )
|
if ( contour_num < 0 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Find a line intersecting the contour and intersect it with the segments
|
||||||
|
* of our children. Sort the intersection points along the line. They then
|
||||||
|
* partition the line in IN/OUT parts. Find the longest segment and take
|
||||||
|
* its midpoint as point inside the contour.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Try to find a line on which none of the contour points lie. For that,
|
||||||
|
* sort all contour points (also those of our direct children) by
|
||||||
|
* y-coordinate, find the two with the largest distance and take their
|
||||||
|
* center y-coordinate.
|
||||||
|
*/
|
||||||
point_list allpoints;
|
point_list allpoints;
|
||||||
|
|
||||||
collect_contour_points( node, p, allpoints );
|
collect_contour_points( node, p, allpoints );
|
||||||
|
@ -642,21 +656,24 @@ static void calc_point_inside( TGContourNode *node, TGPolygon &p ) {
|
||||||
|
|
||||||
sort(allpoints.begin(), allpoints.end(), Point3DOrdering(PY));
|
sort(allpoints.begin(), allpoints.end(), Point3DOrdering(PY));
|
||||||
|
|
||||||
// cout << "calc_point_inside() " << allpoints.size() << " points ";
|
|
||||||
// copy(allpoints.begin(), allpoints.end(), ostream_iterator<Point3D>(cout, " "));
|
|
||||||
// cout << endl;
|
|
||||||
|
|
||||||
point_list::iterator point_it;
|
point_list::iterator point_it;
|
||||||
|
|
||||||
point_it=allpoints.begin();
|
point_it=allpoints.begin();
|
||||||
|
|
||||||
for (++point_it;point_it!=allpoints.end();++point_it) {
|
double yline; // the y-location of the intersection line
|
||||||
|
|
||||||
|
while ((++point_it) != allpoints.end()) {
|
||||||
double diff=point_it->y()-(point_it-1)->y();
|
double diff=point_it->y()-(point_it-1)->y();
|
||||||
// cout << "calc_point_inside() diff=" << diff << endl;
|
|
||||||
if (diff<=8.0*SG_EPSILON) {
|
if (diff<=8.0*SG_EPSILON) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
double yline=point_it->y()-diff/2.0; // the y-location of the intersection line
|
yline=point_it->y()-diff/2.0;
|
||||||
|
|
||||||
|
// cout << "calc_point_inside() " << allpoints.size() << " points ";
|
||||||
|
// copy(allpoints.begin(), allpoints.end(), ostream_iterator<Point3D>(cout, " "));
|
||||||
|
// cout << endl;
|
||||||
|
|
||||||
|
// cout << "calc_point_inside() maxdiff=" << maxdiff << " yline=" << yline << endl;
|
||||||
|
|
||||||
vector < double > xcuts;
|
vector < double > xcuts;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue