Handle(Geom2d_Curve) BRep_Tool::CurveOnSurface(const TopoDS_Edge& E,
const TopoDS_Face& F,
Standard_Real& First,
- Standard_Real& Last)
+ Standard_Real& Last,
+ Standard_Boolean* theIsStored)
{
TopLoc_Location l;
const Handle(Geom_Surface)& S = BRep_Tool::Surface(F,l);
TopoDS_Edge aLocalEdge = E;
if (F.Orientation() == TopAbs_REVERSED) {
aLocalEdge.Reverse();
-// return CurveOnSurface(E,S,l,First,Last);
}
-// return CurveOnSurface(TopoDS::Edge(E.Reversed()),S,l,First,Last);
-// else
-// return CurveOnSurface(E,S,l,First,Last);
- return CurveOnSurface(aLocalEdge,S,l,First,Last);
+ return CurveOnSurface(aLocalEdge, S, l, First, Last, theIsStored);
}
//=======================================================================
const Handle(Geom_Surface)& S,
const TopLoc_Location& L,
Standard_Real& First,
- Standard_Real& Last)
+ Standard_Real& Last,
+ Standard_Boolean* theIsStored)
{
TopLoc_Location loc = L.Predivided(E.Location());
Standard_Boolean Eisreversed = (E.Orientation() == TopAbs_REVERSED);
+ if (theIsStored)
+ *theIsStored = Standard_True;
// find the representation
const BRep_TEdge* TE = static_cast<const BRep_TEdge*>(E.TShape().get());
}
// Curve is not found. Try projection on plane
+ if (theIsStored)
+ *theIsStored = Standard_False;
return CurveOnPlane(E, S, L, First, Last);
}