diff --git a/envi/envi.h b/envi/envi.h index d7a1f37..eb4a468 100644 --- a/envi/envi.h +++ b/envi/envi.h @@ -574,16 +574,66 @@ public: if(header.interleave == envi_header::BSQ){ //if the infile is bsq file if(header.data_type ==envi_header::float32) return ((bsq*)file)->band((float*)ptr, wavelength); - + else if (header.data_type == envi_header::float64) + return ((bsq*)file)->band((double*)ptr, wavelength); + else{ + std::cout << "ERROR: unidentified data type" << std::endl; + exit(1); + } + } + else if (header.interleave == envi_header::BIL){ + if (header.data_type == envi_header::float32) + return ((bil*)file)->band((float*)ptr, wavelength); + else if (header.data_type == envi_header::float64) + return ((bil*)file)->band((double*)ptr, wavelength); + else{ + std::cout << "ERROR: unidentified data type" << std::endl; + exit(1); + } + } + else if (header.interleave == envi_header::BIP){ + if (header.data_type == envi_header::float32) + return ((bip*)file)->band((float*)ptr, wavelength); + else if (header.data_type == envi_header::float64) + return ((bip*)file)->band((double*)ptr, wavelength); + else{ + std::cout << "ERROR: unidentified data type" << std::endl; + exit(1); + } } return false; } bool band_index(void* ptr, unsigned int b){ - if(header.interleave == envi_header::BSQ){ //if the infile is bsq file - if(header.data_type ==envi_header::float32) + if (header.interleave == envi_header::BSQ){ //if the infile is bsq file + if (header.data_type == envi_header::float32) return ((bsq*)file)->band_index((float*)ptr, b); - + else if (header.data_type == envi_header::float64) + return ((bsq*)file)->band_index((double*)ptr, b); + else{ + std::cout << "ERROR: unidentified data type" << std::endl; + exit(1); + } + } + else if (header.interleave == envi_header::BIL){ + if (header.data_type == envi_header::float32) + return ((bil*)file)->band_index((float*)ptr, b); + else if (header.data_type == envi_header::float64) + return ((bil*)file)->band_index((double*)ptr, b); + else{ + std::cout << "ERROR: unidentified data type" << std::endl; + exit(1); + } + } + else if (header.interleave == envi_header::BIP){ + if (header.data_type == envi_header::float32) + return ((bip*)file)->band_index((float*)ptr, b); + else if (header.data_type == envi_header::float64) + return ((bip*)file)->band_index((double*)ptr, b); + else{ + std::cout << "ERROR: unidentified data type" << std::endl; + exit(1); + } } return false; } -- libgit2 0.21.4