26#include "../../third_party/imgui/imgui.h"
370 const std::vector<std::tuple<int, float, float, float, float>>& nodes,
ComponentTypeID GetComponentTypeID_Static()
GridStylePreset
Pre-configured grid styles matching professional editors.
Abstract interface for canvas editors with unified pan/zoom/grid management.
virtual void ResetView()=0
Reset both pan and zoom to defaults.
virtual bool IsMinimapVisible() const =0
Check if minimap is visible.
virtual void SetCanvasScreenPos(const ImVec2 &screenPos)=0
Set canvas screen position (call each frame to update)
virtual void ResetZoom()=0
Reset zoom to 1.0x.
virtual void SetPan(const ImVec2 &offset)=0
Set pan offset directly.
virtual ImVec2 ScreenToCanvas(const ImVec2 &screenPos) const =0
Transform screen space coordinates to canvas space.
virtual void RenderMinimap()=0
Render minimap overlay.
virtual void SetMinimapVisible(bool enabled)=0
Enable/disable minimap rendering.
virtual ImVec2 CanvasToScreen(const ImVec2 &canvasPos) const =0
Transform canvas space coordinates to screen space.
virtual void ZoomBy(float factor, const ImVec2 *zoomCenter=nullptr)=0
Zoom by multiplier.
virtual ImVec2 GetPan() const =0
Get current pan offset.
virtual ImVec2 EditorToGrid(const ImVec2 &editorPos) const =0
Transform editor space to grid space.
virtual void BeginRender()=0
Begin rendering cycle for this canvas.
virtual void SetMinimapSize(float scale)=0
Set minimap size scale.
virtual bool IsCanvasHovered() const =0
Check if canvas is being hovered by mouse.
virtual void ResetPan()=0
Reset pan to origin (0, 0)
virtual ImVec2 GetZoomLimits() const =0
Get zoom limits (min, max)
virtual void SetZoom(float scale, const ImVec2 *zoomCenter=nullptr)=0
Set zoom level directly.
virtual void EndRender()=0
End rendering cycle for this canvas.
virtual ImVec2 GridToEditor(const ImVec2 &gridPos) const =0
Transform grid space to editor space.
virtual void UpdateMinimapNodes(const std::vector< std::tuple< int, float, float, float, float > > &nodes, float graphMinX, float graphMaxX, float graphMinY, float graphMaxY)=0
Update minimap with current graph node data.
virtual float GetZoom() const =0
Get current zoom level.
virtual CanvasGridRenderer::GridConfig GetGridConfig() const =0
Get current grid configuration.
virtual void RenderGrid(CanvasGridRenderer::GridStylePreset preset)=0
Render grid using current configuration.
virtual int GetMinimapPosition() const =0
Get minimap position.
virtual void UpdateMinimapViewport(float viewMinX, float viewMaxX, float viewMinY, float viewMaxY, float graphMinX, float graphMaxX, float graphMinY, float graphMaxY)=0
Update minimap with current viewport bounds.
virtual ImVec2 GetCanvasSize() const =0
Get canvas size in screen space.
virtual ~ICanvasEditor()=default
virtual void SetCanvasSize(const ImVec2 &size)=0
Set canvas size (call each frame to update)
virtual ImVec2 GetCanvasScreenPos() const =0
Get canvas position on screen.
virtual bool IsGridVisible() const =0
Check if grid is visible.
virtual const char * GetCanvasName() const =0
Get the name/identifier of this canvas.
virtual void SetMinimapPosition(int position)=0
Set minimap position.
virtual void GetCanvasVisibleBounds(ImVec2 &outMin, ImVec2 &outMax) const =0
Get canvas visible area as AABB in canvas space.
virtual float GetMinimapSize() const =0
Get minimap size scale.
virtual void PanBy(const ImVec2 &delta)=0
Pan by delta amount.
virtual bool IsPointInCanvas(const ImVec2 &screenPos) const =0
Check if point in screen space is within canvas bounds.
virtual void SetGridVisible(bool enabled)=0
Enable/disable grid rendering.
< Provides AssetID and INVALID_ASSET_ID
Configuration parameters for grid rendering.