2009-05-02 07:36:25 +00:00
|
|
|
/* vim: set sw=4 ts=4 si et: */
|
|
|
|
|
2012-08-10 02:18:21 +02:00
|
|
|
#ifndef _ALOBE_CONNEX_COMPONENT_H
|
|
|
|
#define _ALOBE_CONNEX_COMPONENT_H
|
2009-05-02 07:36:25 +00:00
|
|
|
|
|
|
|
#include "nodeset.h"
|
|
|
|
|
|
|
|
typedef struct _ConnexComponentItem_t ConnexComponentItem_t;
|
|
|
|
typedef struct _ConnexComponentItem_t * ConnexComponentList_t;
|
|
|
|
|
|
|
|
struct _ConnexComponentItem_t {
|
|
|
|
NodeSetList_t list;
|
|
|
|
ConnexComponentItem_t * prev;
|
|
|
|
ConnexComponentItem_t * next;
|
|
|
|
};
|
|
|
|
|
|
|
|
/* List opts */
|
|
|
|
ConnexComponentList_t connexcomponentlist_create();
|
|
|
|
|
|
|
|
void connexcomponentlist_destroy(ConnexComponentList_t * list);
|
|
|
|
|
|
|
|
ConnexComponentItem_t * connexcomponentlist_find_item_with_node(
|
|
|
|
ConnexComponentList_t list,
|
|
|
|
nodeindex_t nodeidx);
|
|
|
|
|
|
|
|
ConnexComponentList_t connexcomponentlist_insert_edge(
|
|
|
|
ConnexComponentList_t list,
|
|
|
|
nodeindex_t node_one,
|
|
|
|
nodeindex_t node_two);
|
|
|
|
|
|
|
|
ConnexComponentList_t connexcomponentlist_append_component(
|
|
|
|
ConnexComponentList_t list,
|
|
|
|
ConnexComponentItem_t * item
|
|
|
|
);
|
|
|
|
|
|
|
|
ConnexComponentList_t connexcomponentlist_remove_component(
|
|
|
|
ConnexComponentList_t list,
|
|
|
|
ConnexComponentItem_t * item
|
|
|
|
);
|
|
|
|
|
|
|
|
void connexcomponentlist_display(ConnexComponentList_t list);
|
|
|
|
|
|
|
|
/* Item opts */
|
|
|
|
|
|
|
|
ConnexComponentItem_t * connexcomponentitem_create();
|
|
|
|
|
|
|
|
ConnexComponentItem_t * connexcomponentitem_create_from_node(
|
|
|
|
nodeindex_t node_idx
|
|
|
|
);
|
|
|
|
|
|
|
|
ConnexComponentItem_t * connexcomponentitem_create_from_merge(
|
|
|
|
ConnexComponentItem_t * item_one,
|
|
|
|
ConnexComponentItem_t * item_two
|
|
|
|
);
|
|
|
|
|
|
|
|
void connexcomponentitem_destroy(ConnexComponentItem_t * item);
|
|
|
|
|
|
|
|
void connexcomponentitem_display(ConnexComponentItem_t * item);
|
|
|
|
|
|
|
|
ConnexComponentList_t connexcomponentitem_insert_edge(
|
|
|
|
ConnexComponentList_t list,
|
|
|
|
nodeindex_t node_one,
|
|
|
|
nodeindex_t node_two);
|
|
|
|
|
|
|
|
bool connexcomponentitem_contains_node(
|
|
|
|
ConnexComponentItem_t * item,
|
|
|
|
nodeindex_t node_idx);
|
|
|
|
|
|
|
|
#endif
|