* \brief Class bbtk::vtkGObjectView : abstract black-box interface.
*/
-/**
-* \class bbtk::vtkGObjectView
-* \brief
-*/
+/****
+* Design and Developpement of BBTK GEditor
+* Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+* RaC - 2010
+****/
#ifndef __vtkGObjectView_h__
#define __vtkGObjectView_h__
//Includes creaMaracasVisu
#include <wxVtkBaseView.h>
+#include <vtkInteractorStyleBaseView.h>
//Includes vtk
#include <vtkRenderer.h>
namespace bbtk
{
- class vtkGObjectView //: public Observer
+ class vtkGObjectView : public Observer
{
public:
~vtkGObjectView();
//Public methods
+
void setModel(GObjectModel *model);
void setBaseView(wxVtkBaseView* baseView);
void initVtkObjects();
- bool isPointInside(int X,int Y);
+ void setStartDragging(bool param);
+
+ void setState(int state);
+ int getState();
+
+ // Method to force a vtk refresh to the list of controllers of the wxVtkBaseView
+ void setRefreshWaiting();
+
+ virtual bool isPointInside(int X,int Y);
+ virtual void moveObject(int X, int Y);
- virtual void update();
+ virtual void removeFromScene();
+ virtual void update(int idController,int command);
+
private:
//Private Attributes
+ bool _isStartDragging;
+
+ //Makes a difference between the first point clicked and the new position, in order to move the selected objects
+ double dragDifX;
+ double dragDifY;
+
//Private Methods
protected:
//Protected Attributes
- wxVtkBaseView *_baseView;
- GObjectModel *_model;
- vtkActor *_objectActor;
+
+ wxVtkBaseView * _baseView;
+ GObjectModel * _model;
+ vtkActor * _borderObjectActor;
+ vtkActor * _fillObjectActor;
+ vtkPolyDataMapper * _fillPolyMapper;
+ vtkPolyDataMapper * _borderPolyMapper;
+
+ vtkPoints *_pts;
+ // State of the object (See GlobalConstants.h)
+ int _state;
+
//Protected Methods
virtual void createVtkObjects();
virtual void addVtkActors();
+ virtual void removeVtkActors();
+ virtual void updateColors();
};