mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-06-30 12:14:08 +03:00
OCC22576 ShapeFix_Edge::SameParameter() now retains original 3D interval
This commit is contained in:
parent
f338bed346
commit
31c3b8f09c
@ -751,6 +751,13 @@ Standard_Boolean ShapeFix_Edge::FixSameParameter(const TopoDS_Edge& edge,
|
|||||||
//create copyedge as copy of edge with the same vertices and copy of pcurves on the same surface(s)
|
//create copyedge as copy of edge with the same vertices and copy of pcurves on the same surface(s)
|
||||||
copyedge = ShapeBuild_Edge().Copy ( edge, Standard_False );
|
copyedge = ShapeBuild_Edge().Copy ( edge, Standard_False );
|
||||||
B.SameParameter ( copyedge, Standard_False );
|
B.SameParameter ( copyedge, Standard_False );
|
||||||
|
// ShapeBuild_Edge::Copy() may change 3D curve range (if it's outside of its period).
|
||||||
|
// In this case pcurves in BRepLib::SameParameter() will be changed as well
|
||||||
|
// and later ShapeBuild_Edge::CopyPCurves() will copy pcurves keeping original range.
|
||||||
|
// To prevent this discrepancy we enforce original 3D range.
|
||||||
|
Standard_Real aF, aL;
|
||||||
|
BRep_Tool::Range (edge, aF, aL);
|
||||||
|
B.Range (copyedge, aF, aL, Standard_True); // only 3D
|
||||||
BRepLib::SameParameter ( copyedge, ( tolerance >= Precision::Confusion() ?
|
BRepLib::SameParameter ( copyedge, ( tolerance >= Precision::Confusion() ?
|
||||||
tolerance : tol ) );
|
tolerance : tol ) );
|
||||||
SP = BRep_Tool::SameParameter ( copyedge );
|
SP = BRep_Tool::SameParameter ( copyedge );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user