|
||||
File indexing completed on 2025-01-18 10:03:06
0001 // Created by: Eugeny MALTCHIKOV 0002 // Copyright (c) 2017 OPEN CASCADE SAS 0003 // 0004 // This file is part of Open CASCADE Technology software library. 0005 // 0006 // This library is free software; you can redistribute it and/or modify it under 0007 // the terms of the GNU Lesser General Public License version 2.1 as published 0008 // by the Free Software Foundation, with special exception defined in the file 0009 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0010 // distribution for complete text of the license and disclaimer of any warranty. 0011 // 0012 // Alternatively, this file may be used under the terms of Open CASCADE 0013 // commercial license or contractual agreement. 0014 0015 #ifndef _BRepAlgoAPI_Splitter_HeaderFile 0016 #define _BRepAlgoAPI_Splitter_HeaderFile 0017 0018 #include <Standard.hxx> 0019 #include <Standard_DefineAlloc.hxx> 0020 #include <Standard_Handle.hxx> 0021 0022 #include <BRepAlgoAPI_BuilderAlgo.hxx> 0023 0024 //! The class contains API level of the **Splitter** algorithm, 0025 //! which allows splitting a group of arbitrary shapes by the 0026 //! other group of arbitrary shapes.<br> 0027 //! The arguments of the operation are divided on two groups:<br> 0028 //! *Objects* - shapes that will be split;<br> 0029 //! *Tools* - shapes by which the *Objects* will be split.<br> 0030 //! The result of the operation contains only the split parts 0031 //! of the shapes from the group of *Objects*.<br> 0032 //! The split parts of the shapes from the group of *Tools* are excluded 0033 //! from the result.<br> 0034 //! The shapes can be split by the other shapes from the same group 0035 //! (in case these shapes are interfering). 0036 //! 0037 //! The class is a General Fuse based algorithm. Thus, all options 0038 //! of the General Fuse algorithm such as Fuzzy mode, safe processing mode, 0039 //! parallel processing mode, gluing mode and history support are also 0040 //! available in this algorithm.<br> 0041 //! There is no requirement on the existence of the *Tools* shapes. 0042 //! And if there are no *Tools* shapes, the result of the splitting 0043 //! operation will be equivalent to the General Fuse result. 0044 //! 0045 //! The algorithm returns the following Error statuses:<br> 0046 //! - 0 - in case of success;<br> 0047 //! - *BOPAlgo_AlertTooFewArguments* - in case there is no enough arguments for the operation;<br> 0048 //! - *BOPAlgo_AlertIntersectionFailed* - in case the Intersection of the arguments has failed;<br> 0049 //! - *BOPAlgo_AlertBuilderFailed* - in case the Building of the result has failed. 0050 class BRepAlgoAPI_Splitter : public BRepAlgoAPI_BuilderAlgo 0051 { 0052 public: 0053 0054 DEFINE_STANDARD_ALLOC 0055 0056 public: //! @name Constructors 0057 0058 //! Empty constructor 0059 Standard_EXPORT BRepAlgoAPI_Splitter(); 0060 0061 //! Constructor with already prepared intersection tool - PaveFiller 0062 Standard_EXPORT BRepAlgoAPI_Splitter(const BOPAlgo_PaveFiller& thePF); 0063 0064 0065 public: //! @name Setters/Getters for the Tools 0066 0067 //! Sets the Tool arguments 0068 void SetTools (const TopTools_ListOfShape& theLS) 0069 { 0070 myTools = theLS; 0071 } 0072 0073 //! Returns the Tool arguments 0074 const TopTools_ListOfShape& Tools() const 0075 { 0076 return myTools; 0077 } 0078 0079 0080 public: //! @name Performing the operation 0081 0082 //! Performs the Split operation. 0083 //! Performs the intersection of the argument shapes (both objects and tools) 0084 //! and splits objects by the tools. 0085 Standard_EXPORT virtual void Build(const Message_ProgressRange& theRange = Message_ProgressRange()) Standard_OVERRIDE; 0086 0087 0088 protected: //! @name Fields 0089 0090 TopTools_ListOfShape myTools; //!< Tool arguments of the operation 0091 0092 }; 0093 0094 #endif // _BRepAlgoAPI_Splitter_HeaderFile
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |