Stellarium  0.18.3
Data Structures
3D Sceneries plug-in

Data Structures

class  Scenery3d
 Main class of the module, inherits from StelModule. More...

Detailed Description

3D foreground renderer. Walk around, find and avoid obstructions in your garden, find and demonstrate possible astronomical alignments in temples, see shadows on sundials etc.

To move around, press Ctrl+cursor keys. To lift eye height, use Ctrl+PgUp/PgDn. Movement speed is linked to field of view (i.e. zoom in for fine adjustments). You can even keep moving by releasing Ctrl before cursor key.

Development of this plugin was in parts supported by the Austrian Science Fund (FWF) project ASTROSIM (P 21208-G19). More:

Data Structure Documentation

◆ Scenery3d

class Scenery3d

Main class of the 3D Sceneries plug-in.

Manages initialization, provides an interface to change Scenery3d properties and handles user input

Georg Zotti, Simon Parzer, Peter Neubauer, Andrei Borza, Florian Schaukowitsch

Public Slots

void relativeMove (const Vec3d &move)
 Performs a relative translation of the viewer's position. More...
void reloadShaders ()
 Clears the shader cache, forcing a reload of shaders on use.
void showMessage (const QString &message)
 Display text message on screen, fade out automatically.
void showStoredViewDialog ()
 Shows the stored view dialog.
void setEnableScene (const bool val)
 Enables/Disables the plugin.
bool getEnableScene () const
void setEnablePixelLighting (const bool val)
bool getEnablePixelLighting (void) const
void setEnableShadows (const bool enableShadows)
 Use this to set/get the enableShadows flag. More...
bool getEnableShadows (void) const
void setUseSimpleShadows (const bool simpleShadows)
 If true, only 1 shadow cascade is used, giving a speedup.
bool getUseSimpleShadows () const
void setEnableBumps (const bool enableBumps)
 Use this to set/get the enableBumps flag. More...
bool getEnableBumps (void) const
S3DEnum::ShadowFilterQuality getShadowFilterQuality (void) const
 Returns the current shadow filter quality.
void setShadowFilterQuality (const S3DEnum::ShadowFilterQuality val)
 Sets the shadow filter quality.
void setEnablePCSS (const bool val)
bool getEnablePCSS () const
S3DEnum::CubemappingMode getCubemappingMode (void) const
 Returns the current cubemapping mode.
void setCubemappingMode (const S3DEnum::CubemappingMode val)
 Sets the cubemapping mode.
bool getUseFullCubemapShadows () const
void setUseFullCubemapShadows (const bool useFullCubemapShadows)
void setEnableDebugInfo (const bool debugEnabled)
 Set to true to show some rendering debug information.
bool getEnableDebugInfo () const
void setEnableLocationInfo (const bool enableLocationInfo)
 Set to true to show the current standing positin as text on screen.
bool getEnableLocationInfo () const
void setEnableTorchLight (const bool enableTorchLight)
 Set to true to add an additional light source centered at the current position, useful in night scenes.
bool getEnableTorchLight () const
void setTorchStrength (const float torchStrength)
 Sets the strength of the additional illumination that can be toggled when pressing a button.
float getTorchStrength () const
void setTorchRange (const float torchRange)
 Sets the range of the torchlight.
float getTorchRange () const
void setEnableLazyDrawing (const bool val)
 Sets the state of the cubemap lazy-drawing mode.
bool getEnableLazyDrawing () const
void setOnlyDominantFaceWhenMoving (const bool val)
 When true, only the face which currently is most dominantly visible is updated while moving.
bool getOnlyDominantFaceWhenMoving () const
void setSecondDominantFaceWhenMoving (const bool val)
bool getSecondDominantFaceWhenMoving () const
void forceCubemapRedraw ()
 Forces a redraw of the cubemap.
void setLazyDrawingInterval (const double val)
 Sets the interval for cubemap lazy-drawing mode.
double getLazyDrawingInterval () const
void setCubemapSize (const uint val)
 Sets the size used for cubemap rendering. More...
uint getCubemapSize () const
void setShadowmapSize (const uint val)
 Sets the size used for shadowmap rendering. More...
uint getShadowmapSize () const
bool getIsGeometryShaderSupported () const
bool getAreShadowsSupported () const
bool getIsShadowFilteringSupported () const
bool getIsANGLE () const
uint getMaximumFramebufferSize () const
SceneInfo getCurrentScene () const
 Gets the SceneInfo of the scene that is currently being displayed. More...
QString getCurrentSceneID () const
 Returns the ID of the currently loaded scene, or an null string if nothing is displayed.
QString getLoadingSceneID () const
 Returns the ID of the currently loading scene, or null if nothing is being loaded.
SceneInfo getLoadingScene () const
 Gets the SceneInfo of the scene that is currently in the process of being loaded. More...
SceneInfo loadScenery3dByName (const QString &name)
 This starts the scene loading process. More...
SceneInfo loadScenery3dByID (const QString &id)
 This starts the scene loading process. More...
QString getDefaultScenery3dID () const
void setDefaultScenery3dID (const QString &id)
void setView (const StoredView &view, const bool setDate)
 Changes the current view to the given view. JD is updated only if view contains valid data and setDate is true.
StoredView getCurrentView ()
 Returns a StoredView that represents the current observer position + view direction. More...


void enableSceneChanged (const bool val)
void enablePixelLightingChanged (const bool val)
void enableShadowsChanged (const bool val)
void useSimpleShadowsChanged (const bool val)
void enableBumpsChanged (const bool val)
void shadowFilterQualityChanged (const S3DEnum::ShadowFilterQuality val)
void enablePCSSChanged (const bool val)
void cubemappingModeChanged (const S3DEnum::CubemappingMode val)
void useFullCubemapShadowsChanged (const bool val)
void enableDebugInfoChanged (const bool val)
void enableLocationInfoChanged (const bool val)
void enableTorchLightChanged (const bool val)
void torchStrengthChanged (const float val)
void torchRangeChanged (const float val)
void enableLazyDrawingChanged (const bool val)
void lazyDrawingIntervalChanged (const double val)
void onlyDominantFaceWhenMovingChanged (const bool val)
void secondDominantFaceWhenMovingChanged (const bool val)
void cubemapSizeChanged (const uint val)
void shadowmapSizeChanged (const uint val)
void currentSceneChanged (const SceneInfo &sceneInfo)
void currentSceneIDChanged (const QString &sceneID)
void loadingSceneIDChanged (const QString &sceneID)
void progressReport (const QString &str, int val, int min, int max) const
 This signal is emitted from another thread than this QObject belongs to, so use QueuedConnection.

Public Member Functions

virtual void init ()
 Initialize itself. More...
virtual void deinit ()
 Called before the module will be delete, and before the openGL context is suppressed. More...
virtual void draw (StelCore *core)
 Execute all the drawing functions for this module. More...
virtual void update (double deltaTime)
 Update the module with respect to the time. More...
virtual double getCallOrder (StelModuleActionName actionName) const
 Return the value defining the order of call for the given action For example if stars.callOrder[ActionDraw] == 10 and constellation.callOrder[ActionDraw] == 11, the stars module will be drawn before the constellations. More...
virtual bool configureGui (bool show)
 Detect or show the configuration GUI elements for the module. More...
virtual void handleKeys (QKeyEvent *e)
 Walk/Fly Navigation with Ctrl+Cursor and Ctrl+PgUp/Dn keys. More...
void updateProgress (const QString &str, int val, int min, int max) const
 Sends the progressReport() signal, which eventually updates the progress bar. Can be called from another thread.
- Public Member Functions inherited from StelModule
virtual QString getModuleVersion () const
 Get the version of the module, default is stellarium main version.
virtual QString getAuthorName () const
 Get the name of the module author.
virtual QString getAuthorEmail () const
 Get the email adress of the module author.
virtual void handleMouseClicks (class QMouseEvent *)
 Handle mouse clicks. More...
virtual void handleMouseWheel (class QWheelEvent *)
 Handle mouse wheel. More...
virtual bool handleMouseMoves (int x, int y, Qt::MouseButtons b)
 Handle mouse moves. More...
virtual bool handlePinch (qreal scale, bool started)
 Handle pinch gesture events. More...


bool enableScene
bool enablePixelLighting
bool enableShadows
bool useSimpleShadows
bool enableBumps
S3DEnum::ShadowFilterQuality shadowFilterQuality
bool enablePCSS
S3DEnum::CubemappingMode cubemappingMode
bool useFullCubemapShadows
bool enableDebugInfo
bool enableLocationInfo
bool enableTorchLight
float torchStrength
float torchRange
bool enableLazyDrawing
double lazyDrawingInterval
bool onlyDominantFaceWhenMoving
bool secondDominantFaceWhenMoving
uint cubemapSize
uint shadowmapSize
QString currentSceneID
QString loadingSceneID
bool isGeometryShaderSupported
bool areShadowsSupported
bool isShadowFilteringSupported
bool isANGLE
uint maximumFramebufferSize

Additional Inherited Members

- Public Types inherited from StelModule
enum  StelModuleSelectAction { AddToSelection, ReplaceSelection, RemoveFromSelection }
 Enum used when selecting objects to define whether to add to, replace, or remove from the existing selection list. More...
enum  StelModuleActionName {
  ActionDraw, ActionUpdate, ActionHandleMouseClicks, ActionHandleMouseMoves,
 Define the possible action for which an order is defined. More...
- Protected Member Functions inherited from StelModule
class StelActionaddAction (const QString &id, const QString &groupId, const QString &text, QObject *target, const char *slot, const QString &shortcut="", const QString &altShortcut="")
 convenience methods to add an action (call to slot) to the StelActionMgr object. More...
class StelActionaddAction (const QString &id, const QString &groupId, const QString &text, const char *slot, const QString &shortcut="", const QString &altShortcut="")
 convenience methods to add an action (call to own slot) to the StelActionMgr object. More...

Member Function Documentation

◆ configureGui()

virtual bool Scenery3d::configureGui ( bool  show)

This is to be used with plugins to display a configuration dialog from the plugin list window.

showif true, make the configuration GUI visible. If false, hide the config GUI if there is one.
true if the module has a configuration GUI, else false.

Reimplemented from StelModule.

◆ deinit()

virtual void Scenery3d::deinit ( )

Deinitialize all openGL texture in this method.

Reimplemented from StelModule.

◆ draw()

virtual void Scenery3d::draw ( StelCore core)
corethe core to use for the drawing

Reimplemented from StelModule.

◆ getCallOrder()

virtual double Scenery3d::getCallOrder ( StelModuleActionName  actionName) const
actionNamethe name of the action for which we want the call order
the value defining the order. The closer to 0 the earlier the module's action will be called

Reimplemented from StelModule.

◆ getCurrentScene

SceneInfo Scenery3d::getCurrentScene ( ) const

Check SceneInfo::isValid to determine if a scene is displayed.

◆ getCurrentView

StoredView Scenery3d::getCurrentView ( )

Label and description are empty.

◆ getLoadingScene

SceneInfo Scenery3d::getLoadingScene ( ) const

Check SceneInfo::isValid to determine if a scene is loaded.

◆ handleKeys()

virtual void Scenery3d::handleKeys ( QKeyEvent *  e)

Pressing Ctrl-Alt: 5x, Ctrl-Shift: 10x speedup; Ctrl-Shift-Alt: 50x! To allow fine control, zoom in. If you release Ctrl key while pressing cursor key, movement will continue.

Reimplemented from StelModule.

◆ init()

virtual void Scenery3d::init ( )

If the initialization takes significant time, the progress should be displayed on the loading bar.

Implements StelModule.

◆ loadScenery3dByID

SceneInfo Scenery3d::loadScenery3dByID ( const QString &  id)

This is asynchronous, this method returns after metadata loading.

ida valid scene id/folder path
The loaded SceneInfo. Check SceneInfo::isValid to make sure loading was successful.

◆ loadScenery3dByName

SceneInfo Scenery3d::loadScenery3dByName ( const QString &  name)

This is asynchronous, this method returns after metadata loading.

namea valid scene name
The loaded SceneInfo. Check SceneInfo::isValid to make sure loading was successful.

◆ relativeMove

void Scenery3d::relativeMove ( const Vec3d move)

The values should usually be given pre-adjusted with the delta time. Does nothing if no scene is currently loaded.

The first component specifies movement in the "right" direction, the second component in the "forward" directon, and the last value is used to adjust the height offset of the viewer (he is still positioned according to the heightmap).

◆ setCubemapSize

void Scenery3d::setCubemapSize ( const uint  val)

For best compatibility and performance, this should be a power of 2.

◆ setEnableBumps

void Scenery3d::setEnableBumps ( const bool  enableBumps)

If set to true, bump mapping is enabled for the 3D scene.

◆ setEnableShadows

void Scenery3d::setEnableShadows ( const bool  enableShadows)

If set to true, shadow mapping is enabled for the 3D scene.

◆ setShadowmapSize

void Scenery3d::setShadowmapSize ( const uint  val)

For best compatibility and performance, this should be a power of 2.

◆ update()

virtual void Scenery3d::update ( double  deltaTime)
deltaTimethe time increment in second since last call.

Implements StelModule.