Krita Source Code Documentation
Loading...
Searching...
No Matches
KisMirrorOption.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2010 Lukáš Tvrdý <lukast.dev@gmail.com>
3 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7#include "KisMirrorOption.h"
8
9
12#include <KisMirrorOptionData.h>
13#include <KisMirrorProperties.h>
14
16namespace kpou = KisPaintOpOptionUtils;
17
18
23
25 : KisCurveOption(data)
26 , m_enableHorizontalMirror(data.enableHorizontalMirror)
27 , m_enableVerticalMirror(data.enableVerticalMirror)
28{
29}
30
32{
33 int mirrorXIncrement = info.canvasMirroredH();
34 int mirrorYIncrement = info.canvasMirroredV();
35 bool coordinateSystemFlipped = false;
36
38
39 qreal sensorResult = computeSizeLikeValue(info);
40
41 bool result = (sensorResult >= 0.5);
42
43 mirrorXIncrement += result && m_enableHorizontalMirror;
44 mirrorYIncrement += result && m_enableVerticalMirror;
45 coordinateSystemFlipped = result &&
47 }
48
49 MirrorProperties mirrors;
50
51 mirrors.verticalMirror = mirrorYIncrement % 2;
52 mirrors.horizontalMirror = mirrorXIncrement % 2;
53 mirrors.coordinateSystemFlipped = coordinateSystemFlipped;
54
55 return mirrors;
56}
bool isChecked() const
qreal computeSizeLikeValue(const KisPaintInformation &info, bool useStrengthValue=true) const
MirrorProperties apply(const KisPaintInformation &info) const
KisMirrorOption(const KisPropertiesConfiguration *setting)