diff --git a/wrap/gui/trackmode.cpp b/wrap/gui/trackmode.cpp index df87ef9c..f35fe5fe 100644 --- a/wrap/gui/trackmode.cpp +++ b/wrap/gui/trackmode.cpp @@ -110,7 +110,7 @@ Adding copyright. ****************************************************************************/ #include - +#include #include #include #include @@ -367,8 +367,11 @@ Point3f PathMode::SetStartNear(Point3f point) p0=points[i-1]; p1=points[i]; } - Point3f segment_point=ClosestPoint(Segment3f(p0,p1),point); - float distance=Distance(segment_point,point); + //Point3f segment_point=ClosestPoint(Segment3f(p0,p1),point); + Point3f segment_point; + float distance; + vcg::SegmentPointDistance(Segment3f(p0,p1),point,segment_point,distance); + // float distance=Distance(segment_point,point); if(distance(active_segment,closest_point,hit_point,dist); return verse * ((hit_point-current_point).Norm() / path_length); } @@ -676,11 +681,16 @@ Point3f AreaMode::Move(Point3f start,Point3f end) for (i = 0, j = np-1; i < np; j = i++) { Segment3f side(points[i],points[j]); Point3f pseg,psid; - std::pair res=SegmentSegmentDistance(segment,side,pseg,psid); + //std::pair res=SegmentSegmentDistance(segment,side,pseg,psid); + std::pair res; + vcg::SegmentSegmentDistance(segment,side,res.first,res.second,pseg,psid); if(res.first < EPSILON && ! res.second){ float dist= Distance(pt,pseg); if(dist < EPSILON){ - Point3f pn=ClosestPoint(side,end); + //Point3f pn=ClosestPoint(side,end); + Point3f pn; + float dist; + vcg::SegmentPointDistance(side,end,pn,dist); if(!p_on_side || (Distance(pn,end)(side,candidate,side_point,distance); if( distance < nearest_distance ){ nearest_point=side_point; nearest_distance=distance;