QGIS API Documentation 4.1.0-Master (ca2ac17535b)
Loading...
Searching...
No Matches
qgspointlightsettings.h
Go to the documentation of this file.
1/***************************************************************************
2 qgspointlightsettings.h
3 --------------------------------------
4 Date : November 2018
5 Copyright : (C) 2018 by Martin Dobias
6 Email : wonder dot sk at gmail dot com
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 QGSPOINTLIGHTSETTINGS_H
17#define QGSPOINTLIGHTSETTINGS_H
18
19#include "qgis_3d.h"
20#include "qgslightsource.h"
21#include "qgsvector3d.h"
22
23#include <QColor>
24
25class QDomDocument;
26class QDomElement;
27
39class _3D_EXPORT QgsPointLightSettings : public QgsLightSource
40{
41 public:
44
45 Qgis::LightSourceType type() const override;
46 QgsPointLightSettings *clone() const override SIP_FACTORY;
47 Qt3DCore::QEntity *createEntity( const Qgs3DMapSettings &map, Qt3DCore::QEntity *parent ) const override SIP_SKIP;
48 QDomElement writeXml( QDomDocument &doc, const QgsReadWriteContext &context = QgsReadWriteContext() ) const override;
49 void readXml( const QDomElement &elem, const QgsReadWriteContext &context = QgsReadWriteContext() ) override;
50
52 QgsVector3D position() const { return mPosition; }
54 void setPosition( const QgsVector3D &pos ) { mPosition = pos; }
55
57 QColor color() const { return mColor; }
59 void setColor( const QColor &color ) { mColor = color; }
60
62 double intensity() const { return mIntensity; }
64 void setIntensity( double intensity ) { mIntensity = intensity; }
65
67 double constantAttenuation() const { return mConstantAttenuation; }
69 void setConstantAttenuation( double value ) { mConstantAttenuation = value; }
70
72 double linearAttenuation() const { return mLinearAttenuation; }
74 void setLinearAttenuation( double value ) { mLinearAttenuation = value; }
75
77 double quadraticAttenuation() const { return mQuadraticAttenuation; }
79 void setQuadraticAttenuation( double value ) { mQuadraticAttenuation = value; }
80
81 // TODO c++20 - replace with = default
82 bool operator==( const QgsPointLightSettings &other ) const;
83
84 private:
85 QgsVector3D mPosition { 0, 0, 0 };
86 QColor mColor = Qt::white;
87 double mIntensity = 1.0;
88 double mConstantAttenuation = 1.0f;
89 double mLinearAttenuation = 0.0f;
90 double mQuadraticAttenuation = 0.0f;
91};
92
93#endif // QGSPOINTLIGHTSETTINGS_H
LightSourceType
Light source types for 3D scenes.
Definition qgis.h:4404
Definition of the world.
virtual Qgis::LightSourceType type() const =0
Returns the light source type.
virtual QgsLightSource * clone() const =0
Returns a copy of the light source.
Definition of a point light in a 3D map scene.
QgsPointLightSettings()=default
Construct a point light with default values.
QDomElement writeXml(QDomDocument &doc, const QgsReadWriteContext &context=QgsReadWriteContext()) const override
Writes the light source's configuration to a new DOM element and returns it.
Qt3DCore::QEntity * createEntity(const Qgs3DMapSettings &map, Qt3DCore::QEntity *parent) const override
Creates an entity representing the light source.
double linearAttenuation() const
Returns linear attenuation (A_1).
void setPosition(const QgsVector3D &pos)
Sets position of the light (in 3D map coordinates).
void setColor(const QColor &color)
Sets color of the light.
double quadraticAttenuation() const
Returns quadratic attenuation (A_2).
void setQuadraticAttenuation(double value)
Sets quadratic attenuation (A_2).
void readXml(const QDomElement &elem, const QgsReadWriteContext &context=QgsReadWriteContext()) override
Reads configuration from a DOM element previously written using writeXml().
void setLinearAttenuation(double value)
Sets linear attenuation (A_1).
QgsVector3D position() const
Returns position of the light (in 3D map coordinates).
void setIntensity(double intensity)
Sets intensity of the light.
double intensity() const
Returns intensity of the light.
void setConstantAttenuation(double value)
Sets constant attenuation (A_0).
double constantAttenuation() const
Returns constant attenuation (A_0).
QColor color() const
Returns color of the light.
A container for the context for various read/write operations on objects.
A 3D vector (similar to QVector3D) with the difference that it uses double precision instead of singl...
Definition qgsvector3d.h:33
#define SIP_SKIP
Definition qgis_sip.h:133
#define SIP_FACTORY
Definition qgis_sip.h:83
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)