OrcaSlicer/src/libslic3r/ParameterUtils.cpp
Aidan 17fec83e5b
Flatpak build (#4175)
* Initial commit for the builder

* fix wx, use hack to install into /app

* add some workarounds for /usr/local

* fix up rest of paths

* attempt to fix wxwebview undef

* figure out why wxwidgets isnt getting its patches applied

* do "proper" patching of wxwidgets

* Flip the flag

* actually append the /usr/local

* restrict package finding to flatpak only

* Update the destdir stuff for mpfr, gmp

* Transfer over all the _destdir, again

* update patch command for all other plats

* initial ci check

* what even happened

* clear ci image

* I doubt this will do anything

* do cleanup after running each step

* remove build objects for flatpak ci

* compress debug info

* Fix MacOS build

* Try saving space after building deps

* No debug info for now

* Do debug info, use thin static archives

* use BSD flag, not --thin

* try building with lto

* Use release, no debug info

* remove lto

* Revert the last 5 commits

* It might require write perms

* Revert "It might require write perms"

This reverts commit 44cec58a57.

* Import fixes for merge

* remove some patch stuff

* the worst hack!

* remove uneeded patches

* Initial commit for the builder

* note to self, go back to regular wx

* attempt to fix wxwebview undef

* do "proper" patching of wxwidgets

* update patch command for all other plats

* what even happened

* -ldep_name-NOTFOUND is still here

* concat patches

* Build wx with flatpak

* more wx shenatigans

* fix a missing import

* build wx with proper flags

* fix imports and libs

* trigger ci

* try fixing mac and windows ci

* remove duplicate definition of freetype

* curl may not have openssl for a dep

* has openssl been found?

* force building

* build images on apple

* cleanup for review

* cleanup cmake files

---------

Co-authored-by: SoftFever <softfeverever@gmail.com>
2024-05-25 09:11:19 +08:00

46 lines
1.5 KiB
C++

#include "ParameterUtils.hpp"
#include <cassert>
namespace Slic3r {
std::vector<LayerPrintSequence> get_other_layers_print_sequence(int sequence_nums, const std::vector<int> &sequence)
{
std::vector<LayerPrintSequence> res;
if (sequence_nums == 0 || sequence.empty())
return res;
assert(sequence.size() % sequence_nums == 0);
res.reserve(sequence_nums);
size_t item_nums = sequence.size() / sequence_nums;
for (int i = 0; i < sequence_nums; ++i) {
std::vector<int> item;
item.assign(sequence.begin() + i * item_nums, sequence.begin() + ((i + 1) * item_nums));
assert(item.size() > 2);
std::pair<std::pair<int, int>, std::vector<int>> res_item;
res_item.first.first = item[0];
res_item.first.second = item[1];
res_item.second.assign(item.begin() + 2, item.end());
res.emplace_back(std::move(res_item));
}
return res;
}
void get_other_layers_print_sequence(const std::vector<LayerPrintSequence> &customize_sequences, int &sequence_nums, std::vector<int> &sequence)
{
sequence_nums = 0;
sequence.clear();
if (customize_sequences.empty()) { return; }
sequence_nums = (int) customize_sequences.size();
for (const auto &customize_sequence : customize_sequences) {
sequence.push_back(customize_sequence.first.first);
sequence.push_back(customize_sequence.first.second);
sequence.insert(sequence.end(), customize_sequence.second.begin(), customize_sequence.second.end());
}
}
}; // namespace Slic3r