NDEVR
API Documentation
SolidMaterialEditor.h
1/*--------------------------------------------------------------------------------------------
2Copyright (c) 2019, NDEVR LLC
3tyler.parke@ndevr.org
4 __ __ ____ _____ __ __ _______
5 | \ | | | __ \ | ___|\ \ / / | __ \
6 | \ | | | | \ \ | |___ \ \ / / | |__) |
7 | . \| | | |__/ / | |___ \ V / | _ /
8 | |\ |_|_____/__|_____|___\_/____| | \ \
9 |__| \__________________________________| \__\
10
11Subject to the terms of the Enterprise+ Agreement, NDEVR hereby grants
12Licensee a limited, non-exclusive, non-transferable, royalty-free license
13(without the right to sublicense) to use the API solely for the purpose of
14Licensee's internal development efforts to develop applications for which
15the API was provided.
16
17The above copyright notice and this permission notice shall be included in all
18copies or substantial portions of the Software.
19
20THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
21INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
22PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
23FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
24OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25DEALINGS IN THE SOFTWARE.
26
27Library: NDEVR
28File: SolidMaterialEditor
29Included in API: True
30Author(s): Tyler Parke
31 *-----------------------------------------------------------------------------------------**/
32#pragma once
33#include <NDEVR/Editor.h>
34#include <QWidget>
35namespace Ui
36{
37 class SolidMaterialEditorUI;
38}
39namespace NDEVR
40{
47 {
48 Q_OBJECT
49 public:
55 SolidMaterialEditor(const DynamicPointer<QTDesignObject>& object, QWidget *parent = Q_NULLPTR);
61 virtual void requestScrollEnabled(bool enabled) override;
66 void setHorizontal(bool horizontal) override;
71 EditorShowMode showMode() const override;
72 protected:
74 virtual void updateValues() override;
82 private slots:
84 void setMaterialCoordinateMode();
86 void updateShadingModel();
88 void copySettingsFrom();
89
91 void updateShininessFromLineEdit();
93 void updateShininessFromSlider();
95 void updateTransparencyFromLineEdit();
97 void updateTransparencyFromSlider();
98
99 protected:
101 Ui::SolidMaterialEditorUI* ui;
102 bool m_updating = false;
103 };
104
105}
The equivelent of std::vector but with a bit more control.
Definition Buffer.hpp:58
Provides a modifiable pointer that has shared ownership of a dynamically allocated object.
Definition Pointer.hpp:356
Editor(QWidget *parent=nullptr)
Constructs an Editor with no design object target.
Container responsible for storing and setting the appearance of a Model or Geometry within the NDEVR ...
Definition Material.h:153
SolidMaterialEditor(const DynamicPointer< QTDesignObject > &object, QWidget *parent=Q_NULLPTR)
Constructs a solid material editor for the given design object.
Ui::SolidMaterialEditorUI * ui
The UI form for the solid material editor.
EditorShowMode showMode() const override
Retrieves the preferred show mode for this editor.
bool m_updating
Guard flag to prevent recursive updates.
virtual void requestScrollEnabled(bool enabled) override
Enables or disables scroll capability within the editor.
void setHorizontal(bool horizontal) override
Sets the editor layout to horizontal or vertical orientation.
Buffer< UVChannelEditWidget * > m_lighting_widgets
Widgets for editing UV channel lighting properties.
virtual void updateValues() override
Updates the displayed values from the underlying material data.
void updateUVLayout()
Updates the UV channel layout section of the editor.
Material material()
Retrieves the Material being edited.
A widget allowing the user to set the properties for a single channel of UVType for a Material.
The primary namespace for the NDEVR SDK.
EditorShowMode
Describes how an Editor should be displayed within the application UI.
Definition Editor.h:48