Class TrapezoidalDecomp

Inheritance Relationships

Base Type

Derived Type

Class Documentation

class TrapezoidalDecomp : public f2c::decomp::DecompositionBase

Trapezoidal decomposition latombe1991exact.

Each point generate split lines perpendicular to the split_angle.

Subclassed by f2c::decomp::BoustrophedonDecomp

Public Functions

double getSplitAngle() const

Get split angle used to decompose the field.

void setSplitAngle(double ang)

Set split angle used to decompose the field.

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

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.