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-gmap-types.hh"
00026 #include "parameters-gmap-default-values.hh"
00027 #include "parameter-preview.hh"
00028 #include <cassert>
00029 #include <cstring>
00030 using namespace std;
00031 using namespace GMap3d;
00032
00033 CParameterPreview::CParameterPreview(int ANbRef) :
00034 CParameter(ANbRef)
00035 {
00036 reinit();
00037 }
00038
00039 CParameterPreview::
00040 CParameterPreview(const CParameterPreview & AParam) :
00041 CParameter (AParam),
00042 FLWPreview (AParam.FLWPreview),
00043 FLWPreviewPoint(AParam.FLWPreviewPoint)
00044 {
00045 setCLPreview (AParam.getCLPreview());
00046 setCLPreviewBad(AParam.getCLPreviewBad());
00047 }
00048
00049 CParameterPreview::~CParameterPreview()
00050 {}
00051
00052 CParameter * CParameterPreview::copy() const
00053 { return new CParameterPreview(*this); }
00054
00055 void CParameterPreview::save(ostream& AStream)
00056 { AStream<<(*this); }
00057
00058 void CParameterPreview::load(istream& AStream)
00059 { AStream>>(*this); }
00060
00061 void CParameterPreview::reinit()
00062 {
00063 FLWPreview = DEFAULT_PREVIEW_LINE_WIDTH;
00064 FLWPreviewPoint = DEFAULT_PREVIEW_LINE_WIDTH_POINT;
00065 setCLPreview (DEFAULT_PREVIEW_COLOR_0, DEFAULT_PREVIEW_COLOR_1,
00066 DEFAULT_PREVIEW_COLOR_2);
00067 setCLPreviewBad(DEFAULT_PREVIEW_COLOR_BAD_0, DEFAULT_PREVIEW_COLOR_BAD_1,
00068 DEFAULT_PREVIEW_COLOR_BAD_2);
00069
00070 putAllNeedToUpdate();
00071 }
00072
00073 namespace GMap3d
00074 {
00075
00076 ostream& operator<<(ostream& AStream, const CParameterPreview & AParameter)
00077 {
00078 AStream<<"CParameterPreview:"<<endl;
00079
00080 AStream<<" LineWidth: "<<AParameter.FLWPreview<<endl;
00081
00082 AStream<<" PointLineWidth: "<<AParameter.FLWPreviewPoint<<endl;
00083
00084 AStream<<" Color: "<<AParameter.FCLPreview[0]<<" "
00085 <<AParameter.FCLPreview[1]<<" "<<AParameter.FCLPreview[2]<<endl;
00086
00087 AStream<<" ColorBad: "<<AParameter.FCLPreviewBad[0]<<" "
00088 <<AParameter.FCLPreviewBad[1]<<" "<<AParameter.FCLPreviewBad[2]<<endl;
00089
00090 AStream<<endl;
00091
00092 return AStream;
00093 }
00094
00095 istream& operator>>(istream& AStream, CParameterPreview & AParameter)
00096 {
00097 char tmp[256];
00098
00099 AStream>>tmp; assert ( !strcmp(tmp, "CParameterPreview:") );
00100
00101 AStream>>tmp; assert ( !strcmp(tmp, "LineWidth:") );
00102 AStream>>AParameter.FLWPreview;
00103
00104 AStream>>tmp; assert ( !strcmp(tmp, "PointLineWidth:") );
00105 AStream>>AParameter.FLWPreviewPoint;
00106
00107 AStream>>tmp; assert ( !strcmp(tmp, "Color:") );
00108 AStream>>AParameter.FCLPreview[0]>>AParameter.FCLPreview[1]
00109 >>AParameter.FCLPreview[2];
00110
00111 AStream>>tmp; assert ( !strcmp(tmp, "ColorBad:") );
00112 AStream>>AParameter.FCLPreviewBad[0]>>AParameter.FCLPreviewBad[1]
00113 >>AParameter.FCLPreviewBad[2];
00114
00115 AParameter.putAllNeedToUpdate();
00116
00117 return AStream;
00118 }
00119
00120 }
00121
00122 int CParameterPreview::getLWPreview() const
00123 { return FLWPreview; }
00124 void CParameterPreview::setLWPreview(int AValue)
00125 {
00126 if ( FLWPreview!=AValue )
00127 {
00128 putAllNeedToUpdate();
00129 FLWPreview= AValue;
00130 }
00131 }
00132
00133 int CParameterPreview::getLWPreviewPoint() const
00134 { return FLWPreviewPoint; }
00135 void CParameterPreview::setLWPreviewPoint(int AValue)
00136 {
00137 if ( FLWPreviewPoint!=AValue )
00138 {
00139 putAllNeedToUpdate();
00140 FLWPreviewPoint = AValue;
00141 }
00142 }
00143
00144 float CParameterPreview::getCLPreview(int AIndice) const
00145 {
00146 assert(0<=AIndice && AIndice<=2);
00147 return FCLPreview[AIndice];
00148 }
00149 void CParameterPreview::setCLPreview(int AIndice, float AValue)
00150 {
00151 assert(0<=AIndice && AIndice<=2);
00152 if ( FCLPreview[AIndice]!=AValue )
00153 {
00154 putAllNeedToUpdate();
00155 FCLPreview[AIndice]= AValue;
00156 }
00157 }
00158 const float * CParameterPreview::getCLPreview() const
00159 { return FCLPreview; }
00160 void CParameterPreview::setCLPreview(float AValue0, float AValue1, float AValue2)
00161 {
00162 if ( FCLPreview[0]!=AValue0 ||
00163 FCLPreview[1]!=AValue1 ||
00164 FCLPreview[2]!=AValue2 )
00165 {
00166 putAllNeedToUpdate();
00167 FCLPreview[0]= AValue0;
00168 FCLPreview[1]= AValue1;
00169 FCLPreview[2]= AValue2;
00170 }
00171 }
00172 void CParameterPreview::setCLPreview(const float ATab[3])
00173 { setCLPreview(ATab[0],ATab[1],ATab[2]); }
00174
00175 float CParameterPreview::getCLPreviewBad(int AIndice) const
00176 {
00177 assert(0<=AIndice && AIndice<=2);
00178 return FCLPreviewBad[AIndice];
00179 }
00180 void CParameterPreview::setCLPreviewBad(int AIndice, float AValue)
00181 {
00182 assert(0<=AIndice && AIndice<=2);
00183 if ( FCLPreviewBad[AIndice]!=AValue )
00184 {
00185 putAllNeedToUpdate();
00186 FCLPreviewBad[AIndice]= AValue;
00187 }
00188 }
00189 const float * CParameterPreview::getCLPreviewBad() const
00190 { return FCLPreviewBad; }
00191 void CParameterPreview::setCLPreviewBad(float AValue0, float AValue1, float AValue2)
00192 {
00193 if ( FCLPreviewBad[0]!=AValue0 ||
00194 FCLPreviewBad[1]!=AValue1 ||
00195 FCLPreviewBad[2]!=AValue2 )
00196 {
00197 putAllNeedToUpdate();
00198 FCLPreviewBad[0]= AValue0;
00199 FCLPreviewBad[1]= AValue1;
00200 FCLPreviewBad[2]= AValue2;
00201 }
00202 }
00203 void CParameterPreview::setCLPreviewBad(const float ATab[3])
00204 { setCLPreviewBad(ATab[0],ATab[1],ATab[2]); }
00205
00206 int CParameterPreview::getType() const
00207 { return PARAMETER_PREVIEW; }
00208