// Actors are added to the renderer.
vtkActor* _outlineActor = _vtkmpr3Ddataviewer->GetOutlineActor();
+
+
_wxvtk3Dbaseview->GetRenderer()->AddActor( _outlineActor );
+
// _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(0) ); // _saggital
// _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(1) ); // _axial
// _wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(2) ); // _coronal
//-------------------------------------------------------------------
void wxVtkMPR3DView::SetFreePlanesOrtho()
{
+
+
+
_planeWidgetX->SetPlaneOrientationToXAxes();
_planeWidgetY->SetPlaneOrientationToYAxes();
_planeWidgetZ->SetPlaneOrientationToZAxes();
{
if(_planeWidgetX)
{
- if ((plane==1) && (ok==true)) _planeWidgetX->EnabledOn();
- if ((plane==2) && (ok==true)) _planeWidgetY->EnabledOn();
- if ((plane==3) && (ok==true)) _planeWidgetZ->EnabledOn();
+ if (ok==true)
+ {
+//EED 21/07/2013
+// 1. Make backup of actors
+// 2. Putting out all the actors
+// 3. Add vtkImagageActor in first place
+// 4. Putting again the originals actors
+// 5. Refresh
+
+ // step 1, step 2
+ vtkActorCollection *tmpCollection = vtkActorCollection::New();
+ vtkActorCollection *collectionActors = _wxvtk3Dbaseview->GetRenderer()->GetActors();
+ int i,size=collectionActors->GetNumberOfItems();
+ for (i=0; i<size; i++)
+ {
+ tmpCollection->AddItem ( (vtkActor*)collectionActors->GetItemAsObject(0) );
+ _wxvtk3Dbaseview->GetRenderer()->RemoveActor( (vtkProp*)tmpCollection->GetItemAsObject(i) );
+ } // for
+
+ // step 3
+ if ((plane==1) && (ok==true)) _planeWidgetX->EnabledOn();
+ if ((plane==2) && (ok==true)) _planeWidgetY->EnabledOn();
+ if ((plane==3) && (ok==true)) _planeWidgetZ->EnabledOn();
+
+ // step 4
+ for (i=0; i<size; i++)
+ {
+ _wxvtk3Dbaseview->GetRenderer()->AddActor( (vtkProp*)tmpCollection->GetItemAsObject(i) );
+ } // for
+ tmpCollection->Delete();
+
+ // step 5 Refresh
+ _wxvtk3Dbaseview->GetRenderer()->GetRenderWindow()->Render();
+ } // if ok
if ((plane==1) && (ok==false)) _planeWidgetX->EnabledOff();
if ((plane==2) && (ok==false)) _planeWidgetY->EnabledOff();
if ((plane==3) && (ok==false)) _planeWidgetZ->EnabledOff();
- }
+ } // if _planeWidgetX
}
//-------------------------------------------------------------------
//-------------------------------------------------------------------
void wxVtkMPR3DView::Refresh() // virtual
{
- _vtkmpr3Ddataviewer -> Refresh();
+ _vtkmpr3Ddataviewer->Refresh();
if (_wxvtkmpr3DviewCntrlPanel!=NULL)
{
_wxvtkmpr3DviewCntrlPanel->Refresh();
if ((normal[0]==1)&&(normal[1]==0)&&(normal[2]==0))
{
_planeWidgetX->SetSlicePosition( x*spc[0] );
+//EED 2016/02/19
+// _planeWidgetX->GetReslice()->SetInterpolate( _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetInterpolate() );
+ _planeWidgetX->GetTexture()->SetInterpolate( _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetInterpolate() );
}
// FreePlaneY
_planeWidgetY->GetNormal(normal);
if ((normal[0]==0)&&(normal[1]==1)&&(normal[2]==0))
{
_planeWidgetY->SetSlicePosition( y*spc[1] );
+//EED 2016/02/19
+ _planeWidgetY->GetReslice()->SetInterpolate( _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetInterpolate() );
+ _planeWidgetY->GetTexture()->SetInterpolate( _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetInterpolate() );
}
// FreePlaneZ
_planeWidgetZ->GetNormal(normal);
if ((normal[0]==0)&&(normal[1]==0)&&(normal[2]==1))
{
_planeWidgetZ->SetSlicePosition( z*spc[2] );
+//EED 2016/02/19
+ _planeWidgetZ->GetReslice()->SetInterpolate( _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetInterpolate() );
+ _planeWidgetZ->GetTexture()->SetInterpolate( _vtkmpr3Ddataviewer->GetVtkMPRBaseData()->GetInterpolate() );
}
x=x*spc[0];
//-------------------------------------------------------------------
wxVtk3DBaseView* wxVtkMPR3DView::GetWxvtk3Dbaseview() throw (char*)
{
- if(_wxvtk3Dbaseview==NULL){
+ if(_wxvtk3Dbaseview==NULL)
+ {
throw "wxVtk3DBaseView* wxVtkMPR3DView::GetWxvtk3Dbaseview() _wxvtk3Dbaseview=NULL";
}
return _wxvtk3Dbaseview;
if (visible==false){
_wxvtk3Dbaseview->GetRenderer()->RemoveActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) );
} else {
+//EED 21/07/2013
+// 1. Make backup of actors
+// 2. Putting out all the actors
+// 3. Add vtkImagageActor in first place
+// 4. Putting again the originals actors
+// 5. Refresh
+
+//EED 4 nov 2015 (For Estelle)
+// This works in ViewerNV with nTymeView=6
+// Because the others modules (5) generate also more actors with an OutLineFilter -> Actor
+//showOutlineActor(false);
+
+ // step 1, step 2
+ vtkActorCollection *tmpCollection = vtkActorCollection::New();
+ vtkActorCollection *collectionActors = _wxvtk3Dbaseview->GetRenderer()->GetActors();
+ int i,size=collectionActors->GetNumberOfItems();
+ for (i=0; i<size; i++)
+ {
+ printf(" wxVtkMPR3DView::VisibleImageActor %d\n" , i);
+ tmpCollection->AddItem ( (vtkActor*)collectionActors->GetItemAsObject(0) );
+ _wxvtk3Dbaseview->GetRenderer()->RemoveActor( (vtkProp*)tmpCollection->GetItemAsObject(i) );
+ } // for
+
+ // step 3
_wxvtk3Dbaseview->GetRenderer()->AddActor( _vtkmpr3Ddataviewer->GetImageActor(idPosition) );
+
+ // step 4
+ for (i=0; i<size; i++)
+ {
+ _wxvtk3Dbaseview->GetRenderer()->AddActor( (vtkProp*)tmpCollection->GetItemAsObject(i) );
+ } // for
+ tmpCollection->Delete();
+
+ // step 5 Refresh
+ _wxvtk3Dbaseview->GetRenderer()->GetRenderWindow()->Render();
+
}
_vtkmpr3Ddataviewer->SetVisiblePosition(idPosition,visible);
}
//CPR: Method added 30 Nov 2009
void wxVtkMPR3DView::showOutlineActor(bool value)
{
+
vtkActor* _outlineActor = _vtkmpr3Ddataviewer->GetOutlineActor();
if(value == true)
{
{
_wxvtk3Dbaseview->GetRenderer()->RemoveActor( _outlineActor );
}
+
}
//-------------------------------------------------------------------
vtkPlane *slicePlane = vtkPlane::New();
this->_planeWidget->GetPlane( slicePlane );
-
vtkCutter* sliceCutter = vtkCutter::New();
vtkImageData *vtkimagedata = this->GetVtkMPR3DDataViewer()->GetVtkMPRBaseData()->GetImageData();
sliceCutter->SetInput( vtkimagedata );
//EED
// vtkLookupTable *lut = BuildHueWeightBaseMap();
-
vtkPolyDataMapper *slice = vtkPolyDataMapper::New();
slice->SetInput( sliceCutter->GetOutput() );
double range[2];
contourMapper->SetScalarRange( range );
// contourMapper->SetLookupTable( lut );
-
vtkActor *contourActor = vtkActor::New();
contourActor->SetMapper( contourMapper );
-
-
// The usual rendering stuff.
vtkCamera *camera = vtkCamera::New();
camera->SetPosition(1,1,1);
iren->Start();
}
+//-------------------------------------------------------------------
+void wxVtkMPR3DView::SetBackGroundType(int type)
+{
+ if (_wxvtk3Dbaseview!=NULL)
+ {
+ if (type==0)
+ {
+ _wxvtk3Dbaseview->GetRenderer()->GradientBackgroundOff();
+ _wxvtk3Dbaseview->GetRenderer()->SetBackground( 0 , 0 , 0 );
+ } // if type
+ if (type==1)
+ {
+ _wxvtk3Dbaseview->GetRenderer()->GradientBackgroundOn();
+ _wxvtk3Dbaseview->GetRenderer()->SetBackground( 0.33 , 0.33 , 0.33 );
+ _wxvtk3Dbaseview->GetRenderer()->SetBackground2( 0.66 , 0.66 , 0.66 );
+ } // if type
+ _wxvtk3Dbaseview->Refresh();
+ }// if _wxvtk3Dbaseview
+
+}