#ifndef _ENGINE_SYSTEMOBJECT_HPP_ #define _ENGINE_SYSTEMOBJECT_HPP_ #ifndef _ENGINE_VECTOR3D_HPP_ #include #endif #ifndef _COMMON_VECTOR2D_HPP_ #include #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