QGIS API Documentation  3.23.0-Master (eb871beae0)
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
void setEasingCurve(const QEasingCurve &curve)
Sets the interpolation method for transitions of the camera.
QEasingCurve easingCurve() const
Returns the interpolation method for transitions of the camera.
Keyframes keyFrames() const
Returns keyframes of the animation.
void setKeyframes(const Keyframes &keyframes)
Configures keyframes of the animation. It is expected that the keyframes are ordered according to the...
QVector< Keyframe > Keyframes
The class is used as a container of context for various read/write operations on other objects.
Q_DECLARE_METATYPE(QgsMeshTimeSettings)
QgsVector3D point
Point towards which the camera is looking in 3D world coords.