Base class for algorithms that decompose non-convex cells into multiple simpler cells. More...
#include <decomposition_base.h>
Public Member Functions | |
virtual F2CCells | decompose (const F2CCells &cells, const obj::DecompObjective &obj=obj::DecompObjective()) |
Decompose F2CCells into simpler F2CCells. More... | |
virtual F2CMultiLineString | genSplitLines (const F2CCells &cells, const obj::DecompObjective &obj)=0 |
virtual F2CCells | merge (const F2CCells &cells, const obj::DecompObjective &obj) |
virtual F2CCells | split (const F2CCells &cells, const obj::DecompObjective &obj) |
virtual | ~DecompositionBase ()=default |
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.
Definition at line 21 of file decomposition_base.h.
|
virtualdefault |
|
virtual |
Decompose F2CCells into simpler F2CCells.
This method decompose every Cell in cells
into simpler cells.
cells | Complex-shape cells |
cells
recoded into simpler cells Definition at line 12 of file decomposition_base.cpp.
|
pure virtual |
Generate the lines used by f2c::decomp::split to split the cells into simpler cells
cells | Complex-shape cells |
Implemented in f2c::decomp::TrapezoidalDecomp, and f2c::decomp::BoustrophedonDecomp.
|
virtual |
Apply a merge strategy to reduce the number of simpler cells
cells | Simple cells |
Definition at line 22 of file decomposition_base.cpp.
|
virtual |
Split the field into several cells that are easier to cover
cells | Original cells |
Definition at line 17 of file decomposition_base.cpp.