annotate +parametrization/Ti.m @ 577:e45c9b56d50d feature/grids

Add an Empty grid class The need turned up for the flexural code when we may or may not have a grid for the open water and want to plot that solution. In case there is no open water we need an empty grid to plot the empty gridfunction against to avoid errors.
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 07 Sep 2017 09:16:12 +0200
parents 433ccb5d2f0f
children d98d9c79573f
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,:) ...
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29 -((1-u)*(1-v).*A(1,:) + u*(1-v).*B(1,:) + u*v.*C(1,:) + (1-u)*v.*D(1,:));
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,:) ...
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 -((1-u)*(1-v).*A(2,:) + u*(1-v).*B(2,:) + u*v.*C(2,:) + (1-u)*v.*D(2,:));
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