X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsVtkGUIEditorGraphic%2FvtkGObjectView.cxx;h=1c2fd8f8d1e6622f3fb1bab6d619033b61697fb2;hb=50851761f4216d932217db8e8fe56dd5aac6b0fb;hp=eb2155acba6f9a7341be41c0237f6bb095c5f7fb;hpb=098558ac7780900858114a8ae01fe93847d67043;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx index eb2155a..1c2fd8f 100644 --- a/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx +++ b/lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx @@ -44,7 +44,11 @@ namespace bbtk vtkGObjectView::vtkGObjectView() { _baseView=NULL; - _objectActor=NULL; + _objectBorderActor=NULL; + _fillBorderActor=NULL; + _isStartDragging=false; + + _state = NOTHING_HAPPENS; } //========================================================================= @@ -53,19 +57,9 @@ namespace bbtk } //========================================================================= - void vtkGObjectView::update() + void vtkGObjectView::update(int idController,int command)//virtual { - if(_model->getState()==NOTHING_HAPPENS) - { - _objectActor->GetProperty()->SetColor(0,0,0); - } - - if(_model->getState()==HIGHLIGHTED) - { - _objectActor->GetProperty()->SetColor(1,0,0); - } - _baseView->GetRenderer()->Render(); - //paint(); + //virtual } //========================================================================= @@ -99,23 +93,84 @@ namespace bbtk //========================================================================= + void vtkGObjectView::updateColors() //virtual + { + //virtual + } + + //========================================================================= + void vtkGObjectView::addVtkActors()//virtual { - _baseView->GetRenderer()->AddActor(_objectActor); + _baseView->GetRenderer()->AddActor(_objectBorderActor); + _baseView->GetRenderer()->AddActor(_fillBorderActor); _baseView->GetRenderer()->Render(); } //========================================================================= - bool vtkGObjectView::isPointInside(int X,int Y) + bool vtkGObjectView::isPointInside(int X,int Y) //virtual { - double xx=X,yy=Y,zz=0; + // RaC In the actual version, always z=900 + double xx=X,yy=Y,zz=900; _baseView->TransCoordScreenToWorld(xx,yy,zz); return _model->isPointInside(xx,yy,zz); } //========================================================================= + void vtkGObjectView::moveObject(int X,int Y) //virtual + { + // RaC In the actual version, always z=900 + double xx=X,yy=Y,zz=900; + _baseView->TransCoordScreenToWorld(xx,yy,zz); + + if(_isStartDragging) + { + _isStartDragging=false; + + double xInic,yInic,zInic; + _model->getInicPoint(xInic,yInic,zInic); + dragDifX=xx-xInic; + dragDifY=yy-yInic; + } + _model->move(xx-dragDifX,yy-dragDifY,zz); + + } + + //========================================================================= + + void vtkGObjectView::setStartDragging(bool param) + { + _isStartDragging=param; + dragDifX=0; + dragDifX=0; + } + + //========================================================================= + + void vtkGObjectView::setState(int state) + { + _state = state; + } + + //========================================================================= + + int vtkGObjectView::getState() + { + return _state; + } + + //========================================================================= + + void vtkGObjectView::setRefreshWaiting() + { + ((vtkInteractorStyleBaseView*)_baseView->GetInteractorStyleBaseView())->SetRefresh_waiting(); + } + + //========================================================================= + + } // EO namespace bbtk // EOF