Skip to content

Commit

Permalink
get rid of TexturesCollectionSkybox
Browse files Browse the repository at this point in the history
  • Loading branch information
NEDJIMAbelgacem committed Aug 6, 2020
1 parent 7a022c6 commit 02d94be
Show file tree
Hide file tree
Showing 7 changed files with 7 additions and 104 deletions.
3 changes: 0 additions & 3 deletions src/3d/qgs3dmapscene.cpp
Expand Up @@ -870,9 +870,6 @@ void Qgs3DMapScene::onSkyboxSettingsChanged()
QMap<QString, QString> faces;
switch ( skyboxSettings.skyboxType() )
{
case QgsSkyboxEntity::TexturesCollectionSkybox:
mSkybox = new QgsCubeFacesSkyboxEntity( skyboxSettings.skyboxBaseName(), skyboxSettings.skyboxExtension(), this );
break;
case QgsSkyboxEntity::DistinctTexturesSkybox:
faces = skyboxSettings.cubeMapFacesPaths();
mSkybox = new QgsCubeFacesSkyboxEntity(
Expand Down
17 changes: 0 additions & 17 deletions src/3d/qgsskyboxentity.cpp
Expand Up @@ -125,7 +125,6 @@ void QgsPanoramicSkyboxEntity::reloadTexture()

QgsCubeFacesSkyboxEntity::QgsCubeFacesSkyboxEntity( const QString &posX, const QString &posY, const QString &posZ, const QString &negX, const QString &negY, const QString &negZ, Qt3DCore::QNode *parent )
: QgsSkyboxEntity( parent )
, mType( SkyboxType::DistinctTexturesSkybox )
, mGlShader( new Qt3DRender::QShaderProgram() )
, mCubeMap( new Qt3DRender::QTextureCubeMap( this ) )
{
Expand All @@ -139,22 +138,6 @@ QgsCubeFacesSkyboxEntity::QgsCubeFacesSkyboxEntity( const QString &posX, const Q
reloadTexture();
}

QgsCubeFacesSkyboxEntity::QgsCubeFacesSkyboxEntity( const QString &baseName, const QString &extension, Qt3DCore::QNode *parent )
: QgsSkyboxEntity( parent )
, mType( SkyboxType::TexturesCollectionSkybox )
, mGlShader( new Qt3DRender::QShaderProgram() )
, mCubeMap( new Qt3DRender::QTextureCubeMap( this ) )
{
init();
mCubeFacesPaths[Qt3DRender::QTextureCubeMap::CubeMapPositiveX] = baseName + QStringLiteral( "_posx" ) + extension;
mCubeFacesPaths[Qt3DRender::QTextureCubeMap::CubeMapPositiveY] = baseName + QStringLiteral( "_posy" ) + extension;
mCubeFacesPaths[Qt3DRender::QTextureCubeMap::CubeMapPositiveZ] = baseName + QStringLiteral( "_posz" ) + extension;
mCubeFacesPaths[Qt3DRender::QTextureCubeMap::CubeMapNegativeX] = baseName + QStringLiteral( "_negx" ) + extension;
mCubeFacesPaths[Qt3DRender::QTextureCubeMap::CubeMapNegativeY] = baseName + QStringLiteral( "_negy" ) + extension;
mCubeFacesPaths[Qt3DRender::QTextureCubeMap::CubeMapNegativeZ] = baseName + QStringLiteral( "_negz" ) + extension;
reloadTexture();
}

void QgsCubeFacesSkyboxEntity::init()
{
mGlShader->setVertexShaderCode( Qt3DRender::QShaderProgram::loadSource( QUrl( QStringLiteral( "qrc:/shaders/skybox.vert" ) ) ) );
Expand Down
11 changes: 1 addition & 10 deletions src/3d/qgsskyboxentity.h
Expand Up @@ -48,7 +48,6 @@ class _3D_EXPORT QgsSkyboxEntity : public Qt3DCore::QEntity
enum SkyboxType
{
PanoramicSkybox,
TexturesCollectionSkybox,
DistinctTexturesSkybox
};
public:
Expand Down Expand Up @@ -104,21 +103,13 @@ class _3D_EXPORT QgsCubeFacesSkyboxEntity : public QgsSkyboxEntity
//! Constructs a skybox from 6 different images
QgsCubeFacesSkyboxEntity( const QString &posX, const QString &posY, const QString &posZ, const QString &negX, const QString &negY, const QString &negZ, Qt3DCore::QNode *parent = nullptr );

/**
* Constructs a skybox from a collection of images
* The images in the source directory should match the pattern:
* baseName + * "_posx|_posy|_posz|_negx|_negy|_negz" + extension
*/
QgsCubeFacesSkyboxEntity( const QString &baseName, const QString &extension, Qt3DCore::QNode *parent = nullptr );

//! Returns the type of the current skybox
SkyboxType type() const override { return mType; }
SkyboxType type() const override { return SkyboxType::DistinctTexturesSkybox; }

private:
void init();
void reloadTexture();
private:
SkyboxType mType;
QMap<Qt3DRender::QTextureCubeMap::CubeMapFace, QString> mCubeFacesPaths;
Qt3DRender::QShaderProgram *mGlShader = nullptr;
QVector<Qt3DRender::QTextureImage *> mFacesTextureImages;
Expand Down
11 changes: 1 addition & 10 deletions src/3d/qgsskyboxsettings.cpp
Expand Up @@ -25,14 +25,10 @@ void QgsSkyboxSettings::readXml( const QDomElement &element, const QgsReadWriteC
const QgsPathResolver &pathResolver = context.pathResolver();
mIsSkyboxEnabled = element.attribute( QStringLiteral( "skybox-enabled" ) ).toInt();
QString skyboxTypeStr = element.attribute( QStringLiteral( "skybox-type" ) );
if ( skyboxTypeStr == QStringLiteral( "Textures collection" ) )
mSkyboxType = QgsSkyboxEntity::TexturesCollectionSkybox;
else if ( skyboxTypeStr == QStringLiteral( "Distinct Faces" ) )
if ( skyboxTypeStr == QStringLiteral( "Distinct Faces" ) )
mSkyboxType = QgsSkyboxEntity::DistinctTexturesSkybox;
else if ( skyboxTypeStr == QStringLiteral( "Panoramic texture" ) )
mSkyboxType = QgsSkyboxEntity::PanoramicSkybox;
mSkyboxBaseName = element.attribute( QStringLiteral( "base-name" ) );
mSkyboxExt = element.attribute( QStringLiteral( "extension" ) );
mPanoramicTexturePath = pathResolver.readPath( element.attribute( QStringLiteral( "panoramic-texture-path" ) ) );
mCubeMapFacesPaths.clear();
mCubeMapFacesPaths[ QStringLiteral( "posX" ) ] = pathResolver.readPath( element.attribute( QStringLiteral( "posX-texture-path" ) ) );
Expand All @@ -48,9 +44,6 @@ void QgsSkyboxSettings::writeXml( QDomElement &element, const QgsReadWriteContex
element.setAttribute( QStringLiteral( "skybox-enabled" ), mIsSkyboxEnabled );
switch ( mSkyboxType )
{
case QgsSkyboxEntity::TexturesCollectionSkybox:
element.setAttribute( QStringLiteral( "skybox-type" ), QStringLiteral( "Textures collection" ) );
break;
case QgsSkyboxEntity::DistinctTexturesSkybox:
element.setAttribute( QStringLiteral( "skybox-type" ), QStringLiteral( "Distinct Faces" ) );
break;
Expand All @@ -60,8 +53,6 @@ void QgsSkyboxSettings::writeXml( QDomElement &element, const QgsReadWriteContex
}

const QgsPathResolver &pathResolver = context.pathResolver();
element.setAttribute( QStringLiteral( "base-name" ), mSkyboxBaseName );
element.setAttribute( QStringLiteral( "extension" ), mSkyboxExt );
element.setAttribute( QStringLiteral( "panoramic-texture-path" ), pathResolver.writePath( mPanoramicTexturePath ) );
element.setAttribute( QStringLiteral( "posX-texture-path" ), pathResolver.writePath( mCubeMapFacesPaths[ QStringLiteral( "posX" ) ] ) );
element.setAttribute( QStringLiteral( "posY-texture-path" ), pathResolver.writePath( mCubeMapFacesPaths[ QStringLiteral( "posY" ) ] ) );
Expand Down
13 changes: 0 additions & 13 deletions src/3d/qgsskyboxsettings.h
Expand Up @@ -51,16 +51,6 @@ class _3D_EXPORT QgsSkyboxSettings
//! Sets the type of the skybox
void setSkyboxType( QgsSkyboxEntity::SkyboxType type ) { mSkyboxType = type; }

//! Returns the base name of a skybox of type "Textures collection"
QString skyboxBaseName() const { return mSkyboxBaseName; }
//! Sets the base name of a skybox of type "Textures collection"
void setSkyboxBaseName( const QString &baseName ) { mSkyboxBaseName = baseName; }

//! Returns the extension of a skybox of type "Textures collection"
QString skyboxExtension() const { return mSkyboxExt; }
//! Sets the extension of a skybox of type "Textures collection"
void setSkyboxExtension( const QString &extension ) { mSkyboxExt = extension; }

//! Returns the panoramic texture path of a skybox of type "Panormaic skybox"
QString panoramicTexturePath() const { return mPanoramicTexturePath; }
//! Sets the panoramic texture path of a skybox of type "Panoramic skybox"
Expand All @@ -82,9 +72,6 @@ class _3D_EXPORT QgsSkyboxSettings
bool mIsSkyboxEnabled = false;
QgsSkyboxEntity::SkyboxType mSkyboxType;
//
QString mSkyboxBaseName;
QString mSkyboxExt;
//
QString mPanoramicTexturePath;
//
QMap<QString, QString> mCubeMapFacesPaths;
Expand Down
15 changes: 1 addition & 14 deletions src/app/3d/qgsskyboxrenderingsettingswidget.cpp
Expand Up @@ -24,19 +24,15 @@ QgsSkyboxRenderingSettingsWidget::QgsSkyboxRenderingSettingsWidget( QWidget *par
{
setupUi( this );

layoutGroupBoxes.push_back( textureCollectionGroupBox );
layoutGroupBoxes.push_back( panoramicTextureGroupBox );
layoutGroupBoxes.push_back( faceTexturesGroupBox );

skyboxTypeComboBox->addItem( QStringLiteral( "Textures collection" ) );
skyboxTypeComboBox->addItem( QStringLiteral( "Panoramic texture" ) );
skyboxTypeComboBox->addItem( QStringLiteral( "Distinct Faces" ) );
connect( skyboxTypeComboBox, &QComboBox::currentTextChanged, [&]( const QString & skyboxType )
{
for ( QGroupBox *groupBox : layoutGroupBoxes )
groupBox->setVisible( false );
if ( skyboxType == QStringLiteral( "Textures collection" ) )
textureCollectionGroupBox->setVisible( true );
if ( skyboxType == QStringLiteral( "Panoramic texture" ) )
panoramicTextureGroupBox->setVisible( true );
if ( skyboxType == QStringLiteral( "Distinct Faces" ) )
Expand All @@ -51,9 +47,6 @@ void QgsSkyboxRenderingSettingsWidget::setSkyboxSettings( const QgsSkyboxSetting

switch ( skyboxSettings.skyboxType() )
{
case QgsSkyboxEntity::TexturesCollectionSkybox:
skyboxTypeComboBox->setCurrentText( QStringLiteral( "Textures collection" ) );
break;
case QgsSkyboxEntity::DistinctTexturesSkybox:
skyboxTypeComboBox->setCurrentText( QStringLiteral( "Distinct Faces" ) );
break;
Expand All @@ -62,8 +55,6 @@ void QgsSkyboxRenderingSettingsWidget::setSkyboxSettings( const QgsSkyboxSetting
break;
}

skyboxBaseNameLineEdit->setText( skyboxSettings.skyboxBaseName() );
skyboxExtensionLineEdit->setText( skyboxSettings.skyboxExtension() );
panoramicTextureImageSource->setSource( skyboxSettings.panoramicTexturePath() );
QMap<QString, QString> cubeMapFaces = skyboxSettings.cubeMapFacesPaths();
posXImageSource->setSource( cubeMapFaces[ QStringLiteral( "posX" ) ] );
Expand All @@ -79,15 +70,11 @@ QgsSkyboxSettings QgsSkyboxRenderingSettingsWidget::toSkyboxSettings()
QgsSkyboxSettings settings;
settings.setIsSkyboxEnabled( skyboxEnabledCheckBox->checkState() == Qt::CheckState::Checked );

if ( skyboxTypeComboBox->currentText() == QStringLiteral( "Textures collection" ) )
settings.setSkyboxType( QgsSkyboxEntity::TexturesCollectionSkybox );
else if ( skyboxTypeComboBox->currentText() == QStringLiteral( "Distinct Faces" ) )
if ( skyboxTypeComboBox->currentText() == QStringLiteral( "Distinct Faces" ) )
settings.setSkyboxType( QgsSkyboxEntity::DistinctTexturesSkybox );
else if ( skyboxTypeComboBox->currentText() == QStringLiteral( "Panoramic texture" ) )
settings.setSkyboxType( QgsSkyboxEntity::PanoramicSkybox );

settings.setSkyboxBaseName( skyboxBaseNameLineEdit->text() );
settings.setSkyboxExtension( skyboxExtensionLineEdit->text() );
settings.setPanoramicTexturePath( panoramicTextureImageSource->source() );
settings.setCubeMapFace( QStringLiteral( "posX" ), posXImageSource->source() );
settings.setCubeMapFace( QStringLiteral( "posY" ), posYImageSource->source() );
Expand Down
41 changes: 4 additions & 37 deletions src/ui/3d/skyboxrenderingsettingswidget.ui
Expand Up @@ -109,37 +109,11 @@
</item>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="5" column="0" colspan="2">
<widget class="QGroupBox" name="textureCollectionGroupBox">
<property name="title">
<string>Texture collection:</string>
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="skyboxEnabledCheckBox">
<property name="text">
<string>Enable skybox</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<layout class="QGridLayout" name="textureCollectionLayout">
<item row="1" column="1">
<widget class="QLineEdit" name="skyboxBaseNameLineEdit"/>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="skyboxExtensionLineEdit"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Skybox extension:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Skybox base name:</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
Expand All @@ -149,13 +123,6 @@
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QCheckBox" name="skyboxEnabledCheckBox">
<property name="text">
<string>Enable skybox</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="skyboxTypeComboBox"/>
</item>
Expand Down

0 comments on commit 02d94be

Please sign in to comment.