#include "ten.h"#include "privateTen.h"

Defines | |
| #define | INFO "Generate twisting helical tensor field" |
| #define | WPOS(pos, th) ELL_3V_SET((pos),R*cos(th), R*sin(th), S*(th)/(2*AIR_PI)) |
| #define | VAL(th) (WPOS(wpos, th), ELL_3V_DIST(wpos, vpos)) |
| #define | RR 0.61803399 |
| #define | CC (1.0-RR) |
| #define | SHIFT3(a, b, c, d) (a)=(b); (b)=(c); (c)=(d) |
| #define | SHIFT2(a, b, c) (a)=(b); (b)=(c) |
Functions | |
| void | tend_helixDoit (Nrrd *nout, double bnd, double orig[3], double i2w[9], double mf[9], double r, double R, double S, double angle, int incrtwist, double ev[3], double bgEval) |
| int | tend_helixMain (int argc, char **argv, char *me, hestParm *hparm) |
| TEND_CMD (helix, INFO) | |
Variables | |
| char * | _tend_helixInfoL |
| #define CC (1.0-RR) |
| #define INFO "Generate twisting helical tensor field" |
| #define RR 0.61803399 |
| #define SHIFT2 | ( | a, | |||
| b, | |||||
| c | ) | (a)=(b); (b)=(c) |
| #define SHIFT3 | ( | a, | |||
| b, | |||||
| c, | |||||
| d | ) | (a)=(b); (b)=(c); (c)=(d) |
| #define VAL | ( | th | ) | (WPOS(wpos, th), ELL_3V_DIST(wpos, vpos)) |
| #define WPOS | ( | pos, | |||
| th | ) | ELL_3V_SET((pos),R*cos(th), R*sin(th), S*(th)/(2*AIR_PI)) |
| TEND_CMD | ( | helix | , | |
| INFO | ||||
| ) |
| void tend_helixDoit | ( | Nrrd * | nout, | |
| double | bnd, | |||
| double | orig[3], | |||
| double | i2w[9], | |||
| double | mf[9], | |||
| double | r, | |||
| double | R, | |||
| double | S, | |||
| double | angle, | |||
| int | incrtwist, | |||
| double | ev[3], | |||
| double | bgEval | |||
| ) |
| int tend_helixMain | ( | int | argc, | |
| char ** | argv, | |||
| char * | me, | |||
| hestParm * | hparm | |||
| ) |
| char* _tend_helixInfoL |
Initial value:
(INFO ". The main utility of such a field is to debug handling of coordinate " "systems in tensor field visualization. The \"space directions\" and " "\"space origin\" fields of the NRRD header determines the mapping from " "coordinates in the index space of the image to coordinates in the " "world space in which the image is " "sampled. The \"measurement frame\" field determines the mapping from " "the coordinates of the tensor itself, to coordinates of the world space. " "When these are correctly handled, the " "region of high anisotropy is a right-handed helix (same as DNA). " "Using differing axes sizes (via \"-s\") helps make sure that the " "raster ordering of axes is correct. In addition, the tensors twist " "relative to the helix, which exposes handling of the measurement frame. " "If you trace paths guided by the principal eigenvector of the tensors, " "along the surface of the helical cylinder, you get another " "right-handed helix, as if the the tensor field is modeling the result " "if twisting a set of fibers into single-stranded helical bundle. ")
1.5.6