////////////////////////////////////////////////////////////////////////////// //文件 CurveTV5.h //主要功能: // //程序编写: 2005-12-07 ///////////////////////////////////////////////////////////////////////////// #pragma once #include "curvetv.h" //x与y的数据模式, 使用SetDataMode设置 #define TV_TIME 0 //时间 #define TV_RMS 1 //均方根速度 #define TV_INTERVAL 2 //层速度 #define TV_AVERAGE 3 //平均速度 #define TV_DEPTH 4 //深度 #define TV_STACKING 5 //叠加速度 #define TV_GRADIENT 6 //速度梯度 #define TV_OFFSET_NONE 0x0001 //不偏移 #define TV_OFFSET_LOCATION 0x0002 //按桩号偏移 #define TV_OFFSET_CUSTOM 0x0004 //自定义偏移距 #define TV_DRAW_LINE 0x0100 //画曲线 #define TV_DRAW_CROSSPOINT 0x0200 //画交点 namespace NTV { class AFX_EXT_CLASS CCurveTV5 : public CCurveTV { public: CCurveTV5(void); virtual ~CCurveTV5(void); virtual void Clear(void); virtual int Read(CFile &fr, const short& ver); virtual void Write(CFile& fw, const short& ver, double dRedundantError=-1.0); virtual BOOL SetPoints(CPointList &dp, int nnPoint, BOOL IsAutoLocation=TRUE); virtual void GetRange(CRect8& range,void *HowToViewCurve=NULL); virtual BOOL IsInRange(CRect8& range,void *HowToViewCurve=NULL); double GetOffset(void); void Redix(int xMode, int yMode, int nIndex); //重新计算指定索引处的DIX值,根据其中一速度值反算其它速度值 void Dix(); void DixOne(int i); void CreateA(void); void SetDataMode(int xMode, int yMode); void operator=(CCurveTV5& curve); DWORD GetStyle(void); void SetStyle(DWORD style); double** GetA(void); protected: //0时间;1均方根速度;2层速度;3平均速度;4深度; double** A; double VR5(int nIndex); virtual double Dix(int nIndex); double VA(int i, int j); DWORD m_style; }; }//namespace