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