1
0
Fork 0

Minor style fixup of calc_points_inside().

This commit is contained in:
Ralf Gerlich 2008-08-06 17:16:24 +02:00
parent 4d1fafa2b6
commit e6d15f9a83

View file

@ -640,20 +640,6 @@ static void calc_point_inside( TGContourNode *node, TGPolygon &p ) {
if ( contour_num < 0 )
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;
collect_contour_points( node, p, allpoints );
@ -670,24 +656,21 @@ static void calc_point_inside( TGContourNode *node, TGPolygon &p ) {
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_it=allpoints.begin();
double yline; // the y-location of the intersection line
while ((++point_it) != allpoints.end()) {
for (++point_it;point_it!=allpoints.end();++point_it) {
double diff=point_it->y()-(point_it-1)->y();
// cout << "calc_point_inside() diff=" << diff << endl;
if (diff<=8.0*SG_EPSILON) {
continue;
}
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;
double yline=point_it->y()-diff/2.0; // the y-location of the intersection line
vector < double > xcuts;