Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnest2d/libnest2d/optimizers/genetic.hpp')
-rw-r--r--src/libnest2d/libnest2d/optimizers/genetic.hpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/libnest2d/libnest2d/optimizers/genetic.hpp b/src/libnest2d/libnest2d/optimizers/genetic.hpp
new file mode 100644
index 000000000..276854a12
--- /dev/null
+++ b/src/libnest2d/libnest2d/optimizers/genetic.hpp
@@ -0,0 +1,31 @@
+#ifndef GENETIC_HPP
+#define GENETIC_HPP
+
+#include "nlopt_boilerplate.hpp"
+
+namespace libnest2d { namespace opt {
+
+class GeneticOptimizer: public NloptOptimizer {
+public:
+ inline explicit GeneticOptimizer(const StopCriteria& scr = {}):
+ NloptOptimizer(method2nloptAlg(Method::G_GENETIC), scr) {}
+
+ inline GeneticOptimizer& localMethod(Method m) {
+ localmethod_ = m;
+ return *this;
+ }
+};
+
+template<>
+struct OptimizerSubclass<Method::G_GENETIC> { using Type = GeneticOptimizer; };
+
+template<> TOptimizer<Method::G_GENETIC> GlobalOptimizer<Method::G_GENETIC>(
+ Method localm, const StopCriteria& scr )
+{
+ return GeneticOptimizer (scr).localMethod(localm);
+}
+
+}
+}
+
+#endif // GENETIC_HPP