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

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

2 | -- Created: Fri May 22 14:20:59 1992 | |

3 | -- Author: Jacques GOUSSARD | |

4 | -- <jag@sdsun1> | |

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

6 | ||

7 | ||

8 | generic class IntCurveCurveGen from IntCurve ( | |

9 | TheCurve as any; | |

10 | TheCurveTool as any) -- as CurveTool from IntCurve(TheCurve) | |

11 | ||

12 | ---Purpose: Provides the algorithm to intersect two 2D-curves. | |

13 | -- The curves may be parametric curves or Conic (see | |

14 | -- the template class CurveTool). | |

15 | -- | |

16 | -- Note: The exception ConstructionError is raised in | |

17 | -- constructors or in Perform methods when a domain | |

18 | -- (Domain from IntRes2d) is not correct, i-e when | |

19 | -- the method TheType returns GeomAbs_Circle or | |

20 | -- GeomAbs_Ellipsei and the corresponding domain is | |

21 | -- not closed (use the SetEquivalentParameters for a | |

22 | -- domain on a circle or an ellipse) or when the | |

23 | -- method TheType returns GeomAbs_Other and the | |

24 | -- domain of the curve is not bounded | |

25 | -- (HasFirstPoint() && HasLastPoint() return True). | |

26 | ---Level: Advanced | |

27 | ||

28 | inherits Intersection from IntRes2d | |

29 | ||

30 | uses Domain from IntRes2d, | |

31 | IntConicConic from IntCurve, | |

32 | IConicTool from IntCurve, | |

33 | Array1OfReal from TColStd | |

34 | ||

35 | raises ConstructionError from Standard | |

36 | ||

37 | ||

38 | class TheProjPCur instantiates ProjPCurGen from IntCurve( | |

39 | TheCurve, | |

40 | TheCurveTool); | |

41 | ||

42 | class TheIntConicCurve instantiates IntConicCurveGen from IntCurve | |

43 | (IConicTool from IntCurve, | |

44 | TheCurve, | |

45 | TheCurveTool, | |

46 | TheProjPCur); | |

47 | ||

48 | class IntConicCurve instantiates UserIntConicCurveGen from IntCurve | |

49 | (IConicTool from IntCurve, | |

50 | TheCurve, | |

51 | TheCurveTool, | |

52 | TheIntConicCurve); | |

53 | ||

54 | class TheIntPCurvePCurve instantiates IntPolyPolyGen from IntCurve | |

55 | (TheCurve, | |

56 | TheCurveTool, | |

57 | TheProjPCur); | |

58 | is | |

59 | ||

60 | Create | |

61 | ||

62 | ---Purpose: Empty constructor. | |

63 | returns IntCurveCurveGen from IntCurve; | |

64 | ---C++: inline | |

65 | ||

66 | ||

67 | Create (C: TheCurve; TolConf,Tol: Real from Standard) | |

68 | ||

69 | ---Purpose: Self Intersection of a curve | |

70 | ---C++: inline | |

71 | returns IntCurveCurveGen from IntCurve | |

72 | raises ConstructionError from Standard; | |

73 | ||

74 | ||

75 | Create (C: TheCurve; D: Domain from IntRes2d; | |

76 | TolConf,Tol: Real from Standard) | |

77 | ||

78 | ---Purpose: Self Intersection of a curve with a domain. | |

79 | ---C++: inline | |

80 | returns IntCurveCurveGen from IntCurve | |

81 | raises ConstructionError from Standard; | |

82 | ||

83 | ||

84 | Create (C1: TheCurve; C2: TheCurve; | |

85 | TolConf,Tol: Real from Standard) | |

86 | ||

87 | ---Purpose: Intersection between 2 curves. | |

88 | ---C++: inline | |

89 | returns IntCurveCurveGen from IntCurve | |

90 | raises ConstructionError from Standard; | |

91 | ||

92 | ||

93 | Create (C1: TheCurve; D1: Domain from IntRes2d; | |

94 | C2: TheCurve; | |

95 | TolConf,Tol: Real from Standard) | |

96 | ||

97 | ---Purpose: Intersection between 2 curves. | |

98 | ---C++: inline | |

99 | returns IntCurveCurveGen from IntCurve | |

100 | raises ConstructionError from Standard; | |

101 | ||

102 | ||

103 | Create (C1: TheCurve; | |

104 | C2: TheCurve; D2: Domain from IntRes2d; | |

105 | TolConf,Tol: Real from Standard) | |

106 | ||

107 | ---Purpose: Intersection between 2 curves. | |

108 | ---C++: inline | |

109 | returns IntCurveCurveGen from IntCurve | |

110 | raises ConstructionError from Standard; | |

111 | ||

112 | ||

113 | ||

114 | Create (C1: TheCurve; D1: Domain from IntRes2d; | |

115 | C2: TheCurve; D2: Domain from IntRes2d; | |

116 | TolConf,Tol: Real from Standard) | |

117 | ||

118 | ---Purpose: Intersection between 2 curves. | |

119 | ---C++: inline | |

120 | returns IntCurveCurveGen from IntCurve | |

121 | raises ConstructionError from Standard; | |

122 | ||

123 | ||

124 | ||

125 | Perform (me: in out; | |

126 | C1: TheCurve; D1: Domain from IntRes2d; | |

127 | C2: TheCurve; D2: Domain from IntRes2d; | |

128 | TolConf,Tol: Real from Standard) | |

129 | ---Purpose: Intersection between 2 curves. | |

130 | ||

131 | raises ConstructionError from Standard | |

132 | is static; | |

133 | ||

134 | Perform (me: in out; | |

135 | C1: TheCurve; | |

136 | C2: TheCurve; | |

137 | TolConf,Tol: Real from Standard) | |

138 | ||

139 | ---Purpose: Intersection between 2 curves. | |

140 | ---C++: inline | |

141 | raises ConstructionError from Standard | |

142 | is static; | |

143 | ||

144 | Perform (me: in out; | |

145 | C1: TheCurve; D1: Domain from IntRes2d; | |

146 | TolConf,Tol: Real from Standard) | |

147 | ||

148 | ---Purpose: Intersection between 2 curves. | |

149 | raises ConstructionError from Standard | |

150 | is static; | |

151 | ||

152 | Perform (me: in out; | |

153 | C1: TheCurve; | |

154 | TolConf,Tol: Real from Standard) | |

155 | ||

156 | ---Purpose: Intersection between 2 curves. | |

157 | ||

158 | raises ConstructionError from Standard | |

159 | is static; | |

160 | ||

161 | Perform (me: in out; | |

162 | C1: TheCurve; D1: Domain from IntRes2d; | |

163 | C2: TheCurve; | |

164 | TolConf,Tol: Real from Standard) | |

165 | ---C++: inline | |

166 | ---Purpose: Intersection between 2 curves. | |

167 | ||

168 | raises ConstructionError from Standard | |

169 | is static; | |

170 | ||

171 | Perform (me: in out; | |

172 | C1: TheCurve; | |

173 | C2: TheCurve; D2: Domain from IntRes2d; | |

174 | TolConf,Tol: Real from Standard) | |

175 | ---C++: inline | |

176 | ---Purpose: Intersection between 2 curves. | |

177 | ||

178 | raises ConstructionError from Standard | |

179 | is static; | |

180 | ||

181 | ||

182 | ComputeDomain(me; C1: TheCurve; TolDomain: Real from Standard) | |

183 | ||

184 | ---Purpose: Create a domain from a curve | |

185 | returns Domain from IntRes2d | |

186 | is static; | |

187 | ||

188 | ||

189 | ||

190 | InternalPerform(me: in out; | |

191 | C1: TheCurve; D1: Domain from IntRes2d; | |

192 | C2: TheCurve; D2: Domain from IntRes2d; | |

193 | TolConf,Tol: Real from Standard; | |

194 | Composite: Boolean from Standard) | |

195 | ||

196 | ---Purpose: Intersection between 2 curves. | |

197 | ||

198 | raises ConstructionError from Standard | |

199 | is static private; | |

200 | ||

201 | ||

202 | InternalCompositePerform(me: in out; | |

203 | C1: TheCurve; D1: Domain from IntRes2d; | |

204 | N1,NB1: Integer from Standard; | |

205 | Tab1: Array1OfReal from TColStd; | |

206 | C2: TheCurve; D2: Domain from IntRes2d; | |

207 | N2,NB2: Integer from Standard; | |

208 | Tab2: Array1OfReal from TColStd; | |

209 | TolConf,Tol: Real from Standard; | |

210 | Composite: Boolean from Standard) | |

211 | ||

212 | ---Purpose: Intersection between 2 curves. | |

213 | ||

214 | raises ConstructionError from Standard | |

215 | is static private; | |

216 | ||

217 | ||

218 | fields | |

219 | ||

220 | param1inf : Real from Standard; | |

221 | param1sup : Real from Standard; | |

222 | param2inf : Real from Standard; | |

223 | param2sup : Real from Standard; | |

224 | intconiconi : IntConicConic from IntCurve; | |

225 | intconicurv : TheIntConicCurve; | |

226 | intcurvcurv : TheIntPCurvePCurve; | |

227 | ||

228 | end IntCurveCurveGen; | |

229 | ||

230 | ||

231 | ||

232 | ||

233 |