Warning, file /graphics/krita/plugins/paintops/tangentnormal/kis_tangent_normal_paintop.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  *  SPDX-FileCopyrightText: 2015 Wolthera van Hövell tot Westerflier <griffinvalley@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef _KIS_TANGENTNORMALPAINTOP_H_
0008 #define _KIS_TANGENTNORMALPAINTOP_H_
0009 
0010 #include <QRect>
0011 
0012 #include <kis_brush_based_paintop.h>
0013 #include <kis_types.h>
0014 
0015 #include <KisTangentTiltOption.h>
0016 #include <KisTangentTiltOptionData.h>
0017 
0018 #include <KisStandardOptions.h>
0019 #include <KisFlowOpacityOption.h>
0020 #include <KisSpacingOption.h>
0021 #include <KisSharpnessOption.h>
0022 #include <KisScatterOption.h>
0023 #include <KisRotationOption.h>
0024 #include <KisAirbrushOptionData.h>
0025 
0026 class KisBrushBasedPaintOpSettings;
0027 class KisPainter;
0028 
0029 class KisTangentNormalPaintOp: public KisBrushBasedPaintOp
0030 {
0031 public:
0032     //public functions//
0033 
0034     /* Create a Tangent Normal Brush Operator*/
0035     KisTangentNormalPaintOp(const KisPaintOpSettingsSP settings, KisPainter* painter, KisNodeSP node, KisImageSP image);
0036     ~KisTangentNormalPaintOp() override;
0037 
0038     void paintLine(const KisPaintInformation &pi1, const KisPaintInformation &pi2, KisDistanceInformation *currentDistance) override;
0039 
0040 protected:
0041     /*paint the dabs*/
0042     KisSpacingInformation paintAt(const KisPaintInformation& info) override;
0043 
0044     KisSpacingInformation updateSpacingImpl(const KisPaintInformation &info) const override;
0045 
0046     KisTimingInformation updateTimingImpl(const KisPaintInformation &info) const override;
0047 
0048 private:
0049     KisSpacingInformation computeSpacing(const KisPaintInformation &info, qreal scale,
0050                                          qreal rotation) const;
0051 
0052 private:
0053     //private functions//
0054     KisTangentTiltOption m_tangentTiltOption;
0055 
0056     KisFlowOpacityOption2 m_opacityOption;
0057     KisFlowOption m_flowOption;
0058     KisSizeOption m_sizeOption;
0059     KisSpacingOption m_spacingOption;
0060     KisSoftnessOption m_softnessOption;
0061     KisSharpnessOption m_sharpnessOption;
0062     KisScatterOption m_scatterOption;
0063     KisRotationOption m_rotationOption;
0064     KisAirbrushOptionData m_airbrushData;
0065     KisRateOption m_rateOption;
0066 
0067     KisFixedPaintDeviceSP m_maskDab;
0068     KisPaintDeviceSP m_tempDev;
0069     QRect m_dstDabRect;
0070 
0071     KisPaintDeviceSP m_lineCacheDevice;
0072 };
0073 #endif // _KIS_TANGENTNORMALPAINTOP_H_