manualContourModelBullEyeSector.cpp
Go to the documentation of this file.00001 #include "manualContourModelBullEyeSector.h"
00002
00003
00004
00005
00006
00007
00008 manualContourModelBullEyeSector::manualContourModelBullEyeSector()
00009 : manualContourModel()
00010 {
00011 }
00012
00013 manualContourModelBullEyeSector::~manualContourModelBullEyeSector()
00014 {
00015 }
00016
00017
00018
00019 manualContourModelBullEyeSector * manualContourModelBullEyeSector :: Clone()
00020 {
00021 manualContourModelBullEyeSector * clone = new manualContourModelBullEyeSector();
00022 CopyAttributesTo(clone);
00023 return clone;
00024 }
00025
00026
00027
00028 void manualContourModelBullEyeSector::CopyAttributesTo( manualContourModelBullEyeSector * cloneObject)
00029 {
00030
00031 manualContourModel::CopyAttributesTo(cloneObject);
00032 }
00033
00034
00035 int manualContourModelBullEyeSector::GetTypeModel()
00036 {
00037 return 5;
00038 }
00039
00040
00041
00042 void manualContourModelBullEyeSector::SetSector( double radioA,
00043 double radioB,
00044 double ang,
00045 double angDelta)
00046 {
00047 _radioA = radioA;
00048 _radioB = radioB;
00049 _ang = ang*3.14159265/180.0;
00050 _angDelta = angDelta*3.14159265/180.0;
00051 }
00052
00053
00054 void manualContourModelBullEyeSector::GetSector(
00055 double *radioA,
00056 double *radioB,
00057 double *ang,
00058 double *angDelta)
00059 {
00060 *radioA = _radioA;
00061 *radioB = _radioB;
00062 *ang = _ang;
00063 *angDelta = _angDelta;
00064 }
00065
00066
00067 void manualContourModelBullEyeSector::SetCenter(double cx,double cy)
00068 {
00069 _cx = cx;
00070 _cy = cy;
00071 }
00072
00073
00074 void manualContourModelBullEyeSector::SetSize(double ww,double hh)
00075 {
00076 _ww = ww;
00077 _hh = hh;
00078 }
00079
00080
00081 void manualContourModelBullEyeSector::GetSpline_i_Point(int i, double *x, double *y, double *z)
00082 {
00083
00084
00085 int ii,nps;
00086
00087 double ang,angcos, angsin;
00088 double radio;
00089
00090 nps = GetNumberOfPointsSpline() - 3;
00091
00092 if (i==GetNumberOfPointsSpline()-1)
00093 {
00094 i=0;
00095 }
00096
00097 if (i<=nps/2)
00098 {
00099 ii=i;
00100 radio=_radioA;
00101 } else {
00102 ii=nps-i+1;
00103 radio=_radioB;
00104 }
00105 ang = ((double)ii/(nps/2))*_angDelta + _ang;
00106 angcos = cos(ang);
00107 angsin = sin(ang);
00108
00109 *x = _ww*radio*angcos + _cx;
00110 *y = _hh*radio*angsin + _cy;
00111 *z= 900;
00112 }
00113
00114
00115 void manualContourModelBullEyeSector::Save(FILE *ff)
00116 {
00117 manualContourModel::Save(ff);
00118 fprintf(ff,"rA= %f rB= %f ang= %f deltaAng= %f\n", _radioA,_radioB, _ang , _angDelta);
00119 }
00120
00121
00122 void manualContourModelBullEyeSector::Open(FILE *ff)
00123 {
00124 char tmp[255];
00125 fscanf(ff,"%s",tmp);
00126 fscanf(ff,"%s",tmp);
00127
00128 manualContourModel::Open(ff);
00129
00130
00131 fscanf(ff,"%s",tmp);
00132 fscanf(ff,"%s",tmp);
00133 _radioA = atof(tmp);
00134
00135 fscanf(ff,"%s",tmp);
00136 fscanf(ff,"%s",tmp);
00137 _radioB = atof(tmp);
00138
00139 fscanf(ff,"%s",tmp);
00140 fscanf(ff,"%s",tmp);
00141 _ang = atof(tmp);
00142
00143 fscanf(ff,"%s",tmp);
00144 fscanf(ff,"%s",tmp);
00145 _angDelta = atof(tmp);
00146 }
00147
00148