28 #ifdef GUM_CONSTRAINT_CLASS_NAME 31 INLINE
void GUM_CONSTRAINT_CLASS_NAME::setGraph(
const DiGraph& graph) {
32 constraints::setGraph(graph);
37 INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkArcAddition(NodeId x, NodeId y)
const {
38 return constraints::checkArcAddition(x, y) && checkArcAdditionAlone(x, y);
42 INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkArcDeletion(NodeId x, NodeId y)
const {
43 return constraints::checkArcDeletion(x, y) && checkArcDeletionAlone(x, y);
47 INLINE
bool GUM_CONSTRAINT_CLASS_NAME::checkArcReversal(NodeId x, NodeId y)
const {
48 return constraints::checkArcReversal(x, y) && checkArcReversalAlone(x, y);
52 INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const ArcAddition& change) {
53 constraints::modifyGraph(change);
54 modifyGraphAlone(change);
58 INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const ArcDeletion& change) {
59 constraints::modifyGraph(change);
60 modifyGraphAlone(change);
64 INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const ArcReversal& change) {
65 constraints::modifyGraph(change);
66 modifyGraphAlone(change);
70 INLINE
void GUM_CONSTRAINT_CLASS_NAME::modifyGraph(
const GraphChange& change) {
71 constraints::modifyGraph(change);
72 modifyGraphAlone(change);
77 GUM_CONSTRAINT_CLASS_NAME::isAlwaysInvalid(
const GraphChange& change)
const {
78 return constraints::isAlwaysInvalid(change) || isAlwaysInvalidAlone(change);
83 GUM_CONSTRAINT_CLASS_NAME::checkModification(
const ArcAddition& change)
const {
84 return checkArcAddition(change.node1(), change.node2());
89 GUM_CONSTRAINT_CLASS_NAME::checkModification(
const ArcDeletion& change)
const {
90 return checkArcDeletion(change.node1(), change.node2());
95 GUM_CONSTRAINT_CLASS_NAME::checkModification(
const ArcReversal& change)
const {
96 return checkArcReversal(change.node1(), change.node2());
101 GUM_CONSTRAINT_CLASS_NAME::checkModification(
const GraphChange& change)
const {
102 switch (change.type()) {
103 case GraphChangeType::ARC_ADDITION:
104 return checkArcAddition(change.node1(), change.node2());
106 case GraphChangeType::ARC_DELETION:
107 return checkArcDeletion(change.node1(), change.node2());
109 case GraphChangeType::ARC_REVERSAL:
110 return checkArcReversal(change.node1(), change.node2());
113 GUM_ERROR(OperationNotAllowed,
114 "edge modifications are not supported by the constraint");