130 int32 TransformIndex = 0;
134 BBoxes[TransformIndex] =
Sphere->BoundingBox().TransformedAABB(
Xf);
143 BBoxes[TransformIndex] =
Box->BoundingBox().TransformedAABB(
Xf);
161 BBoxes[TransformIndex] = TaperedCylinder->BoundingBox().TransformedAABB(
Xf);
163 MP.
Volume = TaperedCylinder->GetVolume();
164 MP.
CenterOfMass =
Xf.TransformPositionNoScale(TaperedCylinder->GetCenterOfMass());
165 MP.
RotationOfMass =
Xf.TransformRotation(TaperedCylinder->GetRotationOfMass());
170 BBoxes[TransformIndex] =
Convex->BoundingBox().TransformedAABB(
Xf);
179 BBoxes[TransformIndex] = LevelSet->BoundingBox().TransformedAABB(
Xf);
181 MP.
Volume = LevelSet->BoundingBox().GetVolume();
182 MP.
CenterOfMass =
Xf.TransformPositionNoScale(LevelSet->BoundingBox().Center());
183 MP.
RotationOfMass =
Xf.TransformRotation(LevelSet->BoundingBox().GetRotationOfMass());
278 int32 TransformIndex = 0;
291 Points =
Box->ComputeSamplePoints();
357 for (TransformIndex = 0; TransformIndex <
Num; TransformIndex++)
440 for (
int i = 0; i <
Num; i++)
480 template<
class TImplicitShape>
514 int32 TransformIndex = 0;
579 Boxes[Idx] =
nullptr;
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EObjectStateTypeEnum
Definition GeometryCollectionSimulationTypes.h:34
UE::Math::TVector< double > FVector3d
Definition MathFwd.h:60
#define UE_KINDA_SMALL_NUMBER
Definition UnrealMathUtility.h:131
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition ImplicitObjectUnion.h:27
Definition ImplicitObject.h:111
Definition TaperedCylinder.h:13
FORCEINLINE T GetVolume() const
Definition AABB.h:613
FORCEINLINE TAABB< T, d > GetIntersection(const TAABB< T, d > &Other) const
Definition AABB.h:122
Definition AnalyticImplicitGroup.h:24
const int32 GetParentBoneIndex() const
Definition AnalyticImplicitGroup.h:91
const FAnalyticImplicitGroup * GetParent() const
Definition AnalyticImplicitGroup.h:469
int32 Add(const FTransform &InitialXf, Chaos::FLevelSet *LevelSet)
Definition AnalyticImplicitGroup.h:104
TArray< Chaos::FSphere * > Spheres
Definition AnalyticImplicitGroup.h:631
void ClearHierarchy()
Definition AnalyticImplicitGroup.h:477
TArray< FTransform > Transforms
Definition AnalyticImplicitGroup.h:647
int32 Add(const FTransform &InitialXf, Chaos::FSphere *Sphere)
Definition AnalyticImplicitGroup.h:99
FName BoneName
Definition AnalyticImplicitGroup.h:623
int32 NumStructures() const
Definition AnalyticImplicitGroup.h:83
int32 Add(const FTransform &InitialXf, Chaos::TBox< Chaos::FReal, 3 > *Box)
Definition AnalyticImplicitGroup.h:100
TArray< Chaos::FTaperedCylinder * > TaperedCylinders
Definition AnalyticImplicitGroup.h:637
TArray< Chaos::FLevelSet * > LevelSets
Definition AnalyticImplicitGroup.h:641
TArray< Chaos::FConvex * > ConvexHulls
Definition AnalyticImplicitGroup.h:639
int32 Add(const FTransform &InitialXf, Chaos::FConvex *ConvexHull)
Definition AnalyticImplicitGroup.h:103
const FName & GetBoneName() const
Definition AnalyticImplicitGroup.h:87
void AddChild(FAnalyticImplicitGroup *Child)
Definition AnalyticImplicitGroup.h:472
int32 BoneIndex
Definition AnalyticImplicitGroup.h:624
int32 ParentBoneIndex
Definition AnalyticImplicitGroup.h:625
EObjectStateTypeEnum GetRigidBodyState() const
Definition AnalyticImplicitGroup.h:97
void CullDeepPoints(TArray< Chaos::FVec3 > &Points, const TImplicitShape &Shape, const FTransform &Xf)
Definition AnalyticImplicitGroup.h:481
int32 GetRigidBodyId() const
Definition AnalyticImplicitGroup.h:94
void SetParentBoneIndex(const int32 InParentBoneIndex)
Definition AnalyticImplicitGroup.h:90
FAnalyticImplicitGroup(const FName &InBoneName, const int32 InBoneIndex)
Definition AnalyticImplicitGroup.h:34
bool IsValid()
Definition AnalyticImplicitGroup.h:85
FAnalyticImplicitGroup()
Definition AnalyticImplicitGroup.h:26
TArray< Chaos::FCapsule * > Capsules
Definition AnalyticImplicitGroup.h:635
FAnalyticImplicitGroup(const FAnalyticImplicitGroup &)=delete
TArray< Chaos::TVec3< int32 > > BuildSampleTopology() const
Definition AnalyticImplicitGroup.h:380
TArray< Chaos::FVec3 > * BuildSamplePoints(const Chaos::FReal ParticlesPerUnitArea, const int32 MinParticles, const int32 MaxParticles)
Definition AnalyticImplicitGroup.h:261
void ResetTransforms()
Definition AnalyticImplicitGroup.h:113
void CullDeepPoints(TArray< Chaos::FVec3 > &Points, const int32 SkipIndex)
Definition AnalyticImplicitGroup.h:512
TArray< Chaos::FVec3 > ContiguousCollisionPoints
Definition AnalyticImplicitGroup.h:643
void Init(const int32 NumStructures, const bool DoCollGeom=true)
Definition AnalyticImplicitGroup.h:72
void SetCollisionTopology(const int32 Index, TArray< Chaos::FVec3 > &&Points, TArray< Chaos::TVec3< int32 > > &&Triangles)
Definition AnalyticImplicitGroup.h:106
TArray< FAnalyticImplicitGroup * > Children
Definition AnalyticImplicitGroup.h:651
int32 RigidBodyId
Definition AnalyticImplicitGroup.h:627
int32 Add(const FTransform &InitialXf, Chaos::FCapsule *Capsule)
Definition AnalyticImplicitGroup.h:101
TArray< TArray< Chaos::FVec3 > > CollisionPoints
Definition AnalyticImplicitGroup.h:644
Chaos::FImplicitObject * BuildSimImplicitObject()
Definition AnalyticImplicitGroup.h:408
FTransform RefBoneXf
Definition AnalyticImplicitGroup.h:648
EObjectStateTypeEnum RigidBodyState
Definition AnalyticImplicitGroup.h:628
int32 Add(const FTransform &InitialXf, Chaos::FTaperedCylinder *TaperedCylinder)
Definition AnalyticImplicitGroup.h:102
const TArray< FTransform > & GetInitialStructureTransforms() const
Definition AnalyticImplicitGroup.h:112
FAnalyticImplicitGroup(FAnalyticImplicitGroup &&Other)
Definition AnalyticImplicitGroup.h:43
FAnalyticImplicitGroup * Parent
Definition AnalyticImplicitGroup.h:650
~FAnalyticImplicitGroup()
Definition AnalyticImplicitGroup.h:62
Chaos::FImplicitObject * TransferImplicitObj(int32 Idx)
Definition AnalyticImplicitGroup.h:565
void SetParent(FAnalyticImplicitGroup *InParent)
Definition AnalyticImplicitGroup.h:467
TArray< TArray< Chaos::TVec3< int32 > > > CollisionTriangles
Definition AnalyticImplicitGroup.h:645
void SetRigidBodyId(const int32 InRigidBodyId)
Definition AnalyticImplicitGroup.h:93
TArray< Chaos::TBox< Chaos::FReal, 3 > * > Boxes
Definition AnalyticImplicitGroup.h:633
const int32 GetBoneIndex() const
Definition AnalyticImplicitGroup.h:88
Chaos::FMassProperties BuildMassProperties(const Chaos::FReal Density, Chaos::FReal &TotalMass)
Definition AnalyticImplicitGroup.h:115
void SetRigidBodyState(const EObjectStateTypeEnum State)
Definition AnalyticImplicitGroup.h:96
const TArray< FAnalyticImplicitGroup * > & GetChildren() const
Definition AnalyticImplicitGroup.h:474
Definition BoneHierarchy.h:18
Definition NameTypes.h:617
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void RemoveAt(SizeType Index, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2083
void Reset(SizeType NewSize=0)
Definition Array.h:2246
bool Contains(const ComparisonType &Item) const
Definition Array.h:1518
void SetNum(SizeType NewNum, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2308
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
FRealDouble FReal
Definition Real.h:22
FMassProperties Combine(const TArray< FMassProperties > &MPArray)
Definition MassProperties.cpp:274
U16 Index
Definition radfft.cpp:71
Definition MassProperties.h:24
FVec3 CenterOfMass
Definition MassProperties.h:34
FReal Volume
Definition MassProperties.h:33
FMatrix33 InertiaTensor
Definition MassProperties.h:36
FRotation3 RotationOfMass
Definition MassProperties.h:35
Definition PhysicsAssetSimulation.h:18