Files
Work/engine/SYSOBJ.BAK
2024-08-07 09:16:27 -04:00

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 &currentWorldPosition,Vector2D &currentScreenPosition);
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 &currentWorldPosition,Vector2D &currentScreenPosition)
: 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