Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSprayOpOptionModel.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Agata Cacko <cacko.azh@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
7
8#include <KisLager.h>
9
10
11namespace {
12
13auto angularDistributionTypeToInt = lager::lenses::getset(
15{
17 return 0;
18 } else { // source == KisSprayOpOptionData::ParticleDistribution_CurveBased
19 return 1;
20 }
21},
22[] (KisSprayOpOptionData::ParticleDistribution dst, int currentValue)
23{
24 if (currentValue == 0) {
26 } else { // == 1
28 }
29
30 return dst;
31}
32);
33
34}
35
36
37KisSprayOpOptionModel::KisSprayOpOptionModel(lager::cursor<KisSprayOpOptionData> _optionData)
38 : optionData(_optionData)
39 , LAGER_QT(diameter) {_optionData[&KisSprayOpOptionData::diameter].zoom(kislager::lenses::do_static_cast<quint16, int>)}
40 , LAGER_QT(aspect) {_optionData[&KisSprayOpOptionData::aspect]}
41 , LAGER_QT(brushRotation) {_optionData[&KisSprayOpOptionData::brushRotation]}
42 , LAGER_QT(scale) {_optionData[&KisSprayOpOptionData::scale]}
43 , LAGER_QT(spacing) {_optionData[&KisSprayOpOptionData::spacing]}
44 , LAGER_QT(jitterMovement) {_optionData[&KisSprayOpOptionData::jitterMovement]}
45 , LAGER_QT(jitterAmount) {_optionData[&KisSprayOpOptionData::jitterAmount]}
46 , LAGER_QT(useDensity) {_optionData[&KisSprayOpOptionData::useDensity]}
47 , LAGER_QT(isNumParticlesVisible) {LAGER_QT(useDensity).map(std::logical_not<>{})}
48 , LAGER_QT(particleCount) {_optionData[&KisSprayOpOptionData::particleCount].zoom(kislager::lenses::do_static_cast<quint16, int>)}
49 , LAGER_QT(coverage) {_optionData[&KisSprayOpOptionData::coverage]}
50
51 , LAGER_QT(angularDistributionType) {_optionData[&KisSprayOpOptionData::angularDistributionType]
52 .zoom(angularDistributionTypeToInt)}
53 , LAGER_QT(angularDistributionCurve) {_optionData[&KisSprayOpOptionData::angularDistributionCurve]}
54 , LAGER_QT(angularDistributionCurveRepeat) {_optionData[&KisSprayOpOptionData::angularDistributionCurveRepeat]}
55 , LAGER_QT(radialDistributionType) {_optionData[&KisSprayOpOptionData::radialDistributionType]
56 .zoom(kislager::lenses::do_static_cast<KisSprayOpOptionData::ParticleDistribution, int>)}
57 , LAGER_QT(radialDistributionStdDeviation) {_optionData[&KisSprayOpOptionData::radialDistributionStdDeviation]}
58 , LAGER_QT(radialDistributionClusteringAmount) {_optionData[&KisSprayOpOptionData::radialDistributionClusteringAmount]}
59 , LAGER_QT(radialDistributionCurve) {_optionData[&KisSprayOpOptionData::radialDistributionCurve]}
60 , LAGER_QT(radialDistributionCurveRepeat) {_optionData[&KisSprayOpOptionData::radialDistributionCurveRepeat]}
61 , LAGER_QT(radialDistributionCenterBiased) {_optionData[&KisSprayOpOptionData::radialDistributionCenterBiased]}
62
63{
64}
KisMagneticGraph::vertex_descriptor source(typename KisMagneticGraph::edge_descriptor e, KisMagneticGraph g)
LAGER_QT(aspect)
KisSprayOpOptionModel(lager::cursor< KisSprayOpOptionData > optionData)
ParticleDistribution radialDistributionType
ParticleDistribution angularDistributionType