0024420: Add methods to switch the type of sensitivity in AIS_Circle and AIS_Plane
[occt.git] / src / AIS / AIS_IdenticRelation.cdl
1 -- Created on: 1997-03-03
2 -- Created by: Jean-Pierre COMBE
3 -- Copyright (c) 1997-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
23 class IdenticRelation from AIS inherits Relation from AIS
24
25         ---Purpose: Constructs a constraint by a relation of identity
26         -- between two or more datums figuring in shape
27         -- Interactive Objects.
28
29 uses
30      Shape                 from TopoDS,
31      Vertex                from TopoDS,
32      Wire                  from TopoDS,
33      Presentation          from Prs3d,
34      PresentationManager3d from PrsMgr,
35      Selection             from SelectMgr,
36      Projector             from Prs3d,
37      Transformation         from Geom,
38      Plane                 from Geom,
39      Curve                 from Geom,
40      Line                  from Geom,
41      Circle                from Geom,
42      Ellipse               from Geom,
43      Pnt                   from gp,
44      Dir                   from gp
45
46 is
47     Create(FirstShape  : Shape from TopoDS;
48            SecondShape : Shape from TopoDS;
49            aPlane      : Plane from Geom)
50     returns mutable IdenticRelation from AIS;
51         ---Purpose:
52         --   Initializes the relation of identity between the two
53         -- entities, FirstShape and SecondShape. The plane
54         -- aPlane is initialized in case a visual reference is
55         -- needed to show identity.
56     
57     IsMovable(me) returns Boolean from Standard 
58         ---C++: inline       
59         ---Purpose:
60         -- Returns true if the interactive object is movable.
61     is redefined;     
62     
63 -- Methods from PresentableObject
64
65     Compute(me            : mutable;
66             aPresentationManager: PresentationManager3d from PrsMgr;
67             aPresentation : mutable Presentation from Prs3d;
68             aMode         : Integer from Standard= 0) 
69     is redefined private;
70     
71     Compute(me:mutable;
72                 aProjector: Projector from Prs3d;
73                 aPresentation: mutable Presentation from Prs3d)
74     is redefined static private;     
75
76     Compute(me            : mutable;
77             aProjector    : Projector from Prs3d;
78             aTrsf         : Transformation from Geom;
79             aPresentation : mutable Presentation from Prs3d)
80     is redefined;
81     ---Purpose: computes the presentation according to a point of view
82     --          given by <aProjector>. 
83     --          To be Used when the associated degenerated Presentations 
84     --          have been transformed by <aTrsf> which is not a Pure
85     --          Translation. The HLR Prs can't be deducted automatically
86     --          WARNING :<aTrsf> must be applied
87     --           to the object to display before computation  !!!
88
89 -- Methods from SelectableObject
90
91     ComputeSelection(me         : mutable;
92                      aSelection : mutable Selection from SelectMgr;
93                      aMode      : Integer from Standard)
94     is redefined private;
95
96 --
97 --     Computation private methods
98 --
99
100     ComputeOneEdgeOVertexPresentation(me: mutable;
101                                aPresentation : mutable Presentation from Prs3d)
102     is private;
103
104     ComputeTwoEdgesPresentation(me: mutable;
105                                aPresentation : mutable Presentation from Prs3d)
106     is private;
107     
108     ComputeTwoLinesPresentation(me: mutable;
109                                aPresentation : mutable Presentation from Prs3d; 
110                                aLin    : Line from Geom;
111                                Pnt1On1 : in out Pnt  from gp;
112                                Pnt2On1 : in out Pnt  from gp;
113                                Pnt1On2 : in out Pnt  from gp;
114                                Pnt2On2 : in out Pnt  from gp;
115                                isInf1  : Boolean from Standard;
116                                isInf2  : Boolean from Standard)
117     is private; 
118     
119     ComputeTwoCirclesPresentation(me: mutable;
120                                aPresentation : mutable Presentation from Prs3d; 
121                                aCircle : Circle from Geom;
122                                Pnt1On1 : Pnt    from gp;
123                                Pnt2On1 : Pnt    from gp;
124                                Pnt1On2 : Pnt    from gp;
125                                Pnt2On2 : Pnt    from gp)
126     is private;        
127     
128     -- jfa 17/10/2000
129     ComputeAutoArcPresentation(me: mutable;
130                                aCircle : Circle from Geom;
131                                firstp  : Pnt from gp;
132                                lastp   : Pnt from gp;
133                                isstatic: Boolean from Standard = Standard_False)
134         ---Purpose: Computes the presentation of the identic constraint
135         --          between 2 arcs in the case of automatic presentation 
136     is private; 
137
138     ComputeNotAutoCircPresentation(me: mutable;
139                                    aCircle : Circle from Geom)
140         ---Purpose: Computes the presentation of the identic constraint
141         --          between 2 circles in the case of non automatic presentation 
142     is private; 
143     
144     ComputeNotAutoArcPresentation(me: mutable;
145                                   aCircle : Circle from Geom;
146                                   pntfirst: Pnt from gp;
147                                   pntlast : Pnt from gp)
148         ---Purpose: Computes the presentation of the identic constraint
149         --          between 2 arcs in the case of non automatic presentation 
150     is private; 
151     -- jfa 17/10/2000 end
152     
153     -- jfa 10/10/2000
154     ComputeTwoEllipsesPresentation(me: mutable;
155                                    aPrs    : mutable Presentation from Prs3d; 
156                                    anEll   : Ellipse from Geom;
157                                    Pnt1On1 : Pnt    from gp;
158                                    Pnt2On1 : Pnt    from gp;
159                                    Pnt1On2 : Pnt    from gp;
160                                    Pnt2On2 : Pnt    from gp)
161     is private;        
162     -- jfa 10/10/2000 end
163     
164     -- jfa 18/10/2000
165     ComputeAutoArcPresentation(me: mutable;
166                                theEll  : Ellipse from Geom;
167                                firstp  : Pnt from gp;
168                                lastp   : Pnt from gp;
169                                isstatic: Boolean from Standard = Standard_False)
170         ---Purpose: Computes the presentation of the identic constraint
171         --          between 2 arcs in the case of automatic presentation 
172     is private; 
173
174     ComputeNotAutoElipsPresentation(me: mutable;
175                                     theEll : Ellipse from Geom)
176         ---Purpose: Computes the presentation of the identic constraint
177         --          between 2 ellipses in the case of non automatic presentation 
178     is private; 
179
180     ComputeNotAutoArcPresentation(me: mutable;
181                                   theEll  : Ellipse from Geom;
182                                   pntfirst: Pnt from gp;
183                                   pntlast : Pnt from gp)
184         ---Purpose: Computes the presentation of the identic constraint
185         --          between 2 arcs in the case of non automatic presentation 
186     is private; 
187     -- jfa 18/10/2000 end
188     
189     ComputeTwoVerticesPresentation(me: mutable; 
190                                    aPresentation : mutable Presentation from Prs3d)
191     is private;    
192
193     ComputeSegSize(me)
194     returns Real from Standard
195     is private;
196     
197     ComputeDirection(me; aWire    : Wire    from TopoDS;
198                          aVertex  : Vertex  from TopoDS;
199                          aDir     : out Dir from gp)
200     returns Boolean from Standard
201     is private;
202
203     ComputeLineDirection(me; aLin        : Line from Geom;
204                              anExtremity : Pnt from gp)
205     returns Dir from gp
206     is private;
207     
208     ComputeCircleDirection(me; aCirc           : Circle from Geom;
209                                ConnectedVertex : Vertex from TopoDS)
210     returns Dir from gp
211     is private;
212         
213 fields 
214
215     isCircle    : Boolean from Standard;
216     myFAttach   : Pnt     from gp;
217     mySAttach   : Pnt     from gp;
218     myCenter    : Pnt     from gp;
219
220 end IdenticRelation;