// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _BOP_ShellSolid_HeaderFile #define _BOP_ShellSolid_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _TopoDS_Face_HeaderFile #include #endif #ifndef _TopTools_ListOfShape_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _BOP_Builder_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _TopAbs_ShapeEnum_HeaderFile #include #endif #ifndef _BOP_Operation_HeaderFile #include #endif #ifndef _TopAbs_Orientation_HeaderFile #include #endif #ifndef _Handle_BOP_HistoryCollector_HeaderFile #include #endif class BOPTools_DSFiller; class BOP_WireEdgeSet; class TopTools_IndexedMapOfShape; class TopTools_IndexedDataMapOfShapeListOfShape; class TColStd_IndexedMapOfInteger; class TopoDS_Shape; class TopoDS_Edge; class TopoDS_Face; class TopoDS_Shell; class TopTools_ListOfShape; class TopTools_DataMapOfShapeInteger; class BOP_HistoryCollector; //! Performs Boolean Operations (BO)
//! Common,Cut,Fuse for arguments of
//! shell/solid type
class BOP_ShellSolid : public BOP_Builder { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! Empty constructor;
Standard_EXPORT BOP_ShellSolid(); //! see base classes, please
Standard_EXPORT virtual void Do() ; //! see base classes, please
Standard_EXPORT virtual void DoWithFiller(const BOPTools_DSFiller& aDSF) ; //! Destructor
Standard_EXPORT virtual void Destroy() ; Standard_EXPORT virtual ~BOP_ShellSolid(){Destroy();} //! see base classes, please
Standard_EXPORT virtual void BuildResult() ; //! see base classes, please
Standard_EXPORT virtual void DoNewFaces() ; //! Provides some preparing steps of algorithm
//! 1. Compute the 3D-States
//! 2. Compute P-Curves for section- and split- edges
//! 3. Treat degenerated edges
//! 4 Detect Same Domain faces
Standard_EXPORT virtual void Prepare() ; //! Check the types of arguments.
//! Returns FALSE if types of arguments
//! are non-valid to be treated by the
//! agorithm
Standard_EXPORT static Standard_Boolean CheckArgTypes(const TopAbs_ShapeEnum theType1,const TopAbs_ShapeEnum theType2,const BOP_Operation theOperation) ; //! Check the types of arguments.
//! Returns FALSE if types of arguments
//! are non-valid to be treated by the
//! agorithm
Standard_EXPORT Standard_Boolean CheckArgTypes() const; Standard_EXPORT Standard_Boolean SplitFace(const Standard_Integer theFaceIndex,TopTools_DataMapOfShapeInteger& theMapOfEdgeIndex,TopTools_ListOfShape& theListOfFace) const; Standard_EXPORT virtual void SetHistoryCollector(const Handle(BOP_HistoryCollector)& theHistory) ; protected: //! The algo to find SameDomain Faces
//! among interferred ones
Standard_EXPORT void DetectSDFaces() ; Standard_EXPORT void AddSplitPartsINOUT(const Standard_Integer nF1,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddSectionPartsSh(const Standard_Integer nF1,const Standard_Integer iFF,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddSplitPartsONSh(const Standard_Integer nF1,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddPartsEFSh(const Standard_Integer nF1,const Standard_Integer iFF,TopTools_IndexedMapOfShape& anEMap,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddINON2DPartsSh(const Standard_Integer nF1,const Standard_Integer iFF,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddINON2DPartsSh(const Standard_Integer nF1,const Standard_Integer iFF,BOP_WireEdgeSet& aWES,TopTools_IndexedMapOfShape& anEMap) ; Standard_EXPORT void AddPartsEFNonSDSh(const Standard_Integer nF1,const Standard_Integer iFF,TopTools_IndexedMapOfShape& anEMap,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddPartsEENonSDSh(const Standard_Integer nF1,const Standard_Integer iFF,TopTools_IndexedMapOfShape& anEMap,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddSectionPartsSo(const Standard_Integer nF1,const Standard_Integer iFF,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddSplitPartsON3DSo(const Standard_Integer nF1,const Standard_Integer iFF,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddSplitPartsONSo(const Standard_Integer nF1,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFObj,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFTool,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddPartsEFSo(const Standard_Integer nF1,const Standard_Integer iFF,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFObj,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFTool,TopTools_IndexedMapOfShape& anEMap,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddINON2DPartsSo(const Standard_Integer iFF,const Standard_Integer nF1,const Standard_Integer nF2,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddPartsEFSDSo(const Standard_Integer nF1,const Standard_Integer iFF,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFObj,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFTool,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddPartsEFNonSDSo(const Standard_Integer nF1,const Standard_Integer iFF,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFObj,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFTool,const TColStd_IndexedMapOfInteger& aFFInMap,TopTools_IndexedMapOfShape& anEMap,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddPartsEENonSDSo(const Standard_Integer nF1,const Standard_Integer iFF,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFObj,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFTool,const TColStd_IndexedMapOfInteger& aFFInMap,TopTools_IndexedMapOfShape& anEMap,BOP_WireEdgeSet& aWES) ; Standard_EXPORT void AddPartsEESDSo(const Standard_Integer nF1,const Standard_Integer iFF,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFObj,const TopTools_IndexedDataMapOfShapeListOfShape& aMEFTool,BOP_WireEdgeSet& aWES) ; //! Internal usage
Standard_EXPORT static void Path(const TopoDS_Shape& aE,const TopTools_IndexedDataMapOfShapeListOfShape& aEFMap,TopTools_IndexedMapOfShape& aFaces,TopTools_IndexedMapOfShape& aProcE) ; //! Internal usage
Standard_EXPORT static TopAbs_Orientation Orientation(const TopoDS_Edge& aE,const TopoDS_Face& aF) ; Standard_EXPORT static void OrientFacesOnShell(const TopoDS_Shell& aShell,TopoDS_Shell& aShellNew) ; //! Internal usage
Standard_EXPORT void DoInternalVertices(const Standard_Integer nF1,const TopTools_ListOfShape& aFaces) ; //! Internal usage
Standard_EXPORT const TopTools_ListOfShape& Internals() const; //! Internal usage
Standard_EXPORT void CollectInternals() ; //! Internal usage
Standard_EXPORT void FillSectionEdges() ; TopoDS_Face myFace; TopTools_ListOfShape myNewFaces; TopTools_ListOfShape myInternals; Standard_Integer myRank; private: }; // other Inline functions and methods (like "C++: function call" methods) #endif