|
#define | AGIN2OUT(inedge) ((inedge) - 1) |
| Agedgepair_s.in -> Agedgepair_s.out.
|
|
#define | AGOUT2IN(outedge) ((outedge) + 1) |
| Agedgepair_s.out -> Agedgepair_s.in/*#end#*/.
|
|
#define | AGOPP(e) ((AGTYPE(e) == AGINEDGE) ? AGIN2OUT(e) : AGOUT2IN(e)) |
|
#define | AGMKOUT(e) (AGTYPE(e) == AGOUTEDGE ? (e) : AGIN2OUT(e)) |
|
#define | AGMKIN(e) (AGTYPE(e) == AGINEDGE ? (e) : AGOUT2IN(e)) |
|
#define | AGTAIL(e) (AGMKIN(e)->node) |
|
#define | AGHEAD(e) (AGMKOUT(e)->node) |
|
#define | AGEQEDGE(e, f) (AGMKOUT(e) == AGMKOUT(f)) |
|
#define | agtail(e) AGTAIL(e) |
|
#define | aghead(e) AGHEAD(e) |
|
#define | agopp(e) AGOPP(e) |
| opposite edge: flip Agedgepair_s.out ⇄ Agedgepair_s.in/*#end#*/
|
|
#define | ageqedge(e, f) AGEQEDGE(e, f) |
| edges are equal
|
|
#define | TAILPORT_ID "tailport" |
|
#define | HEADPORT_ID "headport" |
|
#define | ED_alg(e) (((Agedgeinfo_t*)AGDATA(e))->alg) |
|
#define | ED_conc_opp_flag(e) (((Agedgeinfo_t*)AGDATA(e))->conc_opp_flag) |
|
#define | ED_count(e) (((Agedgeinfo_t*)AGDATA(e))->count) |
|
#define | ED_cutvalue(e) (((Agedgeinfo_t*)AGDATA(e))->cutvalue) |
|
#define | ED_edge_type(e) (((Agedgeinfo_t*)AGDATA(e))->edge_type) |
|
#define | ED_compound(e) (((Agedgeinfo_t*)AGDATA(e))->compound) |
|
#define | ED_adjacent(e) (((Agedgeinfo_t*)AGDATA(e))->adjacent) |
|
#define | ED_factor(e) (((Agedgeinfo_t*)AGDATA(e))->factor) |
|
#define | ED_gui_state(e) (((Agedgeinfo_t*)AGDATA(e))->gui_state) |
|
#define | ED_head_label(e) (((Agedgeinfo_t*)AGDATA(e))->head_label) |
|
#define | ED_head_port(e) (((Agedgeinfo_t*)AGDATA(e))->head_port) |
|
#define | ED_label(e) (((Agedgeinfo_t*)AGDATA(e))->label) |
|
#define | ED_xlabel(e) (((Agedgeinfo_t*)AGDATA(e))->xlabel) |
|
#define | ED_label_ontop(e) (((Agedgeinfo_t*)AGDATA(e))->label_ontop) |
|
#define | ED_minlen(e) (((Agedgeinfo_t*)AGDATA(e))->minlen) |
|
#define | ED_path(e) (((Agedgeinfo_t*)AGDATA(e))->path) |
|
#define | ED_showboxes(e) (((Agedgeinfo_t*)AGDATA(e))->showboxes) |
|
#define | ED_spl(e) (((Agedgeinfo_t*)AGDATA(e))->spl) |
|
#define | ED_tail_label(e) (((Agedgeinfo_t*)AGDATA(e))->tail_label) |
|
#define | ED_tail_port(e) (((Agedgeinfo_t*)AGDATA(e))->tail_port) |
|
#define | ED_to_orig(e) (((Agedgeinfo_t*)AGDATA(e))->to_orig) |
|
#define | ED_to_virt(e) (((Agedgeinfo_t*)AGDATA(e))->to_virt) |
|
#define | ED_tree_index(e) (((Agedgeinfo_t*)AGDATA(e))->tree_index) |
|
#define | ED_xpenalty(e) (((Agedgeinfo_t*)AGDATA(e))->xpenalty) |
|
#define | ED_dist(e) (((Agedgeinfo_t*)AGDATA(e))->dist) |
|
#define | ED_weight(e) (((Agedgeinfo_t*)AGDATA(e))->weight) |
|
#define | agfindedge(g, t, h) (agedge(g,t,h,NULL,0)) |
|
#define | agfindedgeattr(g, a) (agattr(g,AGEDGE,a,NULL)) |
|
An abstract edge has two endpoint nodes called tail and head where all outedges of the same node have it as the tail value and similarly all inedges have it as the head. In an undirected graph, head and tail are interchangeable. If a graph has multi-edges between the same pair of nodes, the edge's string name behaves as a secondary key.
Note that an abstract edge has two distinct concrete representations: as an in-edge and as an out-edge. In particular, the pointer as an out-edge is different from the pointer as an in-edge. The function ageqedge canonicalizes the pointers before doing a comparison and so can be used to test edge equality. The sense of an edge can be flipped using agopp.
Definition at line 334 of file edge.c.
References agapply(), agdeledgeimage(), AGEDGE, agedgeattr_delete(), agfindedge_by_key(), agfreeid(), aghead, AGID, agmethod_delete(), AGMKOUT, agrecclose(), agroot(), AGTAG, agtail, Agraph_s::desc, FAILURE, free(), Agdesc_s::has_attrs, NULL, and SUCCESS.
Referenced by agdelete(), agdelnode(), and topsort().
Definition at line 260 of file edge.c.
References AGEDGE, agfindedge_by_key(), agisstrict(), agisundirected(), agmapnametoid(), agregister(), agroot(), Agtag_s::id, newedge(), NULL, Agtag_s::objtype, ok_to_make_edge(), and subedge().
Referenced by addCutPts(), addRevEdge(), circomps(), clone_graph(), cloneEdge(), cloneEdge(), cloneSubg(), compile_clusters(), connect_components(), deriveGraph(), deriveGraph(), dfs(), edge(), find_pair_edges(), fixLabelOrder(), graphcmd_internal(), graphviz_unflatten(), gvplugin_graph(), isEdge(), main(), main(), make_flat_adj_edges(), makeDotGraph(), mapGraphs(), mkConstraintG(), mkGraph(), mkGraph(), mkNConstraintG(), newedge(), newedge(), nodecmd_internal(), nodeInduce(), openEdge(), reverse_edge2(), strong(), and weak().
Definition at line 85 of file edge.c.
References agfstin(), agfstout(), and NULL.
Referenced by agdelnode(), agdelnodeimage(), cc_dfs(), cc_dfs(), circuit_model(), color(), constrainY(), count_all_crossings(), degreeKind(), deleteNodeEdges(), dfs(), dfs(), dfs(), dfs(), dfs(), dfs(), dijkstra(), dot_sameports(), extract_adjacency(), find_longest_path(), find_pair_edges(), firstedge(), getEdgeList(), getval(), initPositions(), interclexp(), isLeaf(), label(), makeGraph(), makeGraphData(), node_in_layer(), nodecmd_internal(), reduce(), remove_pair_edges(), s1(), setChildPositions(), setChildSubtreeSpans(), setNStepsToCenter(), setNStepsToLeaf(), and travBFS().
Definition at line 55 of file edge.c.
References agsubrep(), dtextract(), dtfirst, dtrestore(), Agraph_s::e_seq, Agsubnode_s::in_seq, and NULL.
Referenced by agcountuniqedges(), agdeledgeimage(), agfstedge(), agnxtedge(), compile_clusters(), dfs(), dfscc(), dot_splines_(), firstin(), firstin(), firsttail(), getComp(), getval(), graphviz_unflatten(), has_no_edges(), has_no_predecessor_below(), nextin(), nodecmd_internal(), place_node(), and weak().
Definition at line 24 of file edge.c.
References agsubrep(), dtextract(), dtfirst, dtrestore(), Agraph_s::e_seq, NULL, and Agsubnode_s::out_seq.
Referenced by _neato_set_aspect(), add_fast_edges(), addXLabels(), adjust(), adjust(), agclean(), agdeledgeimage(), agfstedge(), aginit(), allocate_ranks(), attach_attrs_and_arrows(), attach_edge_colors(), attached_clustering(), block_graph(), build_skeleton(), bundle(), checkG(), checkG(), circo_cleanup(), circomps(), circular_init_node_edge(), class1(), class2(), cleanup1(), clone_graph(), cloneGraph(), cloneSubg(), cloneSubg(), closeDerivedGraph(), cluster_init_graph(), compile_clusters(), compile_edges(), compoundEdges(), compute_bb(), count_all_crossings(), deriveGraph(), deriveGraph(), deselect_all(), dfs(), dfs(), dfs(), dfs(), dfs(), dfscc(), dijkstra(), doApply(), dot_cleanup(), dot_compoundEdges(), dot_init_node_edge(), dot_splines_(), edge_normalize(), edgelabel_ranks(), emit_clusters(), emit_colors(), emit_view(), export_dot(), fdp_cleanup(), fdp_init_node_edge(), firsthead(), firstout(), firstout(), freeDerivedGraph(), freeEdgeInfo(), gAdjust(), genPoly(), getComp(), getval(), graphcmd_internal(), graphviz_node_induce(), graphviz_unflatten(), gv_to_gml(), gvevent_find_obj(), has_no_edges(), Import_coord_clusters_from_dot(), Import_dot_splines(), induceEdges(), init_all_attrs(), init_bb_node(), init_graph(), init_node_edge(), iterateBody(), makeMatrix(), mapGraphs(), mark_clusters(), mark_lowcluster_basic(), mark_lowclusters(), mds_model(), mkNConstraintG(), myoutdegree(), neato_cleanup(), neato_init_node_edge(), neato_translate(), nextout(), node_induce(), nodecmd_internal(), nodeInduce(), nop_init_edges(), normalize(), orthoEdges(), osage_cleanup(), patchwork_cleanup(), patchwork_init_node_edge(), pick_object(), pick_objects_in_rect(), place_node(), processClusterEdges(), realFillRanks(), rebuild_vlists(), renderEdgeLabels(), renderEdgesFn(), renderSelectedEdges(), set_attrwf(), set_attrwf(), set_header_text(), setattr(), setEdgeLen(), sfdp_cleanup(), sfdp_init_node_edge(), shiftGraphs(), SparseMatrix_import_dot(), spline_edges_(), splineEdges(), topsort(), translate_drawing(), travEdges(), travFlat(), twopi_cleanup(), twopi_init_node_edge(), undoClusterEdges(), updateSmGraph(), visit(), weak(), write_body(), write_edges(), write_graph(), write_plain(), and writeBody().
Definition at line 94 of file edge.c.
References agfstin(), agnxtin(), agnxtout(), AGOUTEDGE, AGTYPE, Agedge_s::node, and NULL.
Referenced by agdelnode(), agdelnodeimage(), cc_dfs(), cc_dfs(), circuit_model(), color(), constrainY(), count_all_crossings(), degreeKind(), deleteNodeEdges(), dfs(), dfs(), dfs(), dfs(), dfs(), dfs(), dijkstra(), dot_sameports(), extract_adjacency(), find_longest_path(), find_pair_edges(), getEdgeList(), getval(), initPositions(), interclexp(), isLeaf(), label(), makeGraph(), makeGraphData(), nextedge(), node_in_layer(), nodecmd_internal(), reduce(), remove_pair_edges(), s1(), setChildPositions(), setChildSubtreeSpans(), setNStepsToCenter(), setNStepsToLeaf(), and travBFS().
Definition at line 69 of file edge.c.
References AGHEAD, agsubrep(), dtextract(), dtnext, dtrestore(), Agraph_s::e_seq, Agsubnode_s::in_seq, and NULL.
Referenced by agcountuniqedges(), agdeledgeimage(), agnxtedge(), agnxtin_(), dfs(), dfscc(), dot_splines_(), getComp(), getval(), graphviz_unflatten(), has_no_predecessor_below(), nextin(), nextin(), nexttail(), nodecmd_internal(), place_node(), and weak().
Definition at line 39 of file edge.c.
References agsubrep(), AGTAIL, dtextract(), dtnext, dtrestore(), Agraph_s::e_seq, NULL, and Agsubnode_s::out_seq.
Referenced by _neato_set_aspect(), add_fast_edges(), addXLabels(), adjust(), adjust(), agclean(), agdeledgeimage(), aginit(), agnxtedge(), agnxtout_(), allocate_ranks(), attach_attrs_and_arrows(), attach_edge_colors(), attached_clustering(), block_graph(), build_skeleton(), bundle(), checkG(), checkG(), circo_cleanup(), circomps(), circular_init_node_edge(), class1(), class2(), cleanup1(), clone_graph(), cloneGraph(), cloneSubg(), cloneSubg(), closeDerivedGraph(), cluster_init_graph(), compile_edges(), compoundEdges(), compute_bb(), count_all_crossings(), deriveGraph(), deriveGraph(), deselect_all(), dfs(), dfs(), dfs(), dfs(), dfs(), dfscc(), dijkstra(), doApply(), dot_cleanup(), dot_compoundEdges(), dot_init_node_edge(), dot_splines_(), edge_normalize(), edgelabel_ranks(), emit_clusters(), emit_colors(), emit_view(), export_dot(), fdp_cleanup(), fdp_init_node_edge(), freeDerivedGraph(), freeEdgeInfo(), gAdjust(), genPoly(), getComp(), getval(), graphcmd_internal(), graphviz_node_induce(), graphviz_unflatten(), gv_to_gml(), gvevent_find_obj(), Import_coord_clusters_from_dot(), Import_dot_splines(), induceEdges(), init_all_attrs(), init_bb_node(), init_graph(), init_node_edge(), iterateBody(), makeMatrix(), mapGraphs(), mark_clusters(), mark_lowcluster_basic(), mark_lowclusters(), mds_model(), mkNConstraintG(), myoutdegree(), neato_cleanup(), neato_init_node_edge(), neato_translate(), nexthead(), nextout(), nextout(), node_induce(), nodecmd_internal(), nodeInduce(), nop_init_edges(), orthoEdges(), osage_cleanup(), patchwork_cleanup(), patchwork_init_node_edge(), pick_object(), pick_objects_in_rect(), place_node(), processClusterEdges(), realFillRanks(), rebuild_vlists(), renderEdgeLabels(), renderEdgesFn(), renderSelectedEdges(), set_attrwf(), set_attrwf(), set_header_text(), setattr(), setEdgeLen(), sfdp_cleanup(), sfdp_init_node_edge(), shiftGraphs(), SparseMatrix_import_dot(), spline_edges_(), splineEdges(), topsort(), translate_drawing(), travEdges(), travFlat(), twopi_cleanup(), twopi_init_node_edge(), undoClusterEdges(), updateSmGraph(), visit(), write_body(), write_edges(), write_graph(), write_plain(), and writeBody().
Definition at line 355 of file edge.c.
References agfindedge_by_key(), AGHEAD, AGOPP, agsubnode(), AGTAG, AGTAIL, AGTYPE, installedge(), and NULL.
Referenced by addEdge(), agcontains(), block_graph(), circomps(), clone_graph(), cloneSubg(), dfs(), evalEdge(), graphviz_node_induce(), induceEdges(), node_induce(), nodeInduce(), subedge_search(), write_edge_test(), and writeEdgeTest().