Skip to content

Commit

Permalink
Initial implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
NEDJIMAbelgacem authored and wonder-sk committed Dec 8, 2020
1 parent 2c77449 commit b7fb38f
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/3d/qgs3dmapscene.cpp
Expand Up @@ -498,6 +498,7 @@ void Qgs3DMapScene::onFrameTriggered( float dt )
}

updateSceneState();
emit fpsCountChanged( 1.0f / dt );
}

void Qgs3DMapScene::createTerrain()
Expand Down
3 changes: 3 additions & 0 deletions src/3d/qgs3dmapscene.h
Expand Up @@ -126,6 +126,9 @@ class _3D_EXPORT Qgs3DMapScene : public Qt3DCore::QEntity
//! Emitted when the scene's state has changed
void sceneStateChanged();

//! Emmited when the FPS Count changes (at most every frame)
void fpsCountChanged( float fpsCount );

public slots:
//! Updates the temporale entities
void updateTemporal();
Expand Down
4 changes: 4 additions & 0 deletions src/app/3d/qgs3dmapcanvas.cpp
Expand Up @@ -94,8 +94,12 @@ void Qgs3DMapCanvas::setMap( Qgs3DMapSettings *map )
mEngine->setRootEntity( newScene );

if ( mScene )
{
disconnect( mScene, &Qgs3DMapScene::fpsCountChanged, this, &Qgs3DMapCanvas::fpsCountChanged );
mScene->deleteLater();
}
mScene = newScene;
connect( mScene, &Qgs3DMapScene::fpsCountChanged, this, &Qgs3DMapCanvas::fpsCountChanged );

delete mMap;
mMap = map;
Expand Down
3 changes: 3 additions & 0 deletions src/app/3d/qgs3dmapcanvas.h
Expand Up @@ -93,6 +93,9 @@ class Qgs3DMapCanvas : public QWidget
//! Emitted when the the map setting is changed
void mapSettingsChanged();

//! Emmited when the FPS Count changes (at most every frame)
void fpsCountChanged( float fpsCount );

private slots:
void updateTemporalRange( const QgsDateTimeRange &timeRange );

Expand Down
9 changes: 9 additions & 0 deletions src/app/3d/qgs3dmapcanvasdockwidget.cpp
Expand Up @@ -167,13 +167,16 @@ Qgs3DMapCanvasDockWidget::Qgs3DMapCanvasDockWidget( QWidget *parent )
QgisApp::instance()->messageBar()->pushSuccess( tr( "Save as Image" ), tr( "Successfully saved the 3D map to <a href=\"%1\">%2</a>" ).arg( QUrl::fromLocalFile( fileName ).toString(), QDir::toNativeSeparators( fileName ) ) );
} );

connect( mCanvas, &Qgs3DMapCanvas::fpsCountChanged, this, &Qgs3DMapCanvasDockWidget::updateFpsCount );

mMapToolIdentify = new Qgs3DMapToolIdentify( mCanvas );

mMapToolMeasureLine = new Qgs3DMapToolMeasureLine( mCanvas );

mLabelPendingJobs = new QLabel( this );
mProgressPendingJobs = new QProgressBar( this );
mProgressPendingJobs->setRange( 0, 0 );
mLabelFpsCounter = new QLabel( this );

mAnimationWidget = new Qgs3DAnimationWidget( this );
mAnimationWidget->setVisible( false );
Expand All @@ -185,6 +188,7 @@ Qgs3DMapCanvasDockWidget::Qgs3DMapCanvasDockWidget( QWidget *parent )
topLayout->addStretch( 1 );
topLayout->addWidget( mLabelPendingJobs );
topLayout->addWidget( mProgressPendingJobs );
topLayout->addWidget( mLabelFpsCounter );

QVBoxLayout *layout = new QVBoxLayout;
layout->setContentsMargins( 0, 0, 0, 0 );
Expand Down Expand Up @@ -396,6 +400,11 @@ void Qgs3DMapCanvasDockWidget::onTotalPendingJobsCountChanged()
mLabelPendingJobs->setText( tr( "Loading %1 tiles" ).arg( count ) );
}

void Qgs3DMapCanvasDockWidget::updateFpsCount( float fpsCount )
{
mLabelFpsCounter->setText( QString( "%1 fps" ).arg( fpsCount, 10, 'f', 2, QLatin1Char( ' ' ) ) );
}

void Qgs3DMapCanvasDockWidget::mapThemeMenuAboutToShow()
{
qDeleteAll( mMapThemeMenuPresetActions );
Expand Down
2 changes: 2 additions & 0 deletions src/app/3d/qgs3dmapcanvasdockwidget.h
Expand Up @@ -65,6 +65,7 @@ class APP_EXPORT Qgs3DMapCanvasDockWidget : public QgsDockWidget
void onMainCanvasLayersChanged();
void onMainCanvasColorChanged();
void onTotalPendingJobsCountChanged();
void updateFpsCount( float fpsCount );
void mapThemeMenuAboutToShow();
//! Renames the active map theme called \a theme to \a newTheme
void currentMapThemeRenamed( const QString &theme, const QString &newTheme );
Expand All @@ -75,6 +76,7 @@ class APP_EXPORT Qgs3DMapCanvasDockWidget : public QgsDockWidget
QgsMapCanvas *mMainCanvas = nullptr;
QProgressBar *mProgressPendingJobs = nullptr;
QLabel *mLabelPendingJobs = nullptr;
QLabel *mLabelFpsCounter = nullptr;
Qgs3DMapToolIdentify *mMapToolIdentify = nullptr;
Qgs3DMapToolMeasureLine *mMapToolMeasureLine = nullptr;
QMenu *mMapThemeMenu = nullptr;
Expand Down

0 comments on commit b7fb38f

Please sign in to comment.