29 #ifndef DOXYGEN_SHOULD_SKIP_THIS 62 const ArcAddition& change)
const {
68 const ArcDeletion& change)
const {
74 const ArcReversal& change)
const {
80 const GraphChange& change)
const {
81 switch (change.type()) {
93 "edge modifications are not " 94 "supported by StructuralConstraintForbiddenArcs");
100 const ArcAddition& change) {}
104 const ArcDeletion& change) {}
108 const ArcReversal& change) {}
112 const GraphChange& change) {}
116 const GraphChange& change)
const {
117 switch (change.type()) {
128 "edge modifications are not supported " 129 "by StructuralConstraintForbiddenArcs");
154 # define GUM_CONSTRAINT_CLASS_NAME StructuralConstraintForbiddenArcs 156 # undef GUM_CONSTRAINT_CLASS_NAME void addArc(const Arc &arc)
assign a new forbidden arc
bool checkModificationAlone(const GraphChange &change) const
checks whether the constraints enable to perform a graph change
ArcSet _ForbiddenArcs__forbidden_arcs
the ForbiddenArcs on which we perform checks
Set< Arc > ArcSet
Some typdefs and define for shortcuts ...
void erase(const Key &k)
Erases an element from the set.
void setArcs(const ArcSet &set)
assign a set of forbidden arcs
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
void setGraphAlone(const DiGraph &graph)
sets a new graph from which we will perform checkings
bool exists(const Key &k) const
Indicates whether a given elements belong to the set.
void eraseArc(const Arc &arc)
remove a forbidden arc
const ArcSet & arcs() const
returns the set of mandatory arcs
bool isAlwaysInvalidAlone(const GraphChange &change) const
indicates whether a change will always violate the constraint
bool checkArcAdditionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to add arc (x,y)
bool checkArcReversalAlone(NodeId x, NodeId y) const
checks whether the constraints enable to reverse arc (x,y)
void modifyGraphAlone(const ArcAddition &change)
notify the constraint of a modification of the graph
Size NodeId
Type for node ids.
void insert(const Key &k)
Inserts a new element into the set.
#define GUM_ERROR(type, msg)
bool checkArcDeletionAlone(NodeId x, NodeId y) const
checks whether the constraints enable to remove arc (x,y)