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.

107 lines
3.7 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<2F>ļ<EFBFBD> Section.h
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
//
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2005-12-07
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "pointnameex.h"
#include "..\MxnFormat\Format.h"
#include "..\DrawModel\ScreenXY.h"
#include "..\DrawModel\Curve.h"
#include "..\DrawModel\Dimension3D.h"
#include "..\DrawModel\ImagePlus.h"
#include "..\DrawModel\grid.h"
#include "SegyBase.h"
#define SECTION_DISPLAY_FAST 0x00000001 //<2F><><EFBFBD>ٲ<EFBFBD>ɫ<EFBFBD><C9AB>ʾ,OLD
#define SECTION_DISPLAY_SLOW 0x00000002 //<2F><><EFBFBD>ٲ<EFBFBD>ɫ<EFBFBD><C9AB>ʾ,OLD
#define SECTION_READ_DEFAULT 0x00000004 //ȱʡ<C8B1><CAA1><EFBFBD><EFBFBD>ʽ
#define SECTION_READ_LOADALL 0x00000008 //ȫ<><C8AB>װ<EFBFBD><D7B0><EFBFBD>ڴ淽ʽ
#define SECTION_ONLY_REFLASH 0x00000010 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾһ<CABE><D2BB>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ļ<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><CBB9><EFBFBD><EFBFBD>ú<EFBFBD><C3BA><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<>˼ӿ<CBBC><D3BF>ٶ<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʽ
#define SECTION_UNIFORM_MAX 0x00000020 //ԭʼ(max(fabs(minVal,maxVal));
#define SECTION_UNIFORM_RMS 0x00000040 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SECTION_UNIFORM_MEAN 0x00000080 //ƽ<><C6BD>((<28><><EFBFBD><EFBFBD>ֵ+<2B><>Сֵ)/2)
#define SECTION_UNIFORM_ALL (SECTION_UNIFORM_MAX|SECTION_UNIFORM_RMS|SECTION_UNIFORM_MEAN)
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>ʽ
#define SECTION_VIEW_WIGGLE 0x00000100 //<2F><><EFBFBD><EFBFBD> wiggle code
#define SECTION_VIEW_POSITIVE_FILL 0x00000200 //<2F>ұ<EFBFBD><D2B1><EFBFBD><EFBFBD><EFBFBD> positive VA fill code
#define SECTION_VIEW_NEGATIVE_FILL 0x00000400 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> negative VA fill code
#define SECTION_VIEW_VARIABLE_DENSITY 0x00000800 //<2F><><EFBFBD>ܶ<EFBFBD> variable density code
#define SECTION_VIEW_ALL (SECTION_VIEW_WIGGLE|SECTION_VIEW_POSITIVE_FILL|SECTION_VIEW_NEGATIVE_FILL|SECTION_VIEW_VARIABLE_DENSITY)
class AFX_EXT_CLASS CSection : public CSegyBase
{
public:
CSection(void);
virtual ~CSection(void);
void Serialize(CArchive& ar, const short &ver) override;
virtual int Read(CFile& fr, const short& ver);
int ReadOld(CFile& fr, const short& ver);
virtual void Write(CFile& fw, const short& ver);
int ReadProperty(BYTE* bufData, const short& ver, int bufLen);
int ReadProperty(CFile &fr, const short &ver);
BOOL ReadElementDML(BYTE* bufData, const short& ver, int bufLen);
virtual void WriteDML(CFile &fw, const short& ver, int nBaseTabNum);
virtual int ReadDML(CFile &fr, const short &ver);
virtual void WritePCG(CFile &fw, const short& ver, int nBaseTabNum);
virtual int ReadPCG(CFile &fw, const short &ver);
int SetTraceData(float *puf, int dataLen);
CRect8 GetRange();
virtual void GetRange(CPoint3D& minPoint, CPoint3D& maxPoint);
virtual void GetRange(CRect8& range);
virtual BOOL IsInRange(CRect8& range);
virtual void operator=(CSection& sc);
// typeΪУ<CEAA><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Уλ<D0A3><CEBB><EFBFBD>ĵ<EFBFBD>Уλ<D0A3><CEBB>;pValueΪ<65><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EBA3AC>CCalibrate2<65><32>CCalibrate4<65><34>
virtual void Calibrate(int type, void* pValue);
CColorBase *pColor;
CSeismicDraw m_memSecDraw;
CRect8 m_rect; // <20><>Χ
long step; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
int solidMode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
double times; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD><EFBFBD><EFBFBD>
long bkColor; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
long frSolidColor; //ǰ<><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
long frLineColor; //ǰ<><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
int GetDrawIdea(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٲ<EFBFBD>ɫ<EFBFBD><C9AB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ: 0Ϊ<30><CEAA><EFBFBD>٣<EFBFBD><31><CEAA><EFBFBD><EFBFBD>
void SetDrawIdea(DWORD nMode);
DWORD GetViewMode(void);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾģʽ,SECTION_READ_LOADALLΪȫ<CEAA><C8AB>װ<EFBFBD><D7B0><EFBFBD>ڴ淽ʽ,SECTION_READ_DEFAULTΪȱʡ<C8B1><CAA1>ʽ
void SetViewMode(DWORD nMode);
void Initial(void);
long GetSampleByteLength(void);
//for CSectionXY
//void GetRangeXY(CRect8& range);
//void GetP0(double& x0, double& y0);
void CreateColor(void);
int IsSection(void);
void SetViewSize(int cx, int cy);
void SetSectionMode(int nMode);
void Offset(double dx, double dy);
void EnableOnlyRedraw(BOOL bEnable);
BOOL IsOnlyRedraw(void);
void LoadAllData(void); //<2F><>ȡSEGY<47><59><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DWORD SolidMode2ViewMode(int nSolidMode); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽת<CABD><D7AA>Ϊλ<CEAA><CEBB>ʽ
int ViewMode2SolidMode(DWORD nViewMode); //λ<><CEBB>ʽת<CABD><D7AA>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
};