manualContourModelBullEye.cpp

Go to the documentation of this file.
00001 #include "manualContourModelBullEye.h"
00002 
00003 
00004 // ----------------------------------------------------------------------------
00005 // ----------------------------------------------------------------------------
00006 // ----------------------------------------------------------------------------
00007 
00008 manualContourModelBullEye::manualContourModelBullEye()
00009 : manualContourModel()
00010 {
00011         _numberPointsSlineBySector=101;   // impaire
00012 }
00013 
00014 manualContourModelBullEye::~manualContourModelBullEye()
00015 {
00016 }
00017 
00018 
00019 // ----------------------------------------------------------------------------
00020 manualContourModelBullEye * manualContourModelBullEye :: Clone()  // virtual
00021 {
00022         manualContourModelBullEye * clone = new manualContourModelBullEye();
00023         CopyAttributesTo(clone);
00024         return clone;
00025 }
00026 
00027 // ---------------------------------------------------------------------------
00028 
00029 void manualContourModelBullEye::CopyAttributesTo( manualContourModelBullEye * cloneObject)
00030 {
00031         // Fathers object
00032         manualContourModel::CopyAttributesTo(cloneObject);
00033 }
00034 
00035 //----------------------------------------------------------------
00036 int manualContourModelBullEye::GetTypeModel() //virtual
00037 {
00038         return 4;
00039 }
00040 
00041 //----------------------------------------------------------------
00042 int     manualContourModelBullEye::GetNumberOfPointsSplineSectorBulleEje()
00043 {
00044         return _numberPointsSlineBySector;
00045 }
00046 
00047 //----------------------------------------------------------------
00048 void manualContourModelBullEye::SetNumberOfPointsSplineSectorBulleEje(int numpoints)
00049 {
00050         this->_numberPointsSlineBySector = numpoints;
00051 }
00052 
00053 //----------------------------------------------------------------
00054 void manualContourModelBullEye::AddSector(      double radioA,
00055                                                 double radioB,
00056                                                 double ang,
00057                                                 double angDelta)
00058 {
00059         manualContourModelBullEyeSector *modelSector = new manualContourModelBullEyeSector();
00060         modelSector->SetSector(radioA,radioB,ang,angDelta);
00061         modelSector->SetNumberOfPointsSpline( this->GetNumberOfPointsSplineSectorBulleEje() );
00062         _lstModelBullEyeSector.push_back(modelSector);
00063 }
00064 
00065 //----------------------------------------------------------------
00066 manualContourModelBullEyeSector * manualContourModelBullEye::GetModelSector(int id)
00067 {
00068         return _lstModelBullEyeSector[id];
00069 }
00070 
00071 //----------------------------------------------------------------
00072 void manualContourModelBullEye::GetSector(int id,
00073                                                 double *radioA,
00074                                                 double *radioB,
00075                                                 double *ang,
00076                                                 double *angDelta)
00077 {
00078         _lstModelBullEyeSector[id]->GetSector(radioA,radioB,ang,angDelta);
00079 }
00080 
00081 void manualContourModelBullEye::UpdateSpline() // virtual
00082 {
00083         manualContourModel::UpdateSpline();
00084 
00085         if (this->GetSizeLstPoints()>2){
00086                 double cx,cy;
00087                 double ww,hh;
00088                 manualPoint *mpA = GetManualPoint(0);
00089                 manualPoint *mpB = GetManualPoint(2);
00090                 cx = (mpA->GetX() + mpB->GetX()) / 2.0;
00091                 cy = (mpA->GetY() + mpB->GetY()) / 2.0;
00092                 ww = fabs( mpA->GetX() - mpB->GetX() )/2.0;
00093                 hh = fabs( mpA->GetY() - mpB->GetY() )/2.0;
00094                 int i,size = _lstModelBullEyeSector.size();
00095                 for (i=0;i<size;i++)
00096                 {
00097                         _lstModelBullEyeSector[i]->SetCenter(cx,cy);
00098                         _lstModelBullEyeSector[i]->SetSize(ww,hh);
00099                 } // for
00100         }
00101 }
00102 
00103 
00104 //----------------------------------------------------------------
00105 void manualContourModelBullEye::ResetSectors()
00106 {
00107         int i,size=_lstModelBullEyeSector.size();
00108         for (i=0;i<size;i++)
00109         {
00110                 delete _lstModelBullEyeSector[i];
00111         }
00112         _lstModelBullEyeSector.clear();
00113 }
00114 
00115 //----------------------------------------------------------------
00116 int manualContourModelBullEye::GetSizeOfSectorLst()
00117 {
00118         return _lstModelBullEyeSector.size();
00119 }
00120 
00121 //----------------------------------------------------------------
00122 void manualContourModelBullEye::Save(FILE *ff) // virtual
00123 {
00124         manualContourModel::Save(ff);
00125         int i,size = GetSizeOfSectorLst();
00126         fprintf(ff,"numberOfSections %d \n",size);
00127         for ( i=0 ; i<size ; i++ )
00128         {
00129                 _lstModelBullEyeSector[i]->Save(ff);
00130         }
00131 }
00132 
00133 //----------------------------------------------------------------
00134 void manualContourModelBullEye::Open(FILE *ff) // virtual
00135 {
00136         manualContourModel::Open(ff);
00137 
00138         ResetSectors();
00139 
00140         char tmp[255];
00141         int i;
00142         int numberOfSections;
00143 //      double radioA,radioB,ang,deltaAng;
00144 
00145         fscanf(ff,"%s",tmp); // NumberOfSections
00146         fscanf(ff,"%s",tmp); // ##
00147         numberOfSections = atoi(tmp);
00148         for (i=0;i<numberOfSections;i++)
00149         {
00150                 AddSector(0,1,90,0);
00151                 _lstModelBullEyeSector[i]->Open(ff);
00152         }
00153 
00154 }
00155 
00156 // ----------------------------------------------------------------------------
00157 std::vector<manualBaseModel*> manualContourModelBullEye::ExploseModel(  )
00158 {
00159 //EED004
00160         std::vector<manualBaseModel*> lstTmp;
00161         int i,iSize=_lstModelBullEyeSector.size();
00162         for (i=0;i<iSize;i++)
00163         {
00164                 lstTmp.push_back( _lstModelBullEyeSector[i] );
00165         }
00166         return lstTmp;
00167 }
00168 

Generated on 18 Mar 2010 for creaMaracasVisu_lib by  doxygen 1.6.1