30#include "moc_qgsrenderermeshpropertieswidget.cpp"
32using namespace Qt::StringLiterals;
47 mMeshRendererActiveDatasetWidget->setLayer( mMeshLayer );
48 mMeshRendererScalarSettingsWidget->setLayer( mMeshLayer );
49 mMeshRendererScalarSettingsWidget->setCanvas(
mMapCanvas );
53 mMeshRendererVectorSettingsWidget->setLayer( mMeshLayer );
54 m3dAveragingSettingsWidget->setLayer( mMeshLayer );
59 mBlendModeComboBox->setBlendMode( mMeshLayer->blendMode() );
60 connect( mBlendModeComboBox,
static_cast<void ( QComboBox::* )(
int )
>( &QComboBox::currentIndexChanged ),
this, &
QgsPanelWidget::widgetChanged );
62 mOpacityWidget->setOpacity( mMeshLayer->opacity() );
88 const bool edgeMeshRenderingIsEnabled = mEdgeMeshGroup->isChecked();
90 edgeMeshSettings.
setEnabled( edgeMeshRenderingIsEnabled );
93 const bool nativeMeshRenderingIsEnabled = mNativeMeshGroup->isChecked();
95 nativeMeshSettings.
setEnabled( nativeMeshRenderingIsEnabled );
98 const bool triangularMeshRenderingIsEnabled = mTriangularMeshGroup->isChecked();
100 triangularMeshSettings.
setEnabled( triangularMeshRenderingIsEnabled );
103 int activeScalarDatasetGroupIndex = mMeshRendererActiveDatasetWidget->activeScalarDatasetGroup();
104 if ( !mContoursGroupBox->isChecked() )
105 activeScalarDatasetGroupIndex = -1;
108 int activeVectorDatasetGroupIndex = mMeshRendererActiveDatasetWidget->activeVectorDatasetGroup();
109 if ( !mVectorsGroupBox->isChecked() )
110 activeVectorDatasetGroupIndex = -1;
118 if ( activeScalarDatasetGroupIndex > -1 )
119 settings.
setScalarSettings( activeScalarDatasetGroupIndex, mMeshRendererScalarSettingsWidget->settings() );
122 if ( activeVectorDatasetGroupIndex > -1 )
123 settings.
setVectorSettings( activeVectorDatasetGroupIndex, mMeshRendererVectorSettingsWidget->settings() );
125 const QgsMeshDatasetIndex staticScalarDatasetIndex( activeScalarDatasetGroupIndex, mMeshLayer->staticScalarDatasetIndex().dataset() );
126 const QgsMeshDatasetIndex staticVectorDatasetIndex( activeVectorDatasetGroupIndex, mMeshLayer->staticVectorDatasetIndex().dataset() );
127 mMeshLayer->setStaticScalarDatasetIndex( staticScalarDatasetIndex );
128 mMeshLayer->setStaticVectorDatasetIndex( staticVectorDatasetIndex );
131 mMeshLayer->setBlendMode( mBlendModeComboBox->blendMode() );
132 mLayer->setOpacity( mOpacityWidget->opacity() );
134 const std::unique_ptr<QgsMesh3DAveragingMethod> averagingMethod( m3dAveragingSettingsWidget->averagingMethod() );
136 mMeshLayer->setRendererSettings( settings );
137 mMeshLayer->triggerRepaint();
139 settingsTab->setValue( mStyleOptionsTab->currentIndex() );
144 QgsMeshLayer *ml = qobject_cast<QgsMeshLayer *>( mapLayer );
148 mMeshRendererActiveDatasetWidget->setLayer( ml );
152 m3dAveragingSettingsWidget->setLayer( ml );
157 syncToLayerPrivate();
160void QgsRendererMeshPropertiesWidget::syncToLayerPrivate()
165 mMeshRendererActiveDatasetWidget->syncToLayer();
166 mNativeMeshSettingsWidget->syncToLayer();
167 mTriangularMeshSettingsWidget->syncToLayer();
168 mEdgeMeshSettingsWidget->syncToLayer();
169 m3dAveragingSettingsWidget->syncToLayer();
179 mFaceMeshGroupBox->setVisible( hasFaces || !mMeshLayer->
isValid() );
182 mEdgeMeshGroupBox->setVisible( hasEdges || !mMeshLayer->
isValid() );
187void QgsRendererMeshPropertiesWidget::onActiveScalarGroupChanged(
int groupIndex )
189 mMeshRendererScalarSettingsWidget->setActiveDatasetGroup( groupIndex );
190 mMeshRendererScalarSettingsWidget->syncToLayer();
191 mContoursGroupBox->setChecked( groupIndex >= 0 );
192 mContoursGroupBox->setEnabled( groupIndex >= 0 );
195void QgsRendererMeshPropertiesWidget::onActiveVectorGroupChanged(
int groupIndex )
197 if ( groupIndex >= 0 && !mMeshLayer->datasetGroupMetadata( groupIndex ).isVector() )
199 mMeshRendererVectorSettingsWidget->setActiveDatasetGroup( groupIndex );
200 mMeshRendererVectorSettingsWidget->syncToLayer();
201 mVectorsGroupBox->setChecked( groupIndex >= 0 );
202 mVectorsGroupBox->setEnabled( groupIndex >= 0 );
Map canvas is a class for displaying all GIS data types on a canvas.
Base class for all map layer types.
void dataChanged()
Data of layer changed.
An index that identifies the dataset group (e.g.
Represents a mesh layer supporting display of data on structured or unstructured meshes.
bool contains(const QgsMesh::ElementType &type) const
Returns whether the mesh contains at mesh elements of given type.
QgsMeshRendererSettings rendererSettings() const
Returns renderer settings.
Represents a mesh renderer settings for mesh objects.
void setEnabled(bool enabled)
Sets whether mesh structure rendering is enabled.
bool isEnabled() const
Returns whether mesh structure rendering is enabled.
Represents all mesh renderer settings.
void setAveragingMethod(QgsMesh3DAveragingMethod *method)
Sets averaging method for conversion of 3d stacked mesh data to 2d data.
void setActiveVectorDatasetGroup(int activeVectorDatasetGroup)
Sets the active vector dataset group.
int activeVectorDatasetGroup() const
Returns the active vector dataset group.
void setEdgeMeshSettings(const QgsMeshRendererMeshSettings &settings)
Sets new edge mesh renderer settings.
int activeScalarDatasetGroup() const
Returns the active scalar dataset group.
void setActiveScalarDatasetGroup(int activeScalarDatasetGroup)
Sets the active scalar dataset group.
void setVectorSettings(int groupIndex, const QgsMeshRendererVectorSettings &settings)
Sets new renderer settings.
void setTriangularMeshSettings(const QgsMeshRendererMeshSettings &settings)
Sets new triangular mesh renderer settings.
QgsMeshRendererMeshSettings edgeMeshSettings() const
Returns edge mesh renderer settings.
QgsMeshRendererMeshSettings nativeMeshSettings() const
Returns native mesh renderer settings.
void setScalarSettings(int groupIndex, const QgsMeshRendererScalarSettings &settings)
Sets new renderer settings.
QgsMeshRendererMeshSettings triangularMeshSettings() const
Returns triangular mesh renderer settings.
void setNativeMeshSettings(const QgsMeshRendererMeshSettings &settings)
Sets new native mesh renderer settings, triggers repaint.
static bool layerIsContainedInGroupLayer(QgsProject *project, QgsMapLayer *layer)
Returns true if the specified layer is a child layer from any QgsGroupLayer in the given project.
static QgsProject * instance()
Returns the QgsProject singleton instance.
T value(const QString &dynamicKeyPart=QString()) const
Returns settings value.
An integer settings entry.
static QgsSettingsTreeNode * sTreeWindowState