Add CSimpleShadow

Former-commit-id: 19877f6fa2
This commit is contained in:
Henrique Gemignani Passos Lima
2022-11-17 06:56:21 +02:00
parent e99cd889cc
commit 70202ae4ba
13 changed files with 167 additions and 13 deletions

View File

@@ -3,20 +3,39 @@
#include "types.h"
#include "Kyoto/Math/CTransform4f.hpp"
#include "Kyoto/TToken.hpp"
class CAABox;
class CStateManager;
class CTransform4f;
class CTexture;
class CSimpleShadow {
public:
CAABox GetBounds() const;
const CTransform4f& GetTransform() const;
CAABox GetMaxShadowBox(const CAABox& bounds) const;
CSimpleShadow(float scale, float userAlpha, float maxObjHeight, float displacement);
void Calculate(const CAABox& bounds, const CTransform4f& xf, const CStateManager& mgr);
void Render(const CTexture* tex) const;
const CTransform4f& GetTransform() const;
void SetUserAlpha(float);
float GetMaxObjectHeight() const;
void SetAlwaysCalculateRadius(bool);
CAABox GetBounds() const;
CAABox GetMaxShadowBox(const CAABox& bounds) const;
bool Valid() const;
private:
// TODO
CTransform4f x0_xf;
float x30_scale;
float x34_radius;
float x38_userAlpha;
float x3c_heightAlpha;
float x40_maxObjHeight;
float x44_displacement;
bool x48_24_collision : 1;
bool x48_25_alwaysCalculateRadius : 1;
bool x48_26_radiusCalculated : 1;
};
#endif // _CSIMPLESHADOW