cfiledataholder.cpp

来自「提供交互的方式选取合适的震相」· C++ 代码 · 共 82 行

CPP
82
字号

#include "stdafx.h"

#include "CFileDataHolder.h"
#include "../iasp91/iasp.h"

using namespace std;

double CFileDataHolder::m_vScale = 1.0;
double CFileDataHolder::m_hScale = 1.0;
double CFileDataHolder::m_singleProfileHeight = 80;

CFileDataHolder::CFileDataHolder(void):m_pData(NULL), 
	m_bDrawIndex(0), m_eDrawIndex(0),
#if defined(_AFXDLL)
	m_bShow(true), 
#endif
	m_cmpnm(0)
{
	m_npts = 0; // points in the file.
	m_delta = 0; // 等间隔采样点之间的增量
	m_StLa = 0; // station latitude, unit is degree
	m_StLo = 0; // station longitude, unit is degree
	m_EvLa = 0; // event latitude, unit is degree
	m_EvLo = 0; // event longitude, unit is degree
	m_EvDp = 0; // event deep, unit is kilometer
	m_EvBegin; // 事件发生时间,相对基准时间, unit is second
	m_begin = 0; // 自变量开始值
	m_end = 0;
	// 文件基准时间(计时起点)
	m_nzYear = 0; // GMT年
	m_nzjDay = 0; // GMT儒略日
	m_nzHour = 0;
	m_nzMinute = 0;
	m_nzSecond = 0;
	m_nzMSec = 0;
	m_FirstPhaseTm = 0; //初动到时,相对基准时间,unit is second
}

bool CFileDataHolder::CalcIASP91(void) {

	if( m_IASP91.size() > 0 )
		return false;// we have calculated the iasp91 arrival times

	struct ttime tt;

	wtptt(m_gcArc, m_EvDp, &tt);

	char phase[9];

	phase[8]=0x0;
	for( int i = 0 ; i < tt.N; i++ ) {
		memcpy( phase, &tt.mphase[i], 8 );
		m_IASP91[tt.mtt[i]] = phase;
	}

	return true;
}


#if defined(_AFXDLL)


void CFileDataHolder::GetFileBaseTime( CTime & time ) {
	long day = 0;
	int mon;
	for( mon = 1; mon< 12; mon++) {
		day += daysInMonth( mon, m_nzYear );
		if( day >= m_nzjDay ) {
			day = m_nzjDay - (day - daysInMonth( mon, m_nzYear ));
			break;
		}
	}

	time = CTime(m_nzYear, mon, day, m_nzHour, m_nzMinute, m_nzSecond);
}



#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?