42#ifndef GUM_EDGE_GRAPH_PART_H
43#define GUM_EDGE_GRAPH_PART_H
110 bool edges_resize_policy =
true);
198 virtual std::string
toString()
const;
208 template <
typename VAL >
219 template <
typename VAL >
225 template <
typename VAL >
Classes for undirected edge sets.
EdgeProperty< VAL > edgesProperty(VAL(*f)(const Edge &), Size size=0) const
a method to create a hashMap of VAL from a set of edges (using for every edge, say x,...
std::vector< NodeId > undirectedPath(NodeId node1, NodeId node2) const
returns a possible path from node1 to node2 in the edge set
void unvirtualizedEraseNeighbours(NodeId id)
same function as eraseNeighbours but without any virtual call to an erase
Size sizeEdges() const
indicates the number of edges stored within the EdgeGraphPart
EdgeGraphPart & operator=(const EdgeGraphPart &s)
copy operator
bool hasUndirectedPath(NodeId n1, NodeId n2) const
return true if n1 and n2 are connected (by an undirected path) in the graph.
virtual ~EdgeGraphPart()
destructor
void _checkNeighbours_(NodeId id)
when the EdgeGraphPart contains no edge adjacent to a given node, this function adds an empty set ent...
bool operator==(const EdgeGraphPart &p) const
tests whether two EdgeGraphParts contain the same edges
EdgeGraphPart(Size edges_size=HashTableConst::default_size, bool edges_resize_policy=true)
default constructor
virtual void addEdge(NodeId n1, NodeId n2)
insert a new edge into the EdgeGraphPart
EdgeSet _edges_
the set of all the edges contained within the EdgeGraphPart
EdgeSetIterator EdgeIterator
virtual void eraseEdge(const Edge &edge)
removes an edge from the EdgeGraphPart
void eraseNeighbours(NodeId id)
erase all the edges adjacent to a given node
Signaler2< NodeId, NodeId > onEdgeDeleted
NodeProperty< NodeSet * > _neighbours_
for each node, the set of its adjacent edges
Signaler2< NodeId, NodeId > onEdgeAdded
const EdgeSet & edges() const
returns the set of edges stored within the EdgeGraphPart
virtual std::string toString() const
to friendly display the content of the EdgeGraphPart
virtual void clearEdges()
removes all the edges from the EdgeGraphPart
bool existsEdge(const Edge &edge) const
indicates whether a given edge exists
bool emptyEdges() const
indicates wether the EdgeGraphPart contains any edge
List< VAL > listMapEdges(VAL(*f)(const Edge &)) const
a method to create a list of VAL from a set of edges (using for every edge, say x,...
const NodeSet & neighbours(NodeId id) const
returns the set of node neighbours to a given node
EdgeProperty< VAL > edgesProperty(const VAL &val, Size size=0) const
a method to create a hashMap of VAL from a set of edges (using for every edge, say x,...
The base class for all undirected edges.
Generic doubly linked lists.
Inline implementation of classes for undirected edge sets.
Implementation of the EdgeGraphPart.
some utils for topology : NodeId, Edge, Arc and consorts ...
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Set< Edge > EdgeSet
Some typdefs and define for shortcuts ...
Size NodeId
Type for node ids.
HashTable< Edge, VAL > EdgeProperty
Property on graph elements.
EdgeSet::const_iterator EdgeSetIterator
Some typdefs and define for shortcuts ...
HashTable< NodeId, VAL > NodeProperty
Property on graph elements.
Set< NodeId > NodeSet
Some typdefs and define for shortcuts ...
gum is the global namespace for all aGrUM entities
std::ostream & operator<<(std::ostream &stream, const AVLTree< Val, Cmp > &tree)
display the content of a tree
static constexpr Size default_size
The default number of slots in hashtables.