Engauge Digitizer  2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
GeometryStrategyRelationSmooth Class Reference

Calculate for line through the points that is smoothly connected as a relation. More...

#include <GeometryStrategyRelationSmooth.h>

Inheritance diagram for GeometryStrategyRelationSmooth:
Inheritance graph
Collaboration diagram for GeometryStrategyRelationSmooth:
Collaboration graph

Public Member Functions

 GeometryStrategyRelationSmooth ()
 Single constructor. More...
 
virtual ~GeometryStrategyRelationSmooth ()
 
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. More...
 
- Public Member Functions inherited from GeometryStrategyAbstractBase
 GeometryStrategyAbstractBase ()
 Single constructor. More...
 
virtual ~GeometryStrategyAbstractBase ()
 

Additional Inherited Members

- Protected Member Functions inherited from GeometryStrategyAbstractBase
void calculatePositionsGraph (const Points &points, const Transformation &transformation, QVector< QPointF > &positionsGraph) const
 Convert screen positions to graph positions. More...
 
double functionArea (const QVector< QPointF > &positionsGraph) const
 Use trapezoidal approximation to compute area under the function. Does not apply to relation. More...
 
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. More...
 
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 no ambiguities. More...
 
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. More...
 
double polygonAreaForSimplyConnected (const QVector< QPointF > &points) const
 Area in polygon using Shoelace formula, which only works if polygon is simply connected. More...
 

Detailed Description

Calculate for line through the points that is smoothly connected as a relation.

Definition at line 16 of file GeometryStrategyRelationSmooth.h.

Constructor & Destructor Documentation

GeometryStrategyRelationSmooth::GeometryStrategyRelationSmooth ( )

Single constructor.

Definition at line 10 of file GeometryStrategyRelationSmooth.cpp.

11 {
12 }
GeometryStrategyRelationSmooth::~GeometryStrategyRelationSmooth ( )
virtual

Definition at line 14 of file GeometryStrategyRelationSmooth.cpp.

15 {
16 }

Member Function Documentation

void GeometryStrategyRelationSmooth::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
virtual

Calculate geometry parameters.

Implements GeometryStrategyAbstractBase.

Definition at line 18 of file GeometryStrategyRelationSmooth.cpp.

32 {
33  const int NUM_SUB_INTERVALS_SMOOTH = 10; // One input point becomes NUM_SUB_INTERVALS points to account for smoothing
34 
35  QVector<QPointF> positionsGraph, positionsGraphWithSubintervals;
37  transformation,
38  positionsGraph);
39 
40  insertSubintervalsAndLoadDistances (NUM_SUB_INTERVALS_SMOOTH,
41  positionsGraph,
42  positionsGraphWithSubintervals,
43  distanceGraphForward,
44  distancePercentForward,
45  distanceGraphBackward,
46  distancePercentBackward);
47  double pArea = polygonAreaForSimplyConnected (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 = "";
64  polyArea = QString::number (pArea);
65 }
void calculatePositionsGraph(const Points &points, const Transformation &transformation, QVector< QPointF > &positionsGraph) const
Convert screen positions to graph positions.
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.
double polygonAreaForSimplyConnected(const QVector< QPointF > &points) const
Area in polygon using Shoelace formula, which only works if polygon is simply connected.

The documentation for this class was generated from the following files: