Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
ParticleInfo.h
Go to the documentation of this file.
1
32#pragma once
33
34#include <ogdf/basic/Graph.h>
35#include <ogdf/basic/List.h>
36#include <ogdf/basic/basic.h>
37#include <ogdf/basic/comparer.h>
38
39#include <ostream>
40
41namespace ogdf {
42namespace energybased {
43namespace fmmm {
44
48 friend std::ostream& operator<<(std::ostream& output, const ParticleInfo& A) {
49 output << " node_index " << A.vertex->index() << " x_y_coord " << A.x_y_coord
50 << (A.marked ? " marked " : " unmarked ") << " sublist_ptr ";
51 if (A.subList_ptr == nullptr) {
52 output << "nullptr";
53 } else {
54 output << A.subList_ptr;
55 }
56 return output;
57 }
58
59#if 0
61 friend std::istream &operator>> (std::istream & input, ParticleInfo & A)
62 {
63 input >> A;
64 return input;
65 }
66#endif
67
68public:
71 : vertex(nullptr)
72 , x_y_coord(0)
73 , cross_ref_item(nullptr)
74 , subList_ptr(nullptr)
75 , copy_item(nullptr)
76 , marked(false)
77 , tmp_item(nullptr) { }
78
79 void set_vertex(node v) { vertex = v; }
80
81 void set_x_y_coord(double c) { x_y_coord = c; }
82
83 void set_cross_ref_item(ListIterator<ParticleInfo> it) { cross_ref_item = it; }
84
85 void set_subList_ptr(List<ParticleInfo>* ptr) { subList_ptr = ptr; }
86
87 void set_copy_item(ListIterator<ParticleInfo> it) { copy_item = it; }
88
89 void mark() { marked = true; }
90
91 void unmark() { marked = false; }
92
94
95 node get_vertex() const { return vertex; }
96
97 double get_x_y_coord() const { return x_y_coord; }
98
99 ListIterator<ParticleInfo> get_cross_ref_item() const { return cross_ref_item; }
100
101 List<ParticleInfo>* get_subList_ptr() const { return subList_ptr; }
102
103 ListIterator<ParticleInfo> get_copy_item() const { return copy_item; }
104
105 bool is_marked() const { return marked; }
106
108
109private:
111 double x_y_coord;
112
118
123 bool marked;
124
129};
130
131OGDF_DECLARE_COMPARER(ParticleInfoComparer, ParticleInfo, double, x.get_x_y_coord());
132
133}
134}
135}
Includes declaration of graph class.
Declaration of doubly linked lists and iterators.
Basic declarations, included by all source files.
Doubly linked lists (maintaining the length of the list).
Definition List.h:1451
Encapsulates a pointer to a list element.
Definition List.h:113
Class for the representation of nodes.
Definition Graph_d.h:241
Helping data structure for building up the reduced quad tree by NMM.
ListIterator< ParticleInfo > get_tmp_cross_ref_item() const
void set_cross_ref_item(ListIterator< ParticleInfo > it)
node vertex
the vertex of G that is associated with this attributes
friend std::ostream & operator<<(std::ostream &output, const ParticleInfo &A)
Output stream for ParticleInfo.
ListIterator< ParticleInfo > copy_item
the item of this entry in the copy List
void set_subList_ptr(List< ParticleInfo > *ptr)
List< ParticleInfo > * get_subList_ptr() const
ListIterator< ParticleInfo > get_copy_item() const
ListIterator< ParticleInfo > tmp_item
A temporary item that is used to construct the cross references for the copy_Lists and the subLists.
List< ParticleInfo > * subList_ptr
Points to the subList of L_x(L_y) where the actual entry of ParticleInfo has to be stored.
ListIterator< ParticleInfo > cross_ref_item
the Listiterator of the ParticleInfo-Element that containes the vertex in the List storing the other ...
void set_tmp_cross_ref_item(ListIterator< ParticleInfo > it)
bool marked
indicates if this ParticleInfo object is marked or not
void set_copy_item(ListIterator< ParticleInfo > it)
ListIterator< ParticleInfo > get_cross_ref_item() const
Declarations for Comparer objects.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
Definition config.h:117
#define OGDF_DECLARE_COMPARER(NAME, TYPE, NUMBER, GET_X_ATTR)
Declares a class NAME that extends from ogdf::GenericComparer.
Definition comparer.h:438
The namespace for all OGDF objects.