Krita Source Code Documentation
Loading...
Searching...
No Matches
KisAutoBrushModel.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#include "KisAutoBrushModel.h"
7
8#include <KisLager.h>
9#include <lager/constant.hpp>
10#include <lager/lenses.hpp>
11
12
13KisAutoBrushModel::KisAutoBrushModel(lager::cursor<CommonData> commonData, lager::cursor<AutoBrushData> autoBrushData, lager::cursor<qreal> commonBrushSizeData)
14 : m_commonData(commonData),
15 m_autoBrushData(autoBrushData),
16 m_commonBrushSizeData(commonBrushSizeData),
24 .zoom(kislager::lenses::do_static_cast<AutoBrushGeneratorShape, int>)},
26 .zoom(kislager::lenses::do_static_cast<AutoBrushGeneratorType, int>)},
28 LAGER_QT(randomness) {m_autoBrushData[&AutoBrushData::randomness]
29 .zoom(kislager::lenses::scale<qreal>(100.0))},
30 LAGER_QT(density) {m_autoBrushData[&AutoBrushData::density]
31 .zoom(kislager::lenses::scale<qreal>(100.0))},
32 LAGER_QT(angle) {m_commonData[&CommonData::angle]
33 .zoom(kislager::lenses::scale<qreal>(180.0 / M_PI))},
34 LAGER_QT(spacing) {m_commonData[&CommonData::spacing]},
35 LAGER_QT(useAutoSpacing) {m_commonData[&CommonData::useAutoSpacing]},
36 LAGER_QT(autoSpacingCoeff) {m_commonData[&CommonData::autoSpacingCoeff]},
37 LAGER_QT(aggregatedSpacing) {lager::with(LAGER_QT(spacing),
38 LAGER_QT(useAutoSpacing),
39 LAGER_QT(autoSpacingCoeff))
40 .xform(zug::map(ToSpacingState{}),
41 zug::map(FromSpacingState{}))}
42{
43}
44
46{
47 AutoBrushData data = m_autoBrushData.get();
49 return data;
50}
LAGER_QT(ratio)
lager::cursor< KisBrushModel::AutoBrushData > m_autoBrushData
KisAutoBrushModel(lager::cursor< CommonData > commonData, lager::cursor< AutoBrushData > autoBrushData, lager::cursor< qreal > commonBrushSizeData)
lager::cursor< qreal > m_commonBrushSizeData
AutoBrushData bakedOptionData() const
#define M_PI
Definition kis_global.h:111
AutoBrushGeneratorData generator