+ TopoDS_Edge anEdge = TopoDS::Edge( anEdges.First() );
+ Handle(Geom_Curve) aCurve = BRep_Tool::Curve( anEdge, aStart, anEnd );
+
+ if( theEqDistance > 0 )
+ {
+ GeomAdaptor_Curve anAdaptorCurve( aCurve );
+ double aLength = GCPnts_AbscissaPoint::Length( anAdaptorCurve );
+ int aNbPoints = ceil( aLength / theEqDistance );
+ GCPnts_QuasiUniformAbscissa aDist( anAdaptorCurve, aNbPoints );
+ if( aDist.IsDone() )
+ {
+ aNbPoints = aDist.NbPoints();
+ for( int i=1; i<=aNbPoints; i++ )
+ {
+ double p = aDist.Parameter( i );
+ gp_Pnt aPnt;
+ aCurve->D0( p, aPnt );
+ aPoints.Append( aPnt.XYZ() );
+ }
+ return aPoints;
+ }
+ }
+