+/*
+# ---------------------------------------------------------------------
+#
+# 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$
/* ---------------------------------------------------------------------
-* Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
-* Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
-*
-* 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.
-* ------------------------------------------------------------------------ */
+ * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
+ * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
+ *
+ * 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.
+ * ------------------------------------------------------------------------ */
/**
-* \file
-* \brief Class bbtk::GObjectModel : abstract black-box interface.
-*/
+ * \file
+ * \brief Class bbtk::GObjectModel : abstract black-box interface.
+ */
-/**
-* \class bbtk::GObjectModel
-* \brief
-*/
+/****
+ * Design and Developpement of BBTK GEditor
+ * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+ * RaC - 2010
+ ****/
#ifndef __GObjectModel_h__
#define __GObjectModel_h__
//Includes same project
#include "GlobalConstants.h"
+#include "Observable.h"
//Includes creaMaracasVisu
//Includes std
#include <iostream>
+//Includes bbtk
#include <bbtkBlackBoxDescriptor.h>
-namespace bbtk
-{
+namespace bbtk {
- class GObjectModel
- {
+ class GObjectModel : public Observable {
+ public:
- public:
+ //Constructors
+ GObjectModel( );
+ ~ GObjectModel( );
- //Constructors
- GObjectModel();
- ~GObjectModel();
-
- //Public methods
-
- void getInicPoint(double& x, double& y, double& z);
- void getFinalPoint(double& x, double& y, double& z);
- void setInicPoint(double& x, double& y, double& z);
- void setFinalPoint(double& x, double& y, double& z);
- void setState(int state);
- int getState();
- virtual bool isPointInside(double x,double y, double z);
- virtual void updateBlackBox(BlackBoxDescriptor::Pointer descriptor);
+ //Public methods
+
+ // Method to get the values of Inic or Final point passed as references in the parameters
+ void getInicPoint( double& x, double& y, double& z );
+ void getFinalPoint( double& x, double& y, double& z );
+
+ // Returns the center of the enclosing rectangle
+ void getCenter( double& x, double& y, double& z );
+
+ // Method to set the values of Inic or Final point
+ virtual void setInicPoint( double& x, double& y, double& z );
+ virtual void setFinalPoint( double& x, double& y, double& z );
+
+ // Changes the inic(top-left point) point of the rectangle
+ virtual void move( double xx, double yy, double zz );
+
+ // Returns true if (x,y,z) is inside the rectangle
+ virtual bool isPointInside( double x, double y, double z );
- private:
+ // Get the type of the graphical objects (See the GlobalConstants.h file)
+ int getGObjectType( );
+ void setGObjectType( int obtype );
- //Private Attributes
+ // The type in BBTK, for boxes for example in a BBS line like (new LoadHola abcd), LoadHola is the type
+ std::string getBBTKType( );
+ void setBBTKType( std::string obtype );
- //Private Methods
+ // The name in BBTK, for boxes for example in a BBS line like (new LoadHola abcd), abcd is the name
+ std::string getBBTKName( );
+ void setBBTKName( std::string obname );
- protected:
+ // The description in BBTK, for boxes
+ std::string getBBTKDescription( );
+ void setBBTKDescription( std::string obdescription );
- //Protected Attributes
- double _xInic;
- double _yInic;
- double _zInic;
- double _xFin;
- double _yFin;
- double _zFin;
+ // Object ID
+ int getObjectId( );
+ void setObjectId( int id );
- int _state;
+ // Status bar message
+ virtual std::string getStatusText( );
- //Protected methods
+ virtual void save( std::string &content );
+
+ private:
+
+ //Private Attributes
+
+ //Private Methods
+
+ protected:
+
+ //Protected Attributes
+
+ double _xInic;
+ double _yInic;
+ double _zInic;
+ double _xFin;
+ double _yFin;
+ double _zFin;
+
+ int _objectId;
+
+ // The type of the graphical objects (See the GlobalConstants.h file)
+ int _gObjectType;
+
+ // The type in BBTK, for boxes for example in a BBS line like (new LoadHola abcd), LoadHola is the type
+ std::string _bbtkType;
+
+ // The name in BBTK, for boxes for example in a BBS line like (new LoadHola abcd), abcd is the name
+ std::string _bbtkName;
- };
+ // The description in BBTK, for boxes
+ std::string _bbtkDescription;
+
+ //Protected methods
+
+ };
}