mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-05 18:16:23 +03:00
0029765: BOPTools_AlgoTools::MakeSplitEdge Creates Illegal Edge
Method MakeSplitEdge checks arguments order. This makes the method more generic. Taking vertex orientation into account.
This commit is contained in:
parent
e52ba46e3b
commit
012264339e
@ -162,12 +162,29 @@ void BOPTools_AlgoTools::MakeSplitEdge(const TopoDS_Edge& aE,
|
||||
//
|
||||
BRep_Builder BB;
|
||||
if (!aV1.IsNull()) {
|
||||
BB.Add (E, aV1);
|
||||
if (aP1 < aP2) {
|
||||
BB.Add (E, TopoDS::Vertex(aV1.Oriented(TopAbs_FORWARD)));
|
||||
}
|
||||
else {
|
||||
BB.Add (E, TopoDS::Vertex(aV1.Oriented(TopAbs_REVERSED)));
|
||||
}
|
||||
}
|
||||
if (!aV2.IsNull()) {
|
||||
BB.Add (E, aV2);
|
||||
if (aP1 < aP2) {
|
||||
BB.Add (E, TopoDS::Vertex(aV2.Oriented(TopAbs_REVERSED)));
|
||||
}
|
||||
else {
|
||||
BB.Add (E, TopoDS::Vertex(aV2.Oriented(TopAbs_FORWARD)));
|
||||
}
|
||||
}
|
||||
BB.Range(E, aP1, aP2);
|
||||
|
||||
if (aP1 < aP2) {
|
||||
BB.Range(E, aP1, aP2);
|
||||
}
|
||||
else {
|
||||
BB.Range(E, aP2, aP1);
|
||||
}
|
||||
|
||||
aNewEdge=E;
|
||||
aNewEdge.Orientation(aE.Orientation());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user