75 void reqlength(
double length) { userReqLength = length; }
152 for (i = 0; i < 9; i++) {
153 R[i] = std::numeric_limits<double>::max();
Declaration and implementation of class Array2D which implements dynamic two dimensional arrays.
Declaration and implementation of Array class and Array algorithms.
Declaration of CombinatorialEmbedding and face.
Declaration of interface for layout algorithms (class LayoutModule)
Declaration of doubly linked lists and iterators.
Declaration of a base class for planar representations of graphs and cluster graphs.
The parameterized class Array2D implements dynamic two-dimensional arrays.
The sections associated with each node.
void initialize()
Ri is radius of ith section.
Objects of this class are members of the containment heirarchy made in preprocessing stage of ImPrEd.
List< CCElement * > child
BertaultLayout()
Constructor, sets options to default values.
void compute(CCElement *element, PlanRep &PG, GraphAttributes &AG1, GraphCopy &G1)
Computes the surrounding edges from the data calculated so far.
bool impred
number of iterations to be performed
void f_Node_Attractive(node *v, node *j, GraphAttributes &AG)
Calculates the attractive force on node v due to node j and adds it to total force on v.
void preprocess(GraphAttributes &AG)
preprocessing for ImPrEd
BertaultLayout(double length, int number)
Constructor, with user defined values for required length and number of iterations.
void setImpred(bool option)
Sets impred option true or false.
double reqlength()
Returns the required length.
void r_Calc_On_Edge(node *v, edge *e, GraphAttributes &AG)
Calculates the radii of the zones of node v if node i lies on edge (a,b)
Array2D< bool > surr
sets the algorithm to ImPrEd when true
NodeArray< double > F_x
Sections associated with all nodes.
void f_Node_Repulsive(node *v, node *j, GraphAttributes &AG)
Calculates the repulsive force on node v due to node j and adds it to total force on v.
int iter_no
req_length is the required edge length
void labelling(GraphAttributes &AG)
labels the edges with weights which aids in surrounding edge computation
void reqlength(double length)
Sets the required length. If length <= 0, the average edge length will be used.
void iterno(int no)
Sets the number of iterations. If no <= 0, 10*n will be used.
void initPositions(GraphAttributes &AG, char c)
Set the initPositions of nodes.
void compute_I(node *v, edge *e, GraphAttributes &AG)
Computes the projection of node v on the edge (a,b)
NodeArray< double > F_y
Force in x direction.
int contained(CCElement *ele1, CCElement *ele2, GraphAttributes &PAG, PlanRep &PG)
Checks if the first connected component is within the second one. Returns -1 if not contained....
BertaultLayout(int number)
Constructor, with user defined values for number of iterations.
void r_Calc_Outside_Edge(node *v, edge *e, GraphAttributes &AG)
Calculates the radii of the zones of node v if node i does not lie on edge (a,b)
double userReqLength
Force in y direction.
double edgelength(GraphAttributes &GA)
Calculates the normalised standard deviation of edge lengths in the graph corresponding to AG....
void f_Edge(node *v, edge *e, GraphAttributes &AG)
Calculates the repulsive force on node v due to the edge on which node i lies and adds it to total fo...
double userIterNo
required edge length set by the user
void move(node *v, GraphAttributes &AG)
Moves the node v according to the forces Fx and Fy on it. Also ensures that movement is within the re...
double nodeDistribution(GraphAttributes &GA)
Gives a measure of the node distribution in the graph corresponding to AG. The lesser the value,...
double req_length
number of iterations set by the user
void crossingPlanarize(GraphAttributes &AG)
Inserts a node at each edge crossing in a GraphCopy and assigns weights to the new edges formed.
int insert(CCElement *new1, CCElement *node, GraphAttributes &PAG, PlanRep &PG)
Insert method for the data structure which stores the heirarchy of containment of Connected Component...
int iterno()
Returns the number of iterations.
int edgeCrossings(GraphAttributes &AG)
Calculates the edge crossings in the graph corresponding to AG. Node attributes required.
NodeArray< BertaultSections > sect
virtual void call(GraphAttributes &AG) override
The main call to the algorithm. AG should have nodeGraphics and EdgeGraphics attributes enabled.
bool i_On_Edge(edge *e, GraphAttributes &AG)
Returns true if node i lies on the edge (a,b)
Class for the representation of edges.
Stores additional attributes of a graph (like layout information).
Copies of graphs supporting edge splitting.
Interface of general layout algorithms.
Doubly linked lists (maintaining the length of the list).
void clear()
Removes all elements from the list.
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
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_NEW_DELETE
Makes the class use OGDF's memory allocator.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.
a structure which stores the projection of a node on an edge