File indexing completed on 2025-01-18 10:03:03
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #ifndef _BOPAlgo_BuilderArea_HeaderFile
0019 #define _BOPAlgo_BuilderArea_HeaderFile
0020
0021 #include <Standard.hxx>
0022 #include <Standard_DefineAlloc.hxx>
0023 #include <Standard_Handle.hxx>
0024
0025 #include <BOPAlgo_Algo.hxx>
0026 #include <NCollection_BaseAllocator.hxx>
0027 #include <TopTools_ListOfShape.hxx>
0028 #include <TopTools_IndexedMapOfOrientedShape.hxx>
0029 class IntTools_Context;
0030
0031
0032
0033
0034 class BOPAlgo_BuilderArea : public BOPAlgo_Algo
0035 {
0036 public:
0037
0038 DEFINE_STANDARD_ALLOC
0039
0040
0041 void SetContext (const Handle(IntTools_Context)& theContext) {
0042 myContext = theContext;
0043 }
0044
0045
0046 const TopTools_ListOfShape& Shapes() const {
0047 return myShapes;
0048 }
0049
0050
0051 void SetShapes(const TopTools_ListOfShape& theLS) {
0052 myShapes = theLS;
0053 }
0054
0055
0056 const TopTools_ListOfShape& Loops() const {
0057 return myLoops;
0058 }
0059
0060
0061 const TopTools_ListOfShape& Areas() const {
0062 return myAreas;
0063 }
0064
0065
0066
0067 void SetAvoidInternalShapes(const Standard_Boolean theAvoidInternal) {
0068 myAvoidInternalShapes = theAvoidInternal;
0069 }
0070
0071
0072 Standard_Boolean IsAvoidInternalShapes() const {
0073 return myAvoidInternalShapes;
0074 }
0075
0076 protected:
0077
0078 Standard_EXPORT BOPAlgo_BuilderArea();
0079 Standard_EXPORT virtual ~BOPAlgo_BuilderArea();
0080
0081 Standard_EXPORT BOPAlgo_BuilderArea(const Handle(NCollection_BaseAllocator)& theAllocator);
0082
0083 virtual void PerformShapesToAvoid(const Message_ProgressRange& theRange) = 0;
0084
0085 virtual void PerformLoops(const Message_ProgressRange& theRange) = 0;
0086
0087 virtual void PerformAreas(const Message_ProgressRange& theRange) = 0;
0088
0089 virtual void PerformInternalShapes(const Message_ProgressRange& theRange) = 0;
0090
0091
0092 Handle(IntTools_Context) myContext;
0093 TopTools_ListOfShape myShapes;
0094 TopTools_ListOfShape myLoops;
0095 TopTools_ListOfShape myLoopsInternal;
0096 TopTools_ListOfShape myAreas;
0097 TopTools_IndexedMapOfOrientedShape myShapesToAvoid;
0098 Standard_Boolean myAvoidInternalShapes;
0099
0100 private:
0101
0102 };
0103
0104 #endif