File indexing completed on 2024-09-22 04:08:31
0001 /* 0002 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #include "KisDynamicSensorTime.h" 0007 0008 #include <KisDynamicSensorIds.h> 0009 0010 #include <kis_paint_information.h> 0011 #include <KisCurveOptionData.h> 0012 0013 0014 KisDynamicSensorTime::KisDynamicSensorTime(const KisSensorWithLengthData &data, std::optional<KisCubicCurve> curveOverride) 0015 : KisDynamicSensor(TimeId, data, curveOverride) 0016 , m_periodic(data.isPeriodic) 0017 , m_length(data.length) 0018 { 0019 } 0020 0021 qreal KisDynamicSensorTime::value(const KisPaintInformation &pi) const 0022 { 0023 if (pi.isHoveringMode()) return 1.0; 0024 0025 const qreal currentTime = 0026 m_periodic ? 0027 std::fmod(pi.currentTime(), m_length) : 0028 qMin(pi.currentTime(), qreal(m_length)); 0029 0030 return currentTime / qreal(m_length); 0031 }