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

b311480e | 1 | -- Created on: 1991-12-02 |

2 | -- Created by: Laurent PAINNOT | |

3 | -- Copyright (c) 1991-1999 Matra Datavision | |

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

b311480e | 5 | -- |

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

b311480e | 7 | -- |

973c2be1 | 8 | -- This library is free software; you can redistribute it and / or modify it |

9 | -- under the terms of the GNU Lesser General Public version 2.1 as published | |

10 | -- by the Free Software Foundation, with special exception defined in the file | |

11 | -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT | |

12 | -- distribution for complete text of the license and disclaimer of any warranty. | |

b311480e | 13 | -- |

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

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

7fd59977 | 16 | |

17 | class MultiPointConstraint from AppDef | |

18 | ||

19 | inherits MultiPoint from AppParCurves | |

20 | ||

21 | ---Purpose: Describes a MultiPointConstraint used in a | |

22 | -- Multiline. MultiPointConstraints are composed | |

23 | -- of several two or three-dimensional points. | |

24 | -- The purpose is to define the corresponding | |

25 | -- points that share a common constraint in order | |

26 | -- to compute the approximation of several lines in parallel. | |

27 | -- Notes: | |

28 | -- - The order of points of a MultiPointConstraints is very important. | |

29 | -- Users must give 3D points first, and then 2D points. | |

30 | -- - The constraints for the points included in a | |

31 | -- MultiPointConstraint are always identical for | |

32 | -- all points, including the parameter. | |

33 | -- - If a MultiPointConstraint is a "tangency" | |

34 | -- point, the point is also a "passing" point. | |

35 | ||

36 | ||

37 | ||

38 | uses Pnt from gp, | |

39 | Pnt2d from gp, | |

40 | Vec from gp, | |

41 | Vec2d from gp, | |

42 | Array1OfPnt from TColgp, | |

43 | Array1OfPnt2d from TColgp, | |

44 | Array1OfVec from TColgp, | |

45 | Array1OfVec2d from TColgp, | |

46 | Constraint from AppParCurves, | |

47 | OStream from Standard, | |

48 | TShared from MMgt | |

49 | ||

50 | raises OutOfRange from Standard, | |

51 | ConstructionError from Standard, | |

52 | DimensionError from Standard | |

53 | ||

54 | ||

55 | is | |

56 | ||

57 | Create | |

58 | ---Purpose: creates an undefined MultiPointConstraint. | |

59 | ||

60 | returns MultiPointConstraint from AppDef; | |

61 | ||

62 | ||

63 | Create(NbPoints, NbPoints2d: Integer) | |

64 | ---Purpose: constructs a set of Points used to approximate a Multiline. | |

65 | -- These Points can be of 2 or 3 dimensions. | |

66 | -- Points will be initialized with SetPoint and SetPoint2d. | |

67 | ||

68 | returns MultiPointConstraint from AppDef; | |

69 | ||

70 | ||

71 | ||

72 | Create(tabP: Array1OfPnt) | |

73 | ---Purpose: creates a MultiPoint only composed of 3D points. | |

74 | ||

75 | returns MultiPointConstraint from AppDef; | |

76 | ||

77 | ||

78 | Create(tabP: Array1OfPnt2d) | |

79 | ---Purpose: creates a MultiPoint only composed of 2D points. | |

80 | ||

81 | returns MultiPointConstraint from AppDef; | |

82 | ||

83 | ||

84 | Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d) | |

85 | ---Purpose: constructs a set of Points used to approximate a Multiline. | |

86 | -- These Points can be of 2 or 3 dimensions. | |

87 | -- Points will be initialized with SetPoint and SetPoint2d. | |

88 | ||

89 | returns MultiPointConstraint from AppDef; | |

90 | ||

91 | ||

92 | ||

93 | Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d; | |

94 | tabVec: Array1OfVec; tabVec2d: Array1OfVec2d; | |

95 | tabCur: Array1OfVec; tabCur2d: Array1OfVec2d) | |

96 | ---Purpose: creates a MultiPointConstraint with a constraint of | |

97 | -- Curvature. | |

98 | -- An exception is raised if | |

99 | -- (length of <tabP> + length of <tabP2d> ) is different | |

100 | -- from (length of <tabVec> + length of <tabVec2d> ) or | |

101 | -- from (length of <tabCur> + length of <tabCur2d> ) | |

102 | ||

103 | returns MultiPointConstraint from AppDef | |

104 | raises ConstructionError from Standard; | |

105 | ||

106 | ||

107 | ||

108 | Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d; | |

109 | tabVec: Array1OfVec; tabVec2d: Array1OfVec2d) | |

110 | ---Purpose: creates a MultiPointConstraint with a constraint of | |

111 | -- Tangency. | |

112 | -- An exception is raised if | |

113 | -- (length of <tabP> + length of <tabP2d> ) is different | |

114 | -- from (length of <tabVec> + length of <tabVec2d> ) | |

115 | ||

116 | returns MultiPointConstraint from AppDef | |

117 | raises ConstructionError from Standard; | |

118 | ||

119 | ||

120 | ||

121 | ||

122 | Create(tabP: Array1OfPnt; tabVec: Array1OfVec; tabCur: Array1OfVec) | |

123 | ---Purpose: creates a MultiPointConstraint only composed of 3d points | |

124 | -- with constraints of curvature. | |

125 | -- An exception is raised if the length of tabP is different | |

126 | -- from the length of tabVec or from tabCur. | |

127 | ||

128 | returns MultiPointConstraint from AppDef | |

129 | raises ConstructionError; | |

130 | ||

131 | ||

132 | Create(tabP: Array1OfPnt; tabVec: Array1OfVec) | |

133 | ---Purpose: creates a MultiPointConstraint only composed of 3d points | |

134 | -- with constraints of tangency. | |

135 | -- An exception is raised if the length of tabP is different | |

136 | -- from the length of tabVec. | |

137 | ||

138 | returns MultiPointConstraint | |

139 | raises ConstructionError; | |

140 | ||

141 | ||

142 | ||

143 | Create(tabP2d: Array1OfPnt2d; tabVec2d: Array1OfVec2d) | |

144 | ---Purpose: creates a MultiPointConstraint only composed of 2d points | |

145 | -- with constraints of tangency. | |

146 | -- An exception is raised if the length of tabP is different | |

147 | -- from the length of tabVec2d. | |

148 | ||

149 | returns MultiPointConstraint from AppDef | |

150 | raises ConstructionError from Standard; | |

151 | ||

152 | ||

153 | Create(tabP2d: Array1OfPnt2d; | |

154 | tabVec2d: Array1OfVec2d; | |

155 | tabCur2d: Array1OfVec2d) | |

156 | ---Purpose: creates a MultiPointConstraint only composed of 2d points | |

157 | -- with constraints of curvature. | |

158 | -- An exception is raised if the length of tabP is different | |

159 | -- from the length of tabVec2d or from tabCur2d. | |

160 | ||

161 | returns MultiPointConstraint from AppDef | |

162 | raises ConstructionError from Standard; | |

163 | ||

164 | ||

165 | ||

166 | ||

167 | SetTang(me: in out; Index: Integer; Tang: Vec) | |

168 | ---Purpose: sets the value of the tangency of the point of range | |

169 | -- Index. | |

170 | -- An exception is raised if Index <0 or if Index > number | |

171 | -- of 3d points. | |

172 | -- An exception is raised if Tang has an incorrect number of | |

173 | -- dimensions. | |

174 | ||

175 | raises OutOfRange from Standard, | |

176 | DimensionError from Standard | |

177 | is static; | |

178 | ||

179 | ||

180 | Tang(me; Index: Integer) | |

181 | ---Purpose: returns the tangency value of the point of range Index. | |

182 | -- An exception is raised if Index < 0 or if Index > number | |

183 | -- of 3d points. | |

184 | ||

185 | returns Vec from gp | |

186 | raises OutOfRange from Standard | |

187 | is static; | |

188 | ||

189 | ||

190 | SetTang2d(me: in out; Index: Integer; Tang2d: Vec2d) | |

191 | ---Purpose: sets the value of the tangency of the point of range | |

192 | -- Index. | |

193 | -- An exception is raised if Index <number of 3d points or if | |

194 | -- Index > total number of Points | |

195 | -- An exception is raised if Tang has an incorrect number of | |

196 | -- dimensions. | |

197 | ||

198 | raises OutOfRange from Standard, | |

199 | DimensionError from Standard | |

200 | is static; | |

201 | ||

202 | ||

203 | Tang2d(me; Index: Integer) | |

204 | ---Purpose: returns the tangency value of the point of range Index. | |

205 | -- An exception is raised if Index < number of 3d points or | |

206 | -- if Index > total number of points. | |

207 | ||

208 | returns Vec2d from gp | |

209 | raises OutOfRange from Standard | |

210 | is static; | |

211 | ||

212 | ||

213 | SetCurv(me: in out; Index: Integer; Curv: Vec) | |

214 | ---Purpose: Vec sets the value of the normal vector at the | |

215 | -- point of index Index. The norm of the normal | |

216 | -- vector at the point of position Index is set to the normal curvature. | |

217 | -- An exception is raised if Index <0 or if Index > number | |

218 | -- of 3d points. | |

219 | -- An exception is raised if Curv has an incorrect number of | |

220 | -- dimensions. | |

221 | ||

222 | raises OutOfRange from Standard, | |

223 | DimensionError from Standard | |

224 | is static; | |

225 | ||

226 | ||

227 | Curv(me; Index: Integer) | |

228 | ---Purpose: returns the normal vector at the point of range Index. | |

229 | -- An exception is raised if Index < 0 or if Index > number | |

230 | -- of 3d points. | |

231 | ||

232 | returns Vec from gp | |

233 | raises OutOfRange from Standard | |

234 | is static; | |

235 | ||

236 | ||

237 | ||

238 | SetCurv2d(me: in out; Index: Integer; Curv2d: Vec2d) | |

239 | ---Purpose: Vec sets the value of the normal vector at the | |

240 | -- point of index Index. The norm of the normal | |

241 | -- vector at the point of position Index is set to the normal curvature. | |

242 | -- An exception is raised if Index <0 or if Index > number | |

243 | -- of 3d points. | |

244 | -- An exception is raised if Curv has an incorrect number of | |

245 | -- dimensions. | |

246 | ||

247 | raises OutOfRange from Standard, | |

248 | DimensionError from Standard | |

249 | is static; | |

250 | ||

251 | ||

252 | Curv2d(me; Index: Integer) | |

253 | ---Purpose: returns the normal vector at the point of range Index. | |

254 | -- An exception is raised if Index < 0 or if Index > number | |

255 | -- of 3d points. | |

256 | ||

257 | returns Vec2d from gp | |

258 | is static; | |

259 | ||

260 | ||

261 | IsTangencyPoint(me) | |

262 | ---Purpose: returns True if the MultiPoint has a tangency value. | |

263 | ||

264 | returns Boolean | |

265 | raises OutOfRange from Standard | |

266 | is static; | |

267 | ||

268 | IsCurvaturePoint(me) | |

269 | ---Purpose: returns True if the MultiPoint has a curvature value. | |

270 | ||

271 | returns Boolean | |

272 | raises OutOfRange from Standard | |

273 | is static; | |

274 | ||

275 | ||

276 | Dump(me; o: in out OStream) | |

277 | ---Purpose: Prints on the stream o information on the current | |

278 | -- state of the object. | |

279 | -- Is used to redefine the operator <<. | |

280 | ||

281 | is redefined; | |

282 | ||

283 | ||

284 | ||

285 | fields | |

286 | ||

287 | ttabTang: TShared from MMgt; | |

288 | ttabCurv: TShared from MMgt; | |

289 | ttabTang2d: TShared from MMgt; | |

290 | ttabCurv2d: TShared from MMgt; | |

291 | ||

292 | ||

293 | end MultiPointConstraint from AppDef; |