|
|
|||
File indexing completed on 2026-09-27 09:16:57
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. 0027 //! The arguments of the operation are divided on two groups: 0028 //! *Objects* - shapes that will be split; 0029 //! *Tools* - shapes by which the *Objects* will be split. 0030 //! The result of the operation contains only the split parts 0031 //! of the shapes from the group of *Objects*. 0032 //! The split parts of the shapes from the group of *Tools* are excluded 0033 //! from the result. 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. 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: 0046 //! - 0 - in case of success; 0047 //! - *BOPAlgo_AlertTooFewArguments* - in case there is no enough arguments for the 0048 //! operation; 0049 //! - *BOPAlgo_AlertIntersectionFailed* - in case the Intersection of the arguments has failed; 0050 //! - *BOPAlgo_AlertBuilderFailed* - in case the Building of the result has failed. 0051 class BRepAlgoAPI_Splitter : public BRepAlgoAPI_BuilderAlgo 0052 { 0053 public: 0054 DEFINE_STANDARD_ALLOC 0055 0056 public: //! @name Constructors 0057 //! Empty constructor 0058 Standard_EXPORT BRepAlgoAPI_Splitter(); 0059 0060 //! Constructor with already prepared intersection tool - PaveFiller 0061 Standard_EXPORT BRepAlgoAPI_Splitter(const BOPAlgo_PaveFiller& thePF); 0062 0063 public: //! @name Setters/Getters for the Tools 0064 //! Sets the Tool arguments 0065 void SetTools(const NCollection_List<TopoDS_Shape>& theLS) { myTools = theLS; } 0066 0067 //! Returns the Tool arguments 0068 const NCollection_List<TopoDS_Shape>& Tools() const { return myTools; } 0069 0070 public: //! @name Performing the operation 0071 //! Performs the Split operation. 0072 //! Performs the intersection of the argument shapes (both objects and tools) 0073 //! and splits objects by the tools. 0074 Standard_EXPORT void Build( 0075 const Message_ProgressRange& theRange = Message_ProgressRange()) override; 0076 0077 protected: //! @name Fields 0078 NCollection_List<TopoDS_Shape> myTools; //!< Tool arguments of the operation 0079 }; 0080 0081 #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 |
|