Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
GML.h
Go to the documentation of this file.
1
32#pragma once
33
34#include <ogdf/basic/Graph.h>
37
38#include <string>
39
40namespace ogdf {
41
42namespace gml {
43
44enum class ObjectType {
49 ListEnd,
50 Key,
51 Eof,
52 Error,
53};
54
55enum class Key {
56 Id,
57 Label,
58 Creator,
59 Name,
60 Graph,
61 Version,
63 Node,
64 Edge,
66 X,
67 Y,
68 Z,
69 W,
70 H,
71 Type,
72 Width,
73 Source,
74 Target,
75 Arrow,
76 Outline,
77 Point,
78 Bends,
81 Fill,
82 FillBg,
83 Cluster,
84 Root,
85 Vertex,
86 Color,
87 Height,
88 Stipple,
89 Pattern,
92 Weight, // Used for node weight and edge double weight
95};
96
97
98std::string toString(const Key& attr);
99std::string toString(const EdgeArrow& arrow);
100std::string toString(const Graph::NodeType& type);
101
102Key toKey(const std::string& str);
103EdgeArrow toArrow(const std::string& str);
104Graph::NodeType toNodeType(const std::string& str);
105
106}
107}
108
109// Implement hash for gml::Key so we can use it as a key in unordered_map.
110namespace std {
111template<>
112struct hash<ogdf::gml::Key> {
113 std::size_t operator()(const ogdf::gml::Key& t) const { return size_t(t); }
114};
115}
Includes declaration of graph class.
Declaration of class GraphAttributes which extends a Graph by additional attributes.
Declaration and implementation of HashArray class.
NodeType
The type of nodes.
Definition Graph_d.h:569
EdgeArrow
Types for edge arrows.
Definition graphics.h:141
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
std::string toString(const Key &attr)
Graph::NodeType toNodeType(const std::string &str)
ObjectType
Definition GML.h:44
EdgeArrow toArrow(const std::string &str)
Key toKey(const std::string &str)
The namespace for all OGDF objects.
Definition GML.h:110
std::size_t operator()(const ogdf::gml::Key &t) const
Definition GML.h:113