Engauge Digitizer 2
Loading...
Searching...
No Matches
GeometryStrategyFunctionStraight.cpp
Go to the documentation of this file.
1/******************************************************************************************************
2 * (C) 2016 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5 ******************************************************************************************************/
6
8#include "Transformation.h"
9
13
17
19 const DocumentModelCoords &modelCoords,
20 const DocumentModelGeneral &modelGeneral,
21 const MainWindowModel &modelMainWindow,
22 const Transformation &transformation,
23 QString &funcArea,
24 QString &polyArea,
25 QVector<QString> &x,
26 QVector<QString> &y,
27 QVector<bool> &isPotentialExportAmbiguity,
28 QVector<QString> &distanceGraphForward,
29 QVector<QString> &distancePercentForward,
30 QVector<QString> &distanceGraphBackward,
31 QVector<QString> &distancePercentBackward) const
32{
33 const int NUM_SUB_INTERVALS_STRAIGHT = 1; // Value of one with trapezoidal integration results in calculations using straight lines between points
34
35 QVector<QPointF> positionsGraph, positionsGraphWithSubintervals;
37 transformation,
38 positionsGraph);
39
40 insertSubintervalsAndLoadDistances (NUM_SUB_INTERVALS_STRAIGHT,
41 positionsGraph,
42 positionsGraphWithSubintervals,
43 distanceGraphForward,
44 distancePercentForward,
45 distanceGraphBackward,
46 distancePercentBackward);
47 double fArea = functionArea (positionsGraphWithSubintervals);
48
49 loadXY (positionsGraph,
50 modelCoords,
51 modelGeneral,
52 modelMainWindow,
53 transformation,
54 x,
55 y);
56
58 y,
59 transformation,
60 isPotentialExportAmbiguity);
61
62 // Set header values
63 funcArea = QString::number (fArea);
64 polyArea = "";
65}
QList< Point > Points
Definition Points.h:13
Model for DlgSettingsCoords and CmdSettingsCoords.
Model for DlgSettingsGeneral and CmdSettingsGeneral.
virtual void loadPotentialExportVector(QVector< QString > &x, QVector< QString > &y, const Transformation &transformation, QVector< bool > &isPotentialExportAmbiguity) const
Load isPotentialExportAmbiguity vector. Default in base class is to load false values since there are...
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 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.
Affine transformation between screen and graph coordinates, based on digitized axis points.