-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnLeftDClick() // virtual
-{
- CallLstInteractorStyleMaracas( 11 );
-}
-
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnMiddleButtonDown() // virtual
-{
- CallLstInteractorStyleMaracas(6);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnMiddleButtonUp() // virtual
-{
- CallLstInteractorStyleMaracas(7);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnMiddleDClick() // virtual
-{
- CallLstInteractorStyleMaracas( 13 );
-}
-
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnRightButtonDown() // virtual
-{
- CallLstInteractorStyleMaracas(1);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnRightButtonUp() // virtual
-{
- CallLstInteractorStyleMaracas(2);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnRightDClick() // virtual
-{
- CallLstInteractorStyleMaracas( 12 );
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnMouseWheel() // virtual
-{
- CallLstInteractorStyleMaracas( 14 );
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::AddInteractorStyleMaracas(InteractorStyleMaracas* interactorStyleMaracas)
-{
- interactorStyleMaracas->SetVtkInteractorStyleBaseView(this);
- _lstInteractorStyleMaracas.push_back(interactorStyleMaracas);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::RemoveInteractorStyleMaracas(InteractorStyleMaracas* interactorStyleMaracas)
-{
- interactorStyleMaracas->RemoveVtkInteractorStyleBaseView();
- int i, size = _lstInteractorStyleMaracas.size();
- std::vector< InteractorStyleMaracas* >::iterator iter = _lstInteractorStyleMaracas.begin();
- bool removed = false;
- for (i=0; !removed && i<size; i++)
- {
- if ( _lstInteractorStyleMaracas[i] == interactorStyleMaracas )
- {
- _lstInteractorStyleMaracas.erase(iter);
- removed = true;
- }
- iter++;
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::InsertInteractorStyleMaracas(int pos, InteractorStyleMaracas* interactorStyleMaracas)
-{
- interactorStyleMaracas->SetVtkInteractorStyleBaseView(this);
- _lstInteractorStyleMaracas.insert(_lstInteractorStyleMaracas.begin()+pos,interactorStyleMaracas);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::CallLstInteractorStyleMaracas(int type)
-{
-
- InteractorStyleMaracas *intStyMar;
-
- int i,size=_lstInteractorStyleMaracas.size();
-
-//EED Borrame
-//FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
-//fprintf(ff,"EED vtkInteractorStyleBaseView::CallLstInteractorStyleMaracas \n" );
-//for (i=0;i<size;i++)
-//{
-//fprintf(ff," %p\n" , _lstInteractorStyleMaracas[i] );
-//}
-//fclose(ff);
-
-
-
- for (i=0;i<size;i++)
- {
- intStyMar = _lstInteractorStyleMaracas[i];
- if (intStyMar->GetActive()==true){
- if (type ==1)
- { // OnRightButtonDown
- if (intStyMar->OnRightButtonDown()==false)
- {
- i=size;
- }
- }
- if (type ==2)
- { // OnRightButtonUp
- if (intStyMar->OnRightButtonUp()==false)
- {
- i=size;
- }
- }
- if (type==3)
- { // OnMouseMouve
- if (intStyMar->OnMouseMove()==false)
- {
- i=size;
- }
- }
- if (type==4)
- { // OnLeftButtonDown
- if (intStyMar->OnLeftButtonDown()==false)
- {
- i=size;
- }
- }
- if (type==5)
- { // OnLeftButtonUp
- if (intStyMar->OnLeftButtonUp()==false)
- {
- i=size;
- }
- }
- if (type==6)
- { // OnMiddleButtonDown
- if (intStyMar->OnMiddleButtonDown()==false)
- {
- i=size;
- }
- }
- if (type==7)
- { // OnMiddleButtonUp
- if (intStyMar->OnMiddleButtonUp()==false)
- {
- i=size;
- }
- }
- if (type==10)
- { // OnMiddleButtonUp
- if (intStyMar->OnChar()==false)
- {
- i=size;
- }
- }
- if (type==11)
- { // OnLeftDClick
- if (intStyMar->OnLeftDClick()==false)
- {
- i=size;
- }
- }
- if (type==12)
- { // OnRightDClick
- if (intStyMar->OnRightDClick()==false)
- {
- i=size;
- }
- }
- if (type==13)
- { // OnMiddleDClick
- if (intStyMar-> OnMiddleDClick()==false)
- {
- i=size;
- }
- }
- if (type==14)
- { // OnMouseWheel
- if (intStyMar->OnMouseWheel()==false)
- {
- i=size;
- }
- }
- } // if active
- } // for
-
- EvaluateToRefresh();
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::OnChar() // virtual
-{
-// char a=GetInteractor()->GetKeyCode();
- CallLstInteractorStyleMaracas(10);
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::TransformCoordinate(double &X, double &Y, double &Z)
-{
- vtkImageViewer2 *imageViewer = GetWxVtk2DBaseView()->_imageViewer2XYZ->GetVtkImageViewer2();
-
- imageViewer->GetRenderer()->SetDisplayPoint((int)X, (int)Y, (int)Z);
- imageViewer->GetRenderer()->DisplayToWorld();
- double fP[4];
- imageViewer->GetRenderer()->GetWorldPoint( fP );
-
- if ( fP[3] ){
- fP[0] /= fP[3];
- fP[1] /= fP[3];
- fP[2] /= fP[3];
- }
-
-// EEDx5
- GetWxVtk2DBaseView()->TransformCoordinate_spacing_ViewToModel(fP[0],fP[1],fP[2]);
-
- X=fP[0];
- Y=fP[1];
- Z=fP[2];
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::SetwxVtkBaseView(wxVtkBaseView *wxvtkbaseview)
-{
- _wxvtkbaseview = wxvtkbaseview;
-}
-//---------------------------------------------------------------------------
-wxVtk2DBaseView* vtkInteractorStyleBaseView::GetWxVtk2DBaseView()
-{
- return (wxVtk2DBaseView*)_wxvtkbaseview;
-}
-//---------------------------------------------------------------------------
-wxVtk3DBaseView* vtkInteractorStyleBaseView::GetWxVtk3DBaseView()
-{
- return (wxVtk3DBaseView*)_wxvtkbaseview;
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::SetActiveAllInteractors(bool ok)
-{
- InteractorStyleMaracas *intStyMar;
- int i,size=_lstInteractorStyleMaracas.size();
- for (i=0;i<size;i++)
- {
- intStyMar = _lstInteractorStyleMaracas[i];
- intStyMar->SetActive(ok);
- }
-
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::SetRefresh_waiting()
-{
- _refresh_waiting=true;
-}
-//---------------------------------------------------------------------------
-bool vtkInteractorStyleBaseView::GetRefresh_waiting()
-{
- return _refresh_waiting;
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::SetParent_refresh_waiting()
-{
- _parent_refresh_waiting=true;
-}
-//---------------------------------------------------------------------------
-bool vtkInteractorStyleBaseView::GetParent_refresh_waiting()
-{
- return _parent_refresh_waiting;
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::EvaluateToRefresh()
-{
-
- if ( _blockRefresh==false )
- {
- if ( (_refresh_waiting==true) && (_parent_refresh_waiting==false))
- {
- _refresh_waiting = false;
- this->_wxvtkbaseview->Refresh();
- }
- if (_parent_refresh_waiting==true)
- {
- _parent_refresh_waiting = false;
- wxCommandEvent newevent1(wxEVT_COMMAND_MENU_SELECTED,12121); // Refresh
- this->_wxvtkbaseview->GetWxVTKRenderWindowInteractor()->GetParent()->ProcessEvent(newevent1);
- }
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::BlockRefresh()
-{
- _blockRefresh=true;
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView::UnBlockRefresh()
-{
- _blockRefresh=false;
-}
-
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-//---------------------------------------------------------------------------
-
-
-
-//---------------------------------------------------------------------------
-vtkInteractorStyleBaseView2D::vtkInteractorStyleBaseView2D()
-{
- _manualinteractorwindowlevel= new manualInteractorWindowLevel();
- AddInteractorStyleMaracas( _manualinteractorwindowlevel );
-
- _vtkInteractorScrollZ = new vtkInteractorScrollZ();
- AddInteractorStyleMaracas(_vtkInteractorScrollZ);
-
-}
-//---------------------------------------------------------------------------
-vtkInteractorStyleBaseView2D::~vtkInteractorStyleBaseView2D()
-{
-}
-
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnRightButtonDown() // virtual
-{
- vtkInteractorStyleBaseView::OnRightButtonDown();
-
- if ((GetInteractor()->GetControlKey()==1) && (GetInteractor()->GetShiftKey()==0) ){
- this->vtkInteractorStyleImage::OnRightButtonDown();
- }
-
-}
-
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnRightButtonUp() // virtual
-{
- vtkInteractorStyleBaseView::OnRightButtonUp();
- this->vtkInteractorStyleImage::OnRightButtonUp();
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnMouseMove () // virtual
-{
- vtkInteractorStyleBaseView::OnMouseMove();
- this->vtkInteractorStyleImage::OnMouseMove();
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnLeftButtonDown() // virtual
-{
- vtkInteractorStyleBaseView::OnLeftButtonDown();
-
- if ((GetInteractor()->GetControlKey()==0) && (GetInteractor()->GetShiftKey()==1) )
- {
- this->vtkInteractorStyleImage::OnLeftButtonDown();
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnLeftButtonUp () // virtual
-{
- vtkInteractorStyleBaseView::OnLeftButtonUp();
-
- this->vtkInteractorStyleImage::OnLeftButtonUp();
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnMiddleButtonDown () // virtual
-{
- vtkInteractorStyleBaseView::OnMiddleButtonDown();
-
- if ((GetInteractor()->GetControlKey()==1) || (GetInteractor()->GetShiftKey()==1) )
- {
- this->vtkInteractorStyleImage::OnLeftButtonDown();
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView2D::OnMiddleButtonUp () // virtual
-{
- vtkInteractorStyleBaseView::OnMiddleButtonUp();
-
- if ((GetInteractor()->GetControlKey()==1) || (GetInteractor()->GetShiftKey()==1) )
- {
- this->vtkInteractorStyleImage::OnLeftButtonUp();
- }
-}
-
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-
-//---------------------------------------------------------------------------
-vtkInteractorStyleBaseView3D::vtkInteractorStyleBaseView3D(){
-}
-//---------------------------------------------------------------------------
-vtkInteractorStyleBaseView3D::~vtkInteractorStyleBaseView3D(){
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnRightButtonDown ()
-{
- vtkInteractorStyleBaseView::OnRightButtonDown();
-
-/*
- if (GetInteractor()->GetControlKey()==1 ){
- this->vtkInteractorStyleTrackballCamera::OnRightButtonDown();
- }
-*/
- this->FindPokedRenderer(this->Interactor->GetEventPosition()[0],
- this->Interactor->GetEventPosition()[1]);
-
- if (this->CurrentRenderer == NULL)
- {
- return;
- }
-
- if (this->Interactor->GetControlKey()) {
- this->StartDolly();
- }
-
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnRightButtonUp ()
-{
- vtkInteractorStyleBaseView::OnRightButtonUp();
-
-/*
- if (GetInteractor()->GetControlKey()==1 ){
- this->vtkInteractorStyleTrackballCamera::OnRightButtonUp();
- }
-*/
-
-
- switch (this->State)
- {
- case VTKIS_DOLLY:
- this->EndDolly();
- break;
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnMouseMove ()
-{
- vtkInteractorStyleBaseView::OnMouseMove();
-
-// this->vtkInteractorStyleTrackballCamera::OnMouseMove();
-
- // int x = this->Interactor->GetEventPosition()[0]; // JPRx
- // int y = this->Interactor->GetEventPosition()[1]; // JPRx
-
-
- // vtkRenderWindowInteractor *rwi = this->Interactor;
-
- // int lx = rwi->GetLastEventPosition()[0]; // JPRx
- // int ly = rwi->GetLastEventPosition()[1]; // JPRx
- // int dx = rwi->GetEventPosition()[0] ; // JPRx
- // int dy = rwi->GetEventPosition()[1] ; // JPRx
-
-
- switch (this->State)
- {
- case VTKIS_ROTATE:
- // this->FindPokedRenderer(x, y);
- this->Rotate();
- // this->InvokeEvent(vtkCommand::InteractionEvent, NULL);
- break;
-
- case VTKIS_PAN:
- // this->FindPokedRenderer(x, y);
- this->Pan();
- // this->InvokeEvent(vtkCommand::InteractionEvent, NULL);
- break;
-
- case VTKIS_DOLLY:
- // this->FindPokedRenderer(x, y);
- this->Dolly();
- // this->InvokeEvent(vtkCommand::InteractionEvent, NULL);
- break;
-
- case VTKIS_SPIN:
- // this->FindPokedRenderer(x, y);
- this->Spin();
- // this->InvokeEvent(vtkCommand::InteractionEvent, NULL);
- break;
- }
-
-
-
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnLeftButtonDown ()
-{
- vtkInteractorStyleBaseView::OnLeftButtonDown();
-/*
- if (GetInteractor()->GetControlKey()==1 ){
- this->vtkInteractorStyleTrackballCamera::OnMiddleButtonDown();
- } else {
- this->vtkInteractorStyleTrackballCamera::OnLeftButtonDown();
- }
-*/
-
-
- this->FindPokedRenderer(this->Interactor->GetEventPosition()[0],
- this->Interactor->GetEventPosition()[1]);
- if (this->CurrentRenderer == NULL)
- {
- return;
- }
-
- if (this->Interactor->GetControlKey()) {
- this->StartPan();
- } else {
- this->StartRotate();
- }
-
- /*
- if (this->Interactor->GetShiftKey())
- {
- if (this->Interactor->GetControlKey())
- {
- this->StartDolly();
- }
- else
- {
- this->StartPan();
- }
- }
- else
- {
- if (this->Interactor->GetControlKey())
- {
- this->StartSpin();
- }
- else
- {
- this->StartRotate();
- }
- }
-*/
-
-
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnLeftButtonUp ()
-{
- vtkInteractorStyleBaseView::OnLeftButtonUp();
-
-/*
- if (GetInteractor()->GetControlKey()==1 ){
- this->vtkInteractorStyleTrackballCamera::OnMiddleButtonUp();
- } else {
- this->vtkInteractorStyleTrackballCamera::OnLeftButtonUp();
- }
-*/
- switch (this->State)
- {
-
- case VTKIS_PAN:
- this->EndPan();
- break;
-
- case VTKIS_ROTATE:
- this->EndRotate();
- break;
- }
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnMiddleButtonDown ()
-{
- vtkInteractorStyleBaseView::OnMiddleButtonDown();
- // this->vtkInteractorStyleTrackballCamera::OnMiddleButtonDown();
-}
-//---------------------------------------------------------------------------
-void vtkInteractorStyleBaseView3D::OnMiddleButtonUp ()
-{
- vtkInteractorStyleBaseView::OnMiddleButtonUp();
-
- // this->vtkInteractorStyleTrackballCamera::OnMiddleButtonUp();
-}
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-vtkInfoTextImage::vtkInfoTextImage()
-{
- _vtkText_WindowLevel = NULL;
- _vtkText_ColorLevel = NULL;
- _vtkText_position = NULL;
- _vtkText_pixelIntensity = NULL;
- _marimagedata = NULL;
-}
-
-//-------------------------------------------------------------------
-
-vtkInfoTextImage::~vtkInfoTextImage()
-{
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::Configure()
-{
- _vtkText_WindowLevel = Create_Text_Label( 10 , 55 );
- _vtkText_ColorLevel = Create_Text_Label( 10 , 40 );
- _vtkText_position = Create_Text_Label( 10 , 25 );
- _vtkText_pixelIntensity = Create_Text_Label( 10 , 10 );
-}
-
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::SetMarImageData(marImageData *marimagedata)
-{
- _marimagedata=marimagedata;
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::SetWxVtk2DBaseView(wxVtk2DBaseView *wxvtk2Dbaseview)
-{
- _wxvtk2Dbaseview=wxvtk2Dbaseview;
-}
-
-//-------------------------------------------------------------------
-
-vtkTextActor *vtkInfoTextImage::Create_Text_Label(int px, int py )
-{
- // Text Window Level
- vtkTextActor *textActor = vtkTextActor::New();
- textActor->SetDisplayPosition(px, py);
- textActor->SetInput("0");
-
- // Set coordinates to match the old vtkScaledTextActor default value
- textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
- textActor->GetPosition2Coordinate()->SetValue( 0.2 , 0.2 );
-
- vtkTextProperty *tprop = textActor->GetTextProperty();
- tprop->SetFontSize(14);
- tprop->SetFontFamilyToArial();
- tprop->SetColor(1, 1, 0);
- _wxvtk2Dbaseview->GetRenderer()->AddActor2D(textActor);
-
- return textActor;
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::PutWindowLevel()
-{
- int value = (int)( _wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel()->GetWindow() );
- char zTzxt[20];
- char resultText[50];
-
- strcpy(resultText,"w:");
-
-
- //ltoa ( (long)value , zTzxt , 10 );
- sprintf(zTzxt,"%d",value);
-
- strcat(resultText,zTzxt);
- _vtkText_WindowLevel -> SetInput(resultText);
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::PutColorLevel()
-{
- int value = (int)(_wxvtk2Dbaseview->_imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel()->GetLevel());
- char zTzxt[20];
- char resultText[50];
-
- strcpy(resultText,"c:");
-
-// itoa (value,zTzxt,10);
- sprintf(zTzxt,"%d",value);
-
- strcat(resultText,zTzxt);
- _vtkText_ColorLevel -> SetInput(resultText);
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::PutPosition(int xx,int yy, int zz)
-{
-
-//EEDx7
-// double spa[3];
-// _imagedata->GetSpacing(spa);
-// xx=xx*(1/spa[0]);
-// yy=yy*(1/spa[1]);
-
-
- char zTzxt[50];
- char resultText[50];
- strcpy(resultText,"p: ");
-// itoa ((int)xx,zTzxt,10);
- sprintf(zTzxt,"%d",xx);
-
- strcat(resultText,zTzxt);
- strcat(resultText," , ");
-
-// itoa ((int)yy,zTzxt,10);
- sprintf(zTzxt,"%d",yy);
-
- strcat(resultText,zTzxt);
- strcat(resultText," , ");
-
-// itoa ((int)zz,zTzxt,10);
- sprintf(zTzxt,"%d",zz);
-
- strcat(resultText,zTzxt);
-
-
-
- int nX = _marimagedata->GetXOriginal(xx);
- int nY = _marimagedata->GetYOriginal(yy);
- int nZ = _marimagedata->GetZOriginal(zz);
-
- strcat(resultText," (");
-// ltoa ((int)nX,zTzxt,10);
- sprintf(zTzxt,"%d",nX);
-
- strcat(resultText,zTzxt);
- strcat(resultText,",");
-
-// ltoa ((int)nY,zTzxt,10);
- sprintf(zTzxt,"%d",nY);
-
- strcat(resultText,zTzxt);
- strcat(resultText,",");
-
-// ltoa ((int)nZ,zTzxt,10);
- sprintf(zTzxt,"%d",nZ);
-
- strcat(resultText,zTzxt);
- strcat(resultText,")");
-
-
-
-
- _vtkText_position -> SetInput(resultText);
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImage::PutPixelIntensity(int xx, int yy, int zz)
-{
-
-//EEDx2
- bool ok=true;
-
- int dim[3];
- double spa[3];
- vtkImageData *imagedata = _marimagedata->GetImageData();
- imagedata->GetDimensions(dim);
- imagedata->GetSpacing(spa);
-
-// EEDx7
-// xx=xx*(1/spa[0]);
-// yy=yy*(1/spa[1]);
-// zz=xx*spa[2];
-
- if ( (xx<0) || (xx>=dim[0]) || (yy<0) || (yy>=dim[1]) || (zz<0) || (zz>=dim[2]) )
- {
- ok=false;
- }
-
-
- char zTzxt[20];
- char resultText[50];
- strcpy(resultText,"GL: ");
- if (ok==true)
- {
- if (imagedata->GetScalarType()==VTK_BIT)
- {
- char *pOrg=(char*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- if(*pOrg==0)
- {
- sprintf(zTzxt,"%d",0);
- }
- else
- {
- sprintf(zTzxt,"%d",1);
- }
- }
-
- if (imagedata->GetScalarType()==VTK_CHAR)
- {
- char *pOrg=(char*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- int tmp=*pOrg;
- sprintf(zTzxt,"%d",tmp);
- }
-
- if (imagedata->GetScalarType()==VTK_SIGNED_CHAR)
- {
- signed char *pOrg=(signed char*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- int tmp=*pOrg;
- sprintf(zTzxt,"%d",tmp);
- }
-
- if (imagedata->GetScalarType()==VTK_UNSIGNED_CHAR)
- {
- unsigned char *pOrg=(unsigned char*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- int tmp=*pOrg;
- sprintf(zTzxt,"%d",tmp);
- }
-
- if (imagedata->GetScalarType()==VTK_SHORT)
- {
- short *pOrg=(short*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- int tmp=*pOrg;
- sprintf(zTzxt,"%d",tmp);
- }
-
- if (imagedata->GetScalarType()==VTK_UNSIGNED_SHORT)
- {
- unsigned short *pOrg=(unsigned short*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- int tmp=*pOrg;
- sprintf(zTzxt,"%d",tmp);
- }
-
- if (imagedata->GetScalarType()==VTK_INT)
- {
- int *pOrg=(int*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- sprintf(zTzxt,"%d",*pOrg);
- }
-
- if (imagedata->GetScalarType()==VTK_UNSIGNED_INT)
- {
- unsigned int *pOrg=(unsigned int*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- int tmp=*pOrg;
- sprintf(zTzxt,"%d",tmp);
- }
-
- if (imagedata->GetScalarType()==VTK_LONG)
- {
- long *pOrg=(long*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- double tmp=*pOrg;
- sprintf(zTzxt,"%3.2f",tmp);
- }
-
- if (imagedata->GetScalarType()==VTK_UNSIGNED_LONG)
- {
- unsigned long *pOrg=(unsigned long*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- double tmp=*pOrg;
- sprintf(zTzxt,"%3.2f",tmp);
- }
-
- if (imagedata->GetScalarType()==VTK_FLOAT)
- {
- long *pOrg=(long*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- double tmp=*pOrg;
- sprintf(zTzxt,"%3.2f",tmp);
- }
-
- if (imagedata->GetScalarType()==VTK_DOUBLE)
- {
- double *pOrg=(double*)imagedata->GetScalarPointer ((int)xx,(int)yy,(int)zz);
- // itoa (*pOrg,zTzxt,10);
- double tmp=*pOrg;
- sprintf(zTzxt,"%3.2f",tmp);
- }
- }
- else
- {
- strcpy(zTzxt,"---");
- }
- strcat(resultText,zTzxt);
- _vtkText_pixelIntensity -> SetInput(resultText);
-}
-
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-vtkInfoTextImageInteractor::vtkInfoTextImageInteractor()
-{
-}
-
-//-------------------------------------------------------------------
-vtkInfoTextImageInteractor::~vtkInfoTextImageInteractor()
-{
-}
-
-//-------------------------------------------------------------------
-
-void vtkInfoTextImageInteractor::SetModelVtkInfoTextImage(vtkInfoTextImage *vtkinfotextimage)
-{
- _vtkinfotextimage = vtkinfotextimage;
-}
-
-//-------------------------------------------------------------------
-bool vtkInfoTextImageInteractor::OnMouseMove()
-{
- int X,Y;
- wxVTKRenderWindowInteractor *wxVTKiren;
- wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
- wxVTKiren->GetEventPosition(X,Y);
-
- int z = (int)(_vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetVtkBaseData()->GetZ());
- double xx=X,yy=Y,zz=z;
- _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->TransfromeCoordScreenToWorld(xx,yy,zz);
-
- GetVtkInfoTextImage()->PutWindowLevel();
- GetVtkInfoTextImage()->PutColorLevel();
- GetVtkInfoTextImage()->PutPosition( (int)xx , (int)yy , (int)zz );
- GetVtkInfoTextImage()->PutPixelIntensity( (int)xx , (int)yy , (int)zz );
-
- this->_vtkInteractorStyleBaseView->SetRefresh_waiting();
- return true;
-}
-
-//-------------------------------------------------------------------
-vtkInfoTextImage *vtkInfoTextImageInteractor::GetVtkInfoTextImage()
-{
- return _vtkinfotextimage;
-}
-
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-
-wxVtk2DBaseView::wxVtk2DBaseView(wxWindow *parent)
-:wxVtkBaseView(parent)
-{
- _imageViewer2XYZ = NULL;
- _vtkIinfoTextImage = NULL;
-}
-
-//-------------------------------------------------------------------
-wxVtk2DBaseView::~wxVtk2DBaseView()
-{
- if (_imageViewer2XYZ!=NULL) {
- delete _imageViewer2XYZ;
- }
-
- if (_imageViewer2XYZ!=NULL) {
- delete _vtkIinfoTextImage;
- }
-
-}
-
-//-------------------------------------------------------------------
-void wxVtk2DBaseView::TransformCoordinate_spacing_ViewToModel(double &X,double &Y, double &Z) // virtual
-{
-//EEDx5
- double spc[3];
-// GetVtkBaseData()->GetImageData()->GetSpacing(spc);
- this->_imageViewer2XYZ->GetVtkImageViewer2()->GetInput()->GetSpacing(spc);
-
- X = X / spc[0];
- Y = Y / spc[1];
- Z = Z / spc[2];
-
-}
-
-//-------------------------------------------------------------------
-void wxVtk2DBaseView::TransformCoordinate_spacing_ModelToView(double &X,double &Y, double &Z) // virtual
-{
-//EEDx5
- double spc[3];
-// GetVtkBaseData()->GetImageData()->GetSpacing(spc);
- this->_imageViewer2XYZ->GetVtkImageViewer2()->GetInput()->GetSpacing(spc);
-
- X=X*spc[0];
- Y=Y*spc[1];
- Z=Z*spc[2];
-
-}
-
-//-------------------------------------------------------------------
-void wxVtk2DBaseView::ResetView()
-{
- double spx,spy,spz;
- int x1,x2,y1,y2,z1,z2;
- wxVtkBaseView::Configure();
-
- wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
- vtkImageData *imageData = GetVtkBaseData()->GetImageData();
- imageData->UpdateInformation();
- imageData->SetUpdateExtent( imageData->GetWholeExtent());
- imageData->Update();
-
- _imageViewer2XYZ->GetVtkImageViewer2()->SetInput(imageData );
- imageData->GetSpacing (spx,spy,spz);
- imageData->GetExtent (x1,x2,y1,y2,z1,z2);
- _imageViewer2XYZ -> SetExtentDimension(x1,x2,y1,y2,z1,z2);
- _imageViewer2XYZ -> GetVtkImageViewer2()->SetupInteractor ( iren );
-
- _imageViewer2XYZ->GetVtkImageViewer2()->Render();
-
- SetInteractorStyleImage( vtkInteractorStyleBaseView2D::New() );
-
-}
-
-
-//-------------------------------------------------------------------
-void wxVtk2DBaseView::Configure(bool okimage)
-{
- double spx,spy,spz;
- int x1,x2,y1,y2,z1,z2;
- wxVtkBaseView::Configure();
-
-// EED 17 Oct 2007
- if (_imageViewer2XYZ==NULL)
- {
- _imageViewer2XYZ = new vtkImageViewer2_XYZ();
- wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
- _imageViewer2XYZ -> GetVtkImageViewer2()->SetupInteractor ( iren );
- SetInteractorStyleImage( vtkInteractorStyleBaseView2D::New() );
- }
-
-
- vtkImageData *imageData = GetVtkBaseData()->GetMarImageData()->GetImageData();
- if (imageData!=NULL){
- imageData->UpdateInformation();
- imageData->SetUpdateExtent( imageData->GetWholeExtent());
- imageData->Update();
- if (okimage==true){
- imageData->GetSpacing (spx,spy,spz);
- imageData->GetExtent (x1,x2,y1,y2,z1,z2);
-
-
- _imageViewer2XYZ->GetVtkImageViewer2()->SetInput(imageData );
- _imageViewer2XYZ->SetExtentDimension(x1,x2,y1,y2,z1,z2);
- double range[2];
- imageData->GetScalarRange(range);
- if (range[1]<20000){
- _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow( (range[1]-range[0])/2 );
- _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel( (range[1]+range[0])/4 );
- } else {
- _imageViewer2XYZ->GetVtkImageViewer2()->SetColorWindow( 1000 );
- _imageViewer2XYZ->GetVtkImageViewer2()->SetColorLevel( 500 );
- }
-// EED 31 Janvier 2007
-//vtkImageActor *vtkimageactor = _imageViewer2XYZ->GetVtkImageViewer2()->GetImageActor ();
-//vtkimageactor->InterpolateOff ();
-//vtkLookupTable * _collookup = vtkLookupTable::New( );
-//_collookup->SetNumberOfColors( 256 );
-//_collookup->SetTableRange( 0 , 255 );
-//_collookup->Build( );
-//_collookup->SetTableValue( 0 , 1 , 0 , 0 , 1 );
-//_collookup->SetTableValue(128 , 0 , 0 , 1 , 1 );
-//_collookup->SetTableValue(255 , 0 , 1 , 0 , 1 );
-//_imageViewer2XYZ->GetVtkImageViewer2()->GetWindowLevel ()->SetLookupTable(_collookup );
-
-
-// EED 17 Oct 2007
-// SetInteractorStyleImage( vtkInteractorStyleBaseView2D::New() );
-
-
- vtkImageViewer2 *IV2=_imageViewer2XYZ->GetVtkImageViewer2();
- vtkCamera *camera = IV2->GetRenderer()->GetActiveCamera();
-
-//EED 17Avril2009
-/*
- camera->SetViewUp ( spx*0 , -spy*1 , spz*0 );
- camera->SetPosition ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , -spz*10000 );
- camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0 );
-*/
- camera->SetViewUp ( spx*0 , spy*1 , spz*0 );
- camera->SetPosition ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*10000 );
- camera->SetFocalPoint ( spx*(x1+x2)/2 , spy*(y1+y2)/2 , spz*0 );
-
-
- camera->SetClippingRange( 0.01 , 1000000 );
- camera->ComputeViewPlaneNormal();
- camera->SetParallelScale( spx*(x2-x1)/3.0 );
-
- // text information over the graphic window
- _vtkIinfoTextImage = new vtkInfoTextImage();
- _vtkIinfoTextImageInteractor = new vtkInfoTextImageInteractor();
- _vtkIinfoTextImage->SetWxVtk2DBaseView(this);
- _vtkIinfoTextImage->SetMarImageData( GetVtkBaseData()->GetMarImageData() );
- _vtkIinfoTextImageInteractor->SetModelVtkInfoTextImage(_vtkIinfoTextImage);
- _vtkIinfoTextImage->Configure();
- this->GetInteractorStyleBaseView()->AddInteractorStyleMaracas(_vtkIinfoTextImageInteractor);
- } // okimage
- } // imageData
-
-}
-
-//-------------------------------------------------------------------
-
-int wxVtk2DBaseView::GetActualSlice() // virtual
-{
- return (int)(_vtkbasedata->GetZ());
-}
-
-//-------------------------------------------------------------------
-void wxVtk2DBaseView::SetActualSlice(int slice) // Virtual
-{
- _vtkbasedata->SetZ(slice);
-}
-
-//-------------------------------------------------------------------
-
-vtkBaseData *wxVtk2DBaseView::GetVtkBaseData()
-{
- return _vtkbasedata;
-}
-
-//-------------------------------------------------------------------
-
-void wxVtk2DBaseView::SetVtkBaseData(vtkBaseData *vtkbasedata)
-{
- _vtkbasedata=vtkbasedata;
-}
-
-//-------------------------------------------------------------------
-
-void wxVtk2DBaseView::Refresh()
-{
- int z = (int)(GetVtkBaseData()->GetZ());
- _imageViewer2XYZ->SetZSlice( z );
-
- wxVtkBaseView::Refresh();
-}
-
-//-------------------------------------------------------------------
-
-void wxVtk2DBaseView::SetInteractorStyleImage(vtkInteractorStyleBaseView *interactorstylebaseview)
-{
- SetInteractorStyleBaseView(interactorstylebaseview);
-
- wxVTKRenderWindowInteractor *iren = GetWxVTKRenderWindowInteractor();
- interactorstylebaseview->SetInteractor ( iren );
- iren->SetInteractorStyle(interactorstylebaseview);
- interactorstylebaseview->SetwxVtkBaseView(this);
-
- vtkMaracasImageViewer2Callback *cbk = vtkMaracasImageViewer2Callback::New();
- cbk->IV = _imageViewer2XYZ->GetVtkImageViewer2();
- interactorstylebaseview->AddObserver( vtkCommand::WindowLevelEvent, cbk );
- interactorstylebaseview->AddObserver( vtkCommand::StartWindowLevelEvent, cbk );
- interactorstylebaseview->AddObserver( vtkCommand::ResetWindowLevelEvent, cbk );
- cbk->Delete();
-}
-
-//---------------------------------------------------------------------------
-vtkRenderer* wxVtk2DBaseView::GetRenderer() // virtual
-{
- return _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer();
-}
-//---------------------------------------------------------------------------
-vtkRenderWindow* wxVtk2DBaseView::GetRenWin() // virtual
-{
- return _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderWindow();
-}
-
-//-------------------------------------------------------------------
-
-void wxVtk2DBaseView::GetSpacing(double spc[3]) // virtual
-{
- vtkImageData *imageData = GetVtkBaseData()->GetImageData();
- imageData->GetSpacing(spc);
-}
-
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-//-------------------------------------------------------------------
-
-
-
-
-wxVtk3DBaseView::wxVtk3DBaseView(wxWindow *parent)
-:wxVtkBaseView( parent )
-{
- _configure = false;
- _aRenderer = NULL;
- _renWin = NULL;
- _aCamera = NULL;
-}
-//-------------------------------------------------------------------
-wxVtk3DBaseView::~wxVtk3DBaseView()
-{
- if (_aCamera!=NULL) { _aCamera -> Delete(); }
- if (_aRenderer!=NULL) { _aRenderer -> Delete(); }
- if (_renWin!=NULL) { _renWin -> Delete(); }
-}
-//-------------------------------------------------------------------
-vtkCamera* wxVtk3DBaseView::GetCamera()
-{
- return _aCamera;
-}
-//-------------------------------------------------------------------
-vtkRenderer* wxVtk3DBaseView::GetRenderer() // virtual
-{
- return _aRenderer;
-}
-//-------------------------------------------------------------------
-vtkRenderWindow* wxVtk3DBaseView::GetRenWin() // virtual
-{
- return _renWin;
-}
-//-------------------------------------------------------------------
-void wxVtk3DBaseView::Refresh()
-{
-// _renWin->Render();
- vtkRenderWindowInteractor *vri = GetWxVTKRenderWindowInteractor();
- vri->vtkRenderWindowInteractor::Render();
-}
-//-------------------------------------------------------------------
-void wxVtk3DBaseView::Configure()
-{
- if (_configure==false)
- {
- _configure=true;
- wxVtkBaseView::Configure();
- _aRenderer = vtkRenderer::New();
- _renWin = vtkRenderWindow::New();
- _renWin->AddRenderer(_aRenderer);
-
-
-// _renWin->SetStereoCapableWindow(1);
-// // //renderwindow->SetStereoTypeToCrystalEyes();
-// _renWin->SetStereoTypeToRedBlue();
-// _renWin->SetStereoRender(1);
-
- GetWxVTKRenderWindowInteractor()->SetRenderWindow(_renWin);
-
-
-// EED Borrame
-// vtkInteractorStyle3DMaracas *interactorStyle3DMaracas = vtkInteractorStyle3DMaracas::New();
- vtkInteractorStyleBaseView3D *interactorStyleBaseView3D = vtkInteractorStyleBaseView3D::New();
-
- SetInteractorStyleBaseView( interactorStyleBaseView3D );
- interactorStyleBaseView3D->SetInteractor ( GetWxVTKRenderWindowInteractor() );
- GetWxVTKRenderWindowInteractor()->SetInteractorStyle( interactorStyleBaseView3D );
- interactorStyleBaseView3D->SetwxVtkBaseView(this);
-
-
-/* EED Borrame
- vtkInteractorStyleSwitch *iss = dynamic_cast<vtkInteractorStyleSwitch*>(_iren->GetInteractorStyle());
- iss->SetCurrentStyleToTrackballCamera();
-*/
-
- // It is convenient to create an initial view of the data. The
- // FocalPoint and Position form a vector direction. Later on
- // (ResetCamera() method) this vector is used to position the camera
- // to look at the data in this direction.
- _aCamera = vtkCamera::New();
-//EED 17Avril2009
-/*
- _aCamera->SetViewUp (0, 0, -1);
- _aCamera->SetPosition (0, 1, 0);
- */
- _aCamera->SetViewUp (0, 1, 0);
- _aCamera->SetPosition (0, 0, 1);
-
- _aCamera->SetFocalPoint (0, 0, 0);
- _aCamera->ComputeViewPlaneNormal();
- }
-}
-//-------------------------------------------------------------------
-//EED 27 sep 2006
-void wxVtk3DBaseView::GetSpacing(double spc[3])
-{
- spc[0]=1;
- spc[1]=1;
- spc[2]=1;
-}