File indexing completed on 2026-09-28 09:19:25
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #ifndef _BOPAlgo_ShellSplitter_HeaderFile
0016 #define _BOPAlgo_ShellSplitter_HeaderFile
0017
0018 #include <Standard.hxx>
0019 #include <Standard_DefineAlloc.hxx>
0020 #include <Standard_Handle.hxx>
0021
0022 #include <NCollection_List.hxx>
0023 #include <BOPTools_ConnexityBlock.hxx>
0024 #include <BOPAlgo_Algo.hxx>
0025 #include <NCollection_BaseAllocator.hxx>
0026 #include <TopoDS_Shape.hxx>
0027 class TopoDS_Shape;
0028
0029
0030
0031 class BOPAlgo_ShellSplitter : public BOPAlgo_Algo
0032 {
0033 public:
0034 DEFINE_STANDARD_ALLOC
0035
0036
0037 Standard_EXPORT BOPAlgo_ShellSplitter();
0038 Standard_EXPORT ~BOPAlgo_ShellSplitter() override;
0039
0040
0041 Standard_EXPORT BOPAlgo_ShellSplitter(const occ::handle<NCollection_BaseAllocator>& theAllocator);
0042
0043
0044 Standard_EXPORT void AddStartElement(const TopoDS_Shape& theS);
0045
0046
0047 Standard_EXPORT const NCollection_List<TopoDS_Shape>& StartElements() const;
0048
0049
0050 Standard_EXPORT void Perform(
0051 const Message_ProgressRange& theRange = Message_ProgressRange()) override;
0052
0053
0054 Standard_EXPORT const NCollection_List<TopoDS_Shape>& Shells() const;
0055
0056 Standard_EXPORT static void SplitBlock(BOPTools_ConnexityBlock& theCB);
0057
0058 protected:
0059 Standard_EXPORT void MakeShells(const Message_ProgressRange& theRange);
0060
0061 NCollection_List<TopoDS_Shape> myStartShapes;
0062 NCollection_List<TopoDS_Shape> myShells;
0063 NCollection_List<BOPTools_ConnexityBlock> myLCB;
0064 };
0065
0066 #endif