Engauge Digitizer 2
Loading...
Searching...
No Matches
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 DocumentModelGuideline modelGuideline () const
 Get method for DocumentModelGuideline.
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 setModelGuideline (const DocumentModelGuideline &modelGuideline)
 Set method for DocumentModelGuideline.
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,
42 CurveStyle (LineStyle::defaultAxesCurve(),
44{
45 LOG4CPP_INFO_S ((*mainCat)) << "CoordSystem::CoordSystem";
46
47 SettingsForGraph settingsForGraph;
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
52 QString curveName = settingsForGraph.defaultCurveName (indexOneBased,
54 m_curvesGraphs.addGraphCurveAtEnd (Curve (curveName,
56 CurveStyle (LineStyle::defaultGraphCurve (m_curvesGraphs.numCurves ()),
57 PointStyle::defaultGraphCurve (m_curvesGraphs.numCurves ()))));
58
59 resetSelectedCurveNameIfNecessary ();
60 }
61}
const QString AXIS_CURVE_NAME
const QString DEFAULT_GRAPH_CURVE_NAME
log4cpp::Category * mainCat
Definition Logger.cpp:14
static ColorFilterSettings defaultFilter()
Initial default for any Curve.
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.
QString defaultCurveName(int indexOneBased, const QString &defaultName) const
Default graph name for the specified curve index.
int numberOfCurvesForImport() const
Return the number of curve names to be generated. Value is maximum of 1 and the number in the configu...
#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,
72 CurveStyle (LineStyle::defaultGraphCurve(m_curvesGraphs.numCurves()),
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{
84 Point point (AXIS_CURVE_NAME,
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...

◆ 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}

◆ 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{
158 CallbackAddPointsInCurvesGraphs ftor (*this);
159
160 Functor2wRet<const QString &, const Point &, CallbackSearchReturn> ftorWithCallback = functor_ret (ftor,
162
163 curvesGraphs.iterateThroughCurvesPoints (ftorWithCallback);
164}
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.

◆ 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
197 Functor2wRet<const QString &, const Point &, CallbackSearchReturn> ftorWithCallback = functor_ret (ftor,
199 m_curveAxes->iterateThroughCurvePoints (ftorWithCallback);
200
201 isError = ftor.isError ();
202 errorMessage = ftor.errorMessage ();
203}
CallbackSearchReturn callback(const QString &curveName, const Point &point)
Callback method.

◆ 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,
216 pointIdentifier,
217 posScreen,
218 posGraph,
219 documentAxesPointsRequired);
220
221 Functor2wRet<const QString &, const Point &, CallbackSearchReturn> ftorWithCallback = functor_ret (ftor,
223 m_curveAxes->iterateThroughCurvePoints (ftorWithCallback);
224
225 isError = ftor.isError ();
226 errorMessage = ftor.errorMessage ();
227}

◆ 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}

◆ 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}

◆ 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}

◆ 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}

◆ 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,
304 identifiers,
305 transformation);
306}

◆ 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}

◆ 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
345 m_curveAxes->iterateThroughCurvePoints (ftorWithCallback);
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
352 m_curveAxes->iterateThroughCurvePoints (ftorWithCallback);
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) {
359 m_curveAxes->iterateThroughCurveSegments(ftorWithCallback);
360 } else {
361 m_curvesGraphs.iterateThroughCurveSegments(curveName,
362 ftorWithCallback);
363 }
364}

◆ 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
370 m_curvesGraphs.iterateThroughCurvesPoints (ftorWithCallback);
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
377 m_curvesGraphs.iterateThroughCurvesPoints (ftorWithCallback);
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
393 qint32 int32;
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;
406 m_modelCoords.setCoordUnitsRadius(COORD_UNITS_NON_POLAR_THETA_NUMBER);
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;
418 m_modelExport.setPointsSelectionFunctions(static_cast<ExportPointsSelectionFunctions> (int32));
419 m_modelExport.setPointsSelectionRelations(EXPORT_POINTS_SELECTION_RELATIONS_RAW); // Best for maps
420 m_modelExport.setPointsIntervalUnitsFunctions(static_cast<ExportPointsIntervalUnits> (int32));
421 m_modelExport.setPointsIntervalUnitsRelations(static_cast<ExportPointsIntervalUnits> (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.setLineWidthActive(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) {
516 m_modelPointMatch.setPaletteColorCandidate(COLOR_PALETTE_BLUE);
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

◆ 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);
592 } else if (tag == DOCUMENT_SERIALIZE_CURVES_GRAPHS) {
593 m_curvesGraphs.loadXml (reader);
594 } else if (tag == DOCUMENT_SERIALIZE_DIGITIZE_CURVE) {
595 m_modelDigitizeCurve.loadXml (reader);
596 } else if (tag == DOCUMENT_SERIALIZE_EXPORT) {
597 m_modelExport.loadXml (reader);
598 } else if (tag == DOCUMENT_SERIALIZE_GENERAL || tag == DOCUMENT_SERIALIZE_COMMON) {
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_modelGuideline.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
#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);
653 } else if (tag == DOCUMENT_SERIALIZE_CURVES_GRAPHS) {
654 m_curvesGraphs.loadXml (reader);
655 } else if (tag == DOCUMENT_SERIALIZE_DIGITIZE_CURVE) {
656 m_modelDigitizeCurve.loadXml (reader);
657 } else if (tag == DOCUMENT_SERIALIZE_EXPORT) {
658 m_modelExport.loadXml (reader);
659 } else if (tag == DOCUMENT_SERIALIZE_GENERAL || tag == DOCUMENT_SERIALIZE_COMMON) {
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_modelGuideline.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

◆ 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
693 DocumentModelColorFilter modelColorFilter(*this);
694
695 return modelColorFilter;
696}
virtual DocumentModelColorFilter modelColorFilter() const
Get method for DocumentModelColorFilter.

◆ 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
706 CurveStyles modelCurveStyles(*this);
707
708 return modelCurveStyles;
709}
virtual CurveStyles modelCurveStyles() const
Get method for CurveStyles.

◆ 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}

◆ modelGuideline()

DocumentModelGuideline CoordSystem::modelGuideline ( ) const
virtual

Get method for DocumentModelGuideline.

Implements CoordSystemInterface.

Definition at line 736 of file CoordSystem.cpp.

737{
738 return m_modelGuideline;
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{
754 QString curveName = Point::curveNameFromPointIdentifier (pointIdentifier);
755
756 Curve *curve = curveForCurveName (curveName);
757 ENGAUGE_CHECK_PTR (curve);
758 curve->movePoint (pointIdentifier,
759 deltaScreen);
760}
virtual Curve * curveForCurveName(const QString &curveName)
See CurvesGraphs::curveForCurveName, although this also works for AXIS_CURVE_NAME.
void movePoint(const QString &pointIdentifier, const QPointF &deltaScreen)
Translate the position of a point by the specified distance vector.
Definition Curve.cpp:425
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
766 Functor2wRet<const QString &, const Point &, CallbackSearchReturn> ftorWithCallback = functor_ret (ftor,
768
769 if (curveName == AXIS_CURVE_NAME) {
770 m_curveAxes->iterateThroughCurvePoints (ftorWithCallback);
771 } else {
772 m_curvesGraphs.iterateThroughCurvesPoints (ftorWithCallback);
773 }
774
775 return qFloor (ftor.nextOrdinal ());
776}
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{
780 QString curveName = Point::curveNameFromPointIdentifier (pointIdentifier);
781
782 const Curve *curve = curveForCurveName (curveName);
783 return curve->positionGraph (pointIdentifier);
784}
QPointF positionGraph(const QString &pointIdentifier) const
Return the position, in graph coordinates, of the specified Point.
Definition Curve.cpp:460

◆ positionScreen()

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

See Curve::positionScreen.

Implements CoordSystemInterface.

Definition at line 786 of file CoordSystem.cpp.

787{
788 QString curveName = Point::curveNameFromPointIdentifier (pointIdentifier);
789
790 const Curve *curve = curveForCurveName (curveName);
791 return curve->positionScreen (pointIdentifier);
792}
QPointF positionScreen(const QString &pointIdentifier) const
Return the position, in screen coordinates, of the specified Point.
Definition Curve.cpp:477

◆ 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{
796 QString text;
797 QTextStream str (&text);
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
809 indentation += INDENTATION_DELTA;
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_modelGuideline.printStream (indentation,
834 str);
835 m_modelPointMatch.printStream (indentation,
836 str);
837 m_modelSegments.printStream (indentation,
838 str);
839}
const QString INDENTATION_DELTA

◆ 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}

◆ 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}

◆ 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{
864 CallbackRemovePointsInCurvesGraphs ftor (*this);
865
866 Functor2wRet<const QString &, const Point &, CallbackSearchReturn> ftorWithCallback = functor_ret (ftor,
868
869 curvesGraphs.iterateThroughCurvesPoints (ftorWithCallback);
870}
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_modelGuideline.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}

◆ 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 ();
936 itr != modelColorFilter.colorFilterSettingsList().constEnd();
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}
void setColorFilterSettings(const ColorFilterSettings &colorFilterSettings)
Set color filter.
Definition Curve.cpp:550

◆ 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
955 QStringList curveNames = modelCurveStyles.curveNames();
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}
void setCurveStyle(const CurveStyle &curveStyle)
Set curve style.
Definition Curve.cpp:567

◆ 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.

◆ setModelGuideline()

void CoordSystem::setModelGuideline ( const DocumentModelGuideline & modelGuideline)
virtual

Set method for DocumentModelGuideline.

Implements CoordSystemInterface.

Definition at line 992 of file CoordSystem.cpp.

993{
994 m_modelGuideline = modelGuideline;
995}
virtual DocumentModelGuideline modelGuideline() const
Get method for DocumentModelGuideline.

◆ 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}

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