Class DecompositionBase
Defined in File decomposition_base.h
Inheritance Relationships
Derived Type
public f2c::decomp::TrapezoidalDecomp
(Class TrapezoidalDecomp)
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
-
virtual F2CCells decompose(const F2CCells &cells, const obj::DecompObjective &obj = obj::DecompObjective())