Engauge Digitizer 2
Loading...
Searching...
No Matches
Public Member Functions | List of all members
DocumentModelCoords Class Reference

Model for DlgSettingsCoords and CmdSettingsCoords. More...

#include <DocumentModelCoords.h>

Inheritance diagram for DocumentModelCoords:
Inheritance graph
Collaboration diagram for DocumentModelCoords:
Collaboration graph

Public Member Functions

 DocumentModelCoords ()
 Default constructor.
 
 DocumentModelCoords (const Document &document)
 Initial constructor from Document.
 
 DocumentModelCoords (const DocumentModelCoords &other)
 Copy constructor.
 
DocumentModelCoordsoperator= (const DocumentModelCoords &other)
 Assignment constructor.
 
CoordScale coordScaleXTheta () const
 Get method for linear/log scale on x/theta.
 
CoordScale coordScaleYRadius () const
 Get method for linear/log scale on y/radius.
 
CoordsType coordsType () const
 Get method for coordinates type.
 
CoordUnitsDate coordUnitsDate () const
 Get method for date format when used.
 
CoordUnitsNonPolarTheta coordUnitsRadius () const
 Get method for radius units.
 
CoordUnitsPolarTheta coordUnitsTheta () const
 Get method for theta unit.
 
CoordUnitsTime coordUnitsTime () const
 Get method for time format when used.
 
CoordUnitsNonPolarTheta coordUnitsX () const
 Get method for x units.
 
CoordUnitsNonPolarTheta coordUnitsY () const
 Get method for x units.
 
virtual void loadXml (QXmlStreamReader &reader)
 Load model from serialized xml.
 
double originRadius () const
 Get method for origin radius in polar mode.
 
void printStream (QString indentation, QTextStream &str) const
 Debugging method that supports print method of this class and printStream method of some other class(es)
 
virtual void saveXml (QXmlStreamWriter &writer) const
 Save entire model as xml into stream.
 
void setCoordScaleXTheta (CoordScale coordScale)
 Set method for linear/log scale on x/theta.
 
void setCoordScaleYRadius (CoordScale coordScale)
 Set method for linear/log scale on y/radius.
 
void setCoordsType (CoordsType coordsType)
 Set method for coordinates type.
 
void setCoordUnitsDate (CoordUnitsDate coordUnits)
 Set method for date units.
 
void setCoordUnitsRadius (CoordUnitsNonPolarTheta coordUnits)
 Set method for radius units.
 
void setCoordUnitsTheta (CoordUnitsPolarTheta coordUnits)
 Set method for theta units.
 
void setCoordUnitsTime (CoordUnitsTime coordUnits)
 Set method for time units.
 
void setCoordUnitsX (CoordUnitsNonPolarTheta coordUnits)
 Set method for x units.
 
void setCoordUnitsY (CoordUnitsNonPolarTheta coordUnits)
 Set method for y units.
 
void setOriginRadius (double originRadius)
 Set method for origin radius in polar mode.
 
double thetaPeriod () const
 Return the period of the theta value for polar coordinates, consistent with CoordThetaUnits.
 
- Public Member Functions inherited from DocumentModelAbstractBase
 DocumentModelAbstractBase ()
 Single constructor.
 
virtual ~DocumentModelAbstractBase ()
 Single destructor.
 

Additional Inherited Members

Detailed Description

Model for DlgSettingsCoords and CmdSettingsCoords.

Definition at line 20 of file DocumentModelCoords.h.

Constructor & Destructor Documentation

◆ DocumentModelCoords() [1/3]

DocumentModelCoords::DocumentModelCoords ( )

Default constructor.

Definition at line 27 of file DocumentModelCoords.cpp.

27 :
28 m_coordsType (COORDS_TYPE_CARTESIAN),
29 m_originRadius (DEFAULT_ORIGIN_RADIUS_LINEAR),
30 m_coordScaleXTheta (COORD_SCALE_LINEAR),
31 m_coordScaleYRadius (COORD_SCALE_LINEAR),
34 m_coordUnitsTheta (COORD_UNITS_POLAR_THETA_DEGREES),
35 m_coordUnitsRadius (COORD_UNITS_NON_POLAR_THETA_NUMBER),
36 m_coordUnitsDate (COORD_UNITS_DATE_YEAR_MONTH_DAY),
38{
39}
@ COORD_SCALE_LINEAR
Definition CoordScale.h:13
@ COORD_UNITS_DATE_YEAR_MONTH_DAY
@ COORD_UNITS_NON_POLAR_THETA_NUMBER
@ COORD_UNITS_POLAR_THETA_DEGREES
@ COORD_UNITS_TIME_HOUR_MINUTE_SECOND
@ COORDS_TYPE_CARTESIAN
Definition CoordsType.h:13
const double DEFAULT_ORIGIN_RADIUS_LINEAR

◆ DocumentModelCoords() [2/3]

DocumentModelCoords::DocumentModelCoords ( const Document & document)

Initial constructor from Document.

Definition at line 41 of file DocumentModelCoords.cpp.

41 :
42 m_coordsType (document.modelCoords().coordsType()),
43 m_originRadius(document.modelCoords().originRadius()),
44 m_coordScaleXTheta(document.modelCoords().coordScaleXTheta()),
45 m_coordScaleYRadius(document.modelCoords().coordScaleYRadius()),
46 m_coordUnitsX(document.modelCoords().coordUnitsX()),
47 m_coordUnitsY(document.modelCoords().coordUnitsY()),
48 m_coordUnitsTheta(document.modelCoords().coordUnitsTheta()),
49 m_coordUnitsRadius(document.modelCoords().coordUnitsRadius()),
50 m_coordUnitsDate(document.modelCoords().coordUnitsDate()),
51 m_coordUnitsTime(document.modelCoords().coordUnitsTime())
52{
53}
CoordScale coordScaleYRadius() const
Get method for linear/log scale on y/radius.
CoordUnitsNonPolarTheta coordUnitsRadius() const
Get method for radius units.
CoordUnitsPolarTheta coordUnitsTheta() const
Get method for theta unit.
CoordScale coordScaleXTheta() const
Get method for linear/log scale on x/theta.
CoordUnitsNonPolarTheta coordUnitsY() const
Get method for x units.
CoordUnitsTime coordUnitsTime() const
Get method for time format when used.
CoordUnitsNonPolarTheta coordUnitsX() const
Get method for x units.
CoordsType coordsType() const
Get method for coordinates type.
double originRadius() const
Get method for origin radius in polar mode.
CoordUnitsDate coordUnitsDate() const
Get method for date format when used.
DocumentModelCoords modelCoords() const
Get method for DocumentModelCoords.
Definition Document.cpp:695

◆ DocumentModelCoords() [3/3]

DocumentModelCoords::DocumentModelCoords ( const DocumentModelCoords & other)

Copy constructor.

Definition at line 55 of file DocumentModelCoords.cpp.

55 :
56 m_coordsType (other.coordsType ()),
57 m_originRadius (other.originRadius ()),
58 m_coordScaleXTheta (other.coordScaleXTheta()),
59 m_coordScaleYRadius (other.coordScaleYRadius ()),
60 m_coordUnitsX (other.coordUnitsX()),
61 m_coordUnitsY (other.coordUnitsY()),
62 m_coordUnitsTheta (other.coordUnitsTheta ()),
63 m_coordUnitsRadius (other.coordUnitsRadius ()),
64 m_coordUnitsDate (other.coordUnitsDate ()),
65 m_coordUnitsTime (other.coordUnitsTime ())
66{
67}
const int INNER_RADIUS_MIN

Member Function Documentation

◆ coordScaleXTheta()

CoordScale DocumentModelCoords::coordScaleXTheta ( ) const

Get method for linear/log scale on x/theta.

Definition at line 85 of file DocumentModelCoords.cpp.

86{
87 return m_coordScaleXTheta;
88}

◆ coordScaleYRadius()

CoordScale DocumentModelCoords::coordScaleYRadius ( ) const

Get method for linear/log scale on y/radius.

Definition at line 90 of file DocumentModelCoords.cpp.

91{
92 return m_coordScaleYRadius;
93}

◆ coordsType()

CoordsType DocumentModelCoords::coordsType ( ) const

Get method for coordinates type.

Definition at line 95 of file DocumentModelCoords.cpp.

96{
97 return m_coordsType;
98}

◆ coordUnitsDate()

CoordUnitsDate DocumentModelCoords::coordUnitsDate ( ) const

Get method for date format when used.

Definition at line 100 of file DocumentModelCoords.cpp.

101{
102 return m_coordUnitsDate;
103}

◆ coordUnitsRadius()

CoordUnitsNonPolarTheta DocumentModelCoords::coordUnitsRadius ( ) const

Get method for radius units.

Definition at line 105 of file DocumentModelCoords.cpp.

106{
107 return m_coordUnitsRadius;
108}

◆ coordUnitsTheta()

CoordUnitsPolarTheta DocumentModelCoords::coordUnitsTheta ( ) const

Get method for theta unit.

Definition at line 110 of file DocumentModelCoords.cpp.

111{
112 return m_coordUnitsTheta;
113}

◆ coordUnitsTime()

CoordUnitsTime DocumentModelCoords::coordUnitsTime ( ) const

Get method for time format when used.

Definition at line 115 of file DocumentModelCoords.cpp.

116{
117 return m_coordUnitsTime;
118}

◆ coordUnitsX()

CoordUnitsNonPolarTheta DocumentModelCoords::coordUnitsX ( ) const

Get method for x units.

Definition at line 120 of file DocumentModelCoords.cpp.

121{
122 return m_coordUnitsX;
123}

◆ coordUnitsY()

CoordUnitsNonPolarTheta DocumentModelCoords::coordUnitsY ( ) const

Get method for x units.

Definition at line 125 of file DocumentModelCoords.cpp.

126{
127 return m_coordUnitsY;
128}

◆ loadXml()

void DocumentModelCoords::loadXml ( QXmlStreamReader & reader)
virtual

Load model from serialized xml.

Implements DocumentModelAbstractBase.

Definition at line 130 of file DocumentModelCoords.cpp.

131{
132 LOG4CPP_INFO_S ((*mainCat)) << "DocumentModelCoords::loadXml";
133
134 bool success = true;
135
137
138 if (attributes.hasAttribute(DOCUMENT_SERIALIZE_COORDS_TYPE) &&
148
159
160 // Read until end of this subtree
161 while ((reader.tokenType() != QXmlStreamReader::EndElement) ||
164 if (reader.atEnd()) {
165 success = false;
166 break;
167 }
168 }
169 }
170
171 if (!success) {
172 reader.raiseError (QObject::tr ("Cannot read coordinates data"));
173 }
174}
CoordScale
Definition CoordScale.h:12
CoordUnitsDate
CoordUnitsNonPolarTheta
CoordUnitsPolarTheta
CoordUnitsTime
CoordsType
Definition CoordsType.h:12
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_DATE
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_RADIUS
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_X
const QString DOCUMENT_SERIALIZE_COORDS_ORIGIN_RADIUS
const QString DOCUMENT_SERIALIZE_COORDS_SCALE_Y_RADIUS
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_THETA
const QString DOCUMENT_SERIALIZE_COORDS_SCALE_X_THETA
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_TIME
const QString DOCUMENT_SERIALIZE_COORDS
const QString DOCUMENT_SERIALIZE_COORDS_TYPE
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_Y
log4cpp::Category * mainCat
Definition Logger.cpp:14
QXmlStreamReader::TokenType loadNextFromReader(QXmlStreamReader &reader)
Load next token from xml reader.
Definition Xml.cpp:14
void setCoordUnitsY(CoordUnitsNonPolarTheta coordUnits)
Set method for y units.
void setOriginRadius(double originRadius)
Set method for origin radius in polar mode.
void setCoordUnitsX(CoordUnitsNonPolarTheta coordUnits)
Set method for x units.
void setCoordUnitsRadius(CoordUnitsNonPolarTheta coordUnits)
Set method for radius units.
void setCoordUnitsDate(CoordUnitsDate coordUnits)
Set method for date units.
void setCoordsType(CoordsType coordsType)
Set method for coordinates type.
void setCoordScaleXTheta(CoordScale coordScale)
Set method for linear/log scale on x/theta.
void setCoordUnitsTime(CoordUnitsTime coordUnits)
Set method for time units.
void setCoordScaleYRadius(CoordScale coordScale)
Set method for linear/log scale on y/radius.
void setCoordUnitsTheta(CoordUnitsPolarTheta coordUnits)
Set method for theta units.
#define LOG4CPP_INFO_S(logger)
Definition convenience.h:18

◆ operator=()

DocumentModelCoords & DocumentModelCoords::operator= ( const DocumentModelCoords & other)

Assignment constructor.

Definition at line 69 of file DocumentModelCoords.cpp.

70{
71 m_coordsType = other.coordsType();
72 m_originRadius = other.originRadius();
73 m_coordScaleXTheta = other.coordScaleXTheta();
74 m_coordScaleYRadius = other.coordScaleYRadius();
75 m_coordUnitsX = other.coordUnitsX();
76 m_coordUnitsY = other.coordUnitsY();
77 m_coordUnitsTheta = other.coordUnitsTheta();
78 m_coordUnitsRadius = other.coordUnitsRadius();
79 m_coordUnitsDate = other.coordUnitsDate();
80 m_coordUnitsTime = other.coordUnitsTime();
81
82 return *this;
83}

◆ originRadius()

double DocumentModelCoords::originRadius ( ) const

Get method for origin radius in polar mode.

Definition at line 176 of file DocumentModelCoords.cpp.

177{
178 return m_originRadius;
179}

◆ printStream()

void DocumentModelCoords::printStream ( QString indentation,
QTextStream & str ) const

Debugging method that supports print method of this class and printStream method of some other class(es)

Definition at line 181 of file DocumentModelCoords.cpp.

183{
184 str << indentation << "DocumentModelCoords\n";
185
187
188 str << indentation << "coordsType=" << coordsTypeToString (m_coordsType) << "\n";
189 str << indentation << "originRadius=" << m_originRadius << "\n";
190 str << indentation << "coordScaleXTheta=" << coordScaleToString (m_coordScaleXTheta) << "\n";
191 str << indentation << "coordScaleYRadius=" << coordScaleToString (m_coordScaleYRadius) << "\n";
192 str << indentation << "coordUnitsX=" << coordUnitsNonPolarThetaToString (m_coordUnitsX) << "\n";
193 str << indentation << "coordUnitsY=" << coordUnitsNonPolarThetaToString (m_coordUnitsY) << "\n";
194 str << indentation << "coordUnitsTheta=" << coordUnitsPolarThetaToString (m_coordUnitsTheta) << "\n";
195 str << indentation << "coordUnitsRadius=" << coordUnitsNonPolarThetaToString (m_coordUnitsRadius) << "\n";
196 str << indentation << "coordUnitsDate=" << coordUnitsDateToString (m_coordUnitsDate) << "\n";
197 str << indentation << "coordUnitsTime=" << coordUnitsTimeToString (m_coordUnitsTime) << "\n";
198}
QString coordScaleToString(CoordScale coordScale)
Definition CoordScale.cpp:9
QString coordUnitsDateToString(CoordUnitsDate coordUnits)
QString coordUnitsNonPolarThetaToString(CoordUnitsNonPolarTheta coordUnits)
QString coordUnitsPolarThetaToString(CoordUnitsPolarTheta coordUnits)
QString coordUnitsTimeToString(CoordUnitsTime coordUnits)
QString coordsTypeToString(CoordsType coordsType)
Definition CoordsType.cpp:9
const QString INDENTATION_DELTA

◆ saveXml()

void DocumentModelCoords::saveXml ( QXmlStreamWriter & writer) const
virtual

Save entire model as xml into stream.

Implements DocumentModelAbstractBase.

Definition at line 200 of file DocumentModelCoords.cpp.

201{
202 LOG4CPP_INFO_S ((*mainCat)) << "DocumentModelCoords::saveXml";
203
204 writer.writeStartElement(DOCUMENT_SERIALIZE_COORDS);
205 writer.writeAttribute(DOCUMENT_SERIALIZE_COORDS_TYPE, QString::number (m_coordsType));
207 writer.writeAttribute(DOCUMENT_SERIALIZE_COORDS_ORIGIN_RADIUS, QString::number (m_originRadius));
208 writer.writeAttribute(DOCUMENT_SERIALIZE_COORDS_SCALE_X_THETA, QString::number (m_coordScaleXTheta));
210 writer.writeAttribute(DOCUMENT_SERIALIZE_COORDS_SCALE_Y_RADIUS, QString::number (m_coordScaleYRadius));
212 writer.writeAttribute(DOCUMENT_SERIALIZE_COORDS_UNITS_X, QString::number (m_coordUnitsX));
214 writer.writeAttribute(DOCUMENT_SERIALIZE_COORDS_UNITS_Y, QString::number (m_coordUnitsY));
216 writer.writeAttribute(DOCUMENT_SERIALIZE_COORDS_UNITS_THETA, QString::number (m_coordUnitsTheta));
218 writer.writeAttribute(DOCUMENT_SERIALIZE_COORDS_UNITS_RADIUS, QString::number (m_coordUnitsRadius));
220 writer.writeAttribute(DOCUMENT_SERIALIZE_COORDS_UNITS_DATE, QString::number (m_coordUnitsDate));
222 writer.writeAttribute(DOCUMENT_SERIALIZE_COORDS_UNITS_TIME, QString::number (m_coordUnitsTime));
224 writer.writeEndElement();
225}
const QString DOCUMENT_SERIALIZE_COORDS_SCALE_X_THETA_STRING
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_RADIUS_STRING
const QString DOCUMENT_SERIALIZE_COORDS_SCALE_Y_RADIUS_STRING
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_DATE_STRING
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_TIME_STRING
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_X_STRING
const QString DOCUMENT_SERIALIZE_COORDS_TYPE_STRING
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_Y_STRING
const QString DOCUMENT_SERIALIZE_COORDS_UNITS_THETA_STRING

◆ setCoordScaleXTheta()

void DocumentModelCoords::setCoordScaleXTheta ( CoordScale coordScale)

Set method for linear/log scale on x/theta.

Definition at line 227 of file DocumentModelCoords.cpp.

228{
229 m_coordScaleXTheta = coordScale;
230}

◆ setCoordScaleYRadius()

void DocumentModelCoords::setCoordScaleYRadius ( CoordScale coordScale)

Set method for linear/log scale on y/radius.

Definition at line 232 of file DocumentModelCoords.cpp.

233{
234 m_coordScaleYRadius = coordScale;
235}

◆ setCoordsType()

void DocumentModelCoords::setCoordsType ( CoordsType coordsType)

Set method for coordinates type.

Definition at line 237 of file DocumentModelCoords.cpp.

238{
239 m_coordsType = coordsType;
240}

◆ setCoordUnitsDate()

void DocumentModelCoords::setCoordUnitsDate ( CoordUnitsDate coordUnits)

Set method for date units.

Definition at line 242 of file DocumentModelCoords.cpp.

243{
244 m_coordUnitsDate = coordUnits;
245}

◆ setCoordUnitsRadius()

void DocumentModelCoords::setCoordUnitsRadius ( CoordUnitsNonPolarTheta coordUnits)

Set method for radius units.

Definition at line 247 of file DocumentModelCoords.cpp.

248{
249 m_coordUnitsRadius = coordUnits;
250}

◆ setCoordUnitsTheta()

void DocumentModelCoords::setCoordUnitsTheta ( CoordUnitsPolarTheta coordUnits)

Set method for theta units.

Definition at line 252 of file DocumentModelCoords.cpp.

253{
254 m_coordUnitsTheta = coordUnits;
255}

◆ setCoordUnitsTime()

void DocumentModelCoords::setCoordUnitsTime ( CoordUnitsTime coordUnits)

Set method for time units.

Definition at line 257 of file DocumentModelCoords.cpp.

258{
259 m_coordUnitsTime = coordUnits;
260}

◆ setCoordUnitsX()

void DocumentModelCoords::setCoordUnitsX ( CoordUnitsNonPolarTheta coordUnits)

Set method for x units.

Definition at line 262 of file DocumentModelCoords.cpp.

263{
264 m_coordUnitsX = coordUnits;
265}

◆ setCoordUnitsY()

void DocumentModelCoords::setCoordUnitsY ( CoordUnitsNonPolarTheta coordUnits)

Set method for y units.

Definition at line 267 of file DocumentModelCoords.cpp.

268{
269 m_coordUnitsY = coordUnits;
270}

◆ setOriginRadius()

void DocumentModelCoords::setOriginRadius ( double originRadius)

Set method for origin radius in polar mode.

Definition at line 272 of file DocumentModelCoords.cpp.

273{
274 m_originRadius = originRadius;
275}

◆ thetaPeriod()

double DocumentModelCoords::thetaPeriod ( ) const

Return the period of the theta value for polar coordinates, consistent with CoordThetaUnits.

Definition at line 277 of file DocumentModelCoords.cpp.

278{
279 switch (m_coordUnitsTheta) {
284 return 360;
285
287 return 400;
288
290 return TWO_PI;
291
293 return 1;
294
295 default:
296 break;
297 }
298
299 LOG4CPP_ERROR_S ((*mainCat)) << "DocumentModelCoords::thetaPeriod";
300
301 ENGAUGE_ASSERT(false);
302 return 0;
303}
@ COORD_UNITS_POLAR_THETA_DEGREES_MINUTES_SECONDS_NSEW
@ COORD_UNITS_POLAR_THETA_TURNS
@ COORD_UNITS_POLAR_THETA_RADIANS
@ COORD_UNITS_POLAR_THETA_DEGREES_MINUTES
@ COORD_UNITS_POLAR_THETA_DEGREES_MINUTES_SECONDS
@ COORD_UNITS_POLAR_THETA_GRADIANS
const double TWO_PI
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS) define ENGAUGE...
#define LOG4CPP_ERROR_S(logger)
Definition convenience.h:12

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