// 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 _BooleanOperations_ShapesDataStructure_HeaderFile #define _BooleanOperations_ShapesDataStructure_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _BooleanOperations_PShapeAndInterferences_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _TopoDS_Shape_HeaderFile #include #endif #ifndef _BooleanOperations_IndexedDataMapOfShapeInteger_HeaderFile #include #endif #ifndef _BOPTColStd_CArray1OfInteger_HeaderFile #include #endif #ifndef _Standard_OStream_HeaderFile #include #endif #ifndef _TopAbs_ShapeEnum_HeaderFile #include #endif #ifndef _BooleanOperations_StateOfShape_HeaderFile #include #endif #ifndef _Standard_Address_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _TopAbs_Orientation_HeaderFile #include #endif class BooleanOperations_Explorer; class BooleanOperations_OnceExplorer; class TopoDS_Shape; class BooleanOperations_AncestorsSeqAndSuccessorsSeq; class BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors; class Bnd_Box; class BooleanOperations_ShapeAndInterferences; class BooleanOperations_IndexedDataMapOfShapeInteger; class BooleanOperations_ShapesDataStructure { 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); } Standard_EXPORT BooleanOperations_ShapesDataStructure(); Standard_EXPORT virtual ~BooleanOperations_ShapesDataStructure(); Standard_EXPORT BooleanOperations_ShapesDataStructure(const TopoDS_Shape& Object,const TopoDS_Shape& Tool); //! fill a line of the data structure, the shift is used
//! for the numbers of the shapes of the Tool.
Standard_EXPORT void InsertShapeAndAncestorsSuccessors(const TopoDS_Shape& S,const BooleanOperations_AncestorsSeqAndSuccessorsSeq& AncSuc,const Standard_Integer shift = 0) ; //! to find the data structure we first decompose the
//! Object and Tool in the indexed data map of shapes.
Standard_EXPORT void FillIndexedMapOfShapesAncestorsAndSuccessors(const TopoDS_Shape& Sha,BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& IndDatMap) const; //! to find all the subshapes of Sha and store them in
//! IndDatMap if they had not been already taken into account.
Standard_EXPORT void FindSubshapes(const TopoDS_Shape& Sha,Standard_Integer& TotalNumberOfShapes,BooleanOperations_IndexedDataMapOfShapeAncestorsSuccessors& IndDatMap) const; //! dump the content of the fields.
Standard_EXPORT void Dump(Standard_OStream& S) const; //! dump the types of the shapes.
Standard_EXPORT void LightDump(Standard_OStream& S) const; Standard_EXPORT const TopoDS_Shape& GetShape(const Standard_Integer index) const; Standard_EXPORT const TopoDS_Shape& Shape(const Standard_Integer anIndex) const; Standard_EXPORT TopAbs_ShapeEnum GetShapeType(const Standard_Integer index) const; Standard_EXPORT const Bnd_Box& GetBoundingBox(const Standard_Integer index) const; Standard_EXPORT BooleanOperations_StateOfShape GetState(const Standard_Integer index) const; Standard_EXPORT void SetState(const Standard_Integer index,const BooleanOperations_StateOfShape theState) ; Standard_EXPORT Standard_Integer GetAncestor(const Standard_Integer index,const Standard_Integer ancestorNumber) const; Standard_EXPORT Standard_Integer GetSuccessor(const Standard_Integer index,const Standard_Integer successorNumber) const; Standard_EXPORT void GetAncestors(const Standard_Integer index,Standard_Address& theArrayOfAncestors,Standard_Integer& AncestorsSize) const; Standard_EXPORT void GetSuccessors(const Standard_Integer index,Standard_Address& theArrayOfSuccessors,Standard_Integer& SuccessorsSize) const; Standard_EXPORT Standard_Integer NumberOfAncestors(const Standard_Integer index) const; Standard_EXPORT Standard_Integer NumberOfSuccessors(const Standard_Integer index) const; Standard_EXPORT Standard_Integer NumberOfShapesOfTheTool() const; Standard_EXPORT Standard_Integer NumberOfShapesOfTheObject() const; Standard_EXPORT Standard_Integer NumberOfSourceShapes() const; Standard_EXPORT Standard_Boolean IsNewShape(const Standard_Integer index) const; Standard_EXPORT Standard_Integer NumberOfInsertedShapes() const; Standard_EXPORT Standard_Integer NumberOfNewShapes() const; Standard_EXPORT const BooleanOperations_ShapeAndInterferences& Line(const Standard_Integer index) const; Standard_EXPORT const BooleanOperations_IndexedDataMapOfShapeInteger& ShapeIndexMap(const Standard_Integer iRank) const; Standard_EXPORT virtual Standard_Integer ShapeIndex(const TopoDS_Shape& aS,const Standard_Integer iRank) const; Standard_EXPORT const TopoDS_Shape& Object() const; Standard_EXPORT const TopoDS_Shape& Tool() const; Standard_EXPORT void ObjectRange(Standard_Integer& iFirst,Standard_Integer& iLast) const; Standard_EXPORT void ToolRange(Standard_Integer& iFirst,Standard_Integer& iLast) const; Standard_EXPORT virtual Standard_Integer Rank(const Standard_Integer anIndex) const; //! for given index "anIndex" of an edge in DS get
//! reference index of an edge
Standard_EXPORT Standard_Integer RefEdge(const Standard_Integer anIndex) const; //! returns number of edges from source shapes
Standard_EXPORT Standard_Integer NbEdges() const; Standard_EXPORT TopAbs_Orientation GetOrientation(const Standard_Integer index,const Standard_Integer successorNumber) const; Standard_EXPORT void GetOrientations(const Standard_Integer index,Standard_Address& theArrayOfOrientations,Standard_Integer& OrientationsSize) const; friend class BooleanOperations_Explorer; friend class BooleanOperations_OnceExplorer; protected: Standard_EXPORT void Destroy() ; BooleanOperations_PShapeAndInterferences myListOfShapeAndInterferences; Standard_Integer myNumberOfShapesOfTheObject; Standard_Integer myNumberOfShapesOfTheTool; Standard_Integer myNumberOfInsertedShapes; Standard_Integer myLength; TopoDS_Shape myObject; TopoDS_Shape myTool; BooleanOperations_IndexedDataMapOfShapeInteger myShapeIndexMapObj; BooleanOperations_IndexedDataMapOfShapeInteger myShapeIndexMapTool; BOPTColStd_CArray1OfInteger myRefEdges; Standard_Integer myNbEdges; private: Standard_EXPORT void ReInit() ; }; // other Inline functions and methods (like "C++: function call" methods) #endif