68 lhs +=
static_cast<int>(rhs);
115 size_t size()
const {
return m_len; }
123 void set(
const char* str) {
130 void set(
char c,
size_t n) {
137 init(
static_cast<int>(obt), n);
160 bs.m_pBend =
nullptr;
169 char* temp =
new char[m_len + bs.
m_len + 1];
171 m_len = m_len + bs.
m_len;
177 if (m_pBend !=
nullptr) {
178 const char* str = m_pBend;
179 while ((*p++ = *str++) != 0) {
189 while ((*p++ = *str1++) != 0) {
204 if (bs.
size() == 0) {
207 os <<
"\"" << bs.
m_pBend <<
"\"";
241 m_nAttached[0] = m_nAttached[1] = 0;
246 int nGen = (m_adjGen ==
nullptr) ? 0 : 1;
247 return nGen + m_nAttached[0] + m_nAttached[1];
275 m_corner[0] = m_corner[1] = m_corner[2] = m_corner[3] =
nullptr;
304 operator const Graph&()
const {
return *m_pE; }
387 static char flip(
char c) {
return (c ==
'0') ?
'1' :
'0'; }
391 return static_cast<OrthoDir>((
static_cast<int>(d) + 2) & 3);
396 return static_cast<OrthoDir>((
static_cast<int>(d) + 1) & 3);
401 return static_cast<OrthoDir>((
static_cast<int>(d) + 3) & 3);
407 os << e <<
": src angle " << op.
angle(e->adjSource()) <<
" bend "
408 << op.
bend(e->adjSource()) <<
"\n"
409 <<
" tgt angle " << op.
angle(e->adjTarget()) <<
" bend " << op.
bend(e->adjTarget())
Declaration and implementation of ArrayBuffer class.
Declaration of CombinatorialEmbedding and face.
Includes declaration of graph class.
Decralation of GraphElement and GraphList classes.
Basic declarations, included by all source files.
Class for adjacency list elements.
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.
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.
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.
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
RegisteredArray for nodes, edges and adjEntries of a graph.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / 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.
Declaration of memory manager for allocating small pieces of memory.
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.