This example shows how to add per-vertex/per-edge properties to a graph, and how to access existing properties.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27#include <easy3d/core/graph.h>
28#include <easy3d/util/initializer.h>
29
34
36
37
38
39Graph* old_graph_from_previous_example() {
40
41 auto graph =
new Graph;
42
43
48
49
50 graph->add_edge(v0, v1);
51 graph->add_edge(v1, v2);
52 graph->add_edge(v2, v3);
53 graph->add_edge(v3, v0);
54 graph->add_edge(v1, v3);
55
56 return graph;
57}
58
59
60int main(int argc, char** argv) {
61
63
64 Graph* graph = old_graph_from_previous_example();
65
67
68
71
72
73 colors[v] = points[v];
74 std::cout << "vertex: " << v << ", position: " << points[v] << ", color: " << colors[v] << std::endl;
75 }
76
77
79 for (
auto e : graph->
edges()) {
81 std::cout << "edge: " << e << ", length: " << lengths[e] << std::endl;
82 }
83
84 delete graph;
85
86 return EXIT_SUCCESS;
87}
88
A Graph data structure with easy property management.
Definition graph.h:50
EdgeContainer edges() const
Returns the edge container for range-based for-loops.
Definition graph.h:1153
VertexContainer vertices() const
Returns the vertex container for range-based for-loops.
Definition graph.h:1126
VertexProperty< T > vertex_property(const std::string &name, const T t=T())
Gets or adds a vertex property.
Definition graph.h:978
VertexProperty< T > add_vertex_property(const std::string &name, const T t=T())
Adds a vertex property.
Definition graph.h:908
float edge_length(Edge e) const
Computes the length of an edge.
Definition graph.cpp:256
EdgeProperty< T > add_edge_property(const std::string &name, const T t=T())
Adds an edge property.
Definition graph.h:920
Definition collider.cpp:182
Vec< 3, float > vec3
A 3D point/vector of float type.
Definition types.h:44
void initialize(bool info_to_stdout, bool use_log_file, bool use_setting_file, const std::string &resource_dir)
Initialization of Easy3D.
Definition initializer.cpp:39
This type represents a vertex (internally it is basically an index).
Definition graph.h:132