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

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

2 | -- Created: Wed Dec 11 11:16:37 1996 | |

3 | -- Author: Robert COUBLANC | |

4 | -- <rob@robox.paris1.matra-dtv.fr> | |

5 | ---Copyright: Matra Datavision 1996 | |

6 | ||

7 | ||

8 | package AIS | |

9 | ||

10 | ---Purpose: Application Interactive Services provide the means to | |

11 | -- create links between an application GUI viewer and | |

12 | -- the packages which are used to manage selection | |

13 | -- and presentation. The tools AIS defined in order to | |

14 | -- do this include different sorts of entities: both the | |

15 | -- selectable viewable objects themselves and the | |

16 | -- context and attribute managers to define their | |

17 | -- selection and display. | |

18 | -- To orient the user as he works in a modeling | |

19 | -- environment, views and selections must be | |

20 | -- comprehensible. There must be several different sorts | |

21 | -- of selectable and viewable object defined. These must | |

22 | -- also be interactive, that is, connecting graphic | |

23 | -- representation and the underlying reference | |

24 | -- geometry. These entities are called Interactive | |

25 | -- Objects, and are divided into four types: | |

26 | -- - the Datum | |

27 | -- - the Relation | |

28 | -- - the Object | |

29 | -- - None. | |

30 | -- The Datum groups together the construction elements | |

31 | -- such as lines, circles, points, trihedra, plane trihedra, | |

32 | -- planes and axes. | |

33 | -- The Relation is made up of constraints on one or | |

34 | -- more interactive shapes and the corresponding | |

35 | -- reference geometry. For example, you might want to | |

36 | -- constrain two edges in a parallel relation. This | |

37 | -- contraint is considered as an object in its own right, | |

38 | -- and is shown as a sensitive primitive. This takes the | |

39 | -- graphic form of a perpendicular arrow marked with | |

40 | -- the || symbol and lying between the two edges. | |

41 | -- The Object type includes topological shapes, and | |

42 | -- connections between shapes. | |

43 | -- None, in order not to eliminate the object, tells the | |

44 | -- application to look further until it finds an object | |

45 | -- definition in its generation which is accepted. | |

46 | -- Inside these categories, you have the possibility | |

47 | -- of an additional characterization by means of a | |

48 | -- signature. The signature provides an index to the | |

49 | -- further characterization. By default, the Interactive | |

50 | -- Object has a None type and a signature of 0 | |

51 | -- (equivalent to None.) If you want to give a particular | |

52 | -- type and signature to your interactive object, you must | |

53 | -- redefine the two virtual methods: Type and Signature. | |

54 | -- In the C++ inheritance structure of the package, each | |

55 | -- class representing a specific Interactive Object | |

56 | -- inherits AIS_InteractiveObject. Among these | |

57 | -- inheriting classes, AIS_Relation functions as the | |

58 | -- abstract mother class for tinheriting classes defining | |

59 | -- display of specific relational constraints and types of | |

60 | -- dimension. Some of these include: | |

61 | -- - display of constraints based on relations of | |

62 | -- symmetry, tangency, parallelism and concentricity | |

63 | -- - display of dimensions for angles, offsets, | |

64 | -- diameters, radii and chamfers. | |

65 | -- No viewer can show everything at once with any | |

66 | -- coherence or clarity. Views must be managed | |

67 | -- carefully both sequentially and at any given instant. | |

68 | -- Another function of the view is that of a context to | |

69 | -- carry out design in. The design changes are applied | |

70 | -- to the objects in the view and then extended to the | |

71 | -- underlying reference geometry by a solver. To make | |

72 | -- sense of this complicated visual data, several display | |

73 | -- and selection tools are required. To facilitate | |

74 | -- management, each object and each construction | |

75 | -- element has a selection priority. There are also | |

76 | -- means to modify the default priority. | |

77 | -- To define an environment of dynamic detection, you | |

78 | -- can use standard filter classes or create your own. A | |

79 | -- filter questions the owner of the sensitive primitive in | |

80 | -- local context to determine if it has the the desired | |

81 | -- qualities. If it answers positively, it is kept. If not, it is rejected. | |

82 | -- The standard filters supplied in AIS include: | |

83 | -- AIS_AttributeFilter | |

84 | -- AIS_SignatureFilter | |

85 | -- AIS_TypeFilter. | |

86 | -- Only the type filter can be used in the default | |

87 | -- operating mode, the neutral point. The others can | |

88 | -- only be used in open local contexts. | |

89 | -- Neutral point and local context constitute the two | |

90 | -- operating modes of the central entity which pilots | |

91 | -- visualizations and selections, the Interactive Context. | |

92 | -- It is linked to a main viewer and if you like, a trash bin | |

93 | -- viewer as well. | |

94 | -- The neutral point, which is the default mode, allows | |

95 | -- you to easily visualize and select interactive objects | |

96 | -- which have been loaded into the context. Opening | |

97 | -- local contexts allows you to prepare and use a | |

98 | -- temporary selection environment without disturbing | |

99 | -- the neutral point. A set of functions allows you to | |

100 | -- choose the interactive objects which you want to act | |

101 | -- on, the selection modes which you want to activate, | |

102 | -- and the temporary visualizations which you will | |

103 | -- execute. When the operation is finished, you close the | |

104 | -- current local context and return to the state in which | |

105 | -- you were before opening it (neutral point or previous | |

106 | -- local context). | |

107 | -- An interactive object can have a certain number of | |

108 | -- graphic attributes which are specific to it, such as | |

109 | -- visualization mode, color, and material. By the same | |

110 | -- token, the interactive context has a set of graphic | |

111 | -- attributes, the Drawer which is valid by default for the | |

112 | -- objects it controls. When an interactive object is | |

113 | -- visualized, the required graphic attributes are first | |

114 | -- taken from the object's own Drawer if one exists, or | |

115 | -- from the context drawer for the others. | |

116 | ||

117 | ||

118 | uses | |

119 | TCollection, | |

120 | MMgt, | |

121 | Quantity, | |

122 | TColgp, | |

123 | TColStd, | |

124 | TopLoc, | |

125 | gp, | |

126 | Geom, | |

127 | Bnd, | |

128 | Aspect, | |

129 | Graphic2d, | |

130 | Graphic3d, | |

131 | V3d, | |

132 | TopAbs, | |

133 | TopoDS, | |

134 | Prs3d, | |

135 | PrsMgr, | |

136 | Select3D, | |

137 | SelectMgr, | |

138 | StdSelect, | |

139 | DsgPrs, | |

140 | TopTools, | |

141 | Poly | |

142 | ||

143 | is | |

144 | ||

145 | ||

146 | enumeration DisplayMode is WireFrame, Shaded, QuickHLR, ExactHLR; | |

147 | ---Purpose: | |

148 | -- Sets display modes other than neutral point ones, | |

149 | -- for interactive objects. The possibilities include: | |

150 | -- - wireframe, | |

151 | -- - shaded, | |

152 | ||

153 | enumeration ConnectStatus is | |

154 | CS_None, | |

155 | CS_Connection, | |

156 | CS_Transform, | |

157 | CS_Both; | |

158 | ---Purpose: Gives the status of connection of an Interactive | |

159 | -- Object. This will be one of the following: | |

160 | -- - No connection | |

161 | -- - Connection | |

162 | -- - Transformation | |

163 | -- - Both connection and transformation | |

164 | -- This enumeration is used in | |

165 | -- AIS_ConnectedInteractive. Transform indicates | |

166 | -- that the Interactive Object reference geometry has | |

167 | -- changed location relative to the reference geometry. | |

168 | ||

169 | enumeration TypeOfIso is | |

170 | TOI_IsoU, | |

171 | TOI_IsoV, | |

172 | TOI_Both; | |

173 | ---Purpose: Declares the type of isoparameter displayed. | |

174 | ||

175 | enumeration DisplayStatus is | |

176 | DS_Displayed, | |

177 | DS_Erased, | |

178 | DS_FullErased, | |

179 | DS_Temporary, | |

180 | DS_None; | |

181 | ---Purpose: | |

182 | -- To give the display status of an Interactive Object. | |

183 | -- This will be one of the following: | |

184 | -- - DS_Displayed: the Interactive Object is | |

185 | -- displayed in the main viewer; | |

186 | -- - DS_Erased: the Interactive Object is erased in the collector; | |

187 | -- - DS_FullErased: the Interactive Object is erased | |

188 | -- but not in the collector; | |

189 | -- - DS_Temporary: the Interactive Object is temporarily displayed; | |

190 | -- - DS_None: the Interactive Object is nowhere displayed. | |

191 | ||

192 | enumeration SelectStatus is | |

193 | SS_Added, | |

194 | SS_Removed, | |

195 | SS_NotDone | |

196 | end SelectStatus; | |

197 | ||

198 | enumeration StatusOfPick is | |

199 | SOP_Error, | |

200 | SOP_NothingSelected, | |

201 | SOP_Removed, | |

202 | SOP_OneSelected, | |

203 | SOP_SeveralSelected | |

204 | end StatusOfPick; | |

205 | ||

206 | enumeration StatusOfDetection is | |

207 | SOD_Error, | |

208 | SOD_Nothing, | |

209 | SOD_AllBad, | |

210 | SOD_Selected, | |

211 | SOD_OnlyOneDetected, | |

212 | SOD_OnlyOneGood, | |

213 | SOD_SeveralGood | |

214 | end StatusOfDetection; | |

215 | ||

216 | enumeration KindOfDimension is | |

217 | KOD_NONE, | |

218 | KOD_LENGTH, | |

219 | KOD_PLANEANGLE, | |

220 | KOD_SOLIDANGLE, | |

221 | KOD_AREA, | |

222 | KOD_VOLUME, | |

223 | KOD_MASS, | |

224 | KOD_TIME, | |

225 | KOD_RADIUS, | |

226 | KOD_DIAMETER, | |

227 | KOD_CHAMF2D, | |

228 | KOD_CHAMF3D, | |

229 | KOD_OFFSET, | |

230 | KOD_ELLIPSERADIUS; | |

231 | ---Purpose: Declares the kinds of dimensions needed in the | |

232 | -- display of Interactive Objects. | |

233 | ||

234 | enumeration KindOfInteractive is | |

235 | KOI_None, | |

236 | KOI_Datum, | |

237 | KOI_Shape, | |

238 | KOI_Object, | |

239 | KOI_Relation; | |

240 | --- Purpose: Declares the type of Interactive Object. | |

241 | -- This is one of the following: | |

242 | -- - the Datum | |

243 | -- - the Object | |

244 | -- - the Relation | |

245 | -- - the None type. | |

246 | -- The Datum is the construction element. These include | |

247 | -- points, lines, axes and planes. The object brings | |

248 | -- together topological shapes. The Relation includes | |

249 | -- dimensions and constraints. When the object is of an | |

250 | -- unknown type, the None type is declared. | |

251 | ||

252 | enumeration ClearMode is | |

253 | CM_All, | |

254 | CM_Interactive, | |

255 | CM_Filters, | |

256 | CM_StandardModes, | |

257 | CM_TemporaryShapePrs | |

258 | end ClearMode; | |

259 | ---Purpose: Declares which entities in an opened local context | |

260 | -- are to be cleared of mode settings. Temporary | |

261 | -- graphic presentations such as those for sub-shapes, | |

262 | -- for example, are only created for the selection | |

263 | -- process. By means of these enumerations, they can | |

264 | -- be cleared from local context. | |

265 | ||

266 | enumeration KindOfUnit is | |

267 | TOU_LENGTH, | |

268 | TOU_SURFACE, | |

269 | TOU_VOLUME, | |

270 | TOU_PLANE_ANGLE, | |

271 | TOU_SOLID_ANGLE, | |

272 | TOU_MASS, | |

273 | TOU_FORCE, | |

274 | TOU_TIME; | |

275 | ---Purpose: Declares the type of Interactive Object unit. | |

276 | ||

277 | enumeration TypeOfAxis is TOAX_Unknown,TOAX_XAxis,TOAX_YAxis,TOAX_ZAxis; | |

278 | ---Purpose: Declares the type of axis. | |

279 | ||

280 | enumeration TypeOfPlane is TOPL_Unknown,TOPL_XYPlane,TOPL_XZPlane,TOPL_YZPlane; | |

281 | ---Purpose: Declares the type of plane. | |

282 | enumeration TypeOfDist is TOD_Unknown,TOD_Horizontal,TOD_Vertical; | |

283 | ---Purpose: To declare the type of distance. | |

284 | ||

285 | enumeration TypeOfAttribute is | |

286 | TOA_Line, | |

287 | TOA_Angle, | |

288 | TOA_Wire, | |

289 | TOA_Plane, | |

290 | TOA_Vector, | |

291 | TOA_UIso, | |

292 | TOA_VIso, | |

293 | TOA_Free, | |

294 | TOA_UnFree, | |

295 | TOA_Section, | |

296 | TOA_Hidden, | |

297 | TOA_Seen, | |

298 | TOA_FirstAxis, | |

299 | TOA_SecondAxis, | |

300 | TOA_ThirdAxis; | |

301 | ||

302 | enumeration StandardDatum is SD_None,SD_Point,SD_Axis,SD_Trihedron,SD_PlaneTrihedron,SD_Line,SD_Circle,SD_Plane; | |

303 | --- Purpose: Declares the type of standard datum of an Interactive Object. | |

304 | ||

305 | -- New ------------------------------------------------ | |

306 | ||

307 | enumeration KindOfSurface is KOS_Plane, KOS_Cylinder, KOS_Cone, KOS_Sphere, KOS_Torus, | |

308 | KOS_Revolution, KOS_Extrusion, KOS_OtherSurface; | |

309 | ------------------------------------------------------- | |

310 | ||

311 | class Triangulation; | |

312 | ||

313 | class TexturedShape; | |

314 | ||

315 | class Drawer; | |

316 | ||

317 | class InteractiveContext; | |

318 | ||

319 | class GraphicTool; | |

320 | ||

1bd2fa67 | 321 | class LocalContext; |

7fd59977 | 322 | |

323 | private class LocalStatus; | |

324 | ||

325 | private class GlobalStatus; | |

326 | ||

327 | deferred class InteractiveObject; | |

328 | ||

329 | ---Category: VARIOUS STANDARD INTERACTIVE OBJECTS | |

330 | -- each type of Datum has a given signature. | |

331 | -- the other interactive objects don't | |

332 | -- implement this signature. | |

333 | -- Mainly used for selection with Filters... | |

334 | ||

335 | ---Category: Datum | |

336 | class Point; --signature 1 | |

337 | class Axis; --signature 2 | |

338 | class Trihedron; --signature 3 | |

339 | class PlaneTrihedron; --signature 4 | |

340 | class Line; --signature 5 | |

341 | class Circle; --signature 6 | |

342 | class Plane; --signature 7 | |

343 | ||

344 | ||

345 | ---Category: Object of type Shape | |

346 | class Shape; --signature 0 | |

347 | class ConnectedShape; --signature 1 | |

348 | class MultipleConnectedShape; --signature 2 | |

349 | ||

350 | ||

351 | ||

352 | ---Category: General Objects | |

353 | class ConnectedInteractive; --signature 0 | |

354 | class MultipleConnectedInteractive; --signature 1 | |

355 | ||

356 | ---Category: DIMENSIONS AND RELATIONS | |

357 | ||

358 | class DimensionOwner; | |

359 | ||

360 | deferred class Relation; | |

361 | deferred class EllipseRadiusDimension; | |

362 | class MaxRadiusDimension; | |

363 | class MinRadiusDimension; | |

364 | class LengthDimension; | |

365 | class AngleDimension; | |

366 | class RadiusDimension; | |

367 | class DiameterDimension; | |

368 | class Chamf2dDimension; | |

369 | class Chamf3dDimension; | |

370 | class OffsetDimension; | |

371 | class FixRelation; | |

372 | class PerpendicularRelation; | |

373 | class ParallelRelation; | |

374 | class TangentRelation; | |

375 | class ConcentricRelation; | |

376 | class IdenticRelation; | |

377 | class SymmetricRelation; -- axial symmetry | |

378 | class MidPointRelation; -- equal distance from point | |

379 | class EqualRadiusRelation; | |

380 | class EqualDistanceRelation; | |

381 | ||

382 | ||

383 | ---Category: FILTERS | |

384 | ||

385 | ||

386 | class TypeFilter; | |

387 | class SignatureFilter; | |

388 | class ExclusionFilter; | |

389 | class AttributeFilter; | |

390 | class C0RegularityFilter; | |

391 | class BadEdgeFilter; | |

392 | ||

393 | pointer PToContext to InteractiveContext from AIS; | |

394 | ||

395 | ||

396 | ||

397 | ||

398 | class Selection; | |

399 | ||

400 | ||

401 | ---Category: The Collections | |

402 | ||

403 | ||

404 | class ListOfInteractive instantiates List from TCollection | |

405 | (InteractiveObject from AIS); | |

406 | ||

407 | class SequenceOfInteractive instantiates Sequence from TCollection | |

408 | (InteractiveObject from AIS); | |

409 | ||

410 | class SequenceOfDimension instantiates Sequence from TCollection | |

411 | (Relation from AIS); | |

412 | ||

413 | class MapOfInteractive instantiates Map from TCollection | |

414 | (InteractiveObject from AIS,MapTransientHasher from TColStd); | |

415 | ||

416 | ||

417 | class DataMapofIntegerListOfinteractive instantiates DataMap from | |

418 | TCollection(Integer from Standard, ListOfInteractive from AIS,MapIntegerHasher from TColStd); | |

419 | -- for further management of layers | |

420 | ||

421 | private class DataMapOfIOStatus instantiates DataMap from | |

422 | TCollection(InteractiveObject from AIS,GlobalStatus from AIS,MapTransientHasher from TColStd); | |

423 | -- Management of interactiveObjects Status... | |

424 | ||

425 | class IndexedDataMapOfOwnerPrs instantiates IndexedDataMap from TCollection | |

426 | (EntityOwner from SelectMgr,Presentation from Prs3d ,MapTransientHasher from TColStd); | |

427 | -- for dynamic selection management in local context... | |

428 | ||

429 | -- san: 18/04/2003 AIS_Selection class optimization | |

430 | -- agv: 04/05/2003 Replace NCollection_List for CDL list | |

431 | imported NListTransient; | |

432 | imported NListIteratorOfListTransient; | |

433 | imported NDataMapOfTransientIteratorOfListTransient; | |

434 | -- service map for AIS_Selection class optimized logic | |

435 | ||

436 | private class DataMapOfILC instantiates DataMap from TCollection | |

437 | (Integer from Standard, LocalContext from AIS, MapIntegerHasher from TColStd); | |

438 | ||

439 | private class DataMapOfSelStat instantiates DataMap from TCollection | |

440 | (SelectableObject from SelectMgr,LocalStatus from AIS,MapTransientHasher from TColStd); | |

441 | -- to tell if an object is sensitive to Standard Modes Of Selection.... | |

442 | ||

443 | -- Methods for dimensions | |

444 | ||

445 | Nearest( aShape : Shape from TopoDS; | |

446 | aPoint : Pnt from gp ) | |

447 | returns Pnt from gp; | |

448 | ---Purpose: | |

449 | -- Returns the nearest point in a shape. This is used by | |

450 | -- several classes in calculation of dimensions. | |

451 | ||

452 | Farest( aShape : Shape from TopoDS; | |

453 | aPoint : Pnt from gp ) | |

454 | returns Pnt from gp; | |

455 | ||

456 | ComputeGeometry(anEdge : Edge from TopoDS; | |

457 | aCurve : out Curve from Geom; | |

458 | FirstPnt : out Pnt from gp; | |

459 | LastPnt : out Pnt from gp) | |

460 | ---Purpose: Used by 2d Relation only | |

461 | -- Computes the 3d geometry of <anEdge> in the current WorkingPlane | |

462 | -- and the extremities if any | |

463 | -- Return TRUE if ok | |

464 | returns Boolean from Standard; | |

465 | ||

466 | ComputeGeometry(anEdge : Edge from TopoDS; | |

467 | aCurve : out Curve from Geom; | |

468 | FirstPnt : out Pnt from gp; | |

469 | LastPnt : out Pnt from gp; | |

470 | extCurve : out Curve from Geom; | |

471 | isinfinite: out Boolean from Standard; | |

472 | isOnPlane : out Boolean from Standard; | |

473 | aPlane : Plane from Geom) | |

474 | ---Purpose: Used by 2d Relation only | |

475 | -- Computes the 3d geometry of <anEdge> in the current WorkingPlane | |

476 | -- and the extremities if any. | |

477 | -- If <aCurve> is not in the current plane, <extCurve> contains | |

478 | -- the not projected curve associated to <anEdge>. | |

479 | -- If <anEdge> is infinite, <isinfinite> = true and the 2 | |

480 | -- parameters <FirstPnt> and <LastPnt> have no signification. | |

481 | -- Return TRUE if ok | |

482 | returns Boolean from Standard; | |

483 | ||

484 | ComputeGeometry (anEdge1 : Edge from TopoDS; | |

485 | anEdge2 : Edge from TopoDS; | |

486 | aCurve1 : out Curve from Geom; | |

487 | aCurve2 : out Curve from Geom; | |

488 | FirstPnt1 : out Pnt from gp; | |

489 | LastPnt1 : out Pnt from gp; | |

490 | FirstPnt2 : out Pnt from gp; | |

491 | LastPnt2 : out Pnt from gp; | |

492 | aPlane : Plane from Geom) | |

493 | ---Purpose: Used by 2d Relation only | |

494 | -- Computes the 3d geometry of <anEdge> in the current WorkingPlane | |

495 | -- and the extremities if any | |

496 | -- Return TRUE if ok | |

497 | returns Boolean from Standard; | |

498 | ||

499 | ||

500 | ComputeGeometry (anEdge1 : Edge from TopoDS; | |

501 | anEdge2 : Edge from TopoDS; | |

502 | indexExt : out Integer from Standard; | |

503 | aCurve1 : out Curve from Geom; | |

504 | aCurve2 : out Curve from Geom; | |

505 | FirstPnt1 : out Pnt from gp; | |

506 | LastPnt1 : out Pnt from gp; | |

507 | FirstPnt2 : out Pnt from gp; | |

508 | LastPnt2 : out Pnt from gp; | |

509 | ExtCurve : out Curve from Geom; | |

510 | isinfinite1 : out Boolean from Standard; | |

511 | isinfinite2 : out Boolean from Standard; | |

512 | aPlane : Plane from Geom) | |

513 | ||

514 | ---Purpose: Used by 2d Relation only Computes the 3d geometry | |

515 | -- of<anEdge1> and <anEdge2> in the current Plane and the | |

516 | -- extremities if any. Return in ExtCurve the 3d curve | |

517 | -- (not projected in the plane) of the first edge if | |

518 | -- <indexExt> =1 or of the 2nd edge if <indexExt> = 2. If | |

519 | -- <indexExt> = 0, ExtCurve is Null. if there is an edge | |

520 | -- external to the plane, <isinfinite> is true if this | |

521 | -- edge is infinite. So, the extremities of it are not | |

522 | -- significant. Return TRUE if ok | |

523 | returns Boolean from Standard; | |

524 | ||

525 | ComputeGeomCurve (aCurve : in out Curve from Geom; | |

526 | first1 : Real from Standard; | |

527 | last1 : Real from Standard; | |

528 | FirstPnt1 : out Pnt from gp; | |

529 | LastPnt1 : out Pnt from gp; | |

530 | aPlane : Plane from Geom; | |

531 | isOnPlane: out Boolean from Standard) | |

532 | ||

533 | ---Purpose: Checks if aCurve belongs to aPlane; if not, projects aCurve in aPlane | |

534 | -- and returns aCurve; | |

535 | -- Return TRUE if ok | |

536 | returns Boolean from Standard; | |

537 | ||

538 | ComputeGeometry(aVertex : Vertex from TopoDS; | |

539 | point : out Pnt from gp; | |

540 | aPlane : Plane from Geom; | |

541 | isOnPlane: out Boolean from Standard) | |

542 | returns Boolean from Standard; | |

543 | ||

544 | ||

545 | GetPlaneFromFace( aFace : Face from TopoDS; | |

546 | aPlane : out Pln from gp; | |

547 | aSurf : out Surface from Geom; | |

548 | aSurfType : out KindOfSurface from AIS; | |

549 | Offset : out Real from Standard ) | |

550 | returns Boolean from Standard; | |

551 | ---Purpose: Tryes to get Plane from Face. Returns Surface of Face | |

552 | -- in aSurf. Returns Standard_True and Plane of Face in | |

553 | -- aPlane in following cases: | |

554 | -- Face is Plane, Offset of Plane, | |

555 | -- Extrusion of Line and Offset of Extrusion of Line | |

556 | -- Returns pure type of Surface which can be: | |

557 | -- Plane, Cylinder, Cone, Sphere, Torus, | |

558 | -- SurfaceOfRevolution, SurfaceOfExtrusion | |

559 | ||

560 | InitFaceLength( aFace : Face from TopoDS; | |

561 | aPlane : out Pln from gp; | |

562 | aSurface : out Surface from Geom; | |

563 | aSurfaceType : out KindOfSurface from AIS; | |

564 | anOffset : out Real from Standard ); | |

565 | ||

566 | ComputeLengthBetweenPlanarFaces( FirstFace : Face from TopoDS; | |

567 | SecondFace : Face from TopoDS; | |

568 | Plane1 : Pln from gp; | |

569 | Plane2 : Pln from gp; | |

570 | Value : out Real from Standard; | |

571 | FirstAttach : out Pnt from gp ; | |

572 | SecondAttach : out Pnt from gp ; | |

573 | DirAttach : out Dir from gp ; | |

574 | AutomaticPos : Boolean from Standard; | |

575 | Position : in out Pnt from gp); | |

576 | ||

577 | ComputeLengthBetweenCurvilinearFaces( FirstFace : Face from TopoDS; | |

578 | SecondFace : Face from TopoDS; | |

579 | FirstSurf : in out Surface from Geom; | |

580 | SecondSurf : in out Surface from Geom; | |

581 | AutomaticPos : Boolean from Standard; | |

582 | Value : out Real from Standard; | |

583 | Position : out Pnt from gp; | |

584 | FirstAttach : out Pnt from gp; | |

585 | SecondAttach : out Pnt from gp; | |

586 | DirAttach : out Dir from gp ); | |

587 | ||

588 | ComputeAngleBetweenPlanarFaces( FirstFace : Face from TopoDS; | |

589 | SecondFace : Face from TopoDS; | |

590 | Surf2 : Surface from Geom; | |

591 | Axis : Ax1 from gp; | |

592 | Value : Real from Standard; | |

593 | AutomaticPos : Boolean from Standard; | |

594 | Position : out Pnt from gp; | |

595 | Center : out Pnt from gp; | |

596 | FirstAttach : out Pnt from gp; | |

597 | SecondAttach : out Pnt from gp; | |

598 | FirstDir : out Dir from gp; | |

599 | SecondDir : out Dir from gp); | |

600 | ---Purpose: Computes geometric parameters for planar faces for | |

601 | -- Angular dimensions | |

602 | ||

603 | ComputeAngleBetweenCurvilinearFaces( FirstFace : Face from TopoDS; | |

604 | SecondFace : Face from TopoDS; | |

605 | FirstSurf : Surface from Geom; | |

606 | SecondSurf : Surface from Geom; | |

607 | FirstSurfType : KindOfSurface from AIS; | |

608 | SecondSurfType : KindOfSurface from AIS; | |

609 | Axis : Ax1 from gp; | |

610 | Value : Real from Standard; | |

611 | AutomaticPos : Boolean from Standard; | |

612 | Position : out Pnt from gp; | |

613 | Center : out Pnt from gp; | |

614 | FirstAttach : out Pnt from gp; | |

615 | SecondAttach : out Pnt from gp; | |

616 | FirstDir : out Dir from gp; | |

617 | SecondDir : out Dir from gp; | |

618 | Plane : out Plane from Geom ); | |

619 | ---Purpose: Computes geometric parameters for curvilinear faces for | |

620 | -- Angular dimensions | |

621 | ||

622 | ProjectPointOnPlane( aPoint : Pnt from gp; aPlane : Pln from gp ) | |

623 | returns Pnt from gp; | |

624 | ||

625 | ProjectPointOnLine( aPoint : Pnt from gp; aLine : Lin from gp ) | |

626 | returns Pnt from gp; | |

627 | ||

628 | TranslatePointToBound( aPoint : Pnt from gp; aDir : Dir from gp; aBndBox: Box from Bnd ) | |

629 | returns Pnt from gp; | |

630 | ||

631 | InDomain( aFirstPar : Real from Standard; | |

632 | aLastPar : Real from Standard; | |

633 | anAttachPar : Real from Standard) | |

634 | returns Boolean from Standard; | |

635 | ---Purpose: returns True if point with anAttachPar is | |

636 | -- in domain of arc | |

637 | ||

638 | NearestApex(elips : Elips from gp; | |

639 | pApex : Pnt from gp; | |

640 | nApex : Pnt from gp; | |

641 | fpara : Real from Standard ; | |

642 | lpara : Real from Standard ; | |

643 | IsInDomain : out Boolean from Standard) | |

644 | returns Pnt from gp; | |

645 | ---Purpose: computes nearest to ellipse arc apex | |

646 | ||

647 | DistanceFromApex(elips : Elips from gp; | |

648 | Apex : Pnt from gp; | |

649 | par : Real from Standard ) | |

650 | returns Real from Standard; | |

651 | ---Purpose: computes length of ellipse arc in parametric units | |

652 | ||

653 | ||

654 | ComputeProjEdgePresentation(aPres : mutable Presentation from Prs3d; | |

655 | aDrawer : mutable Drawer from AIS; | |

656 | anEdge : Edge from TopoDS; | |

657 | ProjCurve: Curve from Geom; | |

658 | FirstP : Pnt from gp; | |

659 | LastP : Pnt from gp; | |

660 | aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE; | |

661 | aWidth : Real from Standard = 2; | |

662 | aProjTOL : TypeOfLine from Aspect = Aspect_TOL_DASH; | |

663 | aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT); | |

664 | ||

665 | ComputeProjVertexPresentation(aPres : mutable Presentation from Prs3d; | |

666 | aDrawer : mutable Drawer from AIS; | |

667 | aVertex : Vertex from TopoDS; | |

668 | ProjPoint: Pnt from gp; | |

669 | aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE; | |

670 | aWidth : Real from Standard = 2; | |

671 | aProjTOM : TypeOfMarker from Aspect = Aspect_TOM_PLUS; | |

672 | aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT); | |

673 | ||

674 | end AIS; |