QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
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
24class QDomDocument;
25class QDomElement;
26
34{
35 public:
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
LightSourceType
Light source types for 3D scenes.
Definition: qgis.h:3398
void setColor(const QColor &color)
Sets color of the light.
float intensity() const
Returns intensity of the light.
QColor color() const
Returns color of the light.
void setDirection(const QgsVector3D &direction)
Sets the direction of the light in degrees.
QgsDirectionalLightSettings()=default
Construct a directional light with default values.
void setIntensity(float intensity)
Sets intensity of the light.
virtual Qgis::LightSourceType type() const =0
Returns the light source type.
virtual QgsLightSource * clone() const =0
Returns a copy of the light source.
The class is used as a container of context for various read/write operations on other objects.
Class for storage of 3D vectors similar to QVector3D, with the difference that it uses double precisi...
Definition: qgsvector3d.h:31
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_FACTORY
Definition: qgis_sip.h:76
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)