]> Creatis software - bbtkGEditor.git/blobdiff - lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.h
v1.1.0 Feature 1407
[bbtkGEditor.git] / lib / EditorGraphicBBS / bbsKernelEditorGraphic / GObjectModel.h
index 889cb7580a544f6e19e24f2972bb8cfe77170503..9904c583bbcbed5b97109008a22c341604fb4a80 100644 (file)
@@ -8,37 +8,38 @@ Version:   $Revision$
 
 /* ---------------------------------------------------------------------
 
-* 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__
@@ -55,56 +56,94 @@ Version:   $Revision$
 //Includes bbtk
 #include <bbtkBlackBoxDescriptor.h>
 
-namespace bbtk
-{
+namespace bbtk {
 
-       class GObjectModel //: public Observable
-       {
+    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);
-
-               int getGObjectType();
-               void setGObjectType(int obtype);
-               
-       private:
+        //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 );
 
-               //Private Attributes
+        // 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 );
 
-               //Private Methods
+        // Changes the inic(top-left point) point of the rectangle
+        virtual void move( double xx, double yy, double zz );
 
-       protected:
+        // Returns true if (x,y,z) is inside the rectangle 
+        virtual bool isPointInside( double x, double y, double z );
+
+        // Get the type of the graphical objects (See the GlobalConstants.h file)
+        int getGObjectType( );
+        void setGObjectType( int obtype );
+
+        // 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 );
+
+        // 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 );
+
+        // 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 );
+
+        // Status bar message
+        virtual std::string getStatusText( );
 
-               int  _state;
-               int  _gObjectType;
+        virtual void save( std::string &content );
 
-               //Protected methods
+    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
+
+    };
 
 
 }