manualViewCircle.cpp

Go to the documentation of this file.
00001 #include "manualViewCircle.h"
00002 
00003 
00004 // ----------------------------------------------------------------------------
00005 // ----------------------------------------------------------------------------
00006 // ----------------------------------------------------------------------------
00007 
00008 // EED08
00009 
00010 manualViewCircle::manualViewCircle()
00011 {
00012 //      _sizePointsContour=5;   // default 100
00013 }
00014 // ----------------------------------------------------------------------------
00015 manualViewCircle::~manualViewCircle()
00016 {
00017 }
00018 
00019 
00020 // ----------------------------------------------------------------------------
00021 manualViewCircle * manualViewCircle :: Clone()
00022 {
00023         manualViewCircle * clone = new manualViewCircle();
00024         CopyAttributesTo(clone);
00025         return clone;
00026 }
00027 
00028 // ---------------------------------------------------------------------------
00029 
00030 void manualViewCircle::CopyAttributesTo( manualViewCircle * cloneObject)
00031 {
00032         // Fathers object
00033         manualViewBaseContour::CopyAttributesTo(cloneObject);
00034 }
00035 
00036 
00037 // ----------------------------------------------------------------------------
00038 /*
00039 void manualViewCircle::RefreshContour(){ // virtual
00040 
00041         manualPoint     *mpA,*mpB;
00042     unsigned int i, np,nps;
00043         double angle,radio;
00044         double difX,difY;
00045         double XX,YY,ZZ;
00046     np  = GetNumberOfPoints( );
00047         nps = _manContModel->GetNumberOfPointsSpline();
00048         double deltaAngle=(3.14159265*2)/(nps-1);
00049         if ( np > 0)
00050         {
00051                 if (np==2)
00052                 {
00053                         mpA             = _manContModel->GetManualPoint(0);
00054                         mpB             = _manContModel->GetManualPoint(1);
00055                         difX    = mpA->GetX() - mpB->GetX();
00056                         difY    = mpA->GetY() - mpB->GetY();
00057                         radio   = sqrt( difX*difX + difY*difY );
00058                         manualContourModelCircle *manContModelCir = (manualContourModelCircle*)_manContModel;
00059                         manContModelCir->SetRadio(radio);
00060 
00061                         for( i = 0; i < nps; i++ ) {
00062                                 manContModelCir->GetSpline_i_Point(i, &XX, &YY, &ZZ);
00063 //                              angle = deltaAngle*i;
00064 //                              XX = cos(angle)*radio+mpA->GetX();
00065 //                              YY = sin(angle)*radio+mpA->GetY();
00066                                 ZZ = mpA->GetZ();
00067                                 _pts->SetPoint(i, XX*_spc[0] , YY*_spc[1] , ZZ*_spc[2] );
00068                         } //  rof
00069                 } else {
00070                                 _pts->SetPoint(0, 0 , 0 , 0);
00071                                 _pts->SetPoint(1, 0 , 0 , 0);
00072                 } // if
00073         }
00074 }
00075 */
00076 
00077 // ----------------------------------------------------------------------------
00078 int manualViewCircle::GetType() // virtual
00079 {
00080         return 3;
00081 }
00082 
00083 // ----------------------------------------------------------------------------
00084 
00085 void manualViewCircle::GetMinMax(double &minX,double &minY, double &maxX, double &maxY)
00086 {
00087         manualPoint     *mpA,*mpB;
00088     unsigned int  np;
00089         double radio;
00090         double difX,difY;
00091     np  = GetNumberOfPoints( );
00092         if (np==2)
00093         {
00094                 mpA             = _manContModel->GetManualPoint(0);
00095                 mpB             = _manContModel->GetManualPoint(1);
00096                 difX    = mpA->GetX() - mpB->GetX();
00097                 difY    = mpA->GetY() - mpB->GetY();
00098                 radio   = sqrt( difX*difX + difY*difY );
00099                 minX=mpA->GetX()-radio;
00100                 minY=mpA->GetY()-radio;
00101                 maxX=mpA->GetX()+radio;
00102                 maxY=mpA->GetY()+radio;
00103         } else {
00104                 minX=0;
00105                 maxX=0;
00106                 minY=0;
00107                 maxY=0;
00108         }
00109 }
00110 
00111 /*
00112 // ----------------------------------------------------------------------------
00113 bool manualViewCircle::ifTouchContour(int x,int y, int z) // virtual
00114 {
00115         bool    result=false;
00116         double  px1=99999,py1=99999,px2=-9999,py2=-99999;
00117 
00118         GetMinMax(px1,py1, px2, py2);
00119 
00120         double xx=x;
00121         double yy=y;
00122         double zz=z;
00123         TransfromCoordViewWorld(xx,yy,zz);
00124 
00125         bool ok1=false;
00126         bool ok2=false;
00127         double ddx=GetRange();
00128         double ddy=GetRange();
00129 
00130         if ((xx>px1-ddx)&&(xx<px2+ddx) &&  (yy>py1-ddy)&&(yy<py2+ddy))
00131         {
00132                 ok1=true;
00133         }
00134 
00135         if ((xx>px1+ddx)&&(xx<px2-ddx) &&  (yy>py1+ddy)&&(yy<py2-ddy))
00136         {
00137                 ok2=true;
00138         }
00139 
00140         if ((ok1==true) && (ok2==false))
00141         {
00142                 result=true;
00143         }
00144 
00145         return result;
00146 }
00147 */
00148 
00149 // ----------------------------------------------------------------------------
00150 
00151 void manualViewCircle::InitMove(int x, int y, int z)  // virtual
00152 {
00153         manualPoint *mp;
00154         double XX=x;
00155         double YY=y;
00156         double ZZ=z;
00157         TransfromCoordViewWorld(XX,YY,ZZ);
00158 
00159         if (_manContModel->GetSizeLstPoints()==2){
00160                 mp = _manContModel->GetManualPoint(0);
00161                 _dp0[0]= mp->GetX() - XX;
00162                 _dp0[1]= mp->GetY() - YY;
00163                 _dp0[2]= mp->GetZ();
00164 
00165                 mp = _manContModel->GetManualPoint(1);
00166                 _dp1[0]= mp->GetX() - XX;
00167                 _dp1[1]= mp->GetY() - YY;
00168                 _dp1[2]= mp->GetZ();
00169 /*
00170                 mp = _manContModel->GetManualPoint(2);
00171                 _dp2[0]= mp->GetX() - XX;
00172                 _dp2[1]= mp->GetY() - YY;
00173                 _dp2[2]= mp->GetZ();
00174 
00175                 mp = _manContModel->GetManualPoint(3);
00176                 _dp3[0]= mp->GetX() - XX;
00177                 _dp3[1]= mp->GetY() - YY;
00178                 _dp3[2]= mp->GetZ();
00179 */
00180         }
00181 }
00182 
00183 
00184 // ----------------------------------------------------------------------------
00185 void manualViewCircle::MoveContour(int x, int y, int z) // virtual
00186 {
00187         manualPoint *mp;
00188         double XX=x;
00189         double YY=y;
00190         double ZZ=z;
00191         TransfromCoordViewWorld(XX,YY,ZZ);
00192 
00193         mp = _manContModel->GetManualPoint(0);
00194         mp->SetPoint(_dp0[0]+XX,_dp0[1]+YY,_dp0[2]);
00195 
00196         mp = _manContModel->GetManualPoint(1);
00197         mp->SetPoint(_dp1[0]+XX,_dp1[1]+YY,_dp0[2]);
00198 
00199 //      mp = _manContModel->GetManualPoint(2);
00200 //      mp->SetPoint(_dp2[0]+XX,_dp2[1]+YY,_dp0[2]);
00201 
00202 //      mp = _manContModel->GetManualPoint(3);
00203 //      mp->SetPoint(_dp3[0]+XX,_dp3[1]+YY,_dp0[2]);
00204 
00205         UpdateViewPoint(0);
00206         UpdateViewPoint(1);
00207 //      UpdateViewPoint(2);
00208 //      UpdateViewPoint(3);
00209 
00210 }

Generated on Fri Jun 12 00:08:33 2009 for creaMaracasVisu by  doxygen 1.5.7.1