#include "ten.h"
#include "privateTen.h"
#define BOX tenGlyphTypeBox |
#define CYL tenGlyphTypeCylinder |
#define SPH tenGlyphTypeSphere |
#define SQD tenGlyphTypeSuperquad |
Initial value:
{ "anisotropy metric", TEN_ANISO_MAX, _tenAnisoStr, NULL, NULL, NULL, NULL, AIR_FALSE }
char _tenAnisoStr[TEN_ANISO_MAX+1][AIR_STRLEN_SMALL] |
Initial value:
{ "tenDwiFiberType", TEN_DWI_FIBER_TYPE_MAX, _tenDwiFiberTypeStr, NULL, _tenDwiFiberTypeDesc, _tenDwiFiberTypeStrEqv, _tenDwiFiberTypeValEqv, AIR_FALSE }
char _tenDwiFiberTypeDesc[][AIR_STRLEN_MED] |
Initial value:
{ "unknown tenDwiFiber type", "single tensor evec0-based", "two-tensor evec0-based", "parameterized blend between 1- and 2-tensor fits" }
char _tenDwiFiberTypeStr[][AIR_STRLEN_SMALL] |
Initial value:
{ "(unknown tenDwiFiberType)", "1evec0", "2evec0", "12BlendEvec0" }
char _tenDwiFiberTypeStrEqv[][AIR_STRLEN_SMALL] |
Initial value:
{ "1evec0", "1e0", "2evec0", "2e0", "12BlendEvec0", "12be0", "" }
int _tenDwiFiberTypeValEqv[] |
Initial value:
{ tenDwiFiberType1Evec0, tenDwiFiberType1Evec0, tenDwiFiberType2Evec0, tenDwiFiberType2Evec0, tenDwiFiberType12BlendEvec0, tenDwiFiberType12BlendEvec0 }
Initial value:
{ "single-tensor-estimation", TEN_ESTIMATE_1_METHOD_MAX, _tenEstimate1MethodStr, NULL, _tenEstimate1MethodDesc, NULL, NULL, AIR_FALSE }
char _tenEstimate1MethodDesc[][AIR_STRLEN_MED] |
Initial value:
{ "unknown tenEstimate1Method", "linear least-squares fit of log(DWI)", "weighted least-squares fit of log(DWI)", "non-linear least-squares fit of DWI", "maximum likelihood estimate from DWI" }
char _tenEstimate1MethodStr[][AIR_STRLEN_SMALL] |
Initial value:
{ "(unknown tenEstimate1Method)", "LLS", "WLS", "NLS", "MLE" }
Initial value:
{ "two-tensor-estimation", TEN_ESTIMATE_2_METHOD_MAX, _tenEstimate2MethodStr, NULL, _tenEstimate2MethodDesc, NULL, NULL, AIR_FALSE }
char _tenEstimate2MethodDesc[][AIR_STRLEN_MED] |
Initial value:
{ "unknown tenEstimate2Method", "Q-ball segmentation", "Peled" }
char _tenEstimate2MethodStr[][AIR_STRLEN_SMALL] |
Initial value:
{ "(unknown tenEstimate2Method)", "QSegLLS", "Peled" }
Initial value:
{ "fiber integration method", TEN_FIBER_INTG_MAX, _tenFiberIntgStr, NULL, _tenFiberIntgDesc, _tenFiberIntgStrEqv, _tenFiberIntgValEqv, AIR_FALSE }
char _tenFiberIntgDesc[][AIR_STRLEN_MED] |
Initial value:
{ "unknown tenFiber intg", "plain Euler", "midpoint method, 2nd order Runge-Kutta", "4rth order Runge-Kutta" }
char _tenFiberIntgStr[][AIR_STRLEN_SMALL] |
Initial value:
{ "(unknown tenFiberIntg)", "euler", "midpoint", "rk4" }
char _tenFiberIntgStrEqv[][AIR_STRLEN_SMALL] |
Initial value:
{ "euler", "midpoint", "rk2", "rk4", "" }
int _tenFiberIntgValEqv[] |
Initial value:
{ tenFiberIntgEuler, tenFiberIntgMidpoint, tenFiberIntgMidpoint, tenFiberIntgRK4 }
Initial value:
{ "fiber stopping criteria", TEN_FIBER_STOP_MAX, _tenFiberStopStr, NULL, _tenFiberStopDesc, _tenFiberStopStrEqv, _tenFiberStopValEqv, AIR_FALSE }
char _tenFiberStopDesc[][AIR_STRLEN_MED] |
Initial value:
{ "unknown tenFiber stop", "anisotropy went below threshold", "fiber length exceeded normalcy bounds", "number of steps along fiber too many", "tensor \"confidence\" value too low", "radius of curvature of path got too small", "fiber went outside bounding box", "fractional constituency of tracked tensor got too small", "neither fiber half got anywhere; fiber has single vert", "whole fiber has insufficient length", "whole fiber has too few numbers of steps" }
char _tenFiberStopStr[][AIR_STRLEN_SMALL] |
Initial value:
{ "(unknown tenFiberStop)", "aniso", "length", "steps", "confidence", "radius", "bounds", "fraction", "stub", "minlen", "minsteps", }
char _tenFiberStopStrEqv[][AIR_STRLEN_SMALL] |
Initial value:
{ "aniso", "length", "len", "steps", "confidence", "conf", "c", "radius", "bounds", "fraction", "frac", "f", "stub", "minlen", "minlength", "minsteps", "minnumsteps", "" }
int _tenFiberStopValEqv[] |
Initial value:
{ tenFiberStopAniso, tenFiberStopLength, tenFiberStopLength, tenFiberStopNumSteps, tenFiberStopConfidence, tenFiberStopConfidence, tenFiberStopConfidence, tenFiberStopRadius, tenFiberStopBounds, tenFiberStopFraction, tenFiberStopFraction, tenFiberStopFraction, tenFiberStopStub, tenFiberStopMinLength, tenFiberStopMinLength, tenFiberStopMinNumSteps, tenFiberStopMinNumSteps, }
Initial value:
{ "tenFiberType", TEN_FIBER_TYPE_MAX, _tenFiberTypeStr, NULL, _tenFiberTypeDesc, _tenFiberTypeStrEqv, _tenFiberTypeValEqv, AIR_FALSE }
char _tenFiberTypeDesc[][AIR_STRLEN_MED] |
Initial value:
{ "unknown tenFiber type", "simply follow principal eigenvector", "follow medium eigenvector", "follow minor eigenvector", "Weinstein-Kindlmann tensorlines", "based on tensor multiplication only", "Zhukov\'s oriented tensors" }
char _tenFiberTypeStr[][AIR_STRLEN_SMALL] |
Initial value:
{ "(unknown tenFiberType)", "evec0", "evec1", "evec2", "tensorline", "pureline", "zhukov" }
char _tenFiberTypeStrEqv[][AIR_STRLEN_SMALL] |
Initial value:
{ "ev0", "evec0", "ev1", "evec1", "ev2", "evec2", "tline", "tensorline", "pline", "pureline", "z", "zhukov", "" }
int _tenFiberTypeValEqv[] |
Initial value:
{ tenFiberTypeEvec0, tenFiberTypeEvec0, tenFiberTypeEvec1, tenFiberTypeEvec1, tenFiberTypeEvec2, tenFiberTypeEvec2, tenFiberTypeTensorLine, tenFiberTypeTensorLine, tenFiberTypePureLine, tenFiberTypePureLine, tenFiberTypeZhukov, tenFiberTypeZhukov }
Initial value:
{ "tenGage", TEN_GAGE_ITEM_MAX+1, _tenGageStr, _tenGageVal, _tenGageDesc, _tenGageStrEqv, _tenGageValEqv, AIR_FALSE }
char _tenGageDesc[][AIR_STRLEN_MED] |
char _tenGageStr[][AIR_STRLEN_SMALL] |
char _tenGageStrEqv[][AIR_STRLEN_SMALL] |
int _tenGageVal[] |
int _tenGageValEqv[] |
Initial value:
{ "tenGlyphType", TEN_GLYPH_TYPE_MAX, _tenGlyphTypeStr, NULL, _tenGlyphTypeDesc, _tenGlyphTypeStrEqv, _tenGlyphTypeValEqv, AIR_FALSE }
char _tenGlyphTypeDesc[][AIR_STRLEN_MED] |
Initial value:
{ "unknown tenGlyph type", "box/cube (rectangular prisms)", "sphere (ellipsoids)", "cylinders aligned along major eigenvector", "superquadric (superellipsoids)" }
char _tenGlyphTypeStr[][AIR_STRLEN_SMALL] |
Initial value:
{ "(unknown tenGlyphType)", "box", "sphere", "cylinder", "superquad" }
char _tenGlyphTypeStrEqv[][AIR_STRLEN_SMALL] |
Initial value:
{ "b", "box", "s", "sph", "sphere", "c", "cyl", "cylind", "cylinder", "q", "superq", "sqd", "superquad", "superquadric", "" }
int _tenGlyphTypeValEqv[] |
Initial value:
{ "interp type", TEN_INTERP_TYPE_MAX, _tenInterpTypeStr, NULL, NULL, _tenInterpTypeStrEqv, _tenInterpTypeValEqv, AIR_FALSE }
char _tenInterpTypeStr[TEN_INTERP_TYPE_MAX+1][AIR_STRLEN_SMALL] |
Initial value:
{ "(unknown interp type)", "lin", "loglin", "affinv", "wang", "geoloxk", "geoloxr", "loxk", "loxr", "qgeoloxk", "qgeoloxr", }
char _tenInterpTypeStrEqv[][AIR_STRLEN_SMALL] |
Initial value:
{ "lin", "linear", "lerp", "loglin", "loglinear", "loglerp", "affinv", "wang", "geoloxk", "glk", "geoloxr", "glr", "loxk", "loxr", "qgeoloxk", "qglk", "qgeoloxr", "qglr", "" }
int _tenInterpTypeValEqv[] |
Initial value:
{ tenInterpTypeLinear, tenInterpTypeLinear, tenInterpTypeLinear, tenInterpTypeLogLinear, tenInterpTypeLogLinear, tenInterpTypeLogLinear, tenInterpTypeAffineInvariant, tenInterpTypeWang, tenInterpTypeGeoLoxK, tenInterpTypeGeoLoxK, tenInterpTypeGeoLoxR, tenInterpTypeGeoLoxR, tenInterpTypeLoxK, tenInterpTypeLoxR, tenInterpTypeQuatGeoLoxK, tenInterpTypeQuatGeoLoxK, tenInterpTypeQuatGeoLoxR, tenInterpTypeQuatGeoLoxR, }
Initial value:
{ "tenTripleType", TEN_TRIPLE_TYPE_MAX, _tenTripleTypeStr, NULL, _tenTripleTypeDesc, _tenTripleTypeStrEqv, _tenTripleTypeValEqv, AIR_FALSE }
char _tenTripleTypeDesc[][AIR_STRLEN_MED] |
Initial value:
{ "unknown tenTriple", "eigenvalues sorted in descending order", "central moments (mu1,mu2,mu3)", "rotation of evals, like Bahn 1999 JMR:141(68-77)", "cylindrical coords of rotated evals", "spherical coords of rotated evals", "principal invariants (J1,J2,J3)", "cylindrical invariants (K1,K2,K3)", "spherical invariants (R1,R2,R3)", "eigenvalue wheel (center,radius,angle)" }
char _tenTripleTypeStr[][AIR_STRLEN_SMALL] |
Initial value:
{ "(unknown tenTriple)", "eigenvalue", "moment", "XYZ", "RThetaZ", "RThetaPhi", "J", "K", "R", "wheelParms" }
char _tenTripleTypeStrEqv[][AIR_STRLEN_SMALL] |
Initial value:
{ "eigenvalue", "eval", "ev", "moment", "mu", "XYZ", "RThetaZ", "RThZ", "rtz", "RThetaPhi", "RThPh", "rtp", "J", "K", "R", "wheelParm", "WP", "" }
int _tenTripleTypeValEqv[] |
Initial value:
{ tenTripleTypeEigenvalue, tenTripleTypeEigenvalue, tenTripleTypeEigenvalue, tenTripleTypeMoment, tenTripleTypeMoment, tenTripleTypeXYZ, tenTripleTypeRThetaZ, tenTripleTypeRThetaZ, tenTripleTypeRThetaZ, tenTripleTypeRThetaPhi, tenTripleTypeRThetaPhi, tenTripleTypeRThetaPhi, tenTripleTypeJ, tenTripleTypeK, tenTripleTypeR, tenTripleTypeWheelParm, tenTripleTypeWheelParm }