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);
}
void GConnectorModel::updateStartEndPoints()
{
+
+ //back point
+ double bsx,bsy; // back start for x and y
+ double nsx,nsy;
+ double bex,bey; // new start for x and y
+ double nex,ney;
+
//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);
+ bsx=point->GetX();
+ bsy=point->GetY();
point->SetPoint(xCenter,yport,zCenter);
-
+ nsx=xCenter;
+ nsy=yport;
+
//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);
+ bex=point->GetX();
+ bey=point->GetY();
point->SetPoint(xCenter,yport,zCenter);
+ nex=xCenter;
+ ney=yport;
+
+
+ // moving point of the spline connection
+ if ( ((bsx!=nsx)&&(bex!=nex)) || ((bsy!=nsy)&&(bey!=ney)) )
+ {
+ double difx=bsx-nsx;
+ double dify=bey-ney;
+ double tmpX, tmpY, tmpZ;
+ int i,size=_model->GetSizeLstPoints();
+ if (size>2)
+ {
+ for (i=1;i<size-1;i++)
+ {
+ point = _model->GetManualPoint(i);
+ tmpX = point->GetX();
+ tmpY = point->GetY();
+ tmpZ = point->GetZ();
+ point->SetPoint(tmpX-difx,tmpY-dify,tmpZ);
+ } // for i
+ }// if size
+ } // if bsx nsx bex nex bsy nsy bey ney
}
//=========================================================================
//=========================================================================
- bool GConnectorModel::isPointInside(double x,double y, double z)//virtual
- {
- return false;
- }
-
- //=========================================================================
-
void GConnectorModel::save(std::string &content)
{
+ char buffer[50];
+
content+="CONNECTION\n";
// Connection info
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;
+ }
}
//=========================================================================