GConnectorModel::GConnectorModel()
{
- //_startPort = NULL;
- //_endPort = NULL;
+ _startPort = NULL;
+ _endPort = NULL;
}
//=========================================================================
void GConnectorModel::setStartPort(GPortModel* startPort)
{
_startPort = startPort;
+ startPort->setConnected(true);
double xCenter,yCenter,zCenter;
startPort->getCenter(xCenter,yCenter,zCenter);
void GConnectorModel::setEndPort(GPortModel* endPort)
{
_endPort = endPort;
+ endPort->setConnected(true);
double xCenter,yCenter,zCenter;
endPort->getCenter(xCenter,yCenter,zCenter);
setFinalPoint(xCenter,yIport,zCenter);
+ // Sets the last point of the contour model in the position of the end input port
manualPoint* point = _model->GetManualPoint(_model->GetSizeLstPoints()-1);
point->SetPoint(xCenter,yIport,zCenter);
- cout<<"RaC GConnectorModel::setEndPort size:"<<_model->GetSizeLstPoints()<<endl;
}
//=========================================================================
//=========================================================================
+ void GConnectorModel::updateStartEndPoints()
+ {
+ //Start Point
+ double xCenter,yCenter,zCenter;
+ _startPort->getCenter(xCenter,yCenter,zCenter);
+ double xport,yport,zport;
+ _startPort->getFinalPoint(xport,yport,zport);
+
+ // Refresh the position of the contourModel first point with the data of the connector model
+ manualPoint* point = _model->GetManualPoint(0);
+ point->SetPoint(xCenter,yport,zCenter);
+
+ //End Point
+ _endPort->getCenter(xCenter,yCenter,zCenter);
+ _endPort->getInicPoint(xport,yport,zport);
+
+ // Refresh the position of the contourModel last point with the data of the connector model
+ point = _model->GetManualPoint(_model->GetSizeLstPoints()-1);
+ point->SetPoint(xCenter,yport,zCenter);
+ }
+
+ //=========================================================================
+
+ void GConnectorModel::disconnectConnection()
+ {
+ if(_startPort!=NULL)
+ {
+ _startPort->setConnected(false);
+ }
+
+ if(_endPort!=NULL)
+ {
+ _endPort->setConnected(false);
+ }
+ }
+
+ //=========================================================================
+
+ void GConnectorModel::save(std::string &content)
+ {
+ char buffer[50];
+
+ content+="CONNECTION\n";
+
+ // Connection info
+ content+=_startPort->getParentBox()->getBBTKName();
+ content+=":";
+ content+=_startPort->getBBTKName();
+ content+=":";
+ content+=_endPort->getParentBox()->getBBTKName();
+ content+=":";
+ content+=_endPort->getBBTKName();
+ content+="\n";
+
+ int i,sizeLstPoints = _model->GetSizeLstPoints()-2;
+ content+="NumberOfControlPoints:";
+ sprintf (buffer, "%d", sizeLstPoints );
+ content+=buffer;
+ content+="\n";
+
+ for (i=0;i<sizeLstPoints;i++)
+ {
+ manualPoint *mp = _model->GetManualPoint(i+1);
+ sprintf (buffer, "%f:%f:%f\n", (float)mp->GetX(),(float)mp->GetY(),(float)mp->GetZ() );
+ content+=buffer;
+ }
+ }
+
+ //=========================================================================
+
} // EO namespace bbtk
// EOF