Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
with
193 additions
and 5 deletions.
- +22 −0 src/3d/map3d.cpp
- +1 −0 src/3d/map3d.h
- +4 −0 src/3d/scene.cpp
- +9 −0 src/3d/terrain/demterraingenerator.cpp
- +1 −0 src/3d/terrain/demterraingenerator.h
- +9 −0 src/3d/terrain/flatterraingenerator.cpp
- +1 −0 src/3d/terrain/flatterraingenerator.h
- +3 −0 src/3d/terrain/terraingenerator.h
- +2 −0 src/app/3d/qgs3dmapcanvas.h
- +24 −0 src/app/3d/qgs3dmapcanvasdockwidget.cpp
- +1 −0 src/app/3d/qgs3dmapcanvasdockwidget.h
- +56 −0 src/app/3d/qgs3dmapconfigwidget.cpp
- +28 −0 src/app/3d/qgs3dmapconfigwidget.h
- +2 −0 src/app/CMakeLists.txt
- +17 −4 src/ui/3d/map3dconfigwidget.ui
- +13 −1 src/ui/CMakeLists.txt
@@ -0,0 +1,56 @@ | ||
#include "qgs3dmapconfigwidget.h" | ||
|
||
#include "map3d.h" | ||
#include "demterraingenerator.h" | ||
|
||
#include "qgsrasterlayer.h" | ||
//#include "qgsproject.h" | ||
|
||
Qgs3DMapConfigWidget::Qgs3DMapConfigWidget( const Map3D *map, QWidget *parent ) | ||
: QWidget( parent ) | ||
, mMap( nullptr ) | ||
{ | ||
setupUi( this ); | ||
|
||
mMap = new Map3D( *map ); | ||
|
||
cboTerrainLayer->setAllowEmptyLayer( true ); | ||
cboTerrainLayer->setFilters( QgsMapLayerProxyModel::RasterLayer ); | ||
|
||
TerrainGenerator *terrainGen = mMap->terrainGenerator.get(); | ||
if ( terrainGen && terrainGen->type() == TerrainGenerator::Dem ) | ||
{ | ||
DemTerrainGenerator *demTerrainGen = static_cast<DemTerrainGenerator *>( terrainGen ); | ||
spinTerrainResolution->setValue( demTerrainGen->resolution() ); | ||
cboTerrainLayer->setLayer( demTerrainGen->layer() ); | ||
} | ||
else | ||
{ | ||
cboTerrainLayer->setLayer( nullptr ); | ||
spinTerrainResolution->setEnabled( false ); | ||
} | ||
|
||
spinTerrainScale->setValue( mMap->zExaggeration ); | ||
spinMapResolution->setValue( mMap->tileTextureSize ); | ||
spinScreenError->setValue( mMap->maxTerrainError ); | ||
chkShowTileInfo->setChecked( mMap->drawTerrainTileInfo ); | ||
chkShowBoundingBoxes->setChecked( mMap->showBoundingBoxes ); | ||
} | ||
|
||
Qgs3DMapConfigWidget::~Qgs3DMapConfigWidget() | ||
{ | ||
delete mMap; | ||
} | ||
|
||
Map3D *Qgs3DMapConfigWidget::map() | ||
{ | ||
// TODO: update terrain settings | ||
|
||
mMap->zExaggeration = spinTerrainScale->value(); | ||
mMap->tileTextureSize = spinMapResolution->value(); | ||
mMap->maxTerrainError = spinScreenError->value(); | ||
mMap->drawTerrainTileInfo = chkShowTileInfo->isChecked(); | ||
mMap->showBoundingBoxes = chkShowBoundingBoxes->isChecked(); | ||
|
||
return mMap; | ||
} |
@@ -0,0 +1,28 @@ | ||
#ifndef QGS3DMAPCONFIGWIDGET_H | ||
#define QGS3DMAPCONFIGWIDGET_H | ||
|
||
#include <QWidget> | ||
|
||
#include <ui_map3dconfigwidget.h> | ||
|
||
class Map3D; | ||
|
||
class Qgs3DMapConfigWidget : public QWidget, private Ui::Map3DConfigWidget | ||
{ | ||
Q_OBJECT | ||
public: | ||
//! construct widget. does not take ownership of the passed map. | ||
explicit Qgs3DMapConfigWidget( const Map3D *map, QWidget *parent = nullptr ); | ||
~Qgs3DMapConfigWidget(); | ||
|
||
Map3D *map(); | ||
|
||
signals: | ||
|
||
public slots: | ||
|
||
private: | ||
Map3D *mMap; | ||
}; | ||
|
||
#endif // QGS3DMAPCONFIGWIDGET_H |