0023625: New functionality building reflect lines on a shape
[occt.git] / src / HLRBRep / HLRBRep_HLRToShape.cdl
1 -- Created on: 1993-10-11
2 -- Created by: Christophe MARION
3 -- Copyright (c) 1993-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 class HLRToShape from HLRBRep
23         ---Purpose: A framework for filtering the computation
24         -- results of an HLRBRep_Algo algorithm by extraction.
25         -- From the results calculated by the algorithm on
26         -- a shape, a filter returns the type of edge you
27         -- want to identify. You can choose any of the following types of output:
28         -- -   visible sharp edges
29         -- -   hidden sharp edges
30         -- -   visible smooth edges
31         -- -   hidden smooth edges
32         -- -   visible sewn edges
33         -- -   hidden sewn edges
34         -- -   visible outline edges
35         -- -   hidden outline edges.
36         -- -   visible isoparameters and
37         -- -   hidden isoparameters.
38         -- Sharp edges present a C0 continuity (non G1).
39         -- Smooth edges present a G1 continuity (non G2).
40         -- Sewn edges present a C2 continuity.
41         -- The result is composed of 2D edges in the
42         -- projection plane of the view which the
43         -- algorithm has worked with. These 2D edges
44         -- are not included in the data structure of the visualized shape.
45         -- In order to obtain a complete image, you must
46         -- combine the shapes given by each of the chosen filters.
47         -- The construction of the shape does not call a
48         -- new computation of the algorithm, but only
49         -- reads its internal results.
50         -- The methods of this shape are almost identic to those of the HLRBrep_PolyHLRToShape class.
51 uses
52     Boolean  from Standard,
53     Integer  from Standard,
54     Real     from Standard,
55     Shape    from TopoDS,
56     Edge     from TopoDS,
57     Curve    from HLRBRep,
58     Algo     from HLRBRep,
59     Data     from HLRBRep,
60     EdgeData from HLRBRep
61
62 is
63     Create(A : Algo from HLRBRep)
64     returns HLRToShape from HLRBRep;
65         ---Purpose: Constructs a framework for filtering the
66         --- results of the HLRBRep_Algo algorithm, A.
67         -- Use the extraction filters to obtain the results you want for A.
68     VCompound(me : in out) returns Shape from TopoDS
69         ---C++: inline
70     is static;
71
72     VCompound(me : in out;
73               S  : Shape from TopoDS) returns Shape from TopoDS
74         ---C++: inline
75     is static;
76
77     Rg1LineVCompound(me : in out) returns Shape from TopoDS
78         ---C++: inline
79     is static;
80
81     Rg1LineVCompound(me : in out;
82                      S  : Shape from TopoDS) returns Shape from TopoDS
83         ---C++: inline
84     is static;
85
86     RgNLineVCompound(me : in out) returns Shape from TopoDS
87         ---C++: inline
88     is static;
89
90     RgNLineVCompound(me : in out;
91                      S  : Shape from TopoDS) returns Shape from TopoDS
92         ---C++: inline
93     is static;
94
95     OutLineVCompound(me : in out) returns Shape from TopoDS
96         ---C++: inline
97     is static;
98
99     OutLineVCompound3d(me : in out) returns Shape from TopoDS
100         ---C++: inline
101     is static;
102
103     OutLineVCompound(me : in out;
104                      S  : Shape from TopoDS) returns Shape from TopoDS
105         ---C++: inline
106     is static;
107
108     IsoLineVCompound(me : in out) returns Shape from TopoDS
109         ---C++: inline
110     is static;
111
112     IsoLineVCompound(me : in out;
113                      S  : Shape from TopoDS) returns Shape from TopoDS
114         ---C++: inline
115     is static;
116
117     HCompound(me : in out) returns Shape from TopoDS
118         ---C++: inline
119     is static;
120
121     HCompound(me : in out;
122               S  : Shape from TopoDS) returns Shape from TopoDS
123         ---C++: inline
124     is static;
125
126     Rg1LineHCompound(me : in out) returns Shape from TopoDS
127         ---C++: inline
128     is static;
129
130     Rg1LineHCompound(me : in out;
131                      S  : Shape from TopoDS) returns Shape from TopoDS
132         ---C++: inline
133     is static;
134
135     RgNLineHCompound(me : in out) returns Shape from TopoDS
136         ---C++: inline
137     is static;
138
139     RgNLineHCompound(me : in out;
140                      S  : Shape from TopoDS) returns Shape from TopoDS
141         ---C++: inline
142     is static;
143
144     OutLineHCompound(me : in out) returns Shape from TopoDS
145         ---C++: inline
146     is static;
147
148     OutLineHCompound(me : in out;
149                      S  : Shape from TopoDS) returns Shape from TopoDS
150         ---C++: inline
151     is static;
152
153     IsoLineHCompound(me : in out) returns Shape from TopoDS
154         ---C++: inline
155     is static;
156     
157     IsoLineHCompound(me : in out;
158                      S  : Shape from TopoDS) returns Shape from TopoDS
159         ---C++: inline
160     is static;
161     
162     InternalCompound(me : in out; typ     : Integer from Standard;
163                                   visible : Boolean from Standard;
164                                   S       : Shape   from TopoDS;
165                                   In3d    : Boolean from Standard = Standard_False)
166     returns Shape from TopoDS
167     is static private;
168     
169     DrawFace(me; visible :     Boolean from Standard;
170                  typ     :     Integer from Standard;
171                  iface   :     Integer from Standard;
172                  DS      : out Data    from HLRBRep;
173                  Result  : out Shape   from TopoDS;
174                  added   : out Boolean from Standard;
175                  In3d    : Boolean from Standard = Standard_False)
176     is static private;
177     
178     DrawEdge(me; visible :     Boolean  from Standard;
179                  inFace  :     Boolean  from Standard;
180                  typ     :     Integer  from Standard;
181                  ed      : out EdgeData from HLRBRep;
182                  Result  : out Shape    from TopoDS;
183                  added   : out Boolean  from Standard;
184                  In3d    : Boolean from Standard = Standard_False)
185     is static private;
186     
187 fields
188
189     myAlgo : Algo from HLRBRep;
190
191 end HLRToShape;