载入中...
搜索中...
未找到
PcgCarCameraSetup.h
浏览该文件的文档.
1#pragma once
2
3#include "common/Result.h"
4
5#include <cstdint>
6
7namespace ssq { class Table; }
8namespace eve::graphics { class Camera3D; }
9namespace eve::scene { class SceneNodeRef; }
10
11namespace eve::camera {
12class CameraController;
13
16 float targetHeight = 1.5f;
17 float distance = 6.f;
18 float offsetFromWall = 0.1f;
19 float maximumDistance = 20.f;
20 float minimumDistance = 0.6f;
21 float horizontalSpeed = 200.f;
22 float verticalSpeed = 200.f;
23 float minimumPitch = -80.f;
24 float maximumPitch = 80.f;
25 float zoomRate = 40.f;
26 float rotationDamping = 0.5f;
27 float zoomDamping = 5.f;
28 uint64_t collisionLayers = 3841;
29 bool lockToRearOfTarget = false;
31 bool allowMouseVertical = true;
32};
33
36public:
38 [[nodiscard]] Result<void> configure(const PcgCarCameraProfile& profile);
40 [[nodiscard]] Result<void> apply(CameraController* controller, graphics::Camera3D* camera,
41 scene::SceneNodeRef* focus, float initialYaw, float initialPitch);
43 [[nodiscard]] Result<void> update(CameraController* controller, float mouseX, float mouseY,
44 float scroll, float dt, bool targetIsMoving, float targetYaw);
46 const PcgCarCameraProfile& getProfile() const noexcept { return profile_; }
float getYaw() const noexcept { return yaw_; } float getPitch() const noexcept { return pitch_; }
49private:
50 PcgCarCameraProfile profile_{};
51 float yaw_ = 0.f;
52 float pitch_ = 0.f;
53 bool configured_ = false;
54};
55
57void exposePcgCarCameraSetupBindings(ssq::Table& table);
58}
#define EVENGINE_API_WORLD
Definition Export.h:109
float camera[2]
Move-only, checked operation results for the common layer.
Move-only operation result carrying either a value or Status.
Definition Result.h:155
3D 摄像机控制器(eve.Camera / eve.CameraController)。
Caller-owned Pcg vehicle orbit-camera setup and input adapter.
const PcgCarCameraProfile & getProfile() const noexcept
Return the copied profile.
EVENGINE_API_BACKENDS public API.
Script handle to a scene node (hostName + nodeId). Deliberately holds strings rather than arena point...
void exposePcgCarCameraSetupBindings(ssq::Table &t)
Register Pcg vehicle camera bindings.
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
enum EVENGINE_API_FOUNDATION Table
OT_TABLE (editable via Runtime table APIs / ReflectedPropertyModel).
Definition Runtime.h:121
EVEngine ECS 集成层:底层实现使用 sunxfancy/ECS.hpp https://github.com/sunxfancy/ECS.hpp
Definition ECS.h:14
Serializable values matching Pcg CarControllerSetup camera defaults.