00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _SPHERICMIRRORCALCULATOR_HPP_
00022 #define _SPHERICMIRRORCALCULATOR_HPP_
00023
00024 #include "VecMath.hpp"
00025
00026 class QSettings;
00027
00028 class SphericMirrorCalculator {
00029 public:
00030 SphericMirrorCalculator(const QSettings& conf);
00031 double getHorzZoomFactor(void) const {return horzZoomFactor;}
00032 double getVertZoomFactor(void) const {return vertZoomFactor;}
00033 bool transform(const Vec3d &v,double &x,double &y) const;
00034 bool retransform(double x,double y,Vec3d &v) const;
00035
00036 bool retransform(double x,double y,Vec3d &v,Vec3d &vX,Vec3d &vY) const;
00037 private:
00038 void initRotMatrix(double alpha,double delta,double phi);
00039 private:
00040 Vec3d P;
00041 Vec3d DomeCenter;
00042 double DomeRadius;
00043 double PP;
00044 double lP;
00045 Vec3d p;
00046 double horzZoomFactor;
00047 double vertZoomFactor;
00048 double alphaDeltaPhi[9];
00049 };
00050
00051 #endif // _SPHERICMIRRORCALCULATOR_HPP_