584 friend class FGeometryCollectionCommands;
603 UE_DEPRECATED(5.6,
"Render state dirty state is now based on the geometry collection change events")
679 UE_DEPRECATED(5.7,
"Please use GetMaterialRelevance with EShaderPlatform argument and not ERHIFeatureLevel::Type")
685 UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintGetter=GetSolverActor, BlueprintSetter=SetSolverActor, Category = "
ChaosPhysics", meta = (DisplayName = "
Chaos Solver"))
694 FBox GetLocalBounds()
const {
return ComponentSpaceBounds; }
705 UFUNCTION(BlueprintCallable, Category =
"ChaosPhysics")
819 bool IsRootBroken()
const {
return BrokenAndDecayedStates.GetIsRootBroken(); }
825 UFUNCTION(BlueprintCallable, Category =
"ChaosPhysics")
879 UFUNCTION(BlueprintCallable, Category =
"ChaosPhysics")
908#define COPY_ON_WRITE_ATTRIBUTES \
910 COPY_ON_WRITE_ATTRIBUTE(FVector3f, Vertex, FGeometryCollection::VerticesGroup) \
911 COPY_ON_WRITE_ATTRIBUTE(FLinearColor, Color, FGeometryCollection::VerticesGroup) \
912 COPY_ON_WRITE_ATTRIBUTE(FVector3f, TangentU, FGeometryCollection::VerticesGroup) \
913 COPY_ON_WRITE_ATTRIBUTE(FVector3f, TangentV, FGeometryCollection::VerticesGroup) \
914 COPY_ON_WRITE_ATTRIBUTE(FVector3f, Normal, FGeometryCollection::VerticesGroup) \
915 COPY_ON_WRITE_ATTRIBUTE(int32, BoneMap, FGeometryCollection::VerticesGroup) \
918 COPY_ON_WRITE_ATTRIBUTE(FIntVector, Indices, FGeometryCollection::FacesGroup) \
919 COPY_ON_WRITE_ATTRIBUTE(bool, Visible, FGeometryCollection::FacesGroup) \
920 COPY_ON_WRITE_ATTRIBUTE(int32, MaterialIndex, FGeometryCollection::FacesGroup) \
921 COPY_ON_WRITE_ATTRIBUTE(int32, MaterialID, FGeometryCollection::FacesGroup) \
922 COPY_ON_WRITE_ATTRIBUTE(bool, Internal, FGeometryCollection::FacesGroup) \
925 COPY_ON_WRITE_ATTRIBUTE(int32, TransformIndex, FGeometryCollection::GeometryGroup) \
926 COPY_ON_WRITE_ATTRIBUTE(FBox, BoundingBox, FGeometryCollection::GeometryGroup) \
927 COPY_ON_WRITE_ATTRIBUTE(float, InnerRadius, FGeometryCollection::GeometryGroup) \
928 COPY_ON_WRITE_ATTRIBUTE(float, OuterRadius, FGeometryCollection::GeometryGroup) \
929 COPY_ON_WRITE_ATTRIBUTE(int32, VertexStart, FGeometryCollection::GeometryGroup) \
930 COPY_ON_WRITE_ATTRIBUTE(int32, VertexCount, FGeometryCollection::GeometryGroup) \
931 COPY_ON_WRITE_ATTRIBUTE(int32, FaceStart, FGeometryCollection::GeometryGroup) \
932 COPY_ON_WRITE_ATTRIBUTE(int32, FaceCount, FGeometryCollection::GeometryGroup) \
935 COPY_ON_WRITE_ATTRIBUTE(FGeometryCollectionSection, Sections, FGeometryCollection::MaterialGroup) \
938 COPY_ON_WRITE_ATTRIBUTE(FString, BoneName, FTransformCollection::TransformGroup) \
939 COPY_ON_WRITE_ATTRIBUTE(FLinearColor, BoneColor, FTransformCollection::TransformGroup) \
940 COPY_ON_WRITE_ATTRIBUTE(int32, TransformToGeometryIndex, FTransformCollection::TransformGroup) \
941 COPY_ON_WRITE_ATTRIBUTE(int32, ExemplarIndex, FTransformCollection::TransformGroup) \
949 UPROPERTY(EditAnywhere, NoClear, BlueprintReadOnly, Category =
"ChaosPhysics")
953 UFUNCTION(BlueprintCallable, CallInEditor, Category = "
ChaosPhysics", meta = (EditCondition = "RestCollection !=
nullptr"))
960 bool Simulating_DEPRECATED;
971 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
979 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
984 bool bDensityFromPhysicsMaterial;
986 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
991 bool bForceMotionBlur;
994 bool EnableClustering;
1015 UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintSetter = SetDamageModel, Category = "
ChaosPhysics|Damage")
1018 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
1024 UFUNCTION(BlueprintPure, BlueprintInternalUseOnly)
1025 TArray<
float> GetDamageThreshold()
const {
return DamageThreshold; }
1027 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
1031 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
"ChaosPhysics|Damage", meta = (EditCondition =
"DamageModel == EDamageModelTypeEnum::Chaos_Damage_Model_UserDefined_Damage_Threshold"))
1032 bool bUseSizeSpecificDamageThreshold;
1036 bool bUseMaterialDamageModifiers;
1038 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
1042 UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintSetter = SetDamagePropagationData, Category = "
ChaosPhysics|Damage")
1045 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
1049 UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintSetter=SetEnableDamageFromCollision, Category = "
ChaosPhysics|Damage")
1050 bool bEnableDamageFromCollision;
1054 bool bAllowRemovalOnSleep;
1058 bool bAllowRemovalOnBreak;
1062 bool bForceUpdateActiveTransforms;
1074 float CollisionSampleFraction;
1077 UPROPERTY(meta = (DeprecatedProperty, DeprecationMessage = "Use PhysicalMaterial
instead."))
1078 float LinearEtherDrag_DEPRECATED;
1153 bool GetIsObjectLoading() {
return IsObjectLoading; }
1168 UE_DEPRECATED(5.5,
"Bone Selected Material does not have a material ID anymore.")
1169 const
int GetBoneSelectedMaterialID()
const
1174#if WITH_EDITORONLY_DATA
1185#if GEOMETRYCOLLECTION_EDITOR_SELECTION
1191#if UE_ENABLE_DEBUG_DRAWING
1201 const
TArray<
bool>& GetDisabledFlags()
const {
return DisabledFlags; }
1219 UFUNCTION(BlueprintCallable, Category =
"Physics")
1252 UPROPERTY(BlueprintAssignable, Category =
"Chaos")
1277 float DesiredCacheTime;
1303#if WITH_EDITORONLY_DATA
1323 UE_DEPRECATED(5.3,
"Use GetComponentSpaceTransforms instead")
1324 TArray<
FMatrix> GetGlobalMatrices() {
return ComputeGlobalMatricesFromComponentSpaceTransforms(); }
1326 UE_DEPRECATED(5.4,
"Use GetComponentSpaceTransforms3f instead")
1339 UFUNCTION(BlueprintPure, BlueprintInternalUseOnly, Category =
"Physics")
1340 bool GetUseStaticMeshCollisionForTraces()
const {
return bUseStaticMeshCollisionForTraces; }
1343 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly, Category =
"Physics")
1350 UFUNCTION(BlueprintCallable, Category =
"Physics")
1353 bool IsForceBrokenForCustomRenderer()
const {
return bForceBrokenForCustomRenderer; }
1363 UFUNCTION(BlueprintCallable, Category =
"Physics")
1384 void SetUpdateCustomRendererOnPostPhysicsSync(
bool bValue) { bUpdateCustomRendererOnPostPhysicsSync = bValue; }
1387 UE_DEPRECATED(5.5,
"SetUpdateCustomRenderer() shouldn't be called")
1388 void SetUpdateCustomRenderer(
bool bValue) {}
1390 UE_DEPRECATED(5.5,
"Please use ForceBrokenForCustomRenderer() instead")
1391 UFUNCTION(BlueprintCallable, Category = "
Physics", meta = (DeprecatedFunction, DeprecationMessage = "Please use ForceBrokenForCustomRenderer()
instead"))
1405 UPROPERTY(BlueprintAssignable, Category =
"Collision")
1420 bool bNotifyCollisions;
1424 bool bNotifyTrailing;
1428 bool bNotifyRemovals;
1432 bool bNotifyCrumblings;
1435 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "
ChaosPhysics|Events", meta = (EditCondition = "bNotifyCrumblings"))
1436 bool bCrumblingEventIncludesChildren;
1440 bool bNotifyGlobalBreaks;
1444 bool bNotifyGlobalCollisions;
1448 bool bNotifyGlobalRemovals;
1452 bool bNotifyGlobalCrumblings;
1455 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "
ChaosPhysics|Events|
Global", meta = (EditCondition = "bNotifyGlobalCrumblings"))
1456 bool bGlobalCrumblingEventIncludesChildren;
1461 bool bStoreVelocities;
1464 bool bIsCurrentlyNavigationRelevant =
true;
1469 bool bShowBoneColors;
1477 bool bUpdateComponentTransformToRootBone;
1479 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
Collision, AdvancedDisplay, config)
1480 bool bUseRootProxyForNavigation;
1482 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category =
Collision, AdvancedDisplay, config)
1483 bool bUpdateNavigationInTick;
1485#if WITH_EDITORONLY_DATA
1486 UPROPERTY(EditAnywhere, Category =
"ChaosPhysics|General")
1513 bool bEnableAbandonAfterLevel;
1519 UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintSetter= SetAbandonedParticleCollisionProfileName, Category =
Network)
1536 bool bAutoAssignISMPool_DEPRECATED =
false;
1538 void CheckFullyDecayed();
1542 UPROPERTY(EditAnywhere, BlueprintGetter="GetUseStaticMeshCollisionForTraces", BlueprintSetter="SetUseStaticMeshCollisionForTraces", Category = "
Physics")
1543 bool bUseStaticMeshCollisionForTraces =
false;
1552 int32 ReplicationAbandonClusterLevel_DEPRECATED;
1576 void CalculateLocalBounds() {};
1578 UE_DEPRECATED(5.3,
"Use ComputeBoundsFromComponentSpaceTransforms instead")
1600 UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintSetter=SetPerLevelCollisionProfileNames, Category=
Physics)
1623 int32 ReplicationMaxPositionAndVelocityCorrectionLevel;
1625 UPROPERTY(ReplicatedUsing=OnRep_RepData)
1628 UPROPERTY(ReplicatedUsing = OnRep_RepStateData)
1631 UPROPERTY(ReplicatedUsing = OnRep_RepDynamicData)
1665 void ProcessRepDataOnPT();
1666 void ProcessRepStateDataOnPT();
1667 void ProcessRepDynamicDataOnPT();
1668 void InitializeRemovalDynamicAttributesIfNeeded();
1669 void SendDynamicDataToSceneProxy();
1673 void RestTransformsChanged();
1680 uint8 bInitializedRemovalDynamicAttribute : 1;
1681 uint8 bEnableBoneSelection : 1;
1682 uint8 IsObjectDynamic : 1;
1683 uint8 IsObjectLoading : 1;
1687 uint32 NavmeshInvalidationTimeSliceIndex;
1691 float CurrentCacheTime;
1694#if WITH_EDITORONLY_DATA
1705 struct FComponentSpaceTransforms
1725 bIsRootDirty =
true;
1729 int32 Num()
const {
return Transforms.Num(); }
1742 mutable uint8 bIsRootDirty : 1;
1743 mutable uint8 bIsDirty : 1;
1748 FComponentSpaceTransforms ComponentSpaceTransforms;
1751 mutable FBox RootSpaceBounds;
1757 mutable FBox ComponentSpaceBounds;
1768#if WITH_EDITORONLY_DATA
1780#if GEOMETRYCOLLECTION_EDITOR_SELECTION
1788#if WITH_EDITORONLY_DATA
1801 void InitializeCustomRenderer();
1818 UFUNCTION(BlueprintPure, BlueprintInternalUseOnly)
1822 UFUNCTION(BlueprintCallable, BlueprintInternalUseOnly)
1849 float ComputeMassScaleRelativeToAsset()
const;
1851 void MoveComponentToRootTransform();
1854 void OnTransformsDirty();
1859 double LastHardsnapTimeInMs = 0;
1862 int32 OneOffActivatedProcessed = 0;
1866 UPROPERTY(meta=(DeprecatedProperty, DeprecationMessage=
"Use PhysicalMaterial instead."))
1870 struct FBrokenAndDecayedStates
1875 bool GetIsRootBroken()
const {
return bIsRootBroken; }
1876 bool GetIsBroken(
int32 TransformIndex)
const;
1877 bool GetHasDecayed(
int32 TransformIndex)
const;
1878 double GetRootBrokenEventTimeInMs()
const;
1881 void SetRootIsBroken(
bool bIsBroken);
1882 void SetIsBroken(
int32 TransformIndex);
1883 void SetHasDecayed(
int32 TransformIndex);
1887 bool HasAnyDecaying()
const;
1889 bool HasFullyDecayed()
const;
1893 bool bIsRootBroken =
false;
1894 double RootBrokenEventTimeInMs = 0;
1897 int32 NumDecaying = 0;
1900 FBrokenAndDecayedStates BrokenAndDecayedStates;
1902 void UpdateBrokenAndDecayedStates();
1904 bool ShouldCreateRootProxyComponents()
const;
1910 enum class ENetAwakeningMode
1917 void FlushNetDormancyIfNeeded()
const;
1919 ENetAwakeningMode GetDesiredNetAwakeningMode()
const;