Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::sat::RectanglePairwisePropagator Class Reference

Propagator that compares the boxes pairwise. More...

#include <diffn.h>

Inheritance diagram for operations_research::sat::RectanglePairwisePropagator:
operations_research::sat::PropagatorInterface

Public Member Functions

 RectanglePairwisePropagator (NoOverlap2DConstraintHelper *helper, Model *model)
 
 ~RectanglePairwisePropagator () override
 
bool Propagate () final
 
int RegisterWith (GenericLiteralWatcher *watcher)
 
- Public Member Functions inherited from operations_research::sat::PropagatorInterface
 PropagatorInterface ()=default
 
virtual ~PropagatorInterface ()=default
 
virtual bool IncrementalPropagate (const std::vector< int > &)
 

Detailed Description

Propagator that compares the boxes pairwise.

Definition at line 152 of file diffn.h.

Constructor & Destructor Documentation

◆ RectanglePairwisePropagator()

operations_research::sat::RectanglePairwisePropagator::RectanglePairwisePropagator ( NoOverlap2DConstraintHelper * helper,
Model * model )
inline

Definition at line 154 of file diffn.h.

◆ ~RectanglePairwisePropagator()

operations_research::sat::RectanglePairwisePropagator::~RectanglePairwisePropagator ( )
override

Definition at line 862 of file diffn.cc.

Member Function Documentation

◆ Propagate()

bool operations_research::sat::RectanglePairwisePropagator::Propagate ( )
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.

Definition at line 874 of file diffn.cc.

◆ RegisterWith()

int operations_research::sat::RectanglePairwisePropagator::RegisterWith ( GenericLiteralWatcher * watcher)

Definition at line 855 of file diffn.cc.


The documentation for this class was generated from the following files: