/** * @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; }; }