62 lhs +=
static_cast<int>(rhs);
109 size_t size()
const {
return m_len; }
124 void set(
char c,
size_t n) {
131 init(
static_cast<int>(
obt), n);
154 bs.m_pBend =
nullptr;
163 char*
temp =
new char[m_len +
bs.m_len + 1];
171 if (m_pBend !=
nullptr) {
172 const char*
str = m_pBend;
173 while ((*p++ = *
str++) != 0) {
182 const char*
str1 =
bs.m_pBend;
183 while ((*p++ = *
str1++) != 0) {
198 if (
bs.size() == 0) {
201 os <<
"\"" <<
bs.m_pBend <<
"\"";
235 m_nAttached[0] = m_nAttached[1] = 0;
240 int nGen = (m_adjGen ==
nullptr) ? 0 : 1;
241 return nGen + m_nAttached[0] + m_nAttached[1];
246 os <<
"{ " <<
si.m_nAttached[0] <<
", " <<
si.m_adjGen <<
", " <<
si.m_nAttached[1]
269 m_corner[0] = m_corner[1] = m_corner[2] = m_corner[3] =
nullptr;
298 operator const Graph&()
const {
return *m_pE; }
381 static char flip(
char c) {
return (c ==
'0') ?
'1' :
'0'; }
385 return static_cast<OrthoDir>((
static_cast<int>(
d) + 2) & 3);
390 return static_cast<OrthoDir>((
static_cast<int>(
d) + 1) & 3);
395 return static_cast<OrthoDir>((
static_cast<int>(
d) + 3) & 3);
401 os << e <<
": src angle " <<
op.angle(e->adjSource()) <<
" bend "
402 <<
op.bend(e->adjSource()) <<
"\n"
403 <<
" tgt angle " <<
op.angle(e->adjTarget()) <<
" bend " <<
op.bend(e->adjTarget())
declaration and implementation of FaceArray class
Declaration of graph copy classes.
Class for adjacency list elements.
Dynamic arrays indexed with adjacency entries.
An array that keeps track of the number of inserted elements; also usable as an efficient stack.
Represents the bends on an edge e consisting of vertical and horizontal segments.
const char * toString() const
BendString & operator+=(const BendString &bs)
BendString & operator+=(const char *str)
BendString & operator=(BendString &&bs)
BendString(BendString &&bs)
void init(const char *str)
char & operator[](size_t i)
char operator[](size_t i) const
void set(char c, size_t n)
BendString & operator=(const BendString &bs)
void init(const BendString &bs)
void set(OrthoBendType obt, size_t n)
BendString(char c, size_t n)
friend std::ostream & operator<<(std::ostream &os, const BendString &bs)
void set(const char *str)
BendString(const BendString &bs)
BendString(const char *str)
void init(char c, size_t n)
Combinatorial embeddings of planar graphs with modification functionality.
Dynamic arrays indexed with edges.
Class for the representation of edges.
Data type for general directed graphs (adjacency list representation).
internal::GraphObjectContainer< EdgeElement > edges
The container containing all edge objects.
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
Orthogonal representation of an embedded graph.
static OrthoDir oppDir(OrthoDir d)
Returns the opposite OrthoDir.
AdjEntryArray< OrthoDir > m_dir
adjEntry alignAdjEntry() const
OrthoDir direction(adjEntry adj) const
NodeArray< VertexInfoUML * > m_umlCageInfo
void undissect(bool align=false)
void dissect2(PlanRep *PG=nullptr)
friend std::ostream & operator<<(std::ostream &os, const OrthoRep &op)
void orientate(const PlanRep &PG, OrthoDir preferedDir)
bool isOrientated() const
void init(CombinatorialEmbedding &E)
BendString & bend(adjEntry adj)
EdgeArray< bool > m_alignmentEdge
void orientate(adjEntry adj, OrthoDir dir)
bool isNormalized() const
adjEntry externalAdjEntry() const
const VertexInfoUML * cageInfo(node v) const
bool check(string &error) const
VertexInfoUML * cageInfo(node v)
AdjEntryArray< int > m_angle
static OrthoDir prevDir(OrthoDir d)
Returns the previous OrthoDir (in a clockwise manner)
ArrayBuffer< node > m_splitNodes
void gridDissect(PlanRep *PG)
const BendString & bend(adjEntry adj) const
int angle(adjEntry adj) const
OrthoRep(CombinatorialEmbedding &E)
static OrthoDir nextDir(OrthoDir d)
Returns the next OrthoDir (in a clockwise manner)
void orientateFace(adjEntry adj, OrthoDir dir)
CombinatorialEmbedding * m_pE
EdgeArray< bool > m_dissectionEdge
void computeCageInfoUML(const PlanRep &PG)
AdjEntryArray< BendString > m_bends
int & angle(adjEntry adj)
Planarized representations (of a connected component) of a graph.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
#define OGDF_NEW_DELETE
Makes the class use OGDF's memory allocator.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.
int operator|(int lhs, UMLOpt rhs)
int operator+=(int &lhs, UMLOpt rhs)
int operator~(UMLOpt rhs)
int operator&(int lhs, UMLOpt rhs)
Information about a side of a vertex in UML diagrams.
friend std::ostream & operator<<(std::ostream &os, const SideInfoUML &si)
int totalAttached() const
Further information about the cages of vertices in UML diagrams.
Declaration and implementation of class Tuple2, Tuple3 and Tuple4.