Geometrical packing constraints
Functionality by programming task » Programming models » Using integer variables and constraints

## Functions

void | Gecode::nooverlap (Home home, const IntVarArgs &x, const IntArgs &w, const IntVarArgs &y, const IntArgs &h, IntPropLevel ipl=IPL_DEF)
| Post propagator for rectangle packing.
void | Gecode::nooverlap (Home home, const IntVarArgs &x, const IntArgs &w, const IntVarArgs &y, const IntArgs &h, const BoolVarArgs &o, IntPropLevel ipl=IPL_DEF)
| Post propagator for rectangle packing.
void | Gecode::nooverlap (Home home, const IntVarArgs &x0, const IntVarArgs &w, const IntVarArgs &x1, const IntVarArgs &y0, const IntVarArgs &h, const IntVarArgs &y1, IntPropLevel ipl=IPL_DEF)
| Post propagator for rectangle packing.
void | Gecode::nooverlap (Home home, const IntVarArgs &x0, const IntVarArgs &w, const IntVarArgs &x1, const IntVarArgs &y0, const IntVarArgs &h, const IntVarArgs &y1, const BoolVarArgs &o, IntPropLevel ipl=IPL_DEF)
| Post propagator for rectangle packing.

## Detailed Description

Constraints for modeling geometrical packing problems.

## Function Documentation

## nooverlap() [1/4]

void Gecode::nooverlap | ( | Home | home,
|  | const IntVarArgs & | x,
|  | const IntArgs & | w,
|  | const IntVarArgs & | y,
|  | const IntArgs & | h,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for rectangle packing.

Propagate that no two rectangles as described by the coordinates x, and y, widths w, and heights h overlap.

Throws the following exceptions:

- Of type Int::ArgumentSizeMismatch if x, w, y, or h are not of the same size.
- Of type Int::OutOfLimits if w or h contain a negative number.

Definition at line 51 of file no-overlap.cpp.

## nooverlap() [2/4]

void Gecode::nooverlap | ( | Home | home,
|  | const IntVarArgs & | x,
|  | const IntArgs & | w,
|  | const IntVarArgs & | y,
|  | const IntArgs & | h,
|  | const BoolVarArgs & | o,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for rectangle packing.

Propagate that no two rectangles as described by the coordinates x, and y, widths w, and heights h overlap. The rectangles can be optional, as described by the Boolean variables o.

Throws the following exceptions:

- Of type Int::ArgumentSizeMismatch if x, w, y, h, or o are not of the same size.
- Of type Int::OutOfLimits if w or h contain a negative number.

Definition at line 82 of file no-overlap.cpp.

## nooverlap() [3/4]

void Gecode::nooverlap | ( | Home | home,
|  | const IntVarArgs & | x0,
|  | const IntVarArgs & | w,
|  | const IntVarArgs & | x1,
|  | const IntVarArgs & | y0,
|  | const IntVarArgs & | h,
|  | const IntVarArgs & | y1,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for rectangle packing.

Propagate that no two rectangles as described by the start coordinates x0 and y0, widths w and heights h, and end coordinates x1 and y1 overlap.

Note that the relations and are not propagated (for ). That is, additional constraints must be posted to enforce that relation.

Throws the following exceptions:

- Of type Int::ArgumentSizeMismatch if x0, x1, w, y0, y1, or h are not of the same size.

Definition at line 127 of file no-overlap.cpp.

## nooverlap() [4/4]

void Gecode::nooverlap | ( | Home | home,
|  | const IntVarArgs & | x0,
|  | const IntVarArgs & | w,
|  | const IntVarArgs & | x1,
|  | const IntVarArgs & | y0,
|  | const IntVarArgs & | h,
|  | const IntVarArgs & | y1,
|  | const BoolVarArgs & | o,
|  | IntPropLevel | ipl = IPL_DEF )

Post propagator for rectangle packing.

Propagate that no two rectangles as described by the start coordinates x0 and y0, widths w and heights h, and end coordinates x1 and y1 overlap. The rectangles can be optional, as described by the Boolean variables o.

Note that the relations and are not propagated (for ). That is, additional constraints must be posted to enforce that relation.

Throws the following exceptions:

- Of type Int::ArgumentSizeMismatch if x0, x1, w, y0, y1, or h are not of the same size.

Definition at line 164 of file no-overlap.cpp.