X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FwxVtkMPR2DView.cxx;h=7632ba2a798995be18786ddca6b3c5222e1e5188;hb=d8edef346f2d6c64f6ed3bea7225aeb3a8b3970c;hp=52eb4cf4f6b9a263b38976dbebc38d02e3860be1;hpb=4df00b156385a2dd881c35fd7561ef9eb0885ee0;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx index 52eb4cf..7632ba2 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/wxVtkMPR2DView.cxx @@ -19,6 +19,7 @@ wxVtkMPR2DView::wxVtkMPR2DView( wxWindow *parent, int direction) _lineBActor = NULL; _lineBMapper = NULL; _pdB = NULL; + _interactorstylemprview = NULL; } //------------------------------------------------------------------- @@ -42,8 +43,13 @@ vtkMPRBaseData *wxVtkMPR2DView::GetVtkmprbasedata() void wxVtkMPR2DView::Configure(){ wxVtk2DBaseView::Configure(); - _interactorstylemprview = new vtkInteractorStyleMPRView(); - ((vtkInteractorStyleBaseView*)GetInteractorStyleBaseView())->AddInteractorStyleMaracas( _interactorstylemprview ); + if(_interactorstylemprview==NULL) + { + _interactorstylemprview = new vtkInteractorStyleMPRView(); + ((vtkInteractorStyleBaseView*)GetInteractorStyleBaseView())->AddInteractorStyleMaracas( _interactorstylemprview ); + } + + int x1,x2,y1,y2,z1,z2; GetVtkmprbasedata() -> GetDimensionExtention(&x1,&x2,&y1,&y2,&z1,&z2); @@ -63,52 +69,60 @@ void wxVtkMPR2DView::Configure(){ _visibleAxis = true; // Axe A - _ptsA = vtkPoints::New(); - _ptsA->SetNumberOfPoints(2); - _ptsA->SetPoint(0, -1000 , -1000 , -1000 ); - _ptsA->SetPoint(1, 1000 , 1000 , 1000 ); - vtkCellArray *linesA; - linesA = vtkCellArray::New(); - linesA->InsertNextCell(2); - linesA->InsertCellPoint(0); - linesA->InsertCellPoint(1); - _pdA = vtkPolyData::New(); - _pdA->SetPoints( _ptsA ); - _pdA->SetLines( linesA ); - linesA->Delete(); //do not delete lines ?? - _lineAActor = vtkActor::New(); - _lineAMapper = vtkPolyDataMapper::New(); - _lineAMapper->SetInput(_pdA); - _lineAMapper->ImmediateModeRenderingOn(); - _lineAActor->SetMapper(_lineAMapper); -// _lineAActor->GetProperty()->BackfaceCullingOn(); - _lineAActor->GetProperty()->SetDiffuseColor(1,0,0); - _lineAActor->GetProperty()->SetLineWidth(2); - _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineAActor ); + if(_lineAActor==NULL){ + _ptsA = vtkPoints::New(); + _ptsA->SetNumberOfPoints(2); + _ptsA->SetPoint(0, -1000 , -1000 , -1000 ); + _ptsA->SetPoint(1, 1000 , 1000 , 1000 ); + vtkCellArray *linesA; + linesA = vtkCellArray::New(); + linesA->InsertNextCell(2); + linesA->InsertCellPoint(0); + linesA->InsertCellPoint(1); + _pdA = vtkPolyData::New(); + _pdA->SetPoints( _ptsA ); + _pdA->SetLines( linesA ); + linesA->Delete(); //do not delete lines ?? + _lineAActor = vtkActor::New(); + _lineAMapper = vtkPolyDataMapper::New(); + + _lineAMapper->SetInput(_pdA); + _lineAMapper->ImmediateModeRenderingOn(); + _lineAActor->SetMapper(_lineAMapper); + // _lineAActor->GetProperty()->BackfaceCullingOn(); + _lineAActor->GetProperty()->SetDiffuseColor(1,0,0); + _lineAActor->GetProperty()->SetLineWidth(2); + _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineAActor ); + } + + + // Axe B - _ptsB = vtkPoints::New(); - _ptsB->SetNumberOfPoints(2); - _ptsB->SetPoint(0, -1000 , -1000 , -1000 ); - _ptsB->SetPoint(1, 1000 , 1000 , 1000 ); - vtkCellArray *linesB; - linesB = vtkCellArray::New(); - linesB->InsertNextCell(2); - linesB->InsertCellPoint(0); - linesB->InsertCellPoint(1); - _pdB = vtkPolyData::New(); - _pdB->SetPoints( _ptsB ); - _pdB->SetLines( linesB ); - linesB->Delete(); //do not delete lines ?? - _lineBActor = vtkActor::New(); - _lineBMapper = vtkPolyDataMapper::New(); - _lineBMapper->SetInput(_pdB); - _lineBMapper->ImmediateModeRenderingOn(); - _lineBActor->SetMapper(_lineBMapper); -// _lineBActor->GetProperty()->BackfaceCullingOn(); - _lineBActor->GetProperty()->SetDiffuseColor(1,0,0); - _lineBActor->GetProperty()->SetLineWidth(2); - _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineBActor ); + if(_lineBActor==NULL){ + _ptsB = vtkPoints::New(); + _ptsB->SetNumberOfPoints(2); + _ptsB->SetPoint(0, -1000 , -1000 , -1000 ); + _ptsB->SetPoint(1, 1000 , 1000 , 1000 ); + vtkCellArray *linesB; + linesB = vtkCellArray::New(); + linesB->InsertNextCell(2); + linesB->InsertCellPoint(0); + linesB->InsertCellPoint(1); + _pdB = vtkPolyData::New(); + _pdB->SetPoints( _ptsB ); + _pdB->SetLines( linesB ); + linesB->Delete(); //do not delete lines ?? + _lineBActor = vtkActor::New(); + _lineBMapper = vtkPolyDataMapper::New(); + _lineBMapper->SetInput(_pdB); + _lineBMapper->ImmediateModeRenderingOn(); + _lineBActor->SetMapper(_lineBMapper); + // _lineBActor->GetProperty()->BackfaceCullingOn(); + _lineBActor->GetProperty()->SetDiffuseColor(1,0,0); + _lineBActor->GetProperty()->SetLineWidth(2); + _imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->AddActor( _lineBActor ); + } vtkCamera *camera =_imageViewer2XYZ->GetVtkImageViewer2()->GetRenderer()->GetActiveCamera(); @@ -463,25 +477,32 @@ void wxVtkMPR2DView::ChangeAxisColor(double x, double y, double z) Refresh(); } -//------------------------------------------------------------------- -void wxVtkMPR2DView::TransfromeCoordScreenToWorld(double &X, double &Y, double &Z, int type) // virtual + +//EED 5 juin 2009 +//void wxVtkMPR2DView::TransfromCoordViewWorld(double &X, double &Y, double &Z, int type) // virtual +void wxVtkMPR2DView::TransFromCoordScreenToWorld(double &X, double &Y, double &Z, bool keepNormalDirection, int type) //virtual //keepNormalDirection=false, type=2 { - wxVtkBaseView::TransfromeCoordScreenToWorld(X,Y,Z,_direction); + wxVtkBaseView::TransFromCoordScreenToWorld(X,Y,Z,keepNormalDirection,_direction); - if (_direction==0) + if ((_direction==0) && (keepNormalDirection==true) ) { X = ((vtkMPRBaseData*)GetVtkBaseData())->GetX(); } - if (_direction==1) + + if ((_direction==1) && (keepNormalDirection==true) ) { Y = ((vtkMPRBaseData*)GetVtkBaseData())->GetY(); } - if (_direction==2) + + if ((_direction==2) && (keepNormalDirection==true) ) { Z = ((vtkMPRBaseData*)GetVtkBaseData())->GetZ(); } + } + + //------------------------------------------------------------------- //------------------------------------------------------------------- //-------------------------------------------------------------------