1 // Created on: 1994-03-09
2 // Created by: Isabelle GRIGNON
3 // Copyright (c) 1994-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
18 #include <ChFiDS_Spine.hxx>
19 #include <ChFiDS_Stripe.hxx>
20 #include <Geom2d_Curve.hxx>
21 #include <Standard_Type.hxx>
22
IMPLEMENT_STANDARD_RTTIEXT(ChFiDS_Stripe,Standard_Transient)23 IMPLEMENT_STANDARD_RTTIEXT(ChFiDS_Stripe,Standard_Transient)
24
25 ChFiDS_Stripe::ChFiDS_Stripe ()
26 : pardeb1 (0.0),
27 parfin1 (0.0),
28 pardeb2 (0.0),
29 parfin2 (0.0),
30 myChoix (0),
31 indexOfSolid (0),
32 indexOfcurve1 (0),
33 indexOfcurve2 (0),
34 indexfirstPOnS1 (0),
35 indexlastPOnS1 (0),
36 indexfirstPOnS2 (0),
37 indexlastPOnS2 (0),
38 begfilled(/*Standard_False*/0), // eap, Apr 29 2002, occ293
39 endfilled(/*Standard_False*/0),
40 myOr1 (TopAbs_FORWARD),
41 myOr2 (TopAbs_FORWARD),
42 orcurv1 (TopAbs_FORWARD),
43 orcurv2 (TopAbs_FORWARD)
44 {
45 }
46
Reset()47 void ChFiDS_Stripe::Reset()
48 {
49 myHdata.Nullify();
50 orcurv1 = orcurv2 = TopAbs_FORWARD;
51 pcrv1.Nullify();
52 pcrv1.Nullify();
53 mySpine->Reset();
54 }
55
56 //=======================================================================
57 //function : Parameters
58 //purpose :
59 //=======================================================================
60
Parameters(const Standard_Boolean First,Standard_Real & Pdeb,Standard_Real & Pfin) const61 void ChFiDS_Stripe::Parameters(const Standard_Boolean First,
62 Standard_Real& Pdeb,
63 Standard_Real& Pfin) const
64 {
65 if(First) {Pdeb = pardeb1; Pfin = parfin1;}
66 else {Pdeb = pardeb2; Pfin = parfin2;}
67 }
68
69
70 //=======================================================================
71 //function : SetParameters
72 //purpose :
73 //=======================================================================
74
SetParameters(const Standard_Boolean First,const Standard_Real Pdeb,const Standard_Real Pfin)75 void ChFiDS_Stripe::SetParameters(const Standard_Boolean First,
76 const Standard_Real Pdeb,
77 const Standard_Real Pfin)
78 {
79 if(First) {pardeb1 = Pdeb; parfin1 = Pfin;}
80 else {pardeb2 = Pdeb; parfin2 = Pfin;}
81 }
82
83
84 //=======================================================================
85 //function : Curve
86 //purpose :
87 //=======================================================================
88
Curve(const Standard_Boolean First) const89 Standard_Integer ChFiDS_Stripe::Curve(const Standard_Boolean First) const
90 {
91 if(First) return indexOfcurve1;
92 else return indexOfcurve2;
93 }
94
95
96 //=======================================================================
97 //function : SetCurve
98 //purpose :
99 //=======================================================================
100
SetCurve(const Standard_Integer Index,const Standard_Boolean First)101 void ChFiDS_Stripe::SetCurve(const Standard_Integer Index,
102 const Standard_Boolean First)
103 {
104 if(First) indexOfcurve1 = Index;
105 else indexOfcurve2 = Index;
106 }
107
108
109 //=======================================================================
110 //function : Handle(Geom2d_Curve)&
111 //purpose :
112 //=======================================================================
113
Handle(Geom2d_Curve)114 const Handle(Geom2d_Curve)& ChFiDS_Stripe::PCurve
115 (const Standard_Boolean First) const
116 {
117 if(First) return pcrv1;
118 else return pcrv2;
119 }
120
121
122 //=======================================================================
123 //function : ChangePCurve
124 //purpose :
125 //=======================================================================
126
Handle(Geom2d_Curve)127 Handle(Geom2d_Curve)& ChFiDS_Stripe::ChangePCurve
128 (const Standard_Boolean First)
129 {
130 if(First) return pcrv1;
131 else return pcrv2;
132 }
133
134
135 //=======================================================================
136 //function : Orientation
137 //purpose :
138 //=======================================================================
139
Orientation(const Standard_Integer OnS) const140 TopAbs_Orientation ChFiDS_Stripe::Orientation
141 (const Standard_Integer OnS) const
142 {
143 if(OnS == 1) return myOr1;
144 else return myOr2;
145 }
146
147
148 //=======================================================================
149 //function : Orientation
150 //purpose :
151 //=======================================================================
152
SetOrientation(const TopAbs_Orientation Or,const Standard_Integer OnS)153 void ChFiDS_Stripe::SetOrientation(const TopAbs_Orientation Or,
154 const Standard_Integer OnS)
155 {
156 if(OnS == 1) myOr1 = Or;
157 else myOr2 = Or;
158 }
159
160
161 //=======================================================================
162 //function : Orientation
163 //purpose :
164 //=======================================================================
165
Orientation(const Standard_Boolean First) const166 TopAbs_Orientation ChFiDS_Stripe::Orientation
167 (const Standard_Boolean First) const
168 {
169 if(First) return orcurv1;
170 else return orcurv2;
171 }
172
173
174 //=======================================================================
175 //function : Orientation
176 //purpose :
177 //=======================================================================
178
SetOrientation(const TopAbs_Orientation Or,const Standard_Boolean First)179 void ChFiDS_Stripe::SetOrientation(const TopAbs_Orientation Or,
180 const Standard_Boolean First)
181 {
182 if(First) orcurv1 = Or;
183 else orcurv2 = Or;
184 }
185
186
187 //=======================================================================
188 //function : IndexPoint
189 //purpose :
190 //=======================================================================
191
IndexPoint(const Standard_Boolean First,const Standard_Integer OnS) const192 Standard_Integer ChFiDS_Stripe::IndexPoint
193 (const Standard_Boolean First, const Standard_Integer OnS) const
194 {
195 if(First){
196 if (OnS == 1) return indexfirstPOnS1;
197 else return indexfirstPOnS2;
198 }
199 else{
200 if (OnS == 1) return indexlastPOnS1;
201 else return indexlastPOnS2;
202 }
203 }
204
205
206 //=======================================================================
207 //function : SetIndexPoint
208 //purpose :
209 //=======================================================================
210
SetIndexPoint(const Standard_Integer Index,const Standard_Boolean First,const Standard_Integer OnS)211 void ChFiDS_Stripe::SetIndexPoint(const Standard_Integer Index,
212 const Standard_Boolean First,
213 const Standard_Integer OnS)
214 {
215 if(First){
216 if (OnS == 1) indexfirstPOnS1 = Index;
217 else indexfirstPOnS2 = Index;
218 }
219 else{
220 if (OnS == 1) indexlastPOnS1 = Index;
221 else indexlastPOnS2 = Index;
222 }
223 }
224
SolidIndex() const225 Standard_Integer ChFiDS_Stripe::SolidIndex()const
226 {
227 return indexOfSolid;
228 }
229
SetSolidIndex(const Standard_Integer Index)230 void ChFiDS_Stripe::SetSolidIndex(const Standard_Integer Index)
231 {
232 indexOfSolid = Index;
233 }
234
235
236 //=======================================================================
237 //function : InDS
238 //purpose :
239 //=======================================================================
240
InDS(const Standard_Boolean First,const Standard_Integer Nb)241 void ChFiDS_Stripe::InDS(const Standard_Boolean First,
242 const Standard_Integer Nb) // eap, Apr 29 2002, occ293
243 {
244 if(First){
245 begfilled = /*Standard_True*/ Nb;
246 }
247 else{
248 endfilled = /*Standard_True*/ Nb;
249 }
250 }
251
252
253 //=======================================================================
254 //function : IsInDS
255 //purpose :
256 //=======================================================================
257
IsInDS(const Standard_Boolean First) const258 Standard_Integer ChFiDS_Stripe::IsInDS(const Standard_Boolean First)const
259 {
260 if(First) return begfilled;
261 else return endfilled;
262 }
263