Archived issue #0024652
It is necessary to always store p-curves on planes
Description
The function :
Handle(Geom2d_Curve) BRep_Tool::CurveOnSurface(const TopoDS_Edge& E,
const Handle(Geom_Surface)& S,
const TopLoc_Location& L,
Standard_Real& First,
Standard_Real& Last)
in cases when S is a Plane make P-curve every time the function is invoked.
So for the Planes the P-curve is made on the fly.
For large shapes it takes a lot of time, some preliminary tests for shapes containing large amount of planar faces, show that storing p-curves on plane can help inprove perfomance ~ 2 time for assembly part of BO.
Handle(Geom2d_Curve) BRep_Tool::CurveOnSurface(const TopoDS_Edge& E,
const Handle(Geom_Surface)& S,
const TopLoc_Location& L,
Standard_Real& First,
Standard_Real& Last)
in cases when S is a Plane make P-curve every time the function is invoked.
So for the Planes the P-curve is made on the fly.
For large shapes it takes a lot of time, some preliminary tests for shapes containing large amount of planar faces, show that storing p-curves on plane can help inprove perfomance ~ 2 time for assembly part of BO.
Public activity
1 archived note
Participants are labeled by their role within this record.
During fixing this issue, it is needed to avoid changing the behavior of the method BRep_Tool::CurveOnSurface. This method should work as it is for compatibility with old shapes (that do not store pcurves on planes).
What it is needed to do:
1. Provide a new method (probably in one of ShapeFix or BRepLib packages) that will process the shape, build and store absent pcurves on planes. This method will allow restoring pcurves in old shapes when necessary. A draw command must be created implementing this method.
2. Force all OCC algorithms that can create a face to store pcurves.
What it is needed to do:
1. Provide a new method (probably in one of ShapeFix or BRepLib packages) that will process the shape, build and store absent pcurves on planes. This method will allow restoring pcurves in old shapes when necessary. A draw command must be created implementing this method.
2. Force all OCC algorithms that can create a face to store pcurves.
Related records