vtkGObjectView::vtkGObjectView()
{
_baseView=NULL;
- _objectActor=NULL;
+ _borderObjectActor=NULL;
+ _fillObjectActor=NULL;
+ _isStartDragging=false;
+
+ _state = NOTHING_HAPPENS;
}
//=========================================================================
}
//=========================================================================
- void vtkGObjectView::refresh()
+ 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
}
//=========================================================================
//=========================================================================
+ void vtkGObjectView::updateColors() //virtual
+ {
+ //virtual
+ }
+
+ //=========================================================================
+
void vtkGObjectView::addVtkActors()//virtual
{
- _baseView->GetRenderer()->AddActor(_objectActor);
+ _baseView->GetRenderer()->AddActor(_borderObjectActor);
+ _baseView->GetRenderer()->AddActor(_fillObjectActor);
_baseView->GetRenderer()->Render();
}
//=========================================================================
- bool vtkGObjectView::isPointInside(int X,int Y)
+ void vtkGObjectView::removeVtkActors()//virtual
{
- double xx=X,yy=Y,zz=0;
+ _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
// EOF