Loading [MathJax]/extensions/tex2jax.js

Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Loading...
Searching...
No Matches
EdgeTypePatterns.h
Go to the documentation of this file.
1
32//edge type patterns:
33//FOUR TYPE LEVELS:
34//primary holds information about generalization/association,...
35//secondary about merger edges,...
36//user edge types can be set locally
37
38#pragma once
39
40namespace ogdf {
41
42using edgeType = long long;
43
45 Primary = 0x0000000f,
46 Secondary = 0x000000f0,
47 Tertiary = 0x00000f00,
48 Fourth = 0x0000f000,
49 User = 0xff000000,
50 All = 0xffffffff
51}; // attention sign, 7fffffff
52
54 return lhs & static_cast<edgeType>(rhs);
55}
56
58 return static_cast<edgeType>(lhs) & rhs;
59}
60
64
66 //primary types (should be disjoint bits)
67 PrimAssociation = 0x1,
69 PrimDependency = 0x4,
70 //secondary types: reason of insertion (should be disjoint types, but not bits,
71 //but may not completely cover others that are allowed to be set together)
72 //preliminary: setsecondarytype deletes old type
73 //edge in Expansion, dissection edge, face splitter, cluster boundary
74 SecExpansion = 0x1,
75 SecDissect = 0x2,
76 SecFaceSplitter = 0x3,
77 SecCluster = 0x4,
78 SecClique, //the boundaries
79 //tertiary types: special types
80 //merger edge, vertical in hierarchy, alignment, association class connnection
81 Merger = 0x1,
82 Vertical = 0x2,
83 Align = 0x3,
84 AssClass = 0x8,
85 //fourth types: relation of nodes
86 //direct neighbours in hierarchy = brother, neighbour = halfbrother
87 //same level = cousin, to merger = ToMerger, from Merger = FromMerger
88 Brother = 0x1,
89 HalfBrother = 0x2,
90 Cousin = 0x3,
91 //fifth level types
92 FifthToMerger = 0x1,
93 FifthFromMerger = 0x2
94 //user type hint: what you have done with the edge, e.g. brother edge
95 //that is embedded crossing free and should be drawn bend free
96};
97
99 return lhs & static_cast<edgeType>(rhs);
100}
101
103 return lhs == static_cast<edgeType>(rhs);
104}
105
107 Primary = 0,
108 Secondary = 4,
109 Tertiary = 8,
110 Fourth = 12,
111 Fifth = 16,
112 User = 24
113};
114
116 return lhs >> static_cast<edgeType>(rhs);
117}
118
122
124 return static_cast<edgeType>(lhs) << static_cast<edgeType>(rhs);
125}
126
127}
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.
std::istream & operator>>(std::istream &is, TokenIgnorer token)
std::ostream & operator<<(std::ostream &os, const ogdf::Array< E, INDEX > &a)
Prints array a to output stream os.
Definition Array.h:978
long long edgeType
bool operator==(const Tuple2< E1, E2 > &t1, const Tuple2< E1, E2 > &t2)
Equality operator for 2-tuples.
Definition tuples.h:80
int operator&(int lhs, UMLOpt rhs)
Definition OrthoRep.h:59