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::ComponentNodeRenderer Class Reference

#include <ComponentNodeRenderer.h>

+ Collaboration diagram for Olympe::ComponentNodeRenderer:

Public Member Functions

 ComponentNodeRenderer ()
 
 ~ComponentNodeRenderer ()
 
void Initialize ()
 
void Shutdown ()
 
void SetCanvasTransform (const Vector &offset, float zoom)
 
Vector GetCanvasOffset () const
 
float GetCanvasZoom () const
 
void SetCanvasScreenPos (const ImVec2 &screenPos)
 
ImVec2 GetCanvasScreenPos () const
 
void RenderNode (const ComponentNode &node)
 
void RenderNodes (const EntityPrefabGraphDocument *document)
 
void RenderConnections (const EntityPrefabGraphDocument *document, int hoveredConnectionIndex=-1)
 
void RenderNodePorts (const ComponentNode &node)
 
bool IsPointInPort (const Vector &point, const ComponentNode &node, PortId &outPortId) const
 
void SetNodeStyle (const ComponentNodeStyle &style)
 
const ComponentNodeStyleGetNodeStyle () const
 
void SetNormalColor (const Vector &color)
 
void SetSelectedColor (const Vector &color)
 
void SetHoverColor (const Vector &color)
 
void SetDisabledColor (const Vector &color)
 
void SetTextColor (const Vector &color)
 
void SetBorderWidth (float width)
 
void SetCornerRadius (float radius)
 
bool IsPointInNode (const Vector &point, const ComponentNode &node) const
 
bool GetNodeBounds (const ComponentNode &node, Vector &outMin, Vector &outMax) const
 
float GetDistanceToConnection (const Vector &testPoint, const Vector &connectionStart, const Vector &connectionEnd, Vector *outClosestPoint=nullptr) const
 
void SetShowLabels (bool show)
 
bool GetShowLabels () const
 
void SetShowProperties (bool show)
 
bool GetShowProperties () const
 
void SetNodeScale (float scale)
 
float GetNodeScale () const
 

Private Member Functions

void RenderNodeBox (const ComponentNode &node)
 
void RenderNodeLabel (const ComponentNode &node)
 
void RenderConnectionLine (const Vector &from, const Vector &to, bool isHovered=false)
 
void RenderPort (const ComponentNode &node, const NodePort &port)
 
Vector GetNodeColor (const ComponentNode &node) const
 
Vector CanvasToScreen (const Vector &canvasPos) const
 
void UpdatePortPositions (ComponentNode &node) const
 

Private Attributes

ComponentNodeStyle m_style
 
bool m_showLabels = true
 
bool m_showProperties = true
 
float m_nodeScale = 1.0f
 
Vector m_canvasOffset
 
float m_canvasZoom = 1.0f
 
ImVec2 m_canvasScreenPos = ImVec2(0, 0)
 

Detailed Description

Definition at line 12 of file ComponentNodeRenderer.h.

Constructor & Destructor Documentation

◆ ComponentNodeRenderer()

Olympe::ComponentNodeRenderer::ComponentNodeRenderer ( )

◆ ~ComponentNodeRenderer()

Olympe::ComponentNodeRenderer::~ComponentNodeRenderer ( )

Definition at line 18 of file ComponentNodeRenderer.cpp.

Member Function Documentation

◆ CanvasToScreen()

Vector Olympe::ComponentNodeRenderer::CanvasToScreen ( const Vector canvasPos) const
private

Definition at line 35 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), m_canvasOffset, m_canvasScreenPos, m_canvasZoom, Vector::x, and Vector::y.

Referenced by GetDistanceToConnection(), IsPointInPort(), RenderConnectionLine(), RenderNodeBox(), RenderNodeLabel(), and RenderPort().

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

◆ GetCanvasOffset()

Vector Olympe::ComponentNodeRenderer::GetCanvasOffset ( ) const

Definition at line 29 of file ComponentNodeRenderer.cpp.

References m_canvasOffset.

◆ GetCanvasScreenPos()

ImVec2 Olympe::ComponentNodeRenderer::GetCanvasScreenPos ( ) const

Definition at line 33 of file ComponentNodeRenderer.cpp.

References m_canvasScreenPos.

◆ GetCanvasZoom()

float Olympe::ComponentNodeRenderer::GetCanvasZoom ( ) const

Definition at line 30 of file ComponentNodeRenderer.cpp.

References m_canvasZoom.

◆ GetDistanceToConnection()

float Olympe::ComponentNodeRenderer::GetDistanceToConnection ( const Vector testPoint,
const Vector connectionStart,
const Vector connectionEnd,
Vector outClosestPoint = nullptr 
) const

Definition at line 478 of file ComponentNodeRenderer.cpp.

References CanvasToScreen(), GetComponentTypeID_Static(), and Olympe::Vector.

+ Here is the call graph for this function:

◆ GetNodeBounds()

bool Olympe::ComponentNodeRenderer::GetNodeBounds ( const ComponentNode node,
Vector outMin,
Vector outMax 
) const

Definition at line 110 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static().

+ Here is the call graph for this function:

◆ GetNodeColor()

Vector Olympe::ComponentNodeRenderer::GetNodeColor ( const ComponentNode node) const
private

Definition at line 297 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static().

Referenced by RenderNodeBox().

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

◆ GetNodeScale()

float Olympe::ComponentNodeRenderer::GetNodeScale ( ) const

Definition at line 128 of file ComponentNodeRenderer.cpp.

References m_nodeScale.

◆ GetNodeStyle()

const ComponentNodeStyle & Olympe::ComponentNodeRenderer::GetNodeStyle ( ) const

Definition at line 89 of file ComponentNodeRenderer.cpp.

References m_style.

◆ GetShowLabels()

bool Olympe::ComponentNodeRenderer::GetShowLabels ( ) const

Definition at line 122 of file ComponentNodeRenderer.cpp.

References m_showLabels.

◆ GetShowProperties()

bool Olympe::ComponentNodeRenderer::GetShowProperties ( ) const

Definition at line 125 of file ComponentNodeRenderer.cpp.

References m_showProperties.

◆ Initialize()

void Olympe::ComponentNodeRenderer::Initialize ( )

Definition at line 20 of file ComponentNodeRenderer.cpp.

◆ IsPointInNode()

bool Olympe::ComponentNodeRenderer::IsPointInNode ( const Vector point,
const ComponentNode node 
) const

Definition at line 99 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), and Vector::x.

+ Here is the call graph for this function:

◆ IsPointInPort()

bool Olympe::ComponentNodeRenderer::IsPointInPort ( const Vector point,
const ComponentNode node,
PortId outPortId 
) const

Definition at line 388 of file ComponentNodeRenderer.cpp.

References CanvasToScreen(), GetComponentTypeID_Static(), Olympe::InvalidPortId, m_canvasZoom, m_nodeScale, and Vector::x.

+ Here is the call graph for this function:

◆ RenderConnectionLine()

void Olympe::ComponentNodeRenderer::RenderConnectionLine ( const Vector from,
const Vector to,
bool  isHovered = false 
)
private

Definition at line 246 of file ComponentNodeRenderer.cpp.

References CanvasToScreen(), and GetComponentTypeID_Static().

Referenced by RenderConnections().

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

◆ RenderConnections()

void Olympe::ComponentNodeRenderer::RenderConnections ( const EntityPrefabGraphDocument document,
int  hoveredConnectionIndex = -1 
)

Definition at line 67 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), RenderConnectionLine(), and Vector::x.

+ Here is the call graph for this function:

◆ RenderNode()

void Olympe::ComponentNodeRenderer::RenderNode ( const ComponentNode node)

Definition at line 43 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), m_showLabels, RenderNodeBox(), RenderNodeLabel(), and RenderNodePorts().

Referenced by RenderNodes().

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

◆ RenderNodeBox()

void Olympe::ComponentNodeRenderer::RenderNodeBox ( const ComponentNode node)
private

Definition at line 130 of file ComponentNodeRenderer.cpp.

References Olympe::ComponentNodeStyle::borderWidth, CanvasToScreen(), Olympe::ComponentNodeStyle::cornerRadius, GetComponentTypeID_Static(), GetNodeColor(), m_canvasZoom, m_nodeScale, m_style, Vector::x, Vector::y, and Vector::z.

Referenced by RenderNode().

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

◆ RenderNodeLabel()

void Olympe::ComponentNodeRenderer::RenderNodeLabel ( const ComponentNode node)
private

Definition at line 204 of file ComponentNodeRenderer.cpp.

References CanvasToScreen(), GetComponentTypeID_Static(), m_canvasZoom, m_nodeScale, m_showProperties, m_style, Olympe::ComponentNodeStyle::textColor, Vector::x, Vector::y, and Vector::z.

Referenced by RenderNode().

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

◆ RenderNodePorts()

void Olympe::ComponentNodeRenderer::RenderNodePorts ( const ComponentNode node)

Definition at line 302 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), and RenderPort().

Referenced by RenderNode().

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

◆ RenderNodes()

void Olympe::ComponentNodeRenderer::RenderNodes ( const EntityPrefabGraphDocument document)

Definition at line 53 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), and RenderNode().

+ Here is the call graph for this function:

◆ RenderPort()

void Olympe::ComponentNodeRenderer::RenderPort ( const ComponentNode node,
const NodePort port 
)
private

Definition at line 311 of file ComponentNodeRenderer.cpp.

References CanvasToScreen(), GetComponentTypeID_Static(), m_canvasZoom, m_nodeScale, and Vector::x.

Referenced by RenderNodePorts().

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

◆ SetBorderWidth()

void Olympe::ComponentNodeRenderer::SetBorderWidth ( float  width)

Definition at line 96 of file ComponentNodeRenderer.cpp.

References Olympe::ComponentNodeStyle::borderWidth, and m_style.

◆ SetCanvasScreenPos()

void Olympe::ComponentNodeRenderer::SetCanvasScreenPos ( const ImVec2 screenPos)

Definition at line 32 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), and m_canvasScreenPos.

+ Here is the call graph for this function:

◆ SetCanvasTransform()

void Olympe::ComponentNodeRenderer::SetCanvasTransform ( const Vector offset,
float  zoom 
)

Definition at line 23 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), m_canvasOffset, and m_canvasZoom.

+ Here is the call graph for this function:

◆ SetCornerRadius()

void Olympe::ComponentNodeRenderer::SetCornerRadius ( float  radius)

Definition at line 97 of file ComponentNodeRenderer.cpp.

References Olympe::ComponentNodeStyle::cornerRadius, and m_style.

◆ SetDisabledColor()

void Olympe::ComponentNodeRenderer::SetDisabledColor ( const Vector color)

Definition at line 94 of file ComponentNodeRenderer.cpp.

References Olympe::ComponentNodeStyle::disabledColor, and m_style.

◆ SetHoverColor()

void Olympe::ComponentNodeRenderer::SetHoverColor ( const Vector color)

Definition at line 93 of file ComponentNodeRenderer.cpp.

References Olympe::ComponentNodeStyle::hoverColor, and m_style.

◆ SetNodeScale()

void Olympe::ComponentNodeRenderer::SetNodeScale ( float  scale)

Definition at line 127 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), and m_nodeScale.

+ Here is the call graph for this function:

◆ SetNodeStyle()

void Olympe::ComponentNodeRenderer::SetNodeStyle ( const ComponentNodeStyle style)

Definition at line 88 of file ComponentNodeRenderer.cpp.

References m_style.

◆ SetNormalColor()

void Olympe::ComponentNodeRenderer::SetNormalColor ( const Vector color)

Definition at line 91 of file ComponentNodeRenderer.cpp.

References m_style, and Olympe::ComponentNodeStyle::normalColor.

◆ SetSelectedColor()

void Olympe::ComponentNodeRenderer::SetSelectedColor ( const Vector color)

Definition at line 92 of file ComponentNodeRenderer.cpp.

References m_style, and Olympe::ComponentNodeStyle::selectedColor.

◆ SetShowLabels()

void Olympe::ComponentNodeRenderer::SetShowLabels ( bool  show)

Definition at line 121 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), and m_showLabels.

+ Here is the call graph for this function:

◆ SetShowProperties()

void Olympe::ComponentNodeRenderer::SetShowProperties ( bool  show)

Definition at line 124 of file ComponentNodeRenderer.cpp.

References GetComponentTypeID_Static(), and m_showProperties.

+ Here is the call graph for this function:

◆ SetTextColor()

void Olympe::ComponentNodeRenderer::SetTextColor ( const Vector color)

Definition at line 95 of file ComponentNodeRenderer.cpp.

References m_style, and Olympe::ComponentNodeStyle::textColor.

◆ Shutdown()

void Olympe::ComponentNodeRenderer::Shutdown ( )

Definition at line 21 of file ComponentNodeRenderer.cpp.

◆ UpdatePortPositions()

void Olympe::ComponentNodeRenderer::UpdatePortPositions ( ComponentNode node) const
private

Definition at line 472 of file ComponentNodeRenderer.cpp.

Member Data Documentation

◆ m_canvasOffset

Vector Olympe::ComponentNodeRenderer::m_canvasOffset
private

Definition at line 77 of file ComponentNodeRenderer.h.

Referenced by CanvasToScreen(), GetCanvasOffset(), and SetCanvasTransform().

◆ m_canvasScreenPos

ImVec2 Olympe::ComponentNodeRenderer::m_canvasScreenPos = ImVec2(0, 0)
private

Definition at line 79 of file ComponentNodeRenderer.h.

Referenced by CanvasToScreen(), GetCanvasScreenPos(), and SetCanvasScreenPos().

◆ m_canvasZoom

float Olympe::ComponentNodeRenderer::m_canvasZoom = 1.0f
private

◆ m_nodeScale

float Olympe::ComponentNodeRenderer::m_nodeScale = 1.0f
private

◆ m_showLabels

bool Olympe::ComponentNodeRenderer::m_showLabels = true
private

Definition at line 74 of file ComponentNodeRenderer.h.

Referenced by GetShowLabels(), RenderNode(), and SetShowLabels().

◆ m_showProperties

bool Olympe::ComponentNodeRenderer::m_showProperties = true
private

Definition at line 75 of file ComponentNodeRenderer.h.

Referenced by GetShowProperties(), RenderNodeLabel(), and SetShowProperties().

◆ m_style

ComponentNodeStyle Olympe::ComponentNodeRenderer::m_style
private

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