104 lines
2.1 KiB
Plaintext
104 lines
2.1 KiB
Plaintext
#ifndef _ENGINE_SYSTEMOBJECT_HPP_
|
|
#define _ENGINE_SYSTEMOBJECT_HPP_
|
|
#ifndef _ENGINE_VECTOR3D_HPP_
|
|
#include <engine/vector3d.hpp>
|
|
#endif
|
|
#ifndef _COMMON_VECTOR2D_HPP_
|
|
#include <common/vector2d.hpp>
|
|
#endif
|
|
|
|
class SystemObject
|
|
{
|
|
public:
|
|
enum Disposition{Active,Destroyed,Idle};
|
|
SystemObject(void);
|
|
SystemObject(Vector3D ¤tWorldPosition,Vector2D ¤tScreenPosition);
|
|
virtual ~SystemObject();
|
|
void worldPosition(Vector3D worldPosition);
|
|
void screenPosition(Vector2D screenPosition);
|
|
void disposition(Disposition disposition);
|
|
Vector3D worldPosition(void)const;
|
|
Vector2D screenPosition(void)const;
|
|
Vector3D prevWorldPosition(void)const;
|
|
Vector2D prevScreenPosition(void)const;
|
|
Disposition disposition(void)const;
|
|
private:
|
|
Disposition mDisposition;
|
|
Vector3D mCurrentWorldPosition;
|
|
Vector3D mLastWorldPosition;
|
|
Vector2D mCurrentScreenPosition;
|
|
Vector2D mLastScreenPosition;
|
|
};
|
|
|
|
inline
|
|
SystemObject::SystemObject(void)
|
|
: mDisposition(Idle)
|
|
{
|
|
}
|
|
|
|
inline
|
|
SystemObject::SystemObject(Vector3D ¤tWorldPosition,Vector2D ¤tScreenPosition)
|
|
: mCurrentWorldPosition(currentWorldPosition), mLastWorldPosition(currentWorldPosition),
|
|
mCurrentScreenPosition(currentScreenPosition), mLastScreenPosition(currentScreenPosition)
|
|
{
|
|
|
|
}
|
|
|
|
inline
|
|
SystemObject::~SystemObject()
|
|
{
|
|
}
|
|
|
|
inline
|
|
void SystemObject::worldPosition(Vector3D worldPosition)
|
|
{
|
|
mLastWorldPosition=mCurrentWorldPosition;
|
|
mCurrentWorldPosition=worldPosition;
|
|
}
|
|
|
|
inline
|
|
void SystemObject::screenPosition(Vector2D screenPosition)
|
|
{
|
|
mLastScreenPosition=mCurrentScreenPosition;
|
|
mCurrentScreenPosition=screenPosition;
|
|
}
|
|
|
|
inline
|
|
void SystemObject::disposition(SystemObject::Disposition disposition)
|
|
{
|
|
mDisposition=disposition;
|
|
}
|
|
|
|
inline
|
|
Vector3D SystemObject::worldPosition(void)const
|
|
{
|
|
return mCurrentWorldPosition;
|
|
}
|
|
|
|
inline
|
|
Vector2D SystemObject::screenPosition(void)const
|
|
{
|
|
return mCurrentScreenPosition;
|
|
}
|
|
|
|
inline
|
|
Vector3D SystemObject::prevWorldPosition(void)const
|
|
{
|
|
return mLastWorldPosition;
|
|
}
|
|
|
|
inline
|
|
Vector2D SystemObject::prevScreenPosition(void)const
|
|
{
|
|
return mLastScreenPosition;
|
|
}
|
|
|
|
inline
|
|
SystemObject::Disposition SystemObject::disposition(void)const
|
|
{
|
|
return mDisposition;
|
|
}
|
|
#endif
|
|
|
|
|