1 /*# ---------------------------------------------------------------------
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
7 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
9 # This software is governed by the CeCILL-B license under French law and
10 # abiding by the rules of distribution of free software. You can use,
11 # modify and/ or redistribute the software under the terms of the CeCILL-B
12 # license as circulated by CEA, CNRS and INRIA at the following URL
13 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
14 # or in the file LICENSE.txt.
16 # As a counterpart to the access to the source code and rights to copy,
17 # modify and redistribute granted by the license, users are provided only
18 # with a limited warranty and the software's author, the holder of the
19 # economic rights, and the successive licensors have only limited
22 # The fact that you are presently reading this means that you have had
23 # knowledge of the CeCILL-B license and that you accept its terms.
24 # ------------------------------------------------------------------------ */
26 #include "manualViewBaseContour.h"
29 // ----------------------------------------------------------------------------
30 // ----------------------------------------------------------------------------
31 // ----------------------------------------------------------------------------
33 manualViewBaseContour::manualViewBaseContour()
38 _wxvtkbaseview = NULL;
40 _posibleSelected = false;
41 _viewControlPoints = false;
44 _contourVtkActor = NULL;
47 _sizePointsContour = 100;
60 _coulorSelection_r = 0;
61 _coulorSelection_g = 1;
62 _coulorSelection_b = 0;
67 // ----------------------------------------------------------------------------
68 manualViewBaseContour::~manualViewBaseContour()
70 int i,size=_lstViewPoints.size();
71 for (i=0;i<size; i++){
72 delete _lstViewPoints[i];
74 _lstViewPoints.clear();
76 // ----------------------------------------------------------------------------
79 int manualViewBaseContour::GetType() // virtual
82 //int manualViewBaseContour::GetType() 0;
83 //int manualViewContour::GetType() 1;
84 //int manualViewRoi::GetType() 2;
85 //int manualViewCircle::GetType() 3;
86 //int manualViewStar::GetType() 4;
87 //int manualViewLine::GetType() 6;
88 //int manualViewPoints::GetType() 7;
93 // ----------------------------------------------------------------------------
95 void manualViewBaseContour::Save(FILE *pFile)
97 fprintf(pFile,"TypeView %d\n", GetType() );
100 // ----------------------------------------------------------------------------
101 void manualViewBaseContour::Open(FILE *pFile)
105 // ----------------------------------------------------------------------------
106 void manualViewBaseContour :: AddCompleteContourActor( bool ifControlPoints )
108 _viewControlPoints = ifControlPoints;
109 /*vtkRenderer * theRenderer = */ _wxvtkbaseview->GetRenderer(); // JPRx ??
114 //Adding each control point
115 if( ifControlPoints )
122 // ---------------------------------------------------------------------------
124 void manualViewBaseContour :: RemoveCompleteContourActor()
126 /*vtkRenderer * theRenderer =*/ _wxvtkbaseview->GetRenderer(); // JPRx ??
127 //Removing the spline
131 //Removing each point
132 RemoveControlPoints();
136 // ---------------------------------------------------------------------------
137 manualViewBaseContour * manualViewBaseContour :: Clone( )//virtual
139 manualViewBaseContour * clone = new manualViewBaseContour();
140 CopyAttributesTo(clone);
145 // ---------------------------------------------------------------------------
147 void manualViewBaseContour::CopyAttributesTo( manualViewBaseContour * cloneObject)
150 //XXXX::CopyAttributesTo(cloneObject);
152 cloneObject-> SetWxVtkBaseView( this->_wxvtkbaseview );
153 cloneObject-> SetSelected( this->GetSelected() );
154 cloneObject-> SetPosibleSelected( this->GetPosibleSelected() );
155 cloneObject-> SetIfViewControlPoints( this->GetIfViewControlPoints() );
156 cloneObject-> SetRange( this->GetRange() );
157 cloneObject-> SetZ( this->GetZ() );
158 cloneObject-> SetSpacing( _spc );
159 cloneObject-> SetColorNormalContour( _coulorNormal_r, _coulorNormal_g, _coulorNormal_b );
160 cloneObject-> SetColorEditContour( _coulorEdit_r, _coulorEdit_g, _coulorEdit_b );
161 cloneObject-> SetColorSelectContour( _coulorSelection_r, _coulorSelection_g, _coulorSelection_b );
163 int i, size = _lstViewPoints.size();
164 for ( i=0; i<size; i++ )
166 cloneObject->AddPoint( );
170 // ----------------------------------------------------------------------------
171 void manualViewBaseContour :: AddSplineActor()
173 vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer();
174 if (_contourVtkActor!=NULL)
175 theRenderer->AddActor( _contourVtkActor );
177 // ----------------------------------------------------------------------------
178 void manualViewBaseContour :: RemoveSplineActor() // virtual
180 vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer();
181 if (_contourVtkActor!=NULL)
182 theRenderer->RemoveActor( _contourVtkActor );
184 // ----------------------------------------------------------------------------
185 void manualViewBaseContour :: RemoveControlPoints()
187 if (_wxvtkbaseview!=NULL){
188 vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer();
189 int i,size=_lstViewPoints.size();
190 for (i=0;i<size; i++)
192 vtkActor * pointActor = _lstViewPoints[i]->GetVtkActor();
193 theRenderer->RemoveActor( pointActor );
196 SetIfViewControlPoints( false );
198 // ----------------------------------------------------------------------------
199 void manualViewBaseContour::AddControlPoints()
201 vtkRenderer * theRenderer = _wxvtkbaseview->GetRenderer();
202 SetIfViewControlPoints( true );
203 if( _viewControlPoints )
205 int i,size=_lstViewPoints.size();
206 for (i=0;i<size; i++)
208 vtkActor * pointActor = _lstViewPoints[i]->GetVtkActor();
209 theRenderer->AddActor( pointActor );
213 // ----------------------------------------------------------------------------
214 void manualViewBaseContour::AddTextActor()
218 _wxvtkbaseview->GetRenderer()->AddActor2D( _textActor );
219 _wxvtkbaseview->GetRenderer()->AddActor2D( _textActor2 );
222 // ----------------------------------------------------------------------------
223 void manualViewBaseContour::RemoveTextActor()
227 _wxvtkbaseview->GetRenderer()->RemoveActor2D( _textActor );
228 _wxvtkbaseview->GetRenderer()->RemoveActor2D( _textActor2 );
231 // ----------------------------------------------------------------------------
232 void manualViewBaseContour::DeleteVtkObjects()
234 if ( _contourVtkActor != NULL ) { _contourVtkActor -> Delete(); }
235 if ( _bboxMapper != NULL ) { _bboxMapper -> Delete(); }
236 if ( _pts != NULL ) { _pts -> Delete(); }
237 if ( _pd != NULL ) { _pd -> Delete(); }
238 _contourVtkActor = NULL;
245 // ----------------------------------------------------------------------------
246 void manualViewBaseContour::SetWidthLine(double width)
249 this->UpdateColorActor();
251 // for the control points
252 int id, size = _lstViewPoints.size();
253 for( id=0; id<size; id++)
255 this->_lstViewPoints[id]->SetWidthLine(_widthline);
260 // ----------------------------------------------------------------------------
261 double manualViewBaseContour::GetWidthLine()
266 // ----------------------------------------------------------------------------
267 void manualViewBaseContour::ConstructVTKObjects()
271 //JSTG 29-02-08 -----------------------------------------------
272 //int i , nps = _sizePointsContour;
274 int nps = _manContModel->GetNumberOfPointsSpline();
275 //-------------------------------------------------------------
278 _pts = vtkPoints::New();
279 _pts->SetNumberOfPoints(nps);
280 for (i=0 ; i<nps ; i++)
282 _pts->SetPoint(i, 0 , 0 , 0 );
284 // This is for the boundaring inicialisation
287 //_pts->SetPoint(0, 0 , 0 , -1000 );
288 //_pts->SetPoint(1, 0 , 0 , 1000 );
291 // _pts->SetPoint(0, -1000 , -1000 , -1000 );
292 // _pts->SetPoint(1, 1000 , 1000 , 1000 );
294 // This is the structure for the spline
295 _splineCell = vtkCellArray::New();
296 _splineCell->InsertNextCell( nps /* +1 */ );
297 for ( i=0 ; i<nps+1 ; i++ )
299 _splineCell->InsertCellPoint(i % nps );
302 // This is the structure for the spline justo to points (line)
303 // This will be use in the refresh part, in case the spline have only 2 points
304 _lineCell = vtkCellArray::New();
305 _lineCell->InsertNextCell(2);
306 _lineCell->InsertCellPoint(0);
307 _lineCell->InsertCellPoint(1);
309 _pd = vtkPolyData::New();
310 _pd->SetPoints( _pts );
311 _pd->SetLines( _splineCell );
312 // lines->Delete(); //do not delete lines ??
314 _contourVtkActor = vtkActor::New();
315 _bboxMapper = vtkPolyDataMapper::New();
316 _bboxMapper->ScalarVisibilityOff( );
318 _bboxMapper->SetInput(_pd);
319 _bboxMapper->ImmediateModeRenderingOn();
320 _contourVtkActor->SetMapper(_bboxMapper);
321 _contourVtkActor->GetProperty()->BackfaceCullingOff();
325 _pd->ComputeBounds();
330 // ----------------------------------------------------------------------------
331 void manualViewBaseContour::SetCellArray(bool type)
335 _pd->SetLines( _splineCell );
337 _pd->SetLines( _lineCell );
341 // ----------------------------------------------------------------------------
342 void manualViewBaseContour::InitTextActor()
345 _textActor = vtkTextActor::New();
346 // _textActor->SetDisplayPosition(200, 200);
347 _textActor->SetInput("00");
348 // Set coordinates to match the old vtkScaledTextActor default value
349 // _textActor->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
350 // _textActor->GetPosition2Coordinate()->SetValue( 0.2 , 0.2 );
351 _textActor->GetPositionCoordinate()->SetCoordinateSystemToWorld ();
352 // _textActor->GetPositionCoordinate()->SetValue( 0.8 , 0.8 );
354 vtkTextProperty *tprop = _textActor->GetTextProperty();
355 tprop->SetFontSize(14);
356 tprop->SetFontFamilyToArial();
357 tprop->SetColor(1, 1, 0);
361 _textActor2 = vtkTextActor::New();
362 // _textActor->SetDisplayPosition(200, 200);
363 _textActor2->SetInput("00");
364 // Set coordinates to match the old vtkScaledTextActor default value
365 // _textActor2->GetPosition2Coordinate()->SetCoordinateSystemToNormalizedViewport();
366 // _textActor2->GetPosition2Coordinate()->SetValue( 0.2 , 0.2 );
367 _textActor2->GetPositionCoordinate()->SetCoordinateSystemToWorld ();
368 // _textActor2->GetPositionCoordinate()->SetValue( 0.8 , 0.8 );
370 vtkTextProperty *tprop2 = _textActor2->GetTextProperty();
371 tprop2->SetFontSize(14);
372 tprop2->SetFontFamilyToArial();
373 tprop2->SetColor(1, 1, 0);
377 // ----------------------------------------------------------------------------
378 void manualViewBaseContour::CreateNewContour()
380 ConstructVTKObjects();
382 _wxvtkbaseview->GetRenderer()->AddActor( _contourVtkActor );
383 _wxvtkbaseview->GetRenderer()->AddActor2D(_textActor);*/
384 AddCompleteContourActor();
386 // ----------------------------------------------------------------------------
387 void manualViewBaseContour::UpdateViewPoint(int id) // virtual
389 manualPoint *mp = _manContModel->GetManualPoint(id);
392 double XX=mp->GetX(),YY=mp->GetY(),ZZ=mp->GetZ();
393 // wxVtk2DBaseView *wxvtk2Dbasevie = (wxVtk2DBaseView*)this->GetWxVtkBaseView();
394 // wxvtk2Dbasevie->TransformCoordinate_spacing_ModelToView(XX,YY,ZZ);
396 _lstViewPoints[id]->SetPositionXY( XX , YY ,_range, ZZ );
399 // ----------------------------------------------------------------------------
400 void manualViewBaseContour::UpdateViewPoints()
402 int id, size = _lstViewPoints.size();
403 for( id=0; id<size; id++)
405 UpdateViewPoint( id );
409 // ----------------------------------------------------------------------------
410 void manualViewBaseContour::AddPoint()
412 manualViewPoint *mvp = new manualViewPoint( this->GetWxVtkBaseView() );
415 // ----------------------------------------------------------------------------
416 void manualViewBaseContour::AddPoint( manualViewPoint * manualViewPoint )
418 _lstViewPoints.push_back( manualViewPoint );
421 manualViewPoint->SetSpacing(_spc);
423 vtkActor *actor = manualViewPoint->CreateVtkPointActor();
424 _wxvtkbaseview->GetRenderer()->AddActor( actor );
427 // ----------------------------------------------------------------------------
428 void manualViewBaseContour::InsertPoint(int id)
430 manualViewPoint *mvp = new manualViewPoint( this->GetWxVtkBaseView() );
433 mvp->SetSpacing(_spc);
435 std::vector<manualViewPoint*>::iterator itNum = _lstViewPoints.begin() + id;
436 _lstViewPoints.insert(itNum,mvp);
437 _wxvtkbaseview->GetRenderer()->AddActor( mvp->CreateVtkPointActor() );
439 // ----------------------------------------------------------------------------
440 void manualViewBaseContour::DeleteContour()
442 RemoveCompleteContourActor();
443 /*if (_contourVtkActor!=NULL){
444 _wxvtkbaseview->GetRenderer()->RemoveActor( _contourVtkActor );
447 int i,size=_lstViewPoints.size();
448 for (i=0;i<size;i++){
449 manualViewBaseContour::DeletePoint(0);
453 // ----------------------------------------------------------------------------
454 void manualViewBaseContour::DeletePoint(int id) // virtual
456 int size=_lstViewPoints.size();
457 if ( (id>=0) && (id<size) ){
458 manualViewPoint *mvp =_lstViewPoints[id];
460 // _handlePicker->DeletePickList(mvp->GetVtkActor());
461 _wxvtkbaseview->GetRenderer()->RemoveActor( mvp->GetVtkActor() );
462 std::vector<manualViewPoint*>::iterator itNum = _lstViewPoints.begin() + id;
463 _lstViewPoints.erase(itNum);
468 // ----------------------------------------------------------------------------
469 void manualViewBaseContour::DeletePoint(int x, int y, int z)
471 int id=GetIdPoint(x,y,z);
476 // ----------------------------------------------------------------------------
477 void manualViewBaseContour::SetSelected(bool selected)
481 // ----------------------------------------------------------------------------
482 void manualViewBaseContour::SetPosibleSelected(bool posibleSelected)
484 _posibleSelected=posibleSelected;
486 // ----------------------------------------------------------------------------
487 bool manualViewBaseContour::GetEditable()
491 // ----------------------------------------------------------------------------
492 void manualViewBaseContour::SetEditable( bool * condition )
494 _editable = condition;
496 // ----------------------------------------------------------------------------
497 bool manualViewBaseContour::GetSelected()
501 // ----------------------------------------------------------------------------
502 bool manualViewBaseContour::GetPosibleSelected()
504 return _posibleSelected;
506 // ----------------------------------------------------------------------------
507 void manualViewBaseContour::DeleteSelectedPoints()
509 int i,size=_lstViewPoints.size();
510 for (i=size-1;i>=0;i--){
511 if (_lstViewPoints[i]->GetSelected()==true){
517 // ----------------------------------------------------------------------------
518 void manualViewBaseContour::SelectPoint(int i, bool select)
520 _lstViewPoints[i]->SetSelected(select);
522 // ----------------------------------------------------------------------------
523 void manualViewBaseContour::SelectLstPoints()
527 // ----------------------------------------------------------------------------
528 void manualViewBaseContour::SelectAllPoints(bool select)
530 int i,size=_lstViewPoints.size();
531 for (i=0;i<size;i++){
532 SelectPoint(i,select);
535 //-----------------------------------------------------------------------------
536 void manualViewBaseContour:: SetIfViewControlPoints(bool ifShow)
538 _viewControlPoints = ifShow;
540 // ----------------------------------------------------------------------------
541 bool manualViewBaseContour:: GetIfViewControlPoints()
543 return _viewControlPoints;
546 // ----------------------------------------------------------------------------
547 void manualViewBaseContour::SetPointPosibleSelected(int id,bool select)
549 _lstViewPoints[id]->SetPosibleSelected(select);
551 // ----------------------------------------------------------------------------
552 void manualViewBaseContour::SetPointSelected(int id,bool select)
554 _lstViewPoints[id]->SetSelected(select);
556 // ----------------------------------------------------------------------------
557 void manualViewBaseContour::SelectAllPossibleSelected(bool select)
559 int i,size=_lstViewPoints.size();
560 for (i=0;i<size;i++){
561 SetPointPosibleSelected(i,select);
564 // ----------------------------------------------------------------------------
565 int manualViewBaseContour::SelectPosiblePoint(int x, int y, int z) // virtual
567 SelectAllPossibleSelected(false);
569 int id = GetIdPoint(x,y,z);
572 SetPointPosibleSelected(id,true);
576 // ----------------------------------------------------------------------------
577 bool manualViewBaseContour::SelectPosibleContour(int x, int y, int z)
580 SetPosibleSelected(result);
581 int id = GetIdPoint(x,y,z);
583 if( !GetEditable() && !_selected && id!= -1)
586 _posibleSelected=true;
590 if ( (GetEditable()==true) && (id==-1 ) && (this->_lstViewPoints.size()>=2) )
592 if (ifTouchContour(x,y,z)==true)
595 SetPosibleSelected(result);
599 if (GetEditable()==false)
601 if (ifTouchContour(x,y,z)==true)
604 SetPosibleSelected(result);
610 // ----------------------------------------------------------------------------
611 bool manualViewBaseContour::ifTouchContour(int x,int y, int z) // virtual
615 // ----------------------------------------------------------------------------
616 void manualViewBaseContour::UnSelectPoint(int i){
617 _lstViewPoints[i]->SetSelected(false);
620 // ----------------------------------------------------------------------------
621 void manualViewBaseContour::UnSelectLstPoints(){
624 // ----------------------------------------------------------------------------
625 void manualViewBaseContour::UnSelectAllPoints(){
626 int i,size=_lstViewPoints.size();
627 for (i=0;i<size;i++){
632 // ----------------------------------------------------------------------------
633 void manualViewBaseContour::SetModel(manualBaseModel *manContModel){
634 _manContModel=manContModel;
636 // ----------------------------------------------------------------------------
637 void manualViewBaseContour::SetWxVtkBaseView(wxVtkBaseView *wxvtkbaseview){
638 _wxvtkbaseview = wxvtkbaseview;
640 // ----------------------------------------------------------------------------
641 void manualViewBaseContour::RefreshContour() // Virtual
644 // ----------------------------------------------------------------------------
645 double* manualViewBaseContour::GetVectorPointsXManualContour(){
647 int i,size = _sizePointsContour;
648 double *vx = (double*)malloc(sizeof(double)*size);
649 for (i=0;i<size;i++){
650 _pts->GetPoint(i,pp);
655 // ----------------------------------------------------------------------------
656 double* manualViewBaseContour::GetVectorPointsYManualContour()
659 int i,size = _sizePointsContour;
660 double *vy = (double*)malloc(sizeof(double)*size);
661 for (i=0;i<size;i++){
662 _pts->GetPoint(i,pp);
667 // ----------------------------------------------------------------------------
668 double* manualViewBaseContour::GetVectorPointsZManualContour()
671 int i,size = _sizePointsContour;
672 double *vz = (double*)malloc(sizeof(double)*size);
673 for (i=0;i<size;i++){
674 _pts->GetPoint(i,pp);
679 // ----------------------------------------------------------------------------
680 void manualViewBaseContour::Refresh() // virtual
682 if (_contourVtkActor!=NULL)
686 int i,size=_lstViewPoints.size();
687 for (i=0;i<size;i++){
689 _lstViewPoints[i]->UpdateColorActor();
693 if (_show_text==true)
698 vtkRenderWindowInteractor *vri = _wxvtkbaseview->GetWxVTKRenderWindowInteractor ();
701 _wxvtkbaseview->GetRenWin()->Render();
702 printf("EED %p How to optimize manualViewBaseContour::Refresh() \n",this);
706 // ----------------------------------------------------------------------------
707 void manualViewBaseContour::RefreshText() // virtual
709 if( _textActor!=NULL)
711 _textActor -> SetInput("00");
712 _textActor2 -> SetInput("00");
715 // ----------------------------------------------------------------------------
716 void manualViewBaseContour::SetColorNormalContour(double r, double g, double b)
722 // ----------------------------------------------------------------------------
723 void manualViewBaseContour::GetColorNormalContour(double &r, double &g, double &b)
729 // ----------------------------------------------------------------------------
730 void manualViewBaseContour::SetColorEditContour(double r, double g, double b)
736 // ----------------------------------------------------------------------------
737 void manualViewBaseContour::GetColorEditContour(double &r, double &g, double &b)
743 // ----------------------------------------------------------------------------
744 void manualViewBaseContour::SetColorSelectContour(double r, double g, double b)
746 _coulorSelection_r = r;
747 _coulorSelection_g = g;
748 _coulorSelection_b = b;
750 // ----------------------------------------------------------------------------
751 void manualViewBaseContour::GetColorSelectContour(double &r, double &g, double &b)
753 r = _coulorSelection_r;
754 g = _coulorSelection_g;
755 b = _coulorSelection_b;
757 // ----------------------------------------------------------------------------
758 void manualViewBaseContour::UpdateColorActor()
760 if (_contourVtkActor!=NULL)
762 _contourVtkActor->GetProperty()->SetLineWidth( _widthline );
763 _contourVtkActor->GetProperty()->SetDiffuseColor( _coulorNormal_r , _coulorNormal_g , _coulorNormal_b );
764 if (_posibleSelected || (_posibleSelected && GetEditable() ) )
766 _contourVtkActor->GetProperty()->SetDiffuseColor( _coulorEdit_r , _coulorEdit_g , _coulorEdit_b );
770 _contourVtkActor->GetProperty()->SetDiffuseColor( _coulorSelection_r , _coulorSelection_g , _coulorSelection_b );
774 // ----------------------------------------------------------------------------
775 int manualViewBaseContour::GetIdPoint(int x, int y, int z) // virtual
778 if (_manContModel!=NULL){
782 TransfromCoordViewWorld(xx,yy,zz);
783 ii=_manContModel->GetIdPoint(xx,yy,zz,_range,-1);
788 // ----------------------------------------------------------------------------
791 int manualViewBaseContour::GetNumberOfPoints()
793 return _lstViewPoints.size();
796 // ----------------------------------------------------------------------------
798 //JSTG 25-02-08 ---------------------------------------------------------------
799 /*int manualViewBaseContour::GetNumberOfPointsSpline()
801 return _sizePointsContour;
803 //----------------------------------------------------------------------------
805 //JSTG 25-02-08 ---------------------------------------------------------------
806 /*void manualViewBaseContour::SetNumberOfPointsSpline(int size)
808 _sizePointsContour = size;
810 //----------------------------------------------------------------------------
812 void manualViewBaseContour::TransfromCoordViewWorld(double &X, double &Y, double &Z, int type) // Virtual
814 _wxvtkbaseview->TransFromCoordScreenToWorld(X, Y, Z,false, type);
819 // wxVtk2DBaseView *wxvtk2Dbaseview = (wxVtk2DBaseView*)_wxvtkbaseview;
820 // wxvtk2Dbaseview->TransformCoordinate_spacing_ModelToView(X,Y,Z);
823 // ----------------------------------------------------------------------------
824 void manualViewBaseContour::SetRange(double range)
828 // ----------------------------------------------------------------------------
829 double manualViewBaseContour::GetRange()
833 // ----------------------------------------------------------------------------
834 void manualViewBaseContour::SetZ(int z)
838 // ----------------------------------------------------------------------------
839 int manualViewBaseContour::GetZ()
844 // ----------------------------------------------------------------------------
845 void manualViewBaseContour::InitMove(int x, int y, int z) // virtual
849 // ----------------------------------------------------------------------------
850 void manualViewBaseContour::MoveContour(int x, int y, int z) // virtual
853 // ----------------------------------------------------------------------------
854 void manualViewBaseContour::MoveContour(int horizontalUnits, int verticalUnits )// virtual
858 // ----------------------------------------------------------------------------
859 void manualViewBaseContour::GetMinMax( double &minX,double &minY, double &minZ, double &maxX, double &maxY, double &maxZ )// virtual
864 int size=_manContModel->GetSizeLstPoints();
869 bool ifFindZ = minZ!=-1.0 && maxZ!=-1.0;
875 for( i = 0; i < size; i++ )
877 mp=_manContModel->GetManualPoint(i);
929 // ----------------------------------------------------------------------------
930 void manualViewBaseContour::ClearContour()
932 if (_contourVtkActor!=NULL){
933 _wxvtkbaseview->GetRenderer()->RemoveActor( _contourVtkActor );
936 int i,size=_lstViewPoints.size();
937 for (i=0;i<size;i++){
942 // ----------------------------------------------------------------------------
943 void manualViewBaseContour::ClearPoint(int id)
947 // ----------------------------------------------------------------------------
948 void manualViewBaseContour::SetVisible(bool ok)
958 int i,size=_lstViewPoints.size();
959 for (i=0;i<size;i++){
960 actor = _lstViewPoints[i]->GetVtkActor();
961 actor->GetProperty()->SetOpacity( opacity );
963 _contourVtkActor->GetProperty()->SetOpacity( opacity );
964 _textActor->GetProperty()->SetOpacity( opacity );
965 _textActor->SetInput("00");
966 _textActor2->GetProperty()->SetOpacity( opacity );
967 _textActor2->SetInput("00");
970 // ----------------------------------------------------------------------------
971 void manualViewBaseContour::SetShowText(bool ok)
974 if (_show_text==false && _textActor!=NULL)
976 _textActor->SetInput("00");
977 _textActor2->SetInput("00");
980 // ----------------------------------------------------------------------------
981 wxVtkBaseView *manualViewBaseContour::GetWxVtkBaseView()
983 return this->_wxvtkbaseview;
985 // ----------------------------------------------------------------------------
986 void manualViewBaseContour::GetSpacing(double spc[3])
992 // ----------------------------------------------------------------------------
993 void manualViewBaseContour::SetSpacing(double spc[3])