Navigation
Unreal Engine C++ API Reference > Runtime > Chaos > Chaos
References
Module | Chaos |
Header | /Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/PBDRigidClustering.h |
Include | #include "Chaos/PBDRigidClustering.h" |
Syntax
class FRigidClustering
Constructors
Type | Name | Description | |
---|---|---|---|
![]() |
FRigidClustering
(
FRigidEvolution& InEvolution, |
Destructors
Type | Name | Description | |
---|---|---|---|
![]() |
Functions
Type | Name | Description | |
---|---|---|---|
![]() |
void | AddParticlesToCluster
(
FPBDRigidClusteredParticleHandle* Cluster, |
Manually add a set of particles to a cluster after the cluster has already been created. |
![]() |
void | AdvanceClustering
(
const FReal dt, |
Operational AdvanceClustering Advance the cluster forward in time; ... |
![]() |
void | ||
![]() |
bool | BreakCluster
(
FPBDRigidClusteredParticleHandle* ClusteredParticle |
BreakCluster Breaks a cluster (internal or not) by applying max external strain to all its children |
![]() |
bool | BreakClustersByProxy
(
const IPhysicsProxyBase* Proxy |
BreakClustersByProxy Breaks clusters (internal or not) own by a specific proxy by applying max external strain to all its children |
![]() |
void | BreakingModel
(
TArray< FPBDRigidClusteredParticleHandle* >& InParticles |
BreakingModel Implements the promotion breaking model, where strain impulses are summed onto the cluster body, and released if greater than the encoded strain. |
![]() |
void | BreakingModel Implements the promotion breaking model, where strain impulses are summed onto the cluster body, and released if greater than the encoded strain. | |
![]() |
void | CleanupInternalClustersForProxies
(
TArrayView< IPhysicsProxyBase* > Proxies |
CleanupInternalClustersForProxies For a given set of physics proxies, cleanup any tracked internal clusters that we've marked as being empty. |
![]() |
void | ClearConnectionGraph
(
FPBDRigidClusteredParticleHandle* Parent |
|
![]() |
void | ComputeStrainFromCollision
(
const FPBDCollisionConstraints& CollisionRule, |
|
![]() |
Chaos::FPBDRigidClusteredParticleHandle * | CreateClusterParticle
(
const int32 ClusterGroupIndex, |
Initialization Initialize a cluster with the specified children. |
![]() |
Chaos::FPBDRigidClusteredParticleHandle * | CreateClusterParticleFromClusterChildren
(
TArray< FPBDRigidParticleHandle* >&& Children, |
CreateClusterParticleFromClusterChildren Children : Rigid body ID to include in the cluster. |
![]() |
TArray< FPBDRigidParticleHandle * > | CreateClustersFromNewIslands
(
TArray< FParticleIsland >& Islands, |
|
![]() |
void | CreateNodeConnection
(
ParticleHandleTypeA* A, |
|
![]() |
void | ||
![]() |
TSet< FPBDRigidParticleHandle * > | DeactivateClusterParticle
(
FPBDRigidClusteredParticleHandle* ClusteredParticle |
Releasing DeactivateClusterParticle Release all the particles within the cluster particle |
![]() |
FPBDRigidClusteredParticleHandle * | DestroyClusterParticle
(
FPBDRigidClusteredParticleHandle* ClusteredParticle, |
DestroyClusterParticle Disable the cluster particle and remove from all internal clustering structures. |
![]() |
void | DisableCluster
(
FPBDRigidClusteredParticleHandle* ClusteredParticle |
|
![]() ![]() |
TArray< FPBDRigidParticleHandle * > | FindChildrenWithinRadius
(
const FPBDRigidClusteredParticleHandle* ClusteredParticle, |
FindChildrenWithinRadius Find the children of an active cluster from a world position and a radius current implementation will pick the closest based on the distance from the center future implementation may expose option for more precise queries if bAlwaysReturnClosest is checked this will always return the closest from the location even if the radius does not encompass any center of mass |
![]() ![]() |
FPBDRigidParticleHandle * | FindClosestChild
(
const FPBDRigidClusteredParticleHandle* ClusteredParticle, |
FindClosestChild Find the closest child of an active cluster from a world position current implementation will pick the closest based on the distance from the center future implementation may expose option for more precise queries |
![]() ![]() |
FPBDRigidParticleHandle * | FindClosestParticle
(
const TArray< FPBDRigidParticleHandle* >& Particles, |
FindClosest Find the closest particle from an array of particle current implementation will pick the closest based on the distance from the center future implementation may expose option for more precise queries |
![]() |
TArray< FParticleIsland > | FindIslandsInChildren
(
const FPBDRigidClusteredParticleHandle* ClusteredParticle, |
|
![]() ![]() |
TArray< FPBDRigidParticleHandle * > | FindParticlesWithinRadius
(
const TArray< FPBDRigidParticleHandle* >& Particles, |
FindParticlesWithinRadius Find the closest particle from an array of particle from a world position and a radius current implementation will pick the closest based on the distance from the center future implementation may expose option for more precise queries if bAlwaysReturnClosest is checked this will always return the closest from the location even if the radius does not encompass any center of mass |
![]() |
void | FixConnectivityGraphUsingDelaunayTriangulation
(
const TArray< FPBDRigidParticleHandle* >& Particles, |
|
![]() |
void | FixConnectivityGraphUsingDelaunayTriangulation
(
Chaos::FPBDRigidClusteredParticleHandle* Parent, |
|
![]() |
void | ForceReleaseChildParticleAndParents
(
FPBDRigidClusteredParticleHandle* ChildClusteredParticle, |
Force Release a particle at any level by making sure their parent particles are also release if necessary this will force all particles including the ones in the parent chain to be made breakable |
![]() |
void | GenerateConnectionGraph
(
TArray< FPBDRigidParticleHandle* > Particles, |
|
![]() |
void | GenerateConnectionGraph
(
Chaos::FPBDRigidClusteredParticleHandle* Parent, |
|
![]() |
FPBDRigidParticleHandle * | GetActiveClusterIndex
(
FPBDRigidParticleHandle* Child |
GetActiveClusterIndex Get the current childs active cluster. |
![]() ![]() |
const TArray< FBreakingData > & | Cluster Break Data The cluster breaks can be used to seed particle emissions. | |
![]() ![]() |
const TArray< FCrumblingData > & | Cluster crumbling Data triggered when all the children of a cluster are released all at once event is generated only if the owning proxy allows it | |
![]() ![]() |
const FClusterMap & | ||
![]() |
FClusterMap & | GetParentToChildren The parent to children map stores the currently active cluster ids (Particle Indices) as the keys of the map. | |
![]() ![]() |
const TArrayCollectionArray< FRigidTransform3 > & | GetChildToParentMap This map stores the relative transform from a child to its cluster parent. | |
![]() |
TArrayCollectionArray< int32 > & | GetClusterGroupIndexArray The group index is used to automatically bind disjoint clusters. | |
![]() ![]() |
const TArrayCollectionArray< ClusterId > & | ||
![]() |
TArrayCollectionArray< ClusterId > & | GetClusterIdsArray The cluster ids provide a mapping from the rigid body index to its parent cluster id. | |
![]() ![]() |
FClusterCreationParameters::EConnectionMethod | ||
![]() ![]() |
const FClusterUnionManager & | ||
![]() |
FClusterUnionManager & | ||
![]() ![]() |
const TArrayCollectionArray< TArray< TConnectivityEdge< FReal > > > & | GetConnectivityEdges Provides a list of each rigid body's current siblings and associated strain within the cluster. | |
![]() ![]() |
bool | ||
![]() |
FRigidEvolution & | GetEvolution () |
|
![]() ![]() |
const FRigidEvolution & | GetEvolution () |
|
![]() ![]() |
const TArrayCollectionArray< FRigidClusteredFlags > & | GetRigidClusteredFlagsArray The RigidClusteredFlags array contains various flag related to clustered particles | |
![]() ![]() |
const TArrayCollectionArray< FRealSingle > & | ||
![]() |
TArrayCollectionArray< FRealSingle > & | GetStrainArray The strain array is used to store the maximum strain allowed for a individual body in the simulation. | |
![]() |
TSet< Chaos::FPBDRigidClusteredParticleHandle * > & | ||
![]() ![]() |
const TSet< Chaos::FPBDRigidClusteredParticleHandle * > & | ||
![]() ![]() |
const TSet< Chaos::FPBDRigidClusteredParticleHandle * > & | ||
![]() |
TSet< FPBDRigidParticleHandle * > | HandleConnectivityOnReleaseClusterParticle
(
FPBDRigidClusteredParticleHandle* ClusteredParticle, |
Handles leveraging the connectivity edges on the children of the clustered particle to produce the desired effects. |
![]() |
TSet< FPBDRigidParticleHandle * > | ReleaseClusterParticles
(
FPBDRigidClusteredParticleHandle* ClusteredParticle, |
ReleaseClusterParticles (BasedOnStrain) Release clusters based on the passed in ExternalStrainArray_, or the particle handle's current CollisionImpulses()_ value. |
![]() |
TSet< FPBDRigidParticleHandle * > | ReleaseClusterParticles
(
TArray< FPBDRigidParticleHandle* > ChildrenParticles, |
ReleaseClusterParticles Release all rigid body IDs passed, |
![]() |
TSet< FPBDRigidParticleHandle * > | ReleaseClusterParticlesImpl
(
FPBDRigidClusteredParticleHandle* ClusteredParticle, |
|
![]() |
TSet< FPBDRigidParticleHandle * > | ReleaseClusterParticlesNoInternalCluster
(
FPBDRigidClusteredParticleHandle* ClusteredParticle, |
|
![]() |
void | RemoveChildFromParent
(
FPBDRigidParticleHandle* Child, |
|
![]() |
void | RemoveChildFromParentAndChildrenArray
(
FPBDRigidParticleHandle* Child, |
|
![]() |
void | RemoveNodeConnections
(
FPBDRigidParticleHandle* Child |
Remove connectivity edges for specified particles. |
![]() |
void | Remove connectivity edges for specified particles. | |
![]() |
void | RemoveParticlesFromCluster
(
FPBDRigidClusteredParticleHandle* Cluster, |
Manually remove a set of particles from the cluster. |
![]() |
void | ||
![]() |
void | ||
![]() |
void | Reset all events ( this include breaking, crumbling event and tracking data | |
![]() |
void | ||
![]() |
void | Restore some percentage of momenta for objects which were involved in collisions with destroyed GCs | |
![]() |
void | SendBreakingEvent
(
FPBDRigidClusteredParticleHandle* ClusteredParticle, |
|
![]() |
void | SendCrumblingEvent
(
FPBDRigidClusteredParticleHandle* ClusteredParticle |
|
![]() |
void | SetClusterConnectionFactor
(
FReal ClusterConnectionFactorIn |
GenerateConnectionGraph Creates a connection graph for the given index using the creation parameters. |
![]() |
void | SetClusterUnionConnectionType
(
FClusterCreationParameters::EConnectionMethod ClusterConnectionType |
|
![]() |
void | SetExternalStrain
(
FPBDRigidClusteredParticleHandle* Particle, |
|
![]() |
void | SetGenerateClusterBreaking
(
bool DoGenerate |
|
![]() |
void | SetInternalStrain
(
FPBDRigidClusteredParticleHandle* Particle, |
|
![]() ![]() |
bool | ||
![]() |
void | TrackBreakingCollision
(
FPBDRigidClusteredParticleHandle* ClusteredParticle |
When a body has broken due to contact resolution, record an entry in a set for the collision and the particle who's momentum should be restored. |
![]() |
void | UnionClusterGroups Clusters that share a group index should be unioned into a single cluster prior to simulation. | |
![]() |
void | UpdateClusterParticlePropertiesFromChildren
(
FPBDRigidClusteredParticleHandle* Cluster, |
This function is a bit more versatile than the name suggests. |
![]() |
void | UpdateConnectivityGraphUsingDelaunayTriangulation
(
const Chaos::FPBDRigidClusteredParticleHandle* Parent, |
|
![]() |
void | UpdateConnectivityGraphUsingDelaunayTriangulation
(
const TArray< FPBDRigidParticleHandle* >& Particles, |
|
![]() |
void | UpdateConnectivityGraphUsingDelaunayTriangulationWithBoundsOverlaps
(
const TArray< FPBDRigidParticleHandle* >& Particles, |
|
![]() |
void | UpdateConnectivityGraphUsingDelaunayTriangulationWithBoundsOverlaps
(
const Chaos::FPBDRigidClusteredParticleHandle* Parent, |
|
![]() |
void | UpdateConnectivityGraphUsingPointImplicit
(
const TArray< FPBDRigidParticleHandle* >& Particles, |
Connectivity |
![]() |
void | UpdateConnectivityGraphUsingPointImplicit
(
Chaos::FPBDRigidClusteredParticleHandle* Parent, |
|
![]() |
void | UpdateTopLevelParticle
(
FPBDRigidClusteredParticleHandle* Particle |
|
![]() |
void | Visitor
(
FClusterHandle Cluster, |
Access |