/* Data structures for geometric elements and functions that operate on them. Defines the TESSEROID, SPHERE, and PRISM structures. */ #ifndef _MAG_TESSEROIDS_GEOMETRY_H_ #define _MAG_TESSEROIDS_GEOMETRY_H_ /* Store information on a tesseroid */ typedef struct magtess_struct { /* s, n, w, e in degrees. r1 and r2 are the smaller and larger radius */ double density; /* in SI units */ double w; /* western longitude border in degrees */ double e; /* eastern longitude border in degrees */ double s; /* southern latitude border in degrees */ double n; /* northern latitude border in degrees */ double r1; /* smallest radius border in SI units */ double r2; /* largest radius border in SI units */ double suscept; /* magnetic susceptibility */ double Bx; /* x-component of ambient magnetic field */ double By; /* y-component of ambient magnetic field */ double Bz; /* z-component of ambient magnetic field */ double cos_a1; double sin_a1; double cos_b1; double sin_b1; //double Rx; //double Ry; //double Rz; } MAG_TESSEROID; void split_tess(MAG_TESSEROID tess, MAG_TESSEROID *split); #endif