Engauge Digitizer  2
DocumentModelCoords.h
Go to the documentation of this file.
1 /******************************************************************************************************
2  * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3  * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4  * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5  ******************************************************************************************************/
6 
7 #ifndef DOCUMENT_MODEL_COORDS_H
8 #define DOCUMENT_MODEL_COORDS_H
9 
10 #include "CoordScale.h"
11 #include "CoordsType.h"
13 #include "CoordUnitsPolarTheta.h"
15 
16 class Document;
17 class QTextStream;
18 
21 {
22 public:
25 
27  DocumentModelCoords(const Document &document);
28 
31 
34 
37 
40 
42  CoordsType coordsType () const;
43 
46 
49 
52 
55 
58 
61 
62  virtual void loadXml(QXmlStreamReader &reader);
63 
65  double originRadius () const;
66 
68  void printStream (QString indentation,
69  QTextStream &str) const;
70 
71  virtual void saveXml(QXmlStreamWriter &writer) const;
72 
74  void setCoordScaleXTheta (CoordScale coordScale);
75 
77  void setCoordScaleYRadius (CoordScale coordScale);
78 
81 
83  void setCoordUnitsDate (CoordUnitsDate coordUnits);
84 
87 
89  void setCoordUnitsTheta (CoordUnitsPolarTheta coordUnits);
90 
92  void setCoordUnitsTime (CoordUnitsTime coordUnits);
93 
95  void setCoordUnitsX (CoordUnitsNonPolarTheta coordUnits);
96 
98  void setCoordUnitsY (CoordUnitsNonPolarTheta coordUnits);
99 
101  void setOriginRadius (double originRadius);
102 
104  double thetaPeriod () const;
105 
106 private:
107 
108  CoordsType m_coordsType;
109  double m_originRadius; // Applies to polar coordinates. Usually zero
110  CoordScale m_coordScaleXTheta;
111  CoordScale m_coordScaleYRadius;
112  CoordUnitsNonPolarTheta m_coordUnitsX; // Applies to x for cartesian coordinates
113  CoordUnitsNonPolarTheta m_coordUnitsY; // Applies to y for cartesian coordinates
114  CoordUnitsPolarTheta m_coordUnitsTheta; // Applies to theta for polar coordinates
115  CoordUnitsNonPolarTheta m_coordUnitsRadius; // Applies to radius for polar coordinates
116  CoordUnitsDate m_coordUnitsDate; // Applies to date/time coordinates
117  CoordUnitsTime m_coordUnitsTime;
118 };
119 
120 #endif // DOCUMENT_MODEL_COORDS_H
DocumentModelAbstractBase.h
DocumentModelCoords::loadXml
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
Definition: DocumentModelCoords.cpp:129
DocumentModelCoords::setCoordUnitsDate
void setCoordUnitsDate(CoordUnitsDate coordUnits)
Set method for date units.
Definition: DocumentModelCoords.cpp:241
DocumentModelCoords::setCoordScaleXTheta
void setCoordScaleXTheta(CoordScale coordScale)
Set method for linear/log scale on x/theta.
Definition: DocumentModelCoords.cpp:226
DocumentModelCoords::coordUnitsY
CoordUnitsNonPolarTheta coordUnitsY() const
Get method for x units.
Definition: DocumentModelCoords.cpp:124
CoordUnitsNonPolarTheta
CoordUnitsNonPolarTheta
Definition: CoordUnitsNonPolarTheta.h:13
DocumentModelCoords::printStream
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
Definition: DocumentModelCoords.cpp:180
CoordsType.h
DocumentModelCoords::coordUnitsRadius
CoordUnitsNonPolarTheta coordUnitsRadius() const
Get method for radius units.
Definition: DocumentModelCoords.cpp:104
Document
Storage of one imported image and the data attached to that image.
Definition: Document.h:40
DocumentModelCoords::operator=
DocumentModelCoords & operator=(const DocumentModelCoords &other)
Assignment constructor.
Definition: DocumentModelCoords.cpp:68
DocumentModelCoords::setCoordScaleYRadius
void setCoordScaleYRadius(CoordScale coordScale)
Set method for linear/log scale on y/radius.
Definition: DocumentModelCoords.cpp:231
DocumentModelCoords::setOriginRadius
void setOriginRadius(double originRadius)
Set method for origin radius in polar mode.
Definition: DocumentModelCoords.cpp:271
DocumentModelCoords::setCoordUnitsX
void setCoordUnitsX(CoordUnitsNonPolarTheta coordUnits)
Set method for x units.
Definition: DocumentModelCoords.cpp:261
CoordUnitsTime
CoordUnitsTime
Definition: CoordUnitsTime.h:11
CoordScale
CoordScale
Definition: CoordScale.h:11
DocumentModelCoords::thetaPeriod
double thetaPeriod() const
Return the period of the theta value for polar coordinates, consistent with CoordThetaUnits.
Definition: DocumentModelCoords.cpp:276
DocumentModelCoords::saveXml
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
Definition: DocumentModelCoords.cpp:199
DocumentModelCoords::coordUnitsDate
CoordUnitsDate coordUnitsDate() const
Get method for date format when used.
Definition: DocumentModelCoords.cpp:99
DocumentModelCoords::setCoordUnitsY
void setCoordUnitsY(CoordUnitsNonPolarTheta coordUnits)
Set method for y units.
Definition: DocumentModelCoords.cpp:266
CoordScale.h
CoordUnitsDate
CoordUnitsDate
Definition: CoordUnitsDate.h:11
DocumentModelCoords::DocumentModelCoords
DocumentModelCoords()
Default constructor.
Definition: DocumentModelCoords.cpp:26
DocumentModelCoords::setCoordUnitsTheta
void setCoordUnitsTheta(CoordUnitsPolarTheta coordUnits)
Set method for theta units.
Definition: DocumentModelCoords.cpp:251
CoordUnitsPolarTheta.h
DocumentModelCoords::coordScaleYRadius
CoordScale coordScaleYRadius() const
Get method for linear/log scale on y/radius.
Definition: DocumentModelCoords.cpp:89
DocumentModelAbstractBase
Abstract base class for document models. This class enforces a common interface for the leaf subclass...
Definition: DocumentModelAbstractBase.h:15
CoordUnitsNonPolarTheta.h
DocumentModelCoords::setCoordUnitsRadius
void setCoordUnitsRadius(CoordUnitsNonPolarTheta coordUnits)
Set method for radius units.
Definition: DocumentModelCoords.cpp:246
DocumentModelCoords::coordUnitsX
CoordUnitsNonPolarTheta coordUnitsX() const
Get method for x units.
Definition: DocumentModelCoords.cpp:119
DocumentModelCoords::setCoordsType
void setCoordsType(CoordsType coordsType)
Set method for coordinates type.
Definition: DocumentModelCoords.cpp:236
DocumentModelCoords::originRadius
double originRadius() const
Get method for origin radius in polar mode.
Definition: DocumentModelCoords.cpp:175
DocumentModelCoords::coordScaleXTheta
CoordScale coordScaleXTheta() const
Get method for linear/log scale on x/theta.
Definition: DocumentModelCoords.cpp:84
CoordsType
CoordsType
Definition: CoordsType.h:11
CoordUnitsPolarTheta
CoordUnitsPolarTheta
Definition: CoordUnitsPolarTheta.h:13
DocumentModelCoords::coordUnitsTime
CoordUnitsTime coordUnitsTime() const
Get method for time format when used.
Definition: DocumentModelCoords.cpp:114
DocumentModelCoords::setCoordUnitsTime
void setCoordUnitsTime(CoordUnitsTime coordUnits)
Set method for time units.
Definition: DocumentModelCoords.cpp:256
DocumentModelCoords
Model for DlgSettingsCoords and CmdSettingsCoords.
Definition: DocumentModelCoords.h:19
DocumentModelCoords::coordsType
CoordsType coordsType() const
Get method for coordinates type.
Definition: DocumentModelCoords.cpp:94
DocumentModelCoords::coordUnitsTheta
CoordUnitsPolarTheta coordUnitsTheta() const
Get method for theta unit.
Definition: DocumentModelCoords.cpp:109