Providing prepared analysis from ShapeFix_Face to wire.
//=================================================================================================
+void ShapeAnalysis_Wire::SetFace(const TopoDS_Face& theFace,
+ const Handle(ShapeAnalysis_Surface)& theSurfaceAnalysis)
+{
+ myFace = theFace;
+ mySurf = theSurfaceAnalysis;
+}
+
+//=================================================================================================
+
+void ShapeAnalysis_Wire::SetSurface(const Handle(ShapeAnalysis_Surface)& theSurfaceAnalysis)
+{
+ mySurf = theSurfaceAnalysis;
+}
+
+//=================================================================================================
+
void ShapeAnalysis_Wire::SetSurface(const Handle(Geom_Surface)& surface)
{
SetSurface(surface, TopLoc_Location());
//! Loads the face the wire lies on
Standard_EXPORT void SetFace(const TopoDS_Face& face);
+ //! Loads the face the wire lies on and surface analysis object
+ Standard_EXPORT void SetFace(const TopoDS_Face& theFace,
+ const Handle(ShapeAnalysis_Surface)& theSurfaceAnalysis);
+
+ //! Loads the surface analysis object
+ Standard_EXPORT void SetSurface(const Handle(ShapeAnalysis_Surface)& theSurfaceAnalysis);
+
//! Loads the surface the wire lies on
Standard_EXPORT void SetSurface(const Handle(Geom_Surface)& surface);
Standard_Real aSavPreci = Precision();
if (NeedFix(myFixWireMode))
{
- theAdvFixWire->SetFace(myFace);
+ theAdvFixWire->SetFace(myFace, mySurf);
Standard_Integer usFixLackingMode = theAdvFixWire->FixLackingMode();
// Standard_Integer usFixNotchedEdgesMode = theAdvFixWire->FixNotchedEdgesMode(); // CR0024983
// perform second part of fixes on wires
if (NeedFix(myFixWireMode))
{
- theAdvFixWire->SetFace(myFace);
+ theAdvFixWire->SetFace(myFace, mySurf);
Standard_Integer usFixSmallMode = theAdvFixWire->FixSmallMode();
Standard_Integer usFixConnectedMode = theAdvFixWire->FixConnectedMode();
bnd->Add(sbwd, k + 1);
ws.Remove(i--);
nb--;
- myFixWire->SetFace(myFace);
+ myFixWire->SetFace(myFace, mySurf);
myFixWire->Load(bnd);
myFixWire->FixConnected();
myFixWire->FixDegenerated();
// sort original wires
Handle(ShapeFix_Wire) sfw = new ShapeFix_Wire;
- sfw->SetFace(myFace);
+ sfw->SetFace(myFace, mySurf);
sfw->SetPrecision(Precision());
Handle(ShapeExtend_WireData) wd1 = new ShapeExtend_WireData(w1);
Handle(ShapeExtend_WireData) wd2 = new ShapeExtend_WireData(w2);
#include <ShapeFix_Root.hxx>
#include <TopoDS_Wire.hxx>
#include <ShapeExtend_Status.hxx>
+#include <ShapeAnalysis_Surface.hxx>
+
class ShapeFix_Edge;
class ShapeAnalysis_Wire;
class TopoDS_Wire;
//! Set working face for the wire
void SetFace(const TopoDS_Face& face);
+ //! Set working face for the wire and surface analysis object
+ void SetFace(const TopoDS_Face& theFace, const Handle(ShapeAnalysis_Surface)& theSurfaceAnalysis);
+
+ //! Set surface analysis for the wire
+ void SetSurface(const Handle(ShapeAnalysis_Surface)& theSurfaceAnalysis);
+
//! Set surface for the wire
void SetSurface(const Handle(Geom_Surface)& surf);
myAnalyzer->SetSurface(surf);
}
+//=================================================================================================
+
+inline void ShapeFix_Wire::SetFace(const TopoDS_Face& theFace,
+ const Handle(ShapeAnalysis_Surface)& theSurfaceAnalysis)
+{
+ myAnalyzer->SetFace(theFace, theSurfaceAnalysis);
+}
+
+//=================================================================================================
+
+inline void ShapeFix_Wire::SetSurface(const Handle(ShapeAnalysis_Surface)& theSurfaceAnalysis)
+{
+ myAnalyzer->SetSurface(theSurfaceAnalysis);
+}
+
//=======================================================================
// function : SetSurface
// purpose :