29 #ifndef DOXYGEN_SHOULD_SKIP_THIS 58 const EdgeAddition& change)
const {
64 const EdgeDeletion& change)
const {
70 const GraphChange& change)
const {
71 switch (change.type()) {
80 "arc modifications are not " 81 "supported by StructuralConstraintUndiGraph");
87 const EdgeAddition& change) {
93 const EdgeDeletion& change) {
100 switch (change.type()) {
111 "arc modifications are not supported " 112 "by StructuralConstraintUndiGraph");
118 const GraphChange&)
const {
125 for (
NodeId i = 0; i < nb_nodes; ++i) {
131 # define GUM_CONSTRAINT_CLASS_NAME StructuralConstraintUndiGraph 133 # 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
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
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)