diff options
Diffstat (limited to 'src/core/clientstate.h')
-rw-r--r-- | src/core/clientstate.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/core/clientstate.h b/src/core/clientstate.h new file mode 100644 index 0000000..915f96f --- /dev/null +++ b/src/core/clientstate.h @@ -0,0 +1,65 @@ +/* + core/clientstate.h + This file is part of the Osirion project and is distributed under + the terms of the GNU General Public License version 2 +*/ + +#ifndef __INCLUDED_CORE_CLIENTSTATE_H__ +#define __INCLUDED_CORE_CLIENTSTATE_H__ + +#include "math/axis.h" +#include "math/mathlib.h" +#include "math/vector3f.h" + +namespace core +{ + class ClientState; +} + +#include "core/entity.h" + +namespace core +{ + +/// Entity client render state +class ClientState { +public: + ClientState(); + ClientState(Entity *entity); + + ~ClientState(); + + inline math::Vector3f const & location() { return state_location; } + + inline math::Vector3f const & previouslocation() { return state_previouslocation; } + + inline math::Axis const & previousaxis() { return state_previousaxis; } + + inline math::Axis const & axis() { return state_axis; } + + inline bool visible() const { return state_visible; } + + inline bool detailvisible() const { return state_detailvisible; } + + /// client render fuzz factor + inline float fuzz() const { return state_fuzz; }; + + /// assign the content of an entity + void assign(Entity *entity); + + math::Vector3f state_location; + math::Axis state_axis; + + math::Vector3f state_previouslocation; + math::Axis state_previousaxis; + + bool state_visible; + bool state_detailvisible; + + float state_fuzz; +}; + +} + +#endif // __INCLUDED_CORE_CLIENTSTATE_H__ + |