Commit | Line | Data |
---|---|---|

4e57c75e | 1 | -- Created by: Peter KURNEV |

973c2be1 | 2 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |

4e57c75e | 3 | -- |

973c2be1 | 4 | -- This file is part of Open CASCADE Technology software library. |

4e57c75e | 5 | -- |

973c2be1 | 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. | |

4e57c75e | 11 | -- |

973c2be1 | 12 | -- Alternatively, this file may be used under the terms of Open CASCADE |

13 | -- commercial license or contractual agreement. | |

4e57c75e | 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; |