31{
32 json objects = json::array();
36 {
"instance_count", mo->
instances.size() },
40 json planes_json = json::array();
41 for (size_t i = 0; i < std::min(planes.size(), max_planes); ++i)
42 planes_json.push_back({ { "normal", to_json(planes[i].normal) },
43 { "area_mm2", std::round(double(planes[i].area) * 1000.) / 1000. },
44 { "center", to_json(planes[i].center) } });
47 obj["plane_count"] = planes.size();
48 obj["planes"] = std::move(planes_json);
49 }
50 objects.push_back(std::move(obj));
51 }
52
54 { "sources", source_paths },
55 { "note", "Lengths in mm. bbox_object and the plane normals and centers are in object coordinates: the parts as "
56 "currently transformed, without the instance transformation. --ground-face-normal and "
57 "--ground-face-point take values in these coordinates. area_mm2 uses instance 0's scale, "
58 "bbox_world is instance 0 on the plate." },
59 { "objects", std::move(objects) },
60 };
61
62
63 out << root.dump(2, ' ', false, json::error_handler_t::replace) << std::endl;
64}
std::string name
Definition Model.hpp:384
ModelInstancePtrs instances
Definition Model.hpp:390
const BoundingBoxf3 & raw_mesh_bounding_box() const
Definition Model.cpp:1739
size_t facets_count() const
Definition Model.cpp:2075
BoundingBoxf3 instance_bounding_box(size_t instance_idx, bool dont_translate=false) const
Definition Model.cpp:1778
ModelObjectPtrs objects
Definition Model.hpp:1702
nlohmann::json json
Definition MeshInspect.cpp:21
static json to_json(const Vec3d &v)
Definition MeshInspect.cpp:23
std::vector< LayOnFacePlane > lay_on_face_planes(const ModelObject &object, const Transform3d &inst_matrix)
Definition LayOnFace.cpp:21