0024428: Implementation of LGPL license
[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
9 -- under the terms of the GNU Lesser General Public 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 --   GG  :  GER61351 17/11/1999 Change SetColor() with a compatible Quantity_Color instead
18 --                                     the restricted NameOfColor.
19
20 class Line from AIS inherits InteractiveObject from AIS
21
22         ---Purpose: Constructs line datums to be used in construction of
23         -- composite shapes.
24
25 uses 
26     Line                  from Geom,
27     Point                 from Geom,
28     Presentation          from Prs3d,
29     PresentationManager3d from PrsMgr,
30     NameOfColor           from Quantity,
31     Color                         from Quantity,
32     Selection             from SelectMgr,
33     Projector             from Prs3d,
34     Transformation        from Geom,
35     Line                  from AIS,
36     KindOfInteractive     from AIS
37
38 is
39     Create(aLine : Line from Geom) 
40     returns mutable Line from AIS;
41         ---Purpose: Initializes the line aLine.
42         
43     Create(aStartPoint : Point from Geom;
44            aEndPoint : Point from Geom) 
45     returns mutable Line from AIS;
46         ---Purpose: Initializes a starting point aStartPoint
47         --   and a finishing point aEndPoint for the line. 
48  
49     Compute(me            : mutable;
50             aPresentationManager: PresentationManager3d from PrsMgr;
51             aPresentation : mutable Presentation from Prs3d;
52             aMode         : Integer from Standard = 0) 
53     is redefined static  private;
54     
55     Compute(me:mutable;
56                 aProjector: Projector from Prs3d;
57                 aPresentation: mutable Presentation from Prs3d)
58     is redefined static private;
59
60     Compute(me            : mutable;
61             aProjector    : Projector from Prs3d;
62             aTrsf         : Transformation from Geom;
63             aPresentation : mutable Presentation from Prs3d)
64     is redefined;
65         ---Purpose: computes the presentation according to a point of view
66         --          given by <aProjector>.
67         --          To be Used when the associated degenerated Presentations
68         --          have been transformed by <aTrsf> which is not a Pure
69         --          Translation. The HLR Prs can't be deducted automatically
70         --          WARNING :<aTrsf> must be applied
71         --           to the object to display before computation  !!!
72
73 -- Methods from SelectableObject
74
75     ComputeSelection(me         : mutable;
76                      aSelection : mutable Selection from SelectMgr;
77                      aMode      : Integer from Standard)is private;
78
79  
80 -- Methods from InteractiveObject
81
82     Signature(me) returns Integer from Standard is redefined;
83         ---Purpose: Returns the signature 5.
84         ---C++: inline
85        
86  Type(me) returns KindOfInteractive from AIS is redefined;
87         ---Purpose: Returns the type Datum.
88         ---C++: inline
89       
90   Line(me) returns any Line from Geom;
91         ---C++: inline
92         ---C++: return const &
93         ---Purpose: Constructs an infinite line.
94   
95     Points(me;PStart,PEnd: out Point from Geom);
96         ---Purpose: Returns the starting point PStart and the end point
97         -- PEnd of the line set by SetPoints.
98         ---C++: inline
99         
100   SetLine(me:mutable;L : Line from Geom);
101         ---C++: inline
102         ---Purpose: instantiates an infinite line.
103          
104     SetPoints(me:mutable;P1,P2:Point from Geom);
105         --- Purpose:
106         -- Sets the starting point P1 and ending point P2 of the
107         -- infinite line to create a finite line segment.
108         ---C++: inline
109
110    SetColor(me :mutable; aColor : NameOfColor from Quantity)
111     is redefined static;
112         ---Purpose: Provides a new color setting aColor for the line in the
113         -- drawing tool, or "Drawer". 
114     SetColor(me :mutable; aColor : Color from Quantity) 
115     is redefined static;
116          
117     SetWidth(me:mutable; aValue:Real from Standard)
118     is redefined static; 
119         ---Purpose: Provides the new width setting aValue for the line in
120         -- the drawing tool, or "Drawer".
121     UnsetColor(me:mutable)
122     is redefined static; 
123         ---Purpose: Removes the color setting and returns the original color.    
124     UnsetWidth(me:mutable)    
125     is redefined static; 
126         ---Purpose: Removes the width setting and returns the original width.
127
128
129     ComputeInfiniteLine(me: mutable;
130                         aPresentation : mutable Presentation from Prs3d)
131     is private;
132      
133     ComputeSegmentLine(me: mutable;
134                        aPresentation : mutable Presentation from Prs3d)
135     is private;
136
137     ComputeInfiniteLineSelection(me: mutable;
138                                  aSelection : mutable Selection from SelectMgr)
139     is private;
140      
141     ComputeSegmentLineSelection(me: mutable;
142                                 aSelection : mutable Selection from SelectMgr)
143     is private;
144
145 fields
146
147
148     myComponent     : Line    from Geom;
149     myStartPoint    : Point   from Geom;
150     myEndPoint      : Point   from Geom;
151     myLineIsSegment : Boolean from Standard;
152     
153 end Line;