summaryrefslogtreecommitdiff
path: root/src/BOPTools/BOPTools_IteratorOfCoupleOfShape.cdl
blob: f0b1b89b5c4c7befe3f523cb8966a35e856791b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
-- File:	BOPTools_IteratorOfCoupleOfShape.cdl
-- Created:	Mon Nov 27 16:31:08 2000
-- Author:	Michael KLOKOV
--		<mkk@nizhnox.nnov.matra-dtv.fr>
---Copyright:	 Matra Datavision 2000

class IteratorOfCoupleOfShape from BOPTools

    	---Purpose: The class IteratorOfCoupleOfShape provides the iteration
    	---         on the couples of shapes stored in ShapesDataStructure 
	---         according to the given types of shapes and
	---         status of their intersection.
	---         The statuses are stored in 2 dimension array.

uses
    ShapeEnum from TopAbs,
    HArray2OfIntersectionStatus from BOPTools,
    PShapesDataStructure from BooleanOperations,
    IntersectionStatus from BOPTools, 
    ListOfCoupleOfInteger from BOPTools, 
    ListIteratorOfListOfCoupleOfInteger from BOPTools,    
    NoSuchObject from Standard 
    
raises NoSuchObject from Standard 

is

    Create  
    	returns IteratorOfCoupleOfShape from BOPTools;
    	---Purpose: 
    	--- Empty Constructor 
    	---

    Create(PDS: PShapesDataStructure from BooleanOperations;
	   Type1: ShapeEnum from TopAbs;
    	   Type2: ShapeEnum from TopAbs)
    	returns IteratorOfCoupleOfShape from BOPTools;
    	---Purpose: 
    	--- Initializes iterator by ShapesDataStructure and
    	--- shape types
	---

    Destroy(me: in out) is virtual;
        ---C++: alias "Standard_EXPORT virtual ~BOPTools_IteratorOfCoupleOfShape(){Destroy();}"

    Initialize(me: in out; Type1: ShapeEnum from TopAbs;
    	    	    	   Type2: ShapeEnum from TopAbs) 
							    
	raises NoSuchObject from Standard 
    	is virtual;
    	---Purpose: 
    	--- Initializes iterator with shape types. 
    	--- The iterator uses PDS assigned in constructor or in SetDataStructure().
    	--- Raises the exception if myPDS is null.
	---


    SetDataStructure(me: in out; PDS: PShapesDataStructure from BooleanOperations)
    	raises
	    NoSuchObject from Standard;
    	---Purpose: 
    	--- Initialize iterator with ShapeDataStructure.
	---
    

    More(me)  
    	returns Boolean from Standard 
    	is virtual;
	---Purpose:
	--- Returns True if there are still not
	--- treated couples of shapes
	---
    
    Next(me: in out) 
    	is virtual;
    	---Purpose:
	--- Moves to the next couple of iteration
	---
    
    Current(me; Index1: in out Integer from Standard;
    	    	Index2: in out Integer from Standard;
    	    	WithSubShape: out Boolean from Standard) 
    	is virtual;
    	---Purpose: 
    	--- Returns current couple of indices and
    	--- flag WithSubShape which is true 
    	--- if bounding boxes of subshapes
    	--- are intersected
	---

    ListOfCouple(me) 
    	returns  ListOfCoupleOfInteger from BOPTools;  
    	---C++:  return const &
	---Purpose:
	--- Returns a list of couples of shape indices
	--- according to shape types by which
	--- the iterator was initialized
	---
	
    MoreP(me)  
    	returns Boolean from Standard   
    	is protected;
    
    NextP(me: in out) 
    	is protected;
    
    CurrentP(me;Index1: in out Integer from Standard;
    	    	Index2: in out Integer from Standard)
    	raises NoSuchObject from Standard 
    	is protected;

    SetIntersectionStatus(me: in out; Index1: Integer from Standard;
		        	      Index2: Integer from Standard;
    	    	    	    	      theStatus: IntersectionStatus from BOPTools);
    	---Purpose:
	--- Sets status to array according to Index1 and Index2
	---

    GetTableOfIntersectionStatus(me)
    	returns HArray2OfIntersectionStatus from BOPTools;
	---C++: return const &
	---Purpose:
	--- Returns 2 dimension array of intersection statuses
	---
    
    DumpTableOfIntersectionStatus(me);
    	---Purpose:
	--- For internal use
	---
    
fields
    myPDS: PShapesDataStructure from BooleanOperations is protected;
    myTableOfStatus: HArray2OfIntersectionStatus from BOPTools is protected;
    myCurrentIndex1: Integer from Standard is protected;
    myCurrentIndex2: Integer from Standard is protected;
    myType1:         ShapeEnum from TopAbs is protected;
    myType2:         ShapeEnum from TopAbs is protected;
--  
    myFirstLowerIndex :Integer from Standard is protected; 
    myFirstUpperIndex :Integer from Standard is protected; 
    mySecondLowerIndex:Integer from Standard is protected; 
    mySecondUpperIndex:Integer from Standard is protected; 
    myListOfCouple    :ListOfCoupleOfInteger from BOPTools is protected;  
    myIterator        :ListIteratorOfListOfCoupleOfInteger from BOPTools is protected;  
--  
end IteratorOfCoupleOfShape from BOPTools;