Refine new_editor scene viewport flow

This commit is contained in:
2026-04-18 23:56:17 +08:00
parent f544b2792b
commit 7dfdda2b11
15 changed files with 1425 additions and 296 deletions

View File

@@ -114,11 +114,13 @@ std::string_view GetSceneToolModeName(SceneToolMode mode) {
case SceneToolMode::View:
return "View";
case SceneToolMode::Translate:
return "Translate";
return "Move";
case SceneToolMode::Rotate:
return "Rotate";
case SceneToolMode::Scale:
return "Scale";
case SceneToolMode::Transform:
return "Transform";
default:
return "Unknown";
}
@@ -162,8 +164,6 @@ std::string_view GetSceneToolHandleName(SceneToolHandle handle) {
std::string_view GetSceneToolInteractionLockName(SceneToolInteractionLock lock) {
switch (lock) {
case SceneToolInteractionLock::Toolbar:
return "Toolbar";
case SceneToolInteractionLock::TransformDrag:
return "TransformDrag";
case SceneToolInteractionLock::None:
@@ -611,22 +611,6 @@ void EditorSceneRuntime::ClearToolInteractionLock() {
m_toolState.interactionLock = SceneToolInteractionLock::None;
}
void EditorSceneRuntime::SetToolbarHoveredIndex(std::size_t index) {
m_toolState.toolbarHoveredIndex = index;
}
void EditorSceneRuntime::SetToolbarActiveIndex(std::size_t index) {
m_toolState.toolbarActiveIndex = index;
}
void EditorSceneRuntime::ClearToolbarInteraction() {
m_toolState.toolbarHoveredIndex = kSceneToolInvalidToolbarIndex;
m_toolState.toolbarActiveIndex = kSceneToolInvalidToolbarIndex;
if (m_toolState.interactionLock == SceneToolInteractionLock::Toolbar) {
ClearToolInteractionLock();
}
}
void EditorSceneRuntime::ResetToolInteractionState() {
CancelTransformToolDrag();
ResetToolInteractionTransientState();
@@ -916,7 +900,6 @@ void EditorSceneRuntime::ResetTransformEditHistory() {
void EditorSceneRuntime::ResetToolInteractionTransientState() {
m_toolState.hoveredHandle = SceneToolHandle::None;
m_toolState.activeHandle = SceneToolHandle::None;
ClearToolbarInteraction();
ClearToolInteractionLock();
m_toolState.dragState = {};
}