abstract_graph_t Class Referenceabstract
Abstract graph interface. More...
#include <graph.hpp>
Inherits gdl_graph_t.
Inherited by mutable_graph_t.
Public Member Functions | |
void idaapi | clear (void) |
void idaapi | dump_graph (const char *header) const |
bool idaapi | calc_bounds (rect_t *r) |
void idaapi | calc_fitting_params (const rect_t &area, const rect_t &r, graph_location_info_t *gli, double max_zoom) |
bool idaapi | calc_fitting_params (const rect_t &area, graph_location_info_t *gli, double max_zoom) |
int idaapi | for_all_nodes_edges (graph_visitor_t &nev, bool visit_nodes=true) |
const edge_info_t *idaapi | get_edge_ports (edge_t e, point_t &s, point_t &d) const |
void idaapi | add_node_edges (edgevec_t &dlist, int node) |
const rect_t &idaapi | nrect (int n) const |
const edge_info_t *idaapi | get_edge (edge_t e) const |
virtual rect_t &idaapi | nrect (int n)=0 |
virtual edge_info_t *idaapi | get_edge (edge_t e)=0 |
virtual abstract_graph_t *idaapi | clone (void) const =0 |
bool idaapi | create_tree_layout (void) |
bool idaapi | create_circle_layout (point_t p, int radius) |
bool idaapi | create_polar_tree_layout (point_t p, int radius) |
bool idaapi | create_radial_tree_layout (point_t p, int radius) |
bool idaapi | create_orthogonal_layout (void) |
void | set_callback (hook_cb_t *_callback, void *_ud) |
ssize_t | vgrcall (int code, va_list va) |
ssize_t | grcall (int code,...) |
Public Member Functions inherited from gdl_graph_t | |
virtual char *idaapi | get_node_label (char *iobuf, int iobufsize, int n) const |
virtual void idaapi | print_graph_attributes (FILE *fp) const |
virtual bool idaapi | print_node (FILE *fp, int n) const |
virtual bool idaapi | print_edge (FILE *fp, int i, int j) const |
virtual void idaapi | print_node_attributes (FILE *fp, int n) const |
virtual int idaapi | size (void) const =0 |
virtual int idaapi | node_qty (void) const |
virtual bool idaapi | exists (int node) const |
virtual int idaapi | entry (void) const |
virtual int idaapi | exit (void) const |
virtual int idaapi | nsucc (int node) const =0 |
virtual int idaapi | npred (int node) const =0 |
virtual int idaapi | succ (int node, int i) const =0 |
virtual int idaapi | pred (int node, int i) const =0 |
virtual bool idaapi | empty (void) const |
virtual bgcolor_t idaapi | get_node_color (int n) const |
virtual bgcolor_t idaapi | get_edge_color (int i, int j) const |
void idaapi | gen_gdl (FILE *fp) const |
void idaapi | gen_gdl (const char *file) const |
size_t idaapi | nedge (int node, bool ispred) const |
int idaapi | edge (int node, int i, bool ispred) const |
int idaapi | front (void) |
node_iterator idaapi | begin (void) const |
node_iterator idaapi | end (void) const |
bool idaapi | path_exists (int m, int n) const |
void idaapi | gen_dot (FILE *fp) const |
void idaapi | gen_dot (const char *file) const |
Public Attributes | |
qstring | title |
graph title | |
bool | rect_edges_made |
have create rectangular edges? | |
layout_type_t | current_layout |
see Proximity view layouts | |
point_t | circle_center |
for layout_circle | |
int | circle_radius |
for layout_circle | |
hook_cb_t * | callback |
user-defined callback | |
void * | callback_ud |
user data for callback | |
Protected Member Functions | |
void idaapi | get_connected_components (intvec_t &entries) const |
Returns one entry point for each connected component. | |
int idaapi | calc_longest_pathes (const node_set_t &entries, intvec_t &tops, int row_height) const |
Find longest paths from the entries. More... | |
void idaapi | move_nodes_down (intvec_t &tops, const node_ordering_t &post, int first_reverser_node, int row_height) const |
Move entry nodes down as much as possible. | |
void idaapi | create_graph_row_info (const intvec_t &tops, graph_row_info_t &gri, int graph_height) const |
Create graph row info from 'tops'. | |
void idaapi | calc_row_heights (graph_row_info_t &gri) const |
Calculate height of each row. | |
void idaapi | minimize_crossings (graph_row_info_t &gri) const |
Minimize crossings. | |
void idaapi | set_x_coords (const graph_row_info_t &gri, const node_set_t &selfrefs, int first_added_node) |
Calculate x coords of all nodes. | |
void idaapi | gather_edge_segments (const graph_row_info_t &gri, edge_segs_vec_t &ges) const |
Gather information about all edge segments. | |
void idaapi | make_rect_edges (graph_row_info_t &gri, const edge_segs_vec_t &ges, int first_reverser_node) |
Make all edges rectangular. | |
void idaapi | assign_edge_ports (const graph_row_info_t &gri, const node_set_t &selfrefs) |
Assign ports to edges. | |
void idaapi | recalc_edge_widths (const edgeset_t &back_edges, const edge_infos_t &self_edges) |
Recalculate width of all edges. | |
void idaapi | clear_layout_info (void) |
Clear layout information in the graph. | |
void idaapi | depth_first (node_ordering_t *pre, node_ordering_t *post, edge_typer_t *et) const |
void idaapi | create_spanning_tree (edge_typer_t *et, node_set_t *entries, edgeset_t *back_edges, node_ordering_t *pre, node_ordering_t *post) const |
void idaapi | tree_layout (edge_typer_t &et, const node_set_t &entries) |
bool idaapi | path_back (const array_of_node_set_t &domin, int m, int n) const |
Is there a path from M to N which terminates with a back edge to N? | |
bool idaapi | path_back (edge_typer_t &et, int m, int n) const |
int idaapi | visit_nodes (int node, graph_node_visitor_t &gv) const |
Visit nodes starting from 'node', depth first. | |
int idaapi | visit_paths (int node, graph_path_visitor_t &gv) const |
Visit all possible paths starting from 'node'. More... | |
Detailed Description
Abstract graph interface.
Member Function Documentation
◆ calc_longest_pathes()
|
protected |
Find longest paths from the entries.
take into account node heights. if row_height > 0, then use it instead of real node heights. return max distance found
◆ visit_paths()
|
protected |
Visit all possible paths starting from 'node'.
A path cannot contain the same node twice.
The documentation for this class was generated from the following file:
Generated by 1.9.3