7fd59977 |
1 | -- File: AIS_TangentRelation.cdl |
2 | -- Created: Thu Dec 5 10:43:26 1996 |
3 | -- Author: Jean-Pierre COMBE/Odile Olivier |
4 | -- <odl@sacadox.paris1.matra-dtv.fr> |
5 | ---Copyright: Matra Datavision 1996 |
6 | |
7 | class TangentRelation from AIS inherits Relation from AIS |
8 | ---Purpose: A framework to display tangency constraints between |
9 | -- two or more Interactive Objects of the datum type. |
10 | -- The datums are normally faces or edges. |
11 | uses Shape from TopoDS, |
12 | Presentation from Prs3d, |
13 | PresentationManager3d from PrsMgr, |
14 | Selection from SelectMgr, |
15 | Pnt from gp, |
16 | Dir from gp, |
17 | Projector from Prs3d, |
18 | Transformation from Geom, |
19 | PresentationManager2d from PrsMgr, |
20 | GraphicObject from Graphic2d, |
21 | Plane from Geom |
22 | |
23 | is |
24 | Create (aFShape : Shape from TopoDS; |
25 | aSShape : Shape from TopoDS; |
26 | aPlane : Plane from Geom; |
27 | anExternRef : Integer from Standard = 0) |
28 | ---Purpose: TwoFacesTangent or TwoEdgesTangent relation |
29 | returns mutable TangentRelation from AIS; |
30 | ---Purpose: Constructs an object to display tangency constraints. |
31 | -- This object is defined by the first shape aFShape, the |
32 | -- second shape aSShape, the plane aPlane and the index anExternRef. |
33 | -- aPlane serves as an optional axis. |
34 | -- anExternRef set to 0 indicates that there is no relation. |
35 | |
36 | ExternRef(me: mutable) returns Integer from Standard |
37 | is static; |
38 | ---Purpose: Returns the external reference for tangency. |
39 | -- The values are as follows: |
40 | -- - 0 - there is no connection; |
41 | -- - 1 - there is a connection to the first shape; |
42 | -- - 2 - there is a connection to the second shape. |
43 | -- This reference is defined at construction time. |
44 | |
45 | SetExternRef(me: mutable;aRef : Integer from Standard) |
46 | is static; |
47 | ---Purpose: Sets the external reference for tangency, aRef. |
48 | -- The values are as follows: |
49 | -- - 0 - there is no connection; |
50 | -- - 1 - there is a connection to the first shape; |
51 | -- - 2 - there is a connection to the second shape. |
52 | -- This reference is initially defined at construction time. |
53 | |
54 | Compute(me : mutable; |
55 | aPresentationManager: PresentationManager3d from PrsMgr; |
56 | aPresentation : mutable Presentation from Prs3d; |
57 | aMode : Integer from Standard= 0) |
58 | is redefined static private; |
59 | |
60 | Compute(me:mutable; |
61 | aProjector: Projector from Prs3d; |
62 | aPresentation: mutable Presentation from Prs3d) |
63 | is redefined static private; |
64 | |
65 | Compute(me:mutable; |
66 | aPresentationManager: PresentationManager2d from PrsMgr; |
67 | aPresentation: mutable GraphicObject from Graphic2d; |
68 | aMode: Integer from Standard = 0) |
69 | is redefined static private; |
70 | |
71 | Compute(me : mutable; |
72 | aProjector : Projector from Prs3d; |
73 | aTrsf : Transformation from Geom; |
74 | aPresentation : mutable Presentation from Prs3d) |
75 | is redefined; |
76 | ---Purpose: computes the presentation according to a point of view |
77 | -- given by <aProjector>. |
78 | -- To be Used when the associated degenerated Presentations |
79 | -- have been transformed by <aTrsf> which is not a Pure |
80 | -- Translation. The HLR Prs can't be deducted automatically |
81 | -- WARNING :<aTrsf> must be applied |
82 | -- to the object to display before computation !!! |
83 | |
84 | -- Methods from SelectableObject |
85 | |
86 | ComputeSelection(me : mutable; |
87 | aSelection : mutable Selection from SelectMgr; |
88 | aMode : Integer from Standard)is private; |
89 | |
90 | |
91 | -- |
92 | -- Computation private methods |
93 | -- |
94 | |
95 | ComputeTwoFacesTangent(me: mutable; |
96 | aPresentation : mutable Presentation from Prs3d) |
97 | is private; |
98 | |
99 | ComputeTwoEdgesTangent(me: mutable; |
100 | aPresentation : mutable Presentation from Prs3d) |
101 | is private; |
102 | |
103 | |
104 | fields |
105 | |
106 | myAttach : Pnt from gp; |
107 | myDir : Dir from gp; |
108 | myLength : Real from Standard; |
109 | myExternRef : Integer from Standard; ---purpose: (0 no attachment,1 attachment with first shape, 2 attachment with second shape) |
110 | |
111 | end TangentRelation; |
112 | |