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.

59 lines
2.2 KiB
C++

//////////////////////////////////////////////////////////////////////////////
//文件: SegY文件操作类
//主要功能:
//
//程序编写: 2005-12-07
//
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "sectionbase.h"
class AFX_EXT_CLASS CSectionDraw :
public CSectionBase
{
public:
CSectionDraw(void);
virtual ~CSectionDraw(void);
virtual void Serialize(CArchive& ar, const short& ver);
virtual void Clear(void);
virtual void operator=(CSectionDraw& sb);
protected:
virtual void SectionMath(CVector& vt); //对读取的地震道进行处理
void DrawRightSolid(CDC* pDC,CCurve &mCurve,double x0, double y0, double dx, double dy,int height,int nStartIndex,int nEndIndex);
void DrawLeftSolid (CDC* pDC,CCurve &mCurve,double x0, double y0, double dx, double dy,int height,int nStartIndex,int nEndIndex);
void DrawT0 (CDC *pDC,CCurve &mCurve,double x0, double y0, double dx, double dy,int height,int nStartIndex,int nEndIndex);
void Draw2Vdf(CDC *pDC,int x1,int x2,double y0,double dy,CVector *v,void *pColor,int height,int nStartIndex,int nEndIndex);
void Draw2V(CDC *pDC,int x1,int x2,double y0,double dy,CVector *v,void *pColor,int height,int nStartIndex,int nEndIndex);
CPoint* pSolid; //块充填数组
public:
double m_dSolidMinimumWidth; //变面积显示时的最小充填块的实际振幅宽度
double m_dSolidMaximalWidth; //变面积显示时的最大充填块的实际振幅宽度
int WidthPixel;
int HeightPixel;
//滤波参数
double filter1,filter2;
long filter_mode;
public:
void DrawOld (CDC *pDC,double x0, double y0,double dx, double dy,int step,double times,int IsSolid);
void DrawOld (CDC *pDC,double x0, double y0,double dx, double dy,int step,void *pColor,int IsDF=0);
void Draw (CDC *pDC,double x0, double y0,double dx, double dy,int step,double times,int IsSolid);
void Draw (CDC *pDC,double x0, double y0,double dx, double dy,int step,void *pColor,int IsDF=0);
void DrawDepth (CDC *pDC,double x0, double y0,double dx, double dy,int step,void *pColor,int IsDF=0);
BOOL IsFilterMode(void);
};
AFX_EXT_API void WINAPI GetMaximum(CVector &vt,CCurve &cu);
AFX_EXT_API void WINAPI GetMaximum(CCurve &cu);
AFX_EXT_API void WINAPI GetMaximum(CVector &vt,int times);
AFX_EXT_API void WINAPI GetMaximum(CVector &vt);