From 878ac6ad472bc459f4e364c16890e5026c401944 Mon Sep 17 00:00:00 2001 From: corredor <> Date: Fri, 16 Apr 2010 13:54:16 +0000 Subject: [PATCH] Organizing code, the state now is in the view and the general render was simplified with Maracas style --- .../bbsKernelEditorGraphic/GBlackBoxModel.cxx | 20 +- .../bbsKernelEditorGraphic/GObjectModel.cxx | 15 - .../bbsKernelEditorGraphic/GObjectModel.h | 4 +- .../bbsKernelEditorGraphic/GPortModel.cxx | 10 +- .../bbsKernelEditorGraphic/GPortModel.h | 3 +- .../bbsKernelEditorGraphic/Observable.cxx | 4 +- .../bbsKernelEditorGraphic/Observable.h | 2 +- .../bbsKernelEditorGraphic/Observer.cxx | 2 +- .../bbsKernelEditorGraphic/Observer.h | 2 +- .../wxVtkSceneManager.cxx | 95 +++--- .../wxVtkSceneManager.h | 12 +- .../GBlackBoxController.cxx | 35 +- .../GBlackBoxController.h | 1 + .../GObjectController.cxx | 301 ++++++++++-------- .../GObjectController.h | 7 + .../GPortController.cxx | 15 +- .../vtkGBlackBoxView.cxx | 124 ++++---- .../bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h | 14 +- .../bbsVtkGUIEditorGraphic/vtkGObjectView.cxx | 33 +- .../bbsVtkGUIEditorGraphic/vtkGObjectView.h | 9 +- .../bbsVtkGUIEditorGraphic/vtkGPortView.cxx | 39 ++- .../bbsVtkGUIEditorGraphic/vtkGPortView.h | 6 +- 22 files changed, 408 insertions(+), 345 deletions(-) diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GBlackBoxModel.cxx b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GBlackBoxModel.cxx index fa165c0..bdaf53d 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GBlackBoxModel.cxx +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GBlackBoxModel.cxx @@ -97,35 +97,19 @@ namespace bbtk int i; for(i=0;i<_inputs.size();i++) { - _inputs[i]->updatePortPosition(i); + _inputs[i]->updatePortPosition(); } //Refresh outputs position for(i=0;i<_outputs.size();i++) { - _outputs[i]->updatePortPosition(i); + _outputs[i]->updatePortPosition(); } } //========================================================================= - GPortModel* GBlackBoxModel::getStartOutputPort() - { - GPortModel* temp = NULL; - - for(int i=0; i<_inputs.size() && temp == NULL;i++) - { - if(_outputs[i]->getState() == CREATING_CONTOUR) - { - temp = _outputs[i]; - } - } - - return temp; - } - - //========================================================================= } // EO namespace bbtk diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.cxx b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.cxx index 15d0d39..bd863cc 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.cxx +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.cxx @@ -50,7 +50,6 @@ namespace bbtk _xFin = 0; _yFin = 0; _zFin = 900; - _state = NOTHING_HAPPENS; } //========================================================================= @@ -100,20 +99,6 @@ namespace bbtk } //========================================================================= - void GObjectModel::setState(int state) - { - _state = state; - } - - //========================================================================= - - int GObjectModel::getState() - { - return _state; - } - - //========================================================================= - void GObjectModel::setGObjectType(int gObjectType) { _gObjectType = gObjectType; diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.h b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.h index 43f4591..5c3deea 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.h +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.h @@ -74,8 +74,7 @@ namespace bbtk void getCenter(double& x, double& y, double& z); virtual void setInicPoint(double& x, double& y, double& z); virtual void setFinalPoint(double& x, double& y, double& z); - void setState(int state); - int getState(); + virtual void move(double xx,double yy,double zz); virtual bool isPointInside(double x,double y, double z); @@ -107,7 +106,6 @@ namespace bbtk double _yFin; double _zFin; - int _state; int _gObjectType; std::string _bbtkType; diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx index 8672eed..50b0fd6 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx @@ -45,6 +45,7 @@ namespace bbtk { _parentBox = NULL; _portType=-1; + _posInBox=0; } //========================================================================= @@ -57,14 +58,15 @@ namespace bbtk { _parentBox = blackBox; _portType = portType; + _posInBox = pos; - updatePortPosition(pos); + updatePortPosition(); } //========================================================================= - void GPortModel::updatePortPosition(int pos) + void GPortModel::updatePortPosition() { double xInic, yInic,zInic,xFin,yFin,zFin; _parentBox->getInicPoint(xInic,yInic,zInic); @@ -80,8 +82,8 @@ namespace bbtk posY = yFin; } - //Variable 'pos' starts with value 0 and it represents the position of the port in the box from left to right - posX = xInic + PORT_WIDTH + pos*2*PORT_WIDTH; + //Attribute '_posInBox' starts with value 0 and it represents the position of the port in the box from left to right + posX = xInic + PORT_WIDTH + _posInBox*2*PORT_WIDTH; setInicPoint(posX,posY,posZ); diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.h b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.h index 1a32e09..9f731cc 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.h +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.h @@ -70,7 +70,7 @@ namespace bbtk //Public methods void registerInBox(GBlackBoxModel *blackBox,int portType, int pos); - void updatePortPosition(int pos); + void updatePortPosition(); int getPortType(); private: @@ -80,6 +80,7 @@ namespace bbtk GBlackBoxModel *_parentBox; int _portType; + int _posInBox; //Private Methods diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observable.cxx b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observable.cxx index 82c5196..c52934c 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observable.cxx +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observable.cxx @@ -59,14 +59,14 @@ namespace bbtk //========================================================================= - void Observable::notifyObservers(int command) + void Observable::notifyObservers(int idObservable,int command) { if(_changed) { int i; for(i=0;i<_observers.size();i++) { - _observers[i]->update(command); + _observers[i]->update(idObservable,command); } _changed=false; } diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observable.h b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observable.h index a55b17d..a165b9e 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observable.h +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observable.h @@ -71,7 +71,7 @@ namespace bbtk bool hasChanged(); - void notifyObservers(int command=REPAINT); + void notifyObservers(int idObservable=-1,int command=REPAINT); void setChanged(); diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observer.cxx b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observer.cxx index d80b07d..80dd23b 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observer.cxx +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observer.cxx @@ -52,7 +52,7 @@ namespace bbtk } //========================================================================= - void Observer::update(int command) //virtual + void Observer::update(int idObservable,int command) //virtual { //virtual } diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observer.h b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observer.h index bd0e345..9b9fa8c 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observer.h +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/Observer.h @@ -59,7 +59,7 @@ namespace bbtk ~Observer(); //Public methods - virtual void update(int command); + virtual void update(int idObservable,int command); private: diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.cxx b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.cxx index 8592cc1..23ea678 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.cxx +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.cxx @@ -135,14 +135,18 @@ namespace bbtk //========================================================================= + void wxVtkSceneManager::disconnectDrop() { _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget(NULL); } + //========================================================================= + wxVtkSceneManager::~wxVtkSceneManager() { } + //========================================================================= void wxVtkSceneManager::configureBaseView() @@ -158,9 +162,8 @@ namespace bbtk interactorstylebaseview->SetwxVtkBaseView(_baseView); _baseView->GetRenderer()->GetActiveCamera()->ParallelProjectionOn(); - _baseView->GetRenderer()->ResetCamera(-100,100,-100,100,900,900); + _baseView->GetRenderer()->ResetCamera(-100,100,-100,100,900,1000); - _baseView->GetRenderer()->SetBackground(0.9,0.9,0.9); _baseView->GetRenderer()->GradientBackgroundOff(); _baseView->Refresh(); @@ -199,7 +202,15 @@ namespace bbtk int cantObjects = _objects.size(); cantObjects++; std::stringstream stream; - stream << "Box:Algo " << cantObjects; + + if(cantObjects<10) + { + stream << "Box0" << cantObjects; + } + else + { + stream << "Box" << cantObjects; + } std::string arraystring = stream.str(); model->setBBTKName(arraystring); @@ -216,7 +227,7 @@ namespace bbtk for(itInput = descriptorInMap.begin(); itInput != descriptorInMap.end(); ++itInput) { BlackBoxInputDescriptor *desc = itInput->second; - createGInputPort(desc,model,i); + createGInputPort(GINPUTPORT,i,model,desc); i++; } @@ -228,7 +239,7 @@ namespace bbtk for(itOutput = descriptorOutMap.begin();itOutput != descriptorOutMap.end(); ++itOutput) { BlackBoxOutputDescriptor *desc = itOutput->second; - createGOutputPort(desc,model,i); + createGOutputPort(GOUTPUTPORT,i,model,desc); i++; } @@ -249,44 +260,32 @@ namespace bbtk //Register the controller of the new object registerController((InteractorStyleMaracas*) controller); - //Add the object to the objects list (only boxes and connectors) - _objects.push_back(model); + //Add the object to the objects list + _objects.push_back(controller); + + int newId = _controllers.size(); + controller->setId(newId); + _controllers[newId] = controller; } //========================================================================= - void wxVtkSceneManager::createGOutputPort(BlackBoxOutputDescriptor *desc,GBlackBoxModel *blackBox, int pos) + void wxVtkSceneManager::createGInputPort(int portType, int posinBox,GBlackBoxModel *blackBox, BlackBoxInputDescriptor *desc) { - int type = GPORT; - - //Create the MVC Objects - GPortModel *model = (GPortModel*)GObjectsMVCFactory::getInstance()->createGObjectModel(type); - vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type); - GObjectController* controller = GObjectsMVCFactory::getInstance()->createGObjectController(type); - - model->registerInBox(blackBox,GOUTPUTPORT, pos); - blackBox->addOutputPort(model); - - model->addObserver(view); - model->addObserver(this); + createGPort(portType,posinBox,blackBox); + } - //Associates the view with the correspondent renderer and the model. - //(NOTE: Refresh is only made by the view) - view->setModel(model); - view->setBaseView(_baseView); - view->initVtkObjects(); - - //Associates the controller with the correspondent model and view - controller->setModelAndView(model,view); + //========================================================================= - //Register the controller of the new object - registerController((InteractorStyleMaracas*) controller); + void wxVtkSceneManager::createGOutputPort(int portType, int posinBox,GBlackBoxModel *blackBox, BlackBoxOutputDescriptor *desc) + { + createGPort(portType,posinBox,blackBox); } //========================================================================= - void wxVtkSceneManager::createGInputPort(BlackBoxInputDescriptor *desc,GBlackBoxModel *blackBox, int pos) + void wxVtkSceneManager::createGPort(int portType, int posInBox,GBlackBoxModel *blackBox) { int type = GPORT; @@ -295,9 +294,9 @@ namespace bbtk vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type); GObjectController* controller = GObjectsMVCFactory::getInstance()->createGObjectController(type); - model->registerInBox(blackBox,GINPUTPORT,pos); - blackBox->addInputPort(model); - + model->registerInBox(blackBox,portType, posInBox); + blackBox->addOutputPort(model); + model->addObserver(view); model->addObserver(this); @@ -310,8 +309,14 @@ namespace bbtk //Associates the controller with the correspondent model and view controller->setModelAndView(model,view); + model->notifyObservers(); + //Register the controller of the new object registerController((InteractorStyleMaracas*) controller); + + int newId = _controllers.size(); + controller->setId(newId); + _controllers[newId] = controller; } //========================================================================= @@ -380,25 +385,25 @@ namespace bbtk //========================================================================= - void wxVtkSceneManager::update(int command) + void wxVtkSceneManager::update(int idObservable,int command) { if(command==INIT_CREATION_CONTOUR) - { - for(int i = 0; i<_objects.size();i++) + { + GObjectController* cont = _controllers[idObservable]; + if(cont->getGObjectType() == GPORT) { - if(_objects[i]->getGObjectType() == GBLACKBOX) - { - - GPortModel* startOutputPort=((GBlackBoxModel*)_objects[i])->getStartOutputPort(); - createGConnector(startOutputPort); + GPortController* controller = (GPortController*)cont; + vtkGPortView* view = (vtkGPortView*)controller->getView(); - } - else + if(view->getState() == CREATING_CONTOUR) { - // The others must not react to events + //pre: The port in this state is an output port + GPortModel* startOutputPort = (GPortModel*)controller->getModel(); + createGConnector(startOutputPort); } } + } } diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.h b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.h index e1dccfc..f539e92 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.h +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/wxVtkSceneManager.h @@ -47,6 +47,7 @@ Version: $Revision$ #include "GObjectsMVCFactory.h" #include "Observer.h" #include "GPortModel.h" +#include "vtkGPortView.h" #include "GConnectorView.h" //Includes bbtk @@ -85,8 +86,9 @@ namespace bbtk void configureBaseView(); void createGBlackBox(int x, int y,std::string packageName, std::string boxName); - void createGInputPort(BlackBoxInputDescriptor *desc,GBlackBoxModel *blackBox, int pos); - void createGOutputPort(BlackBoxOutputDescriptor *desc,GBlackBoxModel *blackBox, int pos); + void createGPort(int portType, int posinBox,GBlackBoxModel *blackBox); + void createGInputPort(int portType, int posinBox,GBlackBoxModel *blackBox, BlackBoxInputDescriptor *desc); + void createGOutputPort(int portType, int posinBox,GBlackBoxModel *blackBox, BlackBoxOutputDescriptor *desc); void createGConnector(GPortModel* startPort); void registerController(InteractorStyleMaracas *param); @@ -98,15 +100,15 @@ namespace bbtk virtual bool OnMouseMove(); - virtual void update(int command); + virtual void update(int idObservable,int command); private: int _id; wxVtk3DBaseView *_baseView; - std::vector _objects; - std::vector _selectedObjects; + std::vector _objects; + std::map _controllers; protected: diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GBlackBoxController.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GBlackBoxController.cxx index cf4037e..952e9a9 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GBlackBoxController.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GBlackBoxController.cxx @@ -62,7 +62,7 @@ namespace bbtk _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); _wxVTKiren->GetEventPosition( X , Y ); - int state = _model->getState(); + int state = _view->getState(); //Evaluate new state if(!_model->hasChanged() && state == DRAG) @@ -75,7 +75,7 @@ namespace bbtk { if(_view->isPointInside(X,Y)) { - _model->setState(HIGHLIGHTED); + _view->setState(HIGHLIGHTED); _model->setChanged(); } } @@ -83,12 +83,13 @@ namespace bbtk { if(!_view->isPointInside(X,Y)) { - _model->setState(NOTHING_HAPPENS); + _view->setState(NOTHING_HAPPENS); _model->setChanged(); } } - _model->notifyObservers(); + _model->notifyObservers(_id); + } return true; } @@ -105,13 +106,13 @@ namespace bbtk wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X,Y); - int state = _model->getState(); + int state = _view->getState(); //Evaluate new state if(!_model->hasChanged() && state==HIGHLIGHTED) { _view->isStartDragging(true); - _model->setState(DRAG); + _view->setState(DRAG); _model->setChanged(); } @@ -120,12 +121,12 @@ namespace bbtk if(_view->isPointInside(X,Y)) { _view->isStartDragging(true); - _model->setState(DRAG); + _view->setState(DRAG); _model->setChanged(); } } - _model->notifyObservers(); + _model->notifyObservers(_id); } return true; } @@ -141,22 +142,22 @@ namespace bbtk wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X,Y); - int state = _model->getState(); + int state = _view->getState(); //Evaluate new state if(!_model->hasChanged() && state==CLICKED) { - _model->setState(SELECTED); + _view->setState(SELECTED); _model->setChanged(); } if( !_model->hasChanged() && state == DRAG) { - _model->setState(SELECTED); + _view->setState(SELECTED); _model->setChanged(); } - _model->notifyObservers(); + _model->notifyObservers(_id); } return true; @@ -173,7 +174,7 @@ namespace bbtk wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X,Y); - _model->notifyObservers(); + _model->notifyObservers(_id); } return true; } @@ -189,19 +190,19 @@ namespace bbtk wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X, Y); - int state = _model->getState(); + int state = _view->getState(); //Evaluate new state if( !_model->hasChanged() && state == SELECTED) { - _model->setState(NOTHING_HAPPENS); + _view->setState(NOTHING_HAPPENS); _model->setChanged(); } - _model->notifyObservers(); + _model->notifyObservers(_id); } return true; -} + } //========================================================================= diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GBlackBoxController.h b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GBlackBoxController.h index b6baee4..66ca365 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GBlackBoxController.h +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GBlackBoxController.h @@ -72,6 +72,7 @@ namespace bbtk virtual bool OnLeftDClick(); virtual bool OnRightButtonDown(); + private: //Attributes diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx index 6b1174f..0dffa0e 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx @@ -47,9 +47,11 @@ namespace bbtk } //========================================================================= + GObjectController::~GObjectController() { } + //========================================================================= void GObjectController::setModelAndView(GObjectModel* model, vtkGObjectView* view) @@ -57,183 +59,228 @@ namespace bbtk _model = model; _view = view; } - //========================================================================= -bool GObjectController::OnMouseMove() -{ - - /********************** VIRTUAL *************************/ + //========================================================================= - if ( _vtkInteractorStyleBaseView!=NULL) + bool GObjectController::OnMouseMove() { - int X,Y; - wxVTKRenderWindowInteractor *_wxVTKiren; - _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - _wxVTKiren->GetEventPosition( X , Y ); - - int state = _model->getState(); - //Evaluate new state - if(!_model->hasChanged() && state == DRAG) - { - moveObject(X,Y); - _model->setChanged(); - } + /********************** VIRTUAL *************************/ - if(!_model->hasChanged() && state == NOTHING_HAPPENS) - { - if(_view->isPointInside(X,Y)) - { - _model->setState(HIGHLIGHTED); - _model->setChanged(); - } - } - if(!_model->hasChanged() && state==HIGHLIGHTED) + if ( _vtkInteractorStyleBaseView!=NULL) { - if(!_view->isPointInside(X,Y)) + int X,Y; + wxVTKRenderWindowInteractor *_wxVTKiren; + _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); + _wxVTKiren->GetEventPosition( X , Y ); + + int state = _view->getState(); + + //Evaluate new state + if(!_model->hasChanged() && state == DRAG) { - _model->setState(NOTHING_HAPPENS); + moveObject(X,Y); _model->setChanged(); } + + if(!_model->hasChanged() && state == NOTHING_HAPPENS) + { + if(_view->isPointInside(X,Y)) + { + _view->setState(HIGHLIGHTED); + _model->setChanged(); + } + } + if(!_model->hasChanged() && state==HIGHLIGHTED) + { + if(!_view->isPointInside(X,Y)) + { + _view->setState(NOTHING_HAPPENS); + _model->setChanged(); + } + } + + _model->notifyObservers(_id); + } - - _model->notifyObservers(); - } - /**/ + /**/ - return true; -} -//========================================================================= -bool GObjectController::OnLeftButtonDown() -{ - /********************** VIRTUAL ************************* + return true; + } + + //========================================================================= - if ( _vtkInteractorStyleBaseView!=NULL ) + bool GObjectController::OnLeftButtonDown() { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - - int state = _model->getState(); + /********************** VIRTUAL ************************* - //Evaluate new state - if(!_model->hasChanged() && state==HIGHLIGHTED) - { - _view->isStartDragging(true); - _model->setState(DRAG); - _model->setChanged(); - } - - if( !_model->hasChanged() && state == SELECTED) + if ( _vtkInteractorStyleBaseView!=NULL ) { - if(_view->isPointInside(X,Y)) + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X,Y); + + int state = _model->getState(); + + //Evaluate new state + if(!_model->hasChanged() && state==HIGHLIGHTED) { _view->isStartDragging(true); _model->setState(DRAG); _model->setChanged(); - } + } + + if( !_model->hasChanged() && state == SELECTED) + { + if(_view->isPointInside(X,Y)) + { + _view->isStartDragging(true); + _model->setState(DRAG); + _model->setChanged(); + } + } + + _model->notifyObservers(); } - - _model->notifyObservers(); + + */ + + return true; } - */ + //========================================================================= + + bool GObjectController::OnLeftButtonUp() + { - return true; -} -//========================================================================= -bool GObjectController::OnLeftButtonUp() -{ + /********************** VIRTUAL ************************* + + if ( _vtkInteractorStyleBaseView!=NULL ) + { + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X,Y); + + int state = _model->getState(); + + //Evaluate new state + if(!_model->hasChanged() && state==CLICKED) + { + _model->setState(SELECTED); + _model->setChanged(); + } + + if( !_model->hasChanged() && state == DRAG) + { + _model->setState(SELECTED); + _model->setChanged(); + } + + _model->notifyObservers(); + + } - /********************** VIRTUAL ************************* + */ + return true; + } - if ( _vtkInteractorStyleBaseView!=NULL ) + //========================================================================= + + bool GObjectController::OnLeftDClick() { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); + /********************** VIRTUAL ************************* - int state = _model->getState(); - - //Evaluate new state - if(!_model->hasChanged() && state==CLICKED) + if ( _vtkInteractorStyleBaseView!=NULL ) { - _model->setState(SELECTED); - _model->setChanged(); + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X,Y); + + _model->notifyObservers(); } - if( !_model->hasChanged() && state == DRAG) + */ + return true; + } + + //========================================================================= + + bool GObjectController::OnRightButtonDown() + { + /********************** VIRTUAL *************************/ + + if( _vtkInteractorStyleBaseView!= NULL ) { - _model->setState(SELECTED); - _model->setChanged(); + int X,Y; + wxVTKRenderWindowInteractor *wxVTKiren; + wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); + wxVTKiren->GetEventPosition(X, Y); + + int state = _view->getState(); + + //Evaluate new state + if( !_model->hasChanged() && state == SELECTED) + { + _view->setState(NOTHING_HAPPENS); + _model->setChanged(); + } + + _model->notifyObservers(_id); } + + /**/ - _model->notifyObservers(); + return true; } - */ - return true; -} -//========================================================================= -bool GObjectController::OnLeftDClick() -{ - /********************** VIRTUAL ************************* + //========================================================================= - if ( _vtkInteractorStyleBaseView!=NULL ) + void GObjectController::moveObject(int X,int Y) { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X,Y); - - _model->notifyObservers(); + _view->moveObject(X,Y); } - */ - return true; -} -//========================================================================= -bool GObjectController::OnRightButtonDown() -{ - /********************** VIRTUAL *************************/ + //========================================================================= - if( _vtkInteractorStyleBaseView!= NULL ) + int GObjectController::getGObjectType() { - int X,Y; - wxVTKRenderWindowInteractor *wxVTKiren; - wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); - wxVTKiren->GetEventPosition(X, Y); - - int state = _model->getState(); - - //Evaluate new state - if( !_model->hasChanged() && state == SELECTED) - { - _model->setState(NOTHING_HAPPENS); - _model->setChanged(); - } - - _model->notifyObservers(); + return _model->getGObjectType(); } + + //========================================================================= - /**/ + GObjectModel* GObjectController::getModel() + { + return _model; + } - return true; + //========================================================================= -} + vtkGObjectView* GObjectController::getView() + { + return _view; + } -//========================================================================= + //========================================================================= -void GObjectController::moveObject(int X,int Y) -{ - _view->moveObject(X,Y); -} + int GObjectController::getId() + { + return _id; + } -//========================================================================= + //========================================================================= + + void GObjectController::setId(int id) + { + _id = id; + } + + //========================================================================= } // EO namespace bbtk diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.h b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.h index a490e63..873396e 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.h +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.h @@ -69,6 +69,12 @@ namespace bbtk //Public methods void setModelAndView(GObjectModel* model, vtkGObjectView* view); + int getGObjectType(); + GObjectModel* getModel(); + vtkGObjectView* getView(); + + int getId(); + void setId(int id); private: @@ -83,6 +89,7 @@ namespace bbtk //Protected Attributes GObjectModel* _model; vtkGObjectView* _view; + int _id; //Protected Methods virtual bool OnMouseMove(); diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GPortController.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GPortController.cxx index 7e66a83..b2f863b 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GPortController.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GPortController.cxx @@ -62,18 +62,18 @@ namespace bbtk wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X,Y); - int state = _model->getState(); + int state = _view->getState(); int portType = ((GPortModel*)_model)->getPortType(); //Evaluate new state if(!_model->hasChanged() && state==HIGHLIGHTED && portType==GOUTPUTPORT ) { - _model->setState(CREATING_CONTOUR); + _view->setState(CREATING_CONTOUR); _model->setChanged(); } - _model->notifyObservers(); + _model->notifyObservers(_id); } return true; @@ -88,21 +88,22 @@ namespace bbtk wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor(); wxVTKiren->GetEventPosition(X,Y); - int state = _model->getState(); + int state = _view->getState(); //Evaluate new state if(!_model->hasChanged() && state==CREATING_CONTOUR) { if(_view->isPointInside(X,Y)) { + _view->setState(CREATING_CONTOUR); _model->setChanged(); - _model->notifyObservers(INIT_CREATION_CONTOUR); + _model->notifyObservers(_id,INIT_CREATION_CONTOUR); } else { - _model->setState(NOTHING_HAPPENS); + _view->setState(NOTHING_HAPPENS); _model->setChanged(); - _model->notifyObservers(); + _model->notifyObservers(_id); } } diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.cxx index e509662..fbdd952 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.cxx @@ -51,39 +51,11 @@ namespace bbtk } //========================================================================= - void vtkGBlackBoxView::update(int command) + void vtkGBlackBoxView::update(int idObservable,int command) { - _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); - - if(_model->getState()==NOTHING_HAPPENS) - { - _objectActor->GetProperty()->SetLineWidth(1); - _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); - //_nameActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); - _typeActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); - } - else if(_model->getState()==HIGHLIGHTED) - { - _objectActor->GetProperty()->SetLineWidth(2); - _objectActor->GetProperty()->SetColor(BOXCONTOUR_HIGHLIGHTED_R,BOXCONTOUR_HIGHLIGHTED_G,BOXCONTOUR_HIGHLIGHTED_B); - //_nameActor->GetProperty()->SetColor(BOXCONTOUR_HIGHLIGHTED_R,BOXCONTOUR_HIGHLIGHTED_G,BOXCONTOUR_HIGHLIGHTED_B); - _typeActor->GetProperty()->SetColor(BOXCONTOUR_HIGHLIGHTED_R,BOXCONTOUR_HIGHLIGHTED_G,BOXCONTOUR_HIGHLIGHTED_B); - } - else if(_model->getState()==DRAG) - { - _objectActor->GetProperty()->SetLineWidth(1.2); - _objectActor->GetProperty()->SetColor(BOXCONTOUR_DRAG_R,BOXCONTOUR_DRAG_G,BOXCONTOUR_DRAG_B); - //_nameActor->GetProperty()->SetColor(BOXCONTOUR_DRAG_R,BOXCONTOUR_DRAG_G,BOXCONTOUR_DRAG_B); - _typeActor->GetProperty()->SetColor(BOXCONTOUR_DRAG_R,BOXCONTOUR_DRAG_G,BOXCONTOUR_DRAG_B); - } - else if(_model->getState()==SELECTED) - { - _objectActor->GetProperty()->SetLineWidth(2); - _objectActor->GetProperty()->SetColor(BOXCONTOUR_SELECTED_R,BOXCONTOUR_SELECTED_G,BOXCONTOUR_SELECTED_B); - //_nameActor->GetProperty()->SetColor(BOXCONTOUR_SELECTED_R,BOXCONTOUR_SELECTED_G,BOXCONTOUR_SELECTED_B); - _typeActor->GetProperty()->SetColor(BOXCONTOUR_SELECTED_R,BOXCONTOUR_SELECTED_G,BOXCONTOUR_SELECTED_B); - } + updateColors(); + double xInic, yInic,zInic,xFin, yFin,zFin; _model->getInicPoint(xInic,yInic,zInic); _model->getFinalPoint(xFin, yFin,zFin); @@ -100,9 +72,7 @@ namespace bbtk updatePositionTextActors(xInic, yInic,zInic); //----------- - - _baseView->RefreshView(); - _baseView->Refresh(); + setRefreshWaiting(); } //========================================================================= @@ -147,53 +117,30 @@ namespace bbtk //------------ - /* - _vectorNameText = vtkVectorText::New(); + _nameActor = vtkTextActor3D::New(); std::string temp = _model->getBBTKName(); - _vectorNameText->SetText(temp.c_str()); - - vtkPolyDataMapper* txtMapper = vtkPolyDataMapper::New(); - txtMapper->SetInputConnection( _vectorNameText->GetOutputPort()); - _nameActor = vtkActor::New(); - _nameActor->SetMapper(txtMapper); - */ - - _vectorNameText = vtkTextActor3D::New(); - std::string temp = _model->getBBTKName(); - _vectorNameText->SetInput( temp.c_str() ); - + _nameActor->GetTextProperty()->SetFontSize(80); + _nameActor->GetTextProperty()->BoldOn(); + _nameActor->SetInput(temp.c_str()); //------------ - _vectorTypeText = vtkVectorText::New(); + _typeActor = vtkTextActor3D::New(); temp = _model->getBBTKType(); - _vectorTypeText->SetText(temp.c_str()); - - vtkPolyDataMapper* txtMapper = vtkPolyDataMapper::New(); - txtMapper->SetInputConnection( _vectorTypeText->GetOutputPort()); - _typeActor = vtkActor::New(); - _typeActor->SetMapper(txtMapper); + _typeActor->GetTextProperty()->SetFontSize(80); + _typeActor->GetTextProperty()->BoldOn(); + _typeActor->SetInput(temp.c_str()); //------------ updatePositionTextActors( xInic, yInic, zInic); - - //_nameActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); - _vectorNameText->GetTextProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); - _vectorNameText->GetTextProperty()->SetFontSize(75);//SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); - _vectorNameText->GetTextProperty()->BoldOn(); - _vectorNameText->SetScale(0.05,0.05,1); - _typeActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); - } //========================================================================= void vtkGBlackBoxView::addVtkActors()//virtual { - //_baseView->GetRenderer()->AddActor(_nameActor); - - _baseView->GetRenderer()->AddActor(_vectorNameText); + _baseView->GetRenderer()->AddActor(_nameActor); _baseView->GetRenderer()->AddActor(_typeActor); @@ -204,12 +151,49 @@ namespace bbtk void vtkGBlackBoxView::updatePositionTextActors(double xInic, double yInic, double zInic) { - //_nameActor->SetPosition(xInic+4,yInic-5,zInic); - //_nameActor->SetScale(2,2,1); - _vectorNameText->SetPosition(xInic+4,yInic-5,zInic); + _nameActor->SetPosition(xInic+4,yInic-5,zInic); + _nameActor->SetScale(0.04,0.04,1); _typeActor->SetPosition(xInic+4,yInic-10,zInic); - _typeActor->SetScale(2,2,1); + _typeActor->SetScale(0.04,0.04,1); + } + + //========================================================================= + + void vtkGBlackBoxView::updateColors() + { + _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); + _nameActor->GetTextProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); + _typeActor->GetTextProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); + + if(_state==NOTHING_HAPPENS) + { + _objectActor->GetProperty()->SetLineWidth(1); + _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); + _nameActor->GetTextProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); + _typeActor->GetTextProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); + } + else if(_state==HIGHLIGHTED) + { + _objectActor->GetProperty()->SetLineWidth(2); + _objectActor->GetProperty()->SetColor(BOXCONTOUR_HIGHLIGHTED_R,BOXCONTOUR_HIGHLIGHTED_G,BOXCONTOUR_HIGHLIGHTED_B); + _nameActor->GetTextProperty()->SetColor(BOXCONTOUR_HIGHLIGHTED_R,BOXCONTOUR_HIGHLIGHTED_G,BOXCONTOUR_HIGHLIGHTED_B); + _typeActor->GetTextProperty()->SetColor(BOXCONTOUR_HIGHLIGHTED_R,BOXCONTOUR_HIGHLIGHTED_G,BOXCONTOUR_HIGHLIGHTED_B); + } + else if(_state==DRAG) + { + _objectActor->GetProperty()->SetLineWidth(1.2); + _objectActor->GetProperty()->SetColor(BOXCONTOUR_DRAG_R,BOXCONTOUR_DRAG_G,BOXCONTOUR_DRAG_B); + _nameActor->GetTextProperty()->SetColor(BOXCONTOUR_DRAG_R,BOXCONTOUR_DRAG_G,BOXCONTOUR_DRAG_B); + _typeActor->GetTextProperty()->SetColor(BOXCONTOUR_DRAG_R,BOXCONTOUR_DRAG_G,BOXCONTOUR_DRAG_B); + } + else if(_state==SELECTED) + { + _objectActor->GetProperty()->SetLineWidth(2); + _objectActor->GetProperty()->SetColor(BOXCONTOUR_SELECTED_R,BOXCONTOUR_SELECTED_G,BOXCONTOUR_SELECTED_B); + _nameActor->GetTextProperty()->SetColor(BOXCONTOUR_SELECTED_R,BOXCONTOUR_SELECTED_G,BOXCONTOUR_SELECTED_B); + _typeActor->GetTextProperty()->SetColor(BOXCONTOUR_SELECTED_R,BOXCONTOUR_SELECTED_G,BOXCONTOUR_SELECTED_B); + } } //========================================================================= diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h index 8114f51..b64ce17 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGBlackBoxView.h @@ -49,6 +49,8 @@ Version: $Revision$ //Includes creaMaracasVisu +#include "vtkInteractorStyleBaseView.h" + //Includes vtk #include "vtkPolyDataMapper.h" @@ -83,13 +85,8 @@ namespace bbtk //Private Attributes vtkPoints *_pts; - vtkActor* _nameActor; - vtkActor* _typeActor; - - //vtkVectorText* _vectorNameText; - vtkTextActor3D* _vectorNameText; - - vtkVectorText* _vectorTypeText; + vtkTextActor3D* _nameActor; + vtkTextActor3D* _typeActor; //Private Methods void updatePositionTextActors(double xInic, double yInic, double zInic); @@ -101,7 +98,8 @@ namespace bbtk //Protected Methods virtual void addVtkActors(); virtual void createVtkObjects(); - virtual void update(int command); + virtual void update(int idObservable,int command); + virtual void updateColors(); }; diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx index 51761e7..db905de 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx @@ -46,6 +46,8 @@ namespace bbtk _baseView=NULL; _objectActor=NULL; _isStartDragging=false; + + _state = NOTHING_HAPPENS; } //========================================================================= @@ -54,7 +56,7 @@ namespace bbtk } //========================================================================= - void vtkGObjectView::update(int command)//virtual + void vtkGObjectView::update(int idObservable,int command)//virtual { //virtual } @@ -90,6 +92,13 @@ namespace bbtk //========================================================================= + void vtkGObjectView::updateColors() //virtual + { + //virtual + } + + //========================================================================= + void vtkGObjectView::addVtkActors()//virtual { _baseView->GetRenderer()->AddActor(_objectActor); @@ -141,6 +150,28 @@ namespace bbtk //========================================================================= + void vtkGObjectView::setState(int state) + { + _state = state; + } + + //========================================================================= + + int vtkGObjectView::getState() + { + return _state; + } + + //========================================================================= + + void vtkGObjectView::setRefreshWaiting() + { + ((vtkInteractorStyleBaseView*)_baseView->GetInteractorStyleBaseView())->SetRefresh_waiting(); + } + + //========================================================================= + + } // EO namespace bbtk // EOF diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.h b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.h index e15232f..ce1e4ce 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.h +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.h @@ -50,6 +50,7 @@ Version: $Revision$ //Includes creaMaracasVisu #include +#include //Includes vtk #include @@ -82,9 +83,13 @@ namespace bbtk virtual bool isPointInside(int X,int Y); virtual void moveObject(int X, int Y); - virtual void update(int command); + virtual void update(int idObservable,int command); void isStartDragging(bool param); + void setState(int state); + int getState(); + void setRefreshWaiting(); + private: //Private Attributes @@ -101,10 +106,12 @@ namespace bbtk wxVtkBaseView *_baseView; GObjectModel *_model; vtkActor *_objectActor; + int _state; //Protected Methods virtual void createVtkObjects(); virtual void addVtkActors(); + virtual void updateColors(); }; diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx index adbe0ca..42dcd21 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx @@ -42,7 +42,7 @@ namespace bbtk //========================================================================= vtkGPortView::vtkGPortView() - { + { } //========================================================================= @@ -51,18 +51,10 @@ namespace bbtk } //========================================================================= - void vtkGPortView::update(int command) + void vtkGPortView::update(int idObservable,int command) { - _objectActor->GetProperty()->SetColor(0.8,0.2,0.5); - if(_model->getState()==HIGHLIGHTED) - { - _objectActor->GetProperty()->SetColor(0.8,0.2,0.5); - } - else - { - _objectActor->GetProperty()->SetColor(0.3,0.2,0.2); - } - + updateColors(); + double xInic, yInic,zInic,xFin, yFin,zFin; _model->getInicPoint(xInic,yInic,zInic); @@ -74,10 +66,8 @@ namespace bbtk _pts->SetPoint(1, xInic, yFin, zInic ); _pts->SetPoint(2, xFin, yFin, zFin ); _pts->SetPoint(3, xFin, yInic, zFin ); - - //_baseView->GetRenderer()->Render(); - //_baseView->GetRenWin()->Render(); - + + setRefreshWaiting(); } //========================================================================= @@ -116,8 +106,25 @@ namespace bbtk _bboxMapper->SetInput(_pd); _objectActor->SetMapper(_bboxMapper); + updateColors(); + + + } + + //========================================================================= + + void vtkGPortView::updateColors() + { _objectActor->GetProperty()->SetColor(BOXCONTOUR_NH_R,BOXCONTOUR_NH_G,BOXCONTOUR_NH_B); + if(_state==HIGHLIGHTED) + { + _objectActor->GetProperty()->SetColor(0.8,0.2,0.5); + } + else + { + _objectActor->GetProperty()->SetColor(0.3,0.2,0.2); + } } //========================================================================= diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.h b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.h index d06e066..acbf772 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.h +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.h @@ -48,6 +48,7 @@ Version: $Revision$ #include "vtkGObjectView.h" //Includes creaMaracasVisu +#include "vtkInteractorStyleBaseView.h" //Includes vtk @@ -74,7 +75,8 @@ namespace bbtk vtkGPortView(); ~vtkGPortView(); - //Public methods + //Public methods + virtual void update(int idObservable,int command); private: @@ -89,7 +91,7 @@ namespace bbtk //Protected Methods virtual void createVtkObjects(); - virtual void update(int command); + virtual void updateColors(); }; -- 2.45.1