00001
00002
00003
00004
00005
00006
00007 #ifndef GEOMETRY_STRATEGY_CONTEXT_H
00008 #define GEOMETRY_STRATEGY_CONTEXT_H
00009
00010 #include "CurveConnectAs.h"
00011 #include "MainWindowModel.h"
00012 #include "Points.h"
00013 #include <QVector>
00014
00015 class DocumentModelCoords;
00016 class DocumentModelGeneral;
00017 class GeometryStrategyAbstractBase;
00018 class Transformation;
00019
00021 class GeometryStrategyContext
00022 {
00023 public:
00025 GeometryStrategyContext();
00026 virtual ~GeometryStrategyContext ();
00027
00029 void calculateGeometry (const Points &points,
00030 const DocumentModelCoords &modelCoords,
00031 const DocumentModelGeneral &modelGeneral,
00032 const MainWindowModel &modelMainWindow,
00033 const Transformation &transformation,
00034 CurveConnectAs connectAs,
00035 QString &funcArea,
00036 QString &polyArea,
00037 QVector<QString> &x,
00038 QVector<QString> &y,
00039 QVector<QString> &distanceGraphForward,
00040 QVector<QString> &distancePercentForward,
00041 QVector<QString> &distanceGraphBackward,
00042 QVector<QString> &distancePercentBackward) const;
00043
00044 private:
00045
00046 QVector<GeometryStrategyAbstractBase*> m_strategies;
00047
00048 };
00049
00050 #endif // GEOMETRY_STRATEGY_CONTEXT_H