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 "KisDynamicSensorDistance.h" 0007 0008 #include <KisDynamicSensorIds.h> 0009 0010 #include <kis_paint_information.h> 0011 #include <KisCurveOptionData.h> 0012 0013 0014 KisDynamicSensorDistance::KisDynamicSensorDistance(const KisSensorWithLengthData &data, std::optional<KisCubicCurve> curveOverride) 0015 : KisDynamicSensor(DistanceId, data, curveOverride) 0016 , m_periodic(data.isPeriodic) 0017 , m_length(data.length) 0018 { 0019 } 0020 0021 qreal KisDynamicSensorDistance::value(const KisPaintInformation &pi) const 0022 { 0023 if (pi.isHoveringMode()) return 1.0; 0024 0025 const qreal distance = 0026 m_periodic ? 0027 fmod(pi.totalStrokeLength(), m_length) : 0028 qMin(pi.totalStrokeLength(), (qreal)m_length); 0029 0030 return distance / m_length; 0031 }