00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "controler-types.hh"
00026 #include "parameters-default-values.hh"
00027 #include "parameter-grid.hh"
00028 #include <cassert>
00029 #include <cstring>
00030 using namespace std;
00031
00032 CParameterGrid::CParameterGrid(int ANbRef) :
00033 CParameter(ANbRef)
00034 {
00035 reinit();
00036 }
00037
00038 CParameterGrid::CParameterGrid(const CParameterGrid & AParam) :
00039 CParameter (AParam),
00040 FLWGrid (AParam.FLWGrid),
00041 FLGGrid (AParam.FLGGrid),
00042 FDisplayGridXY (AParam.FDisplayGridXY),
00043 FDisplayGridYZ (AParam.FDisplayGridYZ),
00044 FDisplayGridXZ (AParam.FDisplayGridXZ),
00045 FDisplayPositiveGridX(AParam.FDisplayPositiveGridX),
00046 FDisplayPositiveGridY(AParam.FDisplayPositiveGridY),
00047 FDisplayPositiveGridZ(AParam.FDisplayPositiveGridZ)
00048 {
00049 setCLGrid(AParam.getCLGrid());
00050 }
00051
00052 CParameterGrid::~CParameterGrid()
00053 {}
00054
00055 CParameter * CParameterGrid::copy() const
00056 { return new CParameterGrid(*this); }
00057
00058 void CParameterGrid::save(ostream& AStream)
00059 { AStream<<(*this); }
00060
00061 void CParameterGrid::load(istream& AStream)
00062 { AStream>>(*this); }
00063
00064 void CParameterGrid::reinit()
00065 {
00066 FLWGrid = DEFAULT_GRID_LINE_WIDTH;
00067 FLGGrid = DEFAULT_GRID_SIZE;
00068 FDisplayGridXY = DEFAULT_GRID_DISPLAY_XY;
00069 FDisplayGridYZ = DEFAULT_GRID_DISPLAY_YZ;
00070 FDisplayGridXZ = DEFAULT_GRID_DISPLAY_XZ;
00071 FDisplayPositiveGridX = DEFAULT_GRID_POSITIVE_X;
00072 FDisplayPositiveGridY = DEFAULT_GRID_POSITIVE_Y;
00073 FDisplayPositiveGridZ = DEFAULT_GRID_POSITIVE_Z;
00074 setCLGrid(DEFAULT_GRID_COLOR_0,DEFAULT_GRID_COLOR_1,DEFAULT_GRID_COLOR_2);
00075
00076 putAllNeedToUpdate();
00077 }
00078
00079 ostream& operator<<(ostream& AStream,
00080 const CParameterGrid & AParameter)
00081 {
00082 AStream<<"CParameterGrid:"<<endl;
00083
00084 AStream<<" LineWidth: "<<AParameter.FLWGrid<<endl;
00085
00086 AStream<<" Length: "<<AParameter.FLGGrid<<endl;
00087
00088 AStream<<" DisplayXY: "<<AParameter.FDisplayGridXY<<endl;
00089 AStream<<" DisplayYZ: "<<AParameter.FDisplayGridYZ<<endl;
00090 AStream<<" DisplayXZ: "<<AParameter.FDisplayGridXZ<<endl;
00091
00092 AStream<<" PositiveX: "<<AParameter.FDisplayPositiveGridX<<endl;
00093 AStream<<" PositiveY: "<<AParameter.FDisplayPositiveGridY<<endl;
00094 AStream<<" PositiveZ: "<<AParameter.FDisplayPositiveGridZ<<endl;
00095
00096 AStream<<" Color: "<<AParameter.FCLGrid[0]<<" "
00097 <<AParameter.FCLGrid[1]<<" "<<AParameter.FCLGrid[2]<<endl;
00098
00099 AStream<<endl;
00100
00101 return AStream;
00102 }
00103
00104 istream& operator>>(istream& AStream,
00105 CParameterGrid & AParameter)
00106 {
00107 char tmp[256];
00108
00109 AStream>>tmp; assert ( !strcmp(tmp, "CParameterGrid:") );
00110
00111 AStream>>tmp; assert ( !strcmp(tmp, "LineWidth:") );
00112 AStream>>AParameter.FLWGrid;
00113
00114 AStream>>tmp; assert ( !strcmp(tmp, "Length:") );
00115 AStream>>AParameter.FLGGrid;
00116
00117 AStream>>tmp; assert ( !strcmp(tmp, "DisplayXY:") );
00118 AStream>>AParameter.FDisplayGridXY;
00119 AStream>>tmp; assert ( !strcmp(tmp, "DisplayYZ:") );
00120 AStream>>AParameter.FDisplayGridYZ;
00121 AStream>>tmp; assert ( !strcmp(tmp, "DisplayXZ:") );
00122 AStream>>AParameter.FDisplayGridXZ;
00123
00124 AStream>>tmp; assert ( !strcmp(tmp, "PositiveX:") );
00125 AStream>>AParameter.FDisplayPositiveGridX;
00126 AStream>>tmp; assert ( !strcmp(tmp, "PositiveY:") );
00127 AStream>>AParameter.FDisplayPositiveGridY;
00128 AStream>>tmp; assert ( !strcmp(tmp, "PositiveZ:") );
00129 AStream>>AParameter.FDisplayPositiveGridZ;
00130
00131 AStream>>tmp; assert ( !strcmp(tmp, "Color:") );
00132 AStream>>AParameter.FCLGrid[0]>>AParameter.FCLGrid[1]
00133 >>AParameter.FCLGrid[2];
00134
00135 AParameter.putAllNeedToUpdate();
00136
00137 return AStream;
00138 }
00139
00140 int CParameterGrid::getLWGrid() const
00141 { return FLWGrid; }
00142 void CParameterGrid::setLWGrid(int AValue)
00143 {
00144 if (FLWGrid!=AValue)
00145 {
00146 putAllNeedToUpdate();
00147 FLWGrid= AValue;
00148 }
00149 }
00150
00151 int CParameterGrid::getLGGrid() const
00152 { return FLGGrid; }
00153 void CParameterGrid::setLGGrid(int AValue)
00154 {
00155 if (FLGGrid!=AValue)
00156 {
00157 putAllNeedToUpdate();
00158 FLGGrid= AValue;
00159 }
00160 }
00161
00162 float CParameterGrid::getCLGrid(int AIndice) const
00163 {
00164 assert(0<=AIndice && AIndice<=2);
00165 return FCLGrid[AIndice];
00166 }
00167 void CParameterGrid::setCLGrid(int AIndice, float AValue)
00168 {
00169 assert(0<=AIndice && AIndice<=2);
00170 if (FCLGrid[AIndice]!=AValue)
00171 {
00172 putAllNeedToUpdate();
00173 FCLGrid[AIndice]= AValue;
00174 }
00175 }
00176 const float * CParameterGrid::getCLGrid() const
00177 { return FCLGrid; }
00178 void CParameterGrid::setCLGrid(float AValue0, float AValue1, float AValue2)
00179 {
00180 if ( FCLGrid[0]!=AValue0 ||
00181 FCLGrid[1]!=AValue1 ||
00182 FCLGrid[2]!=AValue2 )
00183 {
00184 putAllNeedToUpdate();
00185 FCLGrid[0]= AValue0;
00186 FCLGrid[1]= AValue1;
00187 FCLGrid[2]= AValue2;
00188 }
00189 }
00190 void CParameterGrid::setCLGrid(const float ATab[3])
00191 { setCLGrid(ATab[0],ATab[1],ATab[2]); }
00192
00193 bool CParameterGrid::getDisplayGridXY() const
00194 { return FDisplayGridXY; }
00195
00196 void CParameterGrid::setDisplayGridXY(bool AValue)
00197 {
00198 if (FDisplayGridXY!=AValue)
00199 {
00200 putAllNeedToUpdate();
00201 FDisplayGridXY= AValue;
00202 }
00203 }
00204
00205 void CParameterGrid::invDisplayGridXY()
00206 {
00207 putAllNeedToUpdate();
00208 FDisplayGridXY= !FDisplayGridXY;
00209 }
00210
00211
00212 bool CParameterGrid::getDisplayGridYZ() const
00213 { return FDisplayGridYZ; }
00214
00215 void CParameterGrid::setDisplayGridYZ(bool AValue)
00216 {
00217 if (FDisplayGridYZ!=AValue)
00218 {
00219 putAllNeedToUpdate();
00220 FDisplayGridYZ= AValue;
00221 }
00222 }
00223
00224 void CParameterGrid::invDisplayGridYZ()
00225 {
00226 putAllNeedToUpdate();
00227 FDisplayGridYZ= !FDisplayGridYZ;
00228 }
00229
00230
00231 bool CParameterGrid::getDisplayGridXZ() const
00232 { return FDisplayGridXZ; }
00233
00234 void CParameterGrid::setDisplayGridXZ(bool AValue)
00235 {
00236 if (FDisplayGridXZ!=AValue)
00237 {
00238 putAllNeedToUpdate();
00239 FDisplayGridXZ= AValue;
00240 }
00241 }
00242
00243 void CParameterGrid::invDisplayGridXZ()
00244 {
00245 putAllNeedToUpdate();
00246 FDisplayGridXZ= !FDisplayGridXZ;
00247 }
00248
00249
00250 bool CParameterGrid::getDisplayPositiveGridX() const
00251 { return FDisplayPositiveGridX; }
00252
00253 void CParameterGrid::setDisplayPositiveGridX(bool AValue)
00254 {
00255 if (FDisplayPositiveGridX!=AValue)
00256 {
00257 putAllNeedToUpdate();
00258 FDisplayPositiveGridX= AValue;
00259 }
00260 }
00261
00262 void CParameterGrid::invDisplayPositiveGridX()
00263 {
00264 putAllNeedToUpdate();
00265 FDisplayPositiveGridX= !FDisplayPositiveGridX;
00266 }
00267
00268
00269 bool CParameterGrid::getDisplayPositiveGridY() const
00270 { return FDisplayPositiveGridY; }
00271
00272 void CParameterGrid::setDisplayPositiveGridY(bool AValue)
00273 {
00274 if (FDisplayPositiveGridY!=AValue)
00275 {
00276 putAllNeedToUpdate();
00277 FDisplayPositiveGridY= AValue;
00278 }
00279 }
00280
00281 void CParameterGrid::invDisplayPositiveGridY()
00282 {
00283 putAllNeedToUpdate();
00284 FDisplayPositiveGridY= !FDisplayPositiveGridY;
00285 }
00286
00287
00288 bool CParameterGrid::getDisplayPositiveGridZ() const
00289 { return FDisplayPositiveGridZ; }
00290
00291 void CParameterGrid::setDisplayPositiveGridZ(bool AValue)
00292 {
00293 if (FDisplayPositiveGridZ!=AValue)
00294 {
00295 putAllNeedToUpdate();
00296 FDisplayPositiveGridZ= AValue;
00297 }
00298 }
00299
00300 void CParameterGrid::invDisplayPositiveGridZ()
00301 {
00302 putAllNeedToUpdate();
00303 FDisplayPositiveGridZ= !FDisplayPositiveGridZ;
00304 }
00305
00306 int CParameterGrid::getType() const
00307 { return PARAMETER_GRID; }
00308