0023510: Integration of test grid "vis" into the new testing system
[occt.git] / src / AIS2D / AIS2D_ProjShape.cdl
1 -- Created by: Tanya COOL
2 -- Copyright (c) 2000-2012 OPEN CASCADE SAS
3 --
4 -- The content of this file is subject to the Open CASCADE Technology Public
5 -- License Version 6.5 (the "License"). You may not use the content of this file
6 -- except in compliance with the License. Please obtain a copy of the License
7 -- at http://www.opencascade.org and read it completely before using this file.
8 --
9 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
10 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
11 --
12 -- The Original Code and all software distributed under the License is
13 -- distributed on an "AS IS" basis, without warranty of any kind, and the
14 -- Initial Developer hereby disclaims all such warranties, including without
15 -- limitation, any warranties of merchantability, fitness for a particular
16 -- purpose or non-infringement. Please see the License for the specific terms
17 -- and conditions governing the rights and limitations under the License.
18
19
20 class ProjShape from AIS2D inherits InteractiveObject from AIS2D
21  
22  ---Purpose: Constructs presentable and selectable projection of 
23  --          TopoDS_Shape on the view plane
24
25 uses
26
27   Shape                 from TopoDS,
28   Line                  from Graphic2d,
29   ListOfShape           from TopTools,
30   Projector             from HLRAlgo,
31   Algo                  from HLRBRep,
32   PolyAlgo              from HLRBRep,
33   SetOfSegments         from Graphic2d,
34   SetOfCurves           from GGraphic2d
35
36 is 
37
38   Create returns mutable ProjShape from AIS2D;
39   ---Purpose: Initializes the projected shape 
40
41   Create( aProjector: Projector from HLRAlgo; 
42           nbIsos: Integer from Standard = 3;
43           isPolyAlgo: Boolean from Standard = Standard_False; 
44                   visHL: Boolean from Standard = Standard_True ) 
45      returns mutable ProjShape from AIS2D;
46   ---Purpose: Initializes the projected shape with projector <aProjector>, number isolines <nbIsos>
47
48   Add( me: mutable; aShape: Shape from TopoDS );
49   ---Level: Public
50   ---Purpose: Adds <aShape> to the list of projected shapes. 
51
52   SetProjector( me: mutable; aProjector: Projector from HLRAlgo );
53   ---Level: Public
54   ---Purpose: sets the projector <aProjector>
55
56   Projector( me ) returns Projector from HLRAlgo;
57   ---Level: Public
58   ---Purpose: Indicates the projector
59
60   SetNbIsos( me: mutable; aNbIsos: Integer from Standard );
61   ---Level: Internal
62   ---Purpose: 
63
64   SetPolyAlgo( me: mutable; aIsPoly: Boolean from Standard = Standard_False );
65   ---Level: Internal
66   ---Purpose: sets the projection of the shape as a polyhedral 
67   --          simplification of the shape if <aIsPoly> is True
68
69   SetHLMode( me: mutable; aIsHLM: Boolean from Standard = Standard_True );
70   ---Level: Internal
71   ---Purpose: Sets the hidden line mode if <aIsHLM> is True
72
73   IsHLMode( me ) returns Boolean from Standard;
74   ---Level: Public
75   ---Purpose: Indicates the hidden lines are visible
76
77   GetNbIsos( me ) returns Integer from Standard;
78   ---Level: Public
79   ---Purpose: Indicates the number of isolines
80
81   GetIsPoly( me ) returns Boolean from Standard;
82   ---Level: Public
83   ---Purpose: Indicates the shape was extracted as Algo or PolyAlgo
84
85   GetPrimitives( me ) returns Line from Graphic2d;
86   ---Level: Internal
87   ---Purpose: Returns the set of primitives are included into Shape, 
88   --          except hidden lines
89
90   GetHLPrimitives( me ) returns Line from Graphic2d;
91   ---Level: Internal
92   ---Purpose: Returns the set of hidden line primitives are included into Shape 
93
94   ShowEdges( me: mutable; 
95    aSharp, aSmooth, aSewn, anOutline, anIsoline: Boolean from Standard = Standard_True ); 
96   ---Level: Public
97   ---Purpose: Sets the flags for display of all types of edges
98
99
100   ----------------------------------------------------------------------------
101   ---Category: Private methods
102  
103   CreateAlgo( me: mutable ) is private;
104   CreatePolyAlgo( me: mutable ) is private;
105   DrawSegments( me: mutable; aShape: Shape from TopoDS; 
106                 aSofS: in out SetOfSegments from Graphic2d ) is private; 
107   DrawCurves( me: mutable; aShape: Shape from TopoDS;
108               aSofC: in out SetOfCurves from GGraphic2d ) is private; 
109    
110   ComputeShape( me: mutable ) is private;
111  
112 fields 
113
114   myListOfShape    : ListOfShape   from TopTools;
115   myProjector      : Projector     from HLRAlgo;
116   myAlgo           : Algo          from HLRBRep;
117   myPolyAlgo       : PolyAlgo      from HLRBRep;
118   myNbIsos         : Integer       from Standard;
119   myIsPolyAlgo     : Boolean       from Standard;
120   myIsHiddenLine   : Boolean       from Standard;
121   myESharp         : Boolean       from Standard;
122   myESmooth        : Boolean       from Standard;
123   myESewn          : Boolean       from Standard;
124   myEOutline       : Boolean       from Standard;
125   myEIsoline       : Boolean       from Standard;
126
127   mySetOfSegments  : SetOfSegments from Graphic2d;
128   myHSetOfSegments : SetOfSegments from Graphic2d;
129   mySetOfCurves    : SetOfCurves   from GGraphic2d;
130   myHSetOfCurves   : SetOfCurves   from GGraphic2d;
131                                                                            
132 end ProjShape;