![]() |
Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
|
Propagator that compares the boxes pairwise. More...
#include <diffn.h>
Public Member Functions | |
RectanglePairwisePropagator (NoOverlap2DConstraintHelper *helper, Model *model) | |
~RectanglePairwisePropagator () override | |
bool | Propagate () final |
int | RegisterWith (GenericLiteralWatcher *watcher) |
![]() | |
PropagatorInterface ()=default | |
virtual | ~PropagatorInterface ()=default |
virtual bool | IncrementalPropagate (const std::vector< int > &) |
|
inline |
|
override |
|
finalvirtual |
This will be called after one or more literals that are watched by this propagator changed. It will also always be called on the first propagation cycle after registration.
We ignore pairs of two fixed boxes. The only thing to propagate between two fixed boxes is a conflict and it should already have been taken care of by the MandatoryOverlapPropagator propagator.
Check zero area boxes against non-zero area boxes.
Check vertical zero area boxes against horizontal zero area boxes.
Implements operations_research::sat::PropagatorInterface.
int operations_research::sat::RectanglePairwisePropagator::RegisterWith | ( | GenericLiteralWatcher * | watcher | ) |