mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-19 20:57:53 -06:00
Add the full source of BambuStudio
using version 1.0.10
This commit is contained in:
parent
30bcadab3e
commit
1555904bef
3771 changed files with 1251328 additions and 0 deletions
118
src/libslic3r/GCode/ThumbnailData.hpp
Normal file
118
src/libslic3r/GCode/ThumbnailData.hpp
Normal file
|
@ -0,0 +1,118 @@
|
|||
#ifndef slic3r_ThumbnailData_hpp_
|
||||
#define slic3r_ThumbnailData_hpp_
|
||||
|
||||
#include <vector>
|
||||
#include "libslic3r/Point.hpp"
|
||||
#include "nlohmann/json.hpp"
|
||||
|
||||
namespace Slic3r {
|
||||
|
||||
//BBS: thumbnail_size in gcode file
|
||||
static std::vector<Vec2d> THUMBNAIL_SIZE = { Vec2d(50, 50) };
|
||||
|
||||
struct ThumbnailData
|
||||
{
|
||||
unsigned int width;
|
||||
unsigned int height;
|
||||
std::vector<unsigned char> pixels;
|
||||
|
||||
ThumbnailData() { reset(); }
|
||||
void set(unsigned int w, unsigned int h);
|
||||
void reset();
|
||||
|
||||
bool is_valid() const;
|
||||
void load_from(ThumbnailData &data) {
|
||||
this->set(data.width, data.height);
|
||||
pixels = data.pixels;
|
||||
}
|
||||
};
|
||||
|
||||
//BBS: add plate id into thumbnail render logic
|
||||
using ThumbnailsList = std::vector<ThumbnailData>;
|
||||
|
||||
struct ThumbnailsParams
|
||||
{
|
||||
const Vec2ds sizes;
|
||||
bool printable_only;
|
||||
bool parts_only;
|
||||
bool show_bed;
|
||||
bool transparent_background;
|
||||
int plate_id;
|
||||
};
|
||||
|
||||
typedef std::function<ThumbnailsList(const ThumbnailsParams&)> ThumbnailsGeneratorCallback;
|
||||
|
||||
struct BBoxData
|
||||
{
|
||||
int id; // object id
|
||||
std::vector<coordf_t> bbox; // first layer bounding box: min.{x,y}, max.{x,y}
|
||||
float area; // first layer area
|
||||
float layer_height;
|
||||
std::string name;
|
||||
void to_json(nlohmann::json& j) const{
|
||||
j = nlohmann::json{
|
||||
{"id",id},
|
||||
{"bbox",bbox},
|
||||
{"area",area},
|
||||
{"layer_height",layer_height},
|
||||
{"name",name}
|
||||
};
|
||||
}
|
||||
void from_json(const nlohmann::json& j) {
|
||||
j.at("id").get_to(id);
|
||||
j.at("bbox").get_to(bbox);
|
||||
j.at("area").get_to(area);
|
||||
j.at("layer_height").get_to(layer_height);
|
||||
j.at("name").get_to(name);
|
||||
}
|
||||
};
|
||||
|
||||
struct PlateBBoxData
|
||||
{
|
||||
std::vector<coordf_t> bbox_all; // total bounding box of all objects including brim
|
||||
std::vector<BBoxData> bbox_objs; // BBoxData of seperate object
|
||||
std::vector<int> filament_ids; // filament id used in curr plate
|
||||
std::vector<std::string> filament_colors;
|
||||
bool is_seq_print = false;
|
||||
int first_extruder = 0;
|
||||
float nozzle_diameter = 0.4;
|
||||
// version 1: use view type ColorPrint (filament color)
|
||||
// version 2: use view type FilamentId (filament id)
|
||||
int version = 2;
|
||||
|
||||
void to_json(nlohmann::json& j) const{
|
||||
j = nlohmann::json{ {"bbox_all",bbox_all} };
|
||||
j["filament_ids"] = filament_ids;
|
||||
j["filament_colors"] = filament_colors;
|
||||
j["is_seq_print"] = is_seq_print;
|
||||
j["first_extruder"] = first_extruder;
|
||||
j["nozzle_diameter"] = nozzle_diameter;
|
||||
j["version"] = version;
|
||||
for (const auto& bbox : bbox_objs) {
|
||||
nlohmann::json j_bbox;
|
||||
bbox.to_json(j_bbox);
|
||||
j["bbox_objects"].push_back(j_bbox);
|
||||
}
|
||||
}
|
||||
void from_json(const nlohmann::json& j) {
|
||||
j.at("bbox_all").get_to(bbox_all);
|
||||
j.at("filament_ids").get_to(filament_ids);
|
||||
j.at("filament_colors").get_to(filament_colors);
|
||||
j.at("is_seq_print").get_to(is_seq_print);
|
||||
j.at("first_extruder").get_to(first_extruder);
|
||||
j.at("nozzle_diameter").get_to(nozzle_diameter);
|
||||
j.at("version").get_to(version);
|
||||
for (auto& bbox_j : j.at("bbox_objects")) {
|
||||
BBoxData bbox_data;
|
||||
bbox_data.from_json(bbox_j);
|
||||
bbox_objs.push_back(bbox_data);
|
||||
}
|
||||
}
|
||||
bool is_valid() const {
|
||||
return !bbox_objs.empty();
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace Slic3r
|
||||
|
||||
#endif // slic3r_ThumbnailData_hpp_
|
Loading…
Add table
Add a link
Reference in a new issue