7 #include "GeometryStrategyFunctionSmooth.h"
9 #include "SplineDrawer.h"
10 #include "SplinePair.h"
11 #include "Transformation.h"
19 GeometryStrategyFunctionSmooth::~GeometryStrategyFunctionSmooth()
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;
41 calculatePositionsGraph (points,
45 insertSubintervalsAndLoadDistances (NUM_SUB_INTERVALS_SMOOTH,
47 positionsGraphWithSubintervals,
49 distancePercentForward,
50 distanceGraphBackward,
51 distancePercentBackward);
52 double fArea = functionArea (positionsGraphWithSubintervals);
54 loadXY (positionsGraph,
62 loadSmoothAmbiguityVector (x,
65 isPotentialExportAmbiguity);
68 funcArea = QString::number (fArea);
72 void GeometryStrategyFunctionSmooth::loadSmoothAmbiguityVector (QVector<QString> &x,
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++) {
100 bool isMultiValued = sd.segmentIsMultiValued (s,
103 isPotentialExportAmbiguity.push_back (isMultiValued);
107 for (
int segment = 0; segment < numSegments; segment++) {
108 isPotentialExportAmbiguity.push_back (
false);
Model for DlgSettingsGeneral and CmdSettingsGeneral.
Cubic interpolation given independent and dependent value vectors.
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.
Model for DlgSettingsMainWindow.
Model for DlgSettingsCoords and CmdSettingsCoords.
This class takes the output from Spline and uses that to draw the curve in the graphics window...
Single X/Y pair for cubic spline interpolation initialization and calculations.
GeometryStrategyFunctionSmooth()
Single constructor.