]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGObjectView.cxx
Implemented deleting of boxes from the scene....
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsVtkGUIEditorGraphic / vtkGObjectView.cxx
index 0f748b84285bbd570f084bd5e3bf63a3e6b03513..964c38825ef73075dfd98672338904c0c4a778e2 100644 (file)
@@ -43,8 +43,12 @@ namespace bbtk
        //=========================================================================
        vtkGObjectView::vtkGObjectView()
        {
-               _renderer=NULL;
-               _objectActor=NULL;
+               _baseView=NULL;
+               _borderObjectActor=NULL;
+               _fillObjectActor=NULL;
+               _isStartDragging=false;
+               
+               _state = NOTHING_HAPPENS;
        }
 
        //=========================================================================
@@ -53,9 +57,9 @@ namespace bbtk
        }
        //=========================================================================
 
-       void vtkGObjectView::refresh()
+       void vtkGObjectView::update(int idController,int command)//virtual
        {
-               //paint();
+               //virtual
        }
 
        //=========================================================================
@@ -67,9 +71,9 @@ namespace bbtk
 
        //=========================================================================
        
-       void vtkGObjectView::setRenderer(vtkRenderer* renderer)
+       void vtkGObjectView::setBaseView(wxVtkBaseView* baseView)
        {
-               _renderer=renderer;
+               _baseView=baseView;
        }
 
        //=========================================================================
@@ -89,13 +93,100 @@ namespace bbtk
 
        //=========================================================================
 
+       void vtkGObjectView::updateColors() //virtual
+       {
+               //virtual
+       }
+
+       //=========================================================================
+
        void vtkGObjectView::addVtkActors()//virtual
        {
-               _renderer->AddActor(_objectActor);
-               _renderer->Render();
+               _baseView->GetRenderer()->AddActor(_borderObjectActor);
+               _baseView->GetRenderer()->AddActor(_fillObjectActor);
+               _baseView->GetRenderer()->Render();
+       }
+
+       //=========================================================================
+
+       void vtkGObjectView::removeVtkActors()//virtual
+       {
+               _baseView->GetRenderer()->RemoveActor(_borderObjectActor);
+               _baseView->GetRenderer()->RemoveActor(_fillObjectActor);
+               _baseView->GetRenderer()->Render();
+       }
+
+       //=========================================================================
+
+       bool vtkGObjectView::isPointInside(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);
+               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();
        }
 
        //=========================================================================
+       
+       void vtkGObjectView::removeFromScene()
+       {
+               removeVtkActors();
+               setRefreshWaiting();
+       }
+
+       //=========================================================================
+
 
 }  // EO namespace bbtk