UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IslandGroup.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Containers/Array.h"
5
8
9namespace Chaos
10{
11 namespace Private
12 {
19 {
20 public:
22
27
32 CHAOS_API void AddIsland(FPBDIsland* Island);
33
37 FORCEINLINE const TArray<FPBDIsland*>& GetIslands() { return Islands; }
38
42 inline int32 GetNumParticles() const { return NumParticles; }
43
47 inline int32 GetNumConstraints() const { return NumConstraints; }
48
52 inline int32 GetNumConstraints(const int32 ContainerId) const { return NumContainerConstraints[ContainerId]; }
53
58
59 protected:
60 // Base class overrides
61 CHAOS_API virtual void SetConstraintSolverImpl(const int32 ContainerId) override final;
62 CHAOS_API virtual void ResetImpl() override final;
65
66 private:
67 CHAOS_API void ApplyIterationSettingsOverrides();
68
69 FPBDIslandManager& IslandManager;
70
71 // Item counters used to initialize the solver containers
72 static constexpr int32 NumExpectedConstraintTypes = 5;
73 int32 NumParticles;
74 int32 NumConstraints;
75 TArray<int32, TInlineAllocator<NumExpectedConstraintTypes>> NumContainerConstraints; // Per ContainerId
76
77 TArray<FPBDIsland*> Islands;
78 };
79
80 } // namespace Private
81
82
83 using FPBDIslandConstraintGroupSolver UE_DEPRECATED(5.2, "Internal class moved to Private namespace") = Private::FPBDIslandConstraintGroupSolver;
84
85} // namespace Chaos
#define FORCEINLINE
Definition AndroidPlatform.h:140
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition ConstraintGroupSolver.h:22
virtual CHAOS_API void SetIterationSettings(const FIterationSettings &InIterations) override
Definition IslandGroup.cpp:99
virtual CHAOS_API void AddConstraintsImpl() override final
Definition IslandGroup.cpp:64
int32 GetNumParticles() const
Definition IslandGroup.h:42
virtual CHAOS_API void SetConstraintSolverImpl(const int32 ContainerId) override final
Definition IslandGroup.cpp:27
virtual CHAOS_API void ResetImpl() override final
Definition IslandGroup.cpp:35
virtual CHAOS_API void GatherBodiesImpl(const FReal Dt, const int32 BeginBodyIndex, const int32 EndBodyIndex) override final
Definition IslandGroup.cpp:87
CHAOS_API void AddIsland(FPBDIsland *Island)
Definition IslandGroup.cpp:47
UE_NONCOPYABLE(FPBDIslandConstraintGroupSolver)
int32 GetNumConstraints(const int32 ContainerId) const
Definition IslandGroup.h:52
FORCEINLINE const TArray< FPBDIsland * > & GetIslands()
Definition IslandGroup.h:37
int32 GetNumConstraints() const
Definition IslandGroup.h:47
Definition IslandManager.h:453
Definition IslandManager.h:231
Definition IterationSettings.h:19
Definition Array.h:670
Definition ContainerAllocationPolicies.h:894
Definition SkeletalMeshComponent.h:307
FRealDouble FReal
Definition Real.h:22
Definition ByteSwap.h:14
Definition OverriddenPropertySet.cpp:45