123
This commit is contained in:
100
CryCommon/ScriptObjectVector.h
Normal file
100
CryCommon/ScriptObjectVector.h
Normal file
@@ -0,0 +1,100 @@
|
||||
// ScriptObjectVector.h: interface for the CScriptObjectVector class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_SCRIPTOBJECTVECTOR_H__C72BCA75_0CD6_47F2_9812_177BF43A2018__INCLUDED_)
|
||||
#define AFX_SCRIPTOBJECTVECTOR_H__C72BCA75_0CD6_47F2_9812_177BF43A2018__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
#include "IScriptSystem.h"
|
||||
|
||||
/*! this calss map an 3d vector to a LUA table with x,y,z members
|
||||
*/
|
||||
class CScriptObjectVector :
|
||||
public _SmartScriptObject
|
||||
{
|
||||
public:
|
||||
CScriptObjectVector()
|
||||
{
|
||||
}
|
||||
CScriptObjectVector(IScriptSystem *pScriptSystem,bool bCreateEmpty=false):_SmartScriptObject(pScriptSystem,bCreateEmpty)
|
||||
{
|
||||
}
|
||||
|
||||
void Set(const Vec3 &v)
|
||||
{
|
||||
if(m_pSO->BeginSetGetChain())
|
||||
{
|
||||
m_pSO->SetValueChain("x",v.x);
|
||||
m_pSO->SetValueChain("y",v.y);
|
||||
m_pSO->SetValueChain("z",v.z);
|
||||
m_pSO->EndSetGetChain();
|
||||
}
|
||||
}
|
||||
Vec3 Get()
|
||||
{
|
||||
Vec3 v(0,0,0);
|
||||
if(m_pSO->BeginSetGetChain())
|
||||
{
|
||||
m_pSO->GetValueChain("x",v.x);
|
||||
m_pSO->GetValueChain("y",v.y);
|
||||
m_pSO->GetValueChain("z",v.z);
|
||||
m_pSO->EndSetGetChain();
|
||||
}
|
||||
else assert(0 && "validate before calling Get()");
|
||||
|
||||
return v;
|
||||
}
|
||||
/* Vec3& operator=(CScriptObjectVector &vec)
|
||||
{
|
||||
static Vec3 v3;
|
||||
vec.Set(v3);
|
||||
return v3;
|
||||
}*/
|
||||
CScriptObjectVector &operator=(const Vec3 &v3)
|
||||
{
|
||||
Set(v3);
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
/*! this calss map an "color" to a LUA table with x,y,z members
|
||||
*/
|
||||
class CScriptObjectColor :
|
||||
public _SmartScriptObject
|
||||
{
|
||||
public:
|
||||
CScriptObjectColor(IScriptSystem *pScriptSystem,bool bCreateEmpty=false):_SmartScriptObject(pScriptSystem,bCreateEmpty)
|
||||
{
|
||||
}
|
||||
|
||||
void Set(const Vec3 &v)
|
||||
{
|
||||
m_pSO->SetAt(1,v.x);
|
||||
m_pSO->SetAt(2,v.y);
|
||||
m_pSO->SetAt(3,v.z);
|
||||
}
|
||||
Vec3 &Get()
|
||||
{
|
||||
static Vec3 v(0,0,0);
|
||||
m_pSO->GetAt(1,v.x);
|
||||
m_pSO->GetAt(2,v.y);
|
||||
m_pSO->GetAt(3,v.z);
|
||||
return v;
|
||||
}
|
||||
/* Vec3& operator=(CScriptObjectVector &vec)
|
||||
{
|
||||
static Vec3 v3;
|
||||
vec.Set(v3);
|
||||
return v3;
|
||||
}*/
|
||||
CScriptObjectColor &operator=(const Vec3 &v3)
|
||||
{
|
||||
Set(v3);
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_SCRIPTOBJECTVECTOR_H__C72BCA75_0CD6_47F2_9812_177BF43A2018__INCLUDED_)
|
||||
Reference in New Issue
Block a user