29 #ifdef GUM_CONSTRAINT_CLASS_NAME 32 INLINE
void GUM_CONSTRAINT_CLASS_NAME::setGraph(
const UndiGraph& graph) {
33 constraints::setGraph(graph);
38 INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkEdgeAddition(
NodeId x,
40 return constraints::checkEdgeAddition(x, y) && checkEdgeAdditionAlone(x, y);
44 INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkEdgeDeletion(
NodeId x,
46 return constraints::checkEdgeDeletion(x, y) && checkEdgeDeletionAlone(x, y);
50 INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const EdgeAddition& change) {
51 constraints::modifyGraph(change);
52 modifyGraphAlone(change);
56 INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const EdgeDeletion& change) {
57 constraints::modifyGraph(change);
58 modifyGraphAlone(change);
62 INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const GraphChange& change) {
63 constraints::modifyGraph(change);
64 modifyGraphAlone(change);
68 INLINE
bool GUM_CONSTRAINT_CLASS_NAME::isAlwaysInvalid(
const GraphChange&)
const {
69 return constraints::isAlwaysInvalid(change) || isAlwaysInvalidAlone(change);
74 GUM_CONSTRAINT_CLASS_NAME::checkModification(
const EdgeAddition& change)
const {
75 return checkEdgeAddition(change.node1(), change.node2());
80 GUM_CONSTRAINT_CLASS_NAME::checkModification(
const EdgeDeletion& change)
const {
81 return checkEdgeDeletion(change.node1(), change.node2());
86 GUM_CONSTRAINT_CLASS_NAME::checkModification(
const GraphChange& change)
const {
87 switch (change.type()) {
89 return checkEdgeAddition(change.node1(), change.node2());
92 return checkEdgeDeletion(change.node1(), change.node2());
96 "arc modifications are not supported by the constraint");
Size NodeId
Type for node ids.
#define GUM_ERROR(type, msg)