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

b311480e | 1 | -- Created on: 1993-02-19 |

2 | -- Created by: Remi LEQUETTE | |

3 | -- Copyright (c) 1993-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 | -- |

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

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

973c2be1 | 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 Curve from BRepAdaptor inherits Curve from Adaptor3d | |

18 | ||

19 | ---Purpose: The Curve from BRepAdaptor allows to use an Edge | |

20 | -- of the BRep topology like a 3D curve. | |

21 | -- | |

22 | -- It has the methods the class Curve from Adaptor3d. | |

23 | -- | |

24 | -- It is created or Initialized with an Edge. It | |

25 | -- takes into account local coordinate systems. If | |

26 | -- the Edge has a 3D curve it is use with priority. | |

27 | -- If the edge has no 3D curve one of the curves on | |

28 | -- surface is used. It is possible to enforce using a | |

29 | -- curve on surface by creating or initialising with | |

30 | -- an Edge and a Face. | |

31 | ||

32 | uses | |

33 | Edge from TopoDS, | |

34 | Face from TopoDS, | |

35 | CurveType from GeomAbs, | |

36 | Shape from GeomAbs, | |

37 | HCurve from Adaptor3d, | |

38 | Curve from GeomAdaptor, | |

39 | CurveOnSurface from Adaptor3d, | |

40 | HCurveOnSurface from Adaptor3d, | |

41 | BezierCurve from Geom, | |

42 | BSplineCurve from Geom, | |

43 | Array1OfReal from TColStd, | |

44 | Trsf from gp, | |

45 | Pnt from gp, | |

46 | Vec from gp, | |

47 | Circ from gp, | |

48 | Elips from gp, | |

49 | Hypr from gp, | |

50 | Parab from gp, | |

51 | Lin from gp | |

52 | ||

53 | raises | |

54 | NullObject from Standard, | |

55 | DomainError from Standard, | |

56 | OutOfRange from Standard, | |

57 | NoSuchObject from Standard | |

58 | ||

59 | is | |

60 | Create returns Curve from BRepAdaptor; | |

61 | ---Purpose: Creates an undefined Curve with no Edge loaded. | |

62 | ||

63 | Create(E : Edge from TopoDS) returns Curve from BRepAdaptor; | |

64 | ---Purpose: Creates a Curve to acces to the geometry of edge | |

65 | -- <E>. | |

66 | ||

67 | Create(E : Edge from TopoDS; F : Face from TopoDS) | |

68 | returns Curve from BRepAdaptor; | |

69 | ---Purpose: Creates a Curve to acces to the geometry of edge | |

70 | -- <E>. The geometry will be computed using the | |

71 | -- parametric curve of <E> on the face <F>. An Error | |

72 | -- is raised if the edge does not have a pcurve on | |

73 | -- the face. | |

74 | ||

75 | Initialize(me : in out; E : Edge from TopoDS) | |

76 | ---Purpose: Sets the Curve <me> to acces to the geometry of | |

77 | -- edge <E>. | |

78 | is static; | |

79 | ||

80 | Initialize(me : in out; E : Edge from TopoDS; F : Face from TopoDS) | |

81 | ---Purpose: Sets the Curve <me> to acces to the geometry of | |

82 | -- edge <E>. The geometry will be computed using the | |

83 | -- parametric curve of <E> on the face <F>. An Error | |

84 | -- is raised if the edge does not have a pcurve on | |

85 | -- the face. | |

86 | raises DomainError from Standard | |

87 | is static; | |

88 | ||

89 | Trsf(me) returns Trsf from gp | |

90 | ---Purpose: Returns the coordinate system of the curve. | |

91 | ---C++: return const & | |

92 | is static; | |

93 | ||

94 | Is3DCurve(me) returns Boolean | |

95 | ---Purpose: Returns True if the edge geometry is computed from | |

96 | -- a 3D curve. | |

97 | is static; | |

98 | ||

99 | IsCurveOnSurface(me) returns Boolean | |

100 | ---Purpose: Returns True if the edge geometry is computed from | |

101 | -- a pcurve on a surface. | |

102 | is static; | |

103 | ||

104 | Curve(me) returns Curve from GeomAdaptor | |

105 | ---Purpose: Returns the Curve of the edge. | |

106 | ---C++: return const & | |

107 | is static; | |

108 | ||

109 | CurveOnSurface(me) returns CurveOnSurface from Adaptor3d | |

110 | ---Purpose: Returns the CurveOnSurface of the edge. | |

111 | ---C++: return const & | |

112 | is static; | |

113 | ||

114 | Edge(me) returns Edge from TopoDS | |

115 | ---Purpose: Returns the edge. | |

116 | -- | |

117 | ---C++: return const & | |

118 | is static; | |

119 | ||

120 | Tolerance(me) returns Real | |

121 | ---Purpose: Returns the edge tolerance. | |

122 | -- | |

123 | is static; | |

124 | ||

125 | -- | |

126 | -- Methods of Curve from GeomAdaptor. | |

127 | -- | |

128 | ||

129 | FirstParameter(me) returns Real | |

130 | is redefined static; | |

131 | ||

132 | LastParameter(me) returns Real | |

133 | is redefined static; | |

134 | ||

135 | Continuity(me) returns Shape from GeomAbs | |

136 | is redefined static; | |

137 | ||

138 | NbIntervals(me: in out; S : Shape from GeomAbs) returns Integer | |

139 | ---Purpose: Returns the number of intervals for continuity | |

140 | -- <S>. May be one if Continuity(me) >= <S> | |

141 | is redefined static; | |

142 | ||

143 | Intervals(me: in out; T : in out Array1OfReal from TColStd; | |

144 | S : Shape from GeomAbs) | |

145 | ---Purpose: Stores in <T> the parameters bounding the intervals | |

146 | -- of continuity <S>. | |

147 | -- | |

148 | -- The array must provide enough room to accomodate | |

149 | -- for the parameters. i.e. T.Length() > NbIntervals() | |

150 | raises | |

151 | OutOfRange from Standard | |

152 | is redefined static; | |

153 | ||

154 | Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d | |

155 | ---Purpose: Returns a curve equivalent of <me> between | |

156 | -- parameters <First> and <Last>. <Tol> is used to | |

157 | -- test for 3d points confusion. | |

158 | raises | |

159 | OutOfRange from Standard | |

160 | ---Purpose: If <First> >= <Last> | |

161 | is redefined static; | |

162 | ||

163 | IsClosed(me) returns Boolean | |

164 | is redefined static; | |

165 | ||

166 | IsPeriodic(me) returns Boolean | |

167 | is redefined static; | |

168 | ||

169 | Period(me) returns Real | |

170 | raises | |

171 | DomainError from Standard -- if the curve is not periodic | |

172 | is redefined static; | |

173 | ||

174 | ||

175 | Value(me; U : Real) returns Pnt from gp | |

176 | --- Purpose : Computes the point of parameter U on the curve | |

177 | is redefined static; | |

178 | ||

179 | D0 (me; U : Real; P : out Pnt from gp) | |

180 | --- Purpose : Computes the point of parameter U. | |

181 | is redefined static; | |

182 | ||

183 | D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp) | |

184 | --- Purpose : Computes the point of parameter U on the curve | |

185 | -- with its first derivative. | |

186 | ||

187 | raises | |

188 | DomainError from Standard | |

189 | --- Purpose : Raised if the continuity of the current interval | |

190 | -- is not C1. | |

191 | is redefined static; | |

192 | ||

193 | D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp) | |

194 | --- Purpose : | |

195 | -- Returns the point P of parameter U, the first and second | |

196 | -- derivatives V1 and V2. | |

197 | raises | |

198 | DomainError from Standard | |

199 | --- Purpose : Raised if the continuity of the current interval | |

200 | -- is not C2. | |

201 | is redefined static; | |

202 | ||

203 | D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp) | |

204 | --- Purpose : | |

205 | -- Returns the point P of parameter U, the first, the second | |

206 | -- and the third derivative. | |

207 | raises | |

208 | DomainError from Standard | |

209 | --- Purpose : Raised if the continuity of the current interval | |

210 | -- is not C3. | |

211 | is redefined static; | |

212 | ||

213 | DN (me; U : Real; N : Integer) returns Vec from gp | |

214 | --- Purpose : | |

215 | -- The returned vector gives the value of the derivative for the | |

216 | -- order of derivation N. | |

217 | raises | |

218 | DomainError from Standard, | |

219 | --- Purpose : Raised if the continuity of the current interval | |

220 | -- is not CN. | |

221 | OutOfRange from Standard | |

222 | --- Purpose : Raised if N < 1. | |

223 | is redefined static; | |

224 | ||

225 | ||

226 | Resolution(me; R3d :Real) returns Real | |

227 | ---Purpose : returns the parametric resolution | |

228 | is redefined static; | |

229 | ||

230 | ||

231 | GetType(me) returns CurveType from GeomAbs | |

232 | is redefined static; | |

233 | ||

234 | Line(me) returns Lin from gp | |

235 | raises NoSuchObject from Standard | |

236 | is redefined static; | |

237 | ||

238 | Circle(me) returns Circ from gp | |

239 | raises NoSuchObject from Standard | |

240 | is redefined static; | |

241 | ||

242 | Ellipse(me) returns Elips from gp | |

243 | raises NoSuchObject from Standard | |

244 | is redefined static; | |

245 | ||

246 | Hyperbola(me) returns Hypr from gp | |

247 | raises NoSuchObject from Standard | |

248 | is redefined static; | |

249 | ||

250 | Parabola(me) returns Parab from gp | |

251 | raises NoSuchObject from Standard | |

252 | is redefined static; | |

253 | ||

254 | ||

255 | Degree(me) returns Integer | |

256 | raises NoSuchObject from Standard | |

257 | is redefined static; | |

258 | ||

259 | IsRational(me) returns Boolean | |

260 | raises | |

261 | NoSuchObject from Standard | |

262 | is redefined static; | |

263 | ||

264 | NbPoles(me) returns Integer | |

265 | raises NoSuchObject from Standard | |

266 | is redefined static; | |

267 | ||

268 | NbKnots(me) returns Integer | |

269 | raises | |

270 | NoSuchObject from Standard | |

271 | is redefined static; | |

272 | ||

273 | ||

274 | Bezier(me) returns BezierCurve from Geom | |

275 | ---Purpose: | |

276 | -- Warning : | |

277 | -- This will make a copy of the Bezier Curve | |

278 | -- since it applies to it myTsrf . Be carefull when | |

279 | -- using this method | |

280 | raises | |

281 | NoSuchObject from Standard | |

282 | is redefined static; | |

283 | ||

284 | BSpline(me) returns BSplineCurve from Geom | |

285 | ---Purpose: | |

286 | -- Warning : | |

287 | -- This will make a copy of the BSpline Curve | |

288 | -- since it applies to it myTsrf . Be carefull when | |

289 | -- using this method | |

290 | ||

291 | raises | |

292 | NoSuchObject from Standard | |

293 | is redefined static; | |

294 | ||

295 | fields | |

296 | ||

297 | myTrsf : Trsf from gp; | |

298 | myCurve : Curve from GeomAdaptor; | |

299 | myConSurf : HCurveOnSurface from Adaptor3d; | |

300 | myEdge : Edge from TopoDS; | |

301 | ||

302 | end Curve; |