Mercurial > repos > public > sbplib
comparison +parametrization/Ti.m @ 707:0de70ec8bf60 feature/quantumTriangles
merge with feature/optim
author | Ylva Rydin <ylva.rydin@telia.com> |
---|---|
date | Fri, 10 Nov 2017 14:22:56 +0100 |
parents | 6f4eb3da8978 |
children | edb1d60b0b77 |
comparison
equal
deleted
inserted
replaced
696:7c16b5af8d98 | 707:0de70ec8bf60 |
---|---|
19 B = g2(0); | 19 B = g2(0); |
20 C = g3(0); | 20 C = g3(0); |
21 D = g4(0); | 21 D = g4(0); |
22 | 22 |
23 function o = S_fun(u,v) | 23 function o = S_fun(u,v) |
24 if isrow(u) && isrow(v) | |
25 flipped = false; | |
26 else | |
27 flipped = true; | |
28 u = u'; | |
29 v = v'; | |
30 end | |
31 | |
24 x1 = g1(u); | 32 x1 = g1(u); |
25 x2 = g2(v); | 33 x2 = g2(v); |
26 x3 = g3(1-u); | 34 x3 = g3(1-u); |
27 x4 = g4(1-v); | 35 x4 = g4(1-v); |
36 | |
28 o1 = (1-v).*x1(1,:) + u.*x2(1,:) + v.*x3(1,:) + (1-u).*x4(1,:) ... | 37 o1 = (1-v).*x1(1,:) + u.*x2(1,:) + v.*x3(1,:) + (1-u).*x4(1,:) ... |
29 -((1-u)*(1-v).*A(1,:) + u*(1-v).*B(1,:) + u*v.*C(1,:) + (1-u)*v.*D(1,:)); | 38 -((1-u).*(1-v).*A(1,:) + u.*(1-v).*B(1,:) + u.*v.*C(1,:) + (1-u).*v.*D(1,:)); |
30 o2 = (1-v).*x1(2,:) + u.*x2(2,:) + v.*x3(2,:) + (1-u).*x4(2,:) ... | 39 o2 = (1-v).*x1(2,:) + u.*x2(2,:) + v.*x3(2,:) + (1-u).*x4(2,:) ... |
31 -((1-u)*(1-v).*A(2,:) + u*(1-v).*B(2,:) + u*v.*C(2,:) + (1-u)*v.*D(2,:)); | 40 -((1-u).*(1-v).*A(2,:) + u.*(1-v).*B(2,:) + u.*v.*C(2,:) + (1-u).*v.*D(2,:)); |
32 | 41 |
33 o = [o1;o2]; | 42 if ~flipped |
43 o = [o1;o2]; | |
44 else | |
45 o = [o1'; o2']; | |
46 end | |
34 end | 47 end |
35 | 48 |
36 obj.S = @S_fun; | 49 obj.S = @S_fun; |
37 end | 50 end |
38 | 51 |
180 g4 = parametrization.Curve.line(p4,p1); | 193 g4 = parametrization.Curve.line(p4,p1); |
181 | 194 |
182 obj = parametrization.Ti(g1,g2,g3,g4); | 195 obj = parametrization.Ti(g1,g2,g3,g4); |
183 end | 196 end |
184 | 197 |
198 function obj = rectangle(a, b) | |
199 p1 = a; | |
200 p2 = [b(1), a(2)]; | |
201 p3 = b; | |
202 p4 = [a(1), b(2)]; | |
203 | |
204 obj = parametrization.Ti.points(p1,p2,p3,p4); | |
205 end | |
206 | |
185 % Like the constructor but allows inputing line curves as 2-cell arrays: | 207 % Like the constructor but allows inputing line curves as 2-cell arrays: |
186 % example: parametrization.Ti.linesAndCurves(g1, g2, {a, b} g4) | 208 % example: parametrization.Ti.linesAndCurves(g1, g2, {a, b} g4) |
187 function obj = linesAndCurves(C1, C2, C3, C4) | 209 function obj = linesAndCurves(C1, C2, C3, C4) |
188 C = {C1, C2, C3, C4}; | 210 C = {C1, C2, C3, C4}; |
189 c = cell(1,4); | 211 c = cell(1,4); |