26 #ifndef DOXYGEN_SHOULD_SKIP_THIS 55 const EdgeAddition& change)
const {
61 const EdgeDeletion& change)
const {
67 const GraphChange& change)
const {
68 switch (change.type()) {
77 "arc modifications are not " 78 "supported by StructuralConstraintUndiGraph");
84 const EdgeAddition& change) {
90 const EdgeDeletion& change) {
97 switch (change.type()) {
108 "arc modifications are not supported " 109 "by StructuralConstraintUndiGraph");
115 const GraphChange&)
const {
122 for (
NodeId i = 0; i < nb_nodes; ++i) {
128 # define GUM_CONSTRAINT_CLASS_NAME StructuralConstraintUndiGraph 130 # undef GUM_CONSTRAINT_CLASS_NAME void setGraphAlone(const UndiGraph &graph)
sets a new graph from which we will perform checkings
virtual void clear()
removes all the nodes and edges from the graph
virtual void addNodeWithId(const NodeId id)
try to insert a node with the given id
UndiGraph _UndiGraph__graph
the UndiGraph on which we perform checks
bool checkModificationAlone(const GraphChange &change) const
checks whether the constraints enable to perform a graph change
virtual void addEdge(const NodeId first, const NodeId second)
insert a new edge into the undirected graph
bool isAlwaysInvalidAlone(const GraphChange &change) const
indicates whether a change will always violate the constraint
gum is the global namespace for all aGrUM entities
bool existsEdge(const Edge &edge) const
indicates whether a given edge exists
bool existsNode(const NodeId id) const
returns true iff the NodeGraphPart contains the given nodeId
void setGraph(Size nb_nodes)
sets a new empty graph from which we will perform checkings
bool checkEdgeDeletionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to remove edge (x,y)
void modifyGraphAlone(const EdgeAddition &change)
notify the constraint of a modification of the graph
std::size_t Size
In aGrUM, hashed values are unsigned long int.
virtual void eraseEdge(const Edge &edge)
removes an edge from the EdgeGraphPart
Size NodeId
Type for node ids.
#define GUM_ERROR(type, msg)
bool checkEdgeAdditionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to add edge (x,y)