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

7fd59977 | 1 | -- File: InterferencePolygonPolyhedron.cdl |

2 | -- Created: Tue Sep 29 12:00:14 1992 | |

3 | -- Author: Didier PIFFAULT | |

4 | -- <dpf@phylox> | |

5 | ---Copyright: Matra Datavision 1992 | |

6 | ||

7 | ||

8 | generic class InterferencePolygonPolyhedron from Intf | |

9 | (Polygon3d as any; | |

10 | ToolPolygon3d as any; -- as ToolPolygon(Pnt,Polygon3d,Box) | |

11 | Polyhedron as any; | |

12 | ToolPolyh as any) -- as ToolPolyhedron(Polyhedron) | |

13 | inherits Interference from Intf | |

14 | ||

15 | ---Purpose: Computes the interference between a polygon and a | |

16 | -- Polyhedron. | |

17 | ||

18 | uses Pnt from gp, | |

19 | Lin from gp, | |

20 | XYZ from gp, | |

21 | Array1OfLin from Intf, | |

22 | SectionPoint from Intf, | |

23 | SeqOfSectionPoint from Intf, | |

24 | TangentZone from Intf, | |

25 | SeqOfTangentZone from Intf, | |

26 | BoundSortBox from Bnd | |

27 | ||

28 | is | |

29 | ||

30 | -- Interface : | |

31 | ||

32 | Create returns InterferencePolygonPolyhedron from Intf; | |

33 | ---Purpose: Constructs an empty interference between Polygon and | |

34 | -- Polyhedron. | |

35 | ||

36 | Create (thePolyg : in Polygon3d; | |

37 | thePolyh : in Polyhedron) | |

38 | returns InterferencePolygonPolyhedron from Intf; | |

39 | ---Purpose: Constructs and computes an interference between the Polygon | |

40 | -- and the Polyhedron. | |

41 | ||

42 | Create (theLin : in Lin from gp; | |

43 | thePolyh : in Polyhedron) | |

44 | returns InterferencePolygonPolyhedron from Intf; | |

45 | ---Purpose: Constructs and computes an interference between the | |

46 | -- Straight Line and the Polyhedron. | |

47 | ||

48 | Create (theLins : in Array1OfLin from Intf; | |

49 | thePolyh : in Polyhedron) | |

50 | returns InterferencePolygonPolyhedron from Intf; | |

51 | ---Purpose: Constructs and computes an interference between the | |

52 | -- Straight Lines and the Polyhedron. | |

53 | ||

54 | Perform (me : in out; | |

55 | thePolyg : in Polygon3d; | |

56 | thePolyh : in Polyhedron) | |

57 | ---Purpose: Computes an interference between the Polygon and the | |

58 | -- Polyhedron. | |

59 | is static; | |

60 | ||

61 | Perform (me : in out; | |

62 | theLin : in Lin from gp; | |

63 | thePolyh : Polyhedron) | |

64 | ---Purpose: Computes an interference between the Straight Line and the | |

65 | -- Polyhedron. | |

66 | is static; | |

67 | ||

68 | Perform (me : in out; | |

69 | theLins : in Array1OfLin from Intf; | |

70 | thePolyh : in Polyhedron) | |

71 | ---Purpose: Computes an interference between the Straight Lines and | |

72 | -- the Polyhedron. | |

73 | is static; | |

74 | ||

75 | ||

76 | ||

77 | ||

78 | --------------- Optimisation : On Passe le Bnd_BoundSortBox | |

79 | ||

80 | ||

81 | Create (thePolyg : in Polygon3d; | |

82 | thePolyh : in Polyhedron; | |

83 | theBoundSB : in out BoundSortBox from Bnd) | |

84 | returns InterferencePolygonPolyhedron from Intf; | |

85 | ---Purpose: Constructs and computes an interference between the Polygon | |

86 | -- and the Polyhedron. | |

87 | ||

88 | Create (theLin : in Lin from gp; | |

89 | thePolyh : in Polyhedron; | |

90 | theBoundSB : in out BoundSortBox from Bnd) | |

91 | returns InterferencePolygonPolyhedron from Intf; | |

92 | ---Purpose: Constructs and computes an interference between the | |

93 | -- Straight Line and the Polyhedron. | |

94 | ||

95 | Create (theLins : in Array1OfLin from Intf; | |

96 | thePolyh : in Polyhedron; | |

97 | theBoundSB : in out BoundSortBox from Bnd) | |

98 | returns InterferencePolygonPolyhedron from Intf; | |

99 | ---Purpose: Constructs and computes an interference between the | |

100 | -- Straight Lines and the Polyhedron. | |

101 | ||

102 | Perform (me : in out; | |

103 | thePolyg : in Polygon3d; | |

104 | thePolyh : in Polyhedron; | |

105 | theBoundSB : in out BoundSortBox from Bnd) | |

106 | ---Purpose: Computes an interference between the Polygon and the | |

107 | -- Polyhedron. | |

108 | is static; | |

109 | ||

110 | Perform (me : in out; | |

111 | theLin : in Lin from gp; | |

112 | thePolyh : Polyhedron; | |

113 | theBoundSB : in out BoundSortBox from Bnd) | |

114 | ---Purpose: Computes an interference between the Straight Line and the | |

115 | -- Polyhedron. | |

116 | is static; | |

117 | ||

118 | Perform (me : in out; | |

119 | theLins : in Array1OfLin from Intf; | |

120 | thePolyh : in Polyhedron; | |

121 | theBoundSB : in out BoundSortBox from Bnd) | |

122 | ---Purpose: Computes an interference between the Straight Lines and | |

123 | -- the Polyhedron. | |

124 | is static; | |

125 | ||

126 | ||

127 | ||

128 | Interference (me : in out; | |

129 | thePolyg : in Polygon3d; | |

130 | thePolyh : in Polyhedron; | |

131 | theBoundSB : in out BoundSortBox from Bnd) | |

132 | is static; | |

133 | ---Purpose: Compares the boundings between the segment of <thePolyg> and | |

134 | -- the facets of <thePolyh>. | |

135 | ||

136 | ||

137 | ||

138 | ||

139 | -- Implementation : | |

140 | ||

141 | Interference (me : in out; | |

142 | thePolyg : in Polygon3d; | |

143 | thePolyh : in Polyhedron) | |

144 | is static; | |

145 | ---Purpose: Compares the boundings between the segment of <thePolyg> and | |

146 | -- the facets of <thePolyh>. | |

147 | ||

148 | ||

149 | Intersect (me : in out; | |

150 | BegO : in Pnt from gp; | |

151 | EndO : in Pnt from gp; | |

152 | Infinite : Boolean from Standard; | |

153 | TTri : in Integer from Standard; | |

154 | thePolyh : in Polyhedron) | |

155 | is static private; | |

156 | ---Purpose: Computes the intersection between the segment <BegO><EndO> | |

157 | -- and the triangle <TTri> of <thePolyh>. | |

158 | ||

159 | Intersect (me : in out; | |

160 | BegO : in Pnt from gp; | |

161 | EndO : in Pnt from gp; | |

162 | Infinite : Boolean from Standard; | |

163 | TTri : in Integer from Standard; | |

164 | thePolyh : in Polyhedron; | |

165 | TriNormal: in XYZ from gp; | |

166 | TriDp : in Real from Standard; | |

167 | dBegTri : in Real from Standard; | |

168 | dEndTri : in Real from Standard) | |

169 | is static private; | |

170 | ---Purpose: Computes the intersection between the segment <BegO><EndO> | |

171 | -- and the triangle <TTri> of <thePolyh>. | |

172 | ||

41194117 K |
173 | fields |

174 | BeginOfClosedPolygon: Boolean from Standard; | |

175 | iLin : Integer from Standard; | |

176 | ||

7fd59977 | 177 | end InterferencePolygonPolyhedron; |