1
This commit is contained in:
parent
162c98190d
commit
f200dd913d
@ -1113,5 +1113,43 @@ bool MapInstance::GetNearestGrass(const glm::vec3& center, glm::vec3& out_pt)
|
|||||||
|
|
||||||
void MapInstance::AdjustOnLandPoint(glm::vec3& point)
|
void MapInstance::AdjustOnLandPoint(glm::vec3& point)
|
||||||
{
|
{
|
||||||
|
float center[3];
|
||||||
|
center[0] = point.x;
|
||||||
|
center[1] = point.y;
|
||||||
|
center[2] = point.z;
|
||||||
|
|
||||||
|
const float extents[3] = {4.0f/10.0f, 100.0f, 4.0f/10.0f};
|
||||||
|
|
||||||
|
dtQueryFilter filter;
|
||||||
|
filter.setIncludeFlags(0xffff);
|
||||||
|
filter.setExcludeFlags(0);
|
||||||
|
|
||||||
|
int poly_count = 0;
|
||||||
|
dtStatus status = navmesh_query_->queryPolygons(center,
|
||||||
|
extents,
|
||||||
|
&filter,
|
||||||
|
polys_,
|
||||||
|
&poly_count,
|
||||||
|
MAX_POLYS);
|
||||||
|
if (dtStatusFailed(status) || poly_count <= 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < poly_count; ++i) {
|
||||||
|
unsigned int slat = 0;
|
||||||
|
unsigned int it = 0;
|
||||||
|
unsigned int ip = 0;
|
||||||
|
navmesh_->decodePolyId(polys_[i], slat, it, ip);
|
||||||
|
|
||||||
|
const dtMeshTile* tile = navmesh_->getTileByRef(polys_[i]);
|
||||||
|
if (!tile) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
if (ip >= tile->header->polyCount) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
const dtPoly* poly = &tile->polys[ip];
|
||||||
|
for (int ii = 0; ii < poly->vertCount; ++ii) {
|
||||||
|
const float* vc = &tile->verts[poly->verts[ii]*3];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user