0024428: Implementation of LGPL license
[occt.git] / src / BRepAlgoAPI / BRepAlgoAPI_BooleanOperation.cdl
CommitLineData
b311480e 1-- Created on: 1993-10-14
2-- Created by: Remi LEQUETTE
3-- Copyright (c) 1993-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
973c2be1 8-- This library is free software; you can redistribute it and / or modify it
9-- under the terms of the GNU Lesser General Public version 2.1 as published
10-- by the Free Software Foundation, with special exception defined in the file
11-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12-- distribution for complete text of the license and disclaimer of any warranty.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
b311480e 16
7fd59977 17-- modified by Peter KURNEV Tue Mar 5 14:01:51 2002
4e57c75e 18-- modified by Eugeny MALTCHIKOV Wed Jul 04 11:13:01 2012
19
7fd59977 20
21deferred class BooleanOperation from BRepAlgoAPI
22 inherits MakeShape from BRepBuilderAPI
23
24 ---Purpose: The abstract class BooleanOperation is the root
25 -- class of Boolean Operations (see Overview).
26 -- Boolean Operations algorithm is divided onto two parts.
27 -- - The first one is computing interference between arguments.
28 -- - The second one is building the result of operation.
29 -- The BooleanOperation class provides execution of both parts
30 -- of the Boolean Operations algorithm. The second part
31 -- (building the result) depends on given type of the Boolean
32 -- Operation (see Constructor).
33
34uses
35
36 Shape from TopoDS,
37 ListOfShape from TopTools,
4e57c75e 38 Operation from BOPAlgo,
39 BOP from BOPAlgo,
40 PBOP from BOPAlgo,
41 PaveFiller from BOPAlgo,
42 PPaveFiller from BOPAlgo,
7fd59977 43 DataMapOfIntegerListOfShape from TopTools,
44 DataMapOfIntegerShape from TopTools,
45 DataMapOfShapeShape from TopTools
46
47is
48
49 Initialize (S1 :Shape from TopoDS;
50 S2 :Shape from TopoDS;
4e57c75e 51 anOperation:Operation from BOPAlgo);
7fd59977 52 ---Purpose: Prepares the operations for S1 and S2.
53
54 Initialize (S1 :Shape from TopoDS;
55 S2 :Shape from TopoDS;
4e57c75e 56 aDSF :PaveFiller from BOPAlgo;
57 anOperation:Operation from BOPAlgo);
7fd59977 58 ---Purpose: Prepares the operations for S1 and S2.
59
60 SetOperation (me:out;
4e57c75e 61 anOp: Operation from BOPAlgo);
7fd59977 62 ---Purpose: Sets the type of Boolean operation to perform
4e57c75e 63 --- It can be BOPAlgo_SECTION
64 --- BOPAlgo_COMMON
65 --- BOPAlgo_FUSE
66 --- BOPAlgo_CUT
67 --- BOPAlgo_CUT21
7fd59977 68 ---
69
70
71 Build (me:out)
72 is redefined virtual;
73 ---Purpose: Provides the algorithm of Boolean Operations
74 -- - Filling interference Data Structure (if it is necessary)
75 -- - Building the result of the operation.
76
77 Shape1(me)
78 returns Shape from TopoDS
79 is static;
80 ---Purpose: Returns the first shape involved in this Boolean operation.
81 ---C++: return const &
82
83 Shape2(me)
84 returns Shape from TopoDS
85 is static;
86 ---Purpose: Returns the second shape involved in this Boolean operation.
87 ---C++: return const &
88
89 Operation (me)
4e57c75e 90 returns Operation from BOPAlgo;
7fd59977 91 ---Purpose: Returns the type of Boolean Operation that has been performed.
92
93 FuseEdges(me) returns Boolean from Standard;
94 ---Purpose: Returns the flag of edge refining
95
96 RefineEdges(me:out);
97 ---Purpose: Fuse C1 edges
98
99 PrepareFiller(me:out)
100 returns Boolean from Standard
101 is protected;
102
103
104 ---Category: Querying
105 BuilderCanWork(me)
106 returns Boolean from Standard;
107
108 ErrorStatus(me)
109 returns Integer from Standard;
110 ---Purpose: Returns the error status of operation.
111 --- 0 - Ok
112 --- 1 - The Object is created but Nothing is Done
113 --- 2 - Null source shapes is not allowed
114 --- 3 - Check types of the arguments
115 --- 4 - Can not allocate memory for the DSFiller
116 --- 5 - The Builder can not work with such types of arguments
117 --- 6 - Unknown operation is not allowed
118 --- 7 - Can not allocate memory for the Builder
119 -- > 100 - See the Builder's ErrorStatus
120
121 Modified (me: in out;
122 aS : Shape from TopoDS)
123 returns ListOfShape from TopTools
124 is redefined virtual;
125 ---Purpose: Returns the list of shapes modified from the shape <S>.
126 ---C++: return const &
127
128 IsDeleted (me: in out;
129 aS : Shape from TopoDS)
130 returns Boolean
131 is redefined virtual;
132 ---Purpose: Returns true if the shape S has been deleted. The
133 -- result shape of the operation does not contain the shape S.
134
7fd59977 135 Generated (me: in out; S : Shape from TopoDS)
136 returns ListOfShape from TopTools
137 is redefined virtual;
138 ---Purpose: Returns the list of shapes generated from the shape <S>.
139 --- For use in BRepNaming.
140 ---C++: return const &
141
142 HasModified (me)
143 returns Boolean from Standard
144 is virtual;
145 ---Purpose: Returns true if there is at least one modified shape.
146 --- For use in BRepNaming.
147
148 HasGenerated (me)
149 returns Boolean from Standard
150 is virtual;
151 ---Purpose: Returns true if there is at least one generated shape.
152 --- For use in BRepNaming.
153
154 HasDeleted (me)
155 returns Boolean from Standard
156 is virtual;
157 ---Purpose: Returns true if there is at least one deleted shape.
158 --- For use in BRepNaming.
159
160 Destroy (me: in out);
161 ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_BooleanOperation(){Destroy();}"
162
163 --modified by NIZNHY-PKV Wed Mar 20 10:29:30 2002 f
164
165 SectionEdges (me: in out)
166 returns ListOfShape from TopTools;
167 --- Purpose: Returns a list of section edges.
168 -- The edges represent the result of intersection between arguments of
169 -- Boolean Operation. They are computed during operation execution.
170 ---C++: return const &
171 --modified by NIZNHY-PKV Wed Mar 20 10:29:35 2002 t
172
173 RefinedList (me: in out; theL : ListOfShape from TopTools)
174 returns ListOfShape from TopTools
175 is private;
176 ---Purpose: Returns the list of shapes generated from the shape <S>.
177 --- For use in BRepNaming.
178 ---C++: return const &
179
180fields
4e57c75e 181 myS1 : Shape from TopoDS is protected;
182 myS2 : Shape from TopoDS is protected;
183 myBuilderCanWork : Boolean from Standard is protected;
184 myOperation : Operation from BOPAlgo is protected;
185 myErrorStatus : Integer from Standard is protected;
186 myDSFiller : PPaveFiller from BOPAlgo is protected;
187 myBuilder : PBOP from BOPAlgo is protected;
7fd59977 188
189 myEntryType : Integer from Standard;
190
191 -- for edge refiner
192 myFuseEdges : Boolean from Standard ;
193 myModifFaces : DataMapOfShapeShape from TopTools;
194 myEdgeMap : DataMapOfShapeShape from TopTools;
195
196end BooleanOperation;
197