修改游戏底层矩阵相关

This commit is contained in:
2025-10-26 14:38:53 +08:00
parent dc0213dc16
commit 88f039348a
50 changed files with 1983 additions and 362 deletions

View File

@@ -6,7 +6,9 @@
#include "Tool/RefPtr.h"
#include "Tool/IntrusiveList.hpp"
#include "Tool/TagGed.h"
#include "Tool/TransformT.h"
#include "math/Transform.hpp"
#include "math/Math.h"
using namespace ember;
class BaseNode : public RefObject, public TagGed, protected IntrusiveListValue<RefPtr<BaseNode>>
{
@@ -28,23 +30,25 @@ public:
// 渲染层级
int m_RenderZOrder = 0;
// 二维仿射变换
TransformT transform;
Transform transform;
// 迭代的二维仿射变换
TransformT transformIter;
Transform transformIter;
// 锚点
VecFPos Anchor = {0.f, 0.f};
Vec2 Anchor = {0.f, 0.f};
// 大小
VecSize Size = {0, 0};
// 透明度
float Alpha = 1.f;
// 混合模式
LE_BlEND_MODE _BlendMode = NONE;
// 是否显示
bool Visible = true;
// 计算渲染信息Flag (为了保证每帧只计算一次)
bool CalcRenderInfoFlag = true;
public:
BaseNode(/* args */) = default;
~BaseNode() = default;
BaseNode(/* args */);
~BaseNode();
public:
virtual void Init();
@@ -81,45 +85,45 @@ public:
// 被添加时
virtual void OnAdded(BaseNode *node);
// 设置迭代的二维仿射变换
void SetIterationTransform(TransformT transform);
void SetIterationTransform(Transform transform);
// 获取迭代的二维仿射变换
TransformT GetIterationTransform();
Transform GetIterationTransform();
// 设置二维仿射变换
void SetTransform(TransformT transform);
void SetTransform(Transform transform);
// 获取二维仿射变换
TransformT GetTransform();
Transform GetTransform();
// 设置迭代的坐标
virtual void SetIterationPos(VecFPos pos);
virtual void SetIterationPos(Vec2 pos);
// 获取迭代的坐标
VecFPos GetIterationPos();
Vec2 GetIterationPos();
// 设置迭代的缩放
virtual void SetIterationScale(VecFPos scale);
virtual void SetIterationScale(Vec2 scale);
// 获取迭代的缩放
VecFPos GetIterationScale();
Vec2 GetIterationScale();
// 设置迭代的旋转角度
virtual void SetIterationRotation(float angle);
// 获取迭代的旋转角度
float GetIterationRotation();
// 设置坐标
virtual void SetPos(VecFPos pos);
virtual void SetPos(Vec2 pos);
// 获取坐标
VecFPos GetPos();
Vec2 GetPos();
// 获取世界坐标
VecFPos GetWorldPos();
Vec2 GetWorldPos();
// 设置缩放
virtual void SetScale(VecFPos scale);
virtual void SetScale(Vec2 scale);
// 获取缩放
VecFPos GetScale();
Vec2 GetScale();
// 设置旋转角度
virtual void SetRotation(float angle);
// 获取旋转角度
float GetRotation();
// 设置中心点
virtual void SetAnchor(VecFPos anchor);
virtual void SetAnchor(Vec2 anchor);
// 获取中心点
VecFPos GetAnchor();
Vec2 GetAnchor();
// 设置大小
virtual void SetSize(VecSize size);
// 获取大小
@@ -132,6 +136,10 @@ public:
virtual void SetAlpha(float alpha);
// 获取透明度
float GetAlpha();
// 设置混合模式
void SetBlendMode(LE_BlEND_MODE mode);
// 获取混合模式
LE_BlEND_MODE GetBlendMode();
//获取父对象
BaseNode *GetParent();