feat: add scene view grid overlay

This commit is contained in:
2026-03-28 17:50:54 +08:00
parent 3cc823aebd
commit 001e45bf6b
3 changed files with 268 additions and 0 deletions

View File

@@ -106,6 +106,29 @@ public:
ApplySceneViewCameraController();
}
SceneViewportOverlayData GetSceneViewOverlayData() const override {
SceneViewportOverlayData data = {};
if (m_sceneViewCamera.gameObject == nullptr || m_sceneViewCamera.camera == nullptr) {
return data;
}
const Components::TransformComponent* transform = m_sceneViewCamera.gameObject->GetTransform();
if (transform == nullptr) {
return data;
}
data.valid = true;
data.cameraPosition = transform->GetPosition();
data.cameraForward = transform->GetForward();
data.cameraRight = transform->GetRight();
data.cameraUp = transform->GetUp();
data.verticalFovDegrees = m_sceneViewCamera.camera->GetFieldOfView();
data.nearClipPlane = m_sceneViewCamera.camera->GetNearClipPlane();
data.farClipPlane = m_sceneViewCamera.camera->GetFarClipPlane();
data.orbitDistance = m_sceneViewCamera.controller.GetDistance();
return data;
}
void RenderRequestedViewports(
IEditorContext& context,
const Rendering::RenderContext& renderContext) override {