// Created by: Peter KURNEV // Copyright (c) 1999-2012 OPEN CASCADE SAS // // This file is part of Open CASCADE Technology software library. // // This library is free software; you can redistribute it and/or modify it under // the terms of the GNU Lesser General Public License version 2.1 as published // by the Free Software Foundation, with special exception defined in the file // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT // distribution for complete text of the license and disclaimer of any warranty. // // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. #ifndef _BOPAlgo_WireSplitter_HeaderFile #define _BOPAlgo_WireSplitter_HeaderFile #include "Standard.hxx" #include "Standard_DefineAlloc.hxx" #include "Standard_Handle.hxx" #include "BOPAlgo_PWireEdgeSet.hxx" #include "NCollection_List.hxx" #include "BOPTools_ConnexityBlock.hxx" #include "BOPAlgo_Algo.hxx" #include "IntTools_Context.hxx" #include "NCollection_BaseAllocator.hxx" #include "TopoDS_Shape.hxx" class TopoDS_Wire; class TopoDS_Face; //! The class is to build loops from the given set of edges. //! //! It returns the following Error statuses //! - *BOPAlgo_AlertNullInputShapes* - in case there no input edges to build the loops. //! class BOPAlgo_WireSplitter : public BOPAlgo_Algo { public: DEFINE_STANDARD_ALLOC Standard_EXPORT BOPAlgo_WireSplitter(); Standard_EXPORT ~BOPAlgo_WireSplitter() override; Standard_EXPORT BOPAlgo_WireSplitter(const occ::handle& theAllocator); Standard_EXPORT void SetWES(const BOPAlgo_WireEdgeSet& theWES); Standard_EXPORT BOPAlgo_WireEdgeSet& WES(); //! Sets the context for the algorithm Standard_EXPORT void SetContext(const occ::handle& theContext); //! Returns the context Standard_EXPORT const occ::handle& Context(); Standard_EXPORT void Perform( const Message_ProgressRange& theRange = Message_ProgressRange()) override; static void MakeWire(NCollection_List& theLE, TopoDS_Wire& theW); Standard_EXPORT static void SplitBlock(const TopoDS_Face& theF, BOPTools_ConnexityBlock& theCB, const occ::handle& theContext); protected: Standard_EXPORT void CheckData() override; Standard_EXPORT void MakeWires(const Message_ProgressRange& theRange); BOPAlgo_PWireEdgeSet myWES; NCollection_List myLCB; occ::handle myContext; }; #include "BOPAlgo_WireSplitter.lxx" #endif // _BOPAlgo_WireSplitter_HeaderFile