Home My Page Projects Code Snippets Project Openings diderot

# SCM Repository

[diderot] View of /branches/charisee/ertest/vispaper/gmiso2d/fsamp.diderot
 [diderot] / branches / charisee / ertest / vispaper / gmiso2d / fsamp.diderot

# View of /branches/charisee/ertest/vispaper/gmiso2d/fsamp.diderot

Fri Feb 27 04:23:44 2015 UTC (4 years, 5 months ago) by glk
File size: 1724 byte(s)
`new data and test`
```input int size0 = 30;
input int size1 = 30;
input real width = 5;
input real shear = 0;
vec2 spacing = [width/(size0-1), width/(size1-1)];

input real theta = 0.0;
tensor[2,2] rot = [[cos(theta),sin(theta)],[-sin(theta),cos(theta)]];
vec2 dir0 = rotâ€¢[spacing[0], 0.0];
vec2 dir1 = rotâ€¢[0.0, spacing[1]] + shear*dir0;
vec2 orig = -(dir0*(size0-1) + dir1*(size1-1))/2.0;

/*
** This program generates nrrd files that sample (on some oriented
** grid) the following function: f(x,y) = (x^2 + y^2)/2
** ==>  gradient(f)    = [x, y]
** ==> |gradient(f)|   = sqrt(x^2 + y^2)
** ==> |gradient(f)|^2 = x^2 + y^2
** So the isocontour at 1 of gradient magnitude
** (or of gradient magnitude squared)
** should be a circle of radius 1
*/
function real func(vec2 pos) {
real x = pos[0];
real y = pos[1];
return (x^2 + y^2)/2;
}

strand sample(int xi, int yi) {
output real vv = 0.0;
update {
if (0 == xi && 0 == yi) {
print("NRRD0004\n");
print("# Complete NRRD file format specification at:\n");
print("# http://teem.sourceforge.net/nrrd/format.html\n");
print("type: float\n");
print("dimension: 2\n");
print("sizes: ", size0, " ", size1, "\n");
print("kinds: space space\n");
print("endian: little\n");
print("encoding: raw\n");
print("space dimension: 2\n");
print("space directions: (", dir0[0], ",", dir0[1],
") (", dir1[0], ",", dir1[1], ")\n");
print("space origin: (", orig[0], ",", orig[1], ")\n");
print("data file: vv.nrrd\n");
print("byte skip: -1\n");
}
vv = func(orig + xi*dir0 + yi*dir1);
stabilize;
}
}
initially [ sample(xi, yi) | yi in 0..(size1-1), xi in 0..(size0-1) ];
```