Program: bbtk
Module: $RCSfile: bbwxvtkViewer3D.cxx,v $
Language: C++
- Date: $Date: 2008/05/09 10:39:47 $
- Version: $Revision: 1.5 $
+ Date: $Date: 2008/11/13 14:46:48 $
+ Version: $Revision: 1.9 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
BBTK_ADD_BLACK_BOX_TO_PACKAGE(wxvtk,Viewer3D);
//-------------------------------------------------------------------------
- Viewer3DWidget::Viewer3DWidget(Viewer3D* box, wxWindow *parent)
+ Viewer3DWidget::Viewer3DWidget(Viewer3D* box, wxWindow *parent, bool stereo)
:
wxPanel( parent, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL),
mBox(box)
renderer = vtkRenderer::New();
renderwindow = vtkRenderWindow::New();
+
renderwindow->AddRenderer(renderer);
+
+ if (stereo==true){
+ renderwindow->SetStereoCapableWindow(1);
+ //renderwindow->SetStereoTypeToCrystalEyes();
+ renderwindow->SetStereoTypeToRedBlue();
+ renderwindow->SetStereoRender(1);
+ }
+
wxvtkrenderwindowinteractor->SetRenderWindow(renderwindow);
interactorstyle = vtkInteractorStyleTrackballCamera ::New();
//-------------------------------------------------------------------------
void Viewer3DWidget::Update()
{
+ wxvtkrenderwindowinteractor->Update();
wxvtkrenderwindowinteractor->Render();
+ renderer->ResetCameraClippingRange();
}
//-------------------------------------------------------------------------
}
//-------------------------------------------------------------------------
+void Viewer3DWidget::Refresh(bool eraseBackground , const wxRect* rect )
+{
+// wxPanel::Refresh(false,rect);
+}
+
+
+
//--------------------------------------------------------------------------
//-------------------------------------------------------------------------
//--------------------------------------------------------------------------
bbSetInputObs3(NULL);
bbSetInputObs4(NULL);
bbSetInputObs5(NULL);
+ bbSetInputStereo(false);
bbSetOutputRenderer( NULL );
bbSetOutputInteractor( NULL );
}
{
bbtkDebugMessageInc("Core",9,"Viewer3D::CreateWidget()"<<std::endl);
- Viewer3DWidget* w = new Viewer3DWidget(this,bbGetWxParent());
+ Viewer3DWidget* w = new Viewer3DWidget(this,bbGetWxParent(),bbGetInputStereo());
w->Update();
- vtkRenderer *renderer = w->GetRenderer();
- if (renderer!=NULL)
- {
- if (bbGetInputIn1()!=NULL) {renderer->AddActor( bbGetInputIn1() ); }
- if (bbGetInputIn2()!=NULL) {renderer->AddActor( bbGetInputIn2() ); }
- if (bbGetInputIn3()!=NULL) {renderer->AddActor( bbGetInputIn3() ); }
- if (bbGetInputIn4()!=NULL) {renderer->AddActor( bbGetInputIn4() ); }
- if (bbGetInputIn5()!=NULL) {renderer->AddActor( bbGetInputIn5() ); }
- renderer->ResetCamera();
- bbSetOutputRenderer( renderer );
- }
vtkRenderWindowInteractor *interactor = w->GetInteractor();
if (interactor!=NULL)
{
bbSetOutputInteractor( w->GetInteractor() );
}
+
+ vtkRenderer *renderer = w->GetRenderer();
+ if (renderer!=NULL)
+ {
+ if (bbGetInputIn1()!=NULL) {renderer->AddActor( bbGetInputIn1() ); }
+ if (bbGetInputIn2()!=NULL) {renderer->AddActor( bbGetInputIn2() ); }
+ if (bbGetInputIn3()!=NULL) {renderer->AddActor( bbGetInputIn3() ); }
+ if (bbGetInputIn4()!=NULL) {renderer->AddActor( bbGetInputIn4() ); }
+ if (bbGetInputIn5()!=NULL) {renderer->AddActor( bbGetInputIn5() ); }
+ renderer->ResetCamera();
+ bbSetOutputRenderer( renderer );
+ }
+
bbSetOutputWidget(w);
bbtkDebugDecTab("Core",9);
}
+ // This callback is necessary to get actual processing of the view
+ // when window is shown
+ void Viewer3D::OnShowWidget()
+ {
+ ((Viewer3DWidget*)bbGetOutputWidget())->Update();
+ }
+
}//namespace bbwxvtk