1#ifndef YAZE_APP_GUI_CANVAS_CANVAS_AUTOMATION_API_H
2#define YAZE_APP_GUI_CANVAS_CANVAS_AUTOMATION_API_H
8#include "imgui/imgui.h"
66 bool SetTileAt(
int x,
int y,
int tile_id);
81 bool SetTiles(
const std::vector<std::tuple<int, int, int>>& tiles);
Programmatic interface for controlling canvas operations.
bool IsTileVisible(int x, int y) const
Check if a tile is currently visible.
TilePaintCallback tile_paint_callback_
void SetTileQueryCallback(TileQueryCallback callback)
void SetTilePaintCallback(TilePaintCallback callback)
bool IsInBounds(int x, int y) const
Check if coordinates are within canvas bounds.
bool SetTileAt(int x, int y, int tile_id)
Paint a single tile at logical coordinates.
std::function< bool(int x, int y, int tile_id)> TilePaintCallback
Set callback for tile painting operations. Allows external systems (CLI, AI agents) to implement cust...
void ClearSelection()
Clear current selection.
void SetZoom(float zoom)
Set canvas zoom level.
void SelectTileRect(int x1, int y1, int x2, int y2)
Select a rectangular region of tiles.
VisibleRegion GetVisibleRegion() const
Get currently visible tile region.
Dimensions GetDimensions() const
Get canvas dimensions in logical tile units.
SelectionState GetSelection() const
Query current selection state.
void CenterOn(int x, int y)
Center canvas view on a specific tile.
TileQueryCallback tile_query_callback_
ImVec2 CanvasToTile(ImVec2 canvas_pos) const
Convert canvas pixel coordinates to logical tile coordinates.
float GetZoom() const
Get current zoom level.
bool SetTiles(const std::vector< std::tuple< int, int, int > > &tiles)
Paint multiple tiles in a batch operation.
ImVec2 TileToCanvas(int x, int y) const
Convert logical tile coordinates to canvas pixel coordinates.
std::function< int(int x, int y)> TileQueryCallback
Set callback for tile querying operations. Allows external systems to provide tile data.
void SelectTile(int x, int y)
Select a single tile.
int GetTileAt(int x, int y) const
Query tile ID at logical coordinates.
void ScrollToTile(int x, int y, bool center=false)
Scroll canvas to make tile visible.
Modern, robust canvas for drawing and manipulating graphics.
Main namespace for the application.
Canvas dimensions in logical tile units.
Selection state returned by GetSelection().
std::vector< ImVec2 > selected_tiles
Visible region in logical tile coordinates.