Krita Source Code Documentation
Loading...
Searching...
No Matches
KisToolMultihandHelper Class Reference

#include <kis_tool_multihand_helper.h>

+ Inheritance diagram for KisToolMultihandHelper:

Classes

struct  Private
 

Public Member Functions

 KisToolMultihandHelper (KisPaintingInformationBuilder *infoBuilder, KoCanvasResourceProvider *resourceManager, const KUndo2MagicString &transactionText)
 
void setupTransformations (const QVector< QTransform > &transformations)
 
 ~KisToolMultihandHelper () override
 
- Public Member Functions inherited from KisToolFreehandHelper
void cursorMoved (const QPointF &cursorPos)
 
void endPaint ()
 
void initPaint (KoPointerEvent *event, const QPointF &pixelCoords, KisImageWSP image, KisNodeSP currentNode, KisStrokesFacade *strokesFacade, KisNodeSP overrideNode=0, KisDefaultBoundsBaseSP bounds=0)
 
bool isRunning () const
 
 KisToolFreehandHelper (KisPaintingInformationBuilder *infoBuilder, KoCanvasResourceProvider *resourceManager, const KUndo2MagicString &transactionText=KUndo2MagicString(), KisSmoothingOptions *smoothingOptions=0)
 
void paintEvent (KoPointerEvent *event)
 
KisOptimizedBrushOutline paintOpOutline (const QPointF &savedCursorPos, const KoPointerEvent *event, const KisPaintOpSettingsSP globalSettings, KisPaintOpSettings::OutlineMode mode) const
 
void setSmoothness (KisSmoothingOptionsSP smoothingOptions)
 
KisSmoothingOptionsSP smoothingOptions () const
 
 ~KisToolFreehandHelper () override
 

Protected Member Functions

void createPainters (QVector< KisFreehandStrokeInfo * > &strokeInfos, const KisDistanceInformation &startDist) override
 
virtual void paintAt (const KisPaintInformation &pi)
 
void paintAt (const KisPaintInformation &pi) override
 
void paintAt (int strokeInfoId, const KisPaintInformation &pi)
 
virtual void paintBezierCurve (const KisPaintInformation &pi1, const QPointF &control1, const QPointF &control2, const KisPaintInformation &pi2)
 
void paintBezierCurve (const KisPaintInformation &pi1, const QPointF &control1, const QPointF &control2, const KisPaintInformation &pi2) override
 
void paintBezierCurve (int strokeInfoId, const KisPaintInformation &pi1, const QPointF &control1, const QPointF &control2, const KisPaintInformation &pi2)
 
virtual void paintLine (const KisPaintInformation &pi1, const KisPaintInformation &pi2)
 
void paintLine (const KisPaintInformation &pi1, const KisPaintInformation &pi2) override
 
void paintLine (int strokeInfoId, const KisPaintInformation &pi1, const KisPaintInformation &pi2)
 
- Protected Member Functions inherited from KisToolFreehandHelper
void cancelPaint ()
 
int elapsedStrokeTime () const
 
void initPaintImpl (qreal startAngle, const KisPaintInformation &pi, KoCanvasResourceProvider *resourceManager, KisImageWSP image, KisNodeSP node, KisStrokesFacade *strokesFacade, KisNodeSP overrideNode=0, KisDefaultBoundsBaseSP bounds=0)
 
void paintAt (int strokeInfoId, const KisPaintInformation &pi)
 
void paintBezierCurve (int strokeInfoId, const KisPaintInformation &pi1, const QPointF &control1, const QPointF &control2, const KisPaintInformation &pi2)
 
void paintLine (int strokeInfoId, const KisPaintInformation &pi1, const KisPaintInformation &pi2)
 
KoCanvasResourceProviderresourceManager () const
 

Private Attributes

Private *const d
 

Additional Inherited Members

- Signals inherited from KisToolFreehandHelper
void requestExplicitUpdateOutline ()
 

Detailed Description

Definition at line 13 of file kis_tool_multihand_helper.h.

Constructor & Destructor Documentation

◆ KisToolMultihandHelper()

KisToolMultihandHelper::KisToolMultihandHelper ( KisPaintingInformationBuilder * infoBuilder,
KoCanvasResourceProvider * resourceManager,
const KUndo2MagicString & transactionText )

Definition at line 20 of file kis_tool_multihand_helper.cpp.

23 : KisToolFreehandHelper(infoBuilder, resourceManager, transactionText)
24 , d(new Private)
25{
26}
KisToolFreehandHelper(KisPaintingInformationBuilder *infoBuilder, KoCanvasResourceProvider *resourceManager, const KUndo2MagicString &transactionText=KUndo2MagicString(), KisSmoothingOptions *smoothingOptions=0)
KoCanvasResourceProvider * resourceManager() const

◆ ~KisToolMultihandHelper()

KisToolMultihandHelper::~KisToolMultihandHelper ( )
override

Definition at line 28 of file kis_tool_multihand_helper.cpp.

29{
30 delete d;
31}

References d.

Member Function Documentation

◆ createPainters()

void KisToolMultihandHelper::createPainters ( QVector< KisFreehandStrokeInfo * > & strokeInfos,
const KisDistanceInformation & startDist )
overrideprotectedvirtual

Reimplemented from KisToolFreehandHelper.

Definition at line 38 of file kis_tool_multihand_helper.cpp.

40{
41 for (int i = 0; i < d->transformations.size(); i++) {
42 const QTransform &transform = d->transformations[i];
43 KisDistanceInitInfo __startDistInfo(transform.map(startDist.lastPosition()),
44 startDist.lastDrawingAngle(),
45 startDist.getSpacingInterval(),
46 startDist.getTimingUpdateInterval(),
47 0);
48
49 KisDistanceInformation __startDist = __startDistInfo.makeDistInfo();
50 strokeInfos << new KisFreehandStrokeInfo(__startDist);
51 }
52}

References d, KisDistanceInformation::getSpacingInterval(), KisDistanceInformation::getTimingUpdateInterval(), KisDistanceInformation::lastDrawingAngle(), KisDistanceInformation::lastPosition, KisDistanceInitInfo::makeDistInfo(), and KisToolMultihandHelper::Private::transformations.

◆ paintAt() [1/3]

void KisToolFreehandHelper::paintAt ( const KisPaintInformation & pi)
protectedvirtual

Reimplemented from KisToolFreehandHelper.

Definition at line 120 of file kis_tool_freehand_helper.cpp.

1049{
1050 paintAt(0, pi);
1051}
void paintAt(const KisPaintInformation &pi) override

◆ paintAt() [2/3]

void KisToolMultihandHelper::paintAt ( const KisPaintInformation & pi)
overrideprotectedvirtual

Reimplemented from KisToolFreehandHelper.

Definition at line 73 of file kis_tool_multihand_helper.cpp.

74{
75 for (int i = 0; i < d->transformations.size(); i++) {
76 const QTransform &transform = d->transformations[i];
77 KisPaintInformation __pi = pi;
78 __pi.setPos(transform.map(__pi.pos()));
79 adjustPointInformationRotation(__pi, transform);
80 paintAt(i, __pi);
81 }
82}
void setPos(const QPointF &p)
const QPointF & pos() const
void adjustPointInformationRotation(KisPaintInformation &pi, const QTransform &t)

References adjustPointInformationRotation(), d, paintAt(), KisPaintInformation::pos(), KisPaintInformation::setPos(), and KisToolMultihandHelper::Private::transformations.

◆ paintAt() [3/3]

void KisToolFreehandHelper::paintAt ( int strokeInfoId,
const KisPaintInformation & pi )
protected

Definition at line 106 of file kis_tool_freehand_helper.cpp.

987{
988 m_d->hasPaintAtLeastOnce = true;
989 m_d->strokesFacade->addJob(m_d->strokeId,
990 new FreehandStrokeStrategy::Data(strokeInfoId, pi));
991
992}

◆ paintBezierCurve() [1/3]

void KisToolFreehandHelper::paintBezierCurve ( const KisPaintInformation & pi1,
const QPointF & control1,
const QPointF & control2,
const KisPaintInformation & pi2 )
protectedvirtual

Reimplemented from KisToolFreehandHelper.

Definition at line 125 of file kis_tool_freehand_helper.cpp.

1063{
1064 paintBezierCurve(0, pi1, control1, control2, pi2);
1065}
void paintBezierCurve(const KisPaintInformation &pi1, const QPointF &control1, const QPointF &control2, const KisPaintInformation &pi2) override

◆ paintBezierCurve() [2/3]

void KisToolMultihandHelper::paintBezierCurve ( const KisPaintInformation & pi1,
const QPointF & control1,
const QPointF & control2,
const KisPaintInformation & pi2 )
overrideprotectedvirtual

Reimplemented from KisToolFreehandHelper.

Definition at line 102 of file kis_tool_multihand_helper.cpp.

106{
107 for (int i = 0; i < d->transformations.size(); i++) {
108 const QTransform &transform = d->transformations[i];
109
110 KisPaintInformation __pi1 = pi1;
111 KisPaintInformation __pi2 = pi2;
112 __pi1.setPos(transform.map(__pi1.pos()));
113 __pi2.setPos(transform.map(__pi2.pos()));
114
115 adjustPointInformationRotation(__pi1, transform);
116 adjustPointInformationRotation(__pi2, transform);
117
118 QPointF __control1 = transform.map(control1);
119 QPointF __control2 = transform.map(control2);
120
121 paintBezierCurve(i, __pi1, __control1, __control2, __pi2);
122 }
123}

References adjustPointInformationRotation(), d, paintBezierCurve(), KisPaintInformation::pos(), KisPaintInformation::setPos(), and KisToolMultihandHelper::Private::transformations.

◆ paintBezierCurve() [3/3]

void KisToolFreehandHelper::paintBezierCurve ( int strokeInfoId,
const KisPaintInformation & pi1,
const QPointF & control1,
const QPointF & control2,
const KisPaintInformation & pi2 )
protected

Definition at line 112 of file kis_tool_freehand_helper.cpp.

1009{
1010
1011#ifdef DEBUG_BEZIER_CURVES
1014
1015 tpi1 = pi1;
1016 tpi2 = pi2;
1017
1018 tpi1.setPressure(0.3);
1019 tpi2.setPressure(0.3);
1020
1021 paintLine(tpi1, tpi2);
1022
1023 tpi1.setPressure(0.6);
1024 tpi2.setPressure(0.3);
1025
1026 tpi1.setPos(pi1.pos());
1027 tpi2.setPos(control1);
1028 paintLine(tpi1, tpi2);
1029
1030 tpi1.setPos(pi2.pos());
1031 tpi2.setPos(control2);
1032 paintLine(tpi1, tpi2);
1033#endif
1034
1035 m_d->hasPaintAtLeastOnce = true;
1036 m_d->strokesFacade->addJob(m_d->strokeId,
1037 new FreehandStrokeStrategy::Data(strokeInfoId,
1038 pi1, control1, control2, pi2));
1039
1040}
void setPressure(qreal p)
Set the pressure.
void paintLine(const KisPaintInformation &pi1, const KisPaintInformation &pi2) override

◆ paintLine() [1/3]

void KisToolFreehandHelper::paintLine ( const KisPaintInformation & pi1,
const KisPaintInformation & pi2 )
protectedvirtual

Reimplemented from KisToolFreehandHelper.

Definition at line 122 of file kis_tool_freehand_helper.cpp.

1055{
1056 paintLine(0, pi1, pi2);
1057}

◆ paintLine() [2/3]

void KisToolMultihandHelper::paintLine ( const KisPaintInformation & pi1,
const KisPaintInformation & pi2 )
overrideprotectedvirtual

Reimplemented from KisToolFreehandHelper.

Definition at line 84 of file kis_tool_multihand_helper.cpp.

86{
87 for (int i = 0; i < d->transformations.size(); i++) {
88 const QTransform &transform = d->transformations[i];
89
90 KisPaintInformation __pi1 = pi1;
91 KisPaintInformation __pi2 = pi2;
92 __pi1.setPos(transform.map(__pi1.pos()));
93 __pi2.setPos(transform.map(__pi2.pos()));
94
95 adjustPointInformationRotation(__pi1, transform);
96 adjustPointInformationRotation(__pi2, transform);
97
98 paintLine(i, __pi1, __pi2);
99 }
100}

References adjustPointInformationRotation(), d, paintLine(), KisPaintInformation::pos(), KisPaintInformation::setPos(), and KisToolMultihandHelper::Private::transformations.

◆ paintLine() [3/3]

void KisToolFreehandHelper::paintLine ( int strokeInfoId,
const KisPaintInformation & pi1,
const KisPaintInformation & pi2 )
protected

Definition at line 108 of file kis_tool_freehand_helper.cpp.

997{
998 m_d->hasPaintAtLeastOnce = true;
999 m_d->strokesFacade->addJob(m_d->strokeId,
1000 new FreehandStrokeStrategy::Data(strokeInfoId, pi1, pi2));
1001
1002}

◆ setupTransformations()

void KisToolMultihandHelper::setupTransformations ( const QVector< QTransform > & transformations)

Definition at line 33 of file kis_tool_multihand_helper.cpp.

34{
35 d->transformations = transformations;
36}

References d, and KisToolMultihandHelper::Private::transformations.

Member Data Documentation

◆ d

Private* const KisToolMultihandHelper::d
private

Definition at line 45 of file kis_tool_multihand_helper.h.


The documentation for this class was generated from the following files: