0023024: Update headers of OCCT files
[occt.git] / src / BRepAlgoAPI / BRepAlgoAPI_BooleanOperation.cdl
1 -- Created on: 1993-10-14
2 -- Created by: Remi LEQUETTE
3 -- Copyright (c) 1993-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21 -- modified by  Peter KURNEV   Tue Mar  5 14:01:51 2002
22
23 deferred class BooleanOperation from BRepAlgoAPI
24     inherits MakeShape from BRepBuilderAPI
25
26         ---Purpose: The abstract class BooleanOperation is the root
27         -- class of Boolean Operations (see Overview).
28         -- Boolean Operations algorithm is divided onto two parts.
29         -- -      The first one is computing interference between arguments.
30         -- -      The second one is building the result of operation.
31         -- The BooleanOperation class provides execution of both parts
32         -- of the Boolean Operations algorithm. The second part
33         -- (building the result) depends on given type of the Boolean
34         -- Operation (see Constructor).
35   
36 uses
37
38     Shape       from TopoDS,
39     ListOfShape from TopTools,
40     Operation   from BOP,  
41     PBuilder    from BOP,            
42     HistoryCollector from BOP,
43     PDSFiller from BOPTools, 
44     DSFiller from BOPTools, 
45     DataMapOfIntegerListOfShape  from  TopTools, 
46     DataMapOfIntegerShape  from  TopTools,
47     DataMapOfShapeShape  from  TopTools 
48     
49 is
50
51     Initialize (S1 :Shape from TopoDS; 
52                 S2 :Shape from TopoDS; 
53                 anOperation:Operation from BOP);
54         ---Purpose: Prepares the operations for S1 and S2.
55      
56     Initialize (S1   :Shape from TopoDS; 
57                 S2   :Shape from TopoDS; 
58                 aDSF :DSFiller from BOPTools;                                                                
59                 anOperation:Operation from BOP); 
60         ---Purpose: Prepares the operations for S1 and S2.
61
62     SetOperation (me:out; 
63             anOp:  Operation from BOP); 
64         ---Purpose:  Sets the type of Boolean operation to perform      
65         ---          It can be BOP_SECTION 
66         ---                    BOP_COMMON 
67         ---                    BOP_FUSE 
68         ---                    BOP_CUT 
69         ---                    BOP_CUT21 
70         --- 
71          
72
73     Build  (me:out) 
74         is redefined virtual; 
75         ---Purpose: Provides the algorithm of Boolean Operations
76         -- -      Filling interference Data Structure (if it is necessary)
77         -- -      Building the result of the operation.
78     
79     Shape1(me)  
80         returns Shape from TopoDS 
81         is static;
82         ---Purpose: Returns the first shape involved in this Boolean operation.
83         ---C++: return const &
84
85     Shape2(me)  
86         returns Shape from TopoDS 
87         is static;
88         ---Purpose: Returns the second shape involved in this Boolean operation.
89         ---C++: return const &
90      
91     Operation  (me) 
92         returns Operation from BOP;
93         ---Purpose: Returns the type of Boolean Operation that has been performed.  
94          
95     FuseEdges(me)  returns  Boolean  from  Standard;
96         ---Purpose: Returns the flag of edge refining
97      
98     RefineEdges(me:out);
99         ---Purpose: Fuse C1 edges
100
101     PrepareFiller(me:out) 
102         returns Boolean from Standard 
103         is  protected;   
104          
105  
106         ---Category: Querying
107     BuilderCanWork(me)  
108         returns Boolean from Standard;
109
110     ErrorStatus(me) 
111         returns Integer from Standard; 
112         ---Purpose:  Returns the error status of operation.  
113         --- 0 - Ok
114         --- 1 - The Object is created but Nothing is Done 
115         --- 2 - Null source shapes is not allowed
116         --- 3 - Check types of the arguments
117         --- 4 - Can not allocate memory for the DSFiller
118         --- 5 - The Builder can not work with such types of arguments
119         --- 6 - Unknown operation is not allowed 
120         --- 7 - Can not allocate memory for the Builder
121         --  > 100 - See the Builder's  ErrorStatus
122
123     Modified (me: in out;  
124             aS : Shape from TopoDS) 
125         returns ListOfShape from TopTools
126         is redefined virtual;
127         ---Purpose: Returns the list  of shapes modified from the shape <S>. 
128         ---C++: return const & 
129
130     IsDeleted (me: in out;  
131             aS : Shape from TopoDS)
132         returns Boolean
133         is redefined virtual;
134         ---Purpose: Returns true if the shape S has been deleted. The
135         -- result shape of the operation does not contain the shape S.
136         
137     Modified2 (me: in out;  
138                 aS : Shape from TopoDS) 
139         returns ListOfShape from TopTools
140         is virtual;
141         ---Purpose: Returns the list  of shapes modified from the shape <S>.
142         ---         For use in BRepNaming.
143         ---C++: return const & 
144         ---Level: Public
145
146     Generated (me: in out; S : Shape from TopoDS)
147         returns ListOfShape from TopTools
148         is redefined virtual;
149         ---Purpose: Returns the list  of shapes generated from the shape <S>.
150         ---         For use in BRepNaming.
151         ---C++:  return const &
152     
153     HasModified (me)
154         returns Boolean from Standard
155         is virtual;
156         ---Purpose: Returns true if there is at least one modified shape.
157         ---         For use in BRepNaming.
158
159     HasGenerated (me)
160         returns Boolean from Standard
161         is virtual;
162         ---Purpose: Returns true if there is at least one generated shape.
163         ---         For use in BRepNaming.
164
165     HasDeleted (me)
166         returns Boolean from Standard
167         is virtual;
168         ---Purpose: Returns true if there is at least one deleted shape.
169         ---         For use in BRepNaming.
170
171     Destroy (me: in out); 
172     ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_BooleanOperation(){Destroy();}" 
173      
174     --modified by NIZNHY-PKV Wed Mar 20 10:29:30 2002  f
175     
176     SectionEdges (me:  in  out)  
177         returns ListOfShape from TopTools;    
178         --- Purpose: Returns a list of section edges.
179         -- The edges represent the result of intersection between arguments of
180         -- Boolean Operation. They are computed during operation execution.
181         ---C++:  return const &  
182     --modified by NIZNHY-PKV Wed Mar 20 10:29:35 2002  t
183
184     RefinedList (me:  in  out; theL : ListOfShape from TopTools)  
185         returns ListOfShape from TopTools
186         is private;
187         ---Purpose: Returns the list  of shapes generated from the shape <S>.
188         ---         For use in BRepNaming.
189         ---C++:  return const &
190
191 fields
192     myS1             : Shape from TopoDS       is protected;
193     myS2             : Shape from TopoDS       is protected;
194     myBuilderCanWork : Boolean from Standard   is protected;   
195     myOperation      : Operation from BOP      is protected;  
196     myErrorStatus    : Integer from Standard   is protected;         
197     myDSFiller       : PDSFiller from BOPTools is protected; 
198     myBuilder        : PBuilder  from BOP      is protected;
199
200     myHistory        : HistoryCollector from BOP is protected;
201
202     myEntryType      : Integer     from Standard;   
203
204     --    for  edge  refiner
205     myFuseEdges      : Boolean  from  Standard ; 
206     myModifFaces     : DataMapOfShapeShape  from  TopTools;   
207     myEdgeMap        : DataMapOfShapeShape  from  TopTools;
208     
209 end BooleanOperation;
210