QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgsdirectionallightsettings.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsdirectionallightsettings.h
3  --------------------------------------
4  Date : June 2020
5  Copyright : (C) 2020 by Belgacem Nedjima
6  Email : gb underscore nedjima at esi dot dz
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSDIRECTIONALLIGHTSETTINGS_H
17 #define QGSDIRECTIONALLIGHTSETTINGS_H
18 #include "qgis_3d.h"
19 
20 #include "qgsvector3d.h"
21 #include "qgslightsource.h"
22 #include <QColor>
23 
24 class QDomDocument;
25 class QDomElement;
26 
34 {
35  public:
37  QgsDirectionalLightSettings() = default;
38 
39  Qgis::LightSourceType type() const override;
41  Qt3DCore::QEntity *createEntity( const Qgs3DMapSettings &map, Qt3DCore::QEntity *parent ) const override SIP_SKIP;
42  QDomElement writeXml( QDomDocument &doc, const QgsReadWriteContext &context = QgsReadWriteContext() ) const override;
43  void readXml( const QDomElement &elem, const QgsReadWriteContext &context = QgsReadWriteContext() ) override;
44 
46  QgsVector3D direction() const { return mDirection; }
48  void setDirection( const QgsVector3D &direction ) { mDirection = direction; }
49 
51  QColor color() const { return mColor; }
53  void setColor( const QColor &color ) { mColor = color; }
54 
56  float intensity() const { return mIntensity; }
58  void setIntensity( float intensity ) { mIntensity = intensity; }
59 
60  // TODO c++20 - replace with = default
61  bool operator==( const QgsDirectionalLightSettings &other );
62 
63  private:
64  QgsVector3D mDirection { -0.32, -0.91, -0.27 };
65  QColor mColor = Qt::white;
66  float mIntensity = 1.0;
67 };
68 
69 #endif // QGSDIRECTIONALLIGHTSETTINGS_H
QgsDirectionalLightSettings::color
QColor color() const
Returns color of the light.
Definition: qgsdirectionallightsettings.h:51
QgsReadWriteContext
The class is used as a container of context for various read/write operations on other objects.
Definition: qgsreadwritecontext.h:34
operator==
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
Definition: qgsfeatureiterator.h:425
QgsDirectionalLightSettings::setDirection
void setDirection(const QgsVector3D &direction)
Sets the direction of the light in degrees.
Definition: qgsdirectionallightsettings.h:48
QgsVector3D
Class for storage of 3D vectors similar to QVector3D, with the difference that it uses double precisi...
Definition: qgsvector3d.h:31
QgsLightSource::createEntity
virtual Qt3DCore::QEntity * createEntity(const Qgs3DMapSettings &map, Qt3DCore::QEntity *parent) const =0
Creates an entity representing the light source.
QgsLightSource::readXml
virtual void readXml(const QDomElement &elem, const QgsReadWriteContext &context=QgsReadWriteContext())=0
Reads configuration from a DOM element previously written using writeXml().
QgsLightSource
Base class for light sources in 3d scenes.
Definition: qgslightsource.h:46
Qgis::LightSourceType
LightSourceType
Light source types for 3D scenes.
Definition: qgis.h:1837
SIP_FACTORY
#define SIP_FACTORY
Definition: qgis_sip.h:76
QgsDirectionalLightSettings::setIntensity
void setIntensity(float intensity)
Sets intensity of the light.
Definition: qgsdirectionallightsettings.h:58
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
QgsLightSource::type
virtual Qgis::LightSourceType type() const =0
Returns the light source type.
qgslightsource.h
Qgs3DMapSettings
Definition of the world.
Definition: qgs3dmapsettings.h:57
qgsvector3d.h
QgsLightSource::writeXml
virtual QDomElement writeXml(QDomDocument &doc, const QgsReadWriteContext &context=QgsReadWriteContext()) const =0
Writes the light source's configuration to a new DOM element and returns it.
QgsDirectionalLightSettings::intensity
float intensity() const
Returns intensity of the light.
Definition: qgsdirectionallightsettings.h:56
QgsDirectionalLightSettings::direction
QgsVector3D direction() const
Returns the direction of the light in degrees.
Definition: qgsdirectionallightsettings.h:46
QgsDirectionalLightSettings::setColor
void setColor(const QColor &color)
Sets color of the light.
Definition: qgsdirectionallightsettings.h:53
QgsLightSource::clone
virtual QgsLightSource * clone() const =0
Returns a copy of the light source.
QgsDirectionalLightSettings
Definition of a directional light in a 3D map scene.
Definition: qgsdirectionallightsettings.h:33