Coverage Report

Created: 2026-02-26 07:48

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/qtsvg/src/svg/css/animation/qsvgcsseasing.cpp
Line
Count
Source
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
6
#include "qsvgcsseasing_p.h"
7
#include <QtCore/qmath.h>
8
#include <QtCore/qminmax.h>
9
10
QT_BEGIN_NAMESPACE
11
12
QSvgCssEasing::QSvgCssEasing(QSvgCssValues::EasingFunction easingFunction)
13
0
    : m_easingFunction(easingFunction)
14
0
{
15
0
}
16
17
QSvgCssValues::EasingFunction QSvgCssEasing::easingFunction() const
18
0
{
19
0
    return m_easingFunction;
20
0
}
21
22
QSvgCssCubicBezierEasing::QSvgCssCubicBezierEasing(QSvgCssValues::EasingFunction easingFunction, const QPointF &c1, const QPointF &c2)
23
0
    : QSvgCssEasing(easingFunction)
24
0
    , m_c1(c1)
25
0
    , m_c2(c2)
26
0
{
27
0
    m_easingCurve.setType(QEasingCurve::BezierSpline);
28
0
    m_easingCurve.addCubicBezierSegment(c1, c2, QPointF(1, 1));
29
0
}
30
31
qreal QSvgCssCubicBezierEasing::progress(qreal t) const
32
0
{
33
0
    return m_easingCurve.valueForProgress(t);
34
0
}
35
36
QPointF QSvgCssCubicBezierEasing::c1() const
37
0
{
38
0
    return m_c1;
39
0
}
40
41
QPointF QSvgCssCubicBezierEasing::c2() const
42
0
{
43
0
    return m_c2;
44
0
}
45
46
QSvgCssStepsEasing::QSvgCssStepsEasing(quint32 stops, QSvgCssValues::StepPosition position)
47
0
    : QSvgCssEasing(QSvgCssValues::EasingFunction::Steps)
48
0
    , m_stops(qMax(quint32(1), stops))
49
0
    , m_stepPosition(position)
50
0
{
51
0
}
52
53
qreal QSvgCssStepsEasing::progress(qreal t) const
54
0
{
55
0
    const qreal incr = 1.0 / m_stops;
56
0
    const qreal interval = (m_stepPosition == QSvgCssValues::StepPosition::JumpEnd) ?
57
0
                               qFloor(t / incr) : qCeil(t / incr);
58
59
0
    return interval * incr;
60
0
}
61
62
QSvgCssValues::StepPosition QSvgCssStepsEasing::stepPosition()
63
0
{
64
0
    return m_stepPosition;
65
0
}
66
67
QT_END_NAMESPACE