Engauge Digitizer 2
Loading...
Searching...
No Matches
GeometryStrategyRelationStraight Class Reference

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

#include <GeometryStrategyRelationStraight.h>

Inheritance diagram for GeometryStrategyRelationStraight:
Inheritance graph
Collaboration diagram for GeometryStrategyRelationStraight:
Collaboration graph

Public Member Functions

 GeometryStrategyRelationStraight ()
 Single constructor.
virtual ~GeometryStrategyRelationStraight ()
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.
Public Member Functions inherited from GeometryStrategyAbstractBase
 GeometryStrategyAbstractBase ()
 Single constructor.
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.
double functionArea (const QVector< QPointF > &positionsGraph) const
 Use trapezoidal approximation to compute area under the function. Does not apply to relation.
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.
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.
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.
double polygonAreaForSimplyConnected (const QVector< QPointF > &points) const
 Area in polygon using Shoelace formula, which only works if polygon is simply connected.

Detailed Description

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

Definition at line 16 of file GeometryStrategyRelationStraight.h.

Constructor & Destructor Documentation

◆ GeometryStrategyRelationStraight()

GeometryStrategyRelationStraight::GeometryStrategyRelationStraight ( )

Single constructor.

Definition at line 10 of file GeometryStrategyRelationStraight.cpp.

11{
12}

◆ ~GeometryStrategyRelationStraight()

GeometryStrategyRelationStraight::~GeometryStrategyRelationStraight ( )
virtual

Definition at line 14 of file GeometryStrategyRelationStraight.cpp.

15{
16}

Member Function Documentation

◆ calculateGeometry()

void GeometryStrategyRelationStraight::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 GeometryStrategyRelationStraight.cpp.

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 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}
double polygonAreaForSimplyConnected(const QVector< QPointF > &points) const
Area in polygon using Shoelace formula, which only works if polygon is simply connected.
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.

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