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-drawing.hh"
00028 #include <cassert>
00029 #include <cstring>
00030 using namespace std;
00031
00032 CParameterDrawing::CParameterDrawing(int ANbRef) :
00033 CParameter(ANbRef)
00034 {
00035 reinit();
00036 }
00037
00038 CParameterDrawing::CParameterDrawing(const CParameterDrawing & AParam) :
00039 CParameter (AParam),
00040 FDisplayLight(AParam.FDisplayLight)
00041 {
00042 setCLLight (AParam.getCLLight());
00043 setCLBackground(AParam.getCLBackground());
00044 }
00045
00046 CParameterDrawing::~CParameterDrawing()
00047 {}
00048
00049 CParameter * CParameterDrawing::copy() const
00050 { return new CParameterDrawing(*this); }
00051
00052 void CParameterDrawing::save(ostream& AStream)
00053 { AStream<<(*this); }
00054
00055 void CParameterDrawing::load(istream& AStream)
00056 { AStream>>(*this); }
00057
00058 void CParameterDrawing::reinit()
00059 {
00060 setCLLight( DEFAULT_DRAWING_LIGHT_COLOR_0,
00061 DEFAULT_DRAWING_LIGHT_COLOR_1,
00062 DEFAULT_DRAWING_LIGHT_COLOR_2 );
00063
00064 setCLBackground( DEFAULT_DRAWING_BACKGROUND_COLOR_0,
00065 DEFAULT_DRAWING_BACKGROUND_COLOR_1,
00066 DEFAULT_DRAWING_BACKGROUND_COLOR_2 );
00067
00068 FDisplayLight = DEFAULT_DRAWING_DISPLAY_LIGHT;
00069
00070 putAllNeedToUpdate();
00071 }
00072
00073 ostream& operator<<(ostream& AStream, const CParameterDrawing & AParameter)
00074 {
00075 AStream<<"CParameterDrawing:"<<endl;
00076
00077 AStream<<" LightColor: "<<AParameter.FCLLight[0]<<" "
00078 <<AParameter.FCLLight[1]<<" "<<AParameter.FCLLight[2]<<endl;
00079
00080 AStream<<" BackgroundColor: "<<AParameter.FCLBackground[0]<<" "
00081 <<AParameter.FCLBackground[1]<<" "<<AParameter.FCLBackground[2]<<endl;
00082
00083 AStream<<" DisplayLight: "<<AParameter.FDisplayLight<<endl;
00084 AStream<<endl;
00085
00086 return AStream;
00087 }
00088
00089 istream& operator>>(istream& AStream, CParameterDrawing & AParameter)
00090 {
00091 char tmp[256];
00092
00093 AStream>>tmp; assert ( !strcmp(tmp, "CParameterDrawing:") );
00094
00095 AStream>>tmp; assert ( !strcmp(tmp, "LightColor:") );
00096 AStream>>AParameter.FCLLight[0]>>AParameter.FCLLight[1]
00097 >>AParameter.FCLLight[2];
00098
00099 AStream>>tmp; assert ( !strcmp(tmp, "BackgroundColor:") );
00100 AStream>>AParameter.FCLBackground[0]>>AParameter.FCLBackground[1]
00101 >>AParameter.FCLBackground[2];
00102
00103 AStream>>tmp; assert ( !strcmp(tmp, "DisplayLight:") );
00104 AStream>>AParameter.FDisplayLight;
00105
00106 AParameter.putAllNeedToUpdate();
00107
00108 return AStream;
00109 }
00110
00111 float CParameterDrawing::getCLLight(int AIndice) const
00112 {
00113 assert(0<=AIndice && AIndice<=2);
00114 return FCLLight[AIndice];
00115 }
00116 void CParameterDrawing::setCLLight(int AIndice, float AValue)
00117 {
00118 assert(0<=AIndice && AIndice<=2);
00119 FCLLight[AIndice]= AValue;
00120 }
00121 const float * CParameterDrawing::getCLLight() const
00122 { return FCLLight; }
00123 void CParameterDrawing::setCLLight(float AValue0, float AValue1, float AValue2)
00124 {
00125 FCLLight[0]= AValue0;
00126 FCLLight[1]= AValue1;
00127 FCLLight[2]= AValue2;
00128 }
00129 void CParameterDrawing::setCLLight(const float ATab[3])
00130 { setCLLight(ATab[0],ATab[1],ATab[2]); }
00131
00132
00133 float CParameterDrawing::getCLBackground(int AIndice) const
00134 {
00135 assert(0<=AIndice && AIndice<=2);
00136 return FCLBackground[AIndice];
00137 }
00138 void CParameterDrawing::setCLBackground(int AIndice, float AValue)
00139 {
00140 assert(0<=AIndice && AIndice<=2);
00141 FCLBackground[AIndice]= AValue;
00142 }
00143 const float * CParameterDrawing::getCLBackground() const
00144 { return FCLBackground; }
00145 void CParameterDrawing::setCLBackground(float AValue0, float AValue1, float AValue2)
00146 {
00147 FCLBackground[0]= AValue0;
00148 FCLBackground[1]= AValue1;
00149 FCLBackground[2]= AValue2;
00150 }
00151 void CParameterDrawing::setCLBackground(const float ATab[3])
00152 { setCLBackground(ATab[0],ATab[1],ATab[2]); }
00153
00154
00155 bool CParameterDrawing::getDisplayLight() const
00156 { return FDisplayLight; }
00157
00158 void CParameterDrawing::setDisplayLight(bool AValue)
00159 {
00160 FDisplayLight= AValue;
00161 }
00162
00163 void CParameterDrawing::invDisplayLight()
00164 {
00165 FDisplayLight= !FDisplayLight;
00166 }
00167
00168 int CParameterDrawing::getType() const
00169 { return PARAMETER_DRAWING; }
00170