You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Preventing navmesh generation under specified geometry
Addition property bRejectNavmeshUnderneath on PrimitiveComponent The flag gets set in the FCompositeNavModifier and is read when rasterizing the geometry When set, the triangles are rasterize as solid columns going to the min level of the solid heightfield preventing navmesh generation under them [REVIEW] [at]Mieszko.Zielinski [at]Mikko.Mononen #rb [at]Mikko.Mononen #jira UE-82571 #ROBOMERGE-OWNER: aris.theophanidis #ROBOMERGE-AUTHOR: aris.theophanidis #ROBOMERGE-SOURCE: CL 10335671 via CL 10335674 #ROBOMERGE-BOT: (v594-10333955) [CL 10353890 by aris theophanidis in Main branch]
This commit is contained in:
@@ -150,6 +150,8 @@ struct FRecastRawGeometryElement
|
||||
// Per instance transformations in unreal coords
|
||||
// When empty geometry is in world space
|
||||
TArray<FTransform> PerInstanceTransform;
|
||||
|
||||
rcRasterizationFlags RasterizationFlags;
|
||||
};
|
||||
|
||||
struct FRecastAreaNavModifierElement
|
||||
@@ -347,11 +349,11 @@ protected:
|
||||
bool CreateHeightField(FNavMeshBuildContext& BuildContext, FTileRasterizationContext& RasterContext);
|
||||
ETimeSliceWorkResult RasterizeTrianglesTimeSliced(FNavMeshBuildContext& BuildContext, FTileRasterizationContext& RasterContext);
|
||||
void RasterizeTriangles(FNavMeshBuildContext& BuildContext, FTileRasterizationContext& RasterContext);
|
||||
ETimeSliceWorkResult RasterizeGeometryRecastTimeSliced(FNavMeshBuildContext& BuildContext, const TArray<float>& Coords, const TArray<int32>& Indices, FTileRasterizationContext& RasterContext);
|
||||
void RasterizeGeometryRecast(FNavMeshBuildContext& BuildContext, const TArray<float>& Coords, const TArray<int32>& Indices, FTileRasterizationContext& RasterContext);
|
||||
ETimeSliceWorkResult RasterizeGeometryRecastTimeSliced(FNavMeshBuildContext& BuildContext, const TArray<float>& Coords, const TArray<int32>& Indices, const rcRasterizationFlags RasterizationFlags, FTileRasterizationContext& RasterContext);
|
||||
void RasterizeGeometryRecast(FNavMeshBuildContext& BuildContext, const TArray<float>& Coords, const TArray<int32>& Indices, const rcRasterizationFlags RasterizationFlags, FTileRasterizationContext& RasterContext);
|
||||
void RasterizeGeometryTransformCoords(const TArray<float>& Coords, const FTransform& LocalToWorld);
|
||||
ETimeSliceWorkResult RasterizeGeometryTimeSliced(FNavMeshBuildContext& BuildContext, const TArray<float>& Coords, const TArray<int32>& Indices, const FTransform& LocalToWorld, FTileRasterizationContext& RasterContext);
|
||||
void RasterizeGeometry(FNavMeshBuildContext& BuildContext, const TArray<float>& Coords, const TArray<int32>& Indices, const FTransform& LocalToWorld, FTileRasterizationContext& RasterContext);
|
||||
ETimeSliceWorkResult RasterizeGeometryTimeSliced(FNavMeshBuildContext& BuildContext, const TArray<float>& Coords, const TArray<int32>& Indices, const FTransform& LocalToWorld, const rcRasterizationFlags RasterizationFlags, FTileRasterizationContext& RasterContext);
|
||||
void RasterizeGeometry(FNavMeshBuildContext& BuildContext, const TArray<float>& Coords, const TArray<int32>& Indices, const FTransform& LocalToWorld, const rcRasterizationFlags RasterizationFlags, FTileRasterizationContext& RasterContext);
|
||||
void GenerateRecastFilter(FNavMeshBuildContext& BuildContext, FTileRasterizationContext& RasterContext);
|
||||
bool BuildCompactHeightField(FNavMeshBuildContext& BuildContext, FTileRasterizationContext& RasterContext);
|
||||
bool RecastErodeWalkable(FNavMeshBuildContext& BuildContext, FTileRasterizationContext& RasterContext);
|
||||
@@ -382,12 +384,12 @@ protected:
|
||||
|
||||
void AppendModifier(const FCompositeNavModifier& Modifier, const FNavDataPerInstanceTransformDelegate& InTransformsDelegate);
|
||||
/** Appends specified geometry to tile's geometry */
|
||||
void ValidateAndAppendGeometry(TSharedRef<FNavigationRelevantData, ESPMode::ThreadSafe> ElementData);
|
||||
void AppendGeometry(const TNavStatArray<uint8>& RawCollisionCache, const FNavDataPerInstanceTransformDelegate& InTransformsDelegate);
|
||||
void ValidateAndAppendGeometry(TSharedRef<FNavigationRelevantData, ESPMode::ThreadSafe> ElementData, const FCompositeNavModifier& InModifier);
|
||||
void AppendGeometry(const TNavStatArray<uint8>& RawCollisionCache, const FCompositeNavModifier& InModifier, const FNavDataPerInstanceTransformDelegate& InTransformsDelegate);
|
||||
void AppendVoxels(rcSpanCache* SpanData, int32 NumSpans);
|
||||
|
||||
/** prepare voxel cache from collision data */
|
||||
void PrepareVoxelCache(const TNavStatArray<uint8>& RawCollisionCache, TNavStatArray<rcSpanCache>& SpanData);
|
||||
void PrepareVoxelCache(const TNavStatArray<uint8>& RawCollisionCache, const FCompositeNavModifier& InModifier, TNavStatArray<rcSpanCache>& SpanData);
|
||||
bool HasVoxelCache(const TNavStatArray<uint8>& RawVoxelCache, rcSpanCache*& CachedVoxels, int32& NumCachedVoxels) const;
|
||||
void AddVoxelCache(TNavStatArray<uint8>& RawVoxelCache, const rcSpanCache* CachedVoxels, const int32 NumCachedVoxels) const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user