mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-09 00:08:52 -04:00
Better initialization of 3d framework, usable outside of app
This commit is contained in:
parent
a34eabd1fb
commit
c7b6a115df
@ -32,6 +32,11 @@ Returns a pointer to the singleton instance.
|
|||||||
|
|
||||||
~Qgs3D();
|
~Qgs3D();
|
||||||
|
|
||||||
|
static void initialize();
|
||||||
|
%Docstring
|
||||||
|
Initializes the 3D framework.
|
||||||
|
%End
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Qgs3D( const Qgs3D &other );
|
Qgs3D( const Qgs3D &other );
|
||||||
};
|
};
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
|
|
||||||
#include "qgs3d.h"
|
#include "qgs3d.h"
|
||||||
|
|
||||||
|
#include "qgsapplication.h"
|
||||||
|
#include "qgs3drendererregistry.h"
|
||||||
|
|
||||||
|
#include "qgsabstract3drenderer.h"
|
||||||
|
#include "qgs3drendererregistry.h"
|
||||||
|
#include "qgsrulebased3drenderer.h"
|
||||||
|
#include "qgsvectorlayer3drenderer.h"
|
||||||
|
#include "qgsmeshlayer3drenderer.h"
|
||||||
|
|
||||||
Qgs3D *Qgs3D::instance()
|
Qgs3D *Qgs3D::instance()
|
||||||
{
|
{
|
||||||
static Qgs3D *sInstance( new Qgs3D() );
|
static Qgs3D *sInstance( new Qgs3D() );
|
||||||
@ -27,6 +36,18 @@ Qgs3D::~Qgs3D()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Qgs3D::initialize()
|
||||||
|
{
|
||||||
|
if ( instance()->mInitialized )
|
||||||
|
return;
|
||||||
|
|
||||||
|
instance()->mInitialized = true;
|
||||||
|
|
||||||
|
QgsApplication::renderer3DRegistry()->addRenderer( new QgsVectorLayer3DRendererMetadata );
|
||||||
|
QgsApplication::renderer3DRegistry()->addRenderer( new QgsRuleBased3DRendererMetadata );
|
||||||
|
QgsApplication::renderer3DRegistry()->addRenderer( new QgsMeshLayer3DRendererMetadata );
|
||||||
|
}
|
||||||
|
|
||||||
Qgs3D::Qgs3D()
|
Qgs3D::Qgs3D()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,11 @@ class _3D_EXPORT Qgs3D
|
|||||||
|
|
||||||
~Qgs3D();
|
~Qgs3D();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes the 3D framework.
|
||||||
|
*/
|
||||||
|
static void initialize();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
Qgs3D();
|
Qgs3D();
|
||||||
@ -53,6 +58,8 @@ class _3D_EXPORT Qgs3D
|
|||||||
Qgs3D( const Qgs3D &other );
|
Qgs3D( const Qgs3D &other );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
bool mInitialized = false;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // QGS3D_H
|
#endif // QGS3D_H
|
||||||
|
@ -97,19 +97,15 @@
|
|||||||
#include "qgsgeometrycheckregistry.h"
|
#include "qgsgeometrycheckregistry.h"
|
||||||
|
|
||||||
#ifdef HAVE_3D
|
#ifdef HAVE_3D
|
||||||
#include "qgsabstract3drenderer.h"
|
#include "qgs3d.h"
|
||||||
#include "qgs3danimationsettings.h"
|
#include "qgs3danimationsettings.h"
|
||||||
#include "qgs3danimationwidget.h"
|
#include "qgs3danimationwidget.h"
|
||||||
#include "qgs3dmapcanvasdockwidget.h"
|
#include "qgs3dmapcanvasdockwidget.h"
|
||||||
#include "qgs3drendererregistry.h"
|
|
||||||
#include "qgs3dmapcanvas.h"
|
#include "qgs3dmapcanvas.h"
|
||||||
#include "qgs3dmapsettings.h"
|
#include "qgs3dmapsettings.h"
|
||||||
#include "qgscameracontroller.h"
|
#include "qgscameracontroller.h"
|
||||||
#include "qgsflatterraingenerator.h"
|
#include "qgsflatterraingenerator.h"
|
||||||
#include "qgslayoutitem3dmap.h"
|
#include "qgslayoutitem3dmap.h"
|
||||||
#include "qgsrulebased3drenderer.h"
|
|
||||||
#include "qgsvectorlayer3drenderer.h"
|
|
||||||
#include "qgsmeshlayer3drenderer.h"
|
|
||||||
#include "processing/qgs3dalgorithms.h"
|
#include "processing/qgs3dalgorithms.h"
|
||||||
#include "qgs3dmaptoolmeasureline.h"
|
#include "qgs3dmaptoolmeasureline.h"
|
||||||
#include "layout/qgslayout3dmapwidget.h"
|
#include "layout/qgslayout3dmapwidget.h"
|
||||||
@ -12655,10 +12651,8 @@ void QgisApp::newMapCanvas()
|
|||||||
void QgisApp::init3D()
|
void QgisApp::init3D()
|
||||||
{
|
{
|
||||||
#ifdef HAVE_3D
|
#ifdef HAVE_3D
|
||||||
// register 3D renderers
|
// initialize 3D registries
|
||||||
QgsApplication::instance()->renderer3DRegistry()->addRenderer( new QgsVectorLayer3DRendererMetadata );
|
Qgs3D::initialize();
|
||||||
QgsApplication::instance()->renderer3DRegistry()->addRenderer( new QgsRuleBased3DRendererMetadata );
|
|
||||||
QgsApplication::instance()->renderer3DRegistry()->addRenderer( new QgsMeshLayer3DRendererMetadata );
|
|
||||||
#else
|
#else
|
||||||
mActionNew3DMapCanvas->setVisible( false );
|
mActionNew3DMapCanvas->setVisible( false );
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user