feat: initial DX12 foundation framework
This commit is contained in:
53
Engine/EngineAPI/TransformComponent.h
Normal file
53
Engine/EngineAPI/TransformComponent.h
Normal file
@@ -0,0 +1,53 @@
|
||||
/**
|
||||
* @file TransformComponent.h
|
||||
* @brief 变换组件句柄与只读查询接口定义。
|
||||
* @details
|
||||
* component 以轻量句柄方式访问 ECS 中的变换数据,提供:
|
||||
* - 位置(position)、朝向(orientation)、缩放(scale)查询;
|
||||
* - 四元数旋转(rotation)读取;
|
||||
* - 与 id 系统一致的有效性判断语义。
|
||||
*/
|
||||
#pragma once
|
||||
#include "..\Components\ComponentsCommon.h"
|
||||
|
||||
|
||||
namespace XEngine::transform {
|
||||
/**
|
||||
* @brief 变换组件强类型标识符。
|
||||
*/
|
||||
DEFINE_TYPED_ID(transform_id);
|
||||
|
||||
|
||||
/**
|
||||
* @brief 变换组件句柄对象。
|
||||
*/
|
||||
class component final
|
||||
{
|
||||
public:
|
||||
constexpr explicit component(transform_id id) : _id{ id } {}
|
||||
constexpr component() : _id{ id::invalid_id } {}
|
||||
constexpr transform_id get_id() const { return _id; }
|
||||
constexpr bool is_valid() const { return id::is_valid(_id); }
|
||||
|
||||
|
||||
/**
|
||||
* @brief 获取世界空间位置。
|
||||
*/
|
||||
math::v3 position() const;
|
||||
/**
|
||||
* @brief 获取朝向向量。
|
||||
*/
|
||||
math::v3 orientation() const;
|
||||
/**
|
||||
* @brief 获取缩放向量。
|
||||
*/
|
||||
math::v3 scale() const;
|
||||
/**
|
||||
* @brief 获取旋转四元数。
|
||||
*/
|
||||
math::v4 rotation() const;
|
||||
private:
|
||||
transform_id _id;
|
||||
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user