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
17QSvgCssValues::EasingFunction QSvgCssEasing::easingFunction() const
18{
19 return m_easingFunction;
20}
21
22QSvgCssCubicBezierEasing::QSvgCssCubicBezierEasing(QSvgCssValues::EasingFunction easingFunction, const QPointF &c1, const QPointF &c2)
23 : QSvgCssEasing(easingFunction)
24 , m_c1(c1)
25 , m_c2(c2)
26{
27 m_easingCurve.setType(QEasingCurve::BezierSpline);
28 m_easingCurve.addCubicBezierSegment(c1, c2, QPointF(1, 1));
29}
30
31qreal QSvgCssCubicBezierEasing::progress(qreal t)
32{
33 return m_easingCurve.valueForProgress(t);
34}
35
36QPointF QSvgCssCubicBezierEasing::c1() const
37{
38 return m_c1;
39}
40
41QPointF QSvgCssCubicBezierEasing::c2() const
42{
43 return m_c2;
44}
45
46QSvgCssStepsEasing::QSvgCssStepsEasing(quint32 stops, QSvgCssValues::StepPosition position)
47 : QSvgCssEasing(QSvgCssValues::EasingFunction::Steps)
48 , m_stops(qMax(quint32(1), stops))
49 , m_stepPosition(position)
50{
51}
52
53qreal QSvgCssStepsEasing::progress(qreal t)
54{
55 const qreal incr = 1.0 / m_stops;
56 const qreal interval = (m_stepPosition == QSvgCssValues::StepPosition::JumpEnd) ?
57 qFloor(t / incr) : qCeil(t / incr);
58
59 return interval * incr;
60}
61
62QSvgCssValues::StepPosition QSvgCssStepsEasing::stepPosition()
63{
64 return m_stepPosition;
65}
66
67QT_END_NAMESPACE
Combined button and popup list for selecting options.