Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
generate_graph.H File Reference

Graph visualization and output generation utilities. More...

#include <fstream>
#include <tpl_dynArray.H>
#include <tpl_sort_utils.H>
#include <tpl_graph.H>
#include <topological_sort.H>
Include dependency graph for generate_graph.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Aleph::Dft_Node_Attr< GT >
 
struct  Aleph::Dft_Arc_Attr< GT >
 
struct  Aleph::To_Graphviz< GT, Node_Attr, Arc_Attr, SN, SA >
 Functor class for generating Graphviz DOT specifications. More...
 
struct  Aleph::Dummy_Attr< GT >
 
struct  Aleph::Generate_Graphviz< GT, Write_Node, Write_Arc, Shade_Node, Shade_Arc, Dashed_Node, Dashed_Arc, SA, SN >
 Functor for generating Graphviz specifications. More...
 
struct  Aleph::__Shade_Node< GT >
 
struct  Aleph::__Shade_Arc< GT >
 

Namespaces

namespace  Aleph
 Main namespace for Aleph-w library functions.
 

Functions

template<class GT , class SA >
static bool Aleph::is_there_a_double_arc (const GT *g, typename GT::Node *src, typename GT::Node *tgt) noexcept
 
template<class GT >
static int Aleph::search_node (DynArray< typename GT::Node * > &nodes, typename GT::Node *p) noexcept
 
template<class GT , class Write_Node , class Write_Arc , class Shade_Node , class Shade_Arc , class SA >
void Aleph::generate_graphpic (const GT &g, const double &xdist, const double &ydist, std::ostream &output)
 Generate a graphpic specification for graph visualization.
 
template<class GT , class Write_Node , class Write_Arc , class Shade_Node , class Shade_Arc , class Dashed_Node , class Dashed_Arc , class SA , class SN >
void Aleph::generate_graphviz (const GT &g, std::ostream &output, const std::string &rankdir="TB", float ranksep=0.2, float nodesep=0.2)
 Generate a Graphviz DOT specification for graph visualization.
 
template<class GT , class Node_Attr , class Arc_Attr , class SN , class SA >
void Aleph::generate_graphviz (const GT &g, std::ostream &out, Node_Attr node_attr=Node_Attr(), Arc_Attr arc_attr=Arc_Attr(), const std::string &rankdir="TB")
 Generate Graphviz DOT output with custom attribute functors.
 
template<class GT , class Node_Attr , class Arc_Attr , class SN , class SA >
void Aleph::digraph_graphviz (const GT &g, std::ostream &out, Node_Attr node_attr=Node_Attr(), Arc_Attr arc_attr=Arc_Attr(), const std::string &rankdir="LR")
 Generate Graphviz DOT output specifically for digraphs.
 
template<class GT , class Node_Attr , class Arc_Attr , class SN , class SA >
size_t Aleph::rank_graphviz (const GT &g, std::ostream &out, Node_Attr node_attr=Node_Attr(), Arc_Attr arc_attr=Arc_Attr(), const std::string &rankdir="LR")
 Generate Graphviz DOT output with topological ranking.
 
template<class GT , class Write_Node , class Write_Arc , class Shade_Node , class Shade_Arc , class SA >
void Aleph::generate_cross_graph (GT &g, const size_t &nodes_by_level, const double &xdist, const double &ydist, std::ostream &out)
 Generate a cross-graph layout specification for graphpic.
 
template<class GT , class Write_Node , class Write_Arc , class Shade_Node , class Shade_Arc >
void Aleph::generate_cross_graph (GT &g, const size_t &nodes_by_level, const double &xdist, const double &ydist, std::ostream &out)
 
template<class GT , class Write_Node , class Write_Arc , class Shade_Node , class Shade_Arc , class SA >
void Aleph::generate_net_graph (GT &g, const size_t &nodes_by_level, const double &xdist, const double &ydist, std::ostream &out)
 Generate a net-graph layout specification for graphpic.
 
template<class GT , class Write_Node , class Write_Arc , class Shade_Node , class Shade_Arc >
void Aleph::generate_net_graph (GT &g, const size_t &nodes_by_level, const double &xdist, const double &ydist, std::ostream &out)
 
template<class GT , class Write_Node , class Write_Arc , class SA >
void Aleph::generate_cross_graph (GT &g, const size_t &nodes_by_level, const double &xdist, const double &ydist, std::ostream &out)
 
template<class GT , class Write_Node , class Write_Arc , class SA >
void Aleph::generate_net_graph (GT &g, const size_t &nodes_by_level, const double &xdist, const double &ydist, std::ostream &out)
 
template<class GT , class Write_Node , class Write_Arc >
void Aleph::generate_cross_graph (GT &g, const size_t &nodes_by_level, const double &xdist, const double &ydist, std::ostream &out)
 
template<class GT , class Write_Node , class Write_Arc >
void Aleph::generate_net_graph (GT &g, const size_t &nodes_by_level, const double &xdist, const double &ydist, std::ostream &out)
 

Detailed Description

Graph visualization and output generation utilities.

This file provides functions for generating graph representations in various formats suitable for visualization tools and external processing.

Supported Formats

  • DOT (Graphviz): For generating PNG, SVG, PDF visualizations
  • Custom text formats: For debugging and logging

Key Functions

DOT Format Example

The DOT format is used by Graphviz tools (dot, neato, etc.):

Usage Example

List_Graph<Node, Arc> g;
// ... build graph ...
// Generate DOT file
std::ofstream out("graph.dot");
generate_dot(g, out);
out.close();
// Then run: dot -Tpng graph.dot -o graph.png

Special Graph Generators

// Create path P_5: 0-1-2-3-4
auto path = generate_path<Graph>(5);
// Create cycle C_6: 0-1-2-3-4-5-0
auto cycle = generate_cycle<Graph>(6);
// Create complete graph K_4
auto complete = generate_complete<Graph>(4);
See also
random_graph.H For random graph generation
tpl_graph.H Graph data structures
Author
Leandro Rabindranath León

Definition in file generate_graph.H.