00001 //-------------------------------------------------- 00011 //--------------------------------------------------- 00012 00013 #ifndef IMEDGINE_FOUR_BYTE_PIXEL_IMAGE_DATASET_H 00014 #define IMEDGINE_FOUR_BYTE_PIXEL_IMAGE_DATASET_H 00015 00016 #include "image_pixel_dataset.h" 00017 #include "../global/global_definitions.h" 00018 #include "dataset_definitions.h" 00019 00020 #include <itkImage.h> 00021 00022 namespace imedgine 00023 { 00024 00025 //-------------------------------------------------- 00039 //-------------------------------------------------- 00040 00041 class FourByteImagePixelDataset : public ImagePixelDataset 00042 { 00043 protected: 00044 00045 //-------------------------------------------------- 00048 typedef four_byte_image_type image_type; 00049 00050 //-------------------------------------------------- 00053 typedef four_byte_image_pointer_type image_pointer_type; 00054 00055 //-------------------------------------------------- 00058 typedef const_four_byte_image_pointer_type const_image_pointer_type; 00059 00060 //-------------------------------------------------- 00063 typedef const_four_byte_image_iterator_type const_image_iterator_type; 00064 00065 //-------------------------------------------------- 00068 typedef four_byte_pixel_type pixel_type; 00069 00070 public: 00071 00072 //-------------------------------------------------- 00075 typedef image_type type; 00076 00077 //-------------------------------------------------- 00082 00083 FourByteImagePixelDataset(dataset_key_type dataset_key, image_pointer_type image = 0); 00084 00085 //-------------------------------------------------- 00088 00089 virtual ~FourByteImagePixelDataset(); 00090 00091 //-------------------------------------------------- 00095 00096 virtual external_data_pointer_type getData() const 00097 throw(NullPointerException); 00098 00099 //-------------------------------------------------- 00103 00104 void setDataset(image_pointer_type dataset); 00105 00106 //-------------------------------------------------- 00111 00112 image_pointer_type getDataset(); 00113 00114 //-------------------------------------------------- 00119 00120 const_image_pointer_type getDataset() const; 00121 00122 //---------------------------------------------------- 00127 00128 virtual void setIntensity(double window, double level); 00129 00130 //---------------------------------------------------- 00134 00135 virtual double getIntensityWindow() const 00136 throw(NullPointerException); 00137 00138 //---------------------------------------------------- 00142 00143 virtual double getIntensityLevel() const 00144 throw(NullPointerException); 00145 00146 00147 protected: 00148 00149 //-------------------------------------------------- 00152 typedef image_type::RegionType region_type; 00153 00154 //-------------------------------------------------- 00157 typedef image_type::SizeType region_size_type; 00158 00159 //-------------------------------------------------- 00162 typedef image_type::IndexType region_index_type; 00163 00164 //-------------------------------------------------- 00167 typedef itk::IntensityWindowingImageFilter<image_type, external_image_type> 00168 image_intensity_filter_type; 00169 00170 //-------------------------------------------------- 00173 00174 FourByteImagePixelDataset(FourByteImagePixelDataset const& src); 00175 00176 //-------------------------------------------------- 00179 00180 FourByteImagePixelDataset& operator = (FourByteImagePixelDataset const&) { return(*this); } 00181 00182 //-------------------------------------------------- 00186 00187 void setDatasetInternal(image_pointer_type dataset); 00188 00189 //-------------------------------------------------- 00192 image_pointer_type dataset_; 00193 00194 //-------------------------------------------------- 00197 image_intensity_filter_type::Pointer image_intensity_filter_; 00198 00199 }; 00200 00201 } 00202 00203 #endif // IMEDGINEPIXELIMAGE_DATASET_H