00001 //-------------------------------------------------- 00011 //--------------------------------------------------- 00012 00013 #ifndef IMEDGINE_VOLUME_PIXEL_VIEW_H 00014 #define IMEDGINE_VOLUME_PIXEL_VIEW_H 00015 00016 #include "pixel_view.h" 00017 #include "../global/global_definitions.h" 00018 #include "../datasets/volume_pixel_dataset.h" 00019 00020 namespace imedgine 00021 { 00022 00023 //-------------------------------------------------- 00034 //-------------------------------------------------- 00035 00036 class VolumePixelView : public PixelView 00037 { 00038 public: 00039 00040 //-------------------------------------------------- 00043 00044 VolumePixelView(view_type type); 00045 00046 //-------------------------------------------------- 00049 00050 virtual ~VolumePixelView(); 00051 00052 //-------------------------------------------------- 00056 00057 virtual void setDataset(dataset_pointer_type dataset) 00058 throw(NullPointerException, InvalidCastException); 00059 00060 //-------------------------------------------------- 00064 00065 void setSecondDataset(dataset_pointer_type second_dataset) 00066 throw(NullPointerException, InvalidCastException); 00067 00068 //-------------------------------------------------- 00071 00072 void unsetSecondDataset(); 00073 00074 //-------------------------------------------------- 00079 00080 dataset_key_type getDatasetKey() const; 00081 00082 //-------------------------------------------------- 00087 00088 dataset_key_type getSecondDatasetKey() const; 00089 00090 //-------------------------------------------------- 00098 00099 void lockWithDataset(dataset_key_type dataset_key); 00100 00101 //-------------------------------------------------- 00109 00110 void unlockFromDataset(dataset_key_type dataset_key); 00111 00112 //-------------------------------------------------- 00116 00117 bool isLockedWithDataset(dataset_key_type dataset_key); 00118 00119 //-------------------------------------------------- 00123 volume_pixel_dataset_pointer_type getVolumeDataset(); 00124 00125 //-------------------------------------------------- 00129 00130 dataset_position_type const& getCurrentFocusPoint() const; 00131 00132 //---------------------------------------------------- 00136 virtual double getMinPixelValue() const; 00137 00138 //---------------------------------------------------- 00142 virtual double getMaxPixelValue() const; 00143 00144 //-------------------------------------------------- 00150 00151 virtual void setIntensity(double window, double level) 00152 throw(NullPointerException); 00153 00154 //-------------------------------------------------- 00158 00159 virtual double getIntensityWindow() const; 00160 00161 //-------------------------------------------------- 00165 00166 virtual double getIntensityLevel() const; 00167 00168 //---------------------------------------------------- 00174 00175 void setTransformationMatrix(matrix_type const& matrix); 00176 00177 //---------------------------------------------------- 00180 00181 matrix_type getTransformationMatrix() const; 00182 00183 //---------------------------------------------------- 00189 00190 void setOffsetVector(offset_vector_type const& offset); 00191 00192 //---------------------------------------------------- 00195 00196 virtual offset_vector_type getOffsetVector() const; 00197 00198 //-------------------------------------------------- 00202 virtual unsigned char getNumBytesPerPixel() const; 00203 00204 00205 protected: 00206 00207 //-------------------------------------------------- 00210 VolumePixelView(VolumePixelView const& src); 00211 00212 //-------------------------------------------------- 00214 00215 volume_pixel_dataset_pointer_type volume_dataset_; 00216 00217 //-------------------------------------------------- 00221 00222 volume_pixel_dataset_pointer_type second_volume_dataset_; 00223 00224 //-------------------------------------------------- 00226 00227 dataset_position_type current_focus_point_; 00228 00229 00230 }; 00231 } 00232 00233 #endif