Class DecompositionBase

Inheritance Relationships

Derived Type

Class Documentation

class DecompositionBase

Base class for algorithms that decompose non-convex cells into multiple simpler cells.

The class has one main method (f2c::decomp::decompose) that split complex-shape cells into simpler cells.

Subclassed by f2c::decomp::TrapezoidalDecomp

Public Functions

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 F2CMultiLineString genSplitLines(const F2CCells &cells, const obj::DecompObjective &obj) = 0

Generate the lines used by f2c::decomp::split to split the cells into simpler cells

Parameters:

cells – Complex-shape cells

Returns:

Lines that split the complex-shape cells into simpler cells

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.

virtual ~DecompositionBase() = default