0024023: Revamp the OCCT Handle -- ambiguity
[occt.git] / src / AIS / AIS_Line.cdl
1 -- Created on: 1997-01-21
2 -- Created by: Prestataire Christiane ARMAND
3 -- Copyright (c) 1997-1999 Matra Datavision
4 -- Copyright (c) 1999-2014 OPEN CASCADE SAS
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
8 -- This library is free software; you can redistribute it and/or modify it under
9 -- the terms of the GNU Lesser General Public License version 2.1 as published
10 -- by the Free Software Foundation, with special exception defined in the file
11 -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 -- distribution for complete text of the license and disclaimer of any warranty.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 class Line from AIS inherits InteractiveObject from AIS
18
19         ---Purpose: Constructs line datums to be used in construction of
20         -- composite shapes.
21
22 uses 
23     Line                  from Geom,
24     Point                 from Geom,
25     Presentation          from Prs3d,
26     PresentationManager3d from PrsMgr,
27     NameOfColor           from Quantity,
28     Color                         from Quantity,
29     Selection             from SelectMgr,
30     Projector             from Prs3d,
31     Transformation        from Geom,
32     Line                  from AIS,
33     KindOfInteractive     from AIS
34
35 is
36     Create(aLine : Line from Geom) 
37     returns Line from AIS;
38         ---Purpose: Initializes the line aLine.
39         
40     Create(aStartPoint : Point from Geom;
41            aEndPoint : Point from Geom) 
42     returns Line from AIS;
43         ---Purpose: Initializes a starting point aStartPoint
44         --   and a finishing point aEndPoint for the line. 
45  
46     Compute(me            : mutable;
47             aPresentationManager: PresentationManager3d from PrsMgr;
48             aPresentation : Presentation from Prs3d;
49             aMode         : Integer from Standard = 0) 
50     is redefined static  private;
51     
52     Compute(me:mutable;
53                 aProjector: Projector from Prs3d;
54                 aPresentation: Presentation from Prs3d)
55     is redefined static private;
56
57     Compute(me            : mutable;
58             aProjector    : Projector from Prs3d;
59             aTrsf         : Transformation from Geom;
60             aPresentation : Presentation from Prs3d)
61     is redefined;
62         ---Purpose: computes the presentation according to a point of view
63         --          given by <aProjector>.
64         --          To be Used when the associated degenerated Presentations
65         --          have been transformed by <aTrsf> which is not a Pure
66         --          Translation. The HLR Prs can't be deducted automatically
67         --          WARNING :<aTrsf> must be applied
68         --           to the object to display before computation  !!!
69
70 -- Methods from SelectableObject
71
72     ComputeSelection(me         : mutable;
73                      aSelection : Selection from SelectMgr;
74                      aMode      : Integer from Standard)is private;
75
76  
77 -- Methods from InteractiveObject
78
79     Signature(me) returns Integer from Standard is redefined;
80         ---Purpose: Returns the signature 5.
81         ---C++: inline
82        
83  Type(me) returns KindOfInteractive from AIS is redefined;
84         ---Purpose: Returns the type Datum.
85         ---C++: inline
86       
87   Line(me) returns any Line from Geom;
88         ---C++: inline
89         ---C++: return const &
90         ---Purpose: Constructs an infinite line.
91   
92     Points(me;PStart,PEnd: out Point from Geom);
93         ---Purpose: Returns the starting point PStart and the end point
94         -- PEnd of the line set by SetPoints.
95         ---C++: inline
96         
97   SetLine(me:mutable;L : Line from Geom);
98         ---C++: inline
99         ---Purpose: instantiates an infinite line.
100          
101     SetPoints(me:mutable;P1,P2:Point from Geom);
102         --- Purpose:
103         -- Sets the starting point P1 and ending point P2 of the
104         -- infinite line to create a finite line segment.
105         ---C++: inline
106
107    SetColor(me :mutable; aColor : NameOfColor from Quantity)
108     is redefined static;
109         ---Purpose: Provides a new color setting aColor for the line in the
110         -- drawing tool, or "Drawer". 
111     SetColor(me :mutable; aColor : Color from Quantity) 
112     is redefined static;
113          
114     SetWidth(me:mutable; aValue:Real from Standard)
115     is redefined static; 
116         ---Purpose: Provides the new width setting aValue for the line in
117         -- the drawing tool, or "Drawer".
118     UnsetColor(me:mutable)
119     is redefined static; 
120         ---Purpose: Removes the color setting and returns the original color.    
121     UnsetWidth(me:mutable)    
122     is redefined static; 
123         ---Purpose: Removes the width setting and returns the original width.
124
125
126     ComputeInfiniteLine(me: mutable;
127                         aPresentation : Presentation from Prs3d)
128     is private;
129      
130     ComputeSegmentLine(me: mutable;
131                        aPresentation : Presentation from Prs3d)
132     is private;
133
134     ComputeInfiniteLineSelection(me: mutable;
135                                  aSelection : Selection from SelectMgr)
136     is private;
137      
138     ComputeSegmentLineSelection(me: mutable;
139                                 aSelection : Selection from SelectMgr)
140     is private;
141
142 fields
143
144
145     myComponent     : Line    from Geom;
146     myStartPoint    : Point   from Geom;
147     myEndPoint      : Point   from Geom;
148     myLineIsSegment : Boolean from Standard;
149     
150 end Line;