UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ProceduralFoliageSpawner.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
8#include "UObject/Object.h"
9#include "Math/RandomStream.h"
11#include "FoliageTypeObject.h"
12#include "ProceduralFoliageSpawner.generated.h"
13
15
16UCLASS(BlueprintType, Blueprintable, MinimalAPI)
18{
20
21
22 UPROPERTY(Category = ProceduralFoliageSimulation, EditAnywhere, BlueprintReadOnly)
23 int32 RandomSeed;
24
26 UPROPERTY(Category = ProceduralFoliageSimulation, EditAnywhere, BlueprintReadOnly)
27 float TileSize;
28
30 UPROPERTY(Category = ProceduralFoliageSimulation, EditAnywhere, BlueprintReadOnly)
31 int32 NumUniqueTiles;
32
34 UPROPERTY(Category = ProceduralFoliageSimulation, EditAnywhere, BlueprintReadOnly)
35 float MinimumQuadTreeSize;
36
37 FThreadSafeCounter LastCancel;
38
39private:
41 UPROPERTY(Category = ProceduralFoliageSimulation, EditAnywhere)
42 TArray<FFoliageTypeObject> FoliageTypes;
43
48 UPROPERTY(Category = ProceduralFoliageSimulation, EditAnywhere)
49 bool bUseOverrideFoliageTerrainMaterials = false;
50
52 UPROPERTY(Category = ProceduralFoliageSimulation, EditAnywhere)
53 TArray<TSoftObjectPtr<UMaterialInterface>> OverrideFoliageTerrainMaterials;
54
55public:
56 UFUNCTION(BlueprintCallable, Category = ProceduralFoliageSimulation)
57 FOLIAGE_API void Simulate(int32 NumSteps = -1);
58 FOLIAGE_API void Empty();
59
60 FOLIAGE_API int32 GetRandomNumber();
61
62 const TArray<FFoliageTypeObject>& GetFoliageTypes() const { return FoliageTypes; }
63
64 bool UsesOverrideFoliageTerrainMaterials() const { return bUseOverrideFoliageTerrainMaterials; }
65
66 const TArray<TSoftObjectPtr<UMaterialInterface>>& GetFoliageTerrainMaterials() const { return OverrideFoliageTerrainMaterials; }
67
70
71 FOLIAGE_API virtual void Serialize(FArchive& Ar);
72
74 FOLIAGE_API const UProceduralFoliageTile* GetRandomTile(int32 X, int32 Y);
75
77 FOLIAGE_API UProceduralFoliageTile* CreateTempTile();
78
79private:
80 FOLIAGE_API void CreateProceduralFoliageInstances();
81
82 FOLIAGE_API void SetClean();
83private:
85
87};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define X(Name, Desc)
Definition FormatStringSan.h:47
#define FVector
Definition IOSSystemIncludes.h:8
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition Archive.h:1208
Definition ThreadSafeCounter.h:14
Definition Array.h:670
Definition Object.h:95
Definition ProceduralFoliageSpawner.h:18
const TArray< TSoftObjectPtr< UMaterialInterface > > & GetFoliageTerrainMaterials() const
Definition ProceduralFoliageSpawner.h:66
bool UsesOverrideFoliageTerrainMaterials() const
Definition ProceduralFoliageSpawner.h:64
const TArray< FFoliageTypeObject > & GetFoliageTypes() const
Definition ProceduralFoliageSpawner.h:62
FOLIAGE_API void GetInstancesToSpawn(TArray< FProceduralFoliageInstance > &OutInstances, const FVector &Min=FVector(-FLT_MAX, -FLT_MAX, -FLT_MAX), const FVector &Max=FVector(FLT_MAX, FLT_MAX, FLT_MAX)) const
Definition ProceduralFoliageTile.h:31
Definition RandomStream.h:20