增加摄像机
This commit is contained in:
@@ -148,6 +148,24 @@ public:
|
||||
void setTools(const QVector<Tool>& tools) { m_tools = tools; }
|
||||
const QVector<Tool>& tools() const { return m_tools; }
|
||||
|
||||
// —— 摄像机(正交俯视;centerWorld 为视口中心;viewScale 为相对参考分辨率 1600×900 的像素/世界单位比,
|
||||
// 预览与视口框按该参考换算,不随实际窗口宽高改变「镜头」所覆盖的世界范围)——
|
||||
struct Camera {
|
||||
QString id;
|
||||
QString displayName;
|
||||
bool visible = true;
|
||||
QPointF centerWorld;
|
||||
double viewScale = 1.0;
|
||||
QVector<Entity::KeyframeVec2> locationKeys;
|
||||
QVector<Entity::KeyframeDouble> scaleKeys;
|
||||
};
|
||||
|
||||
void setCameras(const QVector<Camera>& cameras) { m_cameras = cameras; }
|
||||
const QVector<Camera>& cameras() const { return m_cameras; }
|
||||
|
||||
void setActiveCameraId(const QString& id) { m_activeCameraId = id; }
|
||||
const QString& activeCameraId() const { return m_activeCameraId; }
|
||||
|
||||
// —— 动画系统(Blender/NLA 风格简化版,工程级)——
|
||||
struct AnimationClip {
|
||||
QString id;
|
||||
@@ -162,6 +180,9 @@ public:
|
||||
// Tool channels (keyed by tool id)
|
||||
QHash<QString, QVector<Entity::KeyframeVec2>> toolLocationKeys;
|
||||
QHash<QString, QVector<ToolKeyframeBool>> toolVisibilityKeys;
|
||||
|
||||
QHash<QString, QVector<Entity::KeyframeVec2>> cameraLocationKeys;
|
||||
QHash<QString, QVector<Entity::KeyframeDouble>> cameraScaleKeys;
|
||||
};
|
||||
|
||||
struct NlaStrip {
|
||||
@@ -247,6 +268,8 @@ private:
|
||||
int m_fps = 60;
|
||||
QVector<Entity> m_entities;
|
||||
QVector<Tool> m_tools;
|
||||
QVector<Camera> m_cameras;
|
||||
QString m_activeCameraId;
|
||||
|
||||
QVector<AnimationClip> m_clips;
|
||||
QVector<AnimationScheme> m_schemes;
|
||||
|
||||
Reference in New Issue
Block a user