Added the bed texture for SL1

This commit is contained in:
bubnikv 2018-11-30 15:31:47 +01:00
parent 1f3b9d0657
commit 041fae8148
4 changed files with 38 additions and 55 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -309,7 +309,7 @@ GLCanvas3D::Bed::Bed()
bool GLCanvas3D::Bed::is_prusa() const bool GLCanvas3D::Bed::is_prusa() const
{ {
return (m_type == MK2) || (m_type == MK3); return (m_type == MK2) || (m_type == MK3) || (m_type == SL1);
} }
bool GLCanvas3D::Bed::is_custom() const bool GLCanvas3D::Bed::is_custom() const
@ -371,12 +371,17 @@ void GLCanvas3D::Bed::render(float theta) const
{ {
case MK2: case MK2:
{ {
_render_mk2(theta); _render_prusa("mk2", theta);
break; break;
} }
case MK3: case MK3:
{ {
_render_mk3(theta); _render_prusa("mk3", theta);
break;
}
case SL1:
{
_render_prusa("sl1", theta);
break; break;
} }
default: default:
@ -445,7 +450,15 @@ GLCanvas3D::Bed::EType GLCanvas3D::Bed::_detect_type() const
const Preset* curr = &bundle->printers.get_selected_preset(); const Preset* curr = &bundle->printers.get_selected_preset();
while (curr != nullptr) while (curr != nullptr)
{ {
if (curr->config.has("bed_shape") && _are_equal(m_shape, dynamic_cast<const ConfigOptionPoints*>(curr->config.option("bed_shape"))->values)) if (curr->config.has("bed_shape"))
{
if (boost::contains(curr->name, "SL1"))
{
//FIXME add a condition on the size of the print bed?
type = SL1;
break;
}
else if (_are_equal(m_shape, dynamic_cast<const ConfigOptionPoints*>(curr->config.option("bed_shape"))->values))
{ {
if ((curr->vendor != nullptr) && (curr->vendor->name == "Prusa Research")) if ((curr->vendor != nullptr) && (curr->vendor->name == "Prusa Research"))
{ {
@ -461,6 +474,7 @@ GLCanvas3D::Bed::EType GLCanvas3D::Bed::_detect_type() const
} }
} }
} }
}
curr = bundle->printers.get_preset_parent(*curr); curr = bundle->printers.get_preset_parent(*curr);
} }
@ -469,9 +483,9 @@ GLCanvas3D::Bed::EType GLCanvas3D::Bed::_detect_type() const
return type; return type;
} }
void GLCanvas3D::Bed::_render_mk2(float theta) const void GLCanvas3D::Bed::_render_prusa(const std::string &key, float theta) const
{ {
std::string filename = resources_dir() + "/icons/bed/mk2_top.png"; std::string filename = resources_dir() + "/icons/bed/" + key + "_top.png";
if ((m_top_texture.get_id() == 0) || (m_top_texture.get_source() != filename)) if ((m_top_texture.get_id() == 0) || (m_top_texture.get_source() != filename))
{ {
if (!m_top_texture.load_from_file(filename, true)) if (!m_top_texture.load_from_file(filename, true))
@ -481,7 +495,7 @@ void GLCanvas3D::Bed::_render_mk2(float theta) const
} }
} }
filename = resources_dir() + "/icons/bed/mk2_bottom.png"; filename = resources_dir() + "/icons/bed/" + key + "_bottom.png";
if ((m_bottom_texture.get_id() == 0) || (m_bottom_texture.get_source() != filename)) if ((m_bottom_texture.get_id() == 0) || (m_bottom_texture.get_source() != filename))
{ {
if (!m_bottom_texture.load_from_file(filename, true)) if (!m_bottom_texture.load_from_file(filename, true))
@ -491,36 +505,6 @@ void GLCanvas3D::Bed::_render_mk2(float theta) const
} }
} }
_render_prusa(theta);
}
void GLCanvas3D::Bed::_render_mk3(float theta) const
{
std::string filename = resources_dir() + "/icons/bed/mk3_top.png";
if ((m_top_texture.get_id() == 0) || (m_top_texture.get_source() != filename))
{
if (!m_top_texture.load_from_file(filename, true))
{
_render_custom();
return;
}
}
filename = resources_dir() + "/icons/bed/mk3_bottom.png";
if ((m_bottom_texture.get_id() == 0) || (m_bottom_texture.get_source() != filename))
{
if (!m_bottom_texture.load_from_file(filename, true))
{
_render_custom();
return;
}
}
_render_prusa(theta);
}
void GLCanvas3D::Bed::_render_prusa(float theta) const
{
unsigned int triangles_vcount = m_triangles.get_vertices_count(); unsigned int triangles_vcount = m_triangles.get_vertices_count();
if (triangles_vcount > 0) if (triangles_vcount > 0)
{ {

View File

@ -171,6 +171,7 @@ class GLCanvas3D
{ {
MK2, MK2,
MK3, MK3,
SL1,
Custom, Custom,
Num_Types Num_Types
}; };
@ -206,9 +207,7 @@ class GLCanvas3D
void _calc_triangles(const ExPolygon& poly); void _calc_triangles(const ExPolygon& poly);
void _calc_gridlines(const ExPolygon& poly, const BoundingBox& bed_bbox); void _calc_gridlines(const ExPolygon& poly, const BoundingBox& bed_bbox);
EType _detect_type() const; EType _detect_type() const;
void _render_mk2(float theta) const; void _render_prusa(const std::string &key, float theta) const;
void _render_mk3(float theta) const;
void _render_prusa(float theta) const;
void _render_custom() const; void _render_custom() const;
static bool _are_equal(const Pointfs& bed_1, const Pointfs& bed_2); static bool _are_equal(const Pointfs& bed_1, const Pointfs& bed_2);
}; };