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