diff options
Diffstat (limited to 'src/ProjectionLSQ.H')
-rw-r--r-- | src/ProjectionLSQ.H | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/ProjectionLSQ.H b/src/ProjectionLSQ.H new file mode 100644 index 0000000..0834108 --- /dev/null +++ b/src/ProjectionLSQ.H @@ -0,0 +1,54 @@ +// +// Copyright 2006 Johannes Hofmann <Johannes.Hofmann@gmx.de> +// +// This software may be used and distributed according to the terms +// of the GNU General Public License, incorporated herein by reference. + +#ifndef PROJECTIONLSQ_H +#define PROJECTIONLSQ_H + +#include "Hill.H" +#include "ViewParams.H" + +class ProjectionLSQ { + private: + double comp_scale(double alph_a, double alph_b, double d1, double d2); + + int lsq(const Hills *m, ViewParams *parms, int distortion_correct); + + protected: + double sec(double a); + + public: + +#define ARGS double c_view, double c_nick, double c_tilt, double scale, double k0, double k1, double m_view, double m_nick + + virtual double mac_x(ARGS); + virtual double mac_y(ARGS); + virtual double mac_x_dc_view(ARGS); + virtual double mac_x_dc_nick(ARGS); + virtual double mac_x_dc_tilt(ARGS); + virtual double mac_x_dscale(ARGS); + virtual double mac_x_dk0(ARGS); + virtual double mac_x_dk1(ARGS); + virtual double mac_y_dc_view(ARGS); + virtual double mac_y_dc_nick(ARGS); + virtual double mac_y_dc_tilt(ARGS); + virtual double mac_y_dscale(ARGS); + virtual double mac_y_dk0(ARGS); + virtual double mac_y_dk1(ARGS); + +#undef ARGS + + + typedef enum { + RECTILINEAR = 0, + CYLINDRICAL = 1 + } Projection_t; + + void get_coordinates(double a_view, double a_nick, + const ViewParams *parms, double *x, double *y); + + int comp_params(const Hills *h, ViewParams *parms); +}; +#endif |