Class BoustrophedonDecomp

Inheritance Relationships

Base Type

Class Documentation

class BoustrophedonDecomp : public f2c::decomp::TrapezoidalDecomp

Boustrophedon Cellular decomposition choset2000coverage.

Each point in the geometry is checked if it is a critical point. A critical point is defined as a point that split or merge cells in the split_angle . If it is a critical point, split lines are created in the perpendicular to the split_angle.

Public Functions

virtual F2CMultiLineString genSplitLines(const F2CCells &cells, const obj::DecompObjective &obj = obj::DecompObjective()) override

Split the field into several cells that are easier to cover.

Parameters:

cells – Original cells

Returns:

Smaller cells that compound the field

double getSplitAngle() const

Get split angle used to decompose the field.

void setSplitAngle(double ang)

Set split angle used to decompose the field.

virtual F2CCells decompose(const F2CCells &cells, const obj::DecompObjective &obj = obj::DecompObjective())

Decompose F2CCells into simpler F2CCells.

This method decompose every Cell in cells into simpler cells.

Parameters:

cells – Complex-shape cells

Returns:

Same space as cells recoded into simpler cells

virtual F2CCells split(const F2CCells &cells, const obj::DecompObjective &obj)

Split the field into several cells that are easier to cover.

Parameters:

cells – Original cells

Returns:

Smaller cells that compound the field

virtual F2CCells merge(const F2CCells &cells, const obj::DecompObjective &obj)

Apply a merge strategy to reduce the number of simpler cells.

Parameters:

cells – Simple cells

Returns:

Merged cells.