summaryrefslogtreecommitdiff
path: root/dev-libs/libnest2d/files/libnest2d-0.4-add-disallowed-areas.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/libnest2d/files/libnest2d-0.4-add-disallowed-areas.patch')
-rw-r--r--dev-libs/libnest2d/files/libnest2d-0.4-add-disallowed-areas.patch122
1 files changed, 0 insertions, 122 deletions
diff --git a/dev-libs/libnest2d/files/libnest2d-0.4-add-disallowed-areas.patch b/dev-libs/libnest2d/files/libnest2d-0.4-add-disallowed-areas.patch
deleted file mode 100644
index ed48cd3eeff8..000000000000
--- a/dev-libs/libnest2d/files/libnest2d-0.4-add-disallowed-areas.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 2e91be2679b5efa0773292d9d0a2ae72255bb271 Mon Sep 17 00:00:00 2001
-From: Ghostkeeper <rubend@tutanota.com>
-Date: Tue, 6 Oct 2020 16:13:15 +0200
-Subject: [PATCH 1/3] Allow for an item to be a disallowed area
-
-Disallowed areas have slightly different behaviour from fixed items: Other items won't get packed closely around them. Implementation of that pending.
-
-Contributes to issue CURA-7754.
----
- include/libnest2d/nester.hpp | 16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/include/libnest2d/nester.hpp b/include/libnest2d/nester.hpp
-index 2f207d5..932a060 100644
---- a/include/libnest2d/nester.hpp
-+++ b/include/libnest2d/nester.hpp
-@@ -71,6 +71,15 @@ class _Item {
- int binid_{BIN_ID_UNSET}, priority_{0};
- bool fixed_{false};
-
-+ /**
-+ * \brief If this is a fixed area, indicates whether it is a disallowed area
-+ * or a previously placed item.
-+ *
-+ * If this is a disallowed area, other objects will not get packed close
-+ * together with this item. It only blocks other items in its area.
-+ */
-+ bool disallowed_{false};
-+
- public:
-
- /// The type of the shape which was handed over as the template argument.
-@@ -129,11 +138,18 @@ class _Item {
- sh_(sl::create<RawShape>(std::move(contour), std::move(holes))) {}
-
- inline bool isFixed() const noexcept { return fixed_; }
-+ inline bool isDisallowedArea() const noexcept { return disallowed_; }
- inline void markAsFixedInBin(int binid)
- {
- fixed_ = binid >= 0;
- binid_ = binid;
- }
-+ inline void markAsDisallowedAreaInBin(int binid)
-+ {
-+ fixed_ = binid >= 0;
-+ binid_ = binid;
-+ disallowed_ = true;
-+ }
-
- inline void binId(int idx) { binid_ = idx; }
- inline int binId() const noexcept { return binid_; }
-
-From ff61049e59d3151462bca7ff2e2268c2b32731e7 Mon Sep 17 00:00:00 2001
-From: Ghostkeeper <rubend@tutanota.com>
-Date: Tue, 6 Oct 2020 16:14:36 +0200
-Subject: [PATCH 2/3] Allow unsetting of being a disallowed area
-
-If you set the bin to -1 or set the item to be a simple fixed item afterwards, it'll no longer be a disallowed area.
-
-Contributes to issue CURA-7754.
----
- include/libnest2d/nester.hpp | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/include/libnest2d/nester.hpp b/include/libnest2d/nester.hpp
-index 932a060..54761a6 100644
---- a/include/libnest2d/nester.hpp
-+++ b/include/libnest2d/nester.hpp
-@@ -143,12 +143,13 @@ class _Item {
- {
- fixed_ = binid >= 0;
- binid_ = binid;
-+ disallowed_ = false;
- }
- inline void markAsDisallowedAreaInBin(int binid)
- {
- fixed_ = binid >= 0;
- binid_ = binid;
-- disallowed_ = true;
-+ disallowed_ = fixed_;
- }
-
- inline void binId(int idx) { binid_ = idx; }
-
-From 31391fd173249ad9b906390058e13b09238fadc8 Mon Sep 17 00:00:00 2001
-From: Ghostkeeper <rubend@tutanota.com>
-Date: Thu, 8 Oct 2020 11:06:58 +0200
-Subject: [PATCH 3/3] Align items to their starting position if all placed
- items are disallowed
-
-We shouldn't align items to disallowed areas. So place them in the starting position according to the alignment property.
-
-Lot of work to investigate. But very little code changes!
-
-Contributes to issue CURA-7754.
----
- include/libnest2d/placers/nfpplacer.hpp | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/include/libnest2d/placers/nfpplacer.hpp b/include/libnest2d/placers/nfpplacer.hpp
-index 96a8cff..b0ebb15 100644
---- a/include/libnest2d/placers/nfpplacer.hpp
-+++ b/include/libnest2d/placers/nfpplacer.hpp
-@@ -101,7 +101,7 @@ struct NfpPConfig {
- * alignment with the candidate item or do anything else.
- *
- * \param remaining A container with the remaining items waiting to be
-- * placed. You can use some features about the remaining items to alter to
-+ * placed. You can use some features about the remaining items to alter the
- * score of the current placement. If you know that you have to leave place
- * for other items as well, that might influence your decision about where
- * the current candidate should be placed. E.g. imagine three big circles
-@@ -735,7 +735,8 @@ class _NofitPolyPlacer: public PlacerBoilerplate<_NofitPolyPlacer<RawShape, TBin
- remlist.insert(remlist.end(), remaining.from, remaining.to);
- }
-
-- if(items_.empty()) {
-+ if(std::all_of(items_.begin(), items_.end(),
-+ [](const Item& item) { return item.isDisallowedArea(); })) {
- setInitialPosition(item);
- best_overfit = overfit(item.transformedShape(), bin_);
- can_pack = best_overfit <= 0;