Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef ShHealOper_FillHoles_HeaderFile
00028 #define ShHealOper_FillHoles_HeaderFile
00029
00030 #include <MMgt_TShared.hxx>
00031 #include <TopoDS_Shape.hxx>
00032 #include <TopTools_SequenceOfShape.hxx>
00033 #include <TopoDS_Wire.hxx>
00034 #include <TColGeom2d_HArray1OfCurve.hxx>
00035 #include <Geom_Surface.hxx>
00036 #include <TColStd_HArray1OfInteger.hxx>
00037 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
00038 #include <ShHealOper_Tool.hxx>
00039 #include <TopTools_HSequenceOfShape.hxx>
00040 #include <TopTools_IndexedMapOfShape.hxx>
00041
00043
00044
00045 class ShHealOper_FillHoles : public ShHealOper_Tool
00046 {
00047 public:
00048
00049
00050 Standard_EXPORT ShHealOper_FillHoles ();
00051
00052
00053 Standard_EXPORT ShHealOper_FillHoles (const TopoDS_Shape& theShape);
00054
00055 Standard_EXPORT virtual void Init(const TopoDS_Shape& theShape);
00056
00057
00058 Standard_EXPORT void InitParameters(Standard_Integer theDegree = 3,
00059 Standard_Integer theNbPtsOnCur =5,
00060 Standard_Integer theNbIter = 12,
00061 Standard_Real theTol3d = 0.0001,
00062 Standard_Real theTol2d = 1.e-5,
00063 Standard_Real theTolAng = 0.01,
00064 Standard_Real theTolCrv = 0.01,
00065 Standard_Integer theMaxDeg = 8,
00066 Standard_Integer theMaxSeg =9);
00067
00068
00069 Standard_EXPORT Standard_Boolean Fill();
00070
00071
00072 Standard_EXPORT Standard_Boolean Fill(const TopTools_SequenceOfShape& theFillShapes);
00073
00074
00075
00076 private:
00077
00078
00079 Standard_Boolean prepareWires(const TopTools_SequenceOfShape& theFillShapes,
00080 Handle(TopTools_HSequenceOfShape)& theSeqWires);
00081
00082 Handle(Geom_Surface) buildSurface(const TopoDS_Wire& theWire,
00083 Handle(TColGeom2d_HArray1OfCurve)& theCurves2d,
00084 Handle(TColStd_HArray1OfInteger)& theOrders,
00085 Handle(TColStd_HArray1OfInteger)& theSenses);
00086
00087 Standard_Boolean addFace(const Handle(Geom_Surface)& theSurf,
00088 const TopoDS_Wire& theWire,
00089 const Handle(TColGeom2d_HArray1OfCurve)& theCurves2d,
00090 const Handle(TColStd_HArray1OfInteger)& theOrders,
00091 const Handle(TColStd_HArray1OfInteger)& theSenses);
00092
00093 void getResShape(const TopoDS_Shape& theAddShape,
00094 const TopTools_IndexedMapOfShape& aMapParent,
00095 const Standard_Boolean theHasShell);
00096 private:
00097
00098
00099 TopTools_IndexedDataMapOfShapeListOfShape myEdgeShells;
00100
00101 TopTools_IndexedDataMapOfShapeListOfShape myEdgeComps;
00102 TopTools_IndexedDataMapOfShapeListOfShape myEdgeFaces;
00103 Standard_Integer myNbPtsOnCur;
00104 Standard_Integer myNbIter;
00105 Standard_Integer myDegree;
00106 Standard_Real myTol2d;
00107 Standard_Real myTol3d;
00108 Standard_Real myTolAng;
00109 Standard_Real myTolCrv;
00110 Standard_Integer myMaxDeg;
00111 Standard_Integer myMaxSeg;
00112 public:
00113
00114
00115 };
00116
00117
00118
00119
00120
00121 #endif