UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PBDPlanarConstraints.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3#include "Chaos/Core.h"
7
8namespace Chaos::Softs
9{
12 {
13 public:
15 virtual ~FPBDPlanarConstraints() = default;
19
28
29 void Reset()
30 {
32 TargetPositions.Reset();
33 TargetNormals.Reset();
34 TargetVelocities.Reset();
35 }
36
37 CHAOS_API void Apply(FSolverParticlesRange& Particles, const FSolverReal Dt) const;
38
43
44 protected:
45
47
52 private:
53
54 void ApplyHelperWithFriction(FSolverParticlesRange& Particles, const FSolverReal Dt, const int32 ConstraintIndex) const;
55 void ApplyHelperNoFriction(FSolverParticlesRange& Particles, const int32 ConstraintIndex) const;
56
57 };
58} // End namespace Chaos::Softs
59
60#if !defined(CHAOS_PLANAR_ISPC_ENABLED_DEFAULT)
61#define CHAOS_PLANAR_ISPC_ENABLED_DEFAULT 1
62#endif
63
64// Support run-time toggling on supported platforms in non-shipping configurations
65#if !INTEL_ISPC || UE_BUILD_SHIPPING
66static constexpr bool bChaos_Planar_ISPC_Enabled = INTEL_ISPC && CHAOS_PLANAR_ISPC_ENABLED_DEFAULT;
67#else
68extern CHAOS_API bool bChaos_Planar_ISPC_Enabled;
69#endif
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
#define CHAOS_PLANAR_ISPC_ENABLED_DEFAULT
Definition PBDPlanarConstraints.h:61
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition PBDPlanarConstraints.h:12
FSolverReal FrictionCoefficient
Definition PBDPlanarConstraints.h:46
FPBDPlanarConstraints(FSolverReal InFrictionCoefficient)
Definition PBDPlanarConstraints.h:16
virtual ~FPBDPlanarConstraints()=default
TArray< FSolverVec3 > TargetNormals
Definition PBDPlanarConstraints.h:50
TArray< int32 > UniqueConstraintIndices
Definition PBDPlanarConstraints.h:48
CHAOS_API void Apply(FSolverParticlesRange &Particles, const FSolverReal Dt) const
Definition PBDPlanarConstraints.cpp:29
void SetFrictionCoefficient(const FSolverReal InFrictionCoefficient)
Definition PBDPlanarConstraints.h:20
const TArray< FSolverVec3 > & GetTargetNormals() const
Definition PBDPlanarConstraints.h:41
TArray< FSolverVec3 > TargetPositions
Definition PBDPlanarConstraints.h:49
const TArray< FSolverVec3 > & GetTargetPositions() const
Definition PBDPlanarConstraints.h:40
const TArray< FSolverVec3 > & GetTargetVelocities() const
Definition PBDPlanarConstraints.h:42
void Reset()
Definition PBDPlanarConstraints.h:29
TArray< FSolverVec3 > TargetVelocities
Definition PBDPlanarConstraints.h:51
const TArray< int32 > & GetUniqueConstraintIndices() const
Definition PBDPlanarConstraints.h:39
void SetCollisionData(TArray< int32 > &&InUniqueConstraintIndices, TArray< FSolverVec3 > &&InTargetPositions, TArray< FSolverVec3 > &&InTargetNormals, TArray< FSolverVec3 > &&InTargetVelocities)
Definition PBDPlanarConstraints.h:21
Definition SoftsSolverParticlesRange.h:12
Definition Array.h:670
void Reset(SizeType NewSize=0)
Definition Array.h:2246
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31