📄 terrain.cpp
字号:
#include ".\terrain.h"
CTerrain::CTerrain(SceneManager* mSceneMgr)
{
m_fRayOriginHeight=500;
m_pSceneManager=mSceneMgr;
m_pSceneManager->setWorldGeometry("terrain.cfg"); //加载地形
m_pRaySceneQuery = m_pSceneManager->createRayQuery(Ray(Vector3(500,500,500), Vector3::NEGATIVE_UNIT_Y));
}
CTerrain::~CTerrain(void)
{
}
float CTerrain::getHeight(float posX, float posZ)
{
Ray ray;
ray.setOrigin(Vector3(posX, m_fRayOriginHeight, posZ)); //设置发射源位置
ray.setDirection(Vector3::NEGATIVE_UNIT_Y); //设置发射方向为负Y轴
m_pRaySceneQuery->setRay(ray); //设置查询的射线
RaySceneQueryResult& qryResult = m_pRaySceneQuery->execute(); //发射射线,并接收返回的结果
RaySceneQueryResult::iterator i = qryResult.begin();
if (i != qryResult.end() && i->worldFragment)
{
return i->worldFragment->singleIntersection.y;
}
else
{
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -