#include "manualViewCircle.h" // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- // EED08 manualViewCircle::manualViewCircle() { // _sizePointsContour=5; // default 100 } // ---------------------------------------------------------------------------- manualViewCircle::~manualViewCircle() { } // ---------------------------------------------------------------------------- manualViewCircle * manualViewCircle :: Clone() { manualViewCircle * clone = new manualViewCircle(); CopyAttributesTo(clone); return clone; } // --------------------------------------------------------------------------- void manualViewCircle::CopyAttributesTo( manualViewCircle * cloneObject) { // Fathers object manualViewBaseContour::CopyAttributesTo(cloneObject); } // ---------------------------------------------------------------------------- /* void manualViewCircle::RefreshContour(){ // virtual manualPoint *mpA,*mpB; unsigned int i, np,nps; double angle,radio; double difX,difY; double XX,YY,ZZ; np = GetNumberOfPoints( ); nps = _manContModel->GetNumberOfPointsSpline(); double deltaAngle=(3.14159265*2)/(nps-1); if ( np > 0) { if (np==2) { mpA = _manContModel->GetManualPoint(0); mpB = _manContModel->GetManualPoint(1); difX = mpA->GetX() - mpB->GetX(); difY = mpA->GetY() - mpB->GetY(); radio = sqrt( difX*difX + difY*difY ); manualContourModelCircle *manContModelCir = (manualContourModelCircle*)_manContModel; manContModelCir->SetRadio(radio); for( i = 0; i < nps; i++ ) { manContModelCir->GetSpline_i_Point(i, &XX, &YY, &ZZ); // angle = deltaAngle*i; // XX = cos(angle)*radio+mpA->GetX(); // YY = sin(angle)*radio+mpA->GetY(); ZZ = mpA->GetZ(); _pts->SetPoint(i, XX*_spc[0] , YY*_spc[1] , ZZ*_spc[2] ); } // rof } else { _pts->SetPoint(0, 0 , 0 , 0); _pts->SetPoint(1, 0 , 0 , 0); } // if } } */ // ---------------------------------------------------------------------------- int manualViewCircle::GetType() // virtual { return 3; } // ---------------------------------------------------------------------------- void manualViewCircle::GetMinMax(double &minX,double &minY, double &maxX, double &maxY) { manualPoint *mpA,*mpB; unsigned int np; double radio; double difX,difY; np = GetNumberOfPoints( ); if (np==2) { mpA = _manContModel->GetManualPoint(0); mpB = _manContModel->GetManualPoint(1); difX = mpA->GetX() - mpB->GetX(); difY = mpA->GetY() - mpB->GetY(); radio = sqrt( difX*difX + difY*difY ); minX=mpA->GetX()-radio; minY=mpA->GetY()-radio; maxX=mpA->GetX()+radio; maxY=mpA->GetY()+radio; } else { minX=0; maxX=0; minY=0; maxY=0; } } /* // ---------------------------------------------------------------------------- bool manualViewCircle::ifTouchContour(int x,int y, int z) // virtual { bool result=false; double px1=99999,py1=99999,px2=-9999,py2=-99999; GetMinMax(px1,py1, px2, py2); double xx=x; double yy=y; double zz=z; TransfromeCoordViewWorld(xx,yy,zz); bool ok1=false; bool ok2=false; double ddx=GetRange(); double ddy=GetRange(); if ((xx>px1-ddx)&&(xxpy1-ddy)&&(yypx1+ddx)&&(xxpy1+ddy)&&(yyGetSizeLstPoints()==2){ mp = _manContModel->GetManualPoint(0); _dp0[0]= mp->GetX() - XX; _dp0[1]= mp->GetY() - YY; _dp0[2]= mp->GetZ(); mp = _manContModel->GetManualPoint(1); _dp1[0]= mp->GetX() - XX; _dp1[1]= mp->GetY() - YY; _dp1[2]= mp->GetZ(); /* mp = _manContModel->GetManualPoint(2); _dp2[0]= mp->GetX() - XX; _dp2[1]= mp->GetY() - YY; _dp2[2]= mp->GetZ(); mp = _manContModel->GetManualPoint(3); _dp3[0]= mp->GetX() - XX; _dp3[1]= mp->GetY() - YY; _dp3[2]= mp->GetZ(); */ } } // ---------------------------------------------------------------------------- void manualViewCircle::MoveContour(int x, int y, int z) // virtual { manualPoint *mp; double XX=x; double YY=y; double ZZ=z; TransfromeCoordViewWorld(XX,YY,ZZ); mp = _manContModel->GetManualPoint(0); mp->SetPoint(_dp0[0]+XX,_dp0[1]+YY,_dp0[2]); mp = _manContModel->GetManualPoint(1); mp->SetPoint(_dp1[0]+XX,_dp1[1]+YY,_dp0[2]); // mp = _manContModel->GetManualPoint(2); // mp->SetPoint(_dp2[0]+XX,_dp2[1]+YY,_dp0[2]); // mp = _manContModel->GetManualPoint(3); // mp->SetPoint(_dp3[0]+XX,_dp3[1]+YY,_dp0[2]); UpdateViewPoint(0); UpdateViewPoint(1); // UpdateViewPoint(2); // UpdateViewPoint(3); }