| IDA SDK

Public Attributes | Public Member Functions | Protected Member Functions | List of all members
drawable_graph_t Class Referenceabstract

Inherits gdl_graph_t.

Inherited by interactive_graph_t.

## Public Attributes
qstring | title
| graph title
bool | rect_edges_made = false
| have create rectangular edges?
layout_type_t | current_layout = layout_none
| see Proximity view layouts
point_t | circle_center
| for layout_circle
int | circle_radius = 0
| for layout_circle
hook_cb_t * | callback = nullptr
| user-defined callback
void * | callback_ud = nullptr
| user data for callback

## 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 drawable_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

## 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...

## Member Function Documentation

## ◆ calc_longest_pathes()

int idaapi drawable_graph_t::calc_longest_pathes | ( | const node_set_t & | entries,
|  | intvec_t & | tops,
|  | int | row_height
| ) |  | const
| 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()

int idaapi drawable_graph_t::visit_paths | ( | int | node,
|  | graph_path_visitor_t & | gv
| ) |  | const
| 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:

- graph.hpp