mirror of https://github.com/PrimeDecomp/prime.git
36 lines
802 B
C++
36 lines
802 B
C++
|
#ifndef _CGUIOBJECT
|
||
|
#define _CGUIOBJECT
|
||
|
|
||
|
#include "Kyoto/Math/CTransform4f.hpp"
|
||
|
|
||
|
class CGuiWidgetDrawParms;
|
||
|
class CMatrix4f;
|
||
|
class CVector2f;
|
||
|
|
||
|
class CGuiObject {
|
||
|
public:
|
||
|
virtual ~CGuiObject();
|
||
|
virtual void Update(float dt);
|
||
|
virtual void Draw(const CGuiWidgetDrawParms& parms);
|
||
|
virtual bool TestCursorHit(const CMatrix4f& vp, const CVector2f& point) const { return false; }
|
||
|
virtual void Initialize() = 0;
|
||
|
|
||
|
void RecalculateTransforms();
|
||
|
const CVector3f& GetLocalPosition() const;
|
||
|
|
||
|
void SetLocalTransform(const CTransform4f& xf) {
|
||
|
x4_localXF = xf;
|
||
|
RecalculateTransforms();
|
||
|
}
|
||
|
|
||
|
private:
|
||
|
CTransform4f x4_localXF;
|
||
|
CTransform4f x34_worldXF;
|
||
|
CGuiObject* x64_parent;
|
||
|
CGuiObject* x68_child;
|
||
|
CGuiObject* x6c_nextSibling;
|
||
|
};
|
||
|
CHECK_SIZEOF(CGuiObject, 0x70)
|
||
|
|
||
|
#endif // _CGUIOBJECT
|