• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • krita API Reference
  • KDE Home
  • Contact Us
 

plugins/paintops/libpaintop

  • sources
  • kfour-appscomplete
  • krita
  • plugins
  • paintops
  • libpaintop
kis_pressure_mirror_option.cpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2010 Lukáš Tvrdý <[email protected]>
3  *
4  * SPDX-License-Identifier: LGPL-2.0-or-later
5  */
6 
7 #include "kis_pressure_mirror_option.h"
8 
9 #include <klocalizedstring.h>
10 
11 #include <kis_paint_device.h>
12 #include <widgets/kis_curve_widget.h>
13 
14 #include <KoColor.h>
15 
16 KisPressureMirrorOption::KisPressureMirrorOption()
17  : KisCurveOption("Mirror", KisPaintOpOption::GENERAL, false)
18 {
19  m_enableHorizontalMirror = false;
20  m_enableVerticalMirror = false;
21 }
22 
23 void KisPressureMirrorOption::enableHorizontalMirror(bool mirror)
24 {
25  m_enableHorizontalMirror = mirror;
26 }
27 
28 void KisPressureMirrorOption::enableVerticalMirror(bool mirror)
29 {
30  m_enableVerticalMirror = mirror;
31 }
32 
33 bool KisPressureMirrorOption::isHorizontalMirrorEnabled()
34 {
35  return m_enableHorizontalMirror;
36 }
37 
38 bool KisPressureMirrorOption::isVerticalMirrorEnabled()
39 {
40  return m_enableVerticalMirror;
41 }
42 
43 void KisPressureMirrorOption::writeOptionSetting(KisPropertiesConfigurationSP setting) const
44 {
45  KisCurveOption::writeOptionSetting(setting);
46  setting->setProperty(MIRROR_HORIZONTAL_ENABLED, m_enableHorizontalMirror);
47  setting->setProperty(MIRROR_VERTICAL_ENABLED, m_enableVerticalMirror);
48 }
49 
50 void KisPressureMirrorOption::readOptionSetting(const KisPropertiesConfigurationSP setting)
51 {
52  KisCurveOption::readOptionSetting(setting);
53  m_enableHorizontalMirror = setting->getBool(MIRROR_HORIZONTAL_ENABLED, false);
54  m_enableVerticalMirror = setting->getBool(MIRROR_VERTICAL_ENABLED, false);
55 }
56 
57 MirrorProperties KisPressureMirrorOption::apply(const KisPaintInformation& info) const
58 {
59  int mirrorXIncrement = info.canvasMirroredH();
60  int mirrorYIncrement = info.canvasMirroredV();
61  bool coordinateSystemFlipped = false;
62 
63  if (isChecked() && (m_enableHorizontalMirror || m_enableVerticalMirror)) {
64 
65  qreal sensorResult = computeSizeLikeValue(info);
66 
67  bool result = (sensorResult >= 0.5);
68 
69  mirrorXIncrement += result && m_enableHorizontalMirror;
70  mirrorYIncrement += result && m_enableVerticalMirror;
71  coordinateSystemFlipped = result &&
72  (m_enableHorizontalMirror != m_enableVerticalMirror);
73  }
74 
75  MirrorProperties mirrors;
76 
77  mirrors.verticalMirror = mirrorYIncrement % 2;
78  mirrors.horizontalMirror = mirrorXIncrement % 2;
79  mirrors.coordinateSystemFlipped = coordinateSystemFlipped;
80 
81  return mirrors;
82 }
83 
84 
85 
KisPressureMirrorOption::KisPressureMirrorOption
KisPressureMirrorOption()
Definition: kis_pressure_mirror_option.cpp:16
KisCurveOption
KisCurveOption is the base class for paintop options that are defined through one or more curves.
Definition: kis_curve_option.h:34
KisCurveOption::writeOptionSetting
virtual void writeOptionSetting(KisPropertiesConfigurationSP setting) const
Definition: kis_curve_option.cpp:113
KisPressureMirrorOption::isHorizontalMirrorEnabled
bool isHorizontalMirrorEnabled()
Definition: kis_pressure_mirror_option.cpp:33
MirrorProperties
Definition: kis_pressure_mirror_option.h:16
MIRROR_VERTICAL_ENABLED
const QString MIRROR_VERTICAL_ENABLED
Definition: kis_pressure_mirror_option.h:33
MirrorProperties::horizontalMirror
bool horizontalMirror
Definition: kis_pressure_mirror_option.h:22
KisPressureMirrorOption::writeOptionSetting
void writeOptionSetting(KisPropertiesConfigurationSP setting) const override
Definition: kis_pressure_mirror_option.cpp:43
KisPressureMirrorOption::readOptionSetting
void readOptionSetting(const KisPropertiesConfigurationSP setting) override
Definition: kis_pressure_mirror_option.cpp:50
KisPressureMirrorOption::isVerticalMirrorEnabled
bool isVerticalMirrorEnabled()
Definition: kis_pressure_mirror_option.cpp:38
KisCurveOption::computeSizeLikeValue
qreal computeSizeLikeValue(const KisPaintInformation &info) const
Definition: kis_curve_option.cpp:461
KisPressureMirrorOption::apply
MirrorProperties apply(const KisPaintInformation &info) const
Set the.
Definition: kis_pressure_mirror_option.cpp:57
KisCurveOption::readOptionSetting
virtual void readOptionSetting(KisPropertiesConfigurationSP setting)
Definition: kis_curve_option.cpp:143
MirrorProperties::coordinateSystemFlipped
bool coordinateSystemFlipped
Definition: kis_pressure_mirror_option.h:25
KisPressureMirrorOption::enableVerticalMirror
void enableVerticalMirror(bool mirror)
Definition: kis_pressure_mirror_option.cpp:28
KisCurveOption::isChecked
bool isChecked() const
Definition: kis_curve_option.cpp:319
KisPressureMirrorOption::enableHorizontalMirror
void enableHorizontalMirror(bool mirror)
Definition: kis_pressure_mirror_option.cpp:23
KisPaintOpOption
MIRROR_HORIZONTAL_ENABLED
const QString MIRROR_HORIZONTAL_ENABLED
Definition: kis_pressure_mirror_option.h:32
kis_pressure_mirror_option.h
MirrorProperties::verticalMirror
bool verticalMirror
Definition: kis_pressure_mirror_option.h:23
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sat Apr 17 2021 23:38:22 by doxygen 1.8.16 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

plugins/paintops/libpaintop

Skip menu "plugins/paintops/libpaintop"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

krita API Reference

Skip menu "krita API Reference"
  • libs
  •   KritaBasicFlakes
  •   brush
  •   KritaUndo2
  •   KritaFlake
  •   image
  •   KritaPlugin
  •   Krita
  •   KritaPigment
  •   KritaResources
  •   KritaStore
  •   ui
  •   KritaWidgets
  •   KritaWidgetUtils
  • plugins
  •   Assitants
  •   Extensions
  •   Filters
  •   Generators
  •   Formats
  •           src
  •   PaintOps
  •     libpaintop

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal