vtkMPR3DDataViewer Class Reference

#include <vtkMPR3DDataViewer.h>

Collaboration diagram for vtkMPR3DDataViewer:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 vtkMPR3DDataViewer ()
virtual ~vtkMPR3DDataViewer ()
vtkImageActor * GetImageActor (int id)
vtkActor * GetOutlineActor ()
virtual void Refresh ()
virtual void Configure ()
void SetVisiblePosition (int idPosition, bool visible)
bool GetVisiblePosition (int idPosition)
vtkImageActor * GetvtkActor_saggital ()
vtkImageActor * GetvtkActor_axial ()
vtkImageActor * GetvtkActor_coronal ()
void SetPositionX (int pos)
void SetPositionY (int pos)
void SetPositionZ (int pos)
void SetVtkMPRBaseData (vtkMPRBaseData *vtkmprbasedata)
vtkMPRBaseDataGetVtkMPRBaseData ()
vtkColorTransferFunction * GetvtkColorTransferFunction ()
std::vector< double > * GetctFunVectorPoint ()
std::vector< double > * GetctFunVectorRed ()
std::vector< double > * GetctFunVectorGreen ()
std::vector< double > * GetctFunVectorBlue ()
void setColorTransferFunction (vtkColorTransferFunction *colortable)

Private Attributes

bool _visiblePosition [3]
vtkOutlineFilter * _outlineData
vtkPolyDataMapper * _mapOutline
vtkActor * _outline
vtkColorTransferFunction * _ctfun
std::vector< double > _ctFunVectorPoint
std::vector< double > _ctFunVectorRed
std::vector< double > _ctFunVectorGreen
std::vector< double > _ctFunVectorBlue
vtkImageMapToColors * _saggitalColors
vtkImageActor * _saggital
vtkImageMapToColors * _axialColors
vtkImageActor * _axial
vtkImageMapToColors * _coronalColors
vtkImageActor * _coronal
vtkMPRBaseData_vtkmprbasedata

Detailed Description

Definition at line 13 of file vtkMPR3DDataViewer.h.


Constructor & Destructor Documentation

vtkMPR3DDataViewer::vtkMPR3DDataViewer (  ) 

Definition at line 5 of file vtkMPR3DDataViewer.cxx.

References _axial, _axialColors, _coronal, _coronalColors, _ctfun, _mapOutline, _outline, _outlineData, _saggital, _saggitalColors, _visiblePosition, and _vtkmprbasedata.

00006 {
00007         _visiblePosition[0]=false;
00008         _visiblePosition[1]=false;
00009         _visiblePosition[2]=false;
00010         _ctfun = NULL;
00011         _vtkmprbasedata=NULL;
00012 
00013         _ctfun=NULL;
00014         _saggitalColors=NULL;
00015         _saggital=NULL;
00016         _axialColors=NULL;
00017         _axial=NULL;
00018         _coronalColors=NULL;
00019         _coronal=NULL;
00020         _mapOutline=NULL;
00021         _outline=NULL;
00022         _outlineData=NULL;
00023 }

vtkMPR3DDataViewer::~vtkMPR3DDataViewer (  )  [virtual]

Definition at line 25 of file vtkMPR3DDataViewer.cxx.

References _axial, _axialColors, _coronal, _coronalColors, _ctfun, _mapOutline, _outline, _outlineData, _saggital, and _saggitalColors.

00026 {
00027         _outlineData-> Delete();
00028         _mapOutline-> Delete();
00029         _outline-> Delete();
00030 
00031 //      if (_bwLut)             _bwLut->Delete();
00032 //      if (_hueLut)            _hueLut->Delete();
00033 //      if (_satLut)            _satLut->Delete();
00034         if (_ctfun)             _ctfun->Delete();
00035         if (_saggitalColors)    _saggitalColors ->Delete();
00036         if (_saggital)          _saggital->Delete();
00037         if (_axialColors)       _axialColors->Delete();
00038         if (_axial)             _axial->Delete();
00039         if (_coronalColors)     _coronalColors->Delete();
00040         if (_coronal)           _coronal->Delete();
00041 
00042 }


Member Function Documentation

void vtkMPR3DDataViewer::Configure (  )  [virtual]

Definition at line 114 of file vtkMPR3DDataViewer.cxx.

References _axial, _axialColors, _coronal, _coronalColors, _ctfun, _ctFunVectorBlue, _ctFunVectorGreen, _ctFunVectorPoint, _ctFunVectorRed, _mapOutline, _outline, _outlineData, _saggital, _saggitalColors, _vtkmprbasedata, and vtkBaseData::GetImageData().

Referenced by wxMaracasRenderTabbedPanel::addMPROptions(), wxManualRegistration3D::AddPanelControl_B(), wxMaracas_ViewerWidget::ConfigureVTK(), wxManualRegistration3D::Create3DView(), wxManualTree_MPRWidget::Create3DViewContour(), wxSegmentationFM3DWidget::Create3DViewContour(), wxManualSegmentation_MPRWidget::Create3DViewContour(), wxMPRWidget::CreateMPRPanel4View(), wxMPRWidget::CreateView(), and wxMaracas_ViewerWidget::wxMaracas_ViewerWidget().

00115 {
00116 /*
00117   // Start by creatin a black/white lookup table.
00118         _bwLut = vtkLookupTable::New();
00119     _bwLut->SetTableRange (0, 2000);
00120     _bwLut->SetSaturationRange (0, 0);
00121     _bwLut->SetHueRange (0, 0);
00122     _bwLut->SetValueRange (0, 1);
00123 
00124   // Now create a lookup table that consists of the full hue circle
00125   // (from HSV).
00126         _hueLut = vtkLookupTable::New();
00127     _hueLut->SetTableRange (0, 2000);
00128     _hueLut->SetHueRange (0, 1);
00129     _hueLut->SetSaturationRange (1, 1);
00130     _hueLut->SetValueRange (1, 1);
00131 
00132   // Finally, create a lookup table with a single hue but having a range
00133   // in the saturation of the hue.
00134         _satLut = vtkLookupTable::New();
00135     _satLut->SetTableRange (0, 2000);
00136     _satLut->SetHueRange (.6, .6);
00137     _satLut->SetSaturationRange (0, 1);
00138     _satLut->SetValueRange (1, 1);
00139 */
00140 
00141 
00142         double range[2];
00143         _vtkmprbasedata->GetImageData()->GetScalarRange(range);
00144         double max = range[1];
00145 
00146         _ctFunVectorPoint.clear();
00147         _ctFunVectorPoint.push_back(max*0/4);
00148         _ctFunVectorPoint.push_back(max*1/4);
00149         _ctFunVectorPoint.push_back(max*2/4);
00150         _ctFunVectorPoint.push_back(max*3/4);
00151         _ctFunVectorPoint.push_back(max*4/4);
00152 
00153         _ctFunVectorRed.clear();
00154         _ctFunVectorRed.push_back(0.0);
00155         _ctFunVectorRed.push_back(1.0);
00156         _ctFunVectorRed.push_back(0.0);
00157         _ctFunVectorRed.push_back(0.0);
00158         _ctFunVectorRed.push_back(0.0);
00159 
00160         _ctFunVectorGreen.clear();
00161         _ctFunVectorGreen.push_back(0.0);
00162         _ctFunVectorGreen.push_back(0.0);
00163         _ctFunVectorGreen.push_back(0.0);
00164         _ctFunVectorGreen.push_back(1.0);
00165         _ctFunVectorGreen.push_back(0.2);
00166 
00167         _ctFunVectorBlue.clear();
00168         _ctFunVectorBlue.push_back(0.0);
00169         _ctFunVectorBlue.push_back(0.0);
00170         _ctFunVectorBlue.push_back(1.0);
00171         _ctFunVectorBlue.push_back(0.0);
00172         _ctFunVectorBlue.push_back(0.0);
00173 
00174 
00175         if(_ctfun==NULL){
00176                 _ctfun = vtkColorTransferFunction::New();
00177         }
00178         _ctfun->RemoveAllPoints();
00179 
00180         int i,size=_ctFunVectorPoint.size();
00181         for (i=0;i<size;i++)
00182         {
00183                 _ctfun->AddRGBPoint( _ctFunVectorPoint[i] , _ctFunVectorRed[i],_ctFunVectorGreen[i],_ctFunVectorBlue[i]);
00184                 
00185         }
00186 /*
00187         _ctfun->AddRGBPoint( 100 ,0 ,0,0);
00188         _ctfun->AddRGBPoint( 200 ,1 ,0,0);
00189         _ctfun->AddRGBPoint( 300 ,0 ,1,0);
00190         _ctfun->AddRGBPoint( 400 ,0 ,0,1);
00191 */
00192 //      void *p=this; // JPRx
00193 
00194   // Create the first of the three planes. The filter vtkImageMapToColors
00195   // maps the data through the corresponding lookup table created above.  The
00196   // vtkImageActor is a type of vtkProp and conveniently displays an image on
00197   // a single quadrilateral plane. It does this using texture mapping and as
00198   // a result is quite fast. (Note: the input image has to be unsigned char
00199   // values, which the vtkImageMapToColors produces.) Note also that by
00200   // specifying the DisplayExtent, the pipeline requests data of this extent
00201   // and the vtkImageMapToColors only processes a slice of data.
00202         
00203         if(_saggitalColors==NULL){
00204                 _saggitalColors = vtkImageMapToColors::New();
00205         }
00206         _saggitalColors->RemoveAllInputs();
00207         
00208     _saggitalColors->SetInput( _vtkmprbasedata->GetImageData() );
00209 //    _saggitalColors->SetLookupTable(_bwLut);
00210         
00211     _saggitalColors->SetLookupTable(_ctfun);
00212         
00213 
00214         if(_saggital==NULL){
00215                 _saggital = vtkImageActor::New();
00216                 _saggital->SetInput(_saggitalColors->GetOutput());
00217         }       
00218         //_saggitalColors->Update();
00219     
00220 
00221 
00222   // Create the second (axial) plane of the three planes. We use the
00223   // same approach as before except that the extent differs.
00224 
00225         
00226         if(_axialColors==NULL){
00227                 _axialColors = vtkImageMapToColors::New();
00228         }
00229 
00230         _axialColors->RemoveAllInputs();
00231     _axialColors->SetInput( _vtkmprbasedata->GetImageData() );
00232 //    _axialColors->SetLookupTable(_hueLut);
00233     _axialColors->SetLookupTable(_ctfun);
00234 
00235         if(_axial==NULL){
00236                 _axial = vtkImageActor::New();
00237                 _axial->SetInput(_axialColors->GetOutput());
00238         }
00239         
00240         //_axialColors->Update();
00241     
00242 
00243         // Create the third (coronal) plane of the three planes. We use 
00244   // the same approach as before except that the extent differs.
00245         if(_coronalColors==NULL){
00246                 _coronalColors = vtkImageMapToColors::New();
00247         }
00248         _coronalColors->RemoveAllInputs();
00249     _coronalColors->SetInput( _vtkmprbasedata->GetImageData() );
00250 //    _coronalColors->SetLookupTable(_satLut);
00251     _coronalColors->SetLookupTable(_ctfun);
00252 
00253         if(_coronal==NULL){
00254                 _coronal = vtkImageActor::New();
00255                 _coronal->SetInput(_coronalColors->GetOutput());
00256         }
00257         
00258     
00259 
00260   // An outline provides context around the data.
00261   //
00262         if(_outlineData==NULL){
00263                 _outlineData = vtkOutlineFilter::New();
00264         }
00265         _outlineData->RemoveAllInputs();
00266     _outlineData->SetInput((vtkDataSet *) _vtkmprbasedata->GetImageData() );
00267 
00268         if(_mapOutline==NULL){
00269                 _mapOutline = vtkPolyDataMapper::New();
00270                 _mapOutline->SetInput(_outlineData->GetOutput());
00271         }
00272         _mapOutline->Update();    
00273         //_mapOutline->RemoveAllInputs();
00274     
00275         if(_outline==NULL){
00276                 _outline = vtkActor::New();
00277                 _outline->SetMapper(_mapOutline);
00278                 _outline->GetProperty()->SetColor(0,0,0);
00279         }
00280         
00281     
00282 
00283         int ext[6];
00284         _vtkmprbasedata->GetImageData()->GetExtent(ext);
00285 
00286         
00287 
00288 
00289 }

Here is the call graph for this function:

Here is the caller graph for this function:

std::vector< double > * vtkMPR3DDataViewer::GetctFunVectorBlue (  ) 

Definition at line 108 of file vtkMPR3DDataViewer.cxx.

References _ctFunVectorBlue.

Referenced by wxVtkMPR3DViewCntrlPanel::OnEditColorTable().

00109 {
00110         return &_ctFunVectorBlue;
00111 }

Here is the caller graph for this function:

std::vector< double > * vtkMPR3DDataViewer::GetctFunVectorGreen (  ) 

Definition at line 102 of file vtkMPR3DDataViewer.cxx.

References _ctFunVectorGreen.

Referenced by wxVtkMPR3DViewCntrlPanel::OnEditColorTable().

00103 {
00104         return &_ctFunVectorGreen;
00105 }

Here is the caller graph for this function:

std::vector< double > * vtkMPR3DDataViewer::GetctFunVectorPoint (  ) 

Definition at line 91 of file vtkMPR3DDataViewer.cxx.

References _ctFunVectorPoint.

Referenced by wxVtkMPR3DViewCntrlPanel::OnEditColorTable().

00092 {
00093         return &_ctFunVectorPoint;
00094 }

Here is the caller graph for this function:

std::vector< double > * vtkMPR3DDataViewer::GetctFunVectorRed (  ) 

Definition at line 96 of file vtkMPR3DDataViewer.cxx.

References _ctFunVectorRed.

Referenced by wxVtkMPR3DViewCntrlPanel::OnEditColorTable().

00097 {
00098         return &_ctFunVectorRed;
00099 }

Here is the caller graph for this function:

vtkImageActor * vtkMPR3DDataViewer::GetImageActor ( int  id  ) 

Definition at line 49 of file vtkMPR3DDataViewer.cxx.

References GetvtkActor_axial(), GetvtkActor_coronal(), and GetvtkActor_saggital().

Referenced by wxVtkMPR3DView::VisibleImageActor().

00050 {
00051         vtkImageActor *tmpVtkActor=NULL;
00052         if (id==0){
00053                 tmpVtkActor = GetvtkActor_saggital();
00054         }
00055         if (id==1){
00056                 tmpVtkActor = GetvtkActor_coronal();
00057         }
00058         if (id==2){
00059                 tmpVtkActor = GetvtkActor_axial();
00060         }
00061         return tmpVtkActor;
00062 }

Here is the call graph for this function:

Here is the caller graph for this function:

vtkActor * vtkMPR3DDataViewer::GetOutlineActor (  ) 

Definition at line 44 of file vtkMPR3DDataViewer.cxx.

References _outline.

Referenced by wxVtkMPR3DView::Configure(), and wxVtkMPR3DView::showOutlineActor().

00045 {
00046         return _outline;
00047 }

Here is the caller graph for this function:

bool vtkMPR3DDataViewer::GetVisiblePosition ( int  idPosition  ) 

Definition at line 331 of file vtkMPR3DDataViewer.cxx.

References _visiblePosition.

Referenced by wxVtkMPR3DView::VisibleImageActor().

00332 {
00333         return _visiblePosition[idPosition];
00334 }

Here is the caller graph for this function:

vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_axial (  ) 

Definition at line 302 of file vtkMPR3DDataViewer.cxx.

References _axial.

Referenced by GetImageActor().

00303 {
00304         return _axial;
00305 }

Here is the caller graph for this function:

vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_coronal (  ) 

Definition at line 297 of file vtkMPR3DDataViewer.cxx.

References _coronal.

Referenced by GetImageActor().

00298 {
00299         return _coronal;
00300 }

Here is the caller graph for this function:

vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_saggital (  ) 

Definition at line 292 of file vtkMPR3DDataViewer.cxx.

References _saggital.

Referenced by GetImageActor().

00293 {
00294         return _saggital;
00295 }

Here is the caller graph for this function:

vtkColorTransferFunction * vtkMPR3DDataViewer::GetvtkColorTransferFunction (  ) 

Definition at line 85 of file vtkMPR3DDataViewer.cxx.

References _ctfun.

Referenced by wxVtkMPR3DViewCntrlPanel::OnEditColorTable().

00086 {
00087         return _ctfun;
00088 }

Here is the caller graph for this function:

vtkMPRBaseData * vtkMPR3DDataViewer::GetVtkMPRBaseData (  ) 
void vtkMPR3DDataViewer::Refresh (  )  [virtual]

Definition at line 64 of file vtkMPR3DDataViewer.cxx.

References _vtkmprbasedata, vtkMPRBaseData::GetX(), vtkMPRBaseData::GetY(), vtkBaseData::GetZ(), SetPositionX(), SetPositionY(), and SetPositionZ().

00065 {
00066         int x = (int)(_vtkmprbasedata->GetX());
00067         int y = (int)(_vtkmprbasedata->GetY());
00068         int z = (int)(_vtkmprbasedata->GetZ());
00069         SetPositionX( x );
00070         SetPositionY( y );
00071         SetPositionZ( z );
00072 }

Here is the call graph for this function:

void vtkMPR3DDataViewer::setColorTransferFunction ( vtkColorTransferFunction *  colortable  ) 

Definition at line 336 of file vtkMPR3DDataViewer.cxx.

References _axialColors, _coronalColors, and _saggitalColors.

Referenced by wxVtkMPR3DView::setColorTransferFunction().

00336                                                                                      {
00337         _saggitalColors->SetLookupTable(colortable);
00338          _coronalColors->SetLookupTable(colortable);
00339         _axialColors->SetLookupTable(colortable);
00340 }

Here is the caller graph for this function:

void vtkMPR3DDataViewer::SetPositionX ( int  pos  ) 

Definition at line 308 of file vtkMPR3DDataViewer.cxx.

References _saggital, _vtkmprbasedata, and vtkMPRBaseData::GetDimensionExtention().

Referenced by Refresh().

00308                                             {
00309         int x1,x2,y1,y2,z1,z2;
00310         _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
00311         _saggital->SetDisplayExtent( pos , pos , y1 ,y2 , z1 , z2 );
00312 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtkMPR3DDataViewer::SetPositionY ( int  pos  ) 

Definition at line 314 of file vtkMPR3DDataViewer.cxx.

References _coronal, _vtkmprbasedata, and vtkMPRBaseData::GetDimensionExtention().

Referenced by Refresh().

00314                                             {
00315         int x1,x2,y1,y2,z1,z2;
00316         _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
00317         _coronal->SetDisplayExtent(x1,x2, pos,pos, z1,z2);
00318 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtkMPR3DDataViewer::SetPositionZ ( int  pos  ) 

Definition at line 320 of file vtkMPR3DDataViewer.cxx.

References _axial, _vtkmprbasedata, and vtkMPRBaseData::GetDimensionExtention().

Referenced by Refresh().

00320                                             {
00321         int x1,x2,y1,y2,z1,z2;
00322         _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2);
00323         _axial->SetDisplayExtent(x1,x2, y1,y2, pos,pos);
00324 }

Here is the call graph for this function:

Here is the caller graph for this function:

void vtkMPR3DDataViewer::SetVisiblePosition ( int  idPosition,
bool  visible 
)

Definition at line 326 of file vtkMPR3DDataViewer.cxx.

References _visiblePosition.

Referenced by wxVtkMPR3DView::VisibleImageActor().

00327 {
00328         _visiblePosition[idPosition]=visible;
00329 }

Here is the caller graph for this function:

void vtkMPR3DDataViewer::SetVtkMPRBaseData ( vtkMPRBaseData vtkmprbasedata  ) 

Member Data Documentation

vtkImageActor* vtkMPR3DDataViewer::_axial [private]
vtkImageMapToColors* vtkMPR3DDataViewer::_axialColors [private]
vtkImageActor* vtkMPR3DDataViewer::_coronal [private]
vtkImageMapToColors* vtkMPR3DDataViewer::_coronalColors [private]
vtkColorTransferFunction* vtkMPR3DDataViewer::_ctfun [private]
std::vector<double> vtkMPR3DDataViewer::_ctFunVectorBlue [private]

Definition at line 54 of file vtkMPR3DDataViewer.h.

Referenced by Configure(), and GetctFunVectorBlue().

std::vector<double> vtkMPR3DDataViewer::_ctFunVectorGreen [private]

Definition at line 53 of file vtkMPR3DDataViewer.h.

Referenced by Configure(), and GetctFunVectorGreen().

std::vector<double> vtkMPR3DDataViewer::_ctFunVectorPoint [private]

Definition at line 51 of file vtkMPR3DDataViewer.h.

Referenced by Configure(), and GetctFunVectorPoint().

std::vector<double> vtkMPR3DDataViewer::_ctFunVectorRed [private]

Definition at line 52 of file vtkMPR3DDataViewer.h.

Referenced by Configure(), and GetctFunVectorRed().

vtkPolyDataMapper* vtkMPR3DDataViewer::_mapOutline [private]

Definition at line 46 of file vtkMPR3DDataViewer.h.

Referenced by Configure(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().

vtkActor* vtkMPR3DDataViewer::_outline [private]
vtkOutlineFilter* vtkMPR3DDataViewer::_outlineData [private]

Definition at line 45 of file vtkMPR3DDataViewer.h.

Referenced by Configure(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().

vtkImageActor* vtkMPR3DDataViewer::_saggital [private]
vtkImageMapToColors* vtkMPR3DDataViewer::_saggitalColors [private]

Definition at line 42 of file vtkMPR3DDataViewer.h.

Referenced by GetVisiblePosition(), SetVisiblePosition(), and vtkMPR3DDataViewer().


The documentation for this class was generated from the following files:

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1