1 #include "manualContourModelBullEye.h"
4 // ----------------------------------------------------------------------------
5 // ----------------------------------------------------------------------------
6 // ----------------------------------------------------------------------------
8 manualContourModelBullEye::manualContourModelBullEye()
11 _numberPointsSlineBySector=101; // impaire
14 manualContourModelBullEye::~manualContourModelBullEye()
19 // ----------------------------------------------------------------------------
20 manualContourModelBullEye * manualContourModelBullEye :: Clone() // virtual
22 manualContourModelBullEye * clone = new manualContourModelBullEye();
23 CopyAttributesTo(clone);
27 // ---------------------------------------------------------------------------
29 void manualContourModelBullEye::CopyAttributesTo( manualContourModelBullEye * cloneObject)
32 manualContourModel::CopyAttributesTo(cloneObject);
35 //----------------------------------------------------------------
36 int manualContourModelBullEye::GetTypeModel() //virtual
41 //----------------------------------------------------------------
42 int manualContourModelBullEye::GetNumberOfPointsSplineSectorBulleEje()
44 return _numberPointsSlineBySector;
47 //----------------------------------------------------------------
48 void manualContourModelBullEye::SetNumberOfPointsSplineSectorBulleEje(int numpoints)
50 this->_numberPointsSlineBySector = numpoints;
53 //----------------------------------------------------------------
54 void manualContourModelBullEye::AddSector( double radioA,
59 manualContourModelBullEyeSector *modelSector = new manualContourModelBullEyeSector();
60 modelSector->SetSector(radioA,radioB,ang,angDelta);
61 modelSector->SetNumberOfPointsSpline( this->GetNumberOfPointsSplineSectorBulleEje() );
62 _lstModelBullEyeSector.push_back(modelSector);
65 //----------------------------------------------------------------
66 manualContourModelBullEyeSector * manualContourModelBullEye::GetModelSector(int id)
68 return _lstModelBullEyeSector[id];
71 //----------------------------------------------------------------
72 void manualContourModelBullEye::GetSector(int id,
78 _lstModelBullEyeSector[id]->GetSector(radioA,radioB,ang,angDelta);
81 void manualContourModelBullEye::UpdateSpline() // virtual
83 manualContourModel::UpdateSpline();
85 if (this->GetSizeLstPoints()>2){
88 manualPoint *mpA = GetManualPoint(0);
89 manualPoint *mpB = GetManualPoint(2);
90 cx = (mpA->GetX() + mpB->GetX()) / 2.0;
91 cy = (mpA->GetY() + mpB->GetY()) / 2.0;
92 ww = fabs( mpA->GetX() - mpB->GetX() )/2.0;
93 hh = fabs( mpA->GetY() - mpB->GetY() )/2.0;
94 int i,size = _lstModelBullEyeSector.size();
97 _lstModelBullEyeSector[i]->SetCenter(cx,cy);
98 _lstModelBullEyeSector[i]->SetSize(ww,hh);
104 //----------------------------------------------------------------
105 void manualContourModelBullEye::ResetSectors()
107 int i,size=_lstModelBullEyeSector.size();
110 delete _lstModelBullEyeSector[i];
112 _lstModelBullEyeSector.clear();
115 //----------------------------------------------------------------
116 int manualContourModelBullEye::GetSizeOfSectorLst()
118 return _lstModelBullEyeSector.size();
121 //----------------------------------------------------------------
122 void manualContourModelBullEye::Save(FILE *ff) // virtual
124 manualContourModel::Save(ff);
125 int i,size = GetSizeOfSectorLst();
126 fprintf(ff,"numberOfSections %d \n",size);
127 for ( i=0 ; i<size ; i++ )
129 _lstModelBullEyeSector[i]->Save(ff);
133 //----------------------------------------------------------------
134 void manualContourModelBullEye::Open(FILE *ff) // virtual
136 manualContourModel::Open(ff);
142 int numberOfSections;
143 // double radioA,radioB,ang,deltaAng;
145 fscanf(ff,"%s",tmp); // NumberOfSections
146 fscanf(ff,"%s",tmp); // ##
147 numberOfSections = atoi(tmp);
148 for (i=0;i<numberOfSections;i++)
151 _lstModelBullEyeSector[i]->Open(ff);
156 // ----------------------------------------------------------------------------
157 std::vector<manualContourModel*> manualContourModelBullEye::ExploseModel( )
160 std::vector<manualContourModel*> lstTmp;
161 int i,iSize=_lstModelBullEyeSector.size();
162 for (i=0;i<iSize;i++)
164 lstTmp.push_back( _lstModelBullEyeSector[i] );