* Fix -Wsubobject-linkage warning
Having tk::spline header-only implementation included from
SmallAreaInfillFlowCompensator.hpp makes
SmallAreaInfillFlowCompensator::flowModel have separate (albeit the
same) implementation in each translation unit.
In order to fix this issue, SmallAreaInfillFlowCompensator::flowModel
converted to opaque 'pimpl'
* spline: remove anonymous namespace
Remove outer anonymous namespace from splice.h to make
forward declaration for tk::spline possible.
* [FEATURE] Experimental small area flow compensation
This is a native implementation of the [Small Area Flow Compensation](https://github.com/Alexander-T-Moss/Small-Area-Flow-Comp)
post-processor by Alexander Þór for OrcaSlicer.
Quite often small areas of solid infill appear to be over-extruded, despite
the rest of a print looking like it has a well-dialled-in EM/Flow. Currently,
there isn't a good understanding of why this happens, so this is an attempt
at a brute-force approach to treat the symptom.
This feature modifies the flow of extrusion lines inversely proportional to
the length of the extrusion line (the shorter the extrusion, the less flow
it should have).
Alexander Þór: Author of the original script implementation
Weaslus: Proof Reader, Hypeman & pestered folks into making this
* [TASK] Whitespace cleanup
* [TASK] Add credits, format code, improve input labels
* [TASK] Use multi-line textbox as input for flow model
* [TASK] Toggle flow compensation per object
* [TASK] Enable flow compensation for first layer
---------
Co-authored-by: SoftFever <softfeverever@gmail.com>