0024510: Remove unused local variables
[occt.git] / src / GeomFill / GeomFill_TgtOnCoons.cxx
1 // Created on: 1995-12-04
2 // Created by: Laurent BOURESCHE
3 // Copyright (c) 1995-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 #include <GeomFill_TgtOnCoons.ixx>
18 #include <GeomFill_Boundary.hxx>
19
20 //=======================================================================
21 //function : GeomFill_TgtOnCoons
22 //purpose  : 
23 //=======================================================================
24
25 GeomFill_TgtOnCoons::GeomFill_TgtOnCoons
26 (const Handle(GeomFill_CoonsAlgPatch)& K, 
27  const Standard_Integer I) : myK(K), ibound(I)
28 {
29 }
30
31
32 //=======================================================================
33 //function : Value
34 //purpose  : 
35 //=======================================================================
36
37 gp_Vec GeomFill_TgtOnCoons::Value(const Standard_Real W) const 
38 {
39   Standard_Real U = 0.,V = 0.,bid = 0.;
40   switch (ibound){
41   case 0 :
42     myK->Bound(1)->Bounds(V,bid);
43     break;
44   case 1 :
45     myK->Bound(0)->Bounds(bid,U);
46     break;
47   case 2 :
48     myK->Bound(1)->Bounds(bid,V);
49     break;
50   case 3 :
51     myK->Bound(0)->Bounds(U,bid);
52     break;
53   }
54
55   gp_Vec tgk;
56
57   switch (ibound){
58   case 0 :
59   case 2 :
60     U = W;
61     tgk = myK->D1V(U,V);
62     break;
63   case 1 :
64   case 3 :
65     V = W;
66     tgk = myK->D1U(U,V);
67     break;
68   }
69
70   gp_Vec n = myK->Bound(ibound)->Norm(W);
71   Standard_Real scal = tgk.Dot(n);
72   n.Multiply(-scal);
73   tgk.Add(n);
74   return tgk;
75 }
76
77
78 //=======================================================================
79 //function : D1
80 //purpose  : 
81 //=======================================================================
82
83 gp_Vec GeomFill_TgtOnCoons::D1(const Standard_Real W) const 
84 {
85   Standard_Real U = 0.,V = 0.,bid = 0.;
86   switch (ibound){
87   case 0 :
88     myK->Bound(1)->Bounds(V,bid);
89     break;
90   case 1 :
91     myK->Bound(0)->Bounds(bid,U);
92     break;
93   case 2 :
94     myK->Bound(1)->Bounds(bid,V);
95     break;
96   case 3 :
97     myK->Bound(0)->Bounds(U,bid);
98     break;
99   }
100
101   gp_Vec tgsc,dtgsc;
102
103   switch (ibound){
104   case 0 :
105   case 2 :
106     U = W;
107     tgsc = myK->D1V(U,V);
108     break;
109   case 1 :
110   case 3 :
111     V = W;
112     tgsc = myK->D1U(U,V);
113     break;
114   }
115   dtgsc = myK->DUV(U,V);
116   
117   gp_Vec n, dn;
118   myK->Bound(ibound)->D1Norm(W,n,dn);
119
120   Standard_Real scal = tgsc.Dot(n);
121   gp_Vec scaln = n.Multiplied(-scal);
122   tgsc.Added(scaln);
123
124   gp_Vec scaldn = dn.Multiplied(-scal);
125
126   Standard_Real scal2 = -dtgsc.Dot(n) - tgsc.Dot(dn);
127   gp_Vec temp = n.Multiplied(scal2);
128
129   temp.Add(scaldn);
130   gp_Vec dtpur = dtgsc.Added(temp);
131
132   return dtpur; 
133 }
134
135
136 //=======================================================================
137 //function : D1
138 //purpose  : 
139 //=======================================================================
140
141 void GeomFill_TgtOnCoons::D1(const Standard_Real W, gp_Vec& T, gp_Vec& DT) const 
142 {
143   Standard_Real U = 0.,V = 0.,bid = 0.;
144   switch (ibound){
145   case 0 :
146     myK->Bound(1)->Bounds(V,bid);
147     break;
148   case 1 :
149     myK->Bound(0)->Bounds(bid,U);
150     break;
151   case 2 :
152     myK->Bound(1)->Bounds(bid,V);
153     break;
154   case 3 :
155     myK->Bound(0)->Bounds(U,bid);
156     break;
157   }
158
159   gp_Vec tgsc,dtgsc;
160
161   switch (ibound){
162   case 0 :
163   case 2 :
164     U = W;
165     tgsc = myK->D1V(U,V);
166     break;
167   case 1 :
168   case 3 :
169     V = W;
170     tgsc = myK->D1U(U,V);
171     break;
172   }
173   dtgsc = myK->DUV(U,V);
174   
175   gp_Vec n, dn;
176   myK->Bound(ibound)->D1Norm(W,n,dn);
177
178   Standard_Real scal = tgsc.Dot(n);
179   gp_Vec scaln = n.Multiplied(-scal);
180   T = tgsc.Added(scaln);
181
182   gp_Vec scaldn = dn.Multiplied(-scal);
183
184   Standard_Real scal2 = -dtgsc.Dot(n) - tgsc.Dot(dn);
185   gp_Vec temp = n.Multiplied(scal2);
186
187   temp.Add(scaldn);
188   DT = dtgsc.Added(temp);
189 }