Plasma Engine  2.0
Loading...
Searching...
No Matches
plDGMLGraph Class Reference

This class encapsulates building a DGML compatible graph. More...

#include <DGMLWriter.h>

Classes

struct  Connection
 
struct  Node
 
struct  NodeDesc
 
struct  PropertyType
 
struct  PropertyValue
 

Public Types

enum class  Direction : plUInt8 { TopToBottom , BottomToTop , LeftToRight , RightToLeft }
 
enum class  Layout : plUInt8 { Free , Tree , DependencyMatrix }
 
enum class  NodeShape : plUInt8 { None , Rectangle , RoundedRectangle , Button }
 
enum class  GroupType : plUInt8 { None , Expanded , Collapsed }
 
using NodeId = plUInt32
 
using PropertyId = plUInt32
 
using ConnectionId = plUInt32
 

Public Member Functions

 plDGMLGraph (Direction graphDirection=Direction::LeftToRight, Layout graphLayout=Layout::Tree)
 Constructor for the graph.
 
NodeId AddNode (plStringView sTitle, const NodeDesc *pDesc=nullptr)
 Adds a node to the graph. Adds a node to the graph and returns the node id which can be used to reference the node later to add connections etc.
 
NodeId AddGroup (plStringView sTitle, GroupType type, const NodeDesc *pDesc=nullptr)
 Adds a DGML node that can act as a group for other nodes.
 
void AddNodeToGroup (NodeId node, NodeId group)
 Inserts a node into an existing group node.
 
ConnectionId AddConnection (NodeId source, NodeId target, plStringView sLabel={})
 Adds a directed connection to the graph (an arrow pointing from source to target node).
 
PropertyId AddPropertyType (plStringView sName)
 Adds a property type. All properties currently use the data type 'string'.
 
void AddNodeProperty (NodeId node, PropertyId property, const plFormatString &fmt)
 Adds a property of the specified type with the given value to a node.
 

Protected Attributes

plHybridArray< Node, 16 > m_Nodes
 
plHybridArray< Connection, 32 > m_Connections
 
plHybridArray< PropertyType, 16 > m_PropertyTypes
 
Direction m_Direction
 
Layout m_Layout
 

Friends

class plDGMLGraphWriter
 

Detailed Description

This class encapsulates building a DGML compatible graph.


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