You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.7 KiB
C++

//////////////////////////////////////////////////////////////////////////////
//文件 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