www.pudn.com > EnergyMap.rar > drawmap.cpp


#include "stdafx.h" 
#include "DrawMap.h" 
#include "colortable.h" 
#include "trans.h" 
#include "disperse.h" 
#include "resample.h" 
CDrawMap::CDrawMap() 
{ 
	trace=256; 
	sample=4096; 
} 
CDrawMap::~CDrawMap() 
{ 
} 
void CDrawMap::GetBitmap(CBitmap*Bitmap) 
{ 
	m_Bitmap=Bitmap; 
} 
bool CDrawMap::DrawEnergyMap() 
{ 
	if(!ReadData()){ 
		return false; 
	} 
	trans(data,trace,sample); 
	(*m_Bitmap).DeleteObject(); 
	(*m_Bitmap).CreateBitmap(trace,sample,1,32,NULL); 
	unsigned char* pData; 
	if((pData=new unsigned char[trace*sample*4])==NULL) 
		return false; 
	for(int y=0;ySetBitmapBits(trace*sample*4,pData); 
	delete []pData;	 
	return true; 
} 
bool CDrawMap::OpenFile() 
{ 
	CString strFileExtension="Data Files(*.dat)|*.dat|segy Files(*.segy)|*.segy|sgy Files(*.sgy)|*.sgy|All Files(*.*)|*.*||"; 
	CFileDialog fileOpenDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST, 
		(LPCTSTR)strFileExtension,NULL); 
	fileOpenDlg.m_ofn.lpstrTitle="Select Original File Name"; 
	int result=fileOpenDlg.DoModal(); 
	if (result==IDOK) { 
		strcpy(file,fileOpenDlg.GetPathName()); 
	} 
	if ((fp=fopen(file,"rb"))==NULL) { 
		return false; 
	} 
	return true; 
} 
bool CDrawMap::ReadData() 
{ 
	float*data1; 
	data1=new float[trace*sample]; 
	if((fread(data1,sizeof(float)*trace*sample,1,fp))==NULL) 
		return false; 
	data=disperse(data1,trace,sample); 
	delete []data1; 
	return true; 
}