0024428: Implementation of LGPL license
[occt.git] / src / BOPDS / BOPDS_SubIterator.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
7 -- under the terms of the GNU Lesser General Public 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 SubIterator from BOPDS 
16      
17         ---Purpose: 
18         -- The class BOPDS_SubIterator is  
19         --  1.to compute intersections between two sub-sets of 
20         --    BRep sub-shapes  
21         --    of arguments of an operation (see the class BOPDS_DS)
22         --    in terms of theirs bounding boxes           
23         --  2.provides interface to iterare the pairs of  
24         --    intersected sub-shapes of given type     
25         
26 uses  
27     ShapeEnum from TopAbs, 
28     BaseAllocator from BOPCol, 
29     ListOfInteger from BOPCol, 
30     PListOfInteger from BOPCol,  
31     DS  from BOPDS,
32     PDS from BOPDS, 
33     PassKeyBoolean from BOPDS, 
34     ListOfPassKeyBoolean from BOPDS,
35     ListIteratorOfListOfPassKeyBoolean from BOPDS, 
36     VectorOfListOfPassKeyBoolean from BOPDS 
37     
38     
39 --raises
40
41 is 
42     Create   
43         returns SubIterator from BOPDS;
44     ---C++: alias "Standard_EXPORT virtual ~BOPDS_SubIterator();" 
45         ---Purpose:  
46         --- Empty contructor  
47         ---   
48          
49     Create (theAllocator: BaseAllocator from BOPCol)  
50         returns SubIterator from BOPDS;
51         ---Purpose:  
52         ---  Contructor    
53         ---  theAllocator - the allocator to manage the memory     
54         ---  
55          
56     SetDS(me:out; 
57             pDS:PDS from BOPDS); 
58         ---Purpose: 
59         --- Modifier 
60         --- Sets the data structure <pDS> to process 
61          
62     DS(me) 
63       returns DS from BOPDS; 
64     ---C++:return const & 
65         ---Purpose: 
66         --- Selector 
67         --- Returns the data structure  
68         
69     SetSubSet1(me:out; 
70             theLI:ListOfInteger from BOPCol); 
71         ---Purpose: 
72         --- Modifier 
73         --- Sets the first set of indices  <theLI> to process 
74          
75     SubSet1(me)
76         returns ListOfInteger from BOPCol; 
77     ---C++:return const &   
78         ---Purpose: 
79         --- Selector
80         --- Returns the first set of indices to process 
81    
82     SetSubSet2(me:out; 
83             theLI:ListOfInteger from BOPCol); 
84         ---Purpose: 
85         --- Modifier 
86         --- Sets the second set of indices  <theLI> to process 
87     SubSet2(me)
88         returns ListOfInteger from BOPCol; 
89     ---C++:return const & 
90         ---Purpose: 
91         --- Selector
92         --- Returns the second set of indices to process   
93          
94     Initialize(me:out); 
95         ---Purpose:  
96         --- Initializes the  iterator 
97      
98     More(me)  
99         returns Boolean from Standard; 
100         ---Purpose: 
101         --- Returns  true if still there are pairs 
102         --  of intersected shapes  
103          
104     Next(me:out); 
105         ---Purpose: 
106         --- Moves iterations ahead  
107         
108     Value(me;  
109             theIndex1:out Integer from Standard;
110             theIndex2:out Integer from Standard); 
111         ---Purpose: 
112         --- Returns indices (DS) of intersected shapes 
113         --- theIndex1 - the index of the first shape  
114         --- theIndex2 - the index of the second shape 
115         
116     Prepare(me:out) 
117         is virtual; 
118         ---Purpose: 
119         --- Perform the intersection algorithm and prepare  
120         --- the results to be used  
121          
122     Intersect(me:out) 
123         is virtual protected; 
124                      
125
126 fields 
127     myAllocator:  BaseAllocator from BOPCol is protected; 
128     myDS       :  PDS from BOPDS is protected;  
129     myList     :  ListOfPassKeyBoolean from BOPDS is protected;  
130     myIterator :  ListIteratorOfListOfPassKeyBoolean from BOPDS is protected; 
131     mySubSet1  :  PListOfInteger from BOPCol is protected; 
132     mySubSet2  :  PListOfInteger from BOPCol is protected;  
133     
134 end SubIterator;