1 -- Created by: Peter KURNEV
2 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
4 -- The content of this file is subject to the Open CASCADE Technology Public
5 -- License Version 6.5 (the "License"). You may not use the content of this file
6 -- except in compliance with the License. Please obtain a copy of the License
7 -- at http://www.opencascade.org and read it completely before using this file.
9 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12 -- The Original Code and all software distributed under the License is
13 -- distributed on an "AS IS" basis, without warranty of any kind, and the
14 -- Initial Developer hereby disclaims all such warranties, including without
15 -- limitation, any warranties of merchantability, fitness for a particular
16 -- purpose or non-infringement. Please see the License for the specific terms
17 -- and conditions governing the rights and limitations under the License.
19 class SubIterator from BOPDS
22 -- The class BOPDS_SubIterator is
23 -- 1.to compute intersections between two sub-sets of
25 -- of arguments of an operation (see the class BOPDS_DS)
26 -- in terms of theirs bounding boxes
27 -- 2.provides interface to iterare the pairs of
28 -- intersected sub-shapes of given type
31 ShapeEnum from TopAbs,
32 BaseAllocator from BOPCol,
33 ListOfInteger from BOPCol,
34 PListOfInteger from BOPCol,
37 PassKeyBoolean from BOPDS,
38 ListOfPassKeyBoolean from BOPDS,
39 ListIteratorOfListOfPassKeyBoolean from BOPDS,
40 VectorOfListOfPassKeyBoolean from BOPDS
47 returns SubIterator from BOPDS;
48 ---C++: alias "Standard_EXPORT virtual ~BOPDS_SubIterator();"
53 Create (theAllocator: BaseAllocator from BOPCol)
54 returns SubIterator from BOPDS;
57 --- theAllocator - the allocator to manage the memory
64 --- Sets the data structure <pDS> to process
67 returns DS from BOPDS;
71 --- Returns the data structure
74 theLI:ListOfInteger from BOPCol);
77 --- Sets the first set of indices <theLI> to process
80 returns ListOfInteger from BOPCol;
84 --- Returns the first set of indices to process
87 theLI:ListOfInteger from BOPCol);
90 --- Sets the second set of indices <theLI> to process
92 returns ListOfInteger from BOPCol;
96 --- Returns the second set of indices to process
100 --- Initializes the iterator
103 returns Boolean from Standard;
105 --- Returns true if still there are pairs
106 -- of intersected shapes
110 --- Moves iterations ahead
113 theIndex1:out Integer from Standard;
114 theIndex2:out Integer from Standard);
116 --- Returns indices (DS) of intersected shapes
117 --- theIndex1 - the index of the first shape
118 --- theIndex2 - the index of the second shape
123 --- Perform the intersection algorithm and prepare
124 --- the results to be used
127 is virtual protected;
131 myAllocator: BaseAllocator from BOPCol is protected;
132 myDS : PDS from BOPDS is protected;
133 myList : ListOfPassKeyBoolean from BOPDS is protected;
134 myIterator : ListIteratorOfListOfPassKeyBoolean from BOPDS is protected;
135 mySubSet1 : PListOfInteger from BOPCol is protected;
136 mySubSet2 : PListOfInteger from BOPCol is protected;