Tue, 10/22/2002 - 09:39
Forums:
Hi,
I would like to reverse direction of edge.
I was tring below code.
But, method 1, 2, 3 didn't work.
How can i do change direction?
gp_Pnt pt1(0,0,0), pt2(100,100,100);
BRepBuilderAPI_MakeEdge edge(pt1, pt2);
double fp, ep;
Handle(Geom_Curve) curve;
curve = BRep_Tool::Curve(edge, fp, ep);
curve->D0(fp, pt1);
curve->D0(ep, pt2);
TopoDS_Edge e = TopoDS::Edge(edge.Shape());
/*
1. method 1:
if(e.Orientation() ==TopAbs_FORWARD)
e.Orientation(TopAbs_REVERSED);
else
e.Orientation(TopAbs_FORWARD);
2. method 2:
e.Reversed();
3. method 3:
e.Complemented();
*/
// Hope : pt1[100,100,100] pt0[0,0,0]
curve = BRep_Tool::Curve(e, fp, ep);
curve->D0(fp, pt1);
curve->D0(ep, pt2);
Tue, 10/22/2002 - 10:34
Try in method 2
e.Reverse()
Same can be done on a Geom_Curve also.
good luck
- Prasad
Tue, 10/22/2002 - 10:39
Thanks..
But i want to modify on TopoDS Level.
just changing direction of edge...
Wed, 09/03/2014 - 20:12
None of the suggested solutions worked for me.
After all this was perfect:
double first, last;
const Handle_Geom_Curve & curve = BRep_Tool::Curve(edge, first, last);
first = curve->ReversedParameter(first);
last = curve->ReversedParameter(last);
TopoDS_Edge edgeReversed = BRepBuilderAPI_MakeEdge(curve->Reversed(), last, first);