载入中...
搜索中...
未找到
SceneCameraProjection.h
浏览该文件的文档.
1#pragma once
2
31#include <glm/mat4x4.hpp>
32#include <glm/vec3.hpp>
33
34#include <optional>
35
36namespace eve::graphics {
37class Camera3D;
38}
39
40namespace eve::scene {
41
43struct ScreenRay {
44 glm::vec3 origin{0.0f};
45 glm::vec3 direction{0.0f, 0.0f, -1.0f};
46};
47
49struct CameraClip {
50 glm::mat4 clip{1.0f};
51 glm::mat4 inverse{1.0f};
52};
53
65public:
66 static constexpr const char* capabilityName = "ISceneCameraProjection";
67
69 virtual ~ISceneCameraProjection() = default;
70
81 virtual std::optional<ScreenRay> screenRay(graphics::Camera3D& cam, float screenX, float screenY, float viewW,
82 float viewH) const = 0;
83
93 virtual std::optional<CameraClip> clipForViewport(graphics::Camera3D& cam, float viewW, float viewH) const = 0;
94};
95
96} // namespace eve::scene
EVENGINE_API_BACKENDS public API.
Camera projection queries answered by the module that owns Camera3D.
virtual std::optional< CameraClip > clipForViewport(graphics::Camera3D &cam, float viewW, float viewH) const =0
Clip matrix and its inverse for a camera and viewport.
virtual ~ISceneCameraProjection()=default
Releases ISceneCameraProjection resources.
virtual std::optional< ScreenRay > screenRay(graphics::Camera3D &cam, float screenX, float screenY, float viewW, float viewH) const =0
Ray through a screen pixel.
static constexpr const char * capabilityName
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
Camera view-projection matrix and its inverse for one viewport.
World-space ray through one screen pixel.