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

b311480e | 1 | -- Created on: 1994-03-24 |

2 | -- Created by: model | |

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

4 | -- Copyright (c) 1999-2012 OPEN CASCADE SAS | |

5 | -- | |

6 | -- The content of this file is subject to the Open CASCADE Technology Public | |

7 | -- License Version 6.5 (the "License"). You may not use the content of this file | |

8 | -- except in compliance with the License. Please obtain a copy of the License | |

9 | -- at http://www.opencascade.org and read it completely before using this file. | |

10 | -- | |

11 | -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its | |

12 | -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. | |

13 | -- | |

14 | -- The Original Code and all software distributed under the License is | |

15 | -- distributed on an "AS IS" basis, without warranty of any kind, and the | |

16 | -- Initial Developer hereby disclaims all such warranties, including without | |

17 | -- limitation, any warranties of merchantability, fitness for a particular | |

18 | -- purpose or non-infringement. Please see the License for the specific terms | |

19 | -- and conditions governing the rights and limitations under the License. | |

20 | ||

7fd59977 | 21 | |

22 | ||

23 | class TopolTool from Adaptor3d | |

24 | ||

25 | ---Purpose: This class provides a default topological tool, | |

26 | -- based on the Umin,Vmin,Umax,Vmax of an HSurface | |

27 | -- from Adaptor3d. | |

28 | -- All methods and fields may be redefined when | |

29 | -- inheriting from this class. | |

30 | -- This class is used to instantiate algorithmes | |

31 | -- as Intersection, outlines,... | |

32 | ||

33 | ||

34 | inherits TShared from MMgt | |

35 | ||

36 | uses HSurface from Adaptor3d, | |

37 | HCurve2d from Adaptor2d, | |

38 | HVertex from Adaptor3d, | |

39 | HLine2d from Adaptor2d, | |

40 | Pnt2d from gp, | |

41 | Pnt from gp, | |

42 | State from TopAbs, | |

43 | Orientation from TopAbs, | |

44 | HArray1OfReal from TColStd, | |

45 | Array1OfReal from TColStd | |

46 | ||

47 | raises DomainError from Standard | |

48 | ||

49 | is | |

50 | ||

51 | Create | |

52 | ||

53 | returns mutable TopolTool from Adaptor3d; | |

54 | ||

55 | ||

56 | Create(Surface: HSurface from Adaptor3d) | |

57 | ||

58 | returns mutable TopolTool from Adaptor3d; | |

59 | ||

60 | ||

61 | Initialize(me: mutable) | |

62 | is virtual; | |

63 | ||

64 | Initialize(me: mutable; S: HSurface from Adaptor3d) | |

65 | is virtual; | |

66 | ||

67 | ||

68 | Initialize(me: mutable; Curve: HCurve2d from Adaptor2d) | |

69 | is virtual; | |

70 | ||

71 | ||

72 | ||

73 | --- Arc iterator | |

74 | ||

75 | ||

76 | Init(me: mutable) | |

77 | is virtual; | |

78 | ||

79 | ||

80 | More(me: mutable) | |

81 | ||

82 | returns Boolean from Standard | |

83 | is virtual; | |

84 | ||

85 | ||

86 | Value(me: mutable) | |

87 | ||

88 | returns mutable HCurve2d from Adaptor2d | |

89 | raises DomainError from Standard | |

90 | is virtual; | |

91 | ||

92 | ||

93 | Next(me: mutable) | |

94 | is virtual; | |

95 | ||

96 | ||

97 | --- Vertex iterator | |

98 | ||

99 | ||

100 | InitVertexIterator(me: mutable) | |

101 | is virtual; | |

102 | ||

103 | ||

104 | MoreVertex(me: mutable) | |

105 | ||

106 | returns Boolean from Standard | |

107 | is virtual; | |

108 | ||

109 | ||

110 | Vertex(me: mutable) | |

111 | ||

112 | returns mutable HVertex from Adaptor3d | |

113 | raises DomainError from Standard | |

114 | is virtual; | |

115 | ||

116 | ||

117 | NextVertex(me: mutable) | |

118 | is virtual; | |

119 | ||

120 | ||

121 | --- Other methods | |

122 | ||

123 | Classify(me: mutable; | |

124 | P: Pnt2d from gp; | |

125 | Tol: Real from Standard; | |

126 | ReacdreOnPeriodic: Boolean from Standard = Standard_True) | |

127 | ||

128 | returns State from TopAbs | |

129 | is virtual; | |

130 | ||

131 | IsThePointOn(me: mutable; | |

132 | P: Pnt2d from gp; | |

133 | Tol: Real from Standard; | |

134 | ReacdreOnPeriodic: Boolean from Standard = Standard_True) | |

135 | ||

136 | returns Boolean from Standard | |

137 | is virtual; | |

138 | ||

139 | ||

140 | Orientation(me: mutable; C: HCurve2d from Adaptor2d) | |

141 | ||

142 | ---Purpose: If the function returns the orientation of the arc. | |

143 | -- If the orientation is FORWARD or REVERSED, the arc is | |

144 | -- a "real" limit of the surface. | |

145 | -- If the orientation is INTERNAL or EXTERNAL, the arc is | |

146 | -- considered as an arc on the surface. | |

147 | ||

148 | returns Orientation from TopAbs | |

149 | is virtual; | |

150 | ||

151 | ||

152 | Orientation(me: mutable; V: HVertex from Adaptor3d) | |

153 | ||

154 | ---Purpose: Returns the orientation of the vertex V. | |

155 | -- The vertex has been found with an exploration on | |

156 | -- a given arc. The orientation is the orientation | |

157 | -- of the vertex on this arc. | |

158 | ||

159 | returns Orientation from TopAbs | |

160 | is virtual; | |

161 | ||

162 | ||

163 | Identical(me: mutable; V1,V2: HVertex from Adaptor3d) | |

164 | ||

165 | ---Purpose: Returns True if the vertices V1 and V2 are identical. | |

166 | -- This method does not take the orientation of the | |

167 | -- vertices in account. | |

168 | ||

169 | returns Boolean from Standard | |

170 | is virtual; | |

171 | ||

172 | ||

173 | Has3d(me) | |

174 | ---Purpose: answers if arcs and vertices may have 3d representations, | |

175 | -- so that we could use Tol3d and Pnt methods. | |

176 | returns Boolean from Standard | |

177 | is virtual; | |

178 | ||

179 | ||

180 | Tol3d(me; C: HCurve2d from Adaptor2d) | |

181 | ---Purpose: returns 3d tolerance of the arc C | |

182 | returns Real from Standard | |

183 | raises DomainError from Standard | |

184 | is virtual; | |

185 | ||

186 | ||

187 | Tol3d(me; V: HVertex from Adaptor3d) | |

188 | ---Purpose: returns 3d tolerance of the vertex V | |

189 | returns Real from Standard | |

190 | raises DomainError from Standard | |

191 | is virtual; | |

192 | ||

193 | ||

194 | Pnt(me; V: HVertex from Adaptor3d) | |

195 | ---Purpose: returns 3d point of the vertex V | |

196 | returns Pnt from gp | |

197 | raises DomainError from Standard | |

198 | is virtual; | |

199 | ||

200 | ||

201 | --- sample points tools | |

202 | ||

203 | ComputeSamplePoints(me: mutable) | |

204 | is virtual; | |

205 | ||

206 | ||

207 | NbSamplesU(me: mutable) | |

208 | ---Purpose: compute the sample-points for the intersections algorithms | |

209 | returns Integer from Standard | |

210 | is virtual; | |

211 | ||

212 | NbSamplesV(me: mutable) | |

213 | ---Purpose: compute the sample-points for the intersections algorithms | |

214 | returns Integer from Standard | |

215 | is virtual; | |

216 | ||

217 | NbSamples(me: mutable) | |

218 | ---Purpose: compute the sample-points for the intersections algorithms | |

219 | returns Integer from Standard | |

220 | is virtual; | |

221 | ||

222 | UParameters(me; theArray: out Array1OfReal from TColStd); | |

223 | ---Purpose: return the set of U parameters on the surface | |

224 | -- obtained by the method SamplePnts | |

225 | ||

226 | VParameters(me; theArray: out Array1OfReal from TColStd); | |

227 | ---Purpose: return the set of V parameters on the surface | |

228 | -- obtained by the method SamplePnts | |

229 | ||

230 | SamplePoint(me: mutable; Index: Integer from Standard; | |

231 | P2d : out Pnt2d from gp; | |

232 | P3d : out Pnt from gp) | |

233 | is virtual; | |

234 | ||

235 | DomainIsInfinite(me: mutable) | |

236 | returns Boolean from Standard | |

237 | is virtual; | |

238 | ||

239 | --modified by NIZNHY-PKV Mon Apr 23 15:54:51 2001 f | |

240 | Edge (me) | |

241 | returns Address from Standard | |

242 | is virtual; | |

243 | --modified by NIZNHY-PKV Mon Apr 23 15:54:46 2001 t | |

244 | ||

245 | --modified by NIZNHY-IFV Mon Sep 16 16:01:38 2005 f | |

246 | ||

247 | SamplePnts(me: mutable; theDefl: Real from Standard; theNUmin, theNVmin: Integer from Standard) | |

248 | ---Purpose: compute the sample-points for the intersections algorithms | |

249 | -- by adaptive algorithm for BSpline surfaces. For other surfaces algorithm | |

250 | -- is the same as in method ComputeSamplePoints(), but only fill arrays of U | |

251 | -- and V sample parameters; | |

252 | -- theDefl is a requred deflection | |

253 | -- theNUmin, theNVmin are minimal nb points for U and V. | |

254 | is virtual; | |

255 | ||

256 | BSplSamplePnts(me: mutable; theDefl: Real from Standard; theNUmin, theNVmin: Integer from Standard) | |

257 | ---Purpose: compute the sample-points for the intersections algorithms | |

258 | -- by adaptive algorithm for BSpline surfaces - is used in SamplePnts | |

259 | -- theDefl is a requred deflection | |

260 | -- theNUmin, theNVmin are minimal nb points for U and V. | |

261 | is virtual; | |

262 | ||

263 | IsUniformSampling(me) | |

264 | ---Purpose: Returns true if provide uniform sampling of points. | |

265 | returns Boolean from Standard | |

266 | is virtual; | |

267 | ||

268 | fields | |

269 | ||

270 | nbRestr : Integer from Standard; | |

271 | idRestr : Integer from Standard; | |

272 | Uinf : Real from Standard; | |

273 | Usup : Real from Standard; | |

274 | Vinf : Real from Standard; | |

275 | Vsup : Real from Standard; | |

276 | myRestr : HLine2d from Adaptor2d [4]; | |

277 | nbVtx : Integer from Standard; | |

278 | idVtx : Integer from Standard; | |

279 | myVtx : HVertex from Adaptor3d [2]; | |

280 | ||

281 | myS : HSurface from Adaptor3d is protected; | |

282 | myNbSamplesU : Integer from Standard is protected; | |

283 | myNbSamplesV : Integer from Standard is protected; | |

284 | ||

285 | myUPars : HArray1OfReal from TColStd is protected; | |

286 | myVPars : HArray1OfReal from TColStd is protected; | |

287 | ||

288 | end TopolTool; |