32 QVector<bool> &isPotentialExportAmbiguity,
33 QVector<QString> &distanceGraphForward,
34 QVector<QString> &distancePercentForward,
35 QVector<QString> &distanceGraphBackward,
36 QVector<QString> &distancePercentBackward)
const
38 const int NUM_SUB_INTERVALS_SMOOTH = 10;
40 QVector<QPointF> positionsGraph, positionsGraphWithSubintervals;
47 positionsGraphWithSubintervals,
49 distancePercentForward,
50 distanceGraphBackward,
51 distancePercentBackward);
52 double fArea =
functionArea (positionsGraphWithSubintervals);
65 isPotentialExportAmbiguity);
68 funcArea = QString::number (fArea);
75 QVector<bool> &isPotentialExportAmbiguity)
const
78 int numSegments = x.size () - 1;
87 vector<double> t (
unsigned (x.size ()));
88 vector<SplinePair> xy (
unsigned (x.size ()));
89 for (
unsigned int i = 0; i < unsigned (x.size ()); i++) {
91 xy [i] =
SplinePair (x.at (signed (i)).toDouble (),
92 y.at (signed (i)).toDouble ());
99 for (
int segment = 0; segment < numSegments; segment++) {
103 isPotentialExportAmbiguity.push_back (isMultiValued);
107 for (
int segment = 0; segment < numSegments; segment++) {
108 isPotentialExportAmbiguity.push_back (
false);
Model for DlgSettingsCoords and CmdSettingsCoords.
Model for DlgSettingsGeneral and CmdSettingsGeneral.
void loadXY(const QVector< QPointF > &positionsGraph, const DocumentModelCoords &modelCoords, const DocumentModelGeneral &modelGeneral, const MainWindowModel &modelMainWindow, const Transformation &transformation, QVector< QString > &x, QVector< QString > &y) const
Load x and y coordinate vectors.
void insertSubintervalsAndLoadDistances(int subintervalsPerInterval, const QVector< QPointF > &positionsGraph, QVector< QPointF > &positionsGraphWithSubintervals, QVector< QString > &distanceGraphForward, QVector< QString > &distancePercentForward, QVector< QString > &distanceGraphBackward, QVector< QString > &distancePercentBackward) const
Insert the specified number of subintervals into each interval.
void calculatePositionsGraph(const Points &points, const Transformation &transformation, QVector< QPointF > &positionsGraph) const
Convert screen positions to graph positions.
double functionArea(const QVector< QPointF > &positionsGraph) const
Use trapezoidal approximation to compute area under the function. Does not apply to relation.
virtual ~GeometryStrategyFunctionSmooth()
virtual void loadSmoothAmbiguityVector(QVector< QString > &x, QVector< QString > &y, const Transformation &transformation, QVector< bool > &isPotentialExportAmbiguity) const
Generate a vector that identifies points belonging to segments that overlap, for smoothly connected f...
virtual void calculateGeometry(const Points &points, const DocumentModelCoords &modelCoords, const DocumentModelGeneral &modelGeneral, const MainWindowModel &modelMainWindow, const Transformation &transformation, QString &funcArea, QString &polyArea, QVector< QString > &x, QVector< QString > &y, QVector< bool > &isPotentialExportAmbiguity, QVector< QString > &distanceGraphForward, QVector< QString > &distancePercentForward, QVector< QString > &distanceGraphBackward, QVector< QString > &distancePercentBackward) const
Calculate geometry parameters.
GeometryStrategyFunctionSmooth()
Single constructor.
Model for DlgSettingsMainWindow.
This class takes the output from Spline and uses that to draw the curve in the graphics window,...
bool segmentIsMultiValued(const Spline &spline, int numSegments, int segment) const
Return true if specified segment is multi-valued, else false.
Single X/Y pair for cubic spline interpolation initialization and calculations.
Cubic interpolation given independent and dependent value vectors.