00001
00002
00003
00004
00005
00006
00007 #ifndef COORD_SYSTEM_INTERFACE_H
00008 #define COORD_SYSTEM_INTERFACE_H
00009
00010 #include "CallbackSearchReturn.h"
00011 #include "CurveStyles.h"
00012 #include "DocumentAxesPointsRequired.h"
00013 #include "DocumentModelAxesChecker.h"
00014 #include "DocumentModelColorFilter.h"
00015 #include "DocumentModelCoords.h"
00016 #include "DocumentModelDigitizeCurve.h"
00017 #include "DocumentModelExportFormat.h"
00018 #include "DocumentModelGeneral.h"
00019 #include "DocumentModelGridDisplay.h"
00020 #include "DocumentModelGridRemoval.h"
00021 #include "DocumentModelPointMatch.h"
00022 #include "DocumentModelSegments.h"
00023 #include "functor.h"
00024 #include "Point.h"
00025
00026 class Curve;
00027 class CurvesGraphs;
00028 class QPointF;
00029 class QString;
00030 class QStringList;
00031 class Transformation;
00032
00034 class CoordSystemInterface
00035 {
00036 public:
00038 CoordSystemInterface ();
00039 virtual ~CoordSystemInterface ();
00040
00042 virtual void addGraphCurveAtEnd (const QString &curveName) = 0;
00043
00050 virtual void addPointAxisWithGeneratedIdentifier (const QPointF &posScreen,
00051 const QPointF &posGraph,
00052 QString &identifier,
00053 double ordinal,
00054 bool isXOnly) = 0;
00055
00062 virtual void addPointAxisWithSpecifiedIdentifier (const QPointF &posScreen,
00063 const QPointF &posGraph,
00064 const QString &identifier,
00065 double ordinal,
00066 bool isXOnly) = 0;
00067
00069 virtual void addPointGraphWithGeneratedIdentifier (const QString &curveName,
00070 const QPointF &posScreen,
00071 QString &generatedIentifier,
00072 double ordinal) = 0;
00073
00075 virtual void addPointGraphWithSpecifiedIdentifier (const QString &curveName,
00076 const QPointF &posScreen,
00077 const QString &identifier,
00078 double ordinal) = 0;
00079
00081 virtual void addPointsInCurvesGraphs (CurvesGraphs &curvesGraphs) = 0;
00082
00084 virtual void checkAddPointAxis (const QPointF &posScreen,
00085 const QPointF &posGraph,
00086 bool &isError,
00087 QString &errorMessage,
00088 bool isXOnly,
00089 DocumentAxesPointsRequired documentAxesPointsRequired) = 0;
00090
00092 virtual void checkEditPointAxis (const QString &pointIdentifier,
00093 const QPointF &posScreen,
00094 const QPointF &posGraph,
00095 bool &isError,
00096 QString &errorMessage,
00097 DocumentAxesPointsRequired documentAxesPointsRequired) = 0;
00098
00100 virtual const Curve &curveAxes () const = 0;
00101
00103 virtual Curve *curveForCurveName (const QString &curveName) = 0;
00104
00106 virtual const Curve *curveForCurveName (const QString &curveName) const = 0;
00107
00109 virtual const CurvesGraphs &curvesGraphs () const = 0;
00110
00112 virtual QStringList curvesGraphsNames () const = 0;
00113
00115 virtual int curvesGraphsNumPoints (const QString &curveName) const = 0;
00116
00118 virtual void editPointAxis (const QPointF &posGraph,
00119 const QString &identifier) = 0;
00120
00122 virtual void editPointGraph (bool isX,
00123 bool isY,
00124 double x,
00125 double y,
00126 const QStringList &identifiers,
00127 const Transformation &transformation) = 0;
00128
00130 virtual void iterateThroughCurvePointsAxes (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback) = 0;
00131
00133 virtual void iterateThroughCurvePointsAxes (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback) const = 0;
00134
00136 virtual void iterateThroughCurveSegments (const QString &curveName,
00137 const Functor2wRet<const Point &, const Point &, CallbackSearchReturn> &ftorWithCallback) const = 0;
00138
00140 virtual void iterateThroughCurvesPointsGraphs (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback) = 0;
00141
00143 virtual void iterateThroughCurvesPointsGraphs (const Functor2wRet<const QString &, const Point &, CallbackSearchReturn> &ftorWithCallback) const = 0;
00144
00146 virtual bool loadCurvesFile (const QString &curvesFile) = 0;
00147
00149 virtual DocumentModelAxesChecker modelAxesChecker() const = 0;
00150
00152 virtual DocumentModelColorFilter modelColorFilter() const = 0;
00153
00155 virtual DocumentModelCoords modelCoords () const = 0;
00156
00158 virtual CurveStyles modelCurveStyles() const = 0;
00159
00161 virtual DocumentModelDigitizeCurve modelDigitizeCurve() const = 0;
00162
00164 virtual DocumentModelExportFormat modelExport() const = 0;
00165
00167 virtual DocumentModelGeneral modelGeneral() const = 0;
00168
00170 virtual DocumentModelGridDisplay modelGridDisplay() const = 0;
00171
00173 virtual DocumentModelGridRemoval modelGridRemoval() const = 0;
00174
00176 virtual DocumentModelPointMatch modelPointMatch() const = 0;
00177
00179 virtual DocumentModelSegments modelSegments() const = 0;
00180
00182 virtual void movePoint (const QString &pointIdentifier,
00183 const QPointF &deltaScreen) = 0;
00184
00186 virtual int nextOrdinalForCurve (const QString &curveName) const = 0;
00187
00189 virtual QPointF positionGraph (const QString &pointIdentifier) const = 0;
00190
00192 virtual QPointF positionScreen (const QString &pointIdentifier) const = 0;
00193
00195 virtual void print () const = 0;
00196
00198 virtual void printStream (QString indentation,
00199 QTextStream &str) const = 0;
00200
00202 virtual QString reasonForUnsuccessfulRead () const = 0;
00203
00205 virtual void removePointAxis (const QString &identifier) = 0;
00206
00208 virtual void removePointGraph (const QString &identifier) = 0;
00209
00211 virtual void removePointsInCurvesGraphs (CurvesGraphs &curvesGraphs) = 0;
00212
00214 virtual void saveXml (QXmlStreamWriter &writer) const = 0;
00215
00217 virtual QString selectedCurveName () const = 0;
00218
00220 virtual void setCurveAxes (const Curve &curveAxes) = 0;
00221
00223 virtual void setCurvesGraphs (const CurvesGraphs &curvesGraphs) = 0;
00224
00226 virtual void setModelAxesChecker(const DocumentModelAxesChecker &modelAxesChecker) = 0;
00227
00229 virtual void setModelColorFilter(const DocumentModelColorFilter &modelColorFilter) = 0;
00230
00232 virtual void setModelCoords (const DocumentModelCoords &modelCoords) = 0;
00233
00235 virtual void setModelCurveStyles(const CurveStyles &modelCurveStyles) = 0;
00236
00238 virtual void setModelDigitizeCurve (const DocumentModelDigitizeCurve &modelDigitizeCurve) = 0;
00239
00241 virtual void setModelExport(const DocumentModelExportFormat &modelExport) = 0;
00242
00244 virtual void setModelGeneral (const DocumentModelGeneral &modelGeneral) = 0;
00245
00247 virtual void setModelGridDisplay(const DocumentModelGridDisplay &modelGridDisplay) = 0;
00248
00250 virtual void setModelGridRemoval(const DocumentModelGridRemoval &modelGridRemoval) = 0;
00251
00253 virtual void setModelPointMatch(const DocumentModelPointMatch &modelPointMatch) = 0;
00254
00256 virtual void setModelSegments(const DocumentModelSegments &modelSegments) = 0;
00257
00259 virtual void setSelectedCurveName(const QString &selectedCurveName) = 0;
00260
00262 virtual bool successfulRead () const = 0;
00263
00266 virtual void updatePointOrdinals (const Transformation &transformation) = 0;
00267 };
00268
00269 #endif // COORD_SYSTEM_INTERFACE_H