mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-10-21 07:41:09 -06:00
Incorporating performance optimizations from libnest2d
This commit is contained in:
parent
230c681482
commit
5446b9f1e5
28 changed files with 2565 additions and 818 deletions
|
@ -1,29 +1,26 @@
|
|||
# Introduction
|
||||
|
||||
Libnest2D is a library and framework for the 2D bin packaging problem.
|
||||
Inspired from the [SVGNest](svgnest.com) Javascript library the project is is
|
||||
Inspired from the [SVGNest](svgnest.com) Javascript library the project is
|
||||
built from scratch in C++11. The library is written with a policy that it should
|
||||
be usable out of the box with a very simple interface but has to be customizable
|
||||
to the very core as well. This has led to a design where the algorithms are
|
||||
defined in a header only fashion with template only geometry types. These
|
||||
geometries can have custom or already existing implementation to avoid copying
|
||||
or having unnecessary dependencies.
|
||||
to the very core as well. The algorithms are defined in a header only fashion
|
||||
with templated geometry types. These geometries can have custom or already
|
||||
existing implementation to avoid copying or having unnecessary dependencies.
|
||||
|
||||
A default backend is provided if a user just wants to use the library out of the
|
||||
box without implementing the interface of these geometry types. The default
|
||||
backend is built on top of boost geometry and the
|
||||
[polyclipping](http://www.angusj.com/delphi/clipper.php) library and implies the
|
||||
dependency on these packages as well as the compilation of the backend (although
|
||||
I may find a solution in the future to make the backend header only as well).
|
||||
A default backend is provided if the user of the library just wants to use it
|
||||
out of the box without additional integration. The default backend is reasonably
|
||||
fast and robust, being built on top of boost geometry and the
|
||||
[polyclipping](http://www.angusj.com/delphi/clipper.php) library. Usage of
|
||||
this default backend implies the dependency on these packages as well as the
|
||||
compilation of the backend itself (The default backend is not yet header only).
|
||||
|
||||
This software is currently under heavy construction and lacks a throughout
|
||||
documentation and some essential algorithms as well. At this point a fairly
|
||||
untested version of the DJD selection heuristic is working with a bottom-left
|
||||
placing strategy which may produce usable arrangements in most cases.
|
||||
This software is currently under construction and lacks a throughout
|
||||
documentation and some essential algorithms as well. At this stage it works well
|
||||
for rectangles and convex closed polygons without considering holes and
|
||||
concavities.
|
||||
|
||||
The no-fit polygon based placement strategy will be implemented in the very near
|
||||
future which should produce high quality results for convex and non convex
|
||||
polygons with holes as well.
|
||||
Holes and non-convex polygons will be usable in the near future as well.
|
||||
|
||||
# References
|
||||
- [SVGNest](https://github.com/Jack000/SVGnest)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue