diff options
Diffstat (limited to 'source/gameengine/Expressions/intern/VectorValue.cpp')
-rw-r--r-- | source/gameengine/Expressions/intern/VectorValue.cpp | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/source/gameengine/Expressions/intern/VectorValue.cpp b/source/gameengine/Expressions/intern/VectorValue.cpp deleted file mode 100644 index dcb1f11ad1a..00000000000 --- a/source/gameengine/Expressions/intern/VectorValue.cpp +++ /dev/null @@ -1,225 +0,0 @@ -/** \file gameengine/Expressions/VectorValue.cpp - * \ingroup expressions - */ -// VectorValue.cpp: implementation of the CVectorValue class. -/* - * Copyright (c) 1996-2000 Erwin Coumans <coockie@acm.org> - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Erwin Coumans makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - */ - -#ifdef _MSC_VER -# pragma warning (disable:4786) -#endif - -#include "EXP_Value.h" -#include "EXP_VectorValue.h" -#include "EXP_ErrorValue.h" -//#include "MatrixValue.h" -#include "EXP_VoidValue.h" -#include "EXP_StringValue.h" -//#include "FactoryManager.h" - - - -////////////////////////////////////////////////////////////////////// -// Construction/Destruction -////////////////////////////////////////////////////////////////////// - -CVectorValue::CVectorValue(float x,float y,float z, AllocationTYPE alloctype) -{ - SetCustomFlag1(false);//FancyOutput=false; - - if (alloctype == STACKVALUE) - { - CValue::DisableRefCount(); - }; - - m_vec[KX_X] = m_transformedvec[KX_X] = x; - m_vec[KX_Y] = m_transformedvec[KX_Y] = y; - m_vec[KX_Z] = m_transformedvec[KX_Z] = z; - -} -CVectorValue::CVectorValue(double vec[3], const char *name,AllocationTYPE alloctype) -{ - - SetCustomFlag1(false);//FancyOutput=false; - - m_vec[KX_X] = m_transformedvec[KX_X] = vec[KX_X]; - m_vec[KX_Y] = m_transformedvec[KX_Y] = vec[KX_Y]; - m_vec[KX_Z] = m_transformedvec[KX_Z] = vec[KX_Z]; - - if (alloctype == STACKVALUE) - { - CValue::DisableRefCount(); - - } - - SetName(name); -} - -CVectorValue::CVectorValue(double vec[3], AllocationTYPE alloctype) -{ - - SetCustomFlag1(false);//FancyOutput=false; - - m_vec[KX_X] = m_transformedvec[KX_X] = vec[KX_X]; - m_vec[KX_Y] = m_transformedvec[KX_Y] = vec[KX_Y]; - m_vec[KX_Z] = m_transformedvec[KX_Z] = vec[KX_Z]; - - if (alloctype == STACKVALUE) - { - CValue::DisableRefCount(); - - } - - -} -CVectorValue::~CVectorValue() -{ - -} - -/** - * pre: the type of val is dtype - * ret: a new object containing the result of applying operator op to val and - * this object - */ -CValue* CVectorValue::CalcFinal(VALUE_DATA_TYPE dtype, VALUE_OPERATOR op, CValue *val) -{ - CValue *ret = NULL; - - switch (op) { - case VALUE_ADD_OPERATOR: - { - switch (dtype) - { - case VALUE_EMPTY_TYPE: - case VALUE_VECTOR_TYPE: - { - ret = new CVectorValue( - val->GetVector3()[KX_X] + GetVector3()[KX_X], - val->GetVector3()[KX_Y] + GetVector3()[KX_Y], - val->GetVector3()[KX_Z] + GetVector3()[KX_Z], - CValue::HEAPVALUE); - ret->SetName(GetName()); - break; - } - - default: - ret = new CErrorValue(val->GetText() + op2str(op) + GetText()); - } - break; - } - case VALUE_MUL_OPERATOR: - { - switch (dtype) - { - - case VALUE_EMPTY_TYPE: - case VALUE_VECTOR_TYPE: - { - //MT_Vector3 supports 'scaling' by another vector, instead of using general transform, Gino? - //ret = new CVectorValue(val->GetVector3().Scaled(GetVector3()),GetName()); - break; - } - case VALUE_FLOAT_TYPE: - { - ret = new CVectorValue( - val->GetVector3()[KX_X] * GetVector3()[KX_X], - val->GetVector3()[KX_Y] * GetVector3()[KX_Y], - val->GetVector3()[KX_Z] * GetVector3()[KX_Z], - CValue::HEAPVALUE); - ret->SetName(GetName()); - break; - } - - default: - ret = new CErrorValue(val->GetText() + op2str(op) + GetText()); - } - break; - - } - - default: - ret = new CErrorValue(val->GetText() + op2str(op) + GetText()); - } - - - return ret; -} - -double CVectorValue::GetNumber() -{ - return m_vec[KX_X]; -} - - - -int CVectorValue::GetValueType() -{ - return VALUE_VECTOR_TYPE; -} - - - -double* CVectorValue::GetVector3(bool bGetTransformedVec) -{ - if (bGetTransformedVec) - return m_transformedvec; - // else - return m_vec; -} - - - - - -void CVectorValue::SetVector(double newvec[]) -{ - m_vec[KX_X] = m_transformedvec[KX_X] = newvec[KX_X]; - m_vec[KX_Y] = m_transformedvec[KX_Y] = newvec[KX_Y]; - m_vec[KX_Z] = m_transformedvec[KX_Z] = newvec[KX_Z]; - - SetModified(true); -} - - -void CVectorValue::SetValue(CValue *newval) -{ - - double* newvec = ((CVectorValue*)newval)->GetVector3(); - m_vec[KX_X] = m_transformedvec[KX_X] = newvec[KX_X]; - m_vec[KX_Y] = m_transformedvec[KX_Y] = newvec[KX_Y]; - m_vec[KX_Z] = m_transformedvec[KX_Z] = newvec[KX_Z]; - - SetModified(true); -} - -static const STR_String gstrVectorStr=STR_String(); -const STR_String & CVectorValue::GetText() -{ - assertd(false); - return gstrVectorStr; -} - -CValue* CVectorValue::GetReplica() -{ - CVectorValue* replica = new CVectorValue(*this); - replica->ProcessReplica(); - return replica; -}; - -#if 0 -void CVectorValue::Transform(rcMatrix4x4 mat) -{ - m_transformedvec = mat*m_vec; -} -#endif |