diff --git a/resources/data/hints.ini b/resources/data/hints.ini
index e7b1bb681..a79a8228a 100644
--- a/resources/data/hints.ini
+++ b/resources/data/hints.ini
@@ -48,6 +48,7 @@
# enabled_tags = ...
# disabled_tags = ...
# supported tags are: simple; advanced; expert; FFF; MMU; SLA; Windows; Linux; OSX;
+# and all filament types: PLA; PET; ABS; ASA; FLEX; HIPS; EDGE; NGEN; NYLON; PVA; PC; PP; PEI; PEEK; PEKK; POM; PSU; PVDF; SCAFF;
# Tags are case sensitive.
# FFF is affirmative for both one or more extruder printers.
# Algorithm shows hint only if ALL enabled tags are affirmative. (so never do enabled_tags = FFF; SLA;)
diff --git a/resources/icons/notification_info.svg b/resources/icons/notification_info.svg
new file mode 100644
index 000000000..e2db40745
--- /dev/null
+++ b/resources/icons/notification_info.svg
@@ -0,0 +1,67 @@
+
+
diff --git a/sandboxes/opencsg/Engine.cpp b/sandboxes/opencsg/Engine.cpp
index d8f1d3464..e64a47132 100644
--- a/sandboxes/opencsg/Engine.cpp
+++ b/sandboxes/opencsg/Engine.cpp
@@ -65,7 +65,7 @@ void CSGDisplay::render_scene()
glFlush();
}
-void Scene::set_print(uqptr &&print)
+void Scene::set_print(std::unique_ptr &&print)
{
m_print = std::move(print);
@@ -85,7 +85,7 @@ void CSGDisplay::SceneCache::clear()
primitives.clear();
}
-shptr CSGDisplay::SceneCache::add_mesh(const TriangleMesh &mesh)
+std::shared_ptr CSGDisplay::SceneCache::add_mesh(const TriangleMesh &mesh)
{
auto p = std::make_shared();
p->load_mesh(mesh);
@@ -94,7 +94,7 @@ shptr CSGDisplay::SceneCache::add_mesh(const TriangleMesh &mesh)
return p;
}
-shptr CSGDisplay::SceneCache::add_mesh(const TriangleMesh &mesh,
+std::shared_ptr CSGDisplay::SceneCache::add_mesh(const TriangleMesh &mesh,
OpenCSG::Operation o,
unsigned c)
{
diff --git a/sandboxes/opencsg/Engine.hpp b/sandboxes/opencsg/Engine.hpp
index fc76c1b31..114268ddc 100644
--- a/sandboxes/opencsg/Engine.hpp
+++ b/sandboxes/opencsg/Engine.hpp
@@ -17,11 +17,6 @@ class SLAPrint;
namespace GL {
-// Simple shorthands for smart pointers
-template using shptr = std::shared_ptr;
-template using uqptr = std::unique_ptr;
-template using wkptr = std::weak_ptr;
-
template> using vector = std::vector;
// remove empty weak pointers from a vector
@@ -61,7 +56,7 @@ public:
};
private:
- vector> m_listeners;
+ vector> m_listeners;
public:
virtual ~MouseInput() = default;
@@ -95,7 +90,7 @@ public:
call(&Listener::on_moved_to, m_listeners, x, y);
}
- void add_listener(shptr listener)
+ void add_listener(std::shared_ptr listener)
{
m_listeners.emplace_back(listener);
cleanup(m_listeners);
@@ -322,7 +317,7 @@ public:
// The scene is a wrapper around SLAPrint which holds the data to be visualized.
class Scene
{
- uqptr m_print;
+ std::unique_ptr m_print;
public:
// Subscribers will be notified if the model is changed. This might be a
@@ -340,19 +335,19 @@ public:
Scene();
~Scene();
- void set_print(uqptr &&print);
+ void set_print(std::unique_ptr &&print);
const SLAPrint * get_print() const { return m_print.get(); }
BoundingBoxf3 get_bounding_box() const;
- void add_listener(shptr listener)
+ void add_listener(std::shared_ptr listener)
{
m_listeners.emplace_back(listener);
cleanup(m_listeners);
}
private:
- vector> m_listeners;
+ vector> m_listeners;
};
// The basic Display. This is almost just an interface but will do all the
@@ -366,20 +361,20 @@ protected:
Vec2i m_size;
bool m_initialized = false;
- shptr m_camera;
+ std::shared_ptr m_camera;
FpsCounter m_fps_counter;
public:
- explicit Display(shptr camera = nullptr)
+ explicit Display(std::shared_ptr camera = nullptr)
: m_camera(camera ? camera : std::make_shared())
{}
~Display() override;
- shptr get_camera() const { return m_camera; }
- shptr get_camera() { return m_camera; }
- void set_camera(shptr cam) { m_camera = cam; }
+ std::shared_ptr get_camera() const { return m_camera; }
+ std::shared_ptr get_camera() { return m_camera; }
+ void set_camera(std::shared_ptr cam) { m_camera = cam; }
virtual void swap_buffers() = 0;
virtual void set_active(long width, long height);
@@ -410,14 +405,14 @@ protected:
// Cache the renderable primitives. These will be fetched when the scene
// is modified.
struct SceneCache {
- vector> primitives;
+ vector> primitives;
vector primitives_free;
vector primitives_csg;
void clear();
- shptr add_mesh(const TriangleMesh &mesh);
- shptr add_mesh(const TriangleMesh &mesh,
+ std::shared_ptr add_mesh(const TriangleMesh &mesh);
+ std::shared_ptr add_mesh(const TriangleMesh &mesh,
OpenCSG::Operation op,
unsigned covexity);
} m_scene_cache;
@@ -446,13 +441,13 @@ class Controller : public std::enable_shared_from_this,
Vec2i m_mouse_pos, m_mouse_pos_rprev, m_mouse_pos_lprev;
bool m_left_btn = false, m_right_btn = false;
- shptr m_scene;
- vector> m_displays;
+ std::shared_ptr m_scene;
+ vector> m_displays;
// Call a method of Camera on all the cameras of the attached displays
template
void call_cameras(F &&f, Args&&... args) {
- for (wkptr &l : m_displays)
+ for (std::weak_ptr &l : m_displays)
if (auto disp = l.lock()) if (auto cam = disp->get_camera())
(cam.get()->*f)(std::forward(args)...);
}
@@ -460,7 +455,7 @@ class Controller : public std::enable_shared_from_this,
public:
// Set the scene that will be controlled.
- void set_scene(shptr scene)
+ void set_scene(std::shared_ptr scene)
{
m_scene = scene;
m_scene->add_listener(shared_from_this());
@@ -468,7 +463,7 @@ public:
const Scene * get_scene() const { return m_scene.get(); }
- void add_display(shptr disp)
+ void add_display(std::shared_ptr disp)
{
m_displays.emplace_back(disp);
cleanup(m_displays);
diff --git a/sandboxes/opencsg/ShaderCSGDisplay.hpp b/sandboxes/opencsg/ShaderCSGDisplay.hpp
index bf0c3a424..0e2c763df 100644
--- a/sandboxes/opencsg/ShaderCSGDisplay.hpp
+++ b/sandboxes/opencsg/ShaderCSGDisplay.hpp
@@ -12,7 +12,7 @@ class CSGVolume: public Volume
class ShaderCSGDisplay: public Display {
protected:
- vector> m_volumes;
+ vector> m_volumes;
void add_mesh(const TriangleMesh &mesh);
public:
diff --git a/sandboxes/opencsg/main.cpp b/sandboxes/opencsg/main.cpp
index f5fb12493..f0627b974 100644
--- a/sandboxes/opencsg/main.cpp
+++ b/sandboxes/opencsg/main.cpp
@@ -34,7 +34,7 @@ using namespace Slic3r::GL;
class Renderer {
protected:
wxGLCanvas *m_canvas;
- shptr m_context;
+ std::shared_ptr m_context;
public:
Renderer(wxGLCanvas *c): m_canvas{c} {
@@ -86,16 +86,16 @@ public:
class Canvas: public wxGLCanvas
{
// One display is active at a time, the OCSGRenderer by default.
- shptr m_display;
+ std::shared_ptr m_display;
public:
template
Canvas(Args &&...args): wxGLCanvas(std::forward(args)...) {}
- shptr get_display() const { return m_display; }
+ std::shared_ptr get_display() const { return m_display; }
- void set_display(shptr d) { m_display = d; }
+ void set_display(std::shared_ptr d) { m_display = d; }
};
// Enumerate possible mouse events, we will record them.
@@ -197,14 +197,14 @@ public:
class MyFrame: public wxFrame
{
// Instantiate the 3D engine.
- shptr m_scene; // Model
- shptr