Skip to content

Commit 66a8120

Browse files
ptitjanonyalldawson
authored andcommittedOct 6, 2023
qgs3dutils: Factor out culling mode enum conversion
This will be used by `QgsMesh3DMaterial` in the next commmit.
1 parent af3bab4 commit 66a8120

File tree

3 files changed

+23
-14
lines changed

3 files changed

+23
-14
lines changed
 

‎src/3d/qgs3dutils.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -890,3 +890,15 @@ void Qgs3DUtils::computeBoundingBoxNearFarPlanes( const QgsAABB &bbox, const QMa
890890
ffar = std::max( ffar, dst );
891891
}
892892
}
893+
894+
Qt3DRender::QCullFace::CullingMode Qgs3DUtils::qt3DcullingMode( Qgs3DTypes::CullingMode mode )
895+
{
896+
switch ( mode )
897+
{
898+
case Qgs3DTypes::NoCulling: return Qt3DRender::QCullFace::NoCulling;
899+
case Qgs3DTypes::Front: return Qt3DRender::QCullFace::Front;
900+
case Qgs3DTypes::Back: return Qt3DRender::QCullFace::Back;
901+
case Qgs3DTypes::FrontAndBack: return Qt3DRender::QCullFace::FrontAndBack;
902+
}
903+
return Qt3DRender::QCullFace::NoCulling;
904+
}

‎src/3d/qgs3dutils.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ namespace Qt3DExtras
4040

4141
#include <QSize>
4242
#include <Qt3DRender/QCamera>
43+
#include <Qt3DRender/QCullFace>
4344

4445
#include <memory>
4546

@@ -295,6 +296,15 @@ class _3D_EXPORT Qgs3DUtils
295296
* \since QGIS 3.34
296297
*/
297298
static void computeBoundingBoxNearFarPlanes( const QgsAABB &bbox, const QMatrix4x4 &viewMatrix, float &fnear, float &ffar );
299+
300+
/**
301+
* Converts Qgs3DTypes::CullingMode \a mode into its Qt3D equivalent.
302+
*
303+
* \param mode culling mode
304+
*
305+
* \since QGIS 3.34
306+
*/
307+
static Qt3DRender::QCullFace::CullingMode qt3DcullingMode( Qgs3DTypes::CullingMode mode );
298308
};
299309

300310
#endif // QGS3DUTILS_H

‎src/3d/symbols/qgspolygon3dsymbol_p.cpp

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -286,19 +286,6 @@ void QgsPolygon3DSymbolHandler::makeEntity( Qt3DCore::QEntity *parent, const Qgs
286286
// cppcheck-suppress memleak
287287
}
288288

289-
290-
static Qt3DRender::QCullFace::CullingMode _qt3DcullingMode( Qgs3DTypes::CullingMode mode )
291-
{
292-
switch ( mode )
293-
{
294-
case Qgs3DTypes::NoCulling: return Qt3DRender::QCullFace::NoCulling;
295-
case Qgs3DTypes::Front: return Qt3DRender::QCullFace::Front;
296-
case Qgs3DTypes::Back: return Qt3DRender::QCullFace::Back;
297-
case Qgs3DTypes::FrontAndBack: return Qt3DRender::QCullFace::FrontAndBack;
298-
}
299-
return Qt3DRender::QCullFace::NoCulling;
300-
}
301-
302289
// front/back side culling
303290
static void applyCullingMode( Qgs3DTypes::CullingMode cullingMode, Qt3DRender::QMaterial *material )
304291
{
@@ -309,7 +296,7 @@ static void applyCullingMode( Qgs3DTypes::CullingMode cullingMode, Qt3DRender::Q
309296
for ( auto rpit = renderPasses.begin(); rpit != renderPasses.end(); ++rpit )
310297
{
311298
Qt3DRender::QCullFace *cullFace = new Qt3DRender::QCullFace;
312-
cullFace->setMode( _qt3DcullingMode( cullingMode ) );
299+
cullFace->setMode( Qgs3DUtils::qt3DcullingMode( cullingMode ) );
313300
( *rpit )->addRenderState( cullFace );
314301
}
315302
}

0 commit comments

Comments
 (0)
Please sign in to comment.