]> Creatis software - bbtkGEditor.git/commitdiff
Feature #1366 Increased the line width of bbEditor connections.
authorriveros <>
Wed, 23 May 2012 15:57:13 +0000 (15:57 +0000)
committerriveros <>
Wed, 23 May 2012 15:57:13 +0000 (15:57 +0000)
13 files changed:
lib/EditorGraphicBBS/bbsKernelEditorGraphic/GObjectModel.h
lib/EditorGraphicBBS/bbsKernelEditorGraphic/GPortModel.cxx
lib/EditorGraphicBBS/bbsKernelEditorGraphic/GlobalConstants.h
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.cxx
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/GObjectController.h
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGComplexBoxPortView.cxx
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.cxx
lib/EditorGraphicBBS/bbsVtkGUIEditorGraphic/vtkGPortView.h
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/bbtkwxGUIEditorGraphicBBS.h
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxBlackBoxEditionDialog.cxx
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxBlackBoxEditionDialog.h
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.cxx
lib/EditorGraphicBBS/bbsWxGUIEditorGraphic/wxVtkSceneManager.h

index bfebe6b05a96e4f29a62b4a484ee0899f4fe3343..a5efed17639eecd0d4c009c4709ea55adc2e27f1 100644 (file)
@@ -8,38 +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. 
+ */
 
 /****
-* Design and Developpement of BBTK GEditor
-* Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
-* RaC - 2010
-****/
+ * Design and Developpement of BBTK GEditor
+ * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+ * RaC - 2010
+ ****/
 
 #ifndef __GObjectModel_h__
 #define __GObjectModel_h__
@@ -56,89 +56,86 @@ 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
-               
-               // 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);
+        //Public methods
 
-               // Returns the center of the enclosing rectangle
-               void getCenter(double& x, double& y, double& z);
+        // 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 );
 
-               // 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 the center of the enclosing rectangle
+        void getCenter( double& x, double& y, double& z );
 
-               // Returns true if (x,y,z) is inside the rectangle 
-               virtual bool isPointInside(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 );
 
-               // Get the type of the graphical objects (See the GlobalConstants.h file)
-               int getGObjectType();
-               void setGObjectType(int obtype);
+        // Changes the inic(top-left point) point of the rectangle
+        virtual void move( double xx, double yy, double zz );
 
-               // 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);
+        // Returns true if (x,y,z) is inside the rectangle 
+        virtual bool isPointInside( double x, double y, double z );
 
-               // 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);
+        // Get the type of the graphical objects (See the GlobalConstants.h file)
+        int getGObjectType( );
+        void setGObjectType( int obtype );
 
-               // Object ID
-               int getObjectId();
-               void setObjectId(int id);
+        // 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 );
 
-               // Status bar message
-               virtual std::string getStatusText();
+        // 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 );
 
-               virtual void save(std::string &content);
-               
-       private:
+        // Object ID
+        int getObjectId( );
+        void setObjectId( int id );
 
-               //Private Attributes
+        // Status bar message
+        virtual std::string getStatusText( );
 
-               //Private Methods
+        virtual void save( std::string &content );
 
-       protected:
-               
-               //Protected Attributes
-               
-               double _xInic;
-               double _yInic;
-               double _zInic;
-               double _xFin;
-               double _yFin;
-               double _zFin;
+    private:
 
-               int _objectId;
+        //Private Attributes
 
-               // The type of the graphical objects (See the GlobalConstants.h file)
-               int  _gObjectType;
+        //Private Methods
 
-               // The type in BBTK, for boxes for example in a BBS line like (new LoadHola abcd), LoadHola is the type
-               std::string _bbtkType;
+    protected:
 
-               // The name in BBTK, for boxes for example in a BBS line like (new LoadHola abcd), abcd is the name
-               std::string _bbtkName;
+        //Protected Attributes
 
-               //Protected methods
-               
-       };
+        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;
+
+        //Protected methods
+
+    };
 
 
 }
index eebe523673a7c8bde7c15cf3693c9e640f811e1e..def04b12c6405aaa1fa283a33fa21d045aa4fbae 100644 (file)
@@ -8,200 +8,180 @@ 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::GPortModel
-*/
+ *  \file
+ *  \brief Class bbtk::GPortModel
+ */
 
 /****
-* Design and Developpement of BBTK GEditor
-* Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
-* RaC - 2010
-****/
+ * Design and Developpement of BBTK GEditor
+ * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+ * RaC - 2010
+ ****/
 #include "GPortModel.h"
 
-namespace bbtk
-{
+namespace bbtk {
 
 
-       //=========================================================================
-       GPortModel::GPortModel()
-       {
-               _parentBox = NULL;
-               _portType=-1;
-               _posInBox=0;
-               _isConnected=false;
-               _value="";
-               _isValueSet=false;
-       }
+    //=========================================================================
 
-       //=========================================================================
-       GPortModel::~GPortModel()
-       {
-       }
-       //=========================================================================
+    GPortModel::GPortModel( ) {
+        _parentBox = NULL ;
+        _portType = -1 ;
+        _posInBox = 0 ;
+        _isConnected = false ;
+        _value = "" ;
+        _isValueSet = false ;
+    }
 
-       void GPortModel::registerInBox(GBoxModel *blackBox,int portType, int pos)
-       {
-               _parentBox = blackBox;
-               _portType = portType;
-               _posInBox = pos;
-
-               updatePortPosition();
-
-       }
-
-       //=========================================================================
-
-       void GPortModel::updatePortPosition()
-       {
-               double xInic, yInic,zInic,xFin,yFin,zFin;
-               _parentBox->getInicPoint(xInic,yInic,zInic);
-               _parentBox->getFinalPoint(xFin, yFin,zFin);
-
-               double posX=xInic,posY=yInic,posZ=zInic;
-               if(_portType==GOUTPUTPORT)
-               {
-                       posY = yFin;
-               }
-               else if(_portType==GINPUTPORT)
-               {
-                       posY = yInic+PORT_HEIGHT;
-               }
+    //=========================================================================
 
-               //Attribute '_posInBox' starts with value 0 and it represents the position of the port in the box from left to right
-               posX = xInic + (PORT_WIDTH/2) + _posInBox*1.1*PORT_WIDTH;
+    GPortModel::~GPortModel( ) {
+    }
+    //=========================================================================
 
-               setInicPoint(posX,posY,posZ);
+    void GPortModel::registerInBox( GBoxModel *blackBox , int portType , int pos ) {
+        _parentBox = blackBox ;
+        _portType = portType ;
+        _posInBox = pos ;
 
-               posX=posX+PORT_WIDTH;
-               posY=posY-PORT_HEIGHT;
-
-               setFinalPoint(posX,posY,posZ);
-
-       }
+        updatePortPosition( ) ;
 
-       //=========================================================================
+    }
 
-       int GPortModel::getPortType()
-       {
-               return _portType;
-       }
+    //=========================================================================
 
-       //=========================================================================
+    void GPortModel::updatePortPosition( ) {
+        double xInic , yInic , zInic , xFin , yFin , zFin ;
+        _parentBox->getInicPoint( xInic , yInic , zInic ) ;
+        _parentBox->getFinalPoint( xFin , yFin , zFin ) ;
 
-       int GPortModel::getPosInBox()
-       {
-               return _posInBox;
-       }
+        double posX = xInic , posY = yInic , posZ = zInic ;
+        if ( _portType == GOUTPUTPORT ) {
+            posY = yFin ;
+        } else if ( _portType == GINPUTPORT ) {
+            posY = yInic + PORT_HEIGHT ;
+        }
 
-       //=========================================================================
+        //Attribute '_posInBox' starts with value 0 and it represents the position of the port in the box from left to right
+        posX = xInic + ( PORT_WIDTH / 2 ) + _posInBox * 1.1 * PORT_WIDTH ;
 
-       std::string GPortModel::getStatusText()
-       {
-               std::string temp = "";
+        setInicPoint( posX , posY , posZ ) ;
 
-               temp+=_bbtkName;
-               if(isValueSet())
-               {
-                       temp+="(";
-                       temp+=_value;
-                       temp+=")";
-               }
-               temp+=" ";
-               temp+=_bbtkType;
+        posX = posX + PORT_WIDTH ;
+        posY = posY - PORT_HEIGHT ;
 
-               return temp;
-       }
+        setFinalPoint( posX , posY , posZ ) ;
 
-       //=========================================================================
+    }
 
-       GBoxModel* GPortModel::getParentBox()
-       {
-               return _parentBox;
-       }
-
-       //=========================================================================
-
-       bool GPortModel::isConnected()
-       {
-               return _isConnected;
-       }
-
-       //=========================================================================
-
-       void GPortModel::setConnected(bool value)
-       {
-               _isConnected=value;
-               notifyObservers(_objectId);
-       }
+    //=========================================================================
 
-       //=========================================================================
+    int GPortModel::getPortType( ) {
+        return _portType ;
+    }
 
-       void GPortModel::setValue(std::string value)
-       {
-               _value = value;
-               if(_value=="")
-               {
-                       _isValueSet=false;
-               }
-               else
-               {
-                       _isValueSet=true;
-               }
-               notifyObservers(_objectId);
-       }
+    //=========================================================================
 
-       //=========================================================================
-
-       std::string GPortModel::getValue()
-       {
-               return _value;
-       }
+    int GPortModel::getPosInBox( ) {
+        return _posInBox ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       bool GPortModel::isValueSet()
-       {
-               return _isValueSet;
-       }
+    std::string GPortModel::getStatusText( ) {
+        std::string temp = "" ;
 
-       //=========================================================================
+        temp += _bbtkName ;
+        if ( isValueSet( ) ) {
+            temp += "(" ;
+            temp += _value ;
+            temp += ")" ;
+        }
+        temp += " " ;
+        temp += _bbtkType ;
 
-       void GPortModel::save(std::string &content)
-       {
-               content+="PORT\n";
+        return temp ;
+    }
 
-               // Port value info
-               content+=_bbtkName;
-               content+=":";
-               content+=_value;
-               content+="\n";
-       }
+    //=========================================================================
 
-       //=========================================================================
+    GBoxModel* GPortModel::getParentBox( ) {
+        return _parentBox ;
+    }
 
-}  // EO namespace bbtk
+    //=========================================================================
+
+    bool GPortModel::isConnected( ) {
+        return _isConnected ;
+    }
+
+    //=========================================================================
+
+    void GPortModel::setConnected( bool value ) {
+        _isConnected = value ;
+        notifyObservers( _objectId ) ;
+    }
+
+    //=========================================================================
+
+    void GPortModel::setValue( std::string value ) {
+        _value = value ;
+        if ( _value == "" ) {
+            _isValueSet = false ;
+        } else {
+            _isValueSet = true ;
+        }
+        notifyObservers( _objectId ) ;
+    }
+
+    //=========================================================================
+
+    std::string GPortModel::getValue( ) {
+        return _value ;
+    }
+
+    //=========================================================================
+
+    bool GPortModel::isValueSet( ) {
+        return _isValueSet ;
+    }
+
+    //=========================================================================
+
+    void GPortModel::save( std::string &content ) {
+        content += "PORT\n" ;
+
+        // Port value info
+        content += _bbtkName ;
+        content += ":" ;
+        content += _value ;
+        content += "\n" ;
+    }
+
+    //=========================================================================
+
+} // EO namespace bbtk
 
 // EOF
 
index 4fc859731c57bb9c9cd1419cd8ee9c9d394a9be8..d9c3742d91c86a1bef30e28c5308a95828a6a644 100644 (file)
@@ -8,38 +8,37 @@ 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.
+ * ------------------------------------------------------------------------ */
 
 
 /****
-* Design and Developpement of BBTK GEditor
-* Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
-* RaC - 2010
-****/
+ * Design and Developpement of BBTK GEditor
+ * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+ * RaC - 2010
+ ****/
 
 #ifndef __GlobalConstants_h__
 #define __GlobalConstants_h__
 
-namespace bbtk
-{
+namespace bbtk {
 
        // Object types
        const int GBLACKBOX                                     =       1;
@@ -51,6 +50,12 @@ namespace bbtk
        const int GCOMPLEXOUTPUTPORT            =       7;
 
        // Object states
+       
+       // JGRR
+       const int POSSIBLE_CONNECTION = 107;
+       const int SELECTED_POSSIBLE_CONNECTION = 108; 
+       // EO JGRR
+    
        const int NOTHING_HAPPENS                       =       101;
        const int HIGHLIGHTED                           =       102;
        const int CLICKED                                       =       103;
index 745cbf22c8e3d2e05879d085b2fd3416db7bcc09..06958b67c9929eeb7b32905e415b14ae4b32d8c9 100644 (file)
@@ -8,189 +8,189 @@ 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::GObjectController
-*/
+ *  \file
+ *  \brief Class bbtk::GObjectController
+ */
 
 
 #include "GObjectController.h"
 
+
 #ifdef _DEBUG
 #define new DEBUG_NEW
 #endif
 namespace bbtk
 {
+    //=========================================================================
+
+    GObjectController::GObjectController( ) {
+
+    }
+
+    //=========================================================================
+
+    GObjectController::~GObjectController( ) {
+    }
 
+    //=========================================================================
 
-       //=========================================================================
-       GObjectController::GObjectController()
-       {
+    void GObjectController::setModelAndView( GObjectModel* model , vtkGObjectView* view ) {
+        _model = model ;
+        _view = view ;
+    }
 
-       }
+    //=========================================================================
 
-       //=========================================================================
+    bool GObjectController::OnMouseMove( ) {
+        int X , Y ;
+        wxVTKRenderWindowInteractor *_wxVTKiren ;
+        _wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView( )->GetWxVTKRenderWindowInteractor( ) ;
+        _wxVTKiren->GetEventPosition( X , Y ) ;
+        int state = _view->getState( ) ;
 
-       GObjectController::~GObjectController()
-       {
-       }
 
-       //=========================================================================
+        //Evaluate new state
+        if ( state == NOTHING_HAPPENS ) {
+            if ( _view->isPointInside( X , Y ) ) {
+                _view->setState( HIGHLIGHTED ) ;
+            }
+        }
+        if ( state == HIGHLIGHTED ) {
+            if ( !_view->isPointInside( X , Y ) ) {
+                _view->setState( NOTHING_HAPPENS ) ;
+            }
+        }
 
-       void GObjectController::setModelAndView(GObjectModel* model, vtkGObjectView* view)
-       {
-               _model = model;
-               _view = view;
-       }
+        // JGRR & CM WH
 
-       //=========================================================================
+        if ( state == POSSIBLE_CONNECTION ) {
+            if ( _view->isPointInside( X , Y ) ) {
+                _view->setState( SELECTED_POSSIBLE_CONNECTION ) ;
+            }
+        }
 
-       bool GObjectController::OnMouseMove()
-       {
-               int X,Y;
-               wxVTKRenderWindowInteractor *_wxVTKiren;
-               _wxVTKiren= _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
-               _wxVTKiren->GetEventPosition( X , Y );
-               int state  = _view->getState();
+        if ( state == SELECTED_POSSIBLE_CONNECTION ) {
+            if ( !_view->isPointInside( X , Y ) ) {
+                _view->setState( POSSIBLE_CONNECTION ) ;
+            }
+        }
 
-               //Evaluate new state
-               if( state == NOTHING_HAPPENS)
-               {
-                       if(_view->isPointInside(X,Y))
-                       {
-                               _view->setState(HIGHLIGHTED);
-                       }
-               }
-               if( state==HIGHLIGHTED)
-               {
-                       if(!_view->isPointInside(X,Y))
-                       {
-                               _view->setState(NOTHING_HAPPENS);
-                       }
-               }
+        // EO JGRR & CM WH
 
-               //_model->notifyObservers(getId());
+        _model->notifyObservers( getId( ) ) ;
 
 
-               return true;
-       }
+        return true ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       bool GObjectController::OnLeftButtonDown()//virtual
-       {
-               int state  = _view->getState();
+    bool GObjectController::OnLeftButtonDown( )//virtual
+    {
+        int state = _view->getState( ) ;
 
-               //Evaluate new state
-               if(state == HIGHLIGHTED)
-               {
-                       _isLeftClickDown=true;
-                       _view->setState(SELECTED);
-               }
-               return true;
-       }
+        //Evaluate new state
+        if ( state == HIGHLIGHTED ) {
+            _isLeftClickDown = true ;
+            _view->setState( SELECTED ) ;
+        }
+        return true ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       bool GObjectController::OnLeftButtonUp()//virtual
-       {
-               return true;
-       }
+    bool GObjectController::OnLeftButtonUp( )//virtual
+    {
+        return true ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       bool GObjectController::OnLeftDClick()//virtual
-       {
+    bool GObjectController::OnLeftDClick( )//virtual
+    {
 
-               return true;
-       }
+        return true ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       bool GObjectController::OnMiddleButtonDown()//virtual
-       {
-               return true;
-       }
+    bool GObjectController::OnMiddleButtonDown( )//virtual
+    {
+        return true ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       void GObjectController::moveObject(int X,int Y)
-       {
-               _view->moveObject(X,Y);
-       }
+    void GObjectController::moveObject( int X , int Y ) {
+        _view->moveObject( X , Y ) ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       int GObjectController::getGObjectType()
-       {
-               return _model->getGObjectType();
-       }
+    int GObjectController::getGObjectType( ) {
+        return _model->getGObjectType( ) ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       GObjectModel* GObjectController::getModel()
-       {
-               return _model;
-       }
+    GObjectModel* GObjectController::getModel( ) {
+        return _model ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       vtkGObjectView* GObjectController::getView()
-       {
-               return _view;
-       }
+    vtkGObjectView* GObjectController::getView( ) {
+        return _view ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       int GObjectController::getId()
-       {
-               return _model->getObjectId();
-       }
+    int GObjectController::getId( ) {
+        return _model->getObjectId( ) ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       void GObjectController::setId(int id)
-       {
-               _model->setObjectId(id);
-       }
+    void GObjectController::setId( int id ) {
+        _model->setObjectId( id ) ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       std::string GObjectController::getStatusText()
-       {
-               return _model->getStatusText();
-       }
+    std::string GObjectController::getStatusText( ) {
+        return _model->getStatusText( ) ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-       void GObjectController::removeFromScene()
-       {
-               _view->removeFromScene();
-       }
+    void GObjectController::removeFromScene( ) {
+        _view->removeFromScene( ) ;
+    }
 
-       //=========================================================================
+    //=========================================================================
 
-}  // EO namespace bbtk
+} // EO namespace bbtk
 
 // EOF
 
index deaa7d89137b956a3db32e1076d89b2932e262d2..2c60de95c6991a471be8cb4b791855387f1a4260 100644 (file)
@@ -8,38 +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::GObjectController :
-*/
+ *  \file
+ *  \brief Class bbtk::GObjectController :
+ */
 
 /****
-* Design and Developpement of BBTK GEditor
-* Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
-* RaC - 2010
-****/
+ * Design and Developpement of BBTK GEditor
+ * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+ * RaC - 2010
+ ****/
 
 #ifndef __GObjectController_h__
 #define __GObjectController_h__
@@ -55,65 +55,62 @@ Version:   $Revision$
 //Includes std
 #include <iostream>
 
-namespace bbtk
-{
+namespace bbtk {
 
-       class GObjectController : public InteractorStyleMaracas
-       {
+    class GObjectController : public InteractorStyleMaracas {
+    public:
 
-       public:
+        //Constructors
+        GObjectController( );
+        ~ GObjectController( );
 
-               //Constructors
-               GObjectController();
-               ~GObjectController();
+        //Public methods
 
-               //Public methods
+        void setModelAndView( GObjectModel* model, vtkGObjectView* view );
 
-               void setModelAndView(GObjectModel* model, vtkGObjectView* view);
+        // Same type of the saved in the model of the graphical objects
+        int getGObjectType( );
 
-               // Same type of the saved in the model of the graphical objects
-               int getGObjectType();
+        GObjectModel* getModel( );
+        vtkGObjectView* getView( );
 
-               GObjectModel* getModel();
-               vtkGObjectView* getView();
+        std::string getStatusText( );
 
-               std::string getStatusText();
+        // Same ObjectID from the model
+        int getId( );
+        void setId( int id );
 
-               // Same ObjectID from the model
-               int getId();
-               void setId(int id);
+        virtual void removeFromScene( );
 
-               virtual void removeFromScene();
+    private:
 
-       private:
+        //Attributes
 
-               //Attributes
 
 
+        //Private Methods
 
-               //Private Methods
+    protected:
 
-       protected:
+        //Protected Attributes
 
-               //Protected Attributes
+        GObjectModel *_model;
+        vtkGObjectView *_view;
 
-               GObjectModel    *_model;
-               vtkGObjectView  *_view;
+        bool _isLeftClickDown;
 
-               bool _isLeftClickDown;
+        //Protected Methods
 
-               //Protected Methods
+        // Methods from InteractorStyleMaracas
+        virtual bool OnMouseMove( );
+        virtual bool OnLeftButtonDown( );
+        virtual bool OnLeftButtonUp( );
+        virtual bool OnLeftDClick( );
+        virtual bool OnMiddleButtonDown( );
 
-               // Methods from InteractorStyleMaracas
-               virtual bool  OnMouseMove();
-               virtual bool  OnLeftButtonDown();
-               virtual bool  OnLeftButtonUp();
-               virtual bool  OnLeftDClick();
-               virtual bool  OnMiddleButtonDown();
+        virtual void moveObject( int X, int Y );
 
-               virtual void moveObject(int X,int Y);
-
-       };
+    };
 
 
 }
index 35dc1a8bc592320d9c4c31baf9b6dd59ab671ca6..d9fd4572fe89b7dd927a990dce3c265245434e7a 100644 (file)
@@ -8,213 +8,201 @@ 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::vtkGComplexBoxPortView 
-*/
+ *  \file 
+ *  \brief Class bbtk::vtkGComplexBoxPortView 
+ */
 
 
 #include "vtkGComplexBoxPortView.h"
 
-namespace bbtk
-{
-
-
-       //=========================================================================
-       vtkGComplexBoxPortView::vtkGComplexBoxPortView()
-       {                       
-       }
-
-       //=========================================================================
-       vtkGComplexBoxPortView::~vtkGComplexBoxPortView()
-       {
-       }
-
-       //=========================================================================
-       void vtkGComplexBoxPortView::update(int idController,int command)
-       {
-               updateColors();
-               
-               double xInic, yInic,zInic,xFin, yFin,zFin;
-               _model->getInicPoint(xInic,yInic,zInic);
-               _model->getFinalPoint(xFin, yFin,zFin);
-
-               // RaC In the actual version, zInic=zFin=900
-
-               _pts->SetPoint(0, xInic, yInic, zInic );
-               _pts->SetPoint(1, xInic, yFin, zInic );
-               _pts->SetPoint(2, xFin, yFin, zFin );
-               _pts->SetPoint(3, xFin, yInic, zFin );
-
-               updatePorts();
-
-               _borderPolyMapper->Modified();
-               _fillPolyMapper->Modified();
-               //-----------
-
-               //-----------
-               setRefreshWaiting();
-       }
-
-       //=========================================================================
-
-       void vtkGComplexBoxPortView::createVtkObjects() //virtual
-       {
-
-               //------------
-               _pts = vtkPoints::New();        
-               vtkCellArray *lines = vtkCellArray::New();
-               vtkPolyData *_pd = vtkPolyData::New();
-               _borderPolyMapper=vtkPolyDataMapper::New();
-               _borderObjectActor=vtkActor::New();
-                               
-               _pts->SetNumberOfPoints(4);
-
-               double xInic, yInic,zInic,xFin, yFin,zFin;
-               _model->getInicPoint(xInic,yInic,zInic);
-               _model->getFinalPoint(xFin, yFin,zFin);
-
-               // RaC In the actual version, zInic=zFin=900
-
-//EED          _pts->SetPoint(0, xInic, yInic, zInic );
-//EED          _pts->SetPoint(1, xInic, yFin, zInic );
-//EED          _pts->SetPoint(2, xFin, yFin, zFin );
-//EED          _pts->SetPoint(3, xFin, yInic, zFin );
-
-               
-               _pts->SetPoint(0, -1000, -1000, -1000 );
-               _pts->SetPoint(1, xInic, yFin, zInic );
-               _pts->SetPoint(2, 1000, 1000, 1000 );
-               _pts->SetPoint(3, xFin, yInic, zFin );
-               
-               
-               lines->InsertNextCell(5);
-               lines->InsertCellPoint(0);
-               lines->InsertCellPoint(1);
-               lines->InsertCellPoint(2);
-               lines->InsertCellPoint(3);
-               lines->InsertCellPoint(0);
-                       
-               _pd->SetPoints( _pts );
-               _pd->SetLines( lines );
-
-               _borderPolyMapper->SetInput(_pd);
-               _borderObjectActor->SetMapper(_borderPolyMapper);
-               _borderPolyMapper->Modified();
-
-               
-               ///************************* FILL *************************
-
-               vtkCellArray *strip = vtkCellArray::New();
-               vtkPolyData *pdFill = vtkPolyData::New();
-               _fillPolyMapper=vtkPolyDataMapper::New();
-               _fillObjectActor=vtkActor::New();
-
-               // RaC In the actual version, zInic=zFin=900
-
-               strip->InsertNextCell(5);
-               strip->InsertCellPoint(0);
-               strip->InsertCellPoint(1);
-               strip->InsertCellPoint(2);
-               strip->InsertCellPoint(0);
-               strip->InsertCellPoint(3);
-                       
-               pdFill->SetPoints( _pts );
-               pdFill->SetStrips( strip );
-
-               _fillPolyMapper->SetInput(pdFill);
-               _fillObjectActor->SetMapper(_fillPolyMapper);
-               _fillPolyMapper->Modified();
-
-               ///************************* FILL *************************
-
-       }
-
-       //=========================================================================
-
-       void vtkGComplexBoxPortView::addVtkActors()//virtual
-       {
-               _baseView->GetRenderer()->AddActor(_borderObjectActor);
-               vtkGObjectView::addVtkActors();
-       }
-
-       //=========================================================================
-
-       void vtkGComplexBoxPortView::removeVtkActors()//virtual
-       {
-               _baseView->GetRenderer()->RemoveActor(_borderObjectActor);
-               vtkGObjectView::removeVtkActors();
-       }
-
-       //=========================================================================
-
-       void vtkGComplexBoxPortView::updateColors()
-       {
-               _fillObjectActor->GetProperty()->SetAmbient(0.6);
-
-               if(_state==NOTHING_HAPPENS)
-               {
-                       _borderObjectActor->GetProperty()->SetLineWidth(1);
-                       
-
-                       GComplexBoxPortModel *portModel = (GComplexBoxPortModel*)_model;
-                       if(portModel->getComplexPortType() == GCOMPLEXINPUTPORT)
-                       {
-                               _fillObjectActor->GetProperty()->SetColor(COMPLEXINPUTPORTFILL_NH_R,COMPLEXINPUTPORTFILL_NH_G,COMPLEXINPUTPORTFILL_NH_B);
-                               _borderObjectActor->GetProperty()->SetColor(COMPLEXINPUTPORTBORDER_NH_R,COMPLEXINPUTPORTBORDER_NH_G,COMPLEXINPUTPORTBORDER_NH_B);
-                       }
-                       else if (portModel->getComplexPortType() == GCOMPLEXOUTPUTPORT)
-                       {
-                               _fillObjectActor->GetProperty()->SetColor(COMPLEXOUTPUTPORTFILL_NH_R,COMPLEXOUTPUTPORTFILL_NH_G,COMPLEXOUTPUTPORTFILL_NH_B);
-                               _borderObjectActor->GetProperty()->SetColor(COMPLEXOUTPUTPORTBORDER_NH_R,COMPLEXOUTPUTPORTBORDER_NH_G,COMPLEXOUTPUTPORTBORDER_NH_B);
-                       }
-                       
-               }
-               else if(_state==HIGHLIGHTED)
-               {
-                       _borderObjectActor->GetProperty()->SetLineWidth(2);
-                       
-                       _borderObjectActor->GetProperty()->SetColor(BOXBORDER_HIGHLIGHTED_R,BOXBORDER_HIGHLIGHTED_G,BOXBORDER_HIGHLIGHTED_B);
-                       _fillObjectActor->GetProperty()->SetColor(BOXFILL_HIGHLIGHTED_R,BOXFILL_HIGHLIGHTED_G,BOXFILL_HIGHLIGHTED_B);
-               }
-               else if(_state==DRAG)
-               {
-                       _borderObjectActor->GetProperty()->SetLineWidth(1.2);
-                       _borderObjectActor->GetProperty()->SetColor(BOXBORDER_DRAG_R,BOXBORDER_DRAG_G,BOXBORDER_DRAG_B);
-                       _fillObjectActor->GetProperty()->SetColor(BOXFILL_DRAG_R,BOXFILL_DRAG_G,BOXFILL_DRAG_B);
-               }
-               else if(_state==SELECTED)
-               {
-                       _borderObjectActor->GetProperty()->SetLineWidth(2);
-                       _borderObjectActor->GetProperty()->SetColor(BOXBORDER_SELECTED_R,BOXBORDER_SELECTED_G,BOXBORDER_SELECTED_B);
-                       _fillObjectActor->GetProperty()->SetColor(BOXFILL_SELECTED_R,BOXFILL_SELECTED_G,BOXFILL_SELECTED_B);
-               }
-       }
-
-       //=========================================================================
-
-
-}  // EO namespace bbtk
+namespace bbtk {
+
+
+    //=========================================================================
+
+    vtkGComplexBoxPortView::vtkGComplexBoxPortView( ) {
+    }
+
+    //=========================================================================
+
+    vtkGComplexBoxPortView::~vtkGComplexBoxPortView( ) {
+    }
+
+    //=========================================================================
+
+    void vtkGComplexBoxPortView::update( int idController , int command ) {
+        updateColors( ) ;
+
+        double xInic , yInic , zInic , xFin , yFin , zFin ;
+        _model->getInicPoint( xInic , yInic , zInic ) ;
+        _model->getFinalPoint( xFin , yFin , zFin ) ;
+
+        // RaC In the actual version, zInic=zFin=900
+
+        _pts->SetPoint( 0 , xInic , yInic , zInic ) ;
+        _pts->SetPoint( 1 , xInic , yFin , zInic ) ;
+        _pts->SetPoint( 2 , xFin , yFin , zFin ) ;
+        _pts->SetPoint( 3 , xFin , yInic , zFin ) ;
+
+        updatePorts( ) ;
+
+        _borderPolyMapper->Modified( ) ;
+        _fillPolyMapper->Modified( ) ;
+        //-----------
+
+        //-----------
+        setRefreshWaiting( ) ;
+    }
+
+    //=========================================================================
+
+    void vtkGComplexBoxPortView::createVtkObjects( ) //virtual
+    {
+
+        //------------
+        _pts = vtkPoints::New( ) ;
+        vtkCellArray *lines = vtkCellArray::New( ) ;
+        vtkPolyData *_pd = vtkPolyData::New( ) ;
+        _borderPolyMapper = vtkPolyDataMapper::New( ) ;
+        _borderObjectActor = vtkActor::New( ) ;
+
+        _pts->SetNumberOfPoints( 4 ) ;
+
+        double xInic , yInic , zInic , xFin , yFin , zFin ;
+        _model->getInicPoint( xInic , yInic , zInic ) ;
+        _model->getFinalPoint( xFin , yFin , zFin ) ;
+
+        // RaC In the actual version, zInic=zFin=900
+
+        //EED          _pts->SetPoint(0, xInic, yInic, zInic );
+        //EED          _pts->SetPoint(1, xInic, yFin, zInic );
+        //EED          _pts->SetPoint(2, xFin, yFin, zFin );
+        //EED          _pts->SetPoint(3, xFin, yInic, zFin );
+
+
+        _pts->SetPoint( 0 , -1000 , -1000 , -1000 ) ;
+        _pts->SetPoint( 1 , xInic , yFin , zInic ) ;
+        _pts->SetPoint( 2 , 1000 , 1000 , 1000 ) ;
+        _pts->SetPoint( 3 , xFin , yInic , zFin ) ;
+
+
+        lines->InsertNextCell( 5 ) ;
+        lines->InsertCellPoint( 0 ) ;
+        lines->InsertCellPoint( 1 ) ;
+        lines->InsertCellPoint( 2 ) ;
+        lines->InsertCellPoint( 3 ) ;
+        lines->InsertCellPoint( 0 ) ;
+
+        _pd->SetPoints( _pts ) ;
+        _pd->SetLines( lines ) ;
+
+        _borderPolyMapper->SetInput( _pd ) ;
+        _borderObjectActor->SetMapper( _borderPolyMapper ) ;
+        _borderPolyMapper->Modified( ) ;
+
+
+        ///************************* FILL *************************
+
+        vtkCellArray *strip = vtkCellArray::New( ) ;
+        vtkPolyData *pdFill = vtkPolyData::New( ) ;
+        _fillPolyMapper = vtkPolyDataMapper::New( ) ;
+        _fillObjectActor = vtkActor::New( ) ;
+
+        // RaC In the actual version, zInic=zFin=900
+
+        strip->InsertNextCell( 5 ) ;
+        strip->InsertCellPoint( 0 ) ;
+        strip->InsertCellPoint( 1 ) ;
+        strip->InsertCellPoint( 2 ) ;
+        strip->InsertCellPoint( 0 ) ;
+        strip->InsertCellPoint( 3 ) ;
+
+        pdFill->SetPoints( _pts ) ;
+        pdFill->SetStrips( strip ) ;
+
+        _fillPolyMapper->SetInput( pdFill ) ;
+        _fillObjectActor->SetMapper( _fillPolyMapper ) ;
+        _fillPolyMapper->Modified( ) ;
+
+        ///************************* FILL *************************
+
+    }
+
+    //=========================================================================
+
+    void vtkGComplexBoxPortView::addVtkActors( )//virtual
+    {
+        _baseView->GetRenderer( )->AddActor( _borderObjectActor ) ;
+        vtkGObjectView::addVtkActors( ) ;
+    }
+
+    //=========================================================================
+
+    void vtkGComplexBoxPortView::removeVtkActors( )//virtual
+    {
+        _baseView->GetRenderer( )->RemoveActor( _borderObjectActor ) ;
+        vtkGObjectView::removeVtkActors( ) ;
+    }
+
+    //=========================================================================
+
+    void vtkGComplexBoxPortView::updateColors( ) {
+        _fillObjectActor->GetProperty( )->SetAmbient( 0.6 ) ;
+
+        if ( _state == NOTHING_HAPPENS ) {
+            _borderObjectActor->GetProperty( )->SetLineWidth( 1 ) ;
+
+
+            GComplexBoxPortModel *portModel = ( GComplexBoxPortModel* ) _model ;
+            if ( portModel->getComplexPortType( ) == GCOMPLEXINPUTPORT ) {
+                _fillObjectActor->GetProperty( )->SetColor( COMPLEXINPUTPORTFILL_NH_R , COMPLEXINPUTPORTFILL_NH_G , COMPLEXINPUTPORTFILL_NH_B ) ;
+                _borderObjectActor->GetProperty( )->SetColor( COMPLEXINPUTPORTBORDER_NH_R , COMPLEXINPUTPORTBORDER_NH_G , COMPLEXINPUTPORTBORDER_NH_B ) ;
+            } else if ( portModel->getComplexPortType( ) == GCOMPLEXOUTPUTPORT ) {
+                _fillObjectActor->GetProperty( )->SetColor( COMPLEXOUTPUTPORTFILL_NH_R , COMPLEXOUTPUTPORTFILL_NH_G , COMPLEXOUTPUTPORTFILL_NH_B ) ;
+                _borderObjectActor->GetProperty( )->SetColor( COMPLEXOUTPUTPORTBORDER_NH_R , COMPLEXOUTPUTPORTBORDER_NH_G , COMPLEXOUTPUTPORTBORDER_NH_B ) ;
+            }
+
+        } else if ( _state == HIGHLIGHTED ) {
+            _borderObjectActor->GetProperty( )->SetLineWidth( 2 ) ;
+
+            _borderObjectActor->GetProperty( )->SetColor( BOXBORDER_HIGHLIGHTED_R , BOXBORDER_HIGHLIGHTED_G , BOXBORDER_HIGHLIGHTED_B ) ;
+            _fillObjectActor->GetProperty( )->SetColor( BOXFILL_HIGHLIGHTED_R , BOXFILL_HIGHLIGHTED_G , BOXFILL_HIGHLIGHTED_B ) ;
+        } else if ( _state == DRAG ) {
+            _borderObjectActor->GetProperty( )->SetLineWidth( 1.2 ) ;
+            _borderObjectActor->GetProperty( )->SetColor( BOXBORDER_DRAG_R , BOXBORDER_DRAG_G , BOXBORDER_DRAG_B ) ;
+            _fillObjectActor->GetProperty( )->SetColor( BOXFILL_DRAG_R , BOXFILL_DRAG_G , BOXFILL_DRAG_B ) ;
+        } else if ( _state == SELECTED ) {
+            _borderObjectActor->GetProperty( )->SetLineWidth( 2 ) ;
+            _borderObjectActor->GetProperty( )->SetColor( BOXBORDER_SELECTED_R , BOXBORDER_SELECTED_G , BOXBORDER_SELECTED_B ) ;
+            _fillObjectActor->GetProperty( )->SetColor( BOXFILL_SELECTED_R , BOXFILL_SELECTED_G , BOXFILL_SELECTED_B ) ;
+        }
+    }
+
+    //=========================================================================
+
+
+} // EO namespace bbtk
 
 // EOF
 
index 40e9478051cc50b9554afee148347d130c6375fb..ba9a3d2ed2a0b37aebf64db9b081de64784a9d27 100644 (file)
@@ -8,153 +8,152 @@ 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::vtkGPortView 
-*/
+ *  \file 
+ *  \brief Class bbtk::vtkGPortView 
+ */
 
 
 #include "vtkGPortView.h"
 
-namespace bbtk
-{
+namespace bbtk {
 
 
-       //=========================================================================
-       vtkGPortView::vtkGPortView()
-       {               
-       }
+    //=========================================================================
 
-       //=========================================================================
-       vtkGPortView::~vtkGPortView()
-       {
-       }
+    vtkGPortView::vtkGPortView( ) {
+    }
 
-       //=========================================================================
-       void vtkGPortView::update(int idController,int command)
-       {
-               updateColors();
-               
-               double xInic, yInic,zInic,xFin, yFin,zFin;
+    //=========================================================================
 
-               _model->getInicPoint(xInic,yInic,zInic);
-               _model->getFinalPoint(xFin, yFin,zFin);
+    vtkGPortView::~vtkGPortView( ) {
+    }
 
-               // RaC In the actual version, zInic=zFin=900
+    //=========================================================================
 
-               double mid = (xInic+xFin)/2;
+    void vtkGPortView::update( int idController , int command ) {
 
-               _pts->SetPoint(0, xInic, yInic, zInic );
-               _pts->SetPoint(1, mid, yFin, zInic );
-               _pts->SetPoint(2, xFin, yInic, zFin );
+        updateColors( ) ;
 
-               _fillPolyMapper->Modified();
-               
-               //-----------
-               setRefreshWaiting();
-       }
+        double xInic , yInic , zInic , xFin , yFin , zFin ;
 
-       //=========================================================================
+        _model->getInicPoint( xInic , yInic , zInic ) ;
+        _model->getFinalPoint( xFin , yFin , zFin ) ;
 
-       void vtkGPortView::createVtkObjects() //virtual
-       {
-               _pts = vtkPoints::New();        
-               _pts->SetNumberOfPoints(3);
+        // RaC In the actual version, zInic=zFin=900
 
-               double xInic, yInic,zInic,xFin, yFin,zFin;
+        double mid = ( xInic + xFin ) / 2 ;
 
-               _model->getInicPoint(xInic,yInic,zInic);
-               _model->getFinalPoint(xFin, yFin,zFin);
+        _pts->SetPoint( 0 , xInic , yInic , zInic ) ;
+        _pts->SetPoint( 1 , mid , yFin , zInic ) ;
+        _pts->SetPoint( 2 , xFin , yInic , zFin ) ;
 
-               // RaC In the actual version, zInic=zFin=900
+        _fillPolyMapper->Modified( ) ;
 
-               double mid = (xInic+xFin)/2;
+        //-----------
+        setRefreshWaiting( ) ;
+    }
 
-//EED          _pts->SetPoint(0, xInic, yInic, zInic );
-//EED          _pts->SetPoint(1, mid, yFin, zInic );
-//EED          _pts->SetPoint(2, xFin, yInic, zFin );                          
+    //=========================================================================
 
-               _pts->SetPoint(0, -1000, -1000, -1000 );
-               _pts->SetPoint(1, mid, yFin, zInic );
-               _pts->SetPoint(2, 1000, 1000, 1000 );                           
-               
-               
-               ///************************* FILL *************************
+    void vtkGPortView::createVtkObjects( ) //virtual
+    {
+        _pts = vtkPoints::New( ) ;
+        _pts->SetNumberOfPoints( 3 ) ;
 
-               vtkCellArray *strip = vtkCellArray::New();
-               vtkPolyData *pdFill = vtkPolyData::New();
-               _fillPolyMapper=vtkPolyDataMapper::New();
-               _fillObjectActor=vtkActor::New();
+        double xInic , yInic , zInic , xFin , yFin , zFin ;
 
-               // RaC In the actual version, zInic=zFin=900
+        _model->getInicPoint( xInic , yInic , zInic ) ;
+        _model->getFinalPoint( xFin , yFin , zFin ) ;
 
-               strip->InsertNextCell(3);
-               strip->InsertCellPoint(0);
-               strip->InsertCellPoint(1);
-               strip->InsertCellPoint(2);
-                       
-               pdFill->SetPoints( _pts );
-               pdFill->SetStrips( strip );
+        // RaC In the actual version, zInic=zFin=900
 
-               _fillPolyMapper->SetInput(pdFill);
-               _fillObjectActor->SetMapper(_fillPolyMapper);
-               _fillPolyMapper->Modified();
+        double mid = ( xInic + xFin ) / 2 ;
 
-               ///************************* FILL *************************
+        //EED          _pts->SetPoint(0, xInic, yInic, zInic );
+        //EED          _pts->SetPoint(1, mid, yFin, zInic );
+        //EED          _pts->SetPoint(2, xFin, yInic, zFin );                          
 
-               updateColors();
+        _pts->SetPoint( 0 , -1000 , -1000 , -1000 ) ;
+        _pts->SetPoint( 1 , mid , yFin , zInic ) ;
+        _pts->SetPoint( 2 , 1000 , 1000 , 1000 ) ;
 
 
-       }
+        ///************************* FILL *************************
 
-       //=========================================================================
+        vtkCellArray *strip = vtkCellArray::New( ) ;
+        vtkPolyData *pdFill = vtkPolyData::New( ) ;
+        _fillPolyMapper = vtkPolyDataMapper::New( ) ;
+        _fillObjectActor = vtkActor::New( ) ;
 
-       void vtkGPortView::updateColors()
-       {
-               _fillObjectActor->GetProperty()->SetColor(0.45,0.45,0.45);
+        // RaC In the actual version, zInic=zFin=900
 
-               if(_state==HIGHLIGHTED)
-               {
-                       _fillObjectActor->GetProperty()->SetColor( 0 , 0 , 1 );
-               } else {
-                       GPortModel* portm = (GPortModel*)_model;
-                       if(portm->isConnected())
-                       {
-                               _fillObjectActor->GetProperty()->SetColor(0.15,0.15,0.15);
-                       }
-                       else if(portm->isValueSet())
-                       {
-                               _fillObjectActor->GetProperty()->SetColor(0.55,0.25,0.25);
-                       } else {
-                               _fillObjectActor->GetProperty()->SetColor(0.45,0.45,0.45);
-                       }
-               }
-       }
+        strip->InsertNextCell( 3 ) ;
+        strip->InsertCellPoint( 0 ) ;
+        strip->InsertCellPoint( 1 ) ;
+        strip->InsertCellPoint( 2 ) ;
 
-       //=========================================================================
+        pdFill->SetPoints( _pts ) ;
+        pdFill->SetStrips( strip ) ;
 
+        _fillPolyMapper->SetInput( pdFill ) ;
+        _fillObjectActor->SetMapper( _fillPolyMapper ) ;
+        _fillPolyMapper->Modified( ) ;
 
-}  // EO namespace bbtk
+        ///************************* FILL *************************
+
+        updateColors( ) ;
+
+
+    }
+
+    //=========================================================================
+
+    void vtkGPortView::updateColors( ) {
+        _fillObjectActor->GetProperty( )->SetColor( 0.45 , 0.45 , 0.45 ) ;
+
+        if ( _state == POSSIBLE_CONNECTION ) {
+            _fillObjectActor->GetProperty( )->SetColor( 1 , 1 , 0 ) ;
+        } else if ( _state == SELECTED_POSSIBLE_CONNECTION ) {
+            _fillObjectActor->GetProperty( )->SetColor( 0 , 1 , 0 ) ;
+        } else if ( _state == HIGHLIGHTED ) {
+            _fillObjectActor->GetProperty( )->SetColor( 0 , 0 , 1 ) ;
+        } else {
+            GPortModel* portm = ( GPortModel* ) _model ;
+            if ( portm->isConnected( ) ) {
+                _fillObjectActor->GetProperty( )->SetColor( 0.15 , 0.15 , 0.15 ) ;
+            } else if ( portm->isValueSet( ) ) {
+                _fillObjectActor->GetProperty( )->SetColor( 0.55 , 0.25 , 0.25 ) ;
+            } else {
+                _fillObjectActor->GetProperty( )->SetColor( 0.45 , 0.45 , 0.45 ) ;
+            }
+        }
+    }
+
+    //=========================================================================
+
+
+} // EO namespace bbtk
 
 // EOF
 
index cb1734a7741a23034bfa3a71d7cd97433f3c60c3..618099c8f992cce86f382b6fabc59733c27b4f7d 100644 (file)
@@ -72,25 +72,19 @@ namespace bbtk
        {
 
        public: 
-
                //Constructors
                vtkGPortView();
                ~vtkGPortView();
                
                //Public methods
                virtual void update(int idController,int command);
-
        private:
-
                //Private Attributes
-               
 
                //Private Methods
 
        protected:
-
-               //Protected Attributes
-               
+               //Protected Attributes          
                //Protected Methods
                virtual void createVtkObjects();
                virtual void updateColors();
index 6fb6fdf01fa2b8a07f4580ae995670653973aa07..de6021fa11467ce212140cf5348bb23dd9f38c87 100644 (file)
@@ -165,7 +165,8 @@ namespace bbtk
                        void OnChangeName(wxCommandEvent& event);
 
                        // Edit menu events
-                       void OnCopySelectedToComplexDiagram(wxCommandEvent& event);
+                       void OnCopySelectedToComplexDiagram(wxCommandEvent& event);                   
+                       
 
                        // Tool menu events
                        void OnCreatePackage(wxCommandEvent& event);
index d4663da4fe07641a1b45214de44f740253a48794..053d0a659eb8a8c32f95f5ec7184654fa62aea92 100644 (file)
@@ -8,34 +8,35 @@ 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::wxBlackBoxEditionDialog .
-*/
+ *  \file
+ *  \brief Class bbtk::wxBlackBoxEditionDialog .
+ */
 
 #include "wxBlackBoxEditionDialog.h"
 #include "creaWx.h"
 
+
 namespace bbtk
 {
        //=========================================================================
@@ -179,13 +180,135 @@ printf("EED wxBlackBoxEditionDialog::onClickClose\n");
                Close(true);
        }
 
-       //=========================================================================
 
-}  // EO namespace bbtk
+    wxBlackBoxEditionDialog::wxBlackBoxEditionDialog( wxGUIEditorGraphicBBS *parent , GBlackBoxModel *model ) : wxDialog( parent , wxID_ANY , _T( "" ) , wxDefaultPosition , wxSize( 480 , 640 ) , wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ) {
+        _model = model ;
+        std::string title( "BlackBox Editing - " ) ;
+        title += _model->getBBTKPackage( ) ;
+        title += ":" ;
+        title += _model->getBBTKType( ) ;
+        title += ":" ;
+        title += _model->getBBTKName( ) ;
+        SetTitle( std2wx( title ) ) ;
+
+        constructBlackBoxEditionDialog( ) ;
+    }
+
+    //=========================================================================
+
+    wxBlackBoxEditionDialog::~wxBlackBoxEditionDialog( ) {
+
+    }
+
+    //=========================================================================
+
+    void wxBlackBoxEditionDialog::constructBlackBoxEditionDialog( ) {
+        wxBoxSizer *sizerDialog = new wxBoxSizer( wxVERTICAL ) ;
+
+        wxScrolledWindow *scrollWin = new wxScrolledWindow( this , -1 , wxDefaultPosition , wxSize( 200 , 200 ) , wxVSCROLL ) ;
+
+        wxStaticText *text = new wxStaticText( scrollWin , -1 , wxT( "Input Ports" ) ) ;
+        wxFont font( 11 , wxDEFAULT , wxNORMAL , wxBOLD ) ;
+        text->SetFont( font ) ;
+
+
+
+        std::vector<GPortModel*> lstInputs = _model->getInputPorts( ) ;
+        wxFlexGridSizer *sizer = new wxFlexGridSizer( lstInputs.size( ) , 3 , 5 , 5 ) ;
+        for ( int i = 0 ; i < ( int ) lstInputs.size( ) ; i++ ) {
+            GPortModel* port = lstInputs[i] ;
+            std::string type = port->getBBTKType( ) ;
+            wxStaticText *lblName = new wxStaticText( scrollWin , -1 , std2wx( port->getBBTKName( ) ) , wxDefaultPosition , wxSize( 100 , 25 ) ) ;
+            wxStaticText *lblType = new wxStaticText( scrollWin , -1 , std2wx( type ) , wxDefaultPosition , wxSize( 250 , 25 ) ) ;
+            wxTextCtrl *txtValue = new wxTextCtrl( scrollWin , -1 , _T( "" ) , wxDefaultPosition , wxSize( 90 , 25 ) ) ;
+
+            if ( port->getValue( ) != "" ) {
+                txtValue->SetValue( crea::std2wx( port->getValue( ) ) ) ;
+            }
+
+            if ( port->isConnected( ) ) {
+                std::string connected( "--CAN'T TOUCH THIS--" ) ;
+                txtValue->SetValue( crea::std2wx( connected ) ) ;
+                txtValue->SetEditable( false ) ;
+            }
+
+            char et = '*' ;
+            if ( type.find( et ) != -1 ) {
+                std::string noEditable( "--CAN'T TOUCH THIS--" ) ;
+                txtValue->SetValue( crea::std2wx( noEditable ) ) ;
+                txtValue->SetEditable( false ) ;
+            }
+
+            _lstNames.push_back( lblName ) ;
+            _lstValues.push_back( txtValue ) ;
+            _lstTypes.push_back( lblType ) ;
+
+            sizer->Add( lblName , 1 , wxEXPAND , 5 ) ;
+            sizer->Add( txtValue , 1 , wxEXPAND , 5 ) ;
+            sizer->Add( lblType , 1 , wxCENTRE | wxEXPAND , 5 ) ;
+        }
+
+
+        wxBoxSizer *buts = new wxBoxSizer( wxHORIZONTAL ) ;
+        wxButton *okButton = new wxButton( scrollWin , -1 , _T( "OK" ) , wxDefaultPosition , wxSize( 70 , 30 ) ) ;
+        wxButton *closeButton = new wxButton( scrollWin , -1 , _T( "CLOSE" ) , wxDefaultPosition , wxSize( 70 , 30 ) ) ;
+
+        // connect command event handlers
+        Connect( okButton->GetId( ) , wxEVT_COMMAND_BUTTON_CLICKED , wxCommandEventHandler( wxBlackBoxEditionDialog::onClickOk ) ) ;
+        Connect( closeButton->GetId( ) , wxEVT_COMMAND_BUTTON_CLICKED , wxCommandEventHandler( wxBlackBoxEditionDialog::onClickClose ) ) ;
+
+        buts->Add( okButton , 0 , wxCENTRE | wxEXPAND , 5 ) ;
+        buts->Add( closeButton , 0 , wxCENTRE | wxEXPAND , 5 ) ;
+
+        sizerDialog->AddSpacer( 10 ) ;
+        sizerDialog->Add( text , 0 , wxALIGN_TOP | wxALIGN_CENTER ) ;
+        sizerDialog->AddSpacer( 15 ) ;
+        sizerDialog->Add( sizer , 0 , wxALIGN_CENTER ) ;
+        sizerDialog->AddSpacer( 15 ) ;
+        sizerDialog->Add( buts , 0 , wxALIGN_CENTER | wxTOP | wxBOTTOM ) ;
+
+        scrollWin->SetSizer( sizerDialog ) ;
+        scrollWin->Centre( ) ;
+
+
+        scrollWin->SetVirtualSize( 400 , 400 ) ;
+        scrollWin->SetSize( 300 , 300 ) ;
+        scrollWin->SetScrollbars( 10 , 10 , 50 , 50 ) ;
+        //        scrollWin->SetSizer(sizer);
+
+
+        ShowModal( ) ;
+        Destroy( ) ;
+    }
+
+    //=========================================================================
+
+    void wxBlackBoxEditionDialog::onClickOk( wxCommandEvent& event ) {
+        for ( int i = 0 ; i < ( int ) _lstValues.size( ) ; i++ ) {
+            std::string text = wx2std( _lstValues[i]->GetValue( ) ) ;
+            //TOFIX Search a better alternative
+            if ( text != "--No editable--" && text != "--Port Connected--" ) {
+                _model->setValueToInputPort( i , text ) ;
+            }
+        }
+
+        Close( true ) ;
+    }
+
+    //=========================================================================
+
+    void wxBlackBoxEditionDialog::onClickClose( wxCommandEvent& event ) {
+        printf( "EED wxBlackBoxEditionDialog::onClickClose JGRR AND CM WERE HERE!!!\n" ) ;
+        Close( true ) ;
+    }
+
+    //=========================================================================
+
+} // EO namespace bbtk
 
 // EOF
 /*     // remove * from the name
                std::string name = _tabsMgr->GetNameTabPanel();
                if(name[name.length() - 1] != '*')
                        name = name.substr(0, name.length()-2);
-               _tabsMgr->SetNameTabPanel(name);*/
\ No newline at end of file
+               _tabsMgr->SetNameTabPanel(name);*/
index be859b614ebc5387be52b39626be5e55fdefe8fd..77801df19cd5d4a539b5ecdd6d8cd6c2c229481b 100644 (file)
@@ -8,38 +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::wxBlackBoxEditionDialog : abstract black-box interface. 
-*/
+ *  \file 
+ *  \brief Class bbtk::wxBlackBoxEditionDialog : abstract black-box interface. 
+ */
 
 /****
-* Design and Developpement of BBTK GEditor
-* Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
-* RaC - 2010
-****/
+ * Design and Developpement of BBTK GEditor
+ * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+ * RaC - 2010
+ ****/
 
 #ifndef __wxBlackBoxEditionDialog_h__
 #define __wxBlackBoxEditionDialog_h__
@@ -59,9 +59,9 @@ Version:   $Revision$
 #include <iostream>
 
 
+
 namespace bbtk
 {
-
        //RaC: It is important if it exists a double relation 
        //e.g. wxBlackBoxEditionDialog includes wxGUIEditorGraphicBBS, and wxGUIEditorGraphicBBS includes wxBlackBoxEditionDialog
        class wxGUIEditorGraphicBBS;
@@ -90,7 +90,29 @@ namespace bbtk
        
        protected:
 
-       };
+    class wxBlackBoxEditionDialog : public wxDialog {
+    public:
+        wxBlackBoxEditionDialog( wxGUIEditorGraphicBBS *parent, GBlackBoxModel *model );
+        ~ wxBlackBoxEditionDialog( );
+
+        void constructBlackBoxEditionDialog( );
+
+        void onClickOk( wxCommandEvent& event );
+        void onClickClose( wxCommandEvent& event );
+
+    private:
+        wxAuiManager *_dialogAUIMgr;
+        wxPanel *_panel;
+
+        std::vector<wxTextCtrl*> _lstValues;
+        std::vector<wxStaticText*> _lstTypes;
+        std::vector<wxStaticText*> _lstNames;
+
+        GBlackBoxModel *_model;
+
+    protected:
+
+    };
 
 
 }
index ab0ef4e76d5a65f6e69cae0748be3c4bcef30c99..543f88a7e294196bfc96232d400a19e761475068 100644 (file)
 
 #include "wxVtkSceneManager.h"
 
+
 #include <vtkPolygon.h>
 #include <vtkUnstructuredGrid.h>
 
+
 namespace bbtk {
 
+cvs 
 //=========================================================================
 wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent,
                wxVtk3DBaseView *baseView, int idManager) {
@@ -59,11 +62,13 @@ wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent,
        if (_baseView != NULL) {
                //EED02JUIN2010
                printf(
-                               "RaC-EED 21-06-2010 %p wxVtkSceneManager::wxVtkSceneManager If you comment this line, the drag and drop functionnality is not initialized.\n",
-                               this);
-#ifdef __APPLE__
+               "RaC-EED 21-06-2010 %p wxVtkSceneManager::wxVtkSceneManager If you comment this line, the drag and drop functionnality is not initialized.\n", this);
+
+               #ifdef __APPLE__
+
                _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget((wxDropTarget*)parent);
-#endif
+
+               #endif
 
                configureBaseView();
                _worldState = NOTHING_HAPPENS;
@@ -530,7 +535,17 @@ int wxVtkSceneManager::createGConnector(GPortModel* startPort) {
        manContourView->SetColorNormalContour(0, 0, 1);
        manContourView->SetColorEditContour(0.5, 0.5, 0.5);
        manContourView->SetColorSelectContour(1, 0.8, 0);
-       manContourView->SetWidthLine(1);
+       
+       
+      /**
+         * JGRR AND CM
+         * Width increased from 2 to 5, it simplifies line handling and spline control :P
+         * @param WidthLine  
+         */
+        
+        manContourView->SetWidthLine( 5 ) ;
+
+
        manContourView->SetShowText(false);
 
        manContourControl->SetModelView(manContourModel, manContourView);
@@ -1946,7 +1961,6 @@ void wxVtkSceneManager::loadDiagram(stringstream &inputStream) {
                                std::string value(result);
 
                                bbmod->setValueToInput(name, value);
-
                                getline(inputStream, line);//PORT o FIN_BOX
                                port = line.substr(0, 4);
                        } // while
@@ -2556,6 +2570,7 @@ void wxVtkSceneManager::SetCbPackageName(std::string packagename) {
        }
 }
 
+
 //=========================================================================
 std::string wxVtkSceneManager::GetCbPackageName() {
        return _cbPackageName;
@@ -2595,6 +2610,7 @@ void wxVtkSceneManager::SetDescription(std::string description) {
        }
 }
 
+
 //=========================================================================
 std::string wxVtkSceneManager::GetDescription() {
        return _Description;
@@ -2605,5 +2621,4 @@ std::string wxVtkSceneManager::GetDescription() {
 
 } // EO namespace bbtk
 
-// EOF
-
+// EOF 
index fe5889c831a0ec357c4f3a2694a05dba54ee992e..fadb8ba819ca0428be5046fd71d3bbc0f43ea870 100644 (file)
@@ -8,38 +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::BlackBox : abstract black-box interface.
-*/
+ *  \file
+ *  \brief Class bbtk::BlackBox : abstract black-box interface.
+ */
 
 /****
-* Design and Developpement of BBTK GEditor
-* Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
-* RaC - 2010
-****/
+ * Design and Developpement of BBTK GEditor
+ * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co>
+ * RaC - 2010
+ ****/
 
 #ifndef __wxVtkSceneManager_h__
 #define __wxVtkSceneManager_h__
@@ -77,7 +77,7 @@ Version:   $Revision$
 #include <vtkActor.h>
 #include <vtkPoints.h>
 #include <vtkTextActor3D.h>
- #include <vtkDataSetMapper.h>
+#include <vtkDataSetMapper.h>
 
 
 //Includes std
@@ -86,6 +86,7 @@ Version:   $Revision$
 #include <sstream>
 #include <map>
 
+
 namespace bbtk
 {
        class wxGEditorTabPanel;
@@ -127,6 +128,78 @@ namespace bbtk
                void configGComBoxInputOutputPort(bool inputoutput, std::string inputPortName, double xIn, double yIn,double zIn);
                GBoxModel* findGBox(std::string boxname);
 
+    class wxVtkSceneManager : public InteractorStyleMaracas, public Observer {
+    public:
+
+        wxVtkSceneManager( wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager );
+        ~ wxVtkSceneManager( );
+        void disconnectDrop( );
+
+        //-------
+        void configureBaseView( );
+        void registerController( InteractorStyleMaracas *param );
+        void unregisterController( InteractorStyleMaracas *param );
+
+        virtual bool OnChar( );
+        virtual bool OnMouseMove( );
+        virtual bool OnLeftButtonDown( );
+        virtual bool OnLeftButtonUp( );
+        virtual bool OnRightButtonUp( );
+        virtual bool OnLeftDClick( );
+
+        //-------
+        int createGBlackBox( int x, int y, std::string packageName, std::string boxType );
+        int createGComplexBoxInputPort( std::string inputName );
+        int createGComplexBoxOutputPort( std::string outputName );
+        GPortController* createGPort( int portType, std::string bbtkName, std::string bbtkType, int posinBox, GBoxModel *blackBox );
+        int createGInputPort( int portType, int posinBox, GBoxModel *blackBox, BlackBoxInputDescriptor *desc );
+        int createGOutputPort( int portType, int posinBox, GBoxModel *blackBox, BlackBoxOutputDescriptor *desc );
+        int createGConnector( GPortModel* startPort );
+
+        void configGBlackBox( int idBox, double xIn, double yIn, double zIn, std::string name, bool boxExecutable, double xEn, double yEn, double zEn );
+        int configGConnetion( std::string nameStartBox, std::string nameStartPort, std::string
+        nameEndBox, std::string nameEndPort );
+        void configGComBoxInputOutputPort( bool inputoutput, std::string inputPortName, double xIn, double yIn, double zIn );
+        GBoxModel* findGBox( std::string boxname );
+
+        vtkRenderWindow* getRenderWindow( );
+        vtkRenderer* getRenderer( );
+
+        virtual void update( int idController, int command );
+
+        void refresh( );
+        void refreshScene( );
+        void displayBlackBoxInfo( std::string packageName, std::string boxName );
+        void updateStatusBar( std::string textStatus );
+
+        //-------
+        //Get a collection of object ids
+        std::vector<int> getBlackBoxes( );
+        std::vector<int> getConnections( );
+        std::vector<int> getComplexInputPorts( );
+        std::vector<int> getComplexOutputPorts( );
+
+        //Get the map of selected objects (id, controller)
+        std::map<int, GObjectController*> getSelectedObjects( );
+
+        //Get size of selected objects map
+        int getNumSelectedObjects( );
+
+        //Complex box edition mode
+        bool isComplexBox( );
+        void setComplexBox( bool val );
+
+        //-------
+        //Add an object to the list of controllers
+        int addObjectController( GObjectController* objController );
+
+        //Add a map of object controllers
+        void addObjects( std::map<int, GObjectController*> objectsMap );
+
+
+        //-------
+        //Returns a string with the BBS script of the current diagram.
+        std::string getDiagramBBS( bool wln = false );
 
 
                vtkRenderWindow* getRenderWindow();
@@ -173,96 +246,97 @@ namespace bbtk
                //Returns a string with the BBS script of the current diagram.
                std::string getDiagramBBS(bool wln=false);
 
-               //Returns a string with the BBS script of the complex box.
-               std::string saveComplexBoxBBS();
 
-               //Delete the object in the list of controllers with the id given by parameter.
-               void deleteObject(int id);
+        void AddControlerToBeRemove( std::vector<int> *controllersToRemove, int id );
+
+        //Clear list of controllers and refresh
+        void deleteAllBoxes( );
 
-               void AddControlerToBeRemove(std::vector<int> *controllersToRemove, int id);
+        //Save the diagram in the BBG format, in the string given by param.
+        void saveDiagram( std::string &content );
 
-               //Clear list of controllers and refresh
-               void deleteAllBoxes();
+        //Load the diagram
+        void loadDiagram( ifstream &inputStream );
 
-               //Save the diagram in the BBG format, in the string given by param.
-               void saveDiagram(std::string &content);
+        //Center the view of the camera in the initial position
+        void centerView( );
 
                //Load the diagram
                void loadDiagram(std::stringstream &inputStream);
 
-               //Center the view of the camera in the initial position
-               void centerView();
 
-               bool boxExist(std::string boxname);
-               std::string generateANewNameForABox();
-               std::string findANewNameForABox();
-               //-------
+        void SetCbName( std::string cbNane );
+        void SetCbPackageName( std::string packagename );
+        void SetAuthor( std::string author );
+        void SetCategory( std::string category );
+        void SetDescription( std::string description );
+
+        std::string GetCbName( );
+        std::string GetCbPackageName( );
+        std::string GetAuthor( );
+        std::string GetCategory( );
+        std::string GetDescription( );
+        
+        
 
-        void SetCbName(std::string cbNane);
-        void SetCbPackageName(std::string packagename);
-        void SetAuthor(std::string author);
-        void SetCategory(std::string category);
-        void SetDescription(std::string description);
+        // JGRR & CM
+        void printAll( int com, int sta );
 
-        std::string GetCbName();
-        std::string GetCbPackageName();
-        std::string GetAuthor();
-        std::string GetCategory();
-        std::string GetDescription();
+        
 
-       private:
+    private:
 
-        std::string                         _cbName;
-        std::string                         _cbPackageName;
-        std::string                         _Author;
-        std::string                         _Category;
-        std::string                         _Description;
+        std::string _cbName;
+        std::string _cbPackageName;
+        std::string _Author;
+        std::string _Category;
+        std::string _Description;
 
-               //wxPanel that uses the manager
-               wxGEditorTabPanel                                       *_parent;
+        //wxPanel that uses the manager
+        wxGEditorTabPanel *_parent;
 
-               // Id of the manager, the same of the panel
-               int                                                                     _idManager;
+        // Id of the manager, the same of the panel
+        int _idManager;
 
-               // Boxes number in the scene
-               int                                                                     _numBoxes;
+        // Boxes number in the scene
+        int _numBoxes;
 
-               // StartDragging
-               bool                                                            _startDragging;
+        // StartDragging
+        bool _startDragging;
 
-               // creaMaracasVisu viewer
-               wxVtk3DBaseView                                         *_baseView;
+        // creaMaracasVisu viewer
+        wxVtk3DBaseView *_baseView;
 
-               // State of the 3D Scene or the virtual world
-               int _worldState;
+        // State of the 3D Scene or the virtual world
+        int _worldState;
 
-               //Map of id - objectController
-               std::map<int,GObjectController*>        _controllers;
+        //Map of id - objectController
+        std::map<int, GObjectController*> _controllers;
 
-               //Saves the id's of the selected objects in the controllers map
-               std::vector<int>                                        _selectedObjects;
+        //Saves the id's of the selected objects in the controllers map
+        std::vector<int> _selectedObjects;
 
-               //Is the diagram in state complex box
-               bool                                                            _isComplexBox;
+        //Is the diagram in state complex box
+        bool _isComplexBox;
 
-               int                                                                     _idConnectionInCreation;
+        int _idConnectionInCreation;
 
-               int _contLastId;
+        int _contLastId;
 
-               vtkTextActor3D                                          *_textActor;
-               vtkPoints                                                       *_pts;
-               vtkActor                                                        *_fillObjectActor;
-               vtkDataSetMapper                                        *_aPolygonMapper;
+        vtkTextActor3D *_textActor;
+        vtkPoints *_pts;
+        vtkActor *_fillObjectActor;
+        vtkDataSetMapper *_aPolygonMapper;
 
-        std::string LineNumber(bool withLineNumber, int &value);
-        int GetIndexInSelected(int idControler);
-        void UnSelectBlackBoxes();
-        GObjectController *GetGBlackBoxControlerPointedByMouse();
-               void CancelConnection();
+        std::string LineNumber( bool withLineNumber, int &value );
+        int GetIndexInSelected( int idControler );
+        void UnSelectBlackBoxes( );
+        GObjectController *GetGBlackBoxControlerPointedByMouse( );
+        void CancelConnection( );
 
-       protected:
+    protected:
 
-       };
+    };
 
 
 }