X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FEditorGraphicBBS%2FbbsKernelEditorGraphic%2FGObjectModel.h;h=9904c583bbcbed5b97109008a22c341604fb4a80;hb=1a1d60ee9a094a5adfbe674e5d81a8fa846c099f;hp=eefd07c1928cf980db1fb406d7ea465f0fc075b8;hpb=1b3060e78b445e19d51933556fb072cc90e30c99;p=bbtkGEditor.git diff --git a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.h b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.h index eefd07c..9904c58 100644 --- a/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.h +++ b/lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.h @@ -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 + * RaC - 2010 + ****/ #ifndef __GObjectModel_h__ #define __GObjectModel_h__ @@ -55,66 +56,94 @@ Version: $Revision$ //Includes bbtk #include -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); - virtual void setInicPoint(double& x, double& y, double& z); - virtual void setFinalPoint(double& x, double& y, double& z); - void setState(int state); - int getState(); - virtual void move(double xx,double yy,double zz); - - virtual bool isPointInside(double x,double y, double z); - virtual void updateBlackBox(BlackBoxDescriptor::Pointer descriptor); - - int getGObjectType(); - void setGObjectType(int obtype); - - std::string getBBTKType(); - void setBBTKType(std::string obtype); - - std::string getBBTKName(); - void setBBTKName(std::string obname); - - 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 ); + + // 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 ); + + // 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; - int _gObjectType; + // Status bar message + virtual std::string getStatusText( ); - std::string _bbtkType; - std::string _bbtkName; + 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 + + }; }