+/*
+# ---------------------------------------------------------------------
+#
+# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
+# pour la Santé)
+# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
+#
+# This software is governed by the CeCILL-B license under French law and
+# abiding by the rules of distribution of free software. You can use,
+# modify and/ or redistribute the software under the terms of the CeCILL-B
+# license as circulated by CEA, CNRS and INRIA at the following URL
+# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
+# or in the file LICENSE.txt.
+#
+# As a counterpart to the access to the source code and rights to copy,
+# modify and redistribute granted by the license, users are provided only
+# with a limited warranty and the software's author, the holder of the
+# economic rights, and the successive licensors have only limited
+# liability.
+#
+# The fact that you are presently reading this means that you have had
+# knowledge of the CeCILL-B license and that you accept its terms.
+# ------------------------------------------------------------------------
+*/
+
+
/*=========================================================================
Program: bbtk
Module: $RCSfile$
* \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__
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
-
//Includes std
#include <iostream>
-
namespace bbtk
{
-
class vtkGObjectView : public Observer
{
-
public:
-
//Constructors
vtkGObjectView();
~vtkGObjectView();
-
//Public methods
void setModel(GObjectModel *model);
void setBaseView(wxVtkBaseView* baseView);
void initVtkObjects();
-
- virtual bool isPointInside(int X,int Y);
- virtual void moveObject(int X, int Y);
-
- virtual void update(int idController,int command);
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 removeFromScene();
-
+ virtual void update(int idController,int command);
+//protected
+ virtual void createVtkObjects();
+ virtual void addVtkActors();
private:
-
//Private Attributes
- bool _isStartDragging;
- double dragDifX;
- double dragDifY;
-
-
+ 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 *_borderObjectActor;
- vtkActor *_fillObjectActor;
- vtkPolyDataMapper* _fillPolyMapper;
- vtkPolyDataMapper* _borderPolyMapper;
- vtkPoints *_pts;
- int _state;
-
+ 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();
};
-
-
}
// namespace bbtk
#endif