Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
djd_heuristic.hpp File Reference
#include <list>
#include <future>
#include <atomic>
#include <functional>
#include "selection_boilerplate.hpp"
+ Include dependency graph for djd_heuristic.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  libnest2d::selections::_DJDHeuristic< RawShape >
 
class  libnest2d::selections::_DJDHeuristic< RawShape >::SpinLock
 
struct  libnest2d::selections::_DJDHeuristic< RawShape >::Config
 The Config for DJD heuristic. More...
 

Namespaces

namespace  libnest2d
 
namespace  libnest2d::selections
 

Class Documentation

◆ libnest2d::selections::_DJDHeuristic::Config

struct libnest2d::selections::_DJDHeuristic::Config
template<class RawShape>
struct libnest2d::selections::_DJDHeuristic< RawShape >::Config

The Config for DJD heuristic.

Class Members
bool allow_parallel = true Allow parallel jobs for filling multiple bins.

This will decrease the soution quality but can greatly boost up performance for large number of items.

bool force_parallel = false Always use parallel processing if the items don't fit into one bin.
double initial_fill_proportion = 1.0/3.0

The initial fill proportion of the bin area that will be filled before trying items one by one, or pairs or triplets.

The initial fill proportion suggested by [López-Camacho]\ (http://www.cs.stir.ac.uk/~goc/papers/EffectiveHueristic2DAOR2013.pdf) is one third of the area of bin.

bool try_pairs = true try_pairs Whether to try pairs of items to pack. It will add a quadratic component to the complexity.
bool try_reverse_order = true

If true, the algorithm will try to place pair and triplets in all possible order. It will have a hugely negative impact on performance.

bool try_triplets = false Whether to try groups of 3 items to pack. This could be very slow for large number of items (>100) as it adds a cubic component to the complexity.
double waste_increment = 0.1 How much is the acceptable waste incremented at each iteration.