NDEVR
API Documentation
ModelTileGroupEditor.h
1#pragma once
2#include "DLLInfo.h"
3#if NDEVR_MODEL_TILE_CONTAINER
4#include <NDEVR/Editor.h>
5#include <NDEVR/QTModelManager.h>
6#include <NDEVR/QTDesignObject.h>
7namespace Ui {
8 class GeometryToSymbolUI;
9
10}
11class QBoxLayout;
12namespace NDEVR
13{
14 class Button;
15 class ModelTileGroup;
16 class LibraryManager;
17 class ModelTileOptions;
22 class NDEVR_API ModelTileGroupEditor : public Editor
23 {
24 Q_OBJECT
25 public:
31 ModelTileGroupEditor(DynamicPointer<QTDesignObject> object, QWidget* parent = nullptr);
36 ModelTileGroupEditor(QWidget* parent = nullptr);
41 void setTarget(const DynamicPointer<QTDesignObject>& object) override;
45 void updateValues() override;
49 static void RegisterEditor();
50 protected:
55 void tileModel(const ModelTileOptions& options);
60 void extrudeModel(const Polyline<3, fltp08> polyline_extrusion);
64 void init();
69 void loadDefaultSettings(bool reset_if_no_exist);
73 void saveDefaultSettings();
78 void setSettings(const ModelTileOptions& options);
83 void setOptionsFromUI(ModelTileOptions& options) const;
87 void _updateFromUI();
92 bool prepareTileModel();
97 ModelTileGroup tileGroup();
98 public slots:
102 void updateFromUISlot();
107 void onModelChosen(const Buffer<UUID>& selected);
108 private:
109 Ui::GeometryToSymbolUI* ui;
110 Model m_tile_group;
111 Model m_model_to_tile;
112 Dictionary<String, QBoxLayout*> m_layouts;
113 bool m_has_edited = false;
114 };
115}
116#endif
A core widget that allows the user to click one of many button types.
Definition Button.h:68
A base class for displaying options for editing a single DesignObject, typically a Model.
Definition Editor.h:58
Manages loading Models from a group that is stored either on a remote server or locally on the disk i...
A Model subclass that manages tiling (repeating) a source model along a path or surface.
The primary namespace for the NDEVR SDK.