Add support for navmesh on spline collider

This commit is contained in:
Wojtek Figat
2021-02-12 11:15:51 +01:00
parent 80e2aee92b
commit 0e78d13146
3 changed files with 34 additions and 0 deletions

View File

@@ -16,6 +16,7 @@
#include "Engine/Physics/Colliders/SphereCollider.h"
#include "Engine/Physics/Colliders/CapsuleCollider.h"
#include "Engine/Physics/Colliders/MeshCollider.h"
#include "Engine/Physics/Colliders/SplineCollider.h"
#include "Engine/Threading/ThreadPoolTask.h"
#include "Engine/Terrain/TerrainPatch.h"
#include "Engine/Terrain/Terrain.h"
@@ -259,6 +260,18 @@ struct NavigationSceneRasterization
e.RasterizeTriangles();
}
else if (const auto* splineCollider = dynamic_cast<SplineCollider*>(actor))
{
PROFILE_CPU_NAMED("SplineCollider");
auto collisionData = splineCollider->CollisionData.Get();
if (!collisionData || collisionData->WaitForLoaded())
return true;
splineCollider->ExtractGeometry(vb, ib);
e.RasterizeTriangles();
}
else if (const auto* terrain = dynamic_cast<Terrain*>(actor))
{
PROFILE_CPU_NAMED("Terrain");