#ifndef slic3r_TextLines_hpp_ #define slic3r_TextLines_hpp_ #include #include #include #include #include "slic3r/GUI/GLModel.hpp" #include "slic3r/Utils/EmbossStyleManager.hpp" namespace Slic3r { class ModelVolume; typedef std::vector ModelVolumePtrs; struct FontProp; } namespace Slic3r::GUI { class TextLinesModel { public: /// /// Initialize model and lines /// /// Transformation of text volume inside object (aka inside of instance) /// Vector of volumes to be sliced /// Contain Font file, size and align /// Count lines of embossed text(for veritcal alignment) void init(const Transform3d &text_tr, const ModelVolumePtrs &volumes_to_slice, /*const*/ Emboss::StyleManager &style_manager, unsigned count_lines); void render(const Transform3d &text_world); bool is_init() const { return m_model.is_initialized(); } void reset() { m_model.reset(); m_lines.clear(); } const Slic3r::Emboss::TextLines &get_lines() const { return m_lines; } private: Slic3r::Emboss::TextLines m_lines; // Keep model for visualization text lines GLModel m_model; }; } // namespace Slic3r::GUI namespace Slic3r::Emboss{ /// /// creation line without model for backend only /// /// Transformation of text volume inside object (aka inside of /// instance) Vector of volumes to be sliced Count lines of embossed /// text(for veritcal alignment) [output] line height in /// mm TextLines create_text_lines( const Transform3d &text_tr, const ModelVolumePtrs &volumes_to_slice, const FontFile &ff, const FontProp &fp, unsigned count_lines = 1, double *line_height_mm_ptr = nullptr ); } #endif // slic3r_TextLines_hpp_