505{
508
509
515 break;
521 break;
527 break;
533 break;
539 break;
545 break;
555 break;
561 break;
567 break;
573 break;
579 break;
585 break;
591 break;
596 break;
597
598
601
606 break;
607
608
615 break;
616
617
619 {
622 this->
stop(
"An empty triangle mesh found");
623 return;
624 }
625
626 {
627
629 int max_id = min_id;
631 for (const int tri_id : face) {
633 this->
stop(
"Malformed triangle mesh");
634 return;
635 }
636 min_id = std::min(min_id, tri_id);
637 max_id = std::max(max_id, tri_id);
638 }
639 }
640
641
643 face -=
Vec3i(min_id, min_id, min_id);
644
650 }
651
652
655
660 }
661 else
662
664
668 break;
669 }
670
675 break;
676
680 break;
681
685 break;
686
688 double print_z = double(atof(
m_value[0].c_str()));
689 int extruder = atoi(
m_value[1].c_str());
690 const std::string& color=
m_value[2];
692 const std::string& extra=
m_value[4];
693
695
696 for (std::string& val:
m_value)
697 val.clear();
698 break;
699 }
700
703
707 for (std::string& val:
m_value)
708 val.clear();
709 break;
710 }
711
714
715
716
717
718
719
720
722 }
723 else if (strncmp(
m_value[0].c_str(),
"slic3r.", 7) == 0) {
724 const char *opt_key =
m_value[0].c_str() + 7;
726 ModelConfig *config = nullptr;
732 }
737 config = &it->second;
738 }
739 if (config)
742
744 std::vector<coordf_t>
data;
745 for (;;) {
746 char *
end = strchr(p,
';');
747 if (end != nullptr)
749 data.emplace_back(
float(atof(p)));
750 if (end == nullptr)
751 break;
753 }
755 }
757
758 unsigned char coord_idx = 0;
761 for (;;) {
762 char *
end = strchr(p,
';');
763 if (end != nullptr)
765
766 point(coord_idx) = float(atof(p));
767 if (++coord_idx == 5) {
769 coord_idx = 0;
770 }
771 if (end == nullptr)
772 break;
774 }
776 }
778 m_object && strcmp(opt_key,
"layer_height_range") == 0) {
779
781 char*
end = strchr(p,
';');
783
786 }
788 if (strcmp(opt_key, "modifier") == 0) {
789
790
792 }
793 else if (strcmp(opt_key, "volume_type") == 0)
795 else if (strcmp(opt_key, "matrix") == 0)
797 else if (strcmp(opt_key, "source_file") == 0)
799 else if (strcmp(opt_key, "source_object_id") == 0)
801 else if (strcmp(opt_key, "source_volume_id") == 0)
803 else if (strcmp(opt_key, "source_offset_x") == 0)
805 else if (strcmp(opt_key, "source_offset_y") == 0)
807 else if (strcmp(opt_key, "source_offset_z") == 0)
809 else if (strcmp(opt_key, "source_in_inches") == 0)
811 else if (strcmp(opt_key, "source_in_meters") == 0)
813 else if (strcmp(opt_key, "source_is_builtin_volume") == 0)
815 }
816 }
817 else if (
m_path.size() == 3) {
821 }
825 }
826 }
830 }
833 }
834
837 break;
838 default:
839 break;
840 }
842}
const char * SLIC3RPE_AMF_VERSION
Definition AMF.cpp:53
const char * SLIC3R_CONFIG_TYPE
Definition AMF.cpp:55
std::pair< coordf_t, coordf_t > t_layer_height_range
Definition UndoRedo.hpp:14
The matrix class, also used for vectors and row-vectors.
Definition Matrix.h:180
static size_t load_from_gcode_string_legacy(ConfigBase &config, const char *str, ConfigSubstitutionContext &substitutions)
Definition Config.cpp:804
t_optiondef_map options
Definition Config.hpp:2065
void set(const std::vector< coordf_t > &data)
Definition Model.hpp:193
CustomGCode::Info custom_gcode_per_print_z
Definition Model.hpp:1259
ModelConfigObject config
Definition Model.hpp:148
t_model_material_attributes attributes
Definition Model.hpp:146
ModelConfigObject config
Definition Model.hpp:339
std::string name
Definition Model.hpp:330
sla::SupportPoints sla_support_points
Definition Model.hpp:351
sla::PointsStatus sla_points_status
Definition Model.hpp:354
t_layer_config_ranges layer_config_ranges
Definition Model.hpp:341
LayerHeightProfile layer_height_profile
Definition Model.hpp:344
void calculate_convex_hull()
Definition Model.cpp:2098
void set_type(const ModelVolumeType t)
Definition Model.hpp:838
static ModelVolumeType type_from_string(const std::string &s)
Definition Model.cpp:2117
void center_geometry_after_creation(bool update_source_offset=true)
Definition Model.cpp:2082
ModelConfigObject config
Definition Model.hpp:820
void set_mesh(const TriangleMesh &mesh)
Definition Model.hpp:810
std::string name
Definition Model.hpp:755
Source source
Definition Model.hpp:774
static EIGEN_DEVICE_FUNC const Transform Identity()
Returns an identity transformation.
Definition Transform.h:539
EIGEN_DEVICE_FUNC bool isApprox(const Transform &other, const typename NumTraits< Scalar >::Real &prec=NumTraits< Scalar >::dummy_precision()) const
Definition Transform.h:647
static constexpr char SingleExtruderMode[]
Definition CustomGCode.hpp:58
static constexpr char MultiAsSingleMode[]
Definition CustomGCode.hpp:59
@ MultiAsSingle
Definition CustomGCode.hpp:51
@ SingleExtruder
Definition CustomGCode.hpp:50
@ MultiExtruder
Definition CustomGCode.hpp:54
Type
Definition CustomGCode.hpp:14
Transform3d transform3d_from_string(const std::string &transform_str)
Definition Geometry.cpp:679
Eigen::Matrix< int, 3, 1, Eigen::DontAlign > Vec3i
Definition Point.hpp:40
ModelVolumeType
Definition Model.hpp:310
float its_volume(const indexed_triangle_set &its)
Definition TriangleMesh.cpp:1403
auto range(Cont &&cont)
Definition libslic3r.h:356
bool is_decimal_separator_point()
Definition LocalesUtils.cpp:47
const PrintConfigDef print_config_def
Definition PrintConfig.cpp:4288
void its_flip_triangles(indexed_triangle_set &its)
Definition TriangleMesh.cpp:737
int its_compactify_vertices(indexed_triangle_set &its, bool shrink_to_fit)
Definition TriangleMesh.cpp:765
constexpr auto data(C &c) -> decltype(c.data())
Definition span.hpp:195
IGL_INLINE void mode(const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &X, const int d, Eigen::Matrix< T, Eigen::Dynamic, 1 > &M)
Definition mode.cpp:14
S::iterator end(S &sh, const PathTag &)
Definition geometry_traits.hpp:620
bool deltaz_set
Definition AMF.cpp:187
float deltax
Definition AMF.cpp:180
bool mirrorx_set
Definition AMF.cpp:206
bool printable
Definition AMF.cpp:212
bool deltay_set
Definition AMF.cpp:184
float scalex
Definition AMF.cpp:198
float rz
Definition AMF.cpp:195
float mirrory
Definition AMF.cpp:207
bool rz_set
Definition AMF.cpp:196
bool mirrory_set
Definition AMF.cpp:208
bool mirrorz_set
Definition AMF.cpp:210
bool deltax_set
Definition AMF.cpp:181
bool scalex_set
Definition AMF.cpp:199
bool scalez_set
Definition AMF.cpp:203
float mirrorz
Definition AMF.cpp:209
float deltay
Definition AMF.cpp:183
float deltaz
Definition AMF.cpp:186
float ry
Definition AMF.cpp:192
bool rx_set
Definition AMF.cpp:190
float scaley
Definition AMF.cpp:200
float scalez
Definition AMF.cpp:202
float rx
Definition AMF.cpp:189
bool scaley_set
Definition AMF.cpp:201
bool ry_set
Definition AMF.cpp:193
float mirrorx
Definition AMF.cpp:205
void stop(const std::string &msg=std::string())
Definition AMF.cpp:72
std::vector< Vec3i > m_volume_facets
Definition AMF.cpp:247
ModelObject * m_object
Definition AMF.cpp:239
unsigned int m_version
Definition AMF.cpp:227
Transform3d m_volume_transform
Definition AMF.cpp:249
ModelMaterial * m_material
Definition AMF.cpp:251
Instance * m_instance
Definition AMF.cpp:253
std::vector< Vec3f > m_object_vertices
Definition AMF.cpp:243
ModelVolume * m_volume
Definition AMF.cpp:245
Mode mode
Definition CustomGCode.hpp:64
std::vector< Item > gcodes
Definition CustomGCode.hpp:65
Geometry::Transformation transform
Definition Model.hpp:763
int object_idx
Definition Model.hpp:760
bool is_from_builtin_objects
Definition Model.hpp:766
Vec3d mesh_offset
Definition Model.hpp:762
std::string input_file
Definition Model.hpp:759
bool is_converted_from_inches
Definition Model.hpp:764
bool is_converted_from_meters
Definition Model.hpp:765
int volume_idx
Definition Model.hpp:761