⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ms3dmodel.cpp

📁 3D游戏展示程序
💻 CPP
字号:
//--------------------------------------------------
//  Desc: ms3d model node
//  Author: artsylee/2007.3.23
//--------------------------------------------------

#include "MS3DModel.h"
#include "Common.h"
#include "ModelManager.h"
#include "MS3DLoader.h"
#include "Heightmap.h"

extern CHeightmap g_Hmap;

CMS3DModel::CMS3DModel()
{
	SetNodeType(NT_MS3D_MODEL);
	m_hModel = INVALID_HANDLE;
	m_bVisual = true;
}

CMS3DModel::~CMS3DModel()
{
	if(g_pModelManager)
		g_pModelManager->ReleaseModel(m_hModel);
}

bool CMS3DModel::Load(char *pFileName)
{
	if(g_pModelManager)
	{
		// 输入小写文件名
		//_strlwr(pFileName);
		m_hModel = g_pModelManager->LoadModel(pFileName, TYPE_MS3D);
	}
	if(m_hModel != INVALID_HANDLE)
		return true;
	else
		return false;
}

void CMS3DModel::Update(void)
{
	if(m_bVisual)
	{
		GNode::Update();
	}
}

void CMS3DModel::SetVisual(bool bVisual)
{
	m_bVisual = bVisual;
}

void CMS3DModel::Render(void)
{
	//if(!g_Hmap.IsInFrustum(m_vDerivedPos.x, m_vDerivedPos.z))
	//	return;
	if(m_bVisual)
	{
		CMS3DLoader *pLoader = (CMS3DLoader*)(g_pModelManager->GetModel(m_hModel));
		if(pLoader)
		{
			D3DXMATRIX matWorld;
			GetWorldTransform(&matWorld);
			g_pD3DDevice->SetTransform(D3DTS_WORLD, &matWorld);
			pLoader->Render();
		}
	}
}

void CMS3DModel::RenderBoundary(void)
{
	//if(!g_Hmap.IsInFrustum(m_vDerivedPos.x, m_vDerivedPos.z))
	//	return;

	if(m_bVisual)
	{
		CMS3DLoader *pLoader = (CMS3DLoader*)(g_pModelManager->GetModel(m_hModel));
		if(pLoader)
		{
			D3DXMATRIX matWorld;
			GetWorldTransform(&matWorld);
			g_pD3DDevice->SetTransform(D3DTS_WORLD, &matWorld);
			pLoader->DrawBoundary();
		}
	}
}

⌨️ 快捷键说明

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