00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00037 #include "GConnectorModel.h"
00038
00039 namespace bbtk
00040 {
00041
00042
00043
00044 GConnectorModel::GConnectorModel()
00045 {
00046 _startPort = NULL;
00047 _endPort = NULL;
00048 }
00049
00050
00051
00052 GConnectorModel::~GConnectorModel()
00053 {
00054 }
00055
00056
00057
00058 void GConnectorModel::setStartPort(GPortModel* startPort)
00059 {
00060 _startPort = startPort;
00061 startPort->setConnected(true);
00062
00063 double xCenter,yCenter,zCenter;
00064 startPort->getCenter(xCenter,yCenter,zCenter);
00065 double xFport,yFport,zFport;
00066 startPort->getFinalPoint(xFport,yFport,zFport);
00067
00068 setInicPoint(xCenter,yFport,zCenter);
00069 }
00070
00071
00072
00073 void GConnectorModel::setEndPort(GPortModel* endPort)
00074 {
00075 _endPort = endPort;
00076 endPort->setConnected(true);
00077
00078 double xCenter,yCenter,zCenter;
00079 endPort->getCenter(xCenter,yCenter,zCenter);
00080 double xIport,yIport,zIport;
00081 endPort->getInicPoint(xIport,yIport,zIport);
00082
00083 setFinalPoint(xCenter,yIport,zCenter);
00084
00085
00086 manualPoint* point = _model->GetManualPoint(_model->GetSizeLstPoints()-1);
00087 point->SetPoint(xCenter,yIport,zCenter);
00088 }
00089
00090
00091
00092 GPortModel* GConnectorModel::getStartPort()
00093 {
00094 return _startPort;
00095 }
00096
00097
00098
00099 GPortModel* GConnectorModel::getEndPort()
00100 {
00101 return _endPort;
00102 }
00103
00104
00105
00106 manualContourModel* GConnectorModel::getManualContourModel()
00107 {
00108 return _model;
00109 }
00110
00111
00112
00113 void GConnectorModel::setManualContourModel(manualContourModel* model)
00114 {
00115 _model = model;
00116 }
00117
00118
00119
00120 void GConnectorModel::updateStartEndPoints()
00121 {
00122
00123 double xCenter,yCenter,zCenter;
00124 _startPort->getCenter(xCenter,yCenter,zCenter);
00125 double xport,yport,zport;
00126 _startPort->getFinalPoint(xport,yport,zport);
00127
00128
00129 manualPoint* point = _model->GetManualPoint(0);
00130 point->SetPoint(xCenter,yport,zCenter);
00131
00132
00133 _endPort->getCenter(xCenter,yCenter,zCenter);
00134 _endPort->getInicPoint(xport,yport,zport);
00135
00136
00137 point = _model->GetManualPoint(_model->GetSizeLstPoints()-1);
00138 point->SetPoint(xCenter,yport,zCenter);
00139 }
00140
00141
00142
00143 void GConnectorModel::disconnectConnection()
00144 {
00145 if(_startPort!=NULL)
00146 {
00147 _startPort->setConnected(false);
00148 }
00149
00150 if(_endPort!=NULL)
00151 {
00152 _endPort->setConnected(false);
00153 }
00154 }
00155
00156
00157
00158 void GConnectorModel::save(std::string &content)
00159 {
00160 char buffer[50];
00161
00162 content+="CONNECTION\n";
00163
00164
00165 content+=_startPort->getParentBox()->getBBTKName();
00166 content+=":";
00167 content+=_startPort->getBBTKName();
00168 content+=":";
00169 content+=_endPort->getParentBox()->getBBTKName();
00170 content+=":";
00171 content+=_endPort->getBBTKName();
00172 content+="\n";
00173
00174 int i,sizeLstPoints = _model->GetSizeLstPoints()-2;
00175 content+="NumberOfControlPoints:";
00176 sprintf (buffer, "%d", sizeLstPoints );
00177 content+=buffer;
00178 content+="\n";
00179
00180 for (i=0;i<sizeLstPoints;i++)
00181 {
00182 manualPoint *mp = _model->GetManualPoint(i+1);
00183 sprintf (buffer, "%f:%f:%f\n", (float)mp->GetX(),(float)mp->GetY(),(float)mp->GetZ() );
00184 content+=buffer;
00185 }
00186 }
00187
00188
00189
00190 }
00191
00192
00193