Skip to content

Commit

Permalink
slider instead combo box
Browse files Browse the repository at this point in the history
  • Loading branch information
vcloarec authored and nyalldawson committed Oct 25, 2020
1 parent 40891e7 commit 3f8bc29
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 17 deletions.
32 changes: 15 additions & 17 deletions src/app/3d/qgsmesh3dsymbolwidget.cpp
Expand Up @@ -41,8 +41,7 @@ QgsMesh3dSymbolWidget::QgsMesh3dSymbolWidget( QgsMeshLayer *meshLayer, QWidget *
connect( mColorButtonWireframe, &QgsColorButton::colorChanged, this, &QgsMesh3dSymbolWidget::changed );
connect( mSpinBoxWireframeLineWidth, static_cast<void ( QDoubleSpinBox::* )( double )>( &QDoubleSpinBox::valueChanged ),
this, &QgsMesh3dSymbolWidget::changed );
connect( mComboBoxTriangleCount, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ),
this, &QgsMesh3dSymbolWidget::changed );
connect( mLodSlider, &QSlider::valueChanged, this, &QgsMesh3dSymbolWidget::changed );

connect( mColorRampShaderMinMaxReloadButton, &QPushButton::clicked, this, &QgsMesh3dSymbolWidget::reloadColorRampShaderMinMax );
connect( mColorRampShaderWidget, &QgsColorRampShaderWidget::widgetChanged, this, &QgsMesh3dSymbolWidget::changed );
Expand Down Expand Up @@ -80,7 +79,11 @@ void QgsMesh3dSymbolWidget::setSymbol( const QgsMesh3DSymbol *symbol )
mGroupBoxWireframe->setChecked( symbol->wireframeEnabled() );
mColorButtonWireframe->setColor( symbol->wireframeLineColor() );
mSpinBoxWireframeLineWidth->setValue( symbol->wireframeLineWidth() );
mComboBoxTriangleCount->setCurrentIndex( symbol->levelOfDetailIndex() );
if ( mLayer )
mLodSlider->setValue( mLayer->triangularMeshLevelOfDetailCount() - symbol->levelOfDetailIndex() - 1 );
else
mLodSlider->setValue( mLodSlider->maximum() );


mSpinBoxVerticaleScale->setValue( symbol->verticalScale() );
mComboBoxTextureType->setCurrentIndex( mComboBoxTextureType->findData( symbol->renderingStyle() ) );
Expand Down Expand Up @@ -121,26 +124,17 @@ void QgsMesh3dSymbolWidget::setLayer( QgsMeshLayer *meshLayer, bool updateSymbol
{
mLayer = meshLayer;

mComboBoxTriangleCount->clear();
if ( meshLayer && meshLayer->meshSimplificationSettings().isEnabled() )
{
mComboBoxTriangleCount->setVisible( true );
mLodSlider->setVisible( true );
mLabelTriangleCount->setVisible( true );
int lodCount = meshLayer->triangularMeshLevelOfDetailCount();
int originalMeshTrianglesCount = meshLayer->triangularMeshByLodIndex( 0 )->triangles().count();
QString text = tr( "Original (%1 triangles)" ).arg( originalMeshTrianglesCount );
mComboBoxTriangleCount->addItem( text );
for ( int i = 1; i < lodCount; ++i )
{
int triangleCount = meshLayer->triangularMeshByLodIndex( i )->triangles().count();
int reduction = originalMeshTrianglesCount / triangleCount;
text = tr( "1/%1 (%2 triangles)" ).arg( reduction ).arg( triangleCount );
mComboBoxTriangleCount->addItem( text );
}
mLodSlider->setTickInterval( 1 );
mLodSlider->setMaximum( lodCount - 1 );
}
else
{
mComboBoxTriangleCount->setVisible( false );
mLodSlider->setVisible( false );
mLabelTriangleCount->setVisible( false );
}

Expand Down Expand Up @@ -185,7 +179,11 @@ std::unique_ptr<QgsMesh3DSymbol> QgsMesh3dSymbolWidget::symbol() const
sym->setWireframeEnabled( mGroupBoxWireframe->isChecked() );
sym->setWireframeLineColor( mColorButtonWireframe->color() );
sym->setWireframeLineWidth( mSpinBoxWireframeLineWidth->value() );
sym->setLevelOfDetailIndex( mComboBoxTriangleCount->currentIndex() );
if ( mLayer )
sym->setLevelOfDetailIndex( mLayer->triangularMeshLevelOfDetailCount() - mLodSlider->sliderPosition() - 1 );
else
sym->setLevelOfDetailIndex( 0 );

sym->setVerticalScale( mSpinBoxVerticaleScale->value() );
sym->setRenderingStyle( static_cast<QgsMesh3DSymbol::RenderingStyle>( mComboBoxTextureType->currentData().toInt() ) );
sym->setSingleMeshColor( mMeshSingleColorButton->color() );
Expand Down
39 changes: 39 additions & 0 deletions src/ui/3d/qgsmesh3dpropswidget.ui
Expand Up @@ -308,6 +308,45 @@
</layout>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Rendering Style</string>
</property>
</widget>
</item>
<item row="2" column="0" colspan="2">
<widget class="QWidget" name="mMeshSingleColorWidget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>Mesh Color</string>
</property>
</widget>
</item>
<item>
<widget class="QgsColorButton" name="mMeshSingleColorButton">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
Expand Down

0 comments on commit 3f8bc29

Please sign in to comment.