Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
NodeTypePatterns.h
Go to the documentation of this file.
1
33//edge type patterns:
34//THREE TYPE LEVELS:
35//primary: holds information about structural/non-structural
36// nodes, this influences the handling in algorithms
37//secondary: type of node, e.g. flow node, simple label node, ...
38//user edge types can be set locally
39
40#pragma once
41
42namespace ogdf {
43
44using nodeType = long long;
45
47 Primary = 0x0000000f,
48 Secondary = 0x000000f0,
49 Tertiary = 0x00000f00,
50 Fourth = 0x0000f000,
51 User = 0xff000000,
52 All = 0xffffffff
53};
54
56 //primary types (should be disjoint bits)
57 PrimOriginal = 0x1,
58 PrimCopy = 0x2,
59 //secondary types: type of node (should be disjoint types, but not bits,
60 //but may not completely cover others that are allowed to be set together)
61 //preliminary: setsecondarytype deletes old type
62 //defines the structure of the diagram, e.g. as flow transmitter
63 SecStructural = 0x1,
64 SecNonStructural = 0x2,
65 //tertiary
66 //crossing node, high/low degree expander
67 TerCrossing = 0x1,
68 TerExpander = 0x2,
69 TerHDExpander = 0x6,
70 TerLDExpander = 0xA,
71 //fourth level types: special types
72 //flow node, simple label node, type label node, expansion corner node
73 FourFlow = 0x1,
74 FourLabel = 0x2,
75 FourType = 0x3,
76 FourCorner = 0x4
77
78 //user type hint: what you have done with the edge, e.g. brother edge
79 //that is embedded crossing free and should be drawn bend free
80};
81
83 Primary = 0,
84 Secondary = 4,
85 Tertiary = 8,
86 Fourth = 12,
87 Fifth = 16,
88 User = 24
89};
90
92 return static_cast<int>(lhs) << static_cast<int>(rhs);
93}
94
95}
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.
long long nodeType
std::ostream & operator<<(std::ostream &os, const ogdf::Array< E, INDEX > &a)
Prints array a to output stream os.
Definition Array.h:978