|
|
PDS_JP2
|
00001 /* Image_Data_Block 00002 00003 HiROC CVS ID: Image_Data_Block.hh,v 1.12 2007/08/06 07:53:52 castalia Exp 00004 00005 Copyright (C) 2006-2007 Arizona Board of Regents on behalf of the 00006 Planetary Image Research Laboratory, Lunar and Planetary Laboratory at 00007 the University of Arizona. 00008 00009 This program is free software; you can redistribute it and/or modify it 00010 under the terms of the GNU General Public License, version 2, as 00011 published by the Free Software Foundation. 00012 00013 This program is distributed in the hope that it will be useful, but 00014 WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License along 00019 with this program; if not, write to the Free Software Foundation, Inc., 00020 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00021 */ 00022 00023 #ifndef _Image_Data_Block_ 00024 #define _Image_Data_Block_ 00025 00026 #include "PDS_Data_Block.hh" 00027 00028 00029 namespace UA 00030 { 00031 namespace HiRISE 00032 { 00042 class Image_Data_Block 00043 : public PDS_Data_Block 00044 { 00045 public: 00046 /*============================================================================== 00047 Constants: 00048 */ 00050 static const char* const ID; 00051 00053 static const char* const 00054 IMAGE_BANDS_PARAMETER_NAME; 00055 00057 static const char* const 00058 IMAGE_WIDTH_PARAMETER_NAME; 00059 00061 static const char* const 00062 IMAGE_HEIGHT_PARAMETER_NAME; 00063 00065 static const char* const 00066 PIXEL_BYTES_PARAMETER_NAME; 00067 00069 static const char* const 00070 PIXEL_BITS_PARAMETER_NAME; 00071 00073 static const char* const 00074 PIXEL_DATA_TYPE_PARAMETER_NAME; 00075 00079 static const char* const 00080 UNSIGNED_PIXEL_TYPE_IDENTIFIER; 00081 00085 static const char* const 00086 SIGNED_PIXEL_TYPE_IDENTIFIER; 00087 00091 static const char* const 00092 LSB_PIXEL_TYPE_IDENTIFIER; 00093 00097 static const char* const 00098 MSB_PIXEL_TYPE_IDENTIFIER; 00099 00101 static const char* const 00102 LINE_PREFIX_BYTES_PARAMETER_NAME; 00103 00105 static const char* const 00106 LINE_SUFFIX_BYTES_PARAMETER_NAME; 00107 00108 /*============================================================================== 00109 Constructors 00110 */ 00113 Image_Data_Block (); 00114 00120 Image_Data_Block 00121 ( 00122 const idaeim::PVL::Aggregate& parameters, 00123 std::ios::off_type file_offset 00124 ); 00125 00126 /*============================================================================== 00127 Accessors: 00128 */ 00136 unsigned int image_bands () 00137 {return Image_Bands;} 00138 00145 unsigned int image_width () 00146 {return Image_Width;} 00147 00154 unsigned int image_height () 00155 {return Image_Height;} 00156 00167 unsigned int pixel_bytes () 00168 {return Pixel_Bytes;} 00169 00185 unsigned int pixel_bits () 00186 {return Pixel_Bits;} 00187 00196 int signed_data () 00197 {return Signed_Data;} 00198 00207 int MSB_data () 00208 {return MSB_Data;} 00209 00216 unsigned int line_prefix_bytes () 00217 {return Line_Prefix_Bytes;} 00218 00225 unsigned int line_suffix_bytes () 00226 {return Line_Suffix_Bytes;} 00227 00228 /*============================================================================== 00229 Data Members: 00230 */ 00231 protected: 00232 00249 virtual unsigned long long data_block_size (); 00250 00251 00252 private: 00253 00254 unsigned int 00255 Image_Bands, 00256 Image_Width, 00257 Image_Height, 00258 Pixel_Bytes, 00259 Pixel_Bits, 00260 Line_Prefix_Bytes, 00261 Line_Suffix_Bytes; 00262 00264 int 00265 Signed_Data, 00266 MSB_Data; 00267 }; 00268 00269 } // namespace HiRISE 00270 } // namespace UA 00271 #endif
1.4.6