152 const FSolverVec2& Pressure = FSolverVec2::ZeroVector,
158 (AreAerodynamicsEnabled() && (
179 UE_DEPRECATED(5.5,
"Use SetGeometry with OuterDrag and OuterLift multipliers")
210 bool AreAerodynamicsEnabled()
const {
return QuarterRho > (
FSolverReal)0.; }
234 Xs[Element[2]] - Xs[Element[0]],
235 Xs[Element[1]] - Xs[Element[0]]);
269 Xs[Element[2]] - Xs[Element[0]],
270 Xs[Element[1]] - Xs[Element[0]]);
310 FPBDFlatWeightMap Lift;
311 FPBDFlatWeightMap OuterLift;
312 FPBDFlatWeightMap Drag;
313 FPBDFlatWeightMap OuterDrag;
314 FPBDFlatWeightMap Pressure;
335#if !defined(CHAOS_VELOCITY_FIELD_ISPC_ENABLED_DEFAULT)
336#define CHAOS_VELOCITY_FIELD_ISPC_ENABLED_DEFAULT 1
339#if !defined(USE_ISPC_KERNEL_CONSOLE_VARIABLES_IN_SHIPPING)
340#define USE_ISPC_KERNEL_CONSOLE_VARIABLES_IN_SHIPPING 0
344#if !INTEL_ISPC || (UE_BUILD_SHIPPING && !USE_ISPC_KERNEL_CONSOLE_VARIABLES_IN_SHIPPING)
347extern CHAOS_API bool bChaos_VelocityField_ISPC_Enabled;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define UE_CHAOS_DECLARE_INDEXED_PROPERTYCOLLECTION_NAME(PropertyName, Type)
Definition CollectionPropertyFacade.h:893
@ INDEX_NONE
Definition CoreMiscDefines.h:150
@ ForceInit
Definition CoreMiscDefines.h:155
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EChaosSoftsSimulationSpace
Definition SoftsSimulationSpace.h:9
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
#define CHAOS_VELOCITY_FIELD_ISPC_ENABLED_DEFAULT
Definition VelocityField.h:336
Definition TriangleMesh.h:24
Definition CollectionPropertyFacade.h:49
FSolverReal GetHigh() const
Definition PBDFlatWeightMap.h:159
FSolverReal GetLow() const
Definition PBDFlatWeightMap.h:156
const FSolverVec2 & GetOffsetRange() const
Definition PBDFlatWeightMap.h:147
Definition SoftsSolverParticlesRange.h:12
Definition PBDSoftsSolverParticles.h:20
Definition VelocityField.h:17
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(Lift, float)
static constexpr FSolverReal DefaultTurbulenceRatio
Definition VelocityField.h:25
static constexpr EChaosSoftsSimulationSpace DefaultWindVelocitySpace
Definition VelocityField.h:24
CHAOS_API void UpdateForces(const FSolverParticles &InParticles, const FSolverReal)
Definition VelocityField.cpp:427
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(OuterLift, float)
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(WindVelocity, FVector3f)
static constexpr FSolverReal DefaultFluidDensity
Definition VelocityField.h:21
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(WindVelocitySpace, int32)
TConstArrayView< FSolverVec3 > GetForces() const
Definition VelocityField.h:194
static constexpr FSolverReal DefaultDragCoefficient
Definition VelocityField.h:19
const FSolverVec3 & GetVelocity() const
Definition VelocityField.h:191
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(Drag, float)
bool IsActive() const
Definition VelocityField.h:155
static constexpr FSolverReal MinCoefficient
Definition VelocityField.h:22
FVelocityAndPressureField(const FSolverParticlesRange &Particles, const FTriangleMesh *TriangleMesh, const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &Weightmaps, FSolverReal WorldScale)
Definition VelocityField.h:58
void SetVelocity(const FSolverVec3 &InVelocity)
Definition VelocityField.h:189
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(Pressure, float)
TConstArrayView< TVector< int32, 3 > > GetElements() const
Definition VelocityField.h:193
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(TurbulenceRatio, float)
CHAOS_API FSolverVec3 CalculateForce(const TConstArrayView< FSolverVec3 > &Xs, const TConstArrayView< FSolverVec3 > &Vs, int32 ElementIndex) const
Definition VelocityField.cpp:415
void Apply(FSolverParticles &InParticles, const FSolverReal Dt, const int32 Index) const
Definition VelocityField.h:115
FVelocityAndPressureField(const FCollectionPropertyConstFacade &PropertyCollection)
Definition VelocityField.h:35
static bool IsEnabled(const FCollectionPropertyConstFacade &PropertyCollection)
Definition VelocityField.h:27
CHAOS_API void SetGeometry(const FTriangleMesh *TriangleMesh, const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &Weightmaps, FSolverReal WorldScale)
Definition VelocityField.cpp:217
~FVelocityAndPressureField()
Definition VelocityField.h:111
CHAOS_API void SetPropertiesAndWind(const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &Weightmaps, FSolverReal WorldScale, bool bEnableAerodynamics, const FSolverVec3 &SolverWind, const FRotation3 &LocalSpaceRotation=FRotation3::Identity, const FRotation3 &ReferenceSpaceRotation=FRotation3::Identity)
Definition VelocityField.cpp:169
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(OuterDrag, float)
static constexpr FSolverReal MaxCoefficient
Definition VelocityField.h:23
FVelocityAndPressureField()
Definition VelocityField.h:88
static constexpr FSolverReal DefaultLiftCoefficient
Definition VelocityField.h:20
CHAOS_API void SetProperties(const FCollectionPropertyConstFacade &PropertyCollection, const TMap< FString, TConstArrayView< FRealSingle > > &Weightmaps, FSolverReal WorldScale, bool bEnableAerodynamics)
Definition VelocityField.cpp:27
UE_CHAOS_DECLARE_INDEXLESS_PROPERTYCOLLECTION_NAME(FluidDensity, float)
Definition UnrealString.h.inl:34
Definition CollectionEmbeddedSpringConstraintFacade.cpp:6
FRealSingle FSolverReal
Definition PBDSoftsEvolutionFwd.h:31
TVector< FSolverReal, 3 > FSolverVec3
Definition PBDSoftsEvolutionFwd.h:33
FRealSingle FSolverReal
Definition SolverBody.h:38
float FRealSingle
Definition Real.h:14
U16 Index
Definition radfft.cpp:71
Definition UnrealMathUtility.h:270