QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgs3danimationsettings.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgs3danimationsettings.h
3  --------------------------------------
4  Date : July 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 QGS3DANIMATIONSETTINGS_H
17 #define QGS3DANIMATIONSETTINGS_H
18 
19 #include "qgsvector3d.h"
20 #include "qgis_3d.h"
21 
22 #include <QEasingCurve>
23 #include <QVector>
24 
25 class QDomDocument;
26 class QDomElement;
28 
29 #define SIP_NO_FILE
30 
38 class _3D_EXPORT Qgs3DAnimationSettings
39 {
40  public:
43 
45  struct Keyframe
46  {
47  float time = 0;
49  float dist = 0;
50  float pitch = 0;
51  float yaw = 0;
52  };
53 
54  typedef QVector<Keyframe> Keyframes;
55 
57  void setKeyframes( const Keyframes &keyframes ) { mKeyframes = keyframes; }
59  Keyframes keyFrames() const { return mKeyframes; }
60 
62  void setEasingCurve( const QEasingCurve &curve ) { mEasingCurve = curve; }
64  QEasingCurve easingCurve() const { return mEasingCurve; }
65 
67  float duration() const;
68 
70  Keyframe interpolate( float time ) const;
71 
73  void readXml( const QDomElement &elem );
75  QDomElement writeXml( QDomDocument &doc ) const;
76 
77  private:
78  Keyframes mKeyframes;
79  QEasingCurve mEasingCurve;
80 };
81 
83 
84 #endif // QGS3DANIMATIONSETTINGS_H
QgsReadWriteContext
The class is used as a container of context for various read/write operations on other objects.
Definition: qgsreadwritecontext.h:35
Qgs3DAnimationSettings::setEasingCurve
void setEasingCurve(const QEasingCurve &curve)
Sets the interpolation method for transitions of the camera.
Definition: qgs3danimationsettings.h:62
Qgs3DAnimationSettings::Keyframe
keyframe definition
Definition: qgs3danimationsettings.h:46
QgsVector3D
3 Class for storage of 3D vectors similar to QVector3D, with the difference that it uses double preci...
Definition: qgsvector3d.h:32
Qgs3DAnimationSettings::keyFrames
Keyframes keyFrames() const
Returns keyframes of the animation.
Definition: qgs3danimationsettings.h:59
Qgs3DAnimationSettings::Keyframes
QVector< Keyframe > Keyframes
Definition: qgs3danimationsettings.h:54
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QgsMeshTimeSettings)
Qgs3DAnimationSettings::easingCurve
QEasingCurve easingCurve() const
Returns the interpolation method for transitions of the camera.
Definition: qgs3danimationsettings.h:64
Qgs3DAnimationSettings::setKeyframes
void setKeyframes(const Keyframes &keyframes)
Configures keyframes of the animation. It is expected that the keyframes are ordered according to the...
Definition: qgs3danimationsettings.h:57
Qgs3DAnimationSettings::Keyframe::point
QgsVector3D point
Point towards which the camera is looking in 3D world coords.
Definition: qgs3danimationsettings.h:48
qgsvector3d.h
Qgs3DAnimationSettings::Qgs3DAnimationSettings
Qgs3DAnimationSettings()
ctor
Qgs3DAnimationSettings
3 Class that holds information about animation in 3D view.
Definition: qgs3danimationsettings.h:39