0021762: Integration of new Boolean Operation algorithm to OCCT.
[occt.git] / src / BooleanOperations / BooleanOperations_ShapeAndInterferences.cdl
1 -- Created on: 2000-07-24
2 -- Created by: Vincent DELOS
3 -- Copyright (c) 2000-2012 OPEN CASCADE SAS
4 --
5 -- The content of this file is subject to the Open CASCADE Technology Public
6 -- License Version 6.5 (the "License"). You may not use the content of this file
7 -- except in compliance with the License. Please obtain a copy of the License
8 -- at http://www.opencascade.org and read it completely before using this file.
9 --
10 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 --
13 -- The Original Code and all software distributed under the License is
14 -- distributed on an "AS IS" basis, without warranty of any kind, and the
15 -- Initial Developer hereby disclaims all such warranties, including without
16 -- limitation, any warranties of merchantability, fitness for a particular
17 -- purpose or non-infringement. Please see the License for the specific terms
18 -- and conditions governing the rights and limitations under the License.
19
20
21
22 class ShapeAndInterferences from BooleanOperations 
23
24         ---Purpose: 
25
26 uses
27     Box from Bnd,
28     Shape from TopoDS,
29     ShapeEnum from TopAbs,
30     Orientation from TopAbs,
31     StateOfShape from BooleanOperations,
32 --modified by NIZNHY-PKV Wed Feb  2 14:45:12 2005f 
33     
34 --    InterferencesList from BooleanOperations,
35 --    InterferenceResult from BooleanOperations, 
36 --modified by NIZNHY-PKV Wed Feb  2 14:45:40 2005t
37     AncestorsAndSuccessors from BooleanOperations
38    
39
40 --raises
41
42 is
43     Create returns ShapeAndInterferences;
44
45     --------------------
46     -- INLINE METHODS --
47     -------------------- 
48     
49     GetShape (me)  
50         returns Shape from TopoDS;
51     ---C++: inline
52     ---C++: return const &
53
54     GetShapeType (me)  
55         returns ShapeEnum from TopAbs;
56     ---C++: inline
57     
58     GetState (me)  
59         returns StateOfShape from BooleanOperations;
60     ---C++: inline
61      
62     SetState (me:in out;  
63             theState: StateOfShape);
64     ---C++: inline
65     
66     GetBoundingBox (me)  
67         returns Box from Bnd;
68     ---C++: inline
69     ---C++: return const &
70
71     NumberOfAncestors(me)  
72         returns Integer from Standard;
73     ---C++: inline
74      
75     NumberOfSuccessors(me)  
76         returns Integer from Standard;
77     ---C++: inline
78     
79     GetAncestor     (me; index:Integer)  
80         returns Integer from Standard;
81     ---C++: inline
82      
83     GetSuccessor    (me; index:Integer)  
84         returns Integer from Standard;
85     ---C++: inline
86      
87     GetAncestors    (me;  
88             theArrayOfAncestors: out Address;  
89             AncestorsSize:out Integer from Standard);
90     ---C++: inline 
91     
92     GetSuccessors   (me;  
93             theArrayOfSuccessors:out Address; 
94             SuccessorsSize:out Integer from Standard);
95     ---C++: inline  
96
97     GetOrientation  (me;  
98             index:Integer)  
99         returns Orientation from TopAbs;
100     ---C++: inline 
101     
102     GetOrientations (me;  
103         theArrayOfOrientations:out Address; 
104         OrientationsSize:out Integer from Standard);
105     ---C++: inline 
106
107 --modified by NIZNHY-PKV Thu Feb  3 11:13:49 2005f
108 --    GetInterference (me; index:Integer) returns InterferenceResult;
109 --    --C++: inline
110 --    --C++: return const &  
111 --    NumberOfInterferences (me) returns Integer;
112       --C++: inline 
113 --    GetIntersectionResult (me; index:Integer) returns Integer;
114 --    --C++: inline         
115 --    GetIntersectedShape   (me; index:Integer) returns Integer;
116 --    --C++: inline
117     ------------------
118     -- MAIN METHODS --
119     ------------------ 
120 --    SetInterference (me:in out; Interf: InterferenceResult);
121     ---Purpose: sets an interference in <myInterferencesList>.
122
123 --    Dump (me);
124     ---Purpose: to display the fields.
125 --modified by NIZNHY-PKV Wed Feb  2 12:55:39 2005t
126  
127 fields
128     myBoundingBox : Box  from Bnd;
129     ---Purpose: the bounding box of <myShape>.
130
131     myAncestorsAndSuccessors : AncestorsAndSuccessors from BooleanOperations;
132     ---Purpose: the shapes that contain <myShape> and/or containded by <myShape>.
133
134     myShape : Shape;
135     ---Purpose: can be a  shape of the Object, of  the Tool or created  by
136     --          intersecting both of them. 
137      
138     myState : StateOfShape;
139     ---Purpose: the state of <myShape>.
140
141 --modified by NIZNHY-PKV Wed Feb  2 12:53:22 2005f
142     --myInterferencesList : InterferencesList; 
143 --modified by NIZNHY-PKV Wed Feb  2 12:53:40 2005t    
144     ---Purpose: all the shapes whose intersection with  <myShape> is not empty.
145
146 friends
147     class ShapesDataStructure from BooleanOperations
148
149 end ShapeAndInterferences;