QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
3d
qgsmaterialwidget.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsmaterialwidget.h
3
--------------------------------------
4
Date : July 2020
5
Copyright : (C) 2020 by Nyall Dawson
6
Email : nyall dot dawson at gmail dot com
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
#ifndef QGSMATERIALWIDGET_H
17
#define QGSMATERIALWIDGET_H
18
19
#include "ui_materialwidget.h"
20
21
#include <memory>
22
23
#include "
qgis.h
"
24
#include "qgis_gui.h"
25
26
#include <QDialog>
27
#include <QPointer>
28
#include <QWidget>
29
30
#define SIP_NO_FILE
31
32
class
QgsAbstractMaterialSettings
;
33
class
QgsVectorLayer
;
34
class
QDialogButtonBox;
35
45
class
GUI_EXPORT
QgsMaterialWidget
:
public
QgsPanelWidget
,
private
Ui::MaterialWidgetBase
46
{
47
Q_OBJECT
48
public
:
52
explicit
QgsMaterialWidget
( QWidget *parent =
nullptr
);
53
~QgsMaterialWidget
()
override
;
54
65
void
setTechnique
(
Qgis::MaterialRenderingTechnique
technique
);
66
77
Qgis::MaterialRenderingTechnique
technique
()
const
{
return
mTechnique; }
78
85
void
setFilterByTechnique(
bool
enabled );
86
93
bool
filterByTechnique
()
const
{
return
mFilterByTechnique; }
94
98
void
setSettings(
const
QgsAbstractMaterialSettings
*settings,
QgsVectorLayer
*layer );
99
103
std::unique_ptr< QgsAbstractMaterialSettings > settings();
104
108
void
setType(
const
QString &type );
109
110
void
setDockMode
(
bool
dockMode )
override
;
111
122
void
setMode(
Qgis::MaterialWidgetMode
mode );
123
124
public
slots:
125
129
void
setPreviewVisible(
bool
visible );
130
131
signals:
132
133
private
slots:
134
void
materialTypeChanged();
135
void
materialWidgetChanged();
136
137
private
:
138
void
updateMaterialWidget();
139
void
rebuildAvailableTypes();
140
bool
mPreviewVisible =
false
;
141
QPointer< QgsVectorLayer > mLayer;
142
143
std::unique_ptr<QgsAbstractMaterialSettings> mCurrentSettings;
144
145
bool
mFilterByTechnique =
false
;
146
Qgis::MaterialRenderingTechnique
mTechnique =
Qgis::MaterialRenderingTechnique::Triangles
;
147
Qgis::MaterialWidgetMode
mMode =
Qgis::MaterialWidgetMode::Full
;
148
};
149
150
158
class
GUI_EXPORT
QgsMaterialWidgetDialog
:
public
QDialog
159
{
160
Q_OBJECT
161
162
public
:
166
QgsMaterialWidgetDialog
(
const
QgsAbstractMaterialSettings
*
settings
, QWidget *parent
SIP_TRANSFERTHIS
=
nullptr
);
167
179
void
setTechnique
(
Qgis::MaterialRenderingTechnique
technique );
180
188
void
setFilterByTechnique
(
bool
enabled );
189
193
std::unique_ptr< QgsAbstractMaterialSettings >
settings
();
194
198
QDialogButtonBox *
buttonBox
();
199
200
private
:
201
QgsMaterialWidget
*mWidget =
nullptr
;
202
QDialogButtonBox *mButtonBox =
nullptr
;
203
};
204
205
206
#endif
// QGSMATERIALWIDGET_H
Qgis::MaterialWidgetMode
MaterialWidgetMode
Modes for material settings widgets.
Definition
qgis.h:4471
Qgis::MaterialWidgetMode::Full
@ Full
Shows all material settings.
Definition
qgis.h:4473
Qgis::MaterialRenderingTechnique
MaterialRenderingTechnique
Material rendering techniques.
Definition
qgis.h:4453
Qgis::MaterialRenderingTechnique::Triangles
@ Triangles
Triangle based rendering (default).
Definition
qgis.h:4454
QgsAbstractMaterialSettings
Abstract base class for material settings.
Definition
qgsabstractmaterialsettings.h:42
QgsMaterialWidgetDialog::setFilterByTechnique
void setFilterByTechnique(bool enabled)
Sets whether available materials should be filtered by technique.
Definition
qgsmaterialwidget.cpp:263
QgsMaterialWidgetDialog::setTechnique
void setTechnique(Qgis::MaterialRenderingTechnique technique)
Sets the required rendering technique which the material must support.
Definition
qgsmaterialwidget.cpp:258
QgsMaterialWidgetDialog::settings
std::unique_ptr< QgsAbstractMaterialSettings > settings()
Returns the current settings defined by the dialog.
Definition
qgsmaterialwidget.cpp:268
QgsMaterialWidgetDialog::buttonBox
QDialogButtonBox * buttonBox()
Returns the dialog's button box.
Definition
qgsmaterialwidget.cpp:273
QgsMaterialWidgetDialog::QgsMaterialWidgetDialog
QgsMaterialWidgetDialog(const QgsAbstractMaterialSettings *settings, QWidget *parent=nullptr)
Constructor for QgsMaterialWidgetDialog, initially showing the specified material settings.
Definition
qgsmaterialwidget.cpp:233
QgsMaterialWidget
A widget allowing users to customize a 3d material.
Definition
qgsmaterialwidget.h:46
QgsMaterialWidget::filterByTechnique
bool filterByTechnique() const
Returns whether available materials are filtered by technique.
Definition
qgsmaterialwidget.h:93
QgsMaterialWidget::QgsMaterialWidget
QgsMaterialWidget(QWidget *parent=nullptr)
Constructor for QgsMaterialWidget.
Definition
qgsmaterialwidget.cpp:38
QgsMaterialWidget::setTechnique
void setTechnique(Qgis::MaterialRenderingTechnique technique)
Sets the required rendering technique which the material must support.
Definition
qgsmaterialwidget.cpp:61
QgsMaterialWidget::technique
Qgis::MaterialRenderingTechnique technique() const
Returns the required rendering technique which the material must support.
Definition
qgsmaterialwidget.h:77
QgsMaterialWidget::~QgsMaterialWidget
~QgsMaterialWidget() override
QgsPanelWidget::QgsPanelWidget
QgsPanelWidget(QWidget *parent=nullptr)
Base class for any widget that can be shown as an inline panel.
Definition
qgspanelwidget.cpp:30
QgsPanelWidget::setDockMode
virtual void setDockMode(bool dockMode)
Set the widget in dock mode which tells the widget to emit panel widgets and not open dialogs.
Definition
qgspanelwidget.cpp:74
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
qgis.h
SIP_TRANSFERTHIS
#define SIP_TRANSFERTHIS
Definition
qgis_sip.h:52
Generated on
for QGIS API Documentation by
1.17.0