Lens.h

Go to the documentation of this file.
00001 // -*- c-basic-offset: 4 -*-
00028 #ifndef _PANODATA_LENS_H
00029 #define _PANODATA_LENS_H
00030 
00031 
00032 #include <string>
00033 #include <vector>
00034 #include <map>
00035 #include <hugin_shared.h>
00036 
00037 #include <hugin_math/hugin_math.h>
00038 #include <panodata/PanoramaVariable.h>
00039 #include <panodata/SrcPanoImage.h>
00040 
00041 namespace HuginBase {
00042 
00043     
00044 class IMPEX Lens {
00045 
00046     public:
00047         typedef BaseSrcPanoImage::Projection LensProjectionFormat;
00048 
00052         Lens();
00053         
00054     public:
00056         LensProjectionFormat getProjection() const
00057         { return m_projectionFormat; }
00058 
00060         void setProjection(LensProjectionFormat l)
00061         { m_projectionFormat = l; }
00062 
00064         double getHFOV() const;
00065 
00067         void setHFOV(double d);
00068 
00070         double getFocalLength() const;
00071 
00073         double getCropFactor() const 
00074         { return m_cropFactor; };
00075 
00077         void setCropFactor(double newCropFactor)
00078         { m_cropFactor=newCropFactor; };
00079 
00082         double getAspectRatio() const;
00083 
00086         bool isLandscape() const;
00087         
00089         void setEV(double ev);
00090 
00092         vigra::Size2D getImageSize() const
00093         { return m_imageSize; }
00094 
00096         void setImageSize(const vigra::Size2D & sz)
00097         { m_imageSize = sz; }
00098 
00099         // updates everything, including the lens variables.
00100         void update(const Lens & l);
00101 
00102         
00103     public: //?
00104             
00105     //  bool isLandscape;
00106        
00107         // these are the lens specific settings.
00108         // lens correction parameters
00109         LensVarMap variables;
00110 
00111 #ifndef SWIG
00112         // dimensionless array not supported by SWIG
00113         static const char *variableNames[];
00114 #endif
00115         
00116         bool m_hasExif;
00117         
00118         
00119     private:
00120         LensProjectionFormat m_projectionFormat;
00121         vigra::Size2D m_imageSize;
00122         double m_cropFactor;
00123     
00124 };
00125 
00126 
00128 typedef std::vector<Lens> LensVector;
00129 
00130 
00131 } // namespace
00132 #endif // _H

Generated on 30 Aug 2015 for Hugintrunk by  doxygen 1.4.7