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

Unified minimap renderer for standardized appearance. More...

#include <CanvasMinimapRenderer.h>

+ Collaboration diagram for Olympe::CanvasMinimapRenderer:

Public Member Functions

 CanvasMinimapRenderer ()
 
virtual ~CanvasMinimapRenderer ()=default
 
void SetVisible (bool visible)
 Set minimap visibility.
 
bool IsVisible () const
 Check if minimap should be rendered.
 
void SetSize (float ratio)
 Set minimap size as ratio of canvas (0.05 - 0.5)
 
float GetSize () const
 Get current size ratio.
 
void SetPosition (MinimapPosition pos)
 Set minimap corner position.
 
MinimapPosition GetPosition () const
 Get current position.
 
void UpdateNodes (const std::vector< std::tuple< int, float, float, float, float > > &nodes, float graphMinX, float graphMaxX, float graphMinY, float graphMaxY)
 Update node positions from raw graph data.
 
void UpdateViewport (float viewMinX, float viewMaxX, float viewMinY, float viewMaxY, float graphMinX, float graphMaxX, float graphMinY, float graphMaxY)
 Update visible viewport.
 
void RenderImNodes () const
 Render minimap using ImNodes native API.
 
void RenderCustom (const ImVec2 &canvasScreenPos, const ImVec2 &canvasSize) const
 Render minimap using custom ImGui drawing.
 
const std::vector< MinimapNodeData > & GetNormalisedNodes () const
 Get normalised node positions for custom rendering.
 
const MinimapViewportDataGetNormalisedViewport () const
 Get normalised viewport rectangle for custom rendering.
 
void SetBackgroundColor (ImU32 color)
 Set minimap background color (RGBA)
 
void SetNodeColor (ImU32 color)
 Set minimap node color (RGBA)
 
void SetViewportColor (ImU32 color)
 Set minimap viewport rectangle color (RGBA)
 

Static Public Attributes

static constexpr float DEFAULT_WIDTH = 200.0f
 
static constexpr float DEFAULT_HEIGHT = 150.0f
 

Static Private Member Functions

static float NormaliseCoord (float value, float minVal, float maxVal)
 

Private Attributes

bool m_visible
 
float m_sizeRatio
 0.05 - 0.5 ratio of canvas
 
MinimapPosition m_position
 
std::vector< MinimapNodeDatam_normalisedNodes
 
MinimapViewportData m_normalisedViewport
 
ImU32 m_backgroundColor
 
ImU32 m_nodeColor
 
ImU32 m_viewportColor
 

Detailed Description

Unified minimap renderer for standardized appearance.

Typical usage:

minimap.SetSize(0.15f); // 15% of canvas
// Before rendering:
minimap.UpdateViewport(viewX, viewY, viewW, viewH, graphBounds);
// During render:
if (minimap.IsVisible())
{
minimap.RenderCustom(drawList, canvasScreenPos, canvasSize);
// OR for ImNodes:
minimap.RenderImNodes();
}
ComponentTypeID GetComponentTypeID_Static()
Definition ECS_Entity.h:56
Unified minimap renderer for standardized appearance.
void SetSize(float ratio)
Set minimap size as ratio of canvas (0.05 - 0.5)

Definition at line 90 of file CanvasMinimapRenderer.h.

Constructor & Destructor Documentation

◆ CanvasMinimapRenderer()

Olympe::CanvasMinimapRenderer::CanvasMinimapRenderer ( )

Definition at line 16 of file CanvasMinimapRenderer.cpp.

◆ ~CanvasMinimapRenderer()

virtual Olympe::CanvasMinimapRenderer::~CanvasMinimapRenderer ( )
virtualdefault

Member Function Documentation

◆ GetNormalisedNodes()

const std::vector< MinimapNodeData > & Olympe::CanvasMinimapRenderer::GetNormalisedNodes ( ) const

Get normalised node positions for custom rendering.

Definition at line 220 of file CanvasMinimapRenderer.cpp.

References m_normalisedNodes.

◆ GetNormalisedViewport()

const MinimapViewportData & Olympe::CanvasMinimapRenderer::GetNormalisedViewport ( ) const

Get normalised viewport rectangle for custom rendering.

Definition at line 225 of file CanvasMinimapRenderer.cpp.

References m_normalisedViewport.

◆ GetPosition()

MinimapPosition Olympe::CanvasMinimapRenderer::GetPosition ( ) const

Get current position.

Definition at line 56 of file CanvasMinimapRenderer.cpp.

References m_position.

◆ GetSize()

float Olympe::CanvasMinimapRenderer::GetSize ( ) const

Get current size ratio.

Definition at line 46 of file CanvasMinimapRenderer.cpp.

References m_sizeRatio.

◆ IsVisible()

bool Olympe::CanvasMinimapRenderer::IsVisible ( ) const

Check if minimap should be rendered.

Definition at line 35 of file CanvasMinimapRenderer.cpp.

References m_visible.

◆ NormaliseCoord()

float Olympe::CanvasMinimapRenderer::NormaliseCoord ( float  value,
float  minVal,
float  maxVal 
)
staticprivate

Definition at line 65 of file CanvasMinimapRenderer.cpp.

References GetComponentTypeID_Static().

Referenced by UpdateNodes(), and UpdateViewport().

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

◆ RenderCustom()

void Olympe::CanvasMinimapRenderer::RenderCustom ( const ImVec2 canvasScreenPos,
const ImVec2 canvasSize 
) const

Render minimap using custom ImGui drawing.

Parameters
canvasScreenPosTop-left of canvas on screen
canvasSizeCanvas dimensions in screen pixels

Definition at line 140 of file CanvasMinimapRenderer.cpp.

References Olympe::BottomLeft, Olympe::BottomRight, GetComponentTypeID_Static(), Olympe::MinimapViewportData::h, m_backgroundColor, m_nodeColor, m_normalisedNodes, m_normalisedViewport, m_position, m_sizeRatio, m_viewportColor, m_visible, Olympe::TopLeft, Olympe::TopRight, Olympe::MinimapViewportData::w, Olympe::MinimapViewportData::x, and Olympe::MinimapViewportData::y.

+ Here is the call graph for this function:

◆ RenderImNodes()

void Olympe::CanvasMinimapRenderer::RenderImNodes ( ) const

Render minimap using ImNodes native API.

Must be called BEFORE ImNodes::EndNodeEditor()

Definition at line 130 of file CanvasMinimapRenderer.cpp.

References GetComponentTypeID_Static(), m_position, m_sizeRatio, and m_visible.

+ Here is the call graph for this function:

◆ SetBackgroundColor()

void Olympe::CanvasMinimapRenderer::SetBackgroundColor ( ImU32  color)

Set minimap background color (RGBA)

Definition at line 234 of file CanvasMinimapRenderer.cpp.

References m_backgroundColor.

◆ SetNodeColor()

void Olympe::CanvasMinimapRenderer::SetNodeColor ( ImU32  color)

Set minimap node color (RGBA)

Definition at line 239 of file CanvasMinimapRenderer.cpp.

References m_nodeColor.

◆ SetPosition()

void Olympe::CanvasMinimapRenderer::SetPosition ( MinimapPosition  pos)

Set minimap corner position.

Definition at line 51 of file CanvasMinimapRenderer.cpp.

References GetComponentTypeID_Static(), and m_position.

+ Here is the call graph for this function:

◆ SetSize()

void Olympe::CanvasMinimapRenderer::SetSize ( float  ratio)

Set minimap size as ratio of canvas (0.05 - 0.5)

Definition at line 40 of file CanvasMinimapRenderer.cpp.

References GetComponentTypeID_Static(), and m_sizeRatio.

+ Here is the call graph for this function:

◆ SetViewportColor()

void Olympe::CanvasMinimapRenderer::SetViewportColor ( ImU32  color)

Set minimap viewport rectangle color (RGBA)

Definition at line 244 of file CanvasMinimapRenderer.cpp.

References m_viewportColor.

◆ SetVisible()

void Olympe::CanvasMinimapRenderer::SetVisible ( bool  visible)

Set minimap visibility.

Definition at line 30 of file CanvasMinimapRenderer.cpp.

References m_visible.

◆ UpdateNodes()

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

Update node positions from raw graph data.

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

Definition at line 80 of file CanvasMinimapRenderer.cpp.

References GetComponentTypeID_Static(), m_normalisedNodes, Olympe::MinimapNodeData::nodeId, and NormaliseCoord().

+ Here is the call graph for this function:

◆ UpdateViewport()

void Olympe::CanvasMinimapRenderer::UpdateViewport ( float  viewMinX,
float  viewMaxX,
float  viewMinY,
float  viewMaxY,
float  graphMinX,
float  graphMaxX,
float  graphMinY,
float  graphMaxY 
)

Update visible viewport.

Parameters
viewMinXLeft edge of visible area (graph space)
viewMaxXRight edge of visible area (graph space)
viewMinYTop edge of visible area (graph space)
viewMaxYBottom edge of visible area (graph space)
graphMinXGraph bounds left edge
graphMaxXGraph bounds right edge
graphMinYGraph bounds top edge
graphMaxYGraph bounds bottom edge

Definition at line 110 of file CanvasMinimapRenderer.cpp.

References GetComponentTypeID_Static(), Olympe::MinimapViewportData::h, m_normalisedViewport, NormaliseCoord(), Olympe::MinimapViewportData::w, Olympe::MinimapViewportData::x, and Olympe::MinimapViewportData::y.

+ Here is the call graph for this function:

Member Data Documentation

◆ DEFAULT_HEIGHT

constexpr float Olympe::CanvasMinimapRenderer::DEFAULT_HEIGHT = 150.0f
staticconstexpr

Definition at line 95 of file CanvasMinimapRenderer.h.

◆ DEFAULT_WIDTH

constexpr float Olympe::CanvasMinimapRenderer::DEFAULT_WIDTH = 200.0f
staticconstexpr

Definition at line 94 of file CanvasMinimapRenderer.h.

◆ m_backgroundColor

ImU32 Olympe::CanvasMinimapRenderer::m_backgroundColor
private

Definition at line 232 of file CanvasMinimapRenderer.h.

Referenced by RenderCustom(), and SetBackgroundColor().

◆ m_nodeColor

ImU32 Olympe::CanvasMinimapRenderer::m_nodeColor
private

Definition at line 233 of file CanvasMinimapRenderer.h.

Referenced by RenderCustom(), and SetNodeColor().

◆ m_normalisedNodes

std::vector<MinimapNodeData> Olympe::CanvasMinimapRenderer::m_normalisedNodes
private

Definition at line 228 of file CanvasMinimapRenderer.h.

Referenced by GetNormalisedNodes(), RenderCustom(), and UpdateNodes().

◆ m_normalisedViewport

MinimapViewportData Olympe::CanvasMinimapRenderer::m_normalisedViewport
private

Definition at line 229 of file CanvasMinimapRenderer.h.

Referenced by GetNormalisedViewport(), RenderCustom(), and UpdateViewport().

◆ m_position

MinimapPosition Olympe::CanvasMinimapRenderer::m_position
private

Definition at line 225 of file CanvasMinimapRenderer.h.

Referenced by GetPosition(), RenderCustom(), RenderImNodes(), and SetPosition().

◆ m_sizeRatio

float Olympe::CanvasMinimapRenderer::m_sizeRatio
private

0.05 - 0.5 ratio of canvas

Definition at line 224 of file CanvasMinimapRenderer.h.

Referenced by GetSize(), RenderCustom(), RenderImNodes(), and SetSize().

◆ m_viewportColor

ImU32 Olympe::CanvasMinimapRenderer::m_viewportColor
private

Definition at line 234 of file CanvasMinimapRenderer.h.

Referenced by RenderCustom(), and SetViewportColor().

◆ m_visible

bool Olympe::CanvasMinimapRenderer::m_visible
private

Definition at line 223 of file CanvasMinimapRenderer.h.

Referenced by IsVisible(), RenderCustom(), RenderImNodes(), and SetVisible().


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