mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-07 18:30:55 +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;
|
BRep_Builder BB;
|
||||||
if (!aV1.IsNull()) {
|
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()) {
|
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=E;
|
||||||
aNewEdge.Orientation(aE.Orientation());
|
aNewEdge.Orientation(aE.Orientation());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user