Engauge Digitizer  2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 
11 {
12 }
13 
15 {
16 }
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 }
void calculatePositionsGraph(const Points &points, const Transformation &transformation, QVector< QPointF > &positionsGraph) const
Convert screen positions to graph positions.
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...
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.
Affine transformation between screen and graph coordinates, based on digitized axis points...
Model for DlgSettingsMainWindow.
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.
Model for DlgSettingsCoords and CmdSettingsCoords.
QList< Point > Points
Definition: Points.h:13
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.