Add CGuiObject

Former-commit-id: 957679cf97
This commit is contained in:
2022-12-28 19:32:27 -08:00
parent 6cc5c361ce
commit a8343ade6d
11 changed files with 175 additions and 65 deletions

View File

@@ -9,20 +9,34 @@ class CVector2f;
class CGuiObject {
public:
CGuiObject();
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 Draw(const CGuiWidgetDrawParms& parms) const;
virtual void Initialize() = 0;
void MoveInWorld(const CVector3f& offset);
CVector3f GetWorldPosition() const;
CVector3f GetLocalPosition() const;
void SetLocalPosition(const CVector3f& pos);
void SetLocalTransform(const CTransform4f& xf);
void RecalculateTransforms();
const CVector3f& GetLocalPosition() const;
void RotateReset();
void SetLocalTransform(const CTransform4f& xf) {
x4_localXF = xf;
RecalculateTransforms();
CVector3f RotateO2P(const CVector3f& vec) const;
CVector3f RotateW2O(const CVector3f& offset) const {
CVector3f ret = x34_worldXF.TransposeRotate(offset);
return ret;
}
CVector3f RotateTranslateW2O(const CVector3f& vec) const;
void MultiplyO2P(const CTransform4f& xf);
void RecalculateTransforms();
void AddChildObject(CGuiObject* child, bool a, bool b);
void SetParent(CGuiObject* obj) {
x64_parent = obj;
}
private:
CTransform4f x4_localXF;
CTransform4f x34_worldXF;