annotate +parametrization/Ti.m @ 632:d98d9c79573f bugfix/TiVectorInputs

Switch to elementwise multiplication where it was not used
author Jonatan Werpers <jonatan@werpers.com>
date Mon, 23 Oct 2017 15:46:25 +0200
parents 433ccb5d2f0f
children 6f4eb3da8978
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 classdef Ti
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 properties
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 gs % {4}Curve
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 S % FunctionHandle(u,v)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 methods
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 % TODO function to label boundary names.
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 % function to find largest and smallest delta h in the grid. Maybe shouldnt live here
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 function obj = Ti(C1,C2,C3,C4)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 obj.gs = {C1,C2,C3,C4};
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 g1 = C1.g;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 g2 = C2.g;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 g3 = C3.g;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 g4 = C4.g;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 A = g1(0);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 B = g2(0);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 C = g3(0);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 D = g4(0);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 function o = S_fun(u,v)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 x1 = g1(u);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 x2 = g2(v);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26 x3 = g3(1-u);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 x4 = g4(1-v);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28 o1 = (1-v).*x1(1,:) + u.*x2(1,:) + v.*x3(1,:) + (1-u).*x4(1,:) ...
632
d98d9c79573f Switch to elementwise multiplication where it was not used
Jonatan Werpers <jonatan@werpers.com>
parents: 544
diff changeset
29 -((1-u).*(1-v).*A(1,:) + u.*(1-v).*B(1,:) + u.*v.*C(1,:) + (1-u).*v.*D(1,:));
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 o2 = (1-v).*x1(2,:) + u.*x2(2,:) + v.*x3(2,:) + (1-u).*x4(2,:) ...
632
d98d9c79573f Switch to elementwise multiplication where it was not used
Jonatan Werpers <jonatan@werpers.com>
parents: 544
diff changeset
31 -((1-u).*(1-v).*A(2,:) + u.*(1-v).*B(2,:) + u.*v.*C(2,:) + (1-u).*v.*D(2,:));
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 o = [o1;o2];
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36 obj.S = @S_fun;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
38
272
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
39 % Does this funciton make sense?
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
40 % Should it always be eval?
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
41 function [X,Y] = map(obj,u,v)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 default_arg('v',u);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
44 if isscalar(u)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
45 u = linspace(0,1,u);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
47
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
48 if isscalar(v)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
49 v = linspace(0,1,v);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
50 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
51
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 S = obj.S;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 nu = length(u);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 nv = length(v);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
56
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
57 X = zeros(nv,nu);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
58 Y = zeros(nv,nu);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
59
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 u = rowVector(u);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
61 v = rowVector(v);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
62
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
63 for i = 1:nv
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
64 p = S(u,v(i));
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
65 X(i,:) = p(1,:);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
66 Y(i,:) = p(2,:);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
67 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
68 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
69
272
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
70 % Evaluate S for each pair of u and v,
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
71 % Return same shape as u
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
72 function [x, y] = eval(obj, u, v)
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
73 x = zeros(size(u));
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
74 y = zeros(size(u));
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
75
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
76 for i = 1:numel(u)
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
77 p = obj.S(u(i), v(i));
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
78 x(i) = p(1,:);
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
79 y(i) = p(2,:);
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
80 end
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
81 end
9fe423849525 Added evalfunction to Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 248
diff changeset
82
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83 function h = plot(obj,nu,nv)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
84 S = obj.S;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
85
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
86 default_arg('nv',nu)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
87
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
88 u = linspace(0,1,nu);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
89 v = linspace(0,1,nv);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
90
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
91 m = 100;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
92
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
93 X = zeros(nu+nv,m);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
94 Y = zeros(nu+nv,m);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
95
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
96
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
97 t = linspace(0,1,m);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
98 for i = 1:nu
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
99 p = S(u(i),t);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
100 X(i,:) = p(1,:);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
101 Y(i,:) = p(2,:);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
102 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
103
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
104 for i = 1:nv
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
105 p = S(t,v(i));
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
106 X(i+nu,:) = p(1,:);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
107 Y(i+nu,:) = p(2,:);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
108 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
109
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
110 h = line(X',Y');
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
111 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
112
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
113
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
114 function h = show(obj,nu,nv)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
115 default_arg('nv',nu)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
116 S = obj.S;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
117
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
118 if(nu>2 || nv>2)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
119 h_grid = obj.plot(nu,nv);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
120 set(h_grid,'Color',[0 0.4470 0.7410]);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
121 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
122
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
123 h_bord = obj.plot(2,2);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
124 set(h_bord,'Color',[0.8500 0.3250 0.0980]);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
125 set(h_bord,'LineWidth',2);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
126 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
127
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
128
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
129 % TRANSFORMATIONS
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
130 function ti = translate(obj,a)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
131 gs = obj.gs;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
132
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
133 for i = 1:length(gs)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
134 new_gs{i} = gs{i}.translate(a);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
135 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
136
248
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
137 ti = parametrization.Ti(new_gs{:});
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
138 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
139
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
140 % Mirrors the Ti so that the resulting Ti is still left handed.
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
141 % (Corrected by reversing curves and switching e and w)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
142 function ti = mirror(obj, a, b)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
143 gs = obj.gs;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
144
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
145 new_gs = cell(1,4);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
146
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
147 new_gs{1} = gs{1}.mirror(a,b).reverse();
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
148 new_gs{3} = gs{3}.mirror(a,b).reverse();
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
149 new_gs{2} = gs{4}.mirror(a,b).reverse();
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
150 new_gs{4} = gs{2}.mirror(a,b).reverse();
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
151
248
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
152 ti = parametrization.Ti(new_gs{:});
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
153 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
154
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
155 function ti = rotate(obj,a,rad)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
156 gs = obj.gs;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
157
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
158 for i = 1:length(gs)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
159 new_gs{i} = gs{i}.rotate(a,rad);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
160 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
161
248
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
162 ti = parametrization.Ti(new_gs{:});
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
163 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
164
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
165 function ti = rotate_edges(obj,n);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
166 new_gs = cell(1,4);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
167 for i = 0:3
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
168 new_i = mod(i - n,4);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
169 new_gs{new_i+1} = obj.gs{i+1};
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
170 end
248
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
171 ti = parametrization.Ti(new_gs{:});
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
172 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
173 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
174
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
175 methods(Static)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
176 function obj = points(p1, p2, p3, p4)
248
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
177 g1 = parametrization.Curve.line(p1,p2);
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
178 g2 = parametrization.Curve.line(p2,p3);
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
179 g3 = parametrization.Curve.line(p3,p4);
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
180 g4 = parametrization.Curve.line(p4,p1);
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
181
248
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
182 obj = parametrization.Ti(g1,g2,g3,g4);
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
183 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
184
544
433ccb5d2f0f Add Ti parametrization of rectangle
Jonatan Werpers <jonatan@werpers.com>
parents: 332
diff changeset
185 function obj = rectangle(a, b)
433ccb5d2f0f Add Ti parametrization of rectangle
Jonatan Werpers <jonatan@werpers.com>
parents: 332
diff changeset
186 p1 = a;
433ccb5d2f0f Add Ti parametrization of rectangle
Jonatan Werpers <jonatan@werpers.com>
parents: 332
diff changeset
187 p2 = [b(1), a(2)];
433ccb5d2f0f Add Ti parametrization of rectangle
Jonatan Werpers <jonatan@werpers.com>
parents: 332
diff changeset
188 p3 = b;
433ccb5d2f0f Add Ti parametrization of rectangle
Jonatan Werpers <jonatan@werpers.com>
parents: 332
diff changeset
189 p4 = [a(1), b(2)];
433ccb5d2f0f Add Ti parametrization of rectangle
Jonatan Werpers <jonatan@werpers.com>
parents: 332
diff changeset
190
433ccb5d2f0f Add Ti parametrization of rectangle
Jonatan Werpers <jonatan@werpers.com>
parents: 332
diff changeset
191 obj = parametrization.Ti.points(p1,p2,p3,p4);
433ccb5d2f0f Add Ti parametrization of rectangle
Jonatan Werpers <jonatan@werpers.com>
parents: 332
diff changeset
192 end
433ccb5d2f0f Add Ti parametrization of rectangle
Jonatan Werpers <jonatan@werpers.com>
parents: 332
diff changeset
193
332
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
194 % Like the constructor but allows inputing line curves as 2-cell arrays:
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
195 % example: parametrization.Ti.linesAndCurves(g1, g2, {a, b} g4)
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
196 function obj = linesAndCurves(C1, C2, C3, C4)
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
197 C = {C1, C2, C3, C4};
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
198 c = cell(1,4);
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
199
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
200 for i = 1:4
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
201 if ~iscell(C{i})
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
202 c{i} = C{i};
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
203 else
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
204 c{i} = parametrization.Curve.line(C{i}{:});
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
205 end
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
206 end
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
207
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
208 obj = parametrization.Ti(c{:});
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
209 end
875386d0b2ff Fixed a bug in draw and added a helper function to parametrization.Ti.
Jonatan Werpers <jonatan@werpers.com>
parents: 272
diff changeset
210
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
211 function label(varargin)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
212 if nargin == 2 && ischar(varargin{2})
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
213 label_impl(varargin{:});
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
214 else
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
215 for i = 1:length(varargin)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
216 label_impl(varargin{i},inputname(i));
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
217 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
218 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
219
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
220
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
221 function label_impl(ti,str)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
222 S = ti.S;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
223
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
224 pc = S(0.5,0.5);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
225
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
226 margin = 0.1;
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
227 pw = S( margin, 0.5);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
228 pe = S(1-margin, 0.5);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
229 ps = S( 0.5, margin);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
230 pn = S( 0.5, 1-margin);
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
231
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
232
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
233 ti.show(2,2);
248
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
234 parametrization.place_label(pc,str);
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
235 parametrization.place_label(pw,'w');
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
236 parametrization.place_label(pe,'e');
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
237 parametrization.place_label(ps,'s');
81e0ead29431 Fixed package names in +parametrization
Jonatan Werpers <jonatan@werpers.com>
parents: 151
diff changeset
238 parametrization.place_label(pn,'n');
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
239 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
240 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
241 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
242 end