}
//=========================================================================
+/*
bool GBoxController::OnMouseMove()
{
-
if ( _vtkInteractorStyleBaseView!=NULL)
{
int X,Y;
crea::wxVTKRenderWindowInteractor *_wxVTKiren;
_wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
_wxVTKiren->GetEventPosition( X , Y );
-
int state = _view->getState();
-
//Evaluate new state
-
if(state == NOTHING_HAPPENS)
{
if(_view->isPointInside(X,Y))
_view->setState(NOTHING_HAPPENS);
}
}
-
_model->notifyObservers(getId());
-
}
return true;
}
+ */
+
+//=========================================================================
+bool GBoxController::OnMouseMove()
+{
+ if ( _vtkInteractorStyleBaseView!=NULL)
+ {
+ int X,Y;
+ crea::wxVTKRenderWindowInteractor *_wxVTKiren;
+ _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
+ _wxVTKiren->GetEventPosition( X , Y );
+ int state = _view->getState();
+ //Evaluate new state
+ if(state == NOTHING_HAPPENS)
+ {
+ if(_view->isPointInside(X,Y))
+ {
+ _view->setState(HIGHLIGHTED);
+ }
+ return true; // to avoid to redraw all if nothing
+ } // state
+ if( state==HIGHLIGHTED)
+ {
+ if(!_view->isPointInside(X,Y))
+ {
+ _view->setState(NOTHING_HAPPENS);
+ }
+ } // state
+// if ((state==DRAG) && (_isLeftClickDown==true) )
+// {
+// _objHasBeenMoved=true;
+// } // state
+ _model->notifyObservers(getId());
+ }
+ return true;
+}
+
+
+
+
//=========================================================================
+/*
bool GBoxController::OnLeftButtonDown()
{
bool ok=true;
int state = _view->getState();
-
//Evaluate new state
if(state == HIGHLIGHTED)
{
- ok=false;
- _isLeftClickDown=true;
+ ok = false;
+ _isLeftClickDown = true;
_view->setState(SELECTED);
_model->notifyObservers(getId(),ADD_TO_SELECTED);
}
return ok;
-
}
+*/
+
+bool GBoxController::OnLeftButtonDown()
+{
+// _objHasBeenMoved = false;
+ _isLeftClickDown = true;
+ bool ok=true;
+ int X,Y;
+ crea::wxVTKRenderWindowInteractor *_wxVTKiren;
+ _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
+ _wxVTKiren->GetEventPosition( X , Y );
+ int state = _view->getState();
+ //Evaluate new state
+ if(_view->isPointInside(X,Y))
+ {
+// if(state == HIGHLIGHTED)
+//EED3oct2010 if ( (state == HIGHLIGHTED) && (ctrlkey==1 ) )
+ if(state == SELECTED)
+ {
+ _view->setState(NOTHING_HAPPENS);
+ _model->notifyObservers(getId(),REMOVE_FROM_SELECTED);
+ } else {
+ ok=false;
+ _view->setState(SELECTED);
+ _model->notifyObservers(getId(),ADD_TO_SELECTED);
+ }
+ } // EED 2022-09-16
+ int shiftkey = _vtkInteractorStyleBaseView->GetInteractor()->GetShiftKey();
+ int ctrlkey = _vtkInteractorStyleBaseView->GetInteractor()->GetControlKey();
+ ctrlkey = ctrlkey + shiftkey;
+ if ( (state==DRAG) && (ctrlkey==1) && (_view->isPointInside(X,Y)==true) )
+ {
+ _view->setState(NOTHING_HAPPENS);
+ _model->notifyObservers(getId(),REMOVE_FROM_SELECTED);
+ }
+ return ok;
+}
+
+
//=========================================================================
wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
wxVTKiren->GetEventPosition(X,Y);
+ /*
int state = _view->getState();
//Evaluate new state
if(_isLeftClickDown)
_model->notifyObservers(getId());
}
}
+*/
return true;
}