00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #if !defined _VECTORVALUE_H
00015 #define _VECTORVALUE_H
00016
00017
00018 #include "Value.h"
00019
00020 #define KX_X 0
00021 #define KX_Y 1
00022 #define KX_Z 2
00023
00024
00025 class CVectorValue : public CPropValue
00026 {
00027
00028
00029 public:
00030
00031 virtual void SetValue(CValue* newval);
00032 void SetVector(double newvec[]);
00033 void Configure(CValue* menuvalue);
00034 virtual double* GetVector3(bool bGetTransformedVec=false);
00035 virtual float GetNumber();
00036
00037 CValue* Calc(VALUE_OPERATOR op, CValue *val) {
00038 return val->CalcFinal(VALUE_VECTOR_TYPE, op, this);
00039 }
00040
00041 CValue* CVectorValue::CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val);
00042
00043
00044 CVectorValue(double vec[],CCString name,AllocationTYPE alloctype=CValue::HEAPVALUE);
00045 CVectorValue() {};
00046
00047 CVectorValue(double vec[],AllocationTYPE alloctype=CValue::HEAPVALUE);
00048 CVectorValue(float x,float y,float z, AllocationTYPE alloctype = CValue::HEAPVALUE);
00049 virtual ~CVectorValue();
00050
00051 void AddConfigurationData(CValue* menuvalue);
00052
00053
00054
00055 virtual CValue* GetReplica();
00056 virtual const CCString & GetText();
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 protected:
00080 double m_vec[3];
00081 double m_transformedvec[3];
00082 };
00083
00084 #endif // !defined _VECTORVALUE_H
00085