Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qsvgcsseasing.cpp
Go to the documentation of this file.
1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5
7#include <QtCore/qmath.h>
8#include <QtCore/qminmax.h>
9
11
12QSvgCssEasing::QSvgCssEasing(QSvgCssValues::EasingFunction easingFunction)
13 : m_easingFunction(easingFunction)
14{
15}
16
17QSvgCssEasing::~QSvgCssEasing()
18 = default;
19
20QSvgCssValues::EasingFunction QSvgCssEasing::easingFunction() const
21{
22 return m_easingFunction;
23}
24
25QSvgCssCubicBezierEasing::QSvgCssCubicBezierEasing(QSvgCssValues::EasingFunction easingFunction,
26 QPointF c1, QPointF c2)
27 : QSvgCssEasing(easingFunction)
28 , m_c1(c1)
29 , m_c2(c2)
30{
31 m_easingCurve.setType(QEasingCurve::BezierSpline);
32 m_easingCurve.addCubicBezierSegment(c1, c2, QPointF(1, 1));
33}
34
35QSvgCssCubicBezierEasing::~QSvgCssCubicBezierEasing()
36 = default;
37
38qreal QSvgCssCubicBezierEasing::progress(qreal t) const
39{
40 return m_easingCurve.valueForProgress(t);
41}
42
43QPointF QSvgCssCubicBezierEasing::c1() const
44{
45 return m_c1;
46}
47
48QPointF QSvgCssCubicBezierEasing::c2() const
49{
50 return m_c2;
51}
52
53QSvgCssStepsEasing::QSvgCssStepsEasing(quint32 stops, QSvgCssValues::StepPosition position)
54 : QSvgCssEasing(QSvgCssValues::EasingFunction::Steps)
55 , m_stops(qMax(quint32(1), stops))
56 , m_stepPosition(position)
57{
58}
59
60QSvgCssStepsEasing::~QSvgCssStepsEasing()
61 = default;
62
63qreal QSvgCssStepsEasing::progress(qreal t) const
64{
65 const qreal incr = 1.0 / m_stops;
66 const qreal interval = (m_stepPosition == QSvgCssValues::StepPosition::JumpEnd) ?
67 qFloor(t / incr) : qCeil(t / incr);
68
69 return interval * incr;
70}
71
72QSvgCssValues::StepPosition QSvgCssStepsEasing::stepPosition()
73{
74 return m_stepPosition;
75}
76
77QT_END_NAMESPACE
Combined button and popup list for selecting options.