示例#1
0
void
CImportDlg::AddNifEntry(const NifEntryArray& array)
{
	int entrySize = m_entries.GetSize();
	int size = array.GetSize();
	for (int i = 0; i < size; ++i)
	{
		NifEntry entry = array[i];
		
		entry.Name.TrimLeft();
		entry.Name.TrimRight();
		entry.DeviceId.TrimLeft();
		entry.DeviceId.TrimRight();
		entry.DeviceId.Remove(_T('-'));
		entry.DeviceId.Remove(_T(' '));
		entry.DeviceId.Remove(_T(':'));
		entry.WriteKey.TrimLeft();
		entry.WriteKey.TrimRight();

		if (-1 == m_entries.Find(entry))
		{
			if (!m_entries.Add(entry))
			{
				ATLTRACE("m_entries.Add failed\n");
				continue;
			}
			int nItem = m_wndListView.AddItem(entrySize, 0, entry.Name);
			ATLASSERT(nItem == entrySize);
			m_wndListView.AddItem(entrySize, 1, _T(""));
			m_wndListView.SetCheckState(entrySize, TRUE);
			_UpdateView(nItem, entry);
			++entrySize;
		}
	}
}
示例#2
0
void CRenderPipeline::SetView( const CMatrix& View )
{
	m_CurView = View;
	m_CurViewProj	= m_CurView * m_CurProj;
	SetVertexShaderF(ACT_PROJECTION_MATRIX,(float*)&m_CurProj,16);
	_UpdateView();
}
示例#3
0
void 
CImportDlg::_UpdateView()
{
	ndas::UpdateDeviceList();
	int size = m_entries.GetSize();
	for (int i = 0; i < size; ++i)
	{
		_UpdateView(i, m_entries[i]);
	}
}
示例#4
0
void CRenderPipeline::SetCamera(CCamera* pCamera)
{
	AstMsg(pCamera, "摄像机必须有");
	m_CurProj = pCamera->getProjectionMatrix();
	m_CurView = pCamera->getViewMatrix() ;
	m_CurViewProj	= m_CurView * m_CurProj;
	SetVertexShaderF(ACT_CAMERA_POSITION,&pCamera->GetPosition(),1);
	SetVertexShaderF(ACT_PROJECTION_MATRIX,(float*)&m_CurProj,16);
	_UpdateView();
}
示例#5
0
//-----------------------------------------------------------------------
void Frustum::_UpdateFrustumPlanes(void)
{
	_UpdateView();
	_UpdateProj();
	if(m_frustumPlanesChanged)
	{
		_UpdateFrustumPlanesImpl();
		m_frustumPlanesChanged = false;
	}
}
示例#6
0
//-----------------------------------------------------------------------
Matrix4f Camera::GetProjViewMatrix(void)
{
	if(MoveableObject::IsMovded())
	{
		m_viewChanged = true;
	}
	_UpdateProj();
	_UpdateView();
	
	return m_projMatrix * m_viewMatrix;
}
示例#7
0
void 
CImportDlg::OnCmdRegister(UINT, int, HWND)
{
	int count = m_wndListView.GetItemCount();
	bool success = true;
	for (int i = 0; i < count && success; ++i)
	{
#ifdef _DEBUG
		CString str;
		m_wndListView.GetItemText(i, 0, str.GetBuffer(50), 50);
		ATLTRACE("%d:LV=%ws, ENTRY=%ws\n", i, str, static_cast<LPCTSTR>(m_entries[i].Name));
#endif
		if (m_wndListView.GetCheckState(i))
		{
			ATLASSERT(i < m_entries.GetSize());
			success = _ProcessRegistration(m_entries[i]);
		}
	}
	_UpdateView();
}