29 lines
1.3 KiB
C++
29 lines
1.3 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Components/HierarchicalInstancedStaticMeshComponent.h"
|
|
#include "GrassInstancedStaticMeshComponent.generated.h"
|
|
|
|
UCLASS(ClassGroup = Foliage, MinimalAPI, Hidden)
|
|
class UGrassInstancedStaticMeshComponent : public UHierarchicalInstancedStaticMeshComponent
|
|
{
|
|
GENERATED_UCLASS_BODY()
|
|
|
|
public:
|
|
static FOLIAGE_API void BuildTreeAnyThread(TArray<FMatrix>& InstanceTransforms, TArray<float>& InstanceCustomDataFloats, int32 NumCustomDataFloats, const FBox& MeshBox, TArray<FClusterNode>& OutClusterTree, TArray<int32>& OutSortedInstances, TArray<int32>& OutInstanceReorderTable, int32& OutOcclusionLayerNum, int32 MaxInstancesPerLeaf, bool InGenerateInstanceScalingRange);
|
|
|
|
FOLIAGE_API void AcceptPrebuiltTree(TArray<FClusterNode>& InClusterTree, int32 InOcclusionLayerNumNodes, int32 InNumBuiltRenderInstances, FStaticMeshInstanceData* InSharedInstanceBufferData);
|
|
|
|
FOLIAGE_API bool SupportsWorldPositionOffsetVelocity() const override;
|
|
|
|
int32 GetNumRenderInstances() const override { return NumBuiltRenderInstances; }
|
|
|
|
private:
|
|
virtual void BuildTree() override final;
|
|
virtual void BuildTreeAsync() override final;
|
|
virtual void BuildComponentInstanceData(ERHIFeatureLevel::Type FeatureLevel, FInstanceUpdateComponentDesc& OutData) override final;
|
|
};
|
|
|