manualViewContour::manualViewContour()
{
- _id_viewPoint_for_text = 0;
- _mesureScale = 1;
- _initialConoturModel = new manualContourModel();
+ _id_viewPoint_for_text = 0;
+ _mesureScale = 1;
+ _initialConoturModel = new manualContourModel();
+
+ _minX = 99999;
+ _minY = 99999;
+ _maxX = -99999;
+ _maxY = -99999;
+
}
// ----------------------------------------------------------------------------
manualViewContour::~manualViewContour()
{
}
-
-
// ----------------------------------------------------------------------------
void manualViewContour::RefreshContour() // virtual
{
-
int i,np,nps;
//JSTG 25-02-08 --------------------
//double t,delta, x,y,z;
double x,y,z;
+ double xx,yy,zz;
//----------------------------------
_manContModel->UpdateSpline();
nps = _manContModel->GetNumberOfPointsSpline();
//delta=( double ) ( np ) / ( double ) ( nps-1 ); //JSTG 25-02-08
-
+ //EED 27 Juin 2012
+ //Boundaring box
+ _minX=99999;
+ _minY=99999;
+ _maxX=-99999;
+ _maxY=-99999;
+
if ( _pts!=NULL )
{
if (np>=2 )
//--------------------------------------------------------------
// EED 27 sep 2006
// _pts->SetPoint(i, x,y,z );
- _pts->SetPoint(i , x*_spc[0] , y*_spc[1] , z*_spc[2] );
-
-
+ xx=x*_spc[0];
+ yy=y*_spc[1];
+ zz=z*_spc[2];
+ _pts->SetPoint(i,xx,yy,zz );
+
+ //EED 27 Juin 2012
+ //Boundaring box
+ if (xx < _minX) { _minX = xx; }
+ if (yy < _minY) { _minY = yy; }
+ if (xx > _maxX) { _maxX = xx; }
+ if (yy > _maxY) { _maxY = yy; }
+
}// for
}
else
int size = GetNumberOfPoints();
char text[50];
char resultText[50];
- strcpy(resultText," ");
+ strcpy(resultText, "000");
+
+//CMRU 19-08-09 ----------------------------------
+ std::string label;
+ label = _manContModel->GetLabel();
+// ------------------------------------
+
if (size==2)
{
strcpy(resultText,"L= ");
- gcvt ( _mesureScale * this->_manContModel->GetPathSize() , 5, text );
+ gcvt ( _mesureScale * this->_manContModel->GetPathSize(), 5, text );
strcat(resultText,text);
+
+//CMRU 19-08-09 ----------------------------------
+ strcat(resultText," ");
+ strcat(resultText,label.c_str());
+//------------------------------------------------
}
if (size>2)
{
if (_manContModel->IfCloseContour()==true)
{
strcpy(resultText,"P= ");
- gcvt ( _mesureScale * this->_manContModel->GetPathSize() , 5, text );
+ gcvt ( _mesureScale * this->_manContModel->GetPathSize(), 5, text );
strcat(resultText,text);
- gcvt ( _mesureScale * _mesureScale * this->_manContModel->GetPathArea() , 5, text );
+ gcvt ( _mesureScale * _mesureScale * this->_manContModel->GetPathArea(), 5, text );
strcat(resultText," A= ");
strcat(resultText,text);
+ strcat(resultText," ");
} else {
strcpy(resultText,"L= ");
- gcvt ( _mesureScale * this->_manContModel->GetPathSize() , 5, text );
+ gcvt ( _mesureScale * this->_manContModel->GetPathSize(), 5, text );
strcat(resultText,text);
}
+//CMRU 19-08-09 ----------------------------------
+ strcat(resultText,label.c_str());
+//------------------------------------------------
}
_textActor->SetInput(resultText);
}
}
- int id = _id_viewPoint_for_text;
- double px = _manContModel->GetManualPoint(id)->GetX();
- double py = _manContModel->GetManualPoint(id)->GetY();
+ if (_id_viewPoint_for_text>=size)
+ {
+ _id_viewPoint_for_text=0;
+ }
+
+ double px = _manContModel->GetManualPoint(_id_viewPoint_for_text)->GetX();
+ double py = _manContModel->GetManualPoint(_id_viewPoint_for_text)->GetY();
//EED 27 sep 2006
px=px*_spc[0];
_textActor->SetPosition(px+GetRange()+1,py);
}
-
}
}
// ----------------------------------------------------------------------------
-bool manualViewContour::ifTouchContour(int x,int y,int z){
+bool manualViewContour::ifTouchContour(int x,int y,int z)
+{
bool result=false;
double xx=x;
double yy=y;
double ppA[3];
double ppB[3];
double d1,d2,d3;
- TransfromeCoordViewWorld(xx,yy,zz);
+ TransfromCoordViewWorld(xx,yy,zz);
//EED 27 sep 2006
xx = xx * _spc[0];
yy = yy * _spc[1];
zz = zz * _spc[2];
- unsigned int i, nps,nps_t;
- nps = _sizePointsContour;
+ if ( (xx>=_minX) && (yy>=_minY) && (xx<=_maxX) && (yy<=_maxY)) { // inside the boundaring box
- if (this->_manContModel->IfCloseContour()==true)
- {
- nps_t = nps;
- } else {
- nps_t = nps-1;
- }
-
+ unsigned int i, nps,nps_t;
+ nps = _sizePointsContour;
- for( i = 0; i < nps_t; i++ )
- {
- _pts->GetPoint(i%nps, ppA);
- _pts->GetPoint((i+1)%nps, ppB);
- d1= sqrt( (ppA[0]-xx)*(ppA[0]-xx) + (ppA[1]-yy)*(ppA[1]-yy) + (ppA[2]-zz)*(ppA[2]-zz));
- d2= sqrt( (ppB[0]-xx)*(ppB[0]-xx) + (ppB[1]-yy)*(ppB[1]-yy) + (ppB[2]-zz)*(ppB[2]-zz));
- d3= sqrt( (ppB[0]-ppA[0])*(ppB[0]-ppA[0]) + (ppB[1]-ppA[1])*(ppB[1]-ppA[1]) + (ppB[2]-ppA[2])*(ppB[2]-ppA[2]));
+ if (this->_manContModel->IfCloseContour()==true)
+ {
+ nps_t = nps;
+ } else {
+ nps_t = nps-1;
+ } // if close
+printf("EED Warning manualViewContour::ifTouchContour \n");
- if ( ((d1+d2)>=d3) && ((d1+d2)<=d3*1.3) )
+ for( i = 0; i < nps_t; i++ )
{
- result=true;
- i=nps;
- }
- }
-
+ _pts->GetPoint(i%nps, ppA);
+ _pts->GetPoint((i+1)%nps, ppB);
+ d1 = sqrt( (ppA[0]-xx)*(ppA[0]-xx) + (ppA[1]-yy)*(ppA[1]-yy) + (ppA[2]-zz)*(ppA[2]-zz));
+ d2 = sqrt( (ppB[0]-xx)*(ppB[0]-xx) + (ppB[1]-yy)*(ppB[1]-yy) + (ppB[2]-zz)*(ppB[2]-zz));
+ d3 = sqrt( (ppB[0]-ppA[0])*(ppB[0]-ppA[0]) + (ppB[1]-ppA[1])*(ppB[1]-ppA[1]) + (ppB[2]-ppA[2])*(ppB[2]-ppA[2]));
+
+ if ( ((d1+d2)>=d3) && ((d1+d2)<=d3*1.3) )
+ {
+ result=true;
+ i=nps;
+ } // if
+ } // for i
+ } // if min max
return result;
}
double XX=x;
double YY=y;
double ZZ=z;
- TransfromeCoordViewWorld(XX,YY,ZZ);
+ TransfromCoordViewWorld(XX,YY,ZZ);
int i, manualPointsSZ = _manContModel->GetSizeLstPoints();
for ( i=0; i<manualPointsSZ; i++ )
double YY=y;
double ZZ=z;
- TransfromeCoordViewWorld(XX,YY,ZZ);
+ TransfromCoordViewWorld(XX,YY,ZZ);
int i, manualPointsSZ = _manContModel->GetSizeLstPoints();
for ( i=0; i<manualPointsSZ; i++ )