-/*=========================================================================
+/*=========================================================================
Program: bbtk
Module: $RCSfile$
Language: C++
* 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
+* 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.
+* 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
*/
/****
//=========================================================================
GPortModel::GPortModel()
- {
+ {
_parentBox = NULL;
_portType=-1;
_posInBox=0;
}
//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.6*PORT_WIDTH;
-
+ posX = xInic + (PORT_WIDTH/2) + _posInBox*1.1*PORT_WIDTH;
+
setInicPoint(posX,posY,posZ);
posX=posX+PORT_WIDTH;
posY=posY-PORT_HEIGHT;
- setFinalPoint(posX,posY,posZ);
-
+ setFinalPoint(posX,posY,posZ);
+
}
//=========================================================================
}
//=========================================================================
-
+
std::string GPortModel::getStatusText()
{
std::string temp = "";
-
+
temp+=_bbtkName;
if(isValueSet())
{
}
//=========================================================================
-
+
void GPortModel::setConnected(bool value)
{
_isConnected=value;
}
//=========================================================================
-
+
std::string GPortModel::getValue()
{
return _value;
-/*=========================================================================
+/*=========================================================================
Program: bbtk
Module: $RCSfile$
Language: C++
* 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
+* 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.
+* 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::vtkGBlackBoxView
+* \file
+* \brief Class bbtk::vtkGBlackBoxView
*/
//=========================================================================
vtkGBlackBoxView::vtkGBlackBoxView()
- {
+ {
}
//=========================================================================
{
}
+ //=========================================================================
+ void vtkGBlackBoxView::update_X_Fin()
+ {
+ double xInic, yInic,zInic,xFin, yFin,zFin;
+ _model->getInicPoint(xInic,yInic,zInic);
+ double *bounds = _boxTextActor->GetBounds();
+ _model->getFinalPoint(xFin, yFin,zFin);
+
+ double xFin1,xFin2,xFin3;
+ // position referens from box name
+ xFin1 = xInic+(bounds[1]-bounds[0])/2 + 20;
+ xFin2=xFin1;
+ xFin3=xFin1;
+ // position referens from input ports
+ GBoxModel* gbm=(GBoxModel*)_model;
+ if ( gbm->getNumInputPorts()>0 )
+ {
+ GPortModel* gpm = gbm->getInputPort( gbm->getNumInputPorts()-1 );
+ double xpFin, ypFin, zpFin;
+ gpm->getFinalPoint(xpFin, ypFin, zpFin);
+ xFin2 = xpFin+1;
+ }
+ // position referens from output ports
+ if ( gbm->getNumOutputPorts()>0 )
+ {
+ GPortModel* gpm = gbm->getOutputPort( gbm->getNumOutputPorts()-1 );
+ double xpFin, ypFin, zpFin;
+ gpm->getFinalPoint(xpFin, ypFin, zpFin);
+ xFin3 = xpFin+2;
+ }
+ xFin=xFin1;
+ if (xFin2>xFin) xFin=xFin2;
+ if (xFin3>xFin) xFin=xFin3;
+ _model->setFinalPoint( xFin , yFin , zFin );
+ }
+
//=========================================================================
void vtkGBlackBoxView::update(int idController,int command)
{
updateColors();
-
+
double xInic, yInic,zInic,xFin, yFin,zFin;
_model->getInicPoint(xInic,yInic,zInic);
+
+ updatePositionTextActor(xInic, yInic,zInic);
+ update_X_Fin();
_model->getFinalPoint(xFin, yFin,zFin);
// RaC In the actual version, zInic=zFin=900
_fillPolyMapper->Modified();
//-----------
- updatePositionTextActor(xInic, yInic,zInic);
-
//-----------
setRefreshWaiting();
}
{
//------------
- _pts = vtkPoints::New();
+ _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;
_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 );
_borderObjectActor->SetMapper(_borderPolyMapper);
_borderPolyMapper->Modified();
-
+
///************************* FILL *************************
vtkCellArray *strip = vtkCellArray::New();
strip->InsertCellPoint(2);
strip->InsertCellPoint(0);
strip->InsertCellPoint(3);
-
+
pdFill->SetPoints( _pts );
pdFill->SetStrips( strip );
_borderObjectActor->GetProperty()->SetColor(BOXBORDER_NH_R,0.9,BOXBORDER_HIGHLIGHTED_B);
_fillObjectActor->GetProperty()->SetColor(BOXFILL_NH_R,0.9,BOXFILL_HIGHLIGHTED_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);
_boxTextActor->GetTextProperty()->SetColor(BOXTEXT_HIGHLIGHTED_R,BOXTEXT_HIGHLIGHTED_G,BOXTEXT_HIGHLIGHTED_B);
-/*=========================================================================
+/*=========================================================================
Program: bbtk
Module: $RCSfile$
Language: C++
* 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
+* 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.
+* 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::vtkGBlackBoxView : abstract black-box interface.
+* \file
+* \brief Class bbtk::vtkGBlackBoxView : abstract black-box interface.
*/
/****
class vtkGBlackBoxView : public vtkGBoxView
{
- public:
+ public:
//Constructors
vtkGBlackBoxView();
~vtkGBlackBoxView();
-
- //Public methods
+
+ //Public methods
private:
protected:
//Protected Attributes
-
+
//Protected Methods
virtual void addVtkActors();
virtual void removeVtkActors();
virtual void update(int idController,int command);
virtual void updateColors();
+ virtual void update_X_Fin();
+
};