Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/vis12-cl/test/square-detect/square_score-15.diderot
ViewVC logotype

Annotation of /branches/vis12-cl/test/square-detect/square_score-15.diderot

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2402 - (view) (download)

1 : nseltzer 1817
2 : jhr 1927 field#2(2)[] T = bspln3 ⊛ image("square-template.nrrd");
3 :     field#2(2)[] F = bspln3 ⊛ image("square-rotate.nrrd");
4 : nseltzer 1817
5 :     vec2 v00 = [-0.5, -0.5];
6 :     vec2 v01 = [-0.5, -0.15];
7 :     vec2 v02 = [-0.5, 0.15];
8 :     vec2 v03 = [-0.5, 0.5];
9 :     vec2 v04 = [-0.15, 0.5];
10 :     vec2 v05 = [-0.15, -0.15];
11 :     vec2 v06 = [-0.15, 0.15];
12 :     vec2 v07 = [-0.15, 0.5];
13 :     vec2 v08 = [0.15, -0.5];
14 :     vec2 v09 = [0.15, -0.15];
15 :     vec2 v10 = [0.15, 0.15];
16 :     vec2 v11 = [0.15, 0.5];
17 :     vec2 v12 = [0.5, -0.5];
18 :     vec2 v13 = [0.5, -0.15];
19 :     vec2 v14 = [0.5, 0.15];
20 :    
21 :     strand R (int i, int j, int k)
22 :     {
23 :     vec3 t = [real(i) / 60.0 - 0.5, real(j) / 60.0 - 0.5, real(k) / 60.0 - 0.5];
24 :     output real score = 0.0;
25 :    
26 :     vec2 r0 = [0.0, 0.0];
27 :     vec2 r1 = [0.0, 0.0];
28 :    
29 :     vec2 pos = [0.0, 0.0];
30 :    
31 :    
32 :     update
33 :     {
34 :     r0 = [1.0 - 2.0 * t[2] * t[2], -2.0*sqrt(1.0 - t[2] * t[2]) * t[2]];
35 :     r1 = [2.0 * sqrt(1.0 - t[2] * t[2]) * t[2], 1.0 - 2.0 * t[2] * t[2]];
36 :    
37 :    
38 :     // v00
39 :     pos = [r0 • v00, r1 • v00] + [t[0], t[1]];
40 :     if(inside(pos,F) && inside (v00, T))
41 :     {
42 :     score += (F(pos) - T(v00)) * (F(pos) - T(v00));
43 :     }
44 :     // v01
45 :     pos = [r0 • v01, r1 • v01] + [t[0], t[1]];
46 :     if(inside(pos,F) && inside (v01, T))
47 :     {
48 :     score += (F(pos) - T(v01)) * (F(pos) - T(v01));
49 :     }
50 :     // v02
51 :     pos = [r0 • v02, r1 • v02] + [t[0], t[1]];
52 :     if(inside(pos,F) && inside (v02, T))
53 :     {
54 :     score += (F(pos) - T(v02)) * (F(pos) - T(v02));
55 :     }
56 :     // v03
57 :     pos = [r0 • v03, r1 • v03] + [t[0], t[1]];
58 :     if(inside(pos,F) && inside (v03, T))
59 :     {
60 :     score += (F(pos) - T(v03)) * (F(pos) - T(v03));
61 :     }
62 :     // v04
63 :     pos = [r0 • v04, r1 • v04] + [t[0], t[1]];
64 :     if(inside(pos,F) && inside (v04, T))
65 :     {
66 :     score += (F(pos) - T(v04)) * (F(pos) - T(v04));
67 :     }
68 :     // v05
69 :     pos = [r0 • v05, r1 • v05] + [t[0], t[1]];
70 :     if(inside(pos,F) && inside (v05, T))
71 :     {
72 :     score += (F(pos) - T(v05)) * (F(pos) - T(v05));
73 :     }
74 :     // v06
75 :     pos = [r0 • v06, r1 • v06] + [t[0], t[1]];
76 :     if(inside(pos,F) && inside (v06, T))
77 :     {
78 :     score += (F(pos) - T(v06)) * (F(pos) - T(v06));
79 :     }
80 :     // v07
81 :     pos = [r0 • v07, r1 • v07] + [t[0], t[1]];
82 :     if(inside(pos,F) && inside (v07, T))
83 :     {
84 :     score += (F(pos) - T(v07)) * (F(pos) - T(v07));
85 :     }
86 :     // v08
87 :     pos = [r0 • v08, r1 • v08] + [t[0], t[1]];
88 :     if(inside(pos,F) && inside (v08, T))
89 :     {
90 :     score += (F(pos) - T(v08)) * (F(pos) - T(v08));
91 :     }
92 :     // v09
93 :     pos = [r0 • v09, r1 • v09] + [t[0], t[1]];
94 :     if(inside(pos,F) && inside (v09, T))
95 :     {
96 :     score += (F(pos) - T(v09)) * (F(pos) - T(v09));
97 :     }
98 :     // v10
99 :     pos = [r0 • v10, r1 • v10] + [t[0], t[1]];
100 :     if(inside(pos,F) && inside (v10, T))
101 :     {
102 :     score += (F(pos) - T(v10)) * (F(pos) - T(v10));
103 :     }
104 :     // v11
105 :     pos = [r0 • v11, r1 • v11] + [t[0], t[1]];
106 :     if(inside(pos,F) && inside (v11, T))
107 :     {
108 :     score += (F(pos) - T(v11)) * (F(pos) - T(v11));
109 :     }
110 :     // v12
111 :     pos = [r0 • v12, r1 • v12] + [t[0], t[1]];
112 :     if(inside(pos,F) && inside (v12, T))
113 :     {
114 :     score += (F(pos) - T(v12)) * (F(pos) - T(v12));
115 :     }
116 :     // v13
117 :     pos = [r0 • v13, r1 • v13] + [t[0], t[1]];
118 :     if(inside(pos,F) && inside (v13, T))
119 :     {
120 :     score += (F(pos) - T(v13)) * (F(pos) - T(v13));
121 :     }
122 :     // v14
123 :     pos = [r0 • v14, r1 • v14] + [t[0], t[1]];
124 :     if(inside(pos,F) && inside (v14, T))
125 :     {
126 :     score += (F(pos) - T(v14)) * (F(pos) - T(v14));
127 :     }
128 :     // ********************************************
129 :     stabilize;
130 :     }
131 :     }
132 :    
133 :     initially [ R(i, j, k) | i in 0..60, j in 0..60 , k in 0..60];

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0