Olympe Engine 2.0
2D Game Engine with ECS Architecture
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Olympe::CustomCanvasEditor Class Reference

#include <CustomCanvasEditor.h>

+ Inheritance diagram for Olympe::CustomCanvasEditor:
+ Collaboration diagram for Olympe::CustomCanvasEditor:

Public Member Functions

 CustomCanvasEditor (const char *name, ImVec2 canvasScreenPos, ImVec2 canvasSize, float initialZoom=1.0f, float minZoom=0.1f, float maxZoom=3.0f)
 Construct custom canvas editor with zoom support.
 
virtual ~CustomCanvasEditor ()=default
 
virtual void BeginRender () override
 Begin rendering cycle.
 
virtual void EndRender () override
 End rendering cycle.
 
virtual ImVec2 ScreenToCanvas (const ImVec2 &screenPos) const override
 Transform screen space to canvas space.
 
virtual ImVec2 CanvasToScreen (const ImVec2 &canvasPos) const override
 Transform canvas space to screen space.
 
virtual ImVec2 EditorToGrid (const ImVec2 &editorPos) const override
 Transform editor space to grid space.
 
virtual ImVec2 GridToEditor (const ImVec2 &gridPos) const override
 Transform grid space to editor space.
 
virtual ImVec2 GetPan () const override
 Get current pan offset.
 
virtual void SetPan (const ImVec2 &offset) override
 Set pan offset directly.
 
virtual void PanBy (const ImVec2 &delta) override
 Pan by delta.
 
virtual void ResetPan () override
 Reset pan to origin.
 
virtual float GetZoom () const override
 Get current zoom level.
 
virtual void SetZoom (float scale, const ImVec2 *zoomCenter=nullptr) override
 Set zoom level directly.
 
virtual void ZoomBy (float factor, const ImVec2 *zoomCenter=nullptr) override
 Zoom by multiplier.
 
virtual ImVec2 GetZoomLimits () const override
 Get zoom limits.
 
virtual void ResetZoom () override
 Reset zoom to 1.0x.
 
virtual void ResetView () override
 Reset view (pan and zoom)
 
virtual CanvasGridRenderer::GridConfig GetGridConfig () const override
 Get current grid configuration.
 
virtual void RenderGrid (CanvasGridRenderer::GridStylePreset preset) override
 Render grid.
 
virtual void SetGridVisible (bool enabled) override
 Set grid visibility.
 
virtual bool IsGridVisible () const override
 Check if grid is visible.
 
virtual ImVec2 GetCanvasScreenPos () const override
 Get canvas screen position.
 
virtual ImVec2 GetCanvasSize () const override
 Get canvas size.
 
virtual void SetCanvasScreenPos (const ImVec2 &screenPos) override
 Set canvas screen position (updates each frame)
 
virtual void SetCanvasSize (const ImVec2 &size) override
 Set canvas size (updates each frame)
 
virtual void GetCanvasVisibleBounds (ImVec2 &outMin, ImVec2 &outMax) const override
 Get canvas visible bounds in canvas space.
 
virtual bool IsPointInCanvas (const ImVec2 &screenPos) const override
 Check if point is in canvas.
 
virtual bool IsCanvasHovered () const override
 Check if canvas is hovered.
 
virtual const charGetCanvasName () const override
 Get canvas name.
 
virtual void RenderMinimap () override
 Render minimap overlay for custom canvas.
 
virtual void SetMinimapVisible (bool enabled) override
 Enable/disable minimap.
 
virtual bool IsMinimapVisible () const override
 Check if minimap is visible.
 
virtual void SetMinimapSize (float scale) override
 Set minimap size ratio.
 
virtual float GetMinimapSize () const override
 Get minimap size ratio.
 
virtual void SetMinimapPosition (int position) override
 Set minimap position (corner)
 
virtual int GetMinimapPosition () const override
 Get minimap position.
 
void UpdateMinimapNodes (const std::vector< std::tuple< int, float, float, float, float > > &nodes, float graphMinX, float graphMaxX, float graphMinY, float graphMaxY)
 Update minimap with current graph data.
 
void UpdateMinimapViewport (float viewMinX, float viewMaxX, float viewMinY, float viewMaxY, float graphMinX, float graphMaxX, float graphMinY, float graphMaxY)
 Update minimap viewport from visible canvas area.
 
void SetMiddleMousePanEnabled (bool enabled)
 Enable/disable middle-mouse panning.
 
void SetScrollZoomEnabled (bool enabled)
 Enable/disable scroll wheel zooming.
 
void SetScrollZoomSpeed (float speed)
 Set scroll zoom speed (multiplier)
 
- Public Member Functions inherited from Olympe::ICanvasEditor
virtual ~ICanvasEditor ()=default
 

Private Member Functions

void UpdateInputState ()
 Update pan/zoom from current frame input.
 
void HandlePanning ()
 Handle middle-mouse panning.
 
void HandleZooming ()
 Handle scroll wheel zooming.
 
float ClampZoom (float zoom) const
 Clamp zoom to valid range.
 

Private Attributes

std::string m_name
 
ImVec2 m_canvasScreenPos
 
ImVec2 m_canvasSize
 
ImVec2 m_canvasOffset
 
float m_canvasZoom
 
float m_minZoom
 
float m_maxZoom
 
bool m_gridVisible
 
std::unique_ptr< CanvasMinimapRendererm_minimapRenderer
 
ImVec2 m_lastMousePos
 
bool m_isPanning
 
bool m_middleMousePanEnabled
 
bool m_scrollZoomEnabled
 
float m_scrollZoomSpeed
 

Detailed Description

Definition at line 36 of file CustomCanvasEditor.h.

Constructor & Destructor Documentation

◆ CustomCanvasEditor()

Olympe::CustomCanvasEditor::CustomCanvasEditor ( const char name,
ImVec2  canvasScreenPos,
ImVec2  canvasSize,
float  initialZoom = 1.0f,
float  minZoom = 0.1f,
float  maxZoom = 3.0f 
)

Construct custom canvas editor with zoom support.

Parameters
nameIdentifier for this editor (e.g., "ComponentCanvas")
canvasScreenPosTop-left corner of canvas on screen (pixels)
canvasSizeWidth/height of canvas area (pixels)
initialZoomInitial zoom level (default 1.0f)
minZoomMinimum zoom allowed (default 0.1f)
maxZoomMaximum zoom allowed (default 3.0f)

Definition at line 11 of file CustomCanvasEditor.cpp.

References ClampZoom(), and m_canvasZoom.

+ Here is the call graph for this function:

◆ ~CustomCanvasEditor()

virtual Olympe::CustomCanvasEditor::~CustomCanvasEditor ( )
virtualdefault

Member Function Documentation

◆ BeginRender()

void Olympe::CustomCanvasEditor::BeginRender ( )
overridevirtual

Begin rendering cycle.

Updates pan/zoom from input (mouse/scroll)

Implements Olympe::ICanvasEditor.

Definition at line 41 of file CustomCanvasEditor.cpp.

References UpdateInputState().

+ Here is the call graph for this function:

◆ CanvasToScreen()

ImVec2 Olympe::CustomCanvasEditor::CanvasToScreen ( const ImVec2 canvasPos) const
overridevirtual

Transform canvas space to screen space.

Includes zoom scaling: screen = canvas * zoom + pan + canvasScreenPos

Implements Olympe::ICanvasEditor.

Definition at line 66 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), m_canvasOffset, m_canvasScreenPos, and m_canvasZoom.

+ Here is the call graph for this function:

◆ ClampZoom()

float Olympe::CustomCanvasEditor::ClampZoom ( float  zoom) const
private

Clamp zoom to valid range.

Parameters
zoomValue to clamp
Returns
Clamped value

Definition at line 123 of file CustomCanvasEditor.cpp.

References m_maxZoom, and m_minZoom.

Referenced by CustomCanvasEditor(), and SetZoom().

+ Here is the caller graph for this function:

◆ EditorToGrid()

ImVec2 Olympe::CustomCanvasEditor::EditorToGrid ( const ImVec2 editorPos) const
overridevirtual

Transform editor space to grid space.

Grid space removes pan offset (but keeps zoom): grid = editor - pan

Implements Olympe::ICanvasEditor.

Definition at line 75 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), and m_canvasOffset.

+ Here is the call graph for this function:

◆ EndRender()

void Olympe::CustomCanvasEditor::EndRender ( )
overridevirtual

End rendering cycle.

Finalizes input state for frame

Implements Olympe::ICanvasEditor.

Definition at line 47 of file CustomCanvasEditor.cpp.

◆ GetCanvasName()

virtual const char * Olympe::CustomCanvasEditor::GetCanvasName ( ) const
inlineoverridevirtual

Get canvas name.

Returns
Stored canvas name

Implements Olympe::ICanvasEditor.

Definition at line 266 of file CustomCanvasEditor.h.

References m_name.

◆ GetCanvasScreenPos()

virtual ImVec2 Olympe::CustomCanvasEditor::GetCanvasScreenPos ( ) const
inlineoverridevirtual

Get canvas screen position.

Returns
Stored canvasScreenPos

Implements Olympe::ICanvasEditor.

Definition at line 218 of file CustomCanvasEditor.h.

References m_canvasScreenPos.

◆ GetCanvasSize()

virtual ImVec2 Olympe::CustomCanvasEditor::GetCanvasSize ( ) const
inlineoverridevirtual

Get canvas size.

Returns
Stored canvasSize

Implements Olympe::ICanvasEditor.

Definition at line 224 of file CustomCanvasEditor.h.

References m_canvasSize.

◆ GetCanvasVisibleBounds()

void Olympe::CustomCanvasEditor::GetCanvasVisibleBounds ( ImVec2 outMin,
ImVec2 outMax 
) const
overridevirtual

Get canvas visible bounds in canvas space.

Parameters
outMinTop-left corner
outMaxBottom-right corner

Implements Olympe::ICanvasEditor.

Definition at line 176 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), m_canvasScreenPos, m_canvasSize, and ScreenToCanvas().

+ Here is the call graph for this function:

◆ GetGridConfig()

CanvasGridRenderer::GridConfig Olympe::CustomCanvasEditor::GetGridConfig ( ) const
overridevirtual

Get current grid configuration.

Returns
GridConfig with zoom-aware scaling

Implements Olympe::ICanvasEditor.

Definition at line 134 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), Olympe::CanvasGridRenderer::GetStylePreset(), m_canvasOffset, m_canvasScreenPos, m_canvasSize, m_canvasZoom, and Olympe::CanvasGridRenderer::Style_VisualScript.

+ Here is the call graph for this function:

◆ GetMinimapPosition()

int Olympe::CustomCanvasEditor::GetMinimapPosition ( ) const
overridevirtual

Get minimap position.

Returns
Position enum value

Implements Olympe::ICanvasEditor.

Definition at line 258 of file CustomCanvasEditor.cpp.

References m_minimapRenderer.

◆ GetMinimapSize()

float Olympe::CustomCanvasEditor::GetMinimapSize ( ) const
overridevirtual

Get minimap size ratio.

Returns
Current size ratio

Implements Olympe::ICanvasEditor.

Definition at line 243 of file CustomCanvasEditor.cpp.

References m_minimapRenderer.

◆ GetPan()

virtual ImVec2 Olympe::CustomCanvasEditor::GetPan ( ) const
inlineoverridevirtual

Get current pan offset.

Returns
Current pan offset vector

Implements Olympe::ICanvasEditor.

Definition at line 115 of file CustomCanvasEditor.h.

References m_canvasOffset.

◆ GetZoom()

virtual float Olympe::CustomCanvasEditor::GetZoom ( ) const
inlineoverridevirtual

Get current zoom level.

Returns
Current zoom scale (1.0 = 100%)

Implements Olympe::ICanvasEditor.

Definition at line 144 of file CustomCanvasEditor.h.

References m_canvasZoom.

◆ GetZoomLimits()

virtual ImVec2 Olympe::CustomCanvasEditor::GetZoomLimits ( ) const
inlineoverridevirtual

Get zoom limits.

Returns
{minZoom, maxZoom}

Implements Olympe::ICanvasEditor.

Definition at line 166 of file CustomCanvasEditor.h.

References GetComponentTypeID_Static(), m_maxZoom, and m_minZoom.

+ Here is the call graph for this function:

◆ GridToEditor()

ImVec2 Olympe::CustomCanvasEditor::GridToEditor ( const ImVec2 gridPos) const
overridevirtual

Transform grid space to editor space.

Adds pan offset back (keeps zoom): editor = grid + pan

Implements Olympe::ICanvasEditor.

Definition at line 81 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), and m_canvasOffset.

+ Here is the call graph for this function:

◆ HandlePanning()

void Olympe::CustomCanvasEditor::HandlePanning ( )
private

Handle middle-mouse panning.

Definition at line 318 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), m_canvasOffset, m_isPanning, and m_lastMousePos.

Referenced by UpdateInputState().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ HandleZooming()

void Olympe::CustomCanvasEditor::HandleZooming ( )
private

Handle scroll wheel zooming.

Definition at line 341 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), m_scrollZoomSpeed, and ZoomBy().

Referenced by UpdateInputState().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsCanvasHovered()

bool Olympe::CustomCanvasEditor::IsCanvasHovered ( ) const
overridevirtual

Check if canvas is hovered.

Returns
True if mouse is over canvas

Implements Olympe::ICanvasEditor.

Definition at line 199 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), and IsPointInCanvas().

+ Here is the call graph for this function:

◆ IsGridVisible()

virtual bool Olympe::CustomCanvasEditor::IsGridVisible ( ) const
inlineoverridevirtual

Check if grid is visible.

Returns
True if grid will be rendered

Implements Olympe::ICanvasEditor.

Definition at line 208 of file CustomCanvasEditor.h.

References m_gridVisible.

◆ IsMinimapVisible()

bool Olympe::CustomCanvasEditor::IsMinimapVisible ( ) const
overridevirtual

Check if minimap is visible.

Returns
True if minimap will be rendered

Implements Olympe::ICanvasEditor.

Definition at line 232 of file CustomCanvasEditor.cpp.

References m_minimapRenderer.

◆ IsPointInCanvas()

bool Olympe::CustomCanvasEditor::IsPointInCanvas ( const ImVec2 screenPos) const
overridevirtual

Check if point is in canvas.

Parameters
screenPosPosition in screen space
Returns
True if within canvas bounds

Implements Olympe::ICanvasEditor.

Definition at line 187 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), m_canvasScreenPos, and m_canvasSize.

Referenced by IsCanvasHovered(), and UpdateInputState().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ PanBy()

virtual void Olympe::CustomCanvasEditor::PanBy ( const ImVec2 delta)
inlineoverridevirtual

Pan by delta.

Implements Olympe::ICanvasEditor.

Definition at line 126 of file CustomCanvasEditor.h.

References GetComponentTypeID_Static(), and m_canvasOffset.

+ Here is the call graph for this function:

◆ RenderGrid()

void Olympe::CustomCanvasEditor::RenderGrid ( CanvasGridRenderer::GridStylePreset  preset)
overridevirtual

Render grid.

Parameters
presetStyle preset

Implements Olympe::ICanvasEditor.

Definition at line 150 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), Olympe::CanvasGridRenderer::GetStylePreset(), m_canvasOffset, m_canvasScreenPos, m_canvasSize, m_canvasZoom, m_gridVisible, and Olympe::CanvasGridRenderer::RenderGrid().

+ Here is the call graph for this function:

◆ RenderMinimap()

void Olympe::CustomCanvasEditor::RenderMinimap ( )
overridevirtual

Render minimap overlay for custom canvas.

Uses CanvasMinimapRenderer for unified appearance

Implements Olympe::ICanvasEditor.

Definition at line 217 of file CustomCanvasEditor.cpp.

References m_canvasScreenPos, m_canvasSize, and m_minimapRenderer.

◆ ResetPan()

virtual void Olympe::CustomCanvasEditor::ResetPan ( )
inlineoverridevirtual

Reset pan to origin.

Implements Olympe::ICanvasEditor.

Definition at line 134 of file CustomCanvasEditor.h.

References GetComponentTypeID_Static(), and m_canvasOffset.

Referenced by ResetView().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ResetView()

virtual void Olympe::CustomCanvasEditor::ResetView ( )
inlineoverridevirtual

Reset view (pan and zoom)

Implements Olympe::ICanvasEditor.

Definition at line 176 of file CustomCanvasEditor.h.

References ResetPan(), and ResetZoom().

+ Here is the call graph for this function:

◆ ResetZoom()

virtual void Olympe::CustomCanvasEditor::ResetZoom ( )
inlineoverridevirtual

Reset zoom to 1.0x.

Implements Olympe::ICanvasEditor.

Definition at line 171 of file CustomCanvasEditor.h.

References m_canvasZoom.

Referenced by ResetView().

+ Here is the caller graph for this function:

◆ ScreenToCanvas()

ImVec2 Olympe::CustomCanvasEditor::ScreenToCanvas ( const ImVec2 screenPos) const
overridevirtual

Transform screen space to canvas space.

Includes zoom scaling: canvas = (screen - canvasScreenPos - pan) / zoom

Implements Olympe::ICanvasEditor.

Definition at line 57 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), m_canvasOffset, m_canvasScreenPos, and m_canvasZoom.

Referenced by GetCanvasVisibleBounds().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetCanvasScreenPos()

virtual void Olympe::CustomCanvasEditor::SetCanvasScreenPos ( const ImVec2 screenPos)
inlineoverridevirtual

Set canvas screen position (updates each frame)

Parameters
screenPosNew screen position

Implements Olympe::ICanvasEditor.

Definition at line 230 of file CustomCanvasEditor.h.

References GetComponentTypeID_Static(), and m_canvasScreenPos.

+ Here is the call graph for this function:

◆ SetCanvasSize()

virtual void Olympe::CustomCanvasEditor::SetCanvasSize ( const ImVec2 size)
inlineoverridevirtual

Set canvas size (updates each frame)

Parameters
sizeNew canvas size

Implements Olympe::ICanvasEditor.

Definition at line 236 of file CustomCanvasEditor.h.

References m_canvasSize.

◆ SetGridVisible()

void Olympe::CustomCanvasEditor::SetGridVisible ( bool  enabled)
overridevirtual

Set grid visibility.

Parameters
enabledTrue to show grid

Implements Olympe::ICanvasEditor.

Definition at line 167 of file CustomCanvasEditor.cpp.

References m_gridVisible.

◆ SetMiddleMousePanEnabled()

void Olympe::CustomCanvasEditor::SetMiddleMousePanEnabled ( bool  enabled)
inline

Enable/disable middle-mouse panning.

Parameters
enabledTrue to allow pan via middle mouse
Note
Default: enabled

Definition at line 342 of file CustomCanvasEditor.h.

References m_middleMousePanEnabled.

◆ SetMinimapPosition()

void Olympe::CustomCanvasEditor::SetMinimapPosition ( int  position)
overridevirtual

Set minimap position (corner)

Parameters
positionPosition enum (0=TopLeft, 1=TopRight, 2=BottomLeft, 3=BottomRight)

Implements Olympe::ICanvasEditor.

Definition at line 248 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), and m_minimapRenderer.

+ Here is the call graph for this function:

◆ SetMinimapSize()

void Olympe::CustomCanvasEditor::SetMinimapSize ( float  scale)
overridevirtual

Set minimap size ratio.

Parameters
scaleSize ratio (0.05 - 0.5)

Implements Olympe::ICanvasEditor.

Definition at line 237 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), and m_minimapRenderer.

+ Here is the call graph for this function:

◆ SetMinimapVisible()

void Olympe::CustomCanvasEditor::SetMinimapVisible ( bool  enabled)
overridevirtual

Enable/disable minimap.

Parameters
enabledTrue to show minimap

Implements Olympe::ICanvasEditor.

Definition at line 226 of file CustomCanvasEditor.cpp.

References m_minimapRenderer.

◆ SetPan()

virtual void Olympe::CustomCanvasEditor::SetPan ( const ImVec2 offset)
inlineoverridevirtual

Set pan offset directly.

Parameters
offsetNew pan offset

Implements Olympe::ICanvasEditor.

Definition at line 121 of file CustomCanvasEditor.h.

References GetComponentTypeID_Static(), and m_canvasOffset.

+ Here is the call graph for this function:

◆ SetScrollZoomEnabled()

void Olympe::CustomCanvasEditor::SetScrollZoomEnabled ( bool  enabled)
inline

Enable/disable scroll wheel zooming.

Parameters
enabledTrue to allow zoom via scroll wheel
Note
Default: enabled

Definition at line 349 of file CustomCanvasEditor.h.

References m_scrollZoomEnabled.

◆ SetScrollZoomSpeed()

void Olympe::CustomCanvasEditor::SetScrollZoomSpeed ( float  speed)
inline

Set scroll zoom speed (multiplier)

Parameters
speedZoom factor per scroll notch (default 1.1)
Note
Higher = faster zoom response

Definition at line 356 of file CustomCanvasEditor.h.

References m_scrollZoomSpeed.

◆ SetZoom()

void Olympe::CustomCanvasEditor::SetZoom ( float  scale,
const ImVec2 zoomCenter = nullptr 
)
overridevirtual

Set zoom level directly.

Parameters
scaleNew zoom scale (clamped to min/max)
zoomCenterOptional screen-space point to maintain visual position during zoom

If zoomCenter is provided, adjusts pan so that the point at zoomCenter maintains its visual position on screen after zoom changes.

Implements Olympe::ICanvasEditor.

Definition at line 91 of file CustomCanvasEditor.cpp.

References ClampZoom(), GetComponentTypeID_Static(), m_canvasOffset, m_canvasScreenPos, and m_canvasZoom.

Referenced by ZoomBy().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ UpdateInputState()

void Olympe::CustomCanvasEditor::UpdateInputState ( )
private

Update pan/zoom from current frame input.

Called in BeginRender()

Definition at line 284 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), HandlePanning(), HandleZooming(), IsPointInCanvas(), m_isPanning, m_lastMousePos, m_middleMousePanEnabled, and m_scrollZoomEnabled.

Referenced by BeginRender().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ UpdateMinimapNodes()

void Olympe::CustomCanvasEditor::UpdateMinimapNodes ( const std::vector< std::tuple< int, float, float, float, float > > &  nodes,
float  graphMinX,
float  graphMaxX,
float  graphMinY,
float  graphMaxY 
)
virtual

Update minimap with current graph data.

Parameters
nodesVector of (nodeId, posX, posY, width, height) tuples
graphMinXGraph bounds left
graphMaxXGraph bounds right
graphMinYGraph bounds top
graphMaxYGraph bounds bottom

Implements Olympe::ICanvasEditor.

Definition at line 263 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), and m_minimapRenderer.

+ Here is the call graph for this function:

◆ UpdateMinimapViewport()

void Olympe::CustomCanvasEditor::UpdateMinimapViewport ( float  viewMinX,
float  viewMaxX,
float  viewMinY,
float  viewMaxY,
float  graphMinX,
float  graphMaxX,
float  graphMinY,
float  graphMaxY 
)
virtual

Update minimap viewport from visible canvas area.

Implements Olympe::ICanvasEditor.

Definition at line 271 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), and m_minimapRenderer.

+ Here is the call graph for this function:

◆ ZoomBy()

void Olympe::CustomCanvasEditor::ZoomBy ( float  factor,
const ImVec2 zoomCenter = nullptr 
)
overridevirtual

Zoom by multiplier.

Parameters
factorZoom factor (1.1 = 10% zoom in, 0.9 = 10% zoom out)
zoomCenterOptional screen-space point to maintain visual position

Implements Olympe::ICanvasEditor.

Definition at line 118 of file CustomCanvasEditor.cpp.

References GetComponentTypeID_Static(), m_canvasZoom, and SetZoom().

Referenced by HandleZooming().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_canvasOffset

ImVec2 Olympe::CustomCanvasEditor::m_canvasOffset
private

◆ m_canvasScreenPos

ImVec2 Olympe::CustomCanvasEditor::m_canvasScreenPos
private

◆ m_canvasSize

ImVec2 Olympe::CustomCanvasEditor::m_canvasSize
private

◆ m_canvasZoom

float Olympe::CustomCanvasEditor::m_canvasZoom
private

◆ m_gridVisible

bool Olympe::CustomCanvasEditor::m_gridVisible
private

Definition at line 371 of file CustomCanvasEditor.h.

Referenced by IsGridVisible(), RenderGrid(), and SetGridVisible().

◆ m_isPanning

bool Olympe::CustomCanvasEditor::m_isPanning
private

Definition at line 378 of file CustomCanvasEditor.h.

Referenced by HandlePanning(), and UpdateInputState().

◆ m_lastMousePos

ImVec2 Olympe::CustomCanvasEditor::m_lastMousePos
private

Definition at line 377 of file CustomCanvasEditor.h.

Referenced by HandlePanning(), and UpdateInputState().

◆ m_maxZoom

float Olympe::CustomCanvasEditor::m_maxZoom
private

Definition at line 368 of file CustomCanvasEditor.h.

Referenced by ClampZoom(), and GetZoomLimits().

◆ m_middleMousePanEnabled

bool Olympe::CustomCanvasEditor::m_middleMousePanEnabled
private

Definition at line 379 of file CustomCanvasEditor.h.

Referenced by SetMiddleMousePanEnabled(), and UpdateInputState().

◆ m_minimapRenderer

std::unique_ptr<CanvasMinimapRenderer> Olympe::CustomCanvasEditor::m_minimapRenderer
private

◆ m_minZoom

float Olympe::CustomCanvasEditor::m_minZoom
private

Definition at line 367 of file CustomCanvasEditor.h.

Referenced by ClampZoom(), and GetZoomLimits().

◆ m_name

std::string Olympe::CustomCanvasEditor::m_name
private

Definition at line 360 of file CustomCanvasEditor.h.

Referenced by GetCanvasName().

◆ m_scrollZoomEnabled

bool Olympe::CustomCanvasEditor::m_scrollZoomEnabled
private

Definition at line 380 of file CustomCanvasEditor.h.

Referenced by SetScrollZoomEnabled(), and UpdateInputState().

◆ m_scrollZoomSpeed

float Olympe::CustomCanvasEditor::m_scrollZoomSpeed
private

Definition at line 381 of file CustomCanvasEditor.h.

Referenced by HandleZooming(), and SetScrollZoomSpeed().


The documentation for this class was generated from the following files: