mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-08-13 14:49:00 +08:00
Cleaned up header for Plate2D.hpp; added comments.
This commit is contained in:
parent
2d386053f6
commit
1006abc5b8
@ -8,23 +8,23 @@
|
||||
|
||||
#include <vector>
|
||||
#include <functional>
|
||||
#include "Plater.hpp"
|
||||
|
||||
#include "ColorScheme.hpp"
|
||||
#include "Settings.hpp"
|
||||
#include "Plater.hpp"
|
||||
#include "Plater/PlaterObject.hpp"
|
||||
#include "Settings.hpp"
|
||||
#include "misc_ui.hpp"
|
||||
|
||||
#include "Log.hpp"
|
||||
|
||||
|
||||
namespace Slic3r { namespace GUI {
|
||||
|
||||
|
||||
// Setup for an Easter Egg with the canvas text.
|
||||
const wxDateTime today_date {wxDateTime::Now()};
|
||||
const wxDateTime special_date {13, wxDateTime::Month::Sep, 2006, 0, 0, 0, 0};
|
||||
const bool today_is_special = {today_date.GetDay() == special_date.GetDay() && today_date.GetMonth() == special_date.GetMonth()};
|
||||
|
||||
/// Enumeration for object nudges.
|
||||
enum class MoveDirection {
|
||||
Up, Down, Left, Right
|
||||
};
|
||||
@ -37,20 +37,26 @@ struct InstanceIdx {
|
||||
|
||||
class Plate2D : public wxPanel {
|
||||
public:
|
||||
Plate2D(wxWindow* parent, const wxSize& size, std::vector<PlaterObject>& _objects, std::shared_ptr<Model> _model, std::shared_ptr<Config> _config, std::shared_ptr<Settings> _settings);
|
||||
|
||||
/// Constructor. Keeps a reference to the main configuration, the model, and the gui settings.
|
||||
Plate2D(wxWindow* parent, const wxSize& size, std::vector<PlaterObject>& _objects, std::shared_ptr<Model> _model, std::shared_ptr<Config> _config, std::shared_ptr<Settings> _settings);
|
||||
|
||||
/// Read print bed size from config and calculate the scaled rendition of the bed given the draw canvas.
|
||||
void update_bed_size();
|
||||
|
||||
std::function<void (const unsigned int obj_idx)> on_select_object {};
|
||||
std::function<void ()> on_double_click {};
|
||||
|
||||
/// Do something on right-clicks.
|
||||
std::function<void (const wxPoint& pos)> on_right_click {};
|
||||
|
||||
/// Do something when right-clicks occur.
|
||||
std::function<void ()> on_double_click {};
|
||||
|
||||
/// Registered function to fire when an instance is moved.
|
||||
std::function<void ()> on_instances_moved {};
|
||||
|
||||
/// Registered function to fire when objects are selected.
|
||||
std::function<void (const unsigned int obj_idx)> on_select_object {};
|
||||
|
||||
/// Set the selected object instance.
|
||||
void set_selected (long obj, long inst) { this->selected_instance = {obj, inst}; }
|
||||
|
||||
private:
|
||||
@ -59,7 +65,7 @@ private:
|
||||
std::shared_ptr<Slic3r::Config> config;
|
||||
std::shared_ptr<Settings> settings;
|
||||
|
||||
// Different brushes to draw with, initialized from settings->Color during the constructor
|
||||
/// Different brushes to draw with, initialized from settings->Color during the constructor
|
||||
wxBrush objects_brush {};
|
||||
wxBrush instance_brush {};
|
||||
wxBrush selected_brush {};
|
||||
@ -75,8 +81,10 @@ private:
|
||||
|
||||
bool user_drawn_background {(the_os == OS::Mac ? false : true)};
|
||||
|
||||
/// The object id and selected
|
||||
/// Object and instance currently selected.
|
||||
InstanceIdx selected_instance {-1, -1};
|
||||
|
||||
/// Currently dragged object.
|
||||
InstanceIdx drag_object {-1, -1};
|
||||
|
||||
/// Handle mouse-move events
|
||||
@ -85,15 +93,13 @@ private:
|
||||
void mouse_up(wxMouseEvent& e);
|
||||
void mouse_dclick(wxMouseEvent& e);
|
||||
|
||||
wxPoint drag_start_pos {wxPoint(-1, -1)};
|
||||
wxPoint drag_start_pos {wxPoint(-1, -1)}; //< Start coordinate for object drags
|
||||
|
||||
void repaint(wxPaintEvent& e); //< Handle repaint events
|
||||
|
||||
/// Handle repaint events
|
||||
void repaint(wxPaintEvent& e);
|
||||
void nudge_key(wxKeyEvent& e); //< Handler for wxKeyEvents.
|
||||
|
||||
void nudge_key(wxKeyEvent& e);
|
||||
|
||||
void nudge(MoveDirection dir);
|
||||
void nudge(MoveDirection dir); //< Perform object nudge on plater.
|
||||
|
||||
/// Set/Update all of the colors used by the various brushes in the panel.
|
||||
void set_colors();
|
||||
@ -105,14 +111,13 @@ private:
|
||||
/// For a specific point, unscale it relative to the origin
|
||||
wxPoint unscaled_point_to_pixel(const wxPoint& in);
|
||||
|
||||
|
||||
/// Displacement needed to center bed.
|
||||
wxPoint bed_origin {};
|
||||
|
||||
/// private class variables to stash bits for drawing the print bed area.
|
||||
wxRealPoint print_center {};
|
||||
/// private class variables for drawing the print bed area.
|
||||
Slic3r::Polygon bed_polygon {};
|
||||
std::vector<wxPoint> grid {};
|
||||
wxRealPoint print_center {};
|
||||
|
||||
/// Displacement needed to center bed.
|
||||
wxPoint bed_origin {};
|
||||
|
||||
/// Set up the 2D canvas blank canvas text.
|
||||
/// Easter egg: Sept. 13, 2006. The first part ever printed by a RepRap to make another RepRap.
|
||||
@ -121,9 +126,12 @@ private:
|
||||
/// How much to scale the points to fit in the draw bounding box area.
|
||||
/// Expressed as pixel / mm
|
||||
double scaling_factor {1.0};
|
||||
|
||||
|
||||
const std::string LogChannel {"GUI_2D"};
|
||||
const std::string LogChannel {"GUI_2D"}; //< Which logging channel to use for this object.
|
||||
|
||||
/// Transform a (X,Y) pair relative to the GUI position of the bed
|
||||
/// and scale. Returns a Slic3r::Point in scaled units.
|
||||
Slic3r::Point point_to_model_units(coordf_t x, coordf_t y) {
|
||||
const auto& zero {this->bed_origin};
|
||||
return Slic3r::Point(
|
||||
@ -131,9 +139,13 @@ private:
|
||||
scale_(zero.y - y) / this->scaling_factor
|
||||
);
|
||||
}
|
||||
|
||||
/// Overloaded function to accept wxPoint and return scaled and offset Slic3r::Point
|
||||
Slic3r::Point point_to_model_units(const wxPoint& pt) {
|
||||
return this->point_to_model_units(pt.x, pt.y);
|
||||
}
|
||||
|
||||
/// Overloaded function to accept Slic3r::Pointf and return scaled and offset Slic3r::Point
|
||||
Slic3r::Point point_to_model_units(const Pointf& pt) {
|
||||
return this->point_to_model_units(pt.x, pt.y);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user