📄 ms3dmodel.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 + -