Files
XCEngine/editor/src/Core/ISelectionManager.h
ssdfasd 56ec2e9b85 refactor(editor): Phase 1 architecture refactoring
- Decouple Panel from Core::Layer (P0 issue resolved)
- Add EventBus with type-safe event system
- Add ISelectionManager interface with SelectionManagerImpl
- Add IEditorContext for dependency injection
- Update EditorLayer to use new architecture
- Update Application to create and inject EditorContext

New files:
- editor/src/Core/EventBus.h
- editor/src/Core/EditorEvents.h
- editor/src/Core/ISelectionManager.h
- editor/src/Core/SelectionManagerImpl.h
- editor/src/Core/IEditorContext.h
- editor/src/Core/EditorContextImpl.h

This enables future improvements: Undo/Redo, serialization, component extensibility.
2026-03-25 15:35:00 +08:00

28 lines
763 B
C++

#pragma once
#include <vector>
#include <cstdint>
namespace XCEngine {
namespace Editor {
class ISelectionManager {
public:
virtual ~ISelectionManager() = default;
virtual void SetSelectedEntity(uint64_t entityId) = 0;
virtual void SetSelectedEntities(const std::vector<uint64_t>& entityIds) = 0;
virtual void AddToSelection(uint64_t entityId) = 0;
virtual void RemoveFromSelection(uint64_t entityId) = 0;
virtual void ClearSelection() = 0;
virtual uint64_t GetSelectedEntity() const = 0;
virtual const std::vector<uint64_t>& GetSelectedEntities() const = 0;
virtual bool HasSelection() const = 0;
virtual size_t GetSelectionCount() const = 0;
virtual bool IsSelected(uint64_t entityId) const = 0;
};
}
}