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-aimed-point.hh"
00028 #include <cassert>
00029 #include <cstring>
00030 using namespace std;
00031
00032 CParameterAimedPoint::CParameterAimedPoint(int ANbRef) :
00033 CParameter(ANbRef)
00034 {
00035 reinit();
00036 }
00037
00038 CParameterAimedPoint::CParameterAimedPoint(const CParameterAimedPoint & AParam):
00039 CParameter (AParam),
00040 FLWAimedPoint(AParam.FLWAimedPoint),
00041 FLGAimedPoint(AParam.FLGAimedPoint)
00042 {
00043 setCLAimedPoint(AParam.getCLAimedPoint());
00044 }
00045
00046 CParameterAimedPoint::~CParameterAimedPoint()
00047 {}
00048
00049 CParameter * CParameterAimedPoint::copy() const
00050 { return new CParameterAimedPoint(*this); }
00051
00052 void CParameterAimedPoint::save(ostream& AStream)
00053 { AStream<<(*this); }
00054
00055 void CParameterAimedPoint::load(istream& AStream)
00056 { AStream>>(*this); }
00057
00058 void CParameterAimedPoint::reinit()
00059 {
00060 FLWAimedPoint = DEFAULT_AIMED_POINT_LINE_WIDTH;
00061 FLGAimedPoint = DEFAULT_AIMED_POINT_LENGTH;
00062 setCLAimedPoint(DEFAULT_AIMED_POINT_COLOR_0, DEFAULT_AIMED_POINT_COLOR_1,
00063 DEFAULT_AIMED_POINT_COLOR_2);
00064
00065 putAllNeedToUpdate();
00066 }
00067
00068 ostream& operator<<(ostream& AStream,
00069 const CParameterAimedPoint & AParameter)
00070 {
00071 AStream<<"CParameterAimedPoint:"<<endl;
00072
00073 AStream<<" LineWidth: "<<AParameter.FLWAimedPoint<<endl;
00074
00075 AStream<<" Length: "<<AParameter.FLGAimedPoint<<endl;
00076
00077 AStream<<" Color: "<<AParameter.FCLAimedPoint[0]<<" "
00078 <<AParameter.FCLAimedPoint[1]<<" "<<AParameter.FCLAimedPoint[2]<<endl;
00079
00080 AStream<<endl;
00081
00082 return AStream;
00083 }
00084
00085 istream& operator>>(istream& AStream,
00086 CParameterAimedPoint & AParameter)
00087 {
00088 char tmp[256];
00089
00090 AStream>>tmp; assert ( !strcmp(tmp, "CParameterAimedPoint:") );
00091
00092 AStream>>tmp; assert ( !strcmp(tmp, "LineWidth:") );
00093 AStream>>AParameter.FLWAimedPoint;
00094
00095 AStream>>tmp; assert ( !strcmp(tmp, "Length:") );
00096 AStream>>AParameter.FLGAimedPoint;
00097
00098 AStream>>tmp; assert ( !strcmp(tmp, "Color:") );
00099 AStream>>AParameter.FCLAimedPoint[0]>>AParameter.FCLAimedPoint[1]
00100 >>AParameter.FCLAimedPoint[2];
00101
00102 AParameter.putAllNeedToUpdate();
00103
00104 return AStream;
00105 }
00106
00107 int CParameterAimedPoint::getLWAimedPoint() const
00108 { return FLWAimedPoint; }
00109 void CParameterAimedPoint::setLWAimedPoint(int AValue)
00110 {
00111 if ( FLWAimedPoint!=AValue )
00112 {
00113 putAllNeedToUpdate();
00114 FLWAimedPoint= AValue;
00115 }
00116 }
00117
00118 float CParameterAimedPoint::getLGAimedPoint() const
00119 { return FLGAimedPoint; }
00120 void CParameterAimedPoint::setLGAimedPoint(float AValue)
00121 {
00122 if ( FLGAimedPoint!=AValue )
00123 {
00124 putAllNeedToUpdate();
00125 FLGAimedPoint= AValue;
00126 }
00127 }
00128
00129 float CParameterAimedPoint::getCLAimedPoint(int AIndice) const
00130 {
00131 assert(0<=AIndice && AIndice<=2);
00132 return FCLAimedPoint[AIndice];
00133 }
00134 void CParameterAimedPoint::setCLAimedPoint(int AIndice, float AValue)
00135 {
00136 assert(0<=AIndice && AIndice<=2);
00137 if ( FCLAimedPoint[AIndice]!=AValue )
00138 {
00139 putAllNeedToUpdate();
00140 FCLAimedPoint[AIndice]= AValue;
00141 }
00142 }
00143 const float * CParameterAimedPoint::getCLAimedPoint() const
00144 { return FCLAimedPoint; }
00145 void CParameterAimedPoint::setCLAimedPoint(float AValue0, float AValue1, float AValue2)
00146 {
00147 if ( FCLAimedPoint[0]!=AValue0 ||
00148 FCLAimedPoint[1]!=AValue1 ||
00149 FCLAimedPoint[2]!=AValue2 )
00150 {
00151 putAllNeedToUpdate();
00152 FCLAimedPoint[0]= AValue0;
00153 FCLAimedPoint[1]= AValue1;
00154 FCLAimedPoint[2]= AValue2;
00155 }
00156 }
00157 void CParameterAimedPoint::setCLAimedPoint(const float ATab[3])
00158 { setCLAimedPoint(ATab[0],ATab[1],ATab[2]); }
00159
00160 int CParameterAimedPoint::getType() const
00161 { return PARAMETER_AIMED_POINT; }
00162