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

Storage of data belonging to one coordinate system. More...

#include <CoordSystem.h>

Inheritance diagram for CoordSystem:
Inheritance graph
Collaboration diagram for CoordSystem:
Collaboration graph

Public Member Functions

 CoordSystem ()
 Single constructor.
 
 ~CoordSystem ()
 
 CoordSystem (const QString &fileName)
 Constructor for opened Graphs, and error report files. The specified file is opened and read.
 
virtual void addGraphCurveAtEnd (const QString &curveName)
 Add new graph curve to the list of existing graph curves.
 
virtual void addPointAxisWithGeneratedIdentifier (const QPointF &posScreen, const QPointF &posGraph, QString &identifier, double ordinal, bool isXOnly)
 Add a single axis point with a generated point identifier.
 
virtual void addPointAxisWithSpecifiedIdentifier (const QPointF &posScreen, const QPointF &posGraph, const QString &identifier, double ordinal, bool isXOnly)
 Add a single axis point with the specified point identifier.
 
virtual void addPointGraphWithGeneratedIdentifier (const QString &curveName, const QPointF &posScreen, QString &generatedIentifier, double ordinal)
 Add a single graph point with a generated point identifier.
 
virtual void addPointGraphWithSpecifiedIdentifier (const QString &curveName, const QPointF &posScreen, const QString &identifier, double ordinal)
 Add a single graph point with the specified point identifier. Note that PointStyle is not applied to the point within the Graph.
 
virtual void addPointsInCurvesGraphs (CurvesGraphs &curvesGraphs)
 Add all points identified in the specified CurvesGraphs. See also removePointsInCurvesGraphs.
 
virtual void checkAddPointAxis (const QPointF &posScreen, const QPointF &posGraph, bool &isError, QString &errorMessage, bool isXOnly, DocumentAxesPointsRequired documentAxesPointsRequired)
 Check before calling addPointAxis. Also returns the next available ordinal number (to prevent clashes)
 
virtual void checkEditPointAxis (const QString &pointIdentifier, const QPointF &posScreen, const QPointF &posGraph, bool &isError, QString &errorMessage, DocumentAxesPointsRequired documentAxesPointsRequired)
 Check before calling editPointAxis.
 
virtual const CurvecurveAxes () const
 Get method for axis curve.
 
virtual CurvecurveForCurveName (const QString &curveName)
 See CurvesGraphs::curveForCurveName, although this also works for AXIS_CURVE_NAME.
 
virtual const CurvecurveForCurveName (const QString &curveName) const
 See CurvesGraphs::curveForCurveNames, although this also works for AXIS_CURVE_NAME.
 
virtual const CurvesGraphscurvesGraphs () const
 Make all Curves available, read only, for CmdAbstract classes only.
 
virtual QStringList curvesGraphsNames () const
 See CurvesGraphs::curvesGraphsNames.
 
virtual int curvesGraphsNumPoints (const QString &curveName) const
 See CurvesGraphs::curvesGraphsNumPoints.
 
virtual void editPointAxis (const QPointF &posGraph, const QString &identifier)
 Edit the graph coordinates of a single axis point. Call this after checkAddPointAxis to guarantee success in this call.
 
virtual void editPointGraph (bool isX, bool isY, double x, double y, const QStringList &identifiers, const Transformation &transformation)
 Edit the graph coordinates of one or more graph points.
 
bool isXOnly (const QString &pointIdentifier) const
 Return true if y coordinate is undefined, otherwise x coordinae is undefined in DOCUMENT_AXES_POINT_REQUIRE_4 mode.
 
virtual void iterateThroughCurvePointsAxes (const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback)
 See Curve::iterateThroughCurvePoints, for the axes curve.
 
virtual void iterateThroughCurvePointsAxes (const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback) const
 See Curve::iterateThroughCurvePoints, for the axes curve.
 
virtual void iterateThroughCurveSegments (const QString &curveName, const Functor2wRet< const Point &, const Point &, CallbackSearchReturn > &ftorWithCallback) const
 See Curve::iterateThroughCurveSegments, for any axes or graph curve.
 
virtual void iterateThroughCurvesPointsGraphs (const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback)
 See Curve::iterateThroughCurvePoints, for all the graphs curves.
 
virtual void iterateThroughCurvesPointsGraphs (const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback) const
 See Curve::iterateThroughCurvePoints, for all the graphs curves.
 
virtual bool loadCurvesFile (const QString &curvesFile)
 Load the curve names in the specified Engauge file into the current graph. This is called near the end of the import process only.
 
void loadPreVersion6 (QDataStream &str, double version, DocumentAxesPointsRequired &documentAxesPointsRequired)
 Load from file in pre-version 6 format. Number of axes points is read in and passed to Document.
 
void loadVersion6 (QXmlStreamReader &reader, DocumentAxesPointsRequired &documentAxesPointsRequired)
 Load from file in version 6 format. Number of axes points is read in and passed to Document.
 
void loadVersions7AndUp (QXmlStreamReader &reader)
 Load from file in versions 7 and 8 formats. Number of axes points is already defined at Document level.
 
virtual DocumentModelAxesChecker modelAxesChecker () const
 Get method for DocumentModelAxesChecker.
 
virtual DocumentModelColorFilter modelColorFilter () const
 Get method for DocumentModelColorFilter.
 
virtual DocumentModelCoords modelCoords () const
 Get method for DocumentModelCoords.
 
virtual CurveStyles modelCurveStyles () const
 Get method for CurveStyles.
 
virtual DocumentModelDigitizeCurve modelDigitizeCurve () const
 Get method for DocumentModelDigitizeCurve.
 
virtual DocumentModelExportFormat modelExport () const
 Get method for DocumentModelExportFormat.
 
virtual DocumentModelGeneral modelGeneral () const
 Get method for DocumentModelGeneral.
 
virtual DocumentModelGridDisplay modelGridDisplay () const
 Get method for DocumentModelGridDisplay.
 
virtual DocumentModelGridRemoval modelGridRemoval () const
 Get method for DocumentModelGridRemoval.
 
virtual DocumentModelGuidelines modelGuidelines () const
 Get method for DocumentModelGuidelines.
 
virtual DocumentModelPointMatch modelPointMatch () const
 Get method for DocumentModelPointMatch.
 
virtual DocumentModelSegments modelSegments () const
 Get method for DocumentModelSegments.
 
virtual void movePoint (const QString &pointIdentifier, const QPointF &deltaScreen)
 See Curve::movePoint.
 
virtual int nextOrdinalForCurve (const QString &curveName) const
 Default next ordinal value for specified curve.
 
virtual QPointF positionGraph (const QString &pointIdentifier) const
 See Curve::positionGraph.
 
virtual QPointF positionScreen (const QString &pointIdentifier) const
 See Curve::positionScreen.
 
virtual void print () const
 Debugging method for printing directly from symbolic debugger.
 
virtual 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 QString reasonForUnsuccessfulRead () const
 Return an informative text message explaining why startup loading failed. Applies if successfulRead returns false.
 
virtual void removePointAxis (const QString &identifier)
 Perform the opposite of addPointAxis.
 
virtual void removePointGraph (const QString &identifier)
 Perform the opposite of addPointGraph.
 
virtual void removePointsInCurvesGraphs (CurvesGraphs &curvesGraphs)
 Remove all points identified in the specified CurvesGraphs. See also addPointsInCurvesGraphs.
 
virtual void saveXml (QXmlStreamWriter &writer) const
 Save graph to xml.
 
virtual QString selectedCurveName () const
 Currently selected curve name. This is used to set the selected curve combobox in MainWindow.
 
virtual void setCurveAxes (const Curve &curveAxes)
 Let CmdAbstract classes overwrite axes Curve. Applies to current coordinate system.
 
virtual void setCurvesGraphs (const CurvesGraphs &curvesGraphs)
 Let CmdAbstract classes overwrite CurvesGraphs. Applies to current coordinate system.
 
virtual void setModelAxesChecker (const DocumentModelAxesChecker &modelAxesChecker)
 Set method for DocumentModelAxesChecker.
 
virtual void setModelColorFilter (const DocumentModelColorFilter &modelColorFilter)
 Set method for DocumentModelColorFilter.
 
virtual void setModelCoords (const DocumentModelCoords &modelCoords)
 Set method for DocumentModelCoords.
 
virtual void setModelCurveStyles (const CurveStyles &modelCurveStyles)
 Set method for CurveStyles.
 
virtual void setModelDigitizeCurve (const DocumentModelDigitizeCurve &modelDigitizeCurve)
 Set method for DocumentModelDigitizeCurve.
 
virtual void setModelExport (const DocumentModelExportFormat &modelExport)
 Set method for DocumentModelExportFormat.
 
virtual void setModelGeneral (const DocumentModelGeneral &modelGeneral)
 Set method for DocumentModelGeneral.
 
virtual void setModelGridDisplay (const DocumentModelGridDisplay &modelGridDisplay)
 Set method for DocumentModelGridDisplay.
 
virtual void setModelGridRemoval (const DocumentModelGridRemoval &modelGridRemoval)
 Set method for DocumentModelGridRemoval.
 
virtual void setModelGuidelines (const DocumentModelGuidelines &modelGuidelines)
 Set method for DocumentModelGuidelines.
 
void setModelPointMatch (const DocumentModelPointMatch &modelPointMatch)
 Set method for DocumentModelPointMatch.
 
virtual void setModelSegments (const DocumentModelSegments &modelSegments)
 Set method for DocumentModelSegments.
 
virtual void setSelectedCurveName (const QString &selectedCurveName)
 Save curve name that is selected for the current coordinate system, for the next time the coordinate system reappears.
 
virtual bool successfulRead () const
 Return true if startup loading succeeded. If the loading failed then reasonForUnsuccessfulRed will explain why.
 
virtual void updatePointOrdinals (const Transformation &transformation)
 Update point ordinals after point addition/removal or dragging.
 
- Public Member Functions inherited from CoordSystemInterface
 CoordSystemInterface ()
 Single constructor.
 
virtual ~CoordSystemInterface ()
 

Detailed Description

Storage of data belonging to one coordinate system.

There can be one or more coordinate systems per graph, and one or more graphs in the image belonging to a Document

Definition at line 43 of file CoordSystem.h.

Constructor & Destructor Documentation

◆ CoordSystem() [1/2]

CoordSystem::CoordSystem ( )

Single constructor.

Definition at line 39 of file CoordSystem.cpp.

39 :
40 m_curveAxes (new Curve (AXIS_CURVE_NAME,
44{
45 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::CoordSystem";
46
48
49 // Create one curve, or as many curve as specified in the configuration file, whichever is greater
50 for (int indexOneBased = 1; indexOneBased <= settingsForGraph.numberOfCurvesForImport (); indexOneBased++) {
51
54 m_curvesGraphs.addGraphCurveAtEnd (Curve (curveName,
57 PointStyle::defaultGraphCurve (m_curvesGraphs.numCurves ()))));
58
59 resetSelectedCurveNameIfNecessary ();
60 }
61}
const QString AXIS_CURVE_NAME
const QString DEFAULT_GRAPH_CURVE_NAME
const int INNER_RADIUS_MIN
log4cpp::Category * mainCat
Definition Logger.cpp:14
static ColorFilterSettings defaultFilter()
Initial default for any Curve.
Container for LineStyle and PointStyle for one Curve.
Definition CurveStyle.h:19
Container for one set of digitized Points.
Definition Curve.h:34
int numCurves() const
Current number of graphs curves.
void addGraphCurveAtEnd(const Curve &curve)
Append new graph Curve to end of Curve list.
static LineStyle defaultAxesCurve()
Initial default for axes curve.
Definition LineStyle.cpp:68
static LineStyle defaultGraphCurve(int index)
Initial default for index'th graph curve.
Definition LineStyle.cpp:84
static PointStyle defaultGraphCurve(int index)
Initial default for index'th graph curve.
static PointStyle defaultAxesCurve()
Initial default for axes curve.
Manage storage and retrieval of the settings for the curves.
QString defaultCurveName(int indexOneBased, const QString &defaultName) const
Default graph name for the specified curve index.
#define LOG4CPP_INFO_S(logger)
Definition convenience.h:18

◆ ~CoordSystem()

CoordSystem::~CoordSystem ( )

Definition at line 63 of file CoordSystem.cpp.

64{
65 delete m_curveAxes;
66}

◆ CoordSystem() [2/2]

CoordSystem::CoordSystem ( const QString & fileName)

Constructor for opened Graphs, and error report files. The specified file is opened and read.

Member Function Documentation

◆ addGraphCurveAtEnd()

void CoordSystem::addGraphCurveAtEnd ( const QString & curveName)
virtual

Add new graph curve to the list of existing graph curves.

Implements CoordSystemInterface.

Definition at line 68 of file CoordSystem.cpp.

69{
70 m_curvesGraphs.addGraphCurveAtEnd (Curve (curveName,
73 PointStyle::defaultGraphCurve(m_curvesGraphs.numCurves()))));
74
75 resetSelectedCurveNameIfNecessary ();
76}

◆ addPointAxisWithGeneratedIdentifier()

void CoordSystem::addPointAxisWithGeneratedIdentifier ( const QPointF & posScreen,
const QPointF & posGraph,
QString & identifier,
double ordinal,
bool isXOnly )
virtual

Add a single axis point with a generated point identifier.

Call this after checkAddPointAxis to guarantee success in this call.

Parameters
posScreenScreen coordinates from QGraphicsView
posGraphGraph coordiantes from user
identifierIdentifier for new axis point
ordinalUnique, for curve, ordinal number
isXOnlyTrue if graph coordinates have only x coordinate

Implements CoordSystemInterface.

Definition at line 78 of file CoordSystem.cpp.

83{
85 posScreen,
86 posGraph,
87 ordinal,
88 isXOnly);
89 m_curveAxes->addPoint (point);
90
91 identifier = point.identifier();
92
93 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::addPointAxisWithGeneratedIdentifier"
94 << " ordinal=" << ordinal
95 << " posScreen=" << QPointFToString (posScreen).toLatin1 ().data ()
96 << " posGraph=" << QPointFToString (posGraph).toLatin1 ().data ()
97 << " identifier=" << identifier.toLatin1 ().data ();
98}
QString QPointFToString(const QPointF &pos)
bool isXOnly(const QString &pointIdentifier) const
Return true if y coordinate is undefined, otherwise x coordinae is undefined in DOCUMENT_AXES_POINT_R...
void addPoint(const Point &point)
Add Point to this Curve.
Definition Curve.cpp:134
Class that represents one digitized point. The screen-to-graph coordinate transformation is always ex...
Definition Point.h:26

◆ addPointAxisWithSpecifiedIdentifier()

void CoordSystem::addPointAxisWithSpecifiedIdentifier ( const QPointF & posScreen,
const QPointF & posGraph,
const QString & identifier,
double ordinal,
bool isXOnly )
virtual

Add a single axis point with the specified point identifier.

Call this after checkAddPointAxis to guarantee success in this call.

Parameters
posScreenScreen coordinates from QGraphicsView
posGraphGraph coordiantes from user
identifierIdentifier for new axis point
ordinalUnique, for curve, ordinal number
isXOnlyTrue if graph coordinates have only x coordinate

Implements CoordSystemInterface.

Definition at line 100 of file CoordSystem.cpp.

105{
106 Point point (AXIS_CURVE_NAME,
107 identifier,
108 posScreen,
109 posGraph,
110 ordinal,
111 isXOnly);
112 m_curveAxes->addPoint (point);
113
114 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::addPointAxisWithSpecifiedIdentifier"
115 << " ordinal=" << ordinal
116 << " posScreen=" << QPointFToString (posScreen).toLatin1 ().data ()
117 << " posGraph=" << QPointFToString (posGraph).toLatin1 ().data ()
118 << " identifier=" << identifier.toLatin1 ().data ();
119}

◆ addPointGraphWithGeneratedIdentifier()

void CoordSystem::addPointGraphWithGeneratedIdentifier ( const QString & curveName,
const QPointF & posScreen,
QString & generatedIentifier,
double ordinal )
virtual

Add a single graph point with a generated point identifier.

Implements CoordSystemInterface.

Definition at line 121 of file CoordSystem.cpp.

125{
126 Point point (curveName,
127 posScreen,
128 ordinal);
129 m_curvesGraphs.addPoint (point);
130
131 identifier = point.identifier();
132
133 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::addPointGraphWithGeneratedIdentifier"
134 << " ordinal=" << ordinal
135 << " posScreen=" << QPointFToString (posScreen).toLatin1 ().data ()
136 << " identifier=" << identifier.toLatin1 ().data ();
137}
void addPoint(const Point &point)
Append new Point to the specified Curve.

◆ addPointGraphWithSpecifiedIdentifier()

void CoordSystem::addPointGraphWithSpecifiedIdentifier ( const QString & curveName,
const QPointF & posScreen,
const QString & identifier,
double ordinal )
virtual

Add a single graph point with the specified point identifier. Note that PointStyle is not applied to the point within the Graph.

Implements CoordSystemInterface.

Definition at line 139 of file CoordSystem.cpp.

143{
144 Point point (curveName,
145 identifier,
146 posScreen,
147 ordinal);
148 m_curvesGraphs.addPoint (point);
149
150 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::addPointGraphWithSpecifiedIdentifier"
151 << " ordinal=" << ordinal
152 << " posScreen=" << QPointFToString (posScreen).toLatin1 ().data ()
153 << " identifier=" << identifier.toLatin1 ().data ();
154}

◆ addPointsInCurvesGraphs()

void CoordSystem::addPointsInCurvesGraphs ( CurvesGraphs & curvesGraphs)
virtual

Add all points identified in the specified CurvesGraphs. See also removePointsInCurvesGraphs.

Implements CoordSystemInterface.

Definition at line 156 of file CoordSystem.cpp.

157{
159
162
164}
Callback that is used when iterating through a read-only CurvesGraphs to add corresponding points in ...
CallbackSearchReturn callback(const QString &curveName, const Point &point)
Callback method.
virtual const CurvesGraphs & curvesGraphs() const
Make all Curves available, read only, for CmdAbstract classes only.
void iterateThroughCurvesPoints(const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback)
Apply functor to Points on all of the Curves.

◆ checkAddPointAxis()

void CoordSystem::checkAddPointAxis ( const QPointF & posScreen,
const QPointF & posGraph,
bool & isError,
QString & errorMessage,
bool isXOnly,
DocumentAxesPointsRequired documentAxesPointsRequired )
virtual

Check before calling addPointAxis. Also returns the next available ordinal number (to prevent clashes)

Implements CoordSystemInterface.

Definition at line 180 of file CoordSystem.cpp.

186{
187 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::checkAddPointAxis"
188 << " posScreen=" << QPointFToString (posScreen).toLatin1 ().data ()
189 << " posGraph=" << QPointFToString (posGraph).toLatin1 ().data ();
190
191 CallbackCheckAddPointAxis ftor (m_modelCoords,
192 posScreen,
193 posGraph,
194 documentAxesPointsRequired,
195 isXOnly);
196
200
201 isError = ftor.isError ();
202 errorMessage = ftor.errorMessage ();
203}
CallbackSearchReturn callback(const QString &curveName, const Point &point)
Callback method.
Callback for sanity checking the screen and graph coordinates of an axis point, before it is added to...
void iterateThroughCurvePoints(const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > &ftorWithCallback) const
Apply functor to Points on Curve.
Definition Curve.cpp:303

◆ checkEditPointAxis()

void CoordSystem::checkEditPointAxis ( const QString & pointIdentifier,
const QPointF & posScreen,
const QPointF & posGraph,
bool & isError,
QString & errorMessage,
DocumentAxesPointsRequired documentAxesPointsRequired )
virtual

Check before calling editPointAxis.

Implements CoordSystemInterface.

Definition at line 205 of file CoordSystem.cpp.

211{
212 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::checkEditPointAxis"
213 << " posGraph=" << QPointFToString (posGraph).toLatin1 ().data ();
214
215 CallbackCheckEditPointAxis ftor (m_modelCoords,
217 posScreen,
218 posGraph,
219 documentAxesPointsRequired);
220
224
225 isError = ftor.isError ();
226 errorMessage = ftor.errorMessage ();
227}
Callback for sanity checking the screen and graph coordinates of an axis point that is in the axes cu...

◆ curveAxes()

const Curve & CoordSystem::curveAxes ( ) const
virtual

Get method for axis curve.

Implements CoordSystemInterface.

Definition at line 229 of file CoordSystem.cpp.

230{
231 ENGAUGE_CHECK_PTR (m_curveAxes);
232
233 return *m_curveAxes;
234}
#define ENGAUGE_CHECK_PTR(ptr)
Drop in replacement for Q_CHECK_PTR.

◆ curveForCurveName() [1/2]

Curve * CoordSystem::curveForCurveName ( const QString & curveName)
virtual

See CurvesGraphs::curveForCurveName, although this also works for AXIS_CURVE_NAME.

Implements CoordSystemInterface.

Definition at line 236 of file CoordSystem.cpp.

237{
238 if (curveName == AXIS_CURVE_NAME) {
239
240 return m_curveAxes;
241
242 } else {
243
244 return m_curvesGraphs.curveForCurveName (curveName);
245
246 }
247}
Curve * curveForCurveName(const QString &curveName)
Return the axis or graph curve for the specified curve name.

◆ curveForCurveName() [2/2]

const Curve * CoordSystem::curveForCurveName ( const QString & curveName) const
virtual

See CurvesGraphs::curveForCurveNames, although this also works for AXIS_CURVE_NAME.

Implements CoordSystemInterface.

Definition at line 249 of file CoordSystem.cpp.

250{
251 if (curveName == AXIS_CURVE_NAME) {
252
253 return m_curveAxes;
254
255 } else {
256
257 return m_curvesGraphs.curveForCurveName (curveName);
258
259 }
260}

◆ curvesGraphs()

const CurvesGraphs & CoordSystem::curvesGraphs ( ) const
virtual

Make all Curves available, read only, for CmdAbstract classes only.

Implements CoordSystemInterface.

Definition at line 262 of file CoordSystem.cpp.

263{
264 return m_curvesGraphs;
265}

◆ curvesGraphsNames()

QStringList CoordSystem::curvesGraphsNames ( ) const
virtual

See CurvesGraphs::curvesGraphsNames.

Implements CoordSystemInterface.

Definition at line 267 of file CoordSystem.cpp.

268{
269 return m_curvesGraphs.curvesGraphsNames();
270}
QStringList curvesGraphsNames() const
List of graph curve names.

◆ curvesGraphsNumPoints()

int CoordSystem::curvesGraphsNumPoints ( const QString & curveName) const
virtual

See CurvesGraphs::curvesGraphsNumPoints.

Implements CoordSystemInterface.

Definition at line 272 of file CoordSystem.cpp.

273{
274 return m_curvesGraphs.curvesGraphsNumPoints(curveName);
275}
int curvesGraphsNumPoints(const QString &curveName) const
Point count.

◆ editPointAxis()

void CoordSystem::editPointAxis ( const QPointF & posGraph,
const QString & identifier )
virtual

Edit the graph coordinates of a single axis point. Call this after checkAddPointAxis to guarantee success in this call.

Implements CoordSystemInterface.

Definition at line 277 of file CoordSystem.cpp.

279{
280 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::editPointAxis"
281 << " posGraph=(" << posGraph.x () << ", " << posGraph.y () << ") identifier="
282 << " identifier=" << identifier.toLatin1 ().data ();
283
284 m_curveAxes->editPointAxis (posGraph,
285 identifier);
286}
void editPointAxis(const QPointF &posGraph, const QString &identifier)
Edit the graph coordinates of an axis point. This method does not apply to a graph point.
Definition Curve.cpp:154

◆ editPointGraph()

void CoordSystem::editPointGraph ( bool isX,
bool isY,
double x,
double y,
const QStringList & identifiers,
const Transformation & transformation )
virtual

Edit the graph coordinates of one or more graph points.

Implements CoordSystemInterface.

Definition at line 288 of file CoordSystem.cpp.

294{
295 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::editPointGraph posGraph=("
296 << " x=" << (isX ? QString::number (x).toLatin1().data() : "")
297 << " y=" << (isY ? QString::number (y).toLatin1().data() : "")
298 << ") identifiers=" << identifiers.join(" ").toLatin1 ().data ();
299
300 m_curvesGraphs.editPointGraph (isX,
301 isY,
302 x,
303 y,
305 transformation);
306}
void editPointGraph(bool isX, bool isY, double x, double y, const QStringList &identifiers, const Transformation &transformation)
Set the x and/or y coordinate values of the specified points.

◆ isXOnly()

bool CoordSystem::isXOnly ( const QString & pointIdentifier) const

Return true if y coordinate is undefined, otherwise x coordinae is undefined in DOCUMENT_AXES_POINT_REQUIRE_4 mode.

Applies to axes points only

Definition at line 336 of file CoordSystem.cpp.

337{
338 return m_curveAxes->isXOnly (pointIdentifier);
339}
bool isXOnly(const QString &pointIdentifier) const
Determine if specified point has just x coordinate. Otherwise has just y coordinate,...
Definition Curve.cpp:285

◆ iterateThroughCurvePointsAxes() [1/2]

void CoordSystem::iterateThroughCurvePointsAxes ( const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > & ftorWithCallback)
virtual

See Curve::iterateThroughCurvePoints, for the axes curve.

Implements CoordSystemInterface.

Definition at line 341 of file CoordSystem.cpp.

342{
343 ENGAUGE_CHECK_PTR (m_curveAxes);
344
346}

◆ iterateThroughCurvePointsAxes() [2/2]

void CoordSystem::iterateThroughCurvePointsAxes ( const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > & ftorWithCallback) const
virtual

See Curve::iterateThroughCurvePoints, for the axes curve.

Implements CoordSystemInterface.

Definition at line 348 of file CoordSystem.cpp.

349{
350 ENGAUGE_CHECK_PTR (m_curveAxes);
351
353}

◆ iterateThroughCurveSegments()

void CoordSystem::iterateThroughCurveSegments ( const QString & curveName,
const Functor2wRet< const Point &, const Point &, CallbackSearchReturn > & ftorWithCallback ) const
virtual

See Curve::iterateThroughCurveSegments, for any axes or graph curve.

Implements CoordSystemInterface.

Definition at line 355 of file CoordSystem.cpp.

357{
358 if (curveName == AXIS_CURVE_NAME) {
360 } else {
361 m_curvesGraphs.iterateThroughCurveSegments(curveName,
363 }
364}
void iterateThroughCurveSegments(const Functor2wRet< const Point &, const Point &, CallbackSearchReturn > &ftorWithCallback) const
Apply functor to successive Points, as line segments, on Curve. This could be a bit slow.
Definition Curve.cpp:318
void iterateThroughCurveSegments(const QString &curveNameWanted, const Functor2wRet< const Point &, const Point &, CallbackSearchReturn > &ftorWithCallback) const
Apply functor to segments on the specified axis or graph Curve.

◆ iterateThroughCurvesPointsGraphs() [1/2]

void CoordSystem::iterateThroughCurvesPointsGraphs ( const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > & ftorWithCallback)
virtual

See Curve::iterateThroughCurvePoints, for all the graphs curves.

Implements CoordSystemInterface.

Definition at line 366 of file CoordSystem.cpp.

367{
368 ENGAUGE_CHECK_PTR (m_curveAxes);
369
371}

◆ iterateThroughCurvesPointsGraphs() [2/2]

void CoordSystem::iterateThroughCurvesPointsGraphs ( const Functor2wRet< const QString &, const Point &, CallbackSearchReturn > & ftorWithCallback) const
virtual

See Curve::iterateThroughCurvePoints, for all the graphs curves.

Implements CoordSystemInterface.

Definition at line 373 of file CoordSystem.cpp.

374{
375 ENGAUGE_CHECK_PTR (m_curveAxes);
376
378}

◆ loadCurvesFile()

bool CoordSystem::loadCurvesFile ( const QString & curvesFile)
virtual

Load the curve names in the specified Engauge file into the current graph. This is called near the end of the import process only.

Implements CoordSystemInterface.

Definition at line 380 of file CoordSystem.cpp.

381{
382 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::loadCurvesFile";
383
384 return true;
385}

◆ loadPreVersion6()

void CoordSystem::loadPreVersion6 ( QDataStream & str,
double version,
DocumentAxesPointsRequired & documentAxesPointsRequired )

Load from file in pre-version 6 format. Number of axes points is read in and passed to Document.

Definition at line 387 of file CoordSystem.cpp.

390{
391 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::loadPreVersion6";
392
394 double dbl, radius = 0.0;
395 QString st;
396
397 str >> st; // CurveCmbText selection
398 str >> st; // MeasureCmbText selection
399 str >> int32;
400 m_modelCoords.setCoordsType(static_cast<CoordsType> (int32));
401 if (version >= 3) {
402 str >> static_cast<double &> (radius);
403 }
404 m_modelCoords.setOriginRadius(radius);
405 str >> int32;
407 m_modelCoords.setCoordUnitsTheta(static_cast<CoordUnitsPolarTheta> (int32));
408 str >> int32;
409 m_modelCoords.setCoordScaleXTheta(static_cast<CoordScale> (int32));
410 str >> int32;
411 m_modelCoords.setCoordScaleYRadius(static_cast<CoordScale> (int32));
412
413 str >> int32;
414 m_modelExport.setDelimiter(static_cast<ExportDelimiter> (int32));
415 str >> int32;
416 m_modelExport.setLayoutFunctions(static_cast<ExportLayoutFunctions> (int32));
417 str >> int32;
422 str >> int32;
423 m_modelExport.setHeader(static_cast<ExportHeader> (int32));
424 if (version >= 5.1) {
425 str >> st; // X label
426 if (m_modelCoords.coordsType() == COORDS_TYPE_CARTESIAN) {
427 m_modelExport.setXLabel(st);
428 }
429 str >> st; // Theta label
430 if (m_modelCoords.coordsType() == COORDS_TYPE_POLAR) {
431 m_modelExport.setXLabel(st);
432 }
433 }
434
435 // Stable flag in m_modelGridRemoval is set below after points are read in
436 str >> int32; // Remove thin lines parallel to axes
437 str >> dbl; // Thin thickness
438 str >> int32;
439 m_modelGridRemoval.setRemoveDefinedGridLines(int32);
440 str >> int32; // Initialized
441 str >> int32;
442 m_modelGridRemoval.setCountX(int32);
443 str >> int32;
444 m_modelGridRemoval.setCountY(int32);
445 str >> int32;
446 m_modelGridRemoval.setGridCoordDisableX(static_cast<GridCoordDisable> (int32));
447 str >> int32;
448 m_modelGridRemoval.setGridCoordDisableY(static_cast<GridCoordDisable> (int32));
449 str >> dbl;
450 m_modelGridRemoval.setStartX(dbl);
451 str >> dbl;
452 m_modelGridRemoval.setStartY(dbl);
453 str >> dbl;
454 m_modelGridRemoval.setStepX(dbl);
455 str >> dbl;
456 m_modelGridRemoval.setStepY(dbl);
457 str >> dbl;
458 m_modelGridRemoval.setStopX(dbl);
459 str >> dbl;
460 m_modelGridRemoval.setStopY(dbl);
461 str >> dbl;
462 m_modelGridRemoval.setCloseDistance(dbl);
463 str >> int32; // Boolean remove color flag
464 if (version >= 5) {
465 QColor color;
466 str >> color;
467 } else {
468 str >> int32; // Rgb color
469 }
470 str >> int32; // Foreground threshold low
471 str >> int32; // Foreground threshold high
472 str >> dbl; // Gap separation
473
474 str >> int32;
475 m_modelGridDisplay.setStable(int32);
476 str >> int32;
477 m_modelGridDisplay.setCountX(unsigned (int32));
478 str >> int32;
479 m_modelGridDisplay.setCountY(unsigned (int32));
480 str >> int32;
481 m_modelGridDisplay.setDisableX(static_cast<GridCoordDisable> (int32));
482 str >> int32;
483 m_modelGridDisplay.setDisableY(static_cast<GridCoordDisable> (int32));
484 str >> dbl;
485 m_modelGridDisplay.setStartX (dbl);
486 str >> dbl;
487 m_modelGridDisplay.setStartY (dbl);
488 str >> dbl;
489 m_modelGridDisplay.setStepX (dbl);
490 str >> dbl;
491 m_modelGridDisplay.setStepY (dbl);
492 str >> dbl;
493 m_modelGridDisplay.setStopX (dbl);
494 str >> dbl;
495 m_modelGridDisplay.setStopY (dbl);
496
497 initializeUnsetGridRemovalFromGridDisplay (version);
498
499 str >> int32;
500 m_modelSegments.setMinLength(int32);
501 str >> int32;
502 m_modelSegments.setPointSeparation(int32);
503 str >> int32;
504 m_modelSegments.setLineWidth(int32);
505 str >> int32;
506 m_modelSegments.setLineColor(static_cast<ColorPalette> (int32));
507
508 str >> int32; // Point separation
509 str >> int32;
510 m_modelPointMatch.setMaxPointSize(int32);
511 str >> int32;
512 m_modelPointMatch.setPaletteColorAccepted(static_cast<ColorPalette> (int32));
513 str >> int32;
514 m_modelPointMatch.setPaletteColorRejected(static_cast<ColorPalette> (int32));
515 if (version < 4) {
517 } else {
518 str >> int32;
519 m_modelPointMatch.setPaletteColorCandidate(static_cast<ColorPalette> (int32));
520 }
521
522 str >> int32; // Discretize method
523 str >> int32; // Intensity threshold low
524 str >> int32; // Intensity threshold high
525 str >> int32; // Foreground threshold low
526 str >> int32; // Foreground threshold high
527 str >> int32; // Hue threshold low
528 str >> int32; // Hue threshold high
529 str >> int32; // Saturation threshold low
530 str >> int32; // Saturation threshold high
531 str >> int32; // Value threshold low
532 str >> int32; // Value threshold high
533
534 // Old versions have two Curve objects for 3 point axes and 2 point scales. New version picks one Curve
535 Curve *curveAxesIn = new Curve (str);
536 Curve *curveScaleIn = new Curve (str);
537 if (curveScaleIn->numPoints() == 2) {
538 // Nondefault case is map with scale bar
539 documentAxesPointsRequired = DOCUMENT_AXES_POINTS_REQUIRED_2;
540 delete m_curveAxes;
541 m_curveAxes = curveScaleIn;
542 m_curveAxes->setCurveName (AXIS_CURVE_NAME); // Override existing "Scale" name
543 delete curveAxesIn;
544 } else {
545 // Default case is graph with axes
546 documentAxesPointsRequired = DOCUMENT_AXES_POINTS_REQUIRED_3;
547 delete m_curveAxes;
548 m_curveAxes = curveAxesIn;
549 delete curveScaleIn;
550 }
551 m_curvesGraphs.loadPreVersion6 (str);
552
553 // Information from curves and points can affect some data structures that were (mostly) set earlier
554 if (m_curveAxes->numPoints () >= documentAxesPointsRequired) {
555 m_modelGridRemoval.setStable();
556 }
557
558 resetSelectedCurveNameIfNecessary ();
559}
ColorPalette
@ COLOR_PALETTE_BLUE
CoordScale
Definition CoordScale.h:12
@ COORD_UNITS_NON_POLAR_THETA_NUMBER
CoordUnitsPolarTheta
CoordsType
Definition CoordsType.h:12
@ COORDS_TYPE_POLAR
Definition CoordsType.h:14
@ COORDS_TYPE_CARTESIAN
Definition CoordsType.h:13
@ DOCUMENT_AXES_POINTS_REQUIRED_3
@ DOCUMENT_AXES_POINTS_REQUIRED_2
ExportDelimiter
Delimiter values that may or may not be overridden by DOCUMENT_SERIALIZE_EXPORT_DELIMITER_OVERRIDE_CS...
ExportHeader
ExportLayoutFunctions
@ EXPORT_POINTS_SELECTION_RELATIONS_RAW
GridCoordDisable
void setCurveName(const QString &curveName)
Change the curve name.
Definition Curve.cpp:555
int numPoints() const
Number of points.
Definition Curve.cpp:434
void loadPreVersion6(QDataStream &str)
Load from serialized binary pre-version 6 file.
void setOriginRadius(double originRadius)
Set method for origin radius in polar mode.
void setCoordUnitsRadius(CoordUnitsNonPolarTheta coordUnits)
Set method for radius units.
void setCoordsType(CoordsType coordsType)
Set method for coordinates type.
CoordsType coordsType() const
Get method for coordinates type.
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 setCoordUnitsTheta(CoordUnitsPolarTheta coordUnits)
Set method for theta units.
void setLayoutFunctions(ExportLayoutFunctions exportLayoutFunctions)
Set method for functions layout.
void setXLabel(const QString &xLabel)
Set method for x label.
void setHeader(ExportHeader exportHeader)
Set method for header.
void setDelimiter(ExportDelimiter exportDelimiter)
Set method for delimiter.
void setPointsSelectionRelations(ExportPointsSelectionRelations exportPointsSelectionRelations)
Set method for point selection for relations.
void setPointsSelectionFunctions(ExportPointsSelectionFunctions exportPointsSelectionFunctions)
Set method for point selection for functions.
void setPointsIntervalUnitsFunctions(ExportPointsIntervalUnits pointsIntervalUnitsFunctions)
Set method for points interval units for functions.
void setPointsIntervalUnitsRelations(ExportPointsIntervalUnits pointsIntervalUnitsRelations)
Set method for points interval units for relations.
void setStepX(double stepX)
Set method for x grid line increment.
void setStepY(double yStep)
Set method for y grid line increment.
void setStopX(double stopX)
Set method for x grid line upper bound (inclusive).
void setDisableX(GridCoordDisable disableX)
Set method for x grid line disabled variable.
void setStopY(double yStop)
Set method for y grid line upper bound (inclusive).
void setDisableY(GridCoordDisable disableY)
Set method for y grid line disabled variable.
void setCountX(unsigned int countX)
Set method for x grid line count.
void setStartX(double startX)
Set method for x grid line lower bound (inclusive).
void setStable(bool stable)
Set method for stable flag.
void setStartY(double yStart)
Set method for y grid line lower bound (inclusive).
void setCountY(unsigned int countY)
Set method for y grid line count.
void setCloseDistance(double closeDistance)
Set method for close distance.
void setStopY(double stopY)
Set method for y stop.
void setCountX(int countX)
Set method for x count.
void setGridCoordDisableY(GridCoordDisable gridCoordDisable)
Set method for y coord parameter to disable.
void setStable()
Set the stable flag to true. This public version has no argument since it cannot be undone.
void setGridCoordDisableX(GridCoordDisable gridCoordDisable)
Set method for x coord parameter to disable.
void setStepX(double stepX)
Set method for x step.
void setStopX(double stopX)
Set method for x stop.
void setStartY(double startY)
Set method for y start.
void setRemoveDefinedGridLines(bool removeDefinedGridLines)
Set method for removing defined grid lines.
void setStepY(double stepY)
Set method for y step.
void setStartX(double startX)
Set method for x start.
void setCountY(int countY)
Set method for y count.
void setMaxPointSize(double maxPointSize)
Set method for max point size.
void setPaletteColorCandidate(ColorPalette paletteColorCandidate)
Set method for candidate color.
void setPaletteColorAccepted(ColorPalette paletteColorAccepted)
Set method for accepted color.
void setPaletteColorRejected(ColorPalette paletteColorRejected)
Set method for rejected color.
void setPointSeparation(double pointSeparation)
Set method for point separation.
void setLineColor(ColorPalette lineColor)
Set method for line color.
void setLineWidth(double lineWidth)
Set method for line width.
void setMinLength(double minLength)
Set method for min length.

◆ loadVersion6()

void CoordSystem::loadVersion6 ( QXmlStreamReader & reader,
DocumentAxesPointsRequired & documentAxesPointsRequired )

Load from file in version 6 format. Number of axes points is read in and passed to Document.

Definition at line 561 of file CoordSystem.cpp.

563{
564 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::loadVersion6";
565
566 documentAxesPointsRequired = DOCUMENT_AXES_POINTS_REQUIRED_3;
567
568 // Import from xml. Loop to end of data or error condition occurs, whichever is first
569 while (!reader.atEnd() &&
570 !reader.hasError()) {
571 QXmlStreamReader::TokenType tokenType = loadNextFromReader(reader);
572
573 if ((reader.name() == DOCUMENT_SERIALIZE_DOCUMENT) &&
574 (tokenType == QXmlStreamReader::EndElement)) {
575
576 // Exit out of loop immediately
577 break;
578 }
579
580 // Iterate to next StartElement
581 if (tokenType == QXmlStreamReader::StartElement) {
582
583 // This is a StartElement, so process it
584 QString tag = reader.name().toString();
586 m_modelAxesChecker.loadXml (reader);
587 } else if (tag == DOCUMENT_SERIALIZE_COORDS) {
588 m_modelCoords.loadXml (reader);
589 } else if (tag == DOCUMENT_SERIALIZE_CURVE) {
590 delete m_curveAxes;
591 m_curveAxes = new Curve (reader);
593 m_curvesGraphs.loadXml (reader);
595 m_modelDigitizeCurve.loadXml (reader);
596 } else if (tag == DOCUMENT_SERIALIZE_EXPORT) {
597 m_modelExport.loadXml (reader);
599 m_modelGeneral.loadXml (reader);
600 } else if (tag == DOCUMENT_SERIALIZE_GRID_REMOVAL) {
601 m_modelGridRemoval.loadXml (reader);
602 } else if (tag == DOCUMENT_SERIALIZE_GUIDELINES) {
603 m_modelGuidelines.loadXml (reader);
604 } else if (tag == DOCUMENT_SERIALIZE_IMAGE) {
605 LOG4CPP_ERROR_S ((*mainCat)) << "CoordSystem::loadVersion6 encountered image out of order";
606 ENGAUGE_ASSERT (false); // The image should have been read before this method was called
607 } else if (tag == DOCUMENT_SERIALIZE_POINT_MATCH) {
608 m_modelPointMatch.loadXml (reader);
609 } else if (tag == DOCUMENT_SERIALIZE_SEGMENTS) {
610 m_modelSegments.loadXml (reader);
611 } else {
612 m_successfulRead = false;
613 m_reasonForUnsuccessfulRead = QString ("%1 '%2' %3")
614 .arg (QObject::tr ("Unexpected xml token"))
615 .arg (tag)
616 .arg ("encountered");
617 break;
618 }
619 }
620 }
621
622 resetSelectedCurveNameIfNecessary ();
623}
const QString DOCUMENT_SERIALIZE_CURVES_GRAPHS
const QString DOCUMENT_SERIALIZE_AXES_CHECKER
const QString DOCUMENT_SERIALIZE_COMMON
const QString DOCUMENT_SERIALIZE_GUIDELINES
const QString DOCUMENT_SERIALIZE_IMAGE
const QString DOCUMENT_SERIALIZE_GENERAL
const QString DOCUMENT_SERIALIZE_EXPORT
const QString DOCUMENT_SERIALIZE_DOCUMENT
const QString DOCUMENT_SERIALIZE_GRID_REMOVAL
const QString DOCUMENT_SERIALIZE_SEGMENTS
const QString DOCUMENT_SERIALIZE_CURVE
const QString DOCUMENT_SERIALIZE_DIGITIZE_CURVE
const QString DOCUMENT_SERIALIZE_COORDS
const QString DOCUMENT_SERIALIZE_POINT_MATCH
#define ENGAUGE_ASSERT(cond)
Drop in replacement for Q_ASSERT.
QXmlStreamReader::TokenType loadNextFromReader(QXmlStreamReader &reader)
Load next token from xml reader.
Definition Xml.cpp:14
void loadXml(QXmlStreamReader &reader)
Load from serialized xml post-version 5 file.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.
#define LOG4CPP_ERROR_S(logger)
Definition convenience.h:12

◆ loadVersions7AndUp()

void CoordSystem::loadVersions7AndUp ( QXmlStreamReader & reader)

Load from file in versions 7 and 8 formats. Number of axes points is already defined at Document level.

Definition at line 625 of file CoordSystem.cpp.

626{
627 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::loadVersions7AndUp";
628
629 // Import from xml. Loop to end of data or error condition occurs, whichever is first
630 while (!reader.atEnd() &&
631 !reader.hasError()) {
632 QXmlStreamReader::TokenType tokenType = loadNextFromReader(reader);
633
634 if ((reader.name() == DOCUMENT_SERIALIZE_COORD_SYSTEM) &&
635 (tokenType == QXmlStreamReader::EndElement)) {
636
637 // Exit out of loop immediately
638 break;
639 }
640
641 // Iterate to next StartElement
642 if (tokenType == QXmlStreamReader::StartElement) {
643
644 // This is a StartElement, so process it
645 QString tag = reader.name().toString();
647 m_modelAxesChecker.loadXml (reader);
648 } else if (tag == DOCUMENT_SERIALIZE_COORDS) {
649 m_modelCoords.loadXml (reader);
650 } else if (tag == DOCUMENT_SERIALIZE_CURVE) {
651 delete m_curveAxes;
652 m_curveAxes = new Curve (reader);
654 m_curvesGraphs.loadXml (reader);
656 m_modelDigitizeCurve.loadXml (reader);
657 } else if (tag == DOCUMENT_SERIALIZE_EXPORT) {
658 m_modelExport.loadXml (reader);
660 m_modelGeneral.loadXml (reader);
661 } else if (tag == DOCUMENT_SERIALIZE_GRID_DISPLAY) {
662 m_modelGridDisplay.loadXml (reader);
663 } else if (tag == DOCUMENT_SERIALIZE_GRID_REMOVAL) {
664 m_modelGridRemoval.loadXml (reader);
665 } else if (tag == DOCUMENT_SERIALIZE_GUIDELINES) {
666 m_modelGuidelines.loadXml (reader);
667 } else if (tag == DOCUMENT_SERIALIZE_IMAGE) {
668 LOG4CPP_ERROR_S ((*mainCat)) << "CoordSystem::loadVersions7AndUp encountered image out of order";
669 ENGAUGE_ASSERT (false); // The image should have been read before this method was called
670 } else if (tag == DOCUMENT_SERIALIZE_POINT_MATCH) {
671 m_modelPointMatch.loadXml (reader);
672 } else if (tag == DOCUMENT_SERIALIZE_SEGMENTS) {
673 m_modelSegments.loadXml (reader);
674 } else {
675 m_successfulRead = false;
676 m_reasonForUnsuccessfulRead = QString ("Unexpected xml token '%1' encountered").arg (tag);
677 break;
678 }
679 }
680 }
681
682 resetSelectedCurveNameIfNecessary ();
683}
const QString DOCUMENT_SERIALIZE_GRID_DISPLAY
const QString DOCUMENT_SERIALIZE_COORD_SYSTEM
virtual void loadXml(QXmlStreamReader &reader)
Load model from serialized xml.

◆ modelAxesChecker()

DocumentModelAxesChecker CoordSystem::modelAxesChecker ( ) const
virtual

Get method for DocumentModelAxesChecker.

Implements CoordSystemInterface.

Definition at line 685 of file CoordSystem.cpp.

686{
687 return m_modelAxesChecker;
688}

◆ modelColorFilter()

DocumentModelColorFilter CoordSystem::modelColorFilter ( ) const
virtual

Get method for DocumentModelColorFilter.

Implements CoordSystemInterface.

Definition at line 690 of file CoordSystem.cpp.

691{
692 // Construct a curve-specific model
694
695 return modelColorFilter;
696}
virtual DocumentModelColorFilter modelColorFilter() const
Get method for DocumentModelColorFilter.
Model for DlgSettingsColorFilter and CmdSettingsColorFilter.

◆ modelCoords()

DocumentModelCoords CoordSystem::modelCoords ( ) const
virtual

Get method for DocumentModelCoords.

Implements CoordSystemInterface.

Definition at line 698 of file CoordSystem.cpp.

699{
700 return m_modelCoords;
701}

◆ modelCurveStyles()

CurveStyles CoordSystem::modelCurveStyles ( ) const
virtual

Get method for CurveStyles.

Implements CoordSystemInterface.

Definition at line 703 of file CoordSystem.cpp.

704{
705 // Construct a curve-specific model
707
708 return modelCurveStyles;
709}
virtual CurveStyles modelCurveStyles() const
Get method for CurveStyles.
Model for DlgSettingsCurveProperties and CmdSettingsCurveProperties.
Definition CurveStyles.h:23

◆ modelDigitizeCurve()

DocumentModelDigitizeCurve CoordSystem::modelDigitizeCurve ( ) const
virtual

Get method for DocumentModelDigitizeCurve.

Implements CoordSystemInterface.

Definition at line 711 of file CoordSystem.cpp.

712{
713 return m_modelDigitizeCurve;
714}

◆ modelExport()

DocumentModelExportFormat CoordSystem::modelExport ( ) const
virtual

Get method for DocumentModelExportFormat.

Implements CoordSystemInterface.

Definition at line 716 of file CoordSystem.cpp.

717{
718 return m_modelExport;
719}

◆ modelGeneral()

DocumentModelGeneral CoordSystem::modelGeneral ( ) const
virtual

Get method for DocumentModelGeneral.

Implements CoordSystemInterface.

Definition at line 721 of file CoordSystem.cpp.

722{
723 return m_modelGeneral;
724}

◆ modelGridDisplay()

DocumentModelGridDisplay CoordSystem::modelGridDisplay ( ) const
virtual

Get method for DocumentModelGridDisplay.

Implements CoordSystemInterface.

Definition at line 726 of file CoordSystem.cpp.

727{
728 return m_modelGridDisplay;
729}

◆ modelGridRemoval()

DocumentModelGridRemoval CoordSystem::modelGridRemoval ( ) const
virtual

Get method for DocumentModelGridRemoval.

Implements CoordSystemInterface.

Definition at line 731 of file CoordSystem.cpp.

732{
733 return m_modelGridRemoval;
734}

◆ modelGuidelines()

DocumentModelGuidelines CoordSystem::modelGuidelines ( ) const
virtual

Get method for DocumentModelGuidelines.

Implements CoordSystemInterface.

Definition at line 736 of file CoordSystem.cpp.

737{
738 return m_modelGuidelines;
739}

◆ modelPointMatch()

DocumentModelPointMatch CoordSystem::modelPointMatch ( ) const
virtual

Get method for DocumentModelPointMatch.

Implements CoordSystemInterface.

Definition at line 741 of file CoordSystem.cpp.

742{
743 return m_modelPointMatch;
744}

◆ modelSegments()

DocumentModelSegments CoordSystem::modelSegments ( ) const
virtual

Get method for DocumentModelSegments.

Implements CoordSystemInterface.

Definition at line 746 of file CoordSystem.cpp.

747{
748 return m_modelSegments;
749}

◆ movePoint()

void CoordSystem::movePoint ( const QString & pointIdentifier,
const QPointF & deltaScreen )
virtual

See Curve::movePoint.

Implements CoordSystemInterface.

Definition at line 751 of file CoordSystem.cpp.

753{
755
756 Curve *curve = curveForCurveName (curveName);
758 curve->movePoint (pointIdentifier,
760}
virtual Curve * curveForCurveName(const QString &curveName)
See CurvesGraphs::curveForCurveName, although this also works for AXIS_CURVE_NAME.
static QString curveNameFromPointIdentifier(const QString &pointIdentifier)
Parse the curve name from the specified point identifier. This does the opposite of uniqueIdentifierG...
Definition Point.cpp:227

◆ nextOrdinalForCurve()

int CoordSystem::nextOrdinalForCurve ( const QString & curveName) const
virtual

Default next ordinal value for specified curve.

Implements CoordSystemInterface.

Definition at line 762 of file CoordSystem.cpp.

763{
764 CallbackNextOrdinal ftor (curveName);
765
768
769 if (curveName == AXIS_CURVE_NAME) {
771 } else {
773 }
774
775 return qFloor (ftor.nextOrdinal ());
776}
Callback for computing the next ordinal for a new point.
CallbackSearchReturn callback(const QString &curveName, const Point &point)
Callback method.

◆ positionGraph()

QPointF CoordSystem::positionGraph ( const QString & pointIdentifier) const
virtual

See Curve::positionGraph.

Implements CoordSystemInterface.

Definition at line 778 of file CoordSystem.cpp.

779{
781
782 const Curve *curve = curveForCurveName (curveName);
783 return curve->positionGraph (pointIdentifier);
784}

◆ positionScreen()

QPointF CoordSystem::positionScreen ( const QString & pointIdentifier) const
virtual

See Curve::positionScreen.

Implements CoordSystemInterface.

Definition at line 786 of file CoordSystem.cpp.

787{
789
790 const Curve *curve = curveForCurveName (curveName);
791 return curve->positionScreen (pointIdentifier);
792}

◆ print()

void CoordSystem::print ( ) const
virtual

Debugging method for printing directly from symbolic debugger.

Implements CoordSystemInterface.

Definition at line 794 of file CoordSystem.cpp.

795{
798
799 printStream ("",
800 str);
801 std::cerr << text.toLatin1().data();
802}
virtual void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...

◆ printStream()

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

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

Implements CoordSystemInterface.

Definition at line 804 of file CoordSystem.cpp.

806{
807 str << indentation << "Graph\n";
808
810
811 // str << indentation << "name=" << m_name << "\n";
812 // str << indentation << "pixmap=" << m_pixmap.width() << "x" << m_pixmap.height() << "\n";
813
814 m_curveAxes->printStream (indentation,
815 str);
816 m_curvesGraphs.printStream (indentation,
817 str);
818
819 m_modelAxesChecker.printStream (indentation,
820 str);
821 m_modelCoords.printStream (indentation,
822 str);
823 m_modelDigitizeCurve.printStream (indentation,
824 str);
825 m_modelExport.printStream (indentation,
826 str);
827 m_modelGeneral.printStream (indentation,
828 str);
829 m_modelGridDisplay.printStream (indentation,
830 str);
831 m_modelGridRemoval.printStream (indentation,
832 str);
833 m_modelGuidelines.printStream (indentation,
834 str);
835 m_modelPointMatch.printStream (indentation,
836 str);
837 m_modelSegments.printStream (indentation,
838 str);
839}
const QString INDENTATION_DELTA
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
Definition Curve.cpp:494
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...
void printStream(QString indentation, QTextStream &str) const
Debugging method that supports print method of this class and printStream method of some other class(...

◆ reasonForUnsuccessfulRead()

QString CoordSystem::reasonForUnsuccessfulRead ( ) const
virtual

Return an informative text message explaining why startup loading failed. Applies if successfulRead returns false.

Implements CoordSystemInterface.

Definition at line 841 of file CoordSystem.cpp.

842{
843 ENGAUGE_ASSERT (!m_successfulRead);
844
845 return m_reasonForUnsuccessfulRead;
846}

◆ removePointAxis()

void CoordSystem::removePointAxis ( const QString & identifier)
virtual

Perform the opposite of addPointAxis.

Implements CoordSystemInterface.

Definition at line 848 of file CoordSystem.cpp.

849{
850 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::removePointAxis identifier=" << identifier.toLatin1 ().data ();
851
852 m_curveAxes->removePoint (identifier);
853}
void removePoint(const QString &identifier)
Perform the opposite of addPointAtEnd.
Definition Curve.cpp:514

◆ removePointGraph()

void CoordSystem::removePointGraph ( const QString & identifier)
virtual

Perform the opposite of addPointGraph.

Implements CoordSystemInterface.

Definition at line 855 of file CoordSystem.cpp.

856{
857 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::removePointGraph identifier=" << identifier.toLatin1 ().data ();
858
859 m_curvesGraphs.removePoint (identifier);
860}
void removePoint(const QString &pointIdentifier)
Remove the Point from its Curve.

◆ removePointsInCurvesGraphs()

void CoordSystem::removePointsInCurvesGraphs ( CurvesGraphs & curvesGraphs)
virtual

Remove all points identified in the specified CurvesGraphs. See also addPointsInCurvesGraphs.

Implements CoordSystemInterface.

Definition at line 862 of file CoordSystem.cpp.

863{
865
868
870}
Callback that is used when iterating through a read-only CurvesGraphs to remove corresponding points ...
CallbackSearchReturn callback(const QString &curveName, const Point &point)
Callback method.

◆ saveXml()

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

Save graph to xml.

Implements CoordSystemInterface.

Definition at line 883 of file CoordSystem.cpp.

884{
885 writer.writeStartElement(DOCUMENT_SERIALIZE_COORD_SYSTEM);
886
887 // Serialize the Document variables
888 m_modelGeneral.saveXml (writer);
889 m_modelCoords.saveXml (writer);
890 m_modelDigitizeCurve.saveXml (writer);
891 m_modelExport.saveXml (writer);
892 m_modelAxesChecker.saveXml (writer);
893 m_modelGridDisplay.saveXml (writer);
894 m_modelGridRemoval.saveXml (writer);
895 m_modelGuidelines.saveXml (writer);
896 m_modelPointMatch.saveXml (writer);
897 m_modelSegments.saveXml (writer);
898 m_curveAxes->saveXml (writer);
899 m_curvesGraphs.saveXml (writer);
900 writer.writeEndElement();
901}
void saveXml(QXmlStreamWriter &writer) const
Serialize curve.
Definition Curve.cpp:527
void saveXml(QXmlStreamWriter &writer) const
Serialize curves.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.
virtual void saveXml(QXmlStreamWriter &writer) const
Save entire model as xml into stream.

◆ selectedCurveName()

QString CoordSystem::selectedCurveName ( ) const
virtual

Currently selected curve name. This is used to set the selected curve combobox in MainWindow.

Implements CoordSystemInterface.

Definition at line 903 of file CoordSystem.cpp.

904{
905 return m_selectedCurveName;
906}

◆ setCurveAxes()

void CoordSystem::setCurveAxes ( const Curve & curveAxes)
virtual

Let CmdAbstract classes overwrite axes Curve. Applies to current coordinate system.

Implements CoordSystemInterface.

Definition at line 908 of file CoordSystem.cpp.

909{
910 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::setCurveAxes";
911
912 delete m_curveAxes;
913
914 m_curveAxes = new Curve (curveAxes);
915}
virtual const Curve & curveAxes() const
Get method for axis curve.

◆ setCurvesGraphs()

void CoordSystem::setCurvesGraphs ( const CurvesGraphs & curvesGraphs)
virtual

Let CmdAbstract classes overwrite CurvesGraphs. Applies to current coordinate system.

Implements CoordSystemInterface.

Definition at line 917 of file CoordSystem.cpp.

918{
919 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::setCurvesGraphs";
920
921 m_curvesGraphs = curvesGraphs;
922
923 resetSelectedCurveNameIfNecessary ();
924}

◆ setModelAxesChecker()

void CoordSystem::setModelAxesChecker ( const DocumentModelAxesChecker & modelAxesChecker)
virtual

Set method for DocumentModelAxesChecker.

Implements CoordSystemInterface.

Definition at line 926 of file CoordSystem.cpp.

927{
928 m_modelAxesChecker = modelAxesChecker;
929}
virtual DocumentModelAxesChecker modelAxesChecker() const
Get method for DocumentModelAxesChecker.

◆ setModelColorFilter()

void CoordSystem::setModelColorFilter ( const DocumentModelColorFilter & modelColorFilter)
virtual

Set method for DocumentModelColorFilter.

Implements CoordSystemInterface.

Definition at line 931 of file CoordSystem.cpp.

932{
933 // Save the CurveFilter for each Curve
934 ColorFilterSettingsList::const_iterator itr;
935 for (itr = modelColorFilter.colorFilterSettingsList().constBegin ();
937 itr++) {
938
939 QString curveName = itr.key();
940 const ColorFilterSettings &colorFilterSettings = itr.value();
941
942 Curve *curve = curveForCurveName (curveName);
943 curve->setColorFilterSettings (colorFilterSettings);
944 }
945}
Color filter parameters for one curve. For a class, this is handled the same as LineStyle and PointSt...
const ColorFilterSettingsList & colorFilterSettingsList() const
Get method for copying all color filters in one step.

◆ setModelCoords()

void CoordSystem::setModelCoords ( const DocumentModelCoords & modelCoords)
virtual

Set method for DocumentModelCoords.

Implements CoordSystemInterface.

Definition at line 947 of file CoordSystem.cpp.

948{
949 m_modelCoords = modelCoords;
950}
virtual DocumentModelCoords modelCoords() const
Get method for DocumentModelCoords.

◆ setModelCurveStyles()

void CoordSystem::setModelCurveStyles ( const CurveStyles & modelCurveStyles)
virtual

Set method for CurveStyles.

Implements CoordSystemInterface.

Definition at line 952 of file CoordSystem.cpp.

953{
954 // Save the LineStyle and PointStyle for each Curve
956 QStringList::iterator itr;
957 for (itr = curveNames.begin(); itr != curveNames.end(); itr++) {
958
959 QString curveName = *itr;
960 const CurveStyle &curveStyle = modelCurveStyles.curveStyle (curveName);
961
962 Curve *curve = curveForCurveName (curveName);
963 curve->setCurveStyle (curveStyle);
964 }
965}
CurveStyle curveStyle(const QString &curveName) const
CurveStyle in specified curve.
QStringList curveNames() const
List of all curve names.

◆ setModelDigitizeCurve()

void CoordSystem::setModelDigitizeCurve ( const DocumentModelDigitizeCurve & modelDigitizeCurve)
virtual

Set method for DocumentModelDigitizeCurve.

Implements CoordSystemInterface.

Definition at line 967 of file CoordSystem.cpp.

968{
969 m_modelDigitizeCurve = modelDigitizeCurve;
970}
virtual DocumentModelDigitizeCurve modelDigitizeCurve() const
Get method for DocumentModelDigitizeCurve.

◆ setModelExport()

void CoordSystem::setModelExport ( const DocumentModelExportFormat & modelExport)
virtual

Set method for DocumentModelExportFormat.

Implements CoordSystemInterface.

Definition at line 972 of file CoordSystem.cpp.

973{
974 m_modelExport = modelExport;
975}
virtual DocumentModelExportFormat modelExport() const
Get method for DocumentModelExportFormat.

◆ setModelGeneral()

void CoordSystem::setModelGeneral ( const DocumentModelGeneral & modelGeneral)
virtual

Set method for DocumentModelGeneral.

Implements CoordSystemInterface.

Definition at line 977 of file CoordSystem.cpp.

978{
979 m_modelGeneral = modelGeneral;
980}
virtual DocumentModelGeneral modelGeneral() const
Get method for DocumentModelGeneral.

◆ setModelGridDisplay()

void CoordSystem::setModelGridDisplay ( const DocumentModelGridDisplay & modelGridDisplay)
virtual

Set method for DocumentModelGridDisplay.

Implements CoordSystemInterface.

Definition at line 982 of file CoordSystem.cpp.

983{
984 m_modelGridDisplay = modelGridDisplay;
985}
virtual DocumentModelGridDisplay modelGridDisplay() const
Get method for DocumentModelGridDisplay.

◆ setModelGridRemoval()

void CoordSystem::setModelGridRemoval ( const DocumentModelGridRemoval & modelGridRemoval)
virtual

Set method for DocumentModelGridRemoval.

Implements CoordSystemInterface.

Definition at line 987 of file CoordSystem.cpp.

988{
989 m_modelGridRemoval = modelGridRemoval;
990}
virtual DocumentModelGridRemoval modelGridRemoval() const
Get method for DocumentModelGridRemoval.

◆ setModelGuidelines()

void CoordSystem::setModelGuidelines ( const DocumentModelGuidelines & modelGuidelines)
virtual

Set method for DocumentModelGuidelines.

Implements CoordSystemInterface.

Definition at line 992 of file CoordSystem.cpp.

993{
994 m_modelGuidelines = modelGuidelines;
995}
virtual DocumentModelGuidelines modelGuidelines() const
Get method for DocumentModelGuidelines.

◆ setModelPointMatch()

void CoordSystem::setModelPointMatch ( const DocumentModelPointMatch & modelPointMatch)
virtual

Set method for DocumentModelPointMatch.

Implements CoordSystemInterface.

Definition at line 997 of file CoordSystem.cpp.

998{
999 m_modelPointMatch = modelPointMatch;
1000}
virtual DocumentModelPointMatch modelPointMatch() const
Get method for DocumentModelPointMatch.

◆ setModelSegments()

void CoordSystem::setModelSegments ( const DocumentModelSegments & modelSegments)
virtual

Set method for DocumentModelSegments.

Implements CoordSystemInterface.

Definition at line 1002 of file CoordSystem.cpp.

1003{
1004 m_modelSegments = modelSegments;
1005}
virtual DocumentModelSegments modelSegments() const
Get method for DocumentModelSegments.

◆ setSelectedCurveName()

void CoordSystem::setSelectedCurveName ( const QString & selectedCurveName)
virtual

Save curve name that is selected for the current coordinate system, for the next time the coordinate system reappears.

Implements CoordSystemInterface.

Definition at line 1007 of file CoordSystem.cpp.

1008{
1009 m_selectedCurveName = selectedCurveName;
1010}
virtual QString selectedCurveName() const
Currently selected curve name. This is used to set the selected curve combobox in MainWindow.

◆ successfulRead()

bool CoordSystem::successfulRead ( ) const
virtual

Return true if startup loading succeeded. If the loading failed then reasonForUnsuccessfulRed will explain why.

Implements CoordSystemInterface.

Definition at line 1012 of file CoordSystem.cpp.

1013{
1014 return m_successfulRead;
1015}

◆ updatePointOrdinals()

void CoordSystem::updatePointOrdinals ( const Transformation & transformation)
virtual

Update point ordinals after point addition/removal or dragging.

See GraphicsScene::updatePointOrdinalsAfterDrag. Graph coordinates of point must be up to date

Implements CoordSystemInterface.

Definition at line 1017 of file CoordSystem.cpp.

1018{
1019 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::updatePointOrdinals";
1020
1021 // The graph coordinates of all points in m_curvesGraphs must have already been updated at this point. See applyTransformation
1022 m_curvesGraphs.updatePointOrdinals (transformation);
1023}
void updatePointOrdinals(const Transformation &transformation)
Update point ordinals to be consistent with their CurveStyle and x/theta coordinate.

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