/* $Id: geometry.h 3304 2011-01-17 15:25:59Z brideout $ */ /* geometry definitions */ /* */ /* jmh 06/06/00 original */ #ifndef _GEOMETRYH_ #define _GEOMETRYH_ /* Function declarations */ double sprod(double a[3], double b[3]); int vadd(double a[3], double b[3], double c[3]); int vsub(double a[3], double b[3], double c[3]); int csconv(double *xp, double *yp, double *zp, double *rp, double *thetap, double *phip, int imode); int vctcnv(double *fxp, double *fyp, double *fzp, double *xp, double *yp, double *zp, double *frp, double *ftp, double *fpp, double *rp, double *thetap, double *phip, int imode); int point(double *srp, double *slatp, double *slonp, double *azp, double *elp, double *rangep, double *prp, double *glatp, double *glonp); int look(double *srp, double *slatp, double *slonp, double *prp, double *glatp, double *glonp, double *azp, double *elp, double *rangep); int convrt(int i, double *gdlatp, double *gdaltp, double *gclatp, double *rkmp); int rpcart (double *srp, double *slatp, double *slonp, double *azp, double *elp, double *rangep, double *rfxp, double *rfyp, double *rfzp, double *pfxp, double *pfyp, double *pfzp); int gdv(double *gdlatp, double *gclatp, double *frp, double *ftp, double *fpp, double *fxp, double *fyp, double *fzp); int los2geodetic(int kinst, double az, double el, double range, double *gdlatp, double *glonp, double *gdaltp); void solarzen_az(double ut, double gdlat, double glon, double * szen, double * saz); double solardist(double ut); double shadowheight(double ut, double gdlat, double glon); void sunrise_set(double ut, double gdlat, double glon, double gdalt, double * sunrise, double * sunset); #endif