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

b311480e | 1 | -- Created on: 1998-08-20 |

2 | -- Created by: Philippe MANGIN | |

3 | -- Copyright (c) 1998-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 CompCurve from BRepAdaptor | |

18 | ||

19 | inherits Curve from Adaptor3d | |

20 | ||

21 | ---Purpose: The Curve from BRepAdaptor allows to use a Wire | |

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

23 | -- Warning: With this class of curve, C0 and C1 continuities | |

24 | -- are not assumed. So be carful with some algorithm! | |

25 | ||

26 | uses | |

27 | Wire from TopoDS, | |

28 | Edge from TopoDS, | |

29 | CurveType from GeomAbs, | |

30 | Shape from GeomAbs, | |

31 | HCurve from Adaptor3d, | |

32 | HArray1OfCurve from BRepAdaptor, | |

33 | BezierCurve from Geom, | |

34 | BSplineCurve from Geom, | |

35 | Array1OfReal from TColStd, | |

36 | HArray1OfReal from TColStd, | |

37 | Pnt from gp, | |

38 | Vec from gp, | |

39 | Circ from gp, | |

40 | Elips from gp, | |

41 | Hypr from gp, | |

42 | Parab from gp, | |

43 | Lin from gp | |

44 | ||

45 | raises | |

46 | NullObject from Standard, | |

47 | DomainError from Standard, | |

48 | OutOfRange from Standard, | |

49 | NoSuchObject from Standard | |

50 | ||

51 | is | |

52 | Create returns CompCurve from BRepAdaptor; | |

53 | ---Purpose: Creates an undefined Curve with no Wire loaded. | |

54 | ||

55 | Create(W : Wire from TopoDS; | |

56 | KnotByCurvilinearAbcissa : Boolean = Standard_False) | |

57 | returns CompCurve from BRepAdaptor; | |

58 | ||

59 | Create(W : Wire from TopoDS; | |

60 | KnotByCurvilinearAbcissa : Boolean; | |

61 | First, Last, Tol : Real) | |

62 | returns CompCurve from BRepAdaptor; | |

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

64 | -- <W>. | |

65 | -- | |

66 | ||

67 | Initialize(me : in out; W : Wire from TopoDS; | |

68 | KnotByCurvilinearAbcissa : Boolean) | |

69 | ---Purpose: Sets the wire <W>. | |

70 | ||

71 | is static; | |

72 | ||

73 | Initialize(me : in out; W : Wire from TopoDS; | |

74 | KnotByCurvilinearAbcissa : Boolean; | |

75 | First, Last, Tol : Real ) | |

76 | ---Purpose: Sets wire <W> and trimmed parameter. | |

77 | is static; | |

78 | ||

79 | SetPeriodic(me: in out; Periodic : Boolean) | |

80 | ---Purpose: Set the flag Periodic. | |

81 | -- Warning: This method has no effect if the wire is not closed | |

82 | is static; | |

83 | ||

84 | Wire(me) returns Wire from TopoDS | |

85 | ---Purpose: Returns the wire. | |

86 | -- | |

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

88 | is static; | |

89 | ||

90 | Edge(me; U : Real; | |

91 | E : out Edge; | |

92 | UonE : out Real) | |

93 | ---Purpose: returns an edge and one parameter on them | |

94 | -- corresponding to the parameter U. | |

95 | is static; | |

96 | ||

97 | -- | |

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

99 | -- | |

100 | ||

101 | FirstParameter(me) returns Real | |

102 | is redefined static; | |

103 | ||

104 | LastParameter(me) returns Real | |

105 | is redefined static; | |

106 | ||

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

108 | is redefined static; | |

109 | ||

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

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

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

113 | is redefined static; | |

114 | ||

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

116 | S : Shape from GeomAbs) | |

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

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

119 | -- | |

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

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

122 | raises | |

123 | OutOfRange from Standard | |

124 | is redefined static; | |

125 | ||

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

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

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

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

130 | raises | |

131 | OutOfRange from Standard | |

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

133 | is redefined static; | |

134 | ||

135 | IsClosed(me) returns Boolean | |

136 | is redefined static; | |

137 | ||

138 | IsPeriodic(me) returns Boolean | |

139 | is redefined static; | |

140 | ||

141 | Period(me) returns Real | |

142 | raises | |

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

144 | is redefined static; | |

145 | ||

146 | ||

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

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

149 | is redefined static; | |

150 | ||

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

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

153 | is redefined static; | |

154 | ||

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

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

157 | -- with its first derivative. | |

158 | ||

159 | raises | |

160 | DomainError from Standard | |

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

162 | -- is not C1. | |

163 | is redefined static; | |

164 | ||

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

166 | --- Purpose : | |

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

168 | -- derivatives V1 and V2. | |

169 | raises | |

170 | DomainError from Standard | |

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

172 | -- is not C2. | |

173 | is redefined static; | |

174 | ||

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

176 | --- Purpose : | |

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

178 | -- and the third derivative. | |

179 | raises | |

180 | DomainError from Standard | |

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

182 | -- is not C3. | |

183 | is redefined static; | |

184 | ||

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

186 | --- Purpose : | |

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

188 | -- order of derivation N. | |

189 | raises | |

190 | DomainError from Standard, | |

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

192 | -- is not CN. | |

193 | OutOfRange from Standard | |

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

195 | is redefined static; | |

196 | ||

197 | ||

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

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

200 | is redefined static; | |

201 | ||

202 | ||

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

204 | is redefined static; | |

205 | ||

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

207 | raises NoSuchObject from Standard | |

208 | is redefined static; | |

209 | ||

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

211 | raises NoSuchObject from Standard | |

212 | is redefined static; | |

213 | ||

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

215 | raises NoSuchObject from Standard | |

216 | is redefined static; | |

217 | ||

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

219 | raises NoSuchObject from Standard | |

220 | is redefined static; | |

221 | ||

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

223 | raises NoSuchObject from Standard | |

224 | is redefined static; | |

225 | ||

226 | ||

227 | Degree(me) returns Integer | |

228 | raises NoSuchObject from Standard | |

229 | is redefined static; | |

230 | ||

231 | IsRational(me) returns Boolean | |

232 | raises | |

233 | NoSuchObject from Standard | |

234 | is redefined static; | |

235 | ||

236 | NbPoles(me) returns Integer | |

237 | raises NoSuchObject from Standard | |

238 | is redefined static; | |

239 | ||

240 | NbKnots(me) returns Integer | |

241 | raises | |

242 | NoSuchObject from Standard | |

243 | is redefined static; | |

244 | ||

245 | ||

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

247 | ---Warning : | |

248 | -- This will make a copy of the Bezier Curve . | |

249 | -- Be carefull when using this method | |

250 | raises | |

251 | NoSuchObject from Standard | |

252 | is redefined static; | |

253 | ||

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

255 | ---Warning : This will make a copy of the BSpline Curve. Be | |

256 | -- carefull when using this method | |

257 | ||

258 | raises | |

259 | NoSuchObject from Standard | |

260 | is redefined static; | |

261 | ||

262 | Prepare(me; W, D: in out Real; ind : in out Integer) | |

263 | is private; | |

264 | ||

265 | InvPrepare(me; ind : Integer; F, D: in out Real) | |

266 | is private; | |

267 | ||

268 | fields | |

269 | myWire : Wire from TopoDS; | |

270 | TFirst, TLast, PTol, myPeriod : Real; | |

271 | myCurves : HArray1OfCurve from BRepAdaptor; | |

272 | myKnots : HArray1OfReal from TColStd; | |

273 | CurIndex : Integer; | |

274 | Forward : Boolean; | |

275 | IsbyAC : Boolean; | |

276 | Periodic : Boolean; | |

277 | end CompCurve; |