00001 #ifndef ANP_DRAWSPAN_H
00002 #define ANP_DRAWSPAN_H
00003
00004
00005 #include <vector>
00006
00007
00008 #include "DrawUtil.h"
00009
00010 class TAxis;
00011
00012 namespace Anp
00013 {
00014 class DrawSpan
00015 {
00016 public:
00017
00018 DrawSpan();
00019 ~DrawSpan() {}
00020
00021 void Reset();
00022
00023 void FindSpan(const Event &event, const Record &record);
00024 void FindSpan(const Draw::SVec &uvec, const Draw::SVec &vvec);
00025
00026 void SetRangeU(TAxis *axis, float scale, float border) const;
00027 void SetRangeV(TAxis *axis, float scale, float border) const;
00028 void SetRangeZ(TAxis *axis, float scale, float border) const;
00029
00030 bool InitU() const;
00031 bool InitV() const;
00032 bool InitZ() const;
00033
00034 float GetMinU(float scale, float border) const;
00035 float GetMaxU(float scale, float border) const;
00036
00037 float GetMinV(float scale, float border) const;
00038 float GetMaxV(float scale, float border) const;
00039
00040 float GetMinZ(float scale, float border) const;
00041 float GetMaxZ(float scale, float border) const;
00042
00043 double GetMinTime(double window) const;
00044 double GetMaxTime(double window) const;
00045
00046 private:
00047
00048 void Set(TAxis *axis, float min, float max) const;
00049
00050 float Min(float pos, float scale) const;
00051 float Max(float pos, float scale) const;
00052
00053 bool fInitU;
00054 bool fInitV;
00055 bool fInitZ;
00056 bool fInitTime;
00057
00058 float fMinU;
00059 float fMaxU;
00060
00061 float fMinV;
00062 float fMaxV;
00063
00064 float fMinZ;
00065 float fMaxZ;
00066
00067 double fMinTime;
00068 double fMaxTime;
00069 };
00070 }
00071
00072 #endif