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

#include <kis_distance_information.h>

+ Inheritance diagram for KisDistanceInitInfo:

Public Member Functions

 KisDistanceInitInfo ()
 
 KisDistanceInitInfo (const KisDistanceInitInfo &rhs)
 
 KisDistanceInitInfo (const QPointF &lastPosition, qreal lastAngle, int currentDabSeqNo)
 
 KisDistanceInitInfo (const QPointF &lastPosition, qreal lastAngle, qreal spacingUpdateInterval, qreal timingUpdateInterval, int currentDabSeqNo)
 
 KisDistanceInitInfo (qreal spacingUpdateInterval, qreal timingUpdateInterval, int currentDabSeqNo)
 
KisDistanceInformation makeDistInfo ()
 
KisDistanceInitInfooperator= (const KisDistanceInitInfo &rhs)
 
bool operator== (const KisDistanceInitInfo &other) const
 
 Private ()
 
void toXML (QDomDocument &doc, QDomElement &elt) const
 
 ~KisDistanceInitInfo ()
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 

Static Public Member Functions

static KisDistanceInitInfo fromXML (const QDomElement &elt)
 

Public Attributes

int currentDabSeqNo
 
bool hasLastInfo
 
qreal lastAngle
 
QPointF lastPosition
 
qreal spacingUpdateInterval
 
qreal timingUpdateInterval
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Private Attributes

Private *const m_d
 

Detailed Description

Represents some information that can be used to initialize a KisDistanceInformation object. The main purpose of this class is to allow serialization of KisDistanceInformation initial settings to XML.

Definition at line 78 of file kis_distance_information.cpp.

Constructor & Destructor Documentation

◆ KisDistanceInitInfo() [1/5]

KisDistanceInitInfo::KisDistanceInitInfo ( )
explicit

Creates a KisDistanceInitInfo with no initial last dab information, and spacing and timing update intervals set to LONG_TIME.

Definition at line 102 of file kis_distance_information.cpp.

103 : m_d(new Private)
104{
105}

◆ KisDistanceInitInfo() [2/5]

KisDistanceInitInfo::KisDistanceInitInfo ( qreal spacingUpdateInterval,
qreal timingUpdateInterval,
int currentDabSeqNo )
explicit

Creates a KisDistanceInitInfo with no initial last dab information, and the specified spacing and timing update intervals.

Definition at line 107 of file kis_distance_information.cpp.

108 : m_d(new Private)
109{
110 m_d->spacingUpdateInterval = spacingUpdateInterval;
111 m_d->timingUpdateInterval = timingUpdateInterval;
112 m_d->currentDabSeqNo = currentDabSeqNo;
113}

References currentDabSeqNo, m_d, spacingUpdateInterval, and timingUpdateInterval.

◆ KisDistanceInitInfo() [3/5]

KisDistanceInitInfo::KisDistanceInitInfo ( const QPointF & lastPosition,
qreal lastAngle,
int currentDabSeqNo )
explicit

Creates a KisDistanceInitInfo with the specified last dab information, and spacing and timing update intervals set to LONG_TIME.

Definition at line 115 of file kis_distance_information.cpp.

117 : m_d(new Private)
118{
119 m_d->hasLastInfo = true;
120 m_d->lastPosition = lastPosition;
121 m_d->lastAngle = lastAngle;
122 m_d->currentDabSeqNo = currentDabSeqNo;
123}

References currentDabSeqNo, lastAngle, lastPosition, and m_d.

◆ KisDistanceInitInfo() [4/5]

KisDistanceInitInfo::KisDistanceInitInfo ( const QPointF & lastPosition,
qreal lastAngle,
qreal spacingUpdateInterval,
qreal timingUpdateInterval,
int currentDabSeqNo )
explicit

Creates a KisDistanceInitInfo with the specified last dab information and spacing and timing update intervals.

Definition at line 125 of file kis_distance_information.cpp.

129 : m_d(new Private)
130{
131 m_d->hasLastInfo = true;
132 m_d->lastPosition = lastPosition;
133 m_d->lastAngle = lastAngle;
134 m_d->spacingUpdateInterval = spacingUpdateInterval;
135 m_d->timingUpdateInterval = timingUpdateInterval;
136 m_d->currentDabSeqNo = currentDabSeqNo;
137}

References currentDabSeqNo, lastAngle, lastPosition, m_d, spacingUpdateInterval, and timingUpdateInterval.

◆ KisDistanceInitInfo() [5/5]

KisDistanceInitInfo::KisDistanceInitInfo ( const KisDistanceInitInfo & rhs)

Definition at line 139 of file kis_distance_information.cpp.

140 : m_d(new Private(*rhs.m_d))
141{
142}

◆ ~KisDistanceInitInfo()

KisDistanceInitInfo::~KisDistanceInitInfo ( )

Definition at line 144 of file kis_distance_information.cpp.

145{
146 delete m_d;
147}

References m_d.

Member Function Documentation

◆ fromXML()

KisDistanceInitInfo KisDistanceInitInfo::fromXML ( const QDomElement & elt)
static

Definition at line 204 of file kis_distance_information.cpp.

205{
206 const qreal spacingUpdateInterval = qreal(KisDomUtils::toDouble(elt.attribute("spacingUpdateInterval",
207 QString::number(LONG_TIME, 'g', 15))));
208 const qreal timingUpdateInterval = qreal(KisDomUtils::toDouble(elt.attribute("timingUpdateInterval",
209 QString::number(LONG_TIME, 'g', 15))));
210 const qreal currentDabSeqNo = KisDomUtils::toInt(elt.attribute("currentDabSeqNo", "0"));
211
212 const QDomElement lastInfoElt = elt.firstChildElement("LastInfo");
213 const bool hasLastInfo = !lastInfoElt.isNull();
214
215 if (hasLastInfo) {
216 const qreal lastPosX = qreal(KisDomUtils::toDouble(lastInfoElt.attribute("lastPosX",
217 "0.0")));
218 const qreal lastPosY = qreal(KisDomUtils::toDouble(lastInfoElt.attribute("lastPosY",
219 "0.0")));
220 const qreal lastAngle = qreal(KisDomUtils::toDouble(lastInfoElt.attribute("lastAngle",
221 "0.0")));
222
223 return KisDistanceInitInfo(QPointF(lastPosX, lastPosY), lastAngle,
226 }
227 else {
230 }
231}
const qreal LONG_TIME
double toDouble(const QString &str, bool *ok=nullptr)
int toInt(const QString &str, bool *ok=nullptr)

References currentDabSeqNo, hasLastInfo, KisDistanceInitInfo(), lastAngle, LONG_TIME, spacingUpdateInterval, timingUpdateInterval, KisDomUtils::toDouble(), and KisDomUtils::toInt().

◆ makeDistInfo()

KisDistanceInformation KisDistanceInitInfo::makeDistInfo ( )

Constructs a KisDistanceInformation with initial settings based on this object.

Definition at line 178 of file kis_distance_information.cpp.

179{
180 if (m_d->hasLastInfo) {
181 return KisDistanceInformation(m_d->lastPosition, m_d->lastAngle,
182 m_d->spacingUpdateInterval, m_d->timingUpdateInterval,
183 m_d->currentDabSeqNo);
184 }
185 else {
186 return KisDistanceInformation(m_d->spacingUpdateInterval, m_d->timingUpdateInterval, m_d->currentDabSeqNo);
187 }
188}

References m_d.

◆ operator=()

KisDistanceInitInfo & KisDistanceInitInfo::operator= ( const KisDistanceInitInfo & rhs)

Definition at line 172 of file kis_distance_information.cpp.

173{
174 *m_d = *rhs.m_d;
175 return *this;
176}

References m_d.

◆ operator==()

bool KisDistanceInitInfo::operator== ( const KisDistanceInitInfo & other) const

Definition at line 149 of file kis_distance_information.cpp.

150{
151 if (m_d->spacingUpdateInterval != other.m_d->spacingUpdateInterval
152 || m_d->timingUpdateInterval != other.m_d->timingUpdateInterval
153 || m_d->hasLastInfo != other.m_d->hasLastInfo)
154 {
155 return false;
156 }
157 if (m_d->hasLastInfo) {
158 if (m_d->lastPosition != other.m_d->lastPosition
159 || m_d->lastAngle != other.m_d->lastAngle)
160 {
161 return false;
162 }
163 }
164
165 if (m_d->currentDabSeqNo != other.m_d->currentDabSeqNo) {
166 return false;
167 }
168
169 return true;
170}

References m_d.

◆ Private()

KisDistanceInitInfo::Private ( )
inline

Definition at line 79 of file kis_distance_information.cpp.

◆ toXML()

void KisDistanceInitInfo::toXML ( QDomDocument & doc,
QDomElement & elt ) const

Definition at line 190 of file kis_distance_information.cpp.

191{
192 elt.setAttribute("spacingUpdateInterval", QString::number(m_d->spacingUpdateInterval, 'g', 15));
193 elt.setAttribute("timingUpdateInterval", QString::number(m_d->timingUpdateInterval, 'g', 15));
194 elt.setAttribute("currentDabSeqNo", QString::number(m_d->currentDabSeqNo));
195 if (m_d->hasLastInfo) {
196 QDomElement lastInfoElt = doc.createElement("LastInfo");
197 lastInfoElt.setAttribute("lastPosX", QString::number(m_d->lastPosition.x(), 'g', 15));
198 lastInfoElt.setAttribute("lastPosY", QString::number(m_d->lastPosition.y(), 'g', 15));
199 lastInfoElt.setAttribute("lastAngle", QString::number(m_d->lastAngle, 'g', 15));
200 elt.appendChild(lastInfoElt);
201 }
202}

References m_d.

Member Data Documentation

◆ currentDabSeqNo

int KisDistanceInitInfo::currentDabSeqNo

Definition at line 99 of file kis_distance_information.cpp.

◆ hasLastInfo

bool KisDistanceInitInfo::hasLastInfo

Definition at line 91 of file kis_distance_information.cpp.

◆ lastAngle

qreal KisDistanceInitInfo::lastAngle

Definition at line 94 of file kis_distance_information.cpp.

◆ lastPosition

QPointF KisDistanceInitInfo::lastPosition

Definition at line 93 of file kis_distance_information.cpp.

◆ m_d

Private* const KisDistanceInitInfo::m_d
private

Definition at line 77 of file kis_distance_information.h.

◆ spacingUpdateInterval

qreal KisDistanceInitInfo::spacingUpdateInterval

Definition at line 96 of file kis_distance_information.cpp.

◆ timingUpdateInterval

qreal KisDistanceInitInfo::timingUpdateInterval

Definition at line 97 of file kis_distance_information.cpp.


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