22#include "StaticMeshComponent.generated.h"
32class UStaticMeshComponent;
44#define STATICMESH_ENABLE_DEBUG_RENDERING ENABLE_DRAW_DEBUG
49 struct FMaterialAudit;
107 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category=LOD)
108 int32 ForcedLodModel;
114 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category=LOD, meta=(
editcondition = "bOverrideMinLOD"))
127 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=
StaticMesh, ReplicatedUsing=OnRep_StaticMesh, meta=(AllowPrivateAccess="
true"))
138#if WITH_STATE_STREAM_ACTOR
153 int32 WorldPositionOffsetDisableDistance = 0;
157 uint8 bForceNaniteForMasked : 1;
161 uint8 bDisallowNanite : 1;
165 uint8 bForceDisableNanite : 1;
171 uint8 bEvaluateWorldPositionOffset : 1;
186 uint8 bEvaluateWorldPositionOffsetInRayTracing : 1;
193 uint8 bMipLevelCallbackRegistered : 1;
203#if WITH_EDITORONLY_DATA
232 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=
Rendering, meta=(InlineEditConditionToggle))
236 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category=LOD)
237 uint8 bOverrideMinLOD:1;
241 uint8 bOverrideNavigationExport : 1;
245 uint8 bForceNavigationObstacle : 1;
251#if STATICMESH_ENABLE_DEBUG_RENDERING
263 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadWrite, Category=TextureStreaming)
267 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Lighting, meta=(InlineEditConditionToggle))
268 uint8 bOverrideLightMapRes:1;
275 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category=Lighting, meta=(DisplayName =
"Distance Field Indirect Shadow"))
276 uint8 bCastDistanceFieldIndirectShadow:1;
279 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category=Lighting)
280 uint8 bOverrideDistanceFieldSelfShadowBias:1;
288 uint8 bUseDefaultCollision:1;
290#if WITH_EDITORONLY_DATA
303 uint8 bDisplayNaniteFallbackMesh:1;
315 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category = Lighting, meta = (UIMin =
"0", UIMax =
"1", DisplayName =
"Sort Triangles"))
316 uint8 bSortTriangles : 1;
321 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category=Lighting)
322 uint8 bReverseCulling : 1;
336 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Mesh Painting", meta=(InlineEditConditionToggle))
340 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Mesh Painting", meta=(InlineEditConditionToggle))
352 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=Lighting, meta=(ClampMax = 4096,
editcondition="bOverrideLightMapRes") )
353 int32 OverriddenLightMapRes;
355#if WITH_EDITORONLY_DATA
357 UPROPERTY(VisibleAnywhere, Category =
"Mesh Painting")
381 float DistanceFieldIndirectShadowMinVisibility;
384 UPROPERTY(EditAnywhere, AdvancedDisplay, BlueprintReadOnly, Category=Lighting)
385 float DistanceFieldSelfShadowBias;
394 float StreamingDistanceMultiplier;
398 float NanitePixelProgrammableDistance;
400#if WITH_EDITORONLY_DATA
413#if WITH_EDITORONLY_DATA
424 UPROPERTY(EditAnywhere, Category=Lighting)
430 UFUNCTION(BlueprintCallable, Category=
"Components|StaticMesh")
451 ENGINE_API virtual bool HasValidNaniteData()
const;
456 UFUNCTION(BlueprintCallable, Category=
"Rendering|LOD")
464 ENGINE_API void SetEvaluateWorldPositionOffsetInRayTracing(
bool NewValue);
479 UFUNCTION(BlueprintCallable, Category =
"Rendering|LOD")
485 UFUNCTION(BlueprintCallable, Category=
"Components|StaticMesh")
518 ENGINE_API virtual void PostEditImport()
override;
519 ENGINE_API virtual void InitializeComponent()
override;
520 ENGINE_API virtual void UpdateBounds()
override;
522#if WITH_EDITORONLY_DATA
528 ENGINE_API virtual FString GetDetailedInfoInternal()
const override;
537 ENGINE_API virtual bool HasAnySockets()
const override;
540 ENGINE_API virtual bool DoesSocketExist(
FName InSocketName)
const override;
548 ENGINE_API virtual bool ShouldRenderSelected()
const override;
556 ENGINE_API virtual void OnRegister()
override;
557 ENGINE_API virtual void OnUnregister()
override;
559 ENGINE_API virtual bool RequiresGameThreadEndOfFrameRecreate()
const override;
561 ENGINE_API virtual void OnCreatePhysicsState()
override;
562 ENGINE_API virtual void OnDestroyPhysicsState()
override;
563 ENGINE_API virtual void OnAsyncDestroyPhysicsStateEnd_GameThread()
override;
564 ENGINE_API virtual bool ShouldCreatePhysicsState()
const override;
565 ENGINE_API virtual bool ShouldCreateRenderState()
const override;
566 ENGINE_API virtual bool ShouldIncrementalPreRegister(
UWorld* WorldContext)
const override;
579 ENGINE_API virtual bool AllowsAsyncPhysicsStateCreation()
const override;
580 ENGINE_API virtual bool AllowsAsyncPhysicsStateDestruction()
const override;
581 ENGINE_API virtual void PrecachePSOs()
override;
585 ENGINE_API virtual void CheckForErrors()
override;
586 ENGINE_API virtual bool IsCompiling()
const override;
589 ENGINE_API virtual bool IsHLODRelevant()
const override;
601 ENGINE_API virtual float GetEmissiveBoost(
int32 ElementIndex)
const override;
602 ENGINE_API virtual float GetDiffuseBoost(
int32 ElementIndex)
const override;
603 virtual bool GetShadowIndirectOnly()
const override
605 return LightmassSettings.bShadowIndirectOnly;
608 ENGINE_API virtual bool IsPrecomputedLightingValid()
const override;
611 ENGINE_API virtual float GetTextureStreamingTransformScale()
const;
625 ENGINE_API virtual bool CanEditSimulatePhysics()
override;
627 ENGINE_API virtual bool ShouldRecreateProxyOnUpdateTransform()
const override;
643 ENGINE_API virtual bool IsMaterialSlotNameValid(
FName MaterialSlotName)
const override;
655 virtual float GetStreamingScale()
const override {
return GetComponentTransform().GetMaximumAxisScale(); }
674 ENGINE_API virtual bool IsNavigationRelevant()
const override;
733#if WITH_EDITORONLY_DATA
758 UE_DEPRECATED(5.6,
"Use UPrimitiveComponent::IsFirstPersonRelevant() instead.")
767#if WITH_EDITORONLY_DATA
774#if WITH_EDITORONLY_DATA
794 UE_DEPRECATED(5.7,
"Please use SupportsDitheredLODTransitions with EShaderPlatform argument and not ERHIFeatureLevel::Type")
805 ENGINE_API bool CanMeshPaintTextureColors() const;
809 inline bool IsReverseCulling()
const {
return bReverseCulling; }
810 inline bool IsDisallowNanite()
const {
return bDisallowNanite; }
811 inline bool IsForceDisableNanite()
const {
return bForceDisableNanite; }
812 inline bool IsForceNaniteForMasked()
const {
return bForceNaniteForMasked; }
813 inline int32 GetForcedLodModel()
const {
return ForcedLodModel; }
818#if WITH_EDITORONLY_DATA
819 bool IsDisplayNaniteFallbackMesh()
const {
return bDisplayNaniteFallbackMesh; }
902 ENGINE_API virtual void PropagateLightingScenarioChange()
override;
952 return PaintedVertices.Num() > 0 && VertexBufferColors.Num() > 0;
965 virtual bool ContainsData()
const override;
975 bool ApplyVertexColorData(UStaticMeshComponent* StaticMeshComponent)
const;
993#if WITH_EDITORONLY_DATA
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define GET_MEMBER_NAME_CHECKED(ClassName, MemberName)
Definition AssertionMacros.h:493
virtual bool IsPostLoadThreadSafe() const override
ECacheApplyPhase
Definition ComponentInstanceDataCache.h:18
#define UE_DECLARE_COMPONENT_ACTOR_INTERFACE(name)
Definition ComponentInterfaces.h:193
@ BeginCacheForCookedPlatformData
@ IsCachedCookedPlatformDataLoaded
@ ForceInit
Definition CoreMiscDefines.h:155
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_DELEGATE_RetVal(ReturnValueType, DelegateName)
Definition DelegateCombinations.h:41
#define DECLARE_EVENT_OneParam(OwningType, EventName, Param1Type)
Definition DelegateCombinations.h:51
return true
Definition ExternalRpcRegistry.cpp:601
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
ERelativeTransformSpace
Definition SceneComponent.h:43
@ RTS_World
Definition SceneComponent.h:45
ELightMapInteractionType
Definition SceneTypes.h:111
ETextureStreamingBuildType
Definition TextureStreamingTypes.h:204
Definition Archive.h:1208
CORE_API int32 CustomVer(const struct FGuid &Key) const
Definition Archive.cpp:602
Definition ColorVertexBuffer.h:16
Definition PackedNormal.h:66
Definition FeedbackContext.h:30
Definition InstancedStaticMeshComponentHelper.h:18
Definition LightingBuildOptions.h:14
Definition MapBuildDataRegistry.h:56
Definition NameTypes.h:617
Definition ObjectSaveContext.h:244
Definition OutputDevice.h:133
Definition PrimitiveSceneProxy.h:296
Definition UnrealType.h:174
Definition UObjectGlobals.h:2492
Definition ActorComponent.h:47
Definition StaticMeshComponentHelper.h:23
Definition StaticMeshResources.h:952
Definition StaticMeshLight.h:24
Definition TextureStreamingTypes.h:223
Definition VertexFactory.h:314
Definition HitProxies.h:135
Definition AssetRegistryState.h:50
Definition StructOnScope.h:142
Definition ActorComponent.h:152
Definition ActorTextureStreamingBuildDataComponent.h:43
Definition BodySetup.h:128
Definition MaterialCacheVirtualTexture.h:19
Definition MaterialInterface.h:296
Definition MeshComponent.h:25
virtual void SetMeshPaintTextureOverride(UTexture *OverrideTexture)
Definition MeshComponent.h:197
virtual ENGINE_API void GetUsedMaterials(TArray< UMaterialInterface * > &OutMaterials, bool bGetDebugMaterials=false) const override
Definition MeshComponent.cpp:281
virtual bool PrestreamMeshLODs(float Seconds)
Definition MeshComponent.h:156
virtual UTexture * GetMeshPaintTexture() const
Definition MeshComponent.h:193
virtual ENGINE_API void RegisterLODStreamingCallback(FLODStreamingCallback &&Callback, int32 LODIdx, float TimeoutSecs, bool bOnStreamIn)
Definition MeshComponent.cpp:382
virtual ENGINE_API int32 GetNumMaterials() const override
Definition MeshComponent.cpp:276
virtual void GetDefaultMaterialSlotsOverlayMaterial(TArray< TObjectPtr< UMaterialInterface > > &OutMaterialSlotOverlayMaterials) const
Definition MeshComponent.h:233
virtual bool UseNaniteOverrideMaterials() const
Definition MeshComponent.h:37
virtual void SetMeshPaintTexture(UTexture *Texture)
Definition MeshComponent.h:195
virtual bool GetMaterialStreamingData(int32 MaterialIndex, FPrimitiveMaterialInfo &MaterialData) const
Definition MeshComponent.h:176
virtual int32 GetMeshPaintTextureCoordinateIndex() const
Definition MeshComponent.h:199
Definition NavCollisionBase.h:23
Definition StaticMeshSocket.h:16
Definition StaticMesh.h:593
Definition Texture.h:1219
Type
Definition SceneTypes.h:132
Definition SceneComponent.h:24
Type
Definition RHIFeatureLevel.h:20
Definition RobinHoodHashTable.h:18
Definition FieldSystemNoiseAlgo.cpp:6
Definition SkinnedMeshComponent.h:50
Definition SceneManagement.h:73
ENGINE_API FBox CalcBounds(const FVector &P0, const FVector &P1, const FVector &P2, const FVector &P3)
Definition BezierUtilities.cpp:26
FIntermediate3DTransform GetComponentTransform(const UObject *Object)
Definition MovieSceneTracksCustomAccessors.cpp:18
Definition ConvexVolume.h:44
Definition ShowFlags.h:56
Definition EngineTypes.h:2167
Definition NavigationSystemHelpers.h:25
Definition NavigationRelevantData.h:40
Definition PSOPrecache.h:30
Definition StaticMeshComponent.h:55
friend FArchive & operator<<(FArchive &Ar, FPaintedVertex &PaintedVertex)
Definition StaticMeshComponent.h:73
Definition PrimitiveComponent.h:3164
Definition TextureStreamingTypes.h:188
Definition ComponentInterfaces.h:48
Definition UnrealType.h:6865
CORE_API static const FGuid GUID
Definition RenderingObjectVersion.h:148
@ IncreaseNormalPrecision
Definition RenderingObjectVersion.h:76
Definition StaticLighting.h:506
Definition StaticMeshComponent.h:958
virtual ~FStaticMeshComponentInstanceData()=default
FStaticMeshComponentInstanceData()=default
Definition StaticMeshComponentLODInfo.h:14
Definition StaticMeshStateStreamHandle.h:15
Definition StaticMeshResources.h:426
Definition StaticMeshComponent.h:934
Definition TextureStreamingTypes.h:129
Definition NaniteSceneProxy.h:66
Definition NaniteResources.h:410
Definition ObjectPtr.h:488
Definition BoxSphereBounds.h:25