0023948: Wrong intersection between a surface of revolution and a plane.
[occt.git] / src / BOPDS / BOPDS_PaveBlock.cdl
1 -- Created by: Peter KURNEV
2 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
3 --
4 -- This file is part of Open CASCADE Technology software library.
5 --
6 -- This library is free software; you can redistribute it and/or modify it under
7 -- the terms of the GNU Lesser General Public License version 2.1 as published
8 -- by the Free Software Foundation, with special exception defined in the file
9 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10 -- distribution for complete text of the license and disclaimer of any warranty.
11 --
12 -- Alternatively, this file may be used under the terms of Open CASCADE
13 -- commercial license or contractual agreement.
14
15 class PaveBlock from BOPDS 
16     inherits TShared from MMgt  
17     
18 ---Purpose:  
19 -- The class BOPDS_PaveBlock is to store  
20 -- the information about pave block on an edge. 
21 -- Two adjacent paves on edge make up pave block.    
22
23 uses   
24     Box from Bnd, 
25     BaseAllocator from BOPCol, 
26     MapOfInteger from BOPCol,
27     Pave from BOPDS,
28     ListOfPave from BOPDS, 
29     ListOfPaveBlock from BOPDS
30     
31 --raises
32
33 is 
34     Create 
35     returns PaveBlock from BOPDS; 
36     ---Purpose:  
37     --- Empty contructor  
38     --- 
39     Create (theAllocator: BaseAllocator from BOPCol) 
40     returns PaveBlock from BOPDS; 
41     ---Purpose:  
42     ---  Contructor    
43     ---  <theAllocator> - the allocator to manage the memory     
44     --- 
45      
46     SetPave1(me:mutable; 
47         thePave:Pave from BOPDS); 
48     ---Purpose: 
49     --- Modifier   
50     --- Sets the first pave <thePave> 
51      
52     Pave1(me) 
53     returns Pave from BOPDS; 
54     ---C++: return const &     
55     ---Purpose: 
56     --- Selector 
57     --- Returns the first pave           
58      
59     SetPave2(me:mutable; 
60         thePave:Pave from BOPDS); 
61     ---Purpose: 
62     --- Modifier   
63     --- Sets the second pave <thePave>     
64      
65     Pave2(me) 
66     returns Pave from BOPDS; 
67     ---C++: return const &  
68     ---Purpose:  
69     --- Selector 
70     --- Returns the second pave 
71
72     SetEdge(me:mutable; 
73         theEdge:Integer from Standard); 
74     ---Purpose: 
75     --- Modifier   
76     --- Sets the index of edge of pave block <theEdge>      
77     Edge(me) 
78         returns Integer from Standard;  
79     ---Purpose:  
80     --- Selector 
81     --- Returns the index of edge of pave block
82  
83     HasEdge(me) 
84     returns Boolean from Standard; 
85     ---Purpose: 
86     --- Query
87     --- Returns true if the pave block has edge 
88          
89     HasEdge(me; 
90         theEdge:out Integer from Standard) 
91     returns Boolean from Standard; 
92     ---Purpose: 
93     --- Query
94     --- Returns true if the pave block has edge 
95     --- Returns the index of edge <theEdge> 
96         
97     SetOriginalEdge  (me:mutable;   
98         theEdge:Integer from Standard);  
99     ---Purpose: 
100     --- Modifier   
101     --- Sets the index of original edge  
102     --- of the pave block <theEdge>   
103          
104     OriginalEdge(me) 
105     returns Integer from Standard; 
106     ---Purpose:  
107     --- Selector 
108     --- Returns the index of original edge of pave block 
109         
110     IsSplitEdge(me) 
111     returns Boolean from Standard; 
112     ---Purpose: 
113     --- Query
114     --- Returns true if the edge is equal to the original edge   
115     --- of the pave block    
116      
117     Range(me; 
118         theT1:out Real from Standard; 
119         theT2:out Real from Standard);
120     ---Purpose:  
121     --- Selector 
122     --- Returns the parametric range <theT1,theT2>  
123     --- of the pave block  
124      
125     HasSameBounds(me; 
126         theOther: PaveBlock from BOPDS) 
127     returns Boolean from Standard; 
128     ---Purpose: 
129     --- Query
130     --- Returns true if the pave block has pave indices   
131     --- that equal to the  pave indices of the pave block   
132     --- <theOther> 
133          
134     Indices(me; 
135         theIndex1:out Integer from Standard; 
136         theIndex2:out Integer from Standard); 
137     ---Purpose: 
138     --- Selector 
139     --- Returns the pave indices  <theIndex1,theIndex2>  
140     --- of the pave block   
141         
142     -- 
143     -- extras
144     --  
145     IsToUpdate(me) 
146     returns Boolean from Standard; 
147     ---Purpose:  
148     --- Query
149     --- Returns true if the pave block contains extra paves 
150          
151     AppendExtPave(me:mutable; 
152         theLP:Pave from BOPDS);  
153     ---Purpose: 
154     --- Modifier 
155     --- Appends extra paves <theLP> 
156          
157     AppendExtPave1(me:mutable; 
158         thePave:Pave from BOPDS);  
159     ---Purpose: 
160     --- Modifier 
161     --- Appends extra pave <thePave>     
162       
163     ExtPaves(me) 
164     returns ListOfPave from BOPDS; 
165     ---C++: return const &  
166     ---Purpose: 
167     --- Selector 
168     --- Returns the  extra paves 
169     
170     ChangeExtPaves(me:mutable) 
171     returns ListOfPave from BOPDS; 
172     ---C++: return &  
173     ---Purpose: 
174     --- Selector / Modifier
175     --- Returns the extra paves 
176  
177     Update(me:mutable; 
178         theLPB  : out ListOfPaveBlock from BOPDS; 
179         theFlag : Boolean from Standard=Standard_True);
180     ---Purpose: 
181     --- Modifier  
182     --- Updates the pave block. The extra paves are used 
183     --- to create new pave blocks <theLPB>. 
184     --- <theFlag> - if true, the first pave and the second  
185     --- pave are used to produce new pave blocks. 
186          
187     ContainsParameter(me; 
188         thePrm:Real from Standard; 
189         theTol:Real from Standard) 
190     returns Boolean from Standard; 
191     ---Purpose: 
192     --- Query 
193     --- Returns true if the extra paves contain the pave 
194     --- with given value of the parameter <thePrm> 
195     ---  <theTol>  - the value of the tolerance to compare 
196  
197     -- 
198     -- shrunk data   
199     -- 
200     SetShrunkData(me:mutable;  
201         theTS1:Real from Standard;
202         theTS2:Real from Standard;
203         theBox:Box from Bnd);  
204     ---Purpose: 
205     --- Modifier  
206     --- Sets the shrunk data for the pave block 
207     --- <theTS1>,  <theTS2> - shrunk range 
208     --- <theBox> - the bounding box 
209          
210     ShrunkData(me; 
211         theTS1:out Real from Standard;
212         theTS2:out Real from Standard;  
213         theBox:out Box from Bnd);
214     ---Purpose: 
215     --- Selector
216     --- Returns  the shrunk data for the pave block 
217     --- <theTS1>,  <theTS2> - shrunk range 
218     --- <theBox> - the bounding box  
219         
220     HasShrunkData(me) 
221     returns Boolean from Standard; 
222     ---Purpose: 
223     --- Query 
224     --- Returns true if the pave block contains 
225     --- the shrunk data 
226      
227     Dump(me);
228
229
230 fields 
231     --general 
232     myAllocator : BaseAllocator from BOPCol is protected; 
233     myEdge         :  Integer from Standard is protected; 
234     myOriginalEdge :  Integer from Standard is protected;
235     myPave1        :  Pave from BOPDS is protected;
236     myPave2        :  Pave from BOPDS is protected;
237     --extras 
238     myExtPaves     :  ListOfPave from BOPDS is protected; 
239     --shrunk data  
240     myTS1          :  Real from Standard is protected;     
241     myTS2          :  Real from Standard is protected;   
242     myShrunkBox    :  Box   from Bnd is protected;  
243     --dummies
244     myMFence       :  MapOfInteger from BOPCol is protected;   
245  
246 end PaveBlock;
247