00001 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 #ifndef INC_RVC_HYPERSENSOR_H 00037 #define INC_RVC_HYPERSENSOR_H 00038 00039 #ifndef INC_RVC_SIMPLE_H 00040 #include <rvc/simple.h> 00041 #endif 00042 00043 #ifndef INC_MI32_DOUBLEAR_H 00044 #include <mi32/doublear.h> 00045 #endif 00046 00047 #ifndef GENERATING_DOXYGEN_OUTPUT 00048 class DATETIME; 00049 #endif // GENERATING_DOXYGEN_OUTPUT 00050 00051 00052 namespace RVC { 00053 00054 class HYPERSENSOR : public RVC::SIMPLE { 00055 public: 00056 enum SENSOR { 00057 SENSOR_Unknown = 0, 00058 SENSOR_AVIRIS = 1, 00059 SENSOR_PROBE1 = 2, 00060 SENSOR_CASI = 3, 00061 SENSOR_HYMAP = 4, 00062 SENSOR_DIAS = 5, 00063 SENSOR_ORBVIEW4 = 6 00064 }; 00065 00066 struct BANDINFO { 00067 double m_wavelength; 00068 double m_bandwidth; 00069 double m_scale; 00070 double m_offset; 00071 }; 00072 00073 HYPERSENSOR ( 00074 ); 00075 00076 HYPERSENSOR ( 00077 const RVC::HYPERSENSOR& rhs 00078 ); 00079 00080 virtual ~HYPERSENSOR ( 00081 ); 00082 00083 RVC::HYPERSENSOR& operator= ( 00084 const RVC::HYPERSENSOR& rhs 00085 ); 00086 00087 double GetAltitude ( 00088 ) const { return (m_altitude); } 00089 00090 double GetAtmosphereThickness ( 00091 ) const { return (m_athmthickness); } 00092 00093 const DOUBLE_ARRAY<BANDINFO>& GetBandInfo ( 00094 ) const { return (m_BandArray); } 00095 00096 void GetImageDate ( 00097 DATETIME& ImageDate 00098 ) const; 00099 00100 double GetInitWavelength ( 00101 ) const { return (m_initwavelength); } 00102 00103 double GetLastWavelength ( 00104 ) const { return (m_lastwavelength); } 00105 00106 double GetMaxBandwidth ( 00107 ) const { return (m_maxbandwidth); } 00108 00109 double GetMinBandwidth ( 00110 ) const { return (m_minbandwidth); } 00111 00112 INT32 GetNumBands ( 00113 ) const { return (m_NumBands); } 00114 00115 SENSOR GetSensorType ( 00116 ) const { return (m_sensor); } 00117 00118 double GetSunAngle ( 00119 ) const { return (m_sunangle); } 00120 00121 void SetAltitude ( 00122 double Altitude 00123 ) { m_altitude = Altitude; } 00124 00125 void SetAtmosphereThickness ( 00126 double AtmosphereThickness 00127 ) { m_athmthickness = AtmosphereThickness; } 00128 00129 void SetBandInfo ( 00130 const DOUBLE_ARRAY<BANDINFO>& BandInfo 00131 ) { m_BandArray = BandInfo; m_NumBands = BandInfo.GetNumItems(); } 00132 00133 void SetImageDate ( 00134 const DATETIME& ImageDate 00135 ); 00136 00137 void SetInitWavelength ( 00138 double Wavelength 00139 ) { m_initwavelength = Wavelength; } 00140 00141 void SetLastWavelength ( 00142 double Wavelength 00143 ) { m_lastwavelength = Wavelength; } 00144 00145 void SetMaxBandwidth ( 00146 double Bandwidth 00147 ) { m_maxbandwidth = Bandwidth; } 00148 00149 void SetMinBandwidth ( 00150 double Bandwidth 00151 ) { m_minbandwidth = Bandwidth; } 00152 00153 void SetSensorType ( 00154 SENSOR sensor 00155 ) { m_sensor = sensor; } 00156 00157 void SetSunAngle ( 00158 double SunAngle 00159 ) { m_sunangle = SunAngle; } 00160 00161 private: 00162 #ifndef GENERATING_DOXYGEN_OUTPUT 00163 RVCDATETIME m_imagedate; 00164 SENSOR m_sensor; 00165 INT32 m_NumBands; 00166 double m_altitude; 00167 double m_sunangle; 00168 double m_athmthickness; 00169 double m_initwavelength; 00170 double m_lastwavelength; 00171 double m_minbandwidth; 00172 double m_maxbandwidth; 00173 DOUBLE_ARRAY<BANDINFO> m_BandArray; 00174 00176 virtual OBJTYPE v_GetDftObjectType () const; 00177 00179 virtual ERRVALUE v_GetDftNameDesc (const OBJECT& parent, DESCRIPTOR& Descriptor); 00180 virtual ERRVALUE v_MakeData (RVC::OBJMAKEPARMS& ObjMakeParms); 00181 virtual ERRVALUE v_ReadData (RVC::OBJOPENPARMS& ObjOpenParms); 00182 virtual ERRVALUE v_WriteData (RVC::OBJOPENPARMS& ObjOpenParms); 00183 #endif // GENERATING_DOXYGEN_OUTPUT 00184 00185 }; 00186 00187 } 00188 00189 #endif
1.6.1