Test for 0022778: Bug in BRepMesh
[occt.git] / src / BOPTools / BOPTools_InterferencePool.cdl
1 -- Created on: 2001-01-26
2 -- Created by: Peter KURNEV
3 -- Copyright (c) 2001-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 InterferencePool from BOPTools 
23
24         ---Purpose:  
25         --  Class for storing information about  
26         --- results of all interferences for all shapes 
27
28 uses 
29     ShapesDataStructure  from BooleanOperations, 
30     PShapesDataStructure from BooleanOperations,  
31     KindOfInterference   from BooleanOperations, 
32     
33     CArray1OfInterferenceLine from BOPTools, 
34     CArray1OfSSInterference   from BOPTools,
35     CArray1OfESInterference   from BOPTools,
36     CArray1OfVSInterference   from BOPTools, 
37     CArray1OfEEInterference   from BOPTools, 
38     CArray1OfVEInterference   from BOPTools, 
39     CArray1OfVVInterference   from BOPTools, 
40     PShapeShapeInterference   from BOPTools 
41 is 
42     Create  
43         returns InterferencePool from BOPTools ; 
44         ---Purpose:  
45         --- Empty constructor 
46         ---
47     Create  (aDS:ShapesDataStructure from BooleanOperations)
48         returns InterferencePool from BOPTools ;  
49         ---Purpose:   
50         --- Constructor 
51         ---
52     SetDS  (me:out;aDS:ShapesDataStructure from BooleanOperations); 
53         ---Purpose:  
54         --- Modifier  
55         ---
56     DS(me) 
57         returns  PShapesDataStructure from BooleanOperations; 
58         ---Purpose:  
59         --- Selector  
60         ---
61     HasInterference  (me; 
62              anInd  :Integer from Standard) 
63         returns Boolean from Standard;  
64         ---Purpose: 
65         --- Returns  TRUE if the shape with DS_index  <anInd> 
66         --- has at least one  interference with non-empty result            
67         ---
68     IsComputed     (me;   
69              anInd1  :  Integer from Standard;
70              anInd2  :  Integer from Standard) 
71         returns Boolean from Standard;  
72         ---Purpose: 
73         --- Returns  TRUE if the interference between shapes  
74         --- <anInd1> and <anInd2> has already been computed.           
75         ---
76     SortTypes      (me;   
77                 anInd1:in out Integer from Standard; 
78                 anInd2:in out Integer from Standard); 
79         ---Purpose: 
80         --- Sorts types of shapes <anInd1> and <anInd2> in increasing order 
81         ---
82     InterferenceType  (me;   
83                 anInd1: Integer from Standard; 
84                 anInd2: Integer from Standard) 
85         returns KindOfInterference from BooleanOperations;  
86         ---Purpose: 
87         --- Gets the type of interference in accordance with the types of  
88         --- shapes  <anInd1> and <anInd2>
89         ---
90     AddInterference   (me:out;   
91                 anInd1:  Integer from Standard;
92                 anInd2:  Integer from Standard; 
93                 aType:   KindOfInterference from BooleanOperations; 
94                 anIndex: Integer from Standard);  
95         ---Purpose: 
96         --- Adds the info about interference in InterferenceLine-s for  
97         --- shapes  <anInd1> and <anInd2>
98         ---
99     InterferenceTable (me) 
100         returns  CArray1OfInterferenceLine from BOPTools; 
101         ---C++:  return  const& 
102         ---Purpose: 
103         --- Returns the reference to complete array of interference line-s 
104         ---
105     SSInterferences (me:out)  
106         returns CArray1OfSSInterference   from BOPTools; 
107         ---C++:  return  & 
108         ---Purpose: 
109         --- Returns the reference to array Of F/F interferences 
110         ---
111     ESInterferences (me:out)  
112         returns CArray1OfESInterference   from BOPTools; 
113         ---C++:  return  & 
114         ---Purpose: 
115         --- Returns the reference to array Of E/F interferences 
116         ---
117     VSInterferences (me:out)  
118         returns CArray1OfVSInterference   from BOPTools; 
119         ---C++:  return  &
120         ---Purpose: 
121         --- Returns the reference to array Of V/F interferences 
122         ---
123     EEInterferences (me:out)  
124         returns CArray1OfEEInterference   from BOPTools; 
125         ---C++:  return  &  
126         ---Purpose: 
127         --- Returns the reference to arrray Of E/E interferences 
128         ---
129     VEInterferences (me:out)  
130         returns CArray1OfVEInterference   from BOPTools; 
131         ---C++:  return  &              
132         ---Purpose: 
133         --- Returns the reference to arrray Of  V/E interferences 
134         ---
135     VVInterferences (me:out)  
136         returns CArray1OfVVInterference   from BOPTools; 
137         ---C++:  return  &              
138         ---Purpose: 
139         --- Returns the reference to arrray Of  V/V interferences 
140         ---
141     -------------- 
142     SSInterfs (me)  
143         returns CArray1OfSSInterference   from BOPTools; 
144         ---C++:  return const & 
145      
146     ESInterfs (me)  
147         returns CArray1OfESInterference   from BOPTools; 
148         ---C++:  return const & 
149      
150     VSInterfs (me)  
151         returns CArray1OfVSInterference   from BOPTools; 
152         ---C++:  return const &
153      
154     EEInterfs (me)  
155         returns CArray1OfEEInterference   from BOPTools; 
156         ---C++:  return const &  
157             
158     VEInterfs (me)  
159         returns CArray1OfVEInterference   from BOPTools; 
160         ---C++:  return const &                 
161                  
162     VVInterfs (me)  
163         returns CArray1OfVVInterference   from BOPTools; 
164         ---C++:  return const & 
165      
166
167     GetInterference (me; 
168             anIndex:  Integer from Standard; 
169             aType  :  KindOfInterference from BooleanOperations) 
170         returns PShapeShapeInterference from BOPTools; 
171
172
173 fields 
174  
175     myDS               :  PShapesDataStructure from BooleanOperations;  
176     myNbSourceShapes   :  Integer  from  Standard;  
177     
178     myInterferenceTable:  CArray1OfInterferenceLine from BOPTools; 
179     mySSInterferences  :  CArray1OfSSInterference   from BOPTools;
180     myESInterferences  :  CArray1OfESInterference   from BOPTools;
181     myVSInterferences  :  CArray1OfVSInterference   from BOPTools;
182     myEEInterferences  :  CArray1OfEEInterference   from BOPTools;
183     myVEInterferences  :  CArray1OfVEInterference   from BOPTools;
184     myVVInterferences  :  CArray1OfVVInterference   from BOPTools;
185
186 end InterferencePool;