2018-06-14 19:48:06 +00:00
|
|
|
#ifndef slic3r_LambdaObjectDialog_hpp_
|
|
|
|
#define slic3r_LambdaObjectDialog_hpp_
|
|
|
|
|
2020-03-04 08:24:13 +00:00
|
|
|
#include <vector>
|
|
|
|
#include <memory>
|
2018-06-14 19:48:06 +00:00
|
|
|
|
|
|
|
#include <wx/dialog.h>
|
|
|
|
#include <wx/sizer.h>
|
|
|
|
#include <wx/choicebk.h>
|
|
|
|
|
2018-09-17 13:12:13 +00:00
|
|
|
class wxPanel;
|
|
|
|
|
2018-06-14 19:48:06 +00:00
|
|
|
namespace Slic3r
|
|
|
|
{
|
|
|
|
namespace GUI
|
|
|
|
{
|
2018-10-05 21:29:15 +00:00
|
|
|
enum LambdaTypeIDs{
|
|
|
|
LambdaTypeBox,
|
|
|
|
LambdaTypeCylinder,
|
|
|
|
LambdaTypeSphere,
|
|
|
|
LambdaTypeSlab
|
|
|
|
};
|
|
|
|
|
|
|
|
struct OBJECT_PARAMETERS
|
|
|
|
{
|
|
|
|
LambdaTypeIDs type = LambdaTypeBox;
|
|
|
|
double dim[3];// = { 1.0, 1.0, 1.0 };
|
|
|
|
int cyl_r = 1;
|
|
|
|
int cyl_h = 1;
|
|
|
|
double sph_rho = 1.0;
|
|
|
|
double slab_h = 1.0;
|
|
|
|
double slab_z = 0.0;
|
|
|
|
};
|
|
|
|
class ConfigOptionsGroup;
|
2018-06-14 19:48:06 +00:00
|
|
|
using ConfigOptionsGroupShp = std::shared_ptr<ConfigOptionsGroup>;
|
|
|
|
class LambdaObjectDialog : public wxDialog
|
|
|
|
{
|
2018-09-17 13:12:13 +00:00
|
|
|
wxChoicebook* m_modificator_options_book = nullptr;
|
2018-06-14 19:48:06 +00:00
|
|
|
std::vector <ConfigOptionsGroupShp> m_optgroups;
|
2018-09-17 13:12:13 +00:00
|
|
|
wxString m_type_name;
|
|
|
|
wxPanel* m_panel = nullptr;
|
2018-06-14 19:48:06 +00:00
|
|
|
public:
|
2018-09-17 13:12:13 +00:00
|
|
|
LambdaObjectDialog(wxWindow* parent,
|
|
|
|
const wxString type_name = wxEmptyString);
|
2018-10-31 11:56:08 +00:00
|
|
|
~LambdaObjectDialog() {}
|
2018-06-14 19:48:06 +00:00
|
|
|
|
|
|
|
bool CanClose() { return true; } // ???
|
2018-10-31 11:26:57 +00:00
|
|
|
OBJECT_PARAMETERS& ObjectParameters() { return object_parameters; }
|
2018-06-14 19:48:06 +00:00
|
|
|
|
2018-09-17 13:12:13 +00:00
|
|
|
ConfigOptionsGroupShp init_modificator_options_page(const wxString& title);
|
2018-06-14 19:48:06 +00:00
|
|
|
|
|
|
|
// Note whether the window was already closed, so a pending update is not executed.
|
|
|
|
bool m_already_closed = false;
|
|
|
|
OBJECT_PARAMETERS object_parameters;
|
|
|
|
wxBoxSizer* sizer = nullptr;
|
|
|
|
};
|
|
|
|
} //namespace GUI
|
|
|
|
} //namespace Slic3r
|
|
|
|
#endif //slic3r_LambdaObjectDialog_hpp_
|