10 #include <vrvUtil/signalslib.h>
11 #include <vrvUtil/DtVirtualBaseClass.h>
12 #include <vrvCore/DtUniqueID.h>
13 #include <vrvCore/DtStateView.h>
14 #include <vrvCore/DtEntityState.h>
15 #include <vrvCore/DtDisplayUnitsSettingsManager.h>
16 #include <vrvUtil/DtSignalConnectionManager.h>
18 #include <vlpi/entityType.h>
20 #include <qwt_symbol.h>
26 #include <vrvUtil/DtUnitConverterCollection.h>
32 class DtReferenceEllipsoid;
40 class DtTerrainProfileDataProvider;
41 class DtTerrainProfileSettingsRecord;
42 class DtSymbolTracker;
78 virtual void replot();
81 virtual void setSamplingRate(
double);
82 double samplingRate()
const;
85 virtual void setMaximumSamplingPoints(
int);
86 int maximumSamplingPoints()
const;
89 virtual void clearGraph();
93 virtual void setReplotTime(
int);
94 int replotTime()
const;
98 virtual void setScaleFactor(
double);
99 double scaleFactor()
const;
102 virtual void suspend();
105 virtual void resume();
108 virtual bool isSuspended()
const;
111 virtual void setShowVertices(
bool);
112 bool showVertices()
const;
119 virtual void createProfileGraph();
122 virtual void initConnections();
125 virtual bool updateProfileData();
128 virtual void slot_dataUpdated();
131 virtual void slot_dataRemoved();
135 virtual void calculateReplotRanges(std::vector<QPoint>&)
const;
139 virtual double calculateLineLength(
const std::vector<DtVector>&)
const;
142 virtual double calculateSegment(
const QPoint& segment,
double lineLength);
145 virtual double segmentLength(
const QPoint&)
const;
146 virtual double segmentLength(
int start,
int end)
const;
149 virtual double terrainHeight(
int point)
const;
152 virtual double terrainHeight(
const DtVector&)
const;
155 virtual double lineHeight(
int pos)
const;
158 virtual void setupLabels();
161 void slot_onUnitChanged(
int attribute,
int from);
165 virtual double altitudeValueFor(
double)
const;
166 virtual double distanceValueFor(
double)
const;
169 virtual void convertAltitudeAndDistance(
int newAltitudeUnits,
int newDistanceUnits,
bool replot =
true);
172 virtual void convertAltitudeAndDistance(QVector<QPointF>&,
int newAltitudeUnits,
int newDistanceUnits)
const;
173 virtual void convertAltitudeAndDistance(QwtPlotMarker*,
int newAltitudeUnits,
int newDistanceUnits)
const;
176 virtual void deferredReplot(
bool full =
true);
179 virtual QwtPlotMarker* addMarker(
double x,
double y);
182 virtual void setupPointMarkerLabel();
190 virtual void createSymbolTracker();
193 virtual void trackEntity(
const DtVector& geocentricPosition,
const makVrv::DtStateView<makVrv::DtVrlinkSimulatedEntityState>*);
196 virtual void stopTrackingEntity(makVrv::DtElementID);
199 virtual void clearTrackingSymbols(
bool suspended =
false);
202 virtual QwtSymbol* symbolFor(
const makVrv::DtStateView<makVrv::DtVrlinkSimulatedEntityState>*)
const;
206 virtual int linePositionFromLocation(
const DtVector& geocentricLocation, QPointF& result)
const;
211 virtual int closestPoint(
const DtVector& v,
double& range,
double& totalRange)
const;
215 virtual void timedReplot();
216 virtual void replotIfTime();
219 virtual void updateLineVertices(
bool replot =
true);
221 virtual void resetAltitudeScale(
bool replot =
true);
224 virtual double elevationAngle(
const DtVector& geocentricFrom,
const DtVector& geocentricTo)
const;
229 virtual void plotMouseReleased(
const QPointF&);
327 { setSize(pixmap.size()); setStyle(QwtSymbol::UserStyle); };
339 virtual void drawSymbols( QPainter *painter,
const QPointF *points,
int numPoints )
const;