0023024: Update headers of OCCT files
[occt.git] / src / AIS / AIS_FixRelation.cdl
1 -- Created on: 1996-12-05
2 -- Created by: Flore Lantheaume/Odile Olivier
3 -- Copyright (c) 1996-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
21
22 class FixRelation from AIS inherits Relation from AIS
23
24
25         ---Purpose: Constructs and manages a constraint by a fixed
26         -- relation between two or more interactive datums. This
27         -- constraint is represented by a wire from a shape -
28         -- point, vertex, or edge - in the first datum and a
29         -- corresponding shape in the second.
30         -- Warning: This relation is not bound with any kind of parametric 
31         --          constraint : it represents the "status" of an parametric
32         --          object.
33 uses
34
35     PresentationManager3d from PrsMgr,
36     Presentation          from Prs3d,
37     Selection             from SelectMgr,
38     Shape                 from TopoDS,
39     Vertex                from TopoDS,
40     Edge                  from TopoDS,
41     Wire                  from TopoDS,
42     Curve                 from Geom,
43     Circ                  from gp,
44     Lin                   from gp,
45     Pnt                   from gp,
46     Projector             from Prs3d,
47     Transformation        from Geom,
48     PresentationManager2d from PrsMgr,
49     GraphicObject         from Graphic2d,    
50     Plane                 from Geom
51
52 is
53     Create (aShape      : Shape          from TopoDS;
54             aPlane      : Plane          from Geom;
55             aWire       : Wire           from TopoDS)
56         ---Purpose:  initializes the vertex aShape, the
57         --   plane aPlane and the wire aWire, which connects
58         --   the two vertices in a fixed relation.
59     returns mutable FixRelation from AIS;
60
61     Create (aShape      : Shape          from TopoDS;
62             aPlane      : Plane          from Geom;
63             aWire       : Wire           from TopoDS;
64             aPosition   : Pnt            from gp;
65             anArrowSize : Real           from Standard = 0.01)
66         ---Purpose:  initializes the vertex aShape, the
67         --   plane aPlane and the wire aWire, the position
68         --   aPosition, the arrow size anArrowSize and the
69         -- wire aWire, which connects the two vertices in a fixed relation.
70     returns mutable FixRelation from AIS;
71     Create (aShape      : Shape          from TopoDS;
72             aPlane      : Plane          from Geom)
73         ---Purpose:  initializes the edge aShape and the plane aPlane.
74     returns mutable FixRelation from AIS;
75
76     Create (aShape      : Shape          from TopoDS;
77             aPlane      : Plane          from Geom;
78             aPosition   : Pnt            from gp;
79             anArrowSize : Real           from Standard = 0.01)
80         ---Purpose: initializes the edge aShape, the
81         --   plane aPlane, the position aPosition and the arrow
82         --   size anArrowSize.
83         
84     returns mutable FixRelation from AIS;
85
86     Wire(me: mutable) returns Wire from TopoDS 
87     is static;
88         ---Purpose: Returns the wire which connects vertices in a fixed relation.
89
90     SetWire(me: mutable;aWire : Wire from TopoDS)
91     is static;
92         --- Purpose: Constructs the wire aWire. This connects vertices
93         -- which are in a fixed relation.
94         
95     IsMovable(me) returns Boolean from Standard 
96         ---C++: inline    
97         ---Purpose: Returns true if the Interactive Objects in the relation
98         -- are movable.   
99     is redefined;    
100     
101     -- Methods from PresentableObject
102     
103     Compute(me            : mutable;
104             aPresentationManager: PresentationManager3d from PrsMgr;
105             aPresentation : mutable Presentation from Prs3d;
106             aMode         : Integer from Standard= 0) 
107     is redefined static private;
108     
109     Compute(me:mutable;
110                 aProjector: Projector from Prs3d;
111                 aPresentation: mutable Presentation from Prs3d)
112     is redefined static private;     
113
114     Compute(me:mutable;
115             aPresentationManager: PresentationManager2d from PrsMgr;
116             aPresentation: mutable GraphicObject from Graphic2d;
117             aMode: Integer from Standard = 0)
118     is redefined static private;
119     
120     Compute(me            : mutable;
121             aProjector    : Projector from Prs3d;
122             aTrsf         : Transformation from Geom;
123             aPresentation : mutable Presentation from Prs3d)
124     is redefined;
125         ---Purpose: computes the presentation according to a point of view
126         --          given by <aProjector>. 
127         --          To be Used when the associated degenerated Presentations 
128         --          have been transformed by <aTrsf> which is not a Pure
129         --          Translation. The HLR Prs can't be deducted automatically
130         --          WARNING :<aTrsf> must be applied
131         --           to the object to display before computation  !!!
132
133     -- Methods from SelectableObject
134    
135     ComputeSelection(me         : mutable;
136                      aSelection : mutable Selection from SelectMgr;
137                      aMode      : Integer from Standard)
138     is redefined private;
139     
140        
141     --
142     --             Computation private methods
143     --
144
145     ComputeVertex(me : mutable;
146                   FixVertex : Vertex from TopoDS;
147                   curpos    : out Pnt from gp)
148     ---Purpose: computes the presentation for <myFixShape> if it's a
149     --          vertex.
150     is private;
151     
152     
153     ComputePosition(me;
154                     curv1   : Curve from Geom;
155                     curv2   : Curve from Geom;
156                     firstp1 : Pnt   from gp;
157                     lastp1  : Pnt   from gp ;
158                     firstp2 : Pnt   from gp;
159                     lastp2  : Pnt   from gp)
160     returns Pnt from gp
161     is private;
162     
163     
164     ComputePosition(me;
165                     curv   : Curve from Geom;
166                     firstp : Pnt  from gp;
167                     lastp  : Pnt  from gp)
168     returns Pnt from gp
169     is private;
170     
171     
172     ComputeEdge(me : mutable;
173                 FixEdge : Edge from TopoDS;
174                 curpos    : out Pnt from gp)
175     ---Purpose: computes the presentation for <myFixShape> if it's a
176     --          edge.
177     is private;
178     
179     
180     ComputeLinePosition(me     : mutable;
181                         glin   : Lin from gp;
182                         pos    : out Pnt from gp;
183                         pfirst : out Real from Standard;
184                         plast  : out Real from Standard)
185     is private;
186     
187     
188     ComputeCirclePosition(me     : mutable;
189                           gcirc  : Circ from gp;
190                           pos    : out Pnt from gp;
191                           pfirst : out Real from Standard;
192                           plast  : out Real from Standard)
193     is private;
194
195     ConnectedEdges(myclass; aWire       : Wire     from TopoDS;
196                             aVertex     : Vertex   from TopoDS;
197                             Edge1,Edge2 : out Edge from TopoDS)
198     returns Boolean from Standard
199     is private;
200     
201    
202 fields
203
204     myWire      : Wire    from TopoDS;
205     myPntAttach : Pnt     from gp;
206     haspos      : Boolean from Standard;
207
208 end FixRelation;
209