0024624: Lost word in license statement in source 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-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License 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.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 -- modified by  Peter KURNEV   Tue Mar  5 14:01:51 2002
18 -- modified by  Eugeny MALTCHIKOV Wed Jul 04 11:13:01 2012 
19
20
21 deferred 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   
34 uses
35
36     Shape       from TopoDS,
37     ListOfShape from TopTools,
38     Operation   from BOPAlgo, 
39     BOP         from BOPAlgo,
40     PBOP        from BOPAlgo, 
41     PaveFiller  from BOPAlgo, 
42     PPaveFiller from BOPAlgo,
43     DataMapOfIntegerListOfShape  from  TopTools, 
44     DataMapOfIntegerShape  from  TopTools,
45     DataMapOfShapeShape  from  TopTools 
46     
47 is
48
49     Initialize (S1 :Shape from TopoDS; 
50                 S2 :Shape from TopoDS; 
51                 anOperation:Operation from BOPAlgo);
52         ---Purpose: Prepares the operations for S1 and S2.
53      
54     Initialize (S1   :Shape from TopoDS; 
55                 S2   :Shape from TopoDS; 
56                 aDSF :PaveFiller from BOPAlgo;                                                               
57                 anOperation:Operation from BOPAlgo); 
58         ---Purpose: Prepares the operations for S1 and S2.
59
60     SetOperation (me:out; 
61             anOp:  Operation from BOPAlgo); 
62         ---Purpose:  Sets the type of Boolean operation to perform      
63         ---          It can be BOPAlgo_SECTION 
64         ---                    BOPAlgo_COMMON 
65         ---                    BOPAlgo_FUSE 
66         ---                    BOPAlgo_CUT 
67         ---                    BOPAlgo_CUT21 
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) 
90         returns Operation from BOPAlgo;
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         
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
180 fields
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;
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     
196 end BooleanOperation;
197