#include <vtkMPR3DDataViewer.h>
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) |
vtkMPRBaseData * | GetVtkMPRBaseData () |
vtkColorTransferFunction * | GetvtkColorTransferFunction () |
std::vector< double > * | GetctFunVectorPoint () |
std::vector< double > * | GetctFunVectorRed () |
std::vector< double > * | GetctFunVectorGreen () |
std::vector< double > * | GetctFunVectorBlue () |
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 |
Definition at line 13 of file vtkMPR3DDataViewer.h.
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 }
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 }
vtkActor * vtkMPR3DDataViewer::GetOutlineActor | ( | ) |
Definition at line 44 of file vtkMPR3DDataViewer.cxx.
References _outline.
Referenced by wxVtkMPR3DView::Configure().
00045 { 00046 return _outline; 00047 }
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 }
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 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 00215 if(_saggital==NULL){ 00216 _saggital = vtkImageActor::New(); 00217 _saggital->SetInput(_saggitalColors->GetOutput()); 00218 } 00219 //_saggitalColors->Update(); 00220 00221 00222 00223 // Create the second (axial) plane of the three planes. We use the 00224 // same approach as before except that the extent differs. 00225 00226 00227 if(_axialColors==NULL){ 00228 _axialColors = vtkImageMapToColors::New(); 00229 } 00230 00231 _axialColors->RemoveAllInputs(); 00232 _axialColors->SetInput( _vtkmprbasedata->GetImageData() ); 00233 // _axialColors->SetLookupTable(_hueLut); 00234 _axialColors->SetLookupTable(_ctfun); 00235 00236 if(_axial==NULL){ 00237 _axial = vtkImageActor::New(); 00238 _axial->SetInput(_axialColors->GetOutput()); 00239 } 00240 00241 //_axialColors->Update(); 00242 00243 00244 // Create the third (coronal) plane of the three planes. We use 00245 // the same approach as before except that the extent differs. 00246 if(_coronalColors==NULL){ 00247 _coronalColors = vtkImageMapToColors::New(); 00248 } 00249 _coronalColors->RemoveAllInputs(); 00250 _coronalColors->SetInput( _vtkmprbasedata->GetImageData() ); 00251 // _coronalColors->SetLookupTable(_satLut); 00252 _coronalColors->SetLookupTable(_ctfun); 00253 00254 if(_coronal==NULL){ 00255 _coronal = vtkImageActor::New(); 00256 _coronal->SetInput(_coronalColors->GetOutput()); 00257 } 00258 00259 00260 00261 // An outline provides context around the data. 00262 // 00263 if(_outlineData==NULL){ 00264 _outlineData = vtkOutlineFilter::New(); 00265 } 00266 _outlineData->RemoveAllInputs(); 00267 _outlineData->SetInput((vtkDataSet *) _vtkmprbasedata->GetImageData() ); 00268 00269 if(_mapOutline==NULL){ 00270 _mapOutline = vtkPolyDataMapper::New(); 00271 _mapOutline->SetInput(_outlineData->GetOutput()); 00272 } 00273 _mapOutline->Update(); 00274 //_mapOutline->RemoveAllInputs(); 00275 00276 if(_outline==NULL){ 00277 _outline = vtkActor::New(); 00278 _outline->SetMapper(_mapOutline); 00279 _outline->GetProperty()->SetColor(0,0,0); 00280 } 00281 00282 00283 00284 int ext[6]; 00285 _vtkmprbasedata->GetImageData()->GetExtent(ext); 00286 00287 00288 00289 00290 }
void vtkMPR3DDataViewer::SetVisiblePosition | ( | int | idPosition, | |
bool | visible | |||
) |
Definition at line 327 of file vtkMPR3DDataViewer.cxx.
References _visiblePosition.
Referenced by wxVtkMPR3DView::VisibleImageActor().
00328 { 00329 _visiblePosition[idPosition]=visible; 00330 }
bool vtkMPR3DDataViewer::GetVisiblePosition | ( | int | idPosition | ) |
Definition at line 332 of file vtkMPR3DDataViewer.cxx.
References _visiblePosition.
Referenced by wxVtkMPR3DView::VisibleImageActor().
00333 { 00334 return _visiblePosition[idPosition]; 00335 }
vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_saggital | ( | ) |
Definition at line 293 of file vtkMPR3DDataViewer.cxx.
References _saggital.
Referenced by GetImageActor().
00294 { 00295 return _saggital; 00296 }
vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_axial | ( | ) |
Definition at line 303 of file vtkMPR3DDataViewer.cxx.
References _axial.
Referenced by GetImageActor().
00304 { 00305 return _axial; 00306 }
vtkImageActor * vtkMPR3DDataViewer::GetvtkActor_coronal | ( | ) |
Definition at line 298 of file vtkMPR3DDataViewer.cxx.
References _coronal.
Referenced by GetImageActor().
00299 { 00300 return _coronal; 00301 }
void vtkMPR3DDataViewer::SetPositionX | ( | int | pos | ) |
Definition at line 309 of file vtkMPR3DDataViewer.cxx.
References _saggital, _vtkmprbasedata, and vtkMPRBaseData::GetDimensionExtention().
Referenced by Refresh().
00309 { 00310 int x1,x2,y1,y2,z1,z2; 00311 _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2); 00312 _saggital->SetDisplayExtent( pos , pos , y1 ,y2 , z1 , z2 ); 00313 }
void vtkMPR3DDataViewer::SetPositionY | ( | int | pos | ) |
Definition at line 315 of file vtkMPR3DDataViewer.cxx.
References _coronal, _vtkmprbasedata, and vtkMPRBaseData::GetDimensionExtention().
Referenced by Refresh().
00315 { 00316 int x1,x2,y1,y2,z1,z2; 00317 _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2); 00318 _coronal->SetDisplayExtent(x1,x2, pos,pos, z1,z2); 00319 }
void vtkMPR3DDataViewer::SetPositionZ | ( | int | pos | ) |
Definition at line 321 of file vtkMPR3DDataViewer.cxx.
References _axial, _vtkmprbasedata, and vtkMPRBaseData::GetDimensionExtention().
Referenced by Refresh().
00321 { 00322 int x1,x2,y1,y2,z1,z2; 00323 _vtkmprbasedata->GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2); 00324 _axial->SetDisplayExtent(x1,x2, y1,y2, pos,pos); 00325 }
void vtkMPR3DDataViewer::SetVtkMPRBaseData | ( | vtkMPRBaseData * | vtkmprbasedata | ) |
Definition at line 74 of file vtkMPR3DDataViewer.cxx.
References _vtkmprbasedata.
Referenced by wxManualRegistration3D::AddPanelControl_B(), wxManualRegistration3D::Create3DView(), wxManualTree_MPRWidget::Create3DViewContour(), wxSegmentationFM3DWidget::Create3DViewContour(), wxManualSegmentation_MPRWidget::Create3DViewContour(), wxMPRWidget::CreateMPRPanel4View(), wxMPRWidget::CreateView(), and wxMaracas_ViewerWidget::wxMaracas_ViewerWidget().
00075 { 00076 _vtkmprbasedata=vtkmprbasedata; 00077 }
vtkMPRBaseData * vtkMPR3DDataViewer::GetVtkMPRBaseData | ( | ) |
Definition at line 79 of file vtkMPR3DDataViewer.cxx.
References _vtkmprbasedata.
Referenced by wxVtkMPR3DView::Configure(), wxManualTree_MPRWidget::ConfigureContour(), vtkmyPWCallback_3DPointWidget::Execute(), wxVtkMPR3DViewCntrlPanel::OnEditColorTable(), wxVtkMPR3DViewCntrlPanel::OnPositionX(), wxVtkMPR3DViewCntrlPanel::OnPositionY(), wxVtkMPR3DViewCntrlPanel::OnPositionZ(), wxManualRegistration3D::OnTracking(), wxVtkMPR3DViewCntrlPanel::Refresh(), wxVtkMPR3DView::RefreshView(), wxManualRegistration3D::RefreshView(), vtkInteractorStyle3DView::SelectMarchibCubePoint(), wxVtkMPR3DView::TestLoic1(), wxVtkMPR3DView::TestLoic2(), and wxVtkMPR3DViewCntrlPanel::UpdateControlPanel().
00080 { 00081 return _vtkmprbasedata; 00082 }
vtkColorTransferFunction * vtkMPR3DDataViewer::GetvtkColorTransferFunction | ( | ) |
Definition at line 85 of file vtkMPR3DDataViewer.cxx.
References _ctfun.
Referenced by wxVtkMPR3DViewCntrlPanel::OnEditColorTable().
00086 { 00087 return _ctfun; 00088 }
std::vector< double > * vtkMPR3DDataViewer::GetctFunVectorPoint | ( | ) |
Definition at line 91 of file vtkMPR3DDataViewer.cxx.
References _ctFunVectorPoint.
Referenced by wxVtkMPR3DViewCntrlPanel::OnEditColorTable().
00092 { 00093 return &_ctFunVectorPoint; 00094 }
std::vector< double > * vtkMPR3DDataViewer::GetctFunVectorRed | ( | ) |
Definition at line 96 of file vtkMPR3DDataViewer.cxx.
References _ctFunVectorRed.
Referenced by wxVtkMPR3DViewCntrlPanel::OnEditColorTable().
00097 { 00098 return &_ctFunVectorRed; 00099 }
std::vector< double > * vtkMPR3DDataViewer::GetctFunVectorGreen | ( | ) |
Definition at line 102 of file vtkMPR3DDataViewer.cxx.
References _ctFunVectorGreen.
Referenced by wxVtkMPR3DViewCntrlPanel::OnEditColorTable().
00103 { 00104 return &_ctFunVectorGreen; 00105 }
std::vector< double > * vtkMPR3DDataViewer::GetctFunVectorBlue | ( | ) |
Definition at line 108 of file vtkMPR3DDataViewer.cxx.
References _ctFunVectorBlue.
Referenced by wxVtkMPR3DViewCntrlPanel::OnEditColorTable().
00109 { 00110 return &_ctFunVectorBlue; 00111 }
bool vtkMPR3DDataViewer::_visiblePosition[3] [private] |
Definition at line 40 of file vtkMPR3DDataViewer.h.
Referenced by GetVisiblePosition(), SetVisiblePosition(), and vtkMPR3DDataViewer().
vtkOutlineFilter* vtkMPR3DDataViewer::_outlineData [private] |
Definition at line 43 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().
vtkPolyDataMapper* vtkMPR3DDataViewer::_mapOutline [private] |
Definition at line 44 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().
vtkActor* vtkMPR3DDataViewer::_outline [private] |
Definition at line 45 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), GetOutlineActor(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().
vtkColorTransferFunction* vtkMPR3DDataViewer::_ctfun [private] |
Definition at line 48 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), GetvtkColorTransferFunction(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().
std::vector<double> vtkMPR3DDataViewer::_ctFunVectorPoint [private] |
Definition at line 49 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), and GetctFunVectorPoint().
std::vector<double> vtkMPR3DDataViewer::_ctFunVectorRed [private] |
Definition at line 50 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), and GetctFunVectorRed().
std::vector<double> vtkMPR3DDataViewer::_ctFunVectorGreen [private] |
Definition at line 51 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), and GetctFunVectorGreen().
std::vector<double> vtkMPR3DDataViewer::_ctFunVectorBlue [private] |
Definition at line 52 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), and GetctFunVectorBlue().
vtkImageMapToColors* vtkMPR3DDataViewer::_saggitalColors [private] |
Definition at line 58 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().
vtkImageActor* vtkMPR3DDataViewer::_saggital [private] |
Definition at line 59 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), GetvtkActor_saggital(), SetPositionX(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().
vtkImageMapToColors* vtkMPR3DDataViewer::_axialColors [private] |
Definition at line 60 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().
vtkImageActor* vtkMPR3DDataViewer::_axial [private] |
Definition at line 61 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), GetvtkActor_axial(), SetPositionZ(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().
vtkImageMapToColors* vtkMPR3DDataViewer::_coronalColors [private] |
Definition at line 62 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().
vtkImageActor* vtkMPR3DDataViewer::_coronal [private] |
Definition at line 63 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), GetvtkActor_coronal(), SetPositionY(), vtkMPR3DDataViewer(), and ~vtkMPR3DDataViewer().
Definition at line 64 of file vtkMPR3DDataViewer.h.
Referenced by Configure(), GetVtkMPRBaseData(), Refresh(), SetPositionX(), SetPositionY(), SetPositionZ(), SetVtkMPRBaseData(), and vtkMPR3DDataViewer().