+/*# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+# pour la Sant�)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+# Previous Authors : Laurent Guigues, Jean-Pierre Roux
+# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
+#
+# This software is governed by the CeCILL-B license under French law and
+# abiding by the rules of distribution of free software. You can use,
+# modify and/ or redistribute the software under the terms of the CeCILL-B
+# license as circulated by CEA, CNRS and INRIA at the following URL
+# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+# or in the file LICENSE.txt.
+#
+# As a counterpart to the access to the source code and rights to copy,
+# modify and redistribute granted by the license, users are provided only
+# with a limited warranty and the software's author, the holder of the
+# economic rights, and the successive licensors have only limited
+# liability.
+#
+# The fact that you are presently reading this means that you have had
+# knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------ */
+
//----------------------------------------------------------------------------------------------------------------
// Class definition include
//----------------------------------------------------------------------------------------------------------------
#include "wxVtkBaseView_SceneManager.h"
+#include "wxVtk2DBaseView.h"
//----------------------------------------------------------------------------------------------------------------
// Class implementation
wxVtkBaseView_SceneManager :: wxVtkBaseView_SceneManager( wxVtkBaseView * theWxBaseViewToManage, wxEvtHandler * theEventHandler, double * spc )
{
- _widthOfContour = 1.0;
+
_lastInteraction = NULL;
- _lastInteractionName = "";
+ _lastInteractionName = "";
_eventHandler = theEventHandler;
_leftClickCount = 0;
_rigthClickCount = 0;
- _contours_ViewControl = new std::map< std::string, ContourWrap_ViewControl * >();
- _sceneContours_ViewControl = new std::map< std::string, ContourWrap_ViewControl * >();
+ _contours_ViewControl = new std::map< std::string, ContourWrap_ViewControl * >();
+ _sceneContours_ViewControl = new std::map< std::string, ContourWrap_ViewControl * >();
_workingGroup = new std::map< std::string, ContourWrap_ViewControl * >();
_creatingMULT_ROI = false;
- _editingROI = false;
- _toIncludeAtInteractionGroup = false;
- _waiting = false;
+ _editingROI = false;
+ _toIncludeAtInteractionGroup = false;
+ _waiting = false;
_creatingROI = false;
- _drawingSelectionROI = false;
-
+ _drawingSelectionROI = false;
+ SetWidthContour(1.0);
_wxVtk_BaseView = theWxBaseViewToManage;
if( _wxVtk_BaseView!=NULL )
{
- vtkInteractorStyleBaseView* theInteractorStyleBaseView = _wxVtk_BaseView->GetInteractorStyleBaseView();
+ vtkInteractorStyleBaseView* theInteractorStyleBaseView = (vtkInteractorStyleBaseView*)_wxVtk_BaseView->GetInteractorStyleBaseView();
theInteractorStyleBaseView->AddInteractorStyleMaracas( this );
SetVtkInteractorStyleBaseView( theInteractorStyleBaseView );
}
_contours_ViewControl->erase( iter );
i++;
}
- delete _contours_ViewControl;
_contours_ViewControl->clear();
+ delete _contours_ViewControl;
_workingGroup->clear();
delete _lastInteraction;
delete _workingGroup;
- delete _contours_ViewControl;
+ //delete _contours_ViewControl;
}
//------------------------------------------------------------------------------------------------------------
return _wxVtk_BaseView;
}
//------------------------------------------------------------------------------------------------------------
- void wxVtkBaseView_SceneManager :: configureViewControlTo( std::string theKeyName, manualContourModel * manModelContour, double * spc,int typeContour)
+ void wxVtkBaseView_SceneManager :: configureViewControlTo( std::string theKeyName, manualBaseModel * manModelContour, double * spc,int typeContour)
{
//setControlActiveStateOfALL( false );
_creatingROI = true;
manualViewBaseContour *manViewerContour;
// Creating the view manualViewContour and the manualContourControler
+ // NOTE: The model is created in the KernelManagerContour class, factoryManualContourModel method
if (typeContour==1)
{
manContourControl = new manualContourControler();
manViewerContour = new manualViewLine();
}
+ //Points
+ if (typeContour==7)
+ {
+ manContourControl = new manualContourControler();
+ manViewerContour = new manualViewPoints();
+ }
+
+ //Polygon
+ if (typeContour==10)
+ {
+ manContourControl = new manualContourControler();
+ manViewerContour = new manualViewContour();
+ }
-//EED Borrame
-//FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
-//fprintf(ff,"EED wxVtkBaseView_SceneManager :: configureViewControlTo \n" );
-//fprintf(ff," %s %p \n",theKeyName.c_str() , manContourControl );
-//fclose(ff);
_lastInteraction = insertWrap( theKeyName, manContourControl, manViewerContour );
//Configuring the relations between the contour members representation
manViewerContour->SetModel( manModelContour );
manViewerContour->SetWxVtkBaseView( _wxVtk_BaseView );
- manViewerContour->SetRange( 2 );
- manViewerContour->SetZ( 1000 );
+ manViewerContour->SetRange( _widthOfControlPoint );
+ manViewerContour->SetZ( -900 );
manViewerContour->SetSpacing(spc);
_viewerSelectionROI->SetModel( _modelSelectionROI );
_viewerSelectionROI->SetWxVtkBaseView( _wxVtk_BaseView );
_viewerSelectionROI->SetRange( 2 );
- _viewerSelectionROI->SetZ( 1000 );
+ _viewerSelectionROI->SetZ( -900 );
_viewerSelectionROI->SetColorNormalContour(0.6, 0.8, 0);
_viewerSelectionROI->SetSpacing( spc );
_controlerSelectionROI->SetModelView( _modelSelectionROI , _viewerSelectionROI );
- _wxVtk_BaseView->GetInteractorStyleBaseView()->AddInteractorStyleMaracas( _controlerSelectionROI );
+ ((vtkInteractorStyleBaseView*)_wxVtk_BaseView->GetInteractorStyleBaseView())->AddInteractorStyleMaracas( _controlerSelectionROI );
_controlerSelectionROI->SetActive(false);
}
ContourWrap_ViewControl * wxVtkBaseView_SceneManager :: insertWrap( std::string theKeyName, manualContourBaseControler * manContourControl, manualViewBaseContour * manViewerContour )
{
ContourWrap_ViewControl * newContourWrap = new ContourWrap_ViewControl(manContourControl, manViewerContour);
+ if(_contours_ViewControl == NULL)
+ {
+ _contours_ViewControl = new std::map< std::string, ContourWrap_ViewControl * >();
+ }
_contours_ViewControl->insert(std::pair <std::string, ContourWrap_ViewControl *> ( theKeyName, newContourWrap ));
return newContourWrap;
}
// Other functional methods
//------------------------------------------------------------------------------------------------------------
- void wxVtkBaseView_SceneManager :: createCopyContourOf( std::string anExistingKName, std::string cloneName, manualContourModel * manualModel, bool append )
+ void wxVtkBaseView_SceneManager :: createCopyContourOf( std::string anExistingKName, std::string cloneName, manualBaseModel * manualModel, bool append )
{
if ( !append )
{
}
std::map <std::string, ContourWrap_ViewControl *>::iterator iter;
-//EED Borrame
-// FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
-// fprintf(ff,"EED wxVtkBaseView_SceneManager::createCopyContourOf() \n" );
-// int ii,size = _contours_ViewControl->size();
-// iter = _contours_ViewControl->begin();
-// for (ii=0;ii<size;ii++)
-// {
-// fprintf(ff," %d %s\n ", ii ,iter->first.c_str() );
-// iter++;
-// }
-//fclose(ff);
iter = _contours_ViewControl->find( anExistingKName );
- manualContourModel *cModule = manualModel;
+ manualBaseModel *cModule = manualModel;
manualViewBaseContour *cViewer = iter->second->getViewer()->Clone();
manualContourBaseControler *cControl = iter->second->getControler()->Clone( );
_lastInteractionName = "";
}
-//EED Borrame
-//FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
-//fprintf(ff,"EED wxVtkBaseView_SceneManager :: removeFromScene \n" );
-//fprintf(ff," %p \n", contourWRP->getControler() );
-//fclose(ff);
- _wxVtk_BaseView->GetInteractorStyleBaseView()->RemoveInteractorStyleMaracas( contourWRP->getControler() );
+ ((vtkInteractorStyleBaseView*)_wxVtk_BaseView->GetInteractorStyleBaseView())->RemoveInteractorStyleMaracas( contourWRP->getControler() );
contourWRP->getControler()->SetActive( control );
contourWRP->getControler()->SetEditable( false );
{
ContourWrap_ViewControl * contourWRP = iter->second;
removeFromScene( contourWRP );
-//EED Borrame
-//FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
-//fprintf(ff,"EED wxVtkBaseView_SceneManager :: removeFromScene Bbbbb \n" );
-//fprintf(ff," %d \n", _sceneContours_ViewControl->size() );
_sceneContours_ViewControl->erase(iter);
- }
-//EED Borrame
-//fprintf(ff," %d \n", _sceneContours_ViewControl->size() );
-//fclose(ff);
+ }
}
//------------------------------------------------------------------------------------------------------------
void wxVtkBaseView_SceneManager :: removeSceneContours( )
{
-//EED Borrame
-//FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
-//fprintf(ff,"EED wxVtkBaseView_SceneManager :: removeSceneContours \n" );
-//fprintf(ff," %d \n", _sceneContours_ViewControl->size() );
std::map <std::string, ContourWrap_ViewControl *>::iterator iter = _sceneContours_ViewControl->begin();
int size = _sceneContours_ViewControl->size();
for ( int i = 0; i<size; i++ )
}
_sceneContours_ViewControl->clear();
-//EED Borrame
-//fprintf(ff," %d \n", _sceneContours_ViewControl->size() );
-//fclose(ff);
//Removing the selection rectangle to avoid showing when it's innecesary
_controlerSelectionROI->SetActive( false );
if( control )
{
- _wxVtk_BaseView->GetInteractorStyleBaseView()->AddInteractorStyleMaracas( contourWRP->getControler() );
+ ((vtkInteractorStyleBaseView*)_wxVtk_BaseView->GetInteractorStyleBaseView())->AddInteractorStyleMaracas( contourWRP->getControler() );
}
if( ifActive )
{
bool wxVtkBaseView_SceneManager :: OnMouseMove()
{
-//EED Borrame
-// FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
-// fprintf(ff,"EED wxVtkBaseView_SceneManager::OnMouseMove() \n" );
-// fclose(ff);
bool condition = true;
int X,Y;
- wxVTKRenderWindowInteractor *_wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
+ crea::wxVTKRenderWindowInteractor *_wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
_wxVTKiren->GetEventPosition( X , Y );
bool ctrlKey = _vtkInteractorStyleBaseView->GetInteractor()->GetControlKey() == 1;
size = selectionSize;
iter = _workingGroup->begin();
}
- }
- else
- {
+ } else {
_toIncludeAtInteractionGroup = false;
}
if( ((_lastInteraction != NULL && !control->IsEditable() && !control->IsMoving() ) || _lastInteraction==NULL ))
{
-//EED Borrame
-// FILE *ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
-// fprintf(ff,"EED wxVtkBaseView_SceneManager::OnMouseMove() 00222\n" );
-// fclose(ff);
- _lastInteraction=NULL;
+
+ _lastInteraction=NULL;
for( i =0; i<size ; i++ )
{
control = iter->second->getControler();
bool wxVtkBaseView_SceneManager :: OnLeftButtonDown()
{
- /*FILE *ff;
- ff = fopen("c:/temp/wxVtkBaseView_SceneManagerStadistics.txt","a+");
- long int endtime = clock();
-// double sg = (double)(endtime-startTimeAE) / (double)CLK_TCK;
- fprintf(ff,"wxVtkBaseView_SceneManager :: OnLeftButtonDown() tLBDown = %i \n \n",endtime);
- fclose(ff);*/
//EED??? char aa = _vtkInteractorStyleBaseView->GetInteractor()->GetKeyCode();
double sg = (double)(start) / CLOCKS_PER_SEC;
#endif
int tmpPx,tmpPy;
- wxVTKRenderWindowInteractor *wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
+ crea::wxVTKRenderWindowInteractor *wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk2DBaseView()->GetWxVTKRenderWindowInteractor();
wxVTKiren->GetEventPosition( tmpPx , tmpPy );
fprintf(ff,"::%s (x,y) = (%i, %i) t(sg): %f\n \n",method.c_str(), tmpPx, tmpPy, sg);
fclose(ff);
if (currentSelection.size()>=1){
manualContourBaseControler *cControler = this->getControlerOf( currentSelection[0] );
- manualContourModel *cModel = cControler->GetManualContourModel();
+ manualBaseModel *cModel = cControler->GetManualContourModel();
int i,size = cModel->GetNumberOfPointsSpline();
double x,y,z;
for (i=0; i<size; i++)
//------------------------------------------------------------------------------------------------------------
void wxVtkBaseView_SceneManager::SetWidthContour(double width)
{
- _widthOfContour = width;
+ _widthOfContour = width;
+ _widthOfControlPoint = _widthOfContour*_widthOfContour/2;
manualViewBaseContour *cViewer;
ContourWrap_ViewControl *conwraviwcont;
- std::map <std::string, ContourWrap_ViewControl *>::iterator iter;;
-
- for (iter=_contours_ViewControl->begin(); iter!=_contours_ViewControl->end(); iter++ )
+ std::map <std::string, ContourWrap_ViewControl *>::iterator iter;
+
+ if (_contours_ViewControl!=NULL)
{
- conwraviwcont = iter->second;
- cViewer = conwraviwcont->getViewer();
- cViewer->SetWidthLine(_widthOfContour);
- }
+ for (iter=_contours_ViewControl->begin(); iter!=_contours_ViewControl->end(); iter++ )
+ {
+ conwraviwcont = iter->second;
+ cViewer = conwraviwcont->getViewer();
+ cViewer->SetShowText( false ); // EED 28Mars2011
+ cViewer->SetWidthLine( _widthOfContour );
+ cViewer->SetRange( _widthOfControlPoint );
+ } // for
+ } // if
}
bool wxVtkBaseView_SceneManager::isEditableCControler(std::string theKeyName){
ContourWrap_ViewControl* ccon = getContourWrap_ViewControlOf(theKeyName);
- manualViewBaseContour * cViewer = ccon->getViewer();
- manualContourBaseControler * cControler = ccon->getControler();
+ manualViewBaseContour * cViewer = ccon->getViewer();
+ manualContourBaseControler * cControler = ccon->getControler();
removeFromScene(theKeyName);
removeWrap(theKeyName);
delete cViewer;
delete cControler;
}
-
\ No newline at end of file
+
+
+