meta_volume_pixel_view.cpp

Go to the documentation of this file.
00001 //--------------------------------------------------
00012 //---------------------------------------------------
00013 
00014 #include "meta_volume_pixel_view.h"
00015 #include "meta_volume_pixel_data_viewer.h"
00016 
00017 namespace imedgine 
00018 { 
00019   MetaVolumePixelView::MetaVolumePixelView()
00020   : VolumePixelView(META_VOLUME_PIXEL_VIEW)
00021   { 
00022   }
00023          
00024   //---------------------------------------------------
00025   
00026   MetaVolumePixelView::MetaVolumePixelView(MetaVolumePixelView const& src)
00027   : VolumePixelView(src)
00028   { 
00029   }
00030   
00031   //---------------------------------------------------
00032   
00033   MetaVolumePixelView::~MetaVolumePixelView()
00034   {
00035 #ifdef DEBUG
00036     std::cout << "Deleting META_VOLUME_PIXEL_VIEW" << std::endl;
00037 #endif
00038   }
00039   
00040   //--------------------------------------------------
00041   
00042   view_pointer_type MetaVolumePixelView::clone() const
00043   {
00044     return(view_pointer_type(new MetaVolumePixelView(*this)));
00045   }
00046   
00047   //--------------------------------------------------
00048   
00049   void MetaVolumePixelView::setParent(QWidget* view_parent)
00050     throw(NullPointerException)   
00051   {
00052     if (view_parent == 0)
00053     {   
00054       throw(NullPointerException("SlicePixelView::setParent"));
00055     }
00056   
00057     viewer_ = new MetaVolumePixelDataViewer(this, view_parent_);
00058   }
00059   
00060   //---------------------------------------------------
00061     
00062   void MetaVolumePixelView::onDataChangedEvent(dataset_attribute_type changed_attribute)
00063   { 
00064     if ((volume_dataset_.get() == 0) || (volume_dataset_->isDataSet() == false))
00065     {
00066       return;
00067     }
00068     
00069     switch (changed_attribute)
00070     {
00071       case DATASET_ATTRIBUTE_FOCUS_POINT :
00072       {
00073         // TODO: Visualization of Focus Point
00074         break;
00075       }
00076       case DATASET_ATTRIBUTE_INTENSITY :
00077       {
00078         viewer_->setIntensityInGui(
00079           static_cast<unsigned int>(volume_dataset_->getIntensityWindow()),
00080           static_cast<int>(volume_dataset_->getIntensityLevel()));
00081         break;
00082       }
00083       case DATASET_ATTRIBUTE_TRANSFORMATION :
00084       {
00085         viewer_->setAffineTransformationMatrixInGui(
00086           volume_dataset_->getTransformationMatrix());
00087         break;
00088 
00089       }
00090       case DATASET_ATTRIBUTE_TRANSLATION :
00091       {
00092         viewer_->setOffsetVectorInGui(volume_dataset_->getOffsetVector());
00093         break;
00094       }
00095       default :
00096       {}
00097     }
00098   }
00099   
00100   //---------------------------------------------------
00101   
00102   void MetaVolumePixelView::updateView()
00103       throw(NullPointerException)
00104   {
00105     if ((volume_dataset_.get() == 0) || (volume_dataset_->isDataSet() == false))
00106     {
00107       return;
00108     }
00109     
00110     viewer_->setIntensityInGui(
00111         static_cast<unsigned int>(volume_dataset_->getIntensityWindow()),
00112         static_cast<int>(volume_dataset_->getIntensityLevel()));
00113     viewer_->setAffineTransformationMatrixInGui(
00114         volume_dataset_->getTransformationMatrix());
00115     viewer_->setOffsetVectorInGui(volume_dataset_->getOffsetVector());
00116   }
00117   
00118   //--------------------------------------------------    
00119     
00120   void MetaVolumePixelView::setFocusPointXDimension(index_type x_index)
00121   {
00122     if ((volume_dataset_.get() == 0) || (volume_dataset_->isDataSet() == false))
00123     {
00124       return;
00125     }
00126     
00127     try
00128     {
00129       volume_dataset_->setFocusPointAt(X_DIMENSION, x_index);
00130     }
00131     catch (IndexOutOfBoundsException const&)
00132     {
00133       volume_dataset_->setFocusPointAt(
00134           X_DIMENSION, volume_dataset_->getSize()[X_DIMENSION] - 1);
00135     }
00136     
00137     notifyDataChangedEvent(DATASET_ATTRIBUTE_FOCUS_POINT);
00138   }
00139     
00140   //--------------------------------------------------
00141    
00142   void MetaVolumePixelView::setFocusPointYDimension(index_type y_index)
00143   {
00144     if ((volume_dataset_.get() == 0) || (volume_dataset_->isDataSet() == false))
00145     {
00146       return;
00147     }
00148     
00149     try
00150     {
00151       volume_dataset_->setFocusPointAt(Y_DIMENSION, y_index);
00152     }
00153     catch (IndexOutOfBoundsException const&)
00154     {
00155       volume_dataset_->setFocusPointAt(
00156           Y_DIMENSION, volume_dataset_->getSize()[Y_DIMENSION] - 1);
00157     }
00158     
00159     notifyDataChangedEvent(DATASET_ATTRIBUTE_FOCUS_POINT);
00160   }
00161     
00162   //--------------------------------------------------
00163    
00164   void MetaVolumePixelView::setFocusPointZDimension(index_type z_index)
00165   {
00166     if ((volume_dataset_.get() == 0) || (volume_dataset_->isDataSet() == false))
00167     {
00168       return;
00169     }
00170     
00171     try
00172     {
00173       volume_dataset_->setFocusPointAt(Z_DIMENSION, z_index);
00174     }
00175     catch (IndexOutOfBoundsException const&)
00176     {
00177       volume_dataset_->setFocusPointAt(
00178           Z_DIMENSION, volume_dataset_->getSize()[Z_DIMENSION] - 1);
00179     }
00180     
00181     notifyDataChangedEvent(DATASET_ATTRIBUTE_FOCUS_POINT);
00182   }
00183 
00184   //--------------------------------------------------
00185 
00186   QWidget* MetaVolumePixelView::getViewer() 
00187   {
00188     return(viewer_);
00189 
00190   }
00191 
00192   //--------------------------------------------------
00193   dataset_position_type MetaVolumePixelView::getSizeOfDataset() const
00194   {
00195     if (volume_dataset_.get() == 0)
00196     {
00197       return(dataset_position_type());
00198     }
00199     return volume_dataset_->getSize();
00200   }
00201   
00202 }

Generated on Sun Aug 13 18:19:41 2006 for iMEDgine by  doxygen 1.4.6