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;
00012 }
00013
00014 manualContourModelBullEye::~manualContourModelBullEye()
00015 {
00016 }
00017
00018
00019
00020 manualContourModelBullEye * manualContourModelBullEye :: Clone()
00021 {
00022 manualContourModelBullEye * clone = new manualContourModelBullEye();
00023 CopyAttributesTo(clone);
00024 return clone;
00025 }
00026
00027
00028
00029 void manualContourModelBullEye::CopyAttributesTo( manualContourModelBullEye * cloneObject)
00030 {
00031
00032 manualContourModel::CopyAttributesTo(cloneObject);
00033 }
00034
00035
00036 int manualContourModelBullEye::GetTypeModel()
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()
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 }
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)
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)
00135 {
00136 manualContourModel::Open(ff);
00137
00138 ResetSectors();
00139
00140 char tmp[255];
00141 int i;
00142 int numberOfSections;
00143
00144
00145 fscanf(ff,"%s",tmp);
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
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