11template<
class T,
int d>
13template<
class T,
int d>
19 static_assert(
sizeof(T) == 0,
"Unsupported grid floating point type");
27template<
class T,
int d>
49 for (
int32 i = 0; i < d; ++i)
87#if COMPILE_WITHOUT_UNREAL_SUPPORT
97#if COMPILE_WITHOUT_UNREAL_SUPPORT
130#ifdef PLATFORM_COMPILER_CLANG
150#ifdef PLATFORM_COMPILER_CLANG
190 for (
int32 i = 0; i < d; i++)
204 bool Interior =
true;
205 for (
int32 i = 0; i < d && Interior; i++)
247 template<
class T_SCALAR>
265template<
class T,
int d>
279#if COMPILE_WITHOUT_UNREAL_SUPPORT
292 for (
int32 i = 0; i < d; ++i)
295 Result[i] =
MCells[i] - 1;
296 else if (
Index[i] < 0)
299 Result[i] =
Index[i];
330#if COMPILE_WITHOUT_UNREAL_SUPPORT
340 return T(1) -
w + T(
ii) * (T(2) *
w - T(1));
342 return ((T(1.5) * (
w *
w -
w) - T(0.25)) * (T(
ii) - 1) + (T(0.5) *
w - T(0.25))) * (T(
ii) - 1) -
w *
w +
w + T(0.5);
347 result[0] =
dNi[0] *
Ni[1] *
Ni[2];
348 result[1] =
Ni[0] *
dNi[1] *
Ni[2];
349 result[2] =
Ni[0] *
Ni[1] *
dNi[2];
354 return (T(2) * T(
ii) - T(1)) /
dx;
356 return ((
w - 1) * (T(
ii) - 1) * (T(
ii) - 2) * T(0.5) + (2 *
w - 1) * T(
ii) * (T(
ii) - 2) +
w * T(
ii) * (T(
ii) - 1) * T(0.5)) /
dx;
362 for (
uint32 i = 0; i < 3; ++i)
366 for (
uint32 i = 0; i < 3; ++i)
385 for (
int32 i = 0; i < 3; ++i) {
390 for (
size_t i = 0; i < 3; ++i) {
433#if COMPILE_WITHOUT_UNREAL_SUPPORT
457template <
typename T,
int d>
464#if PLATFORM_MAC || PLATFORM_LINUX
#define check(expr)
Definition AssertionMacros.h:314
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define CHAOS_ENSURE(Condition)
Definition ChaosCheck.h:22
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_SMALL_NUMBER
Definition UnrealMathUtility.h:130
Definition ArrayFaceND.h:14
Definition DynamicParticles.h:11
Definition UniformGrid.h:315
TVector< T, 3 > Node(const TVector< int32, 3 > &IndexIn) const
Definition UniformGrid.h:381
TVector< int32, 3 > Loc2GlobIndex(const TVector< int32, 3 > &IndexIn, const TVector< int32, 3 > &LocalIndexIn) const
Definition UniformGrid.h:359
InterpType interp
Definition UniformGrid.h:411
const TVector< T, 3 > GetMinCorner() const
Definition UniformGrid.h:403
TMPMGrid(const T GridDx)
Definition UniformGrid.h:329
~TMPMGrid()
Definition UniformGrid.h:334
TMPMGrid(const int32 GridN)
Definition UniformGrid.h:328
const TVector< int32, 3 > GetCells() const
Definition UniformGrid.h:402
void BaseNodeIndex(const TVector< T, 3 > &X, TVector< int32, 3 > &Index, TVector< T, 3 > &weights) const
Definition UniformGrid.cpp:265
void SetDx(const TVector< T, 3 > DxIn)
Definition UniformGrid.h:405
TVector< int32, 3 > Lin2MultiIndex(const int32 IndexIn) const
Definition UniformGrid.cpp:296
void GradNi(const TVector< T, 3 > &Ni, const TVector< T, 3 > &dNi, TVector< T, 3 > &result) const
Definition UniformGrid.h:345
uint32 NPerDir
Definition UniformGrid.h:412
int32 FlatIndex(const TVector< int32, 3 > &Index) const
Definition UniformGrid.cpp:274
InterpType
Definition UniformGrid.h:408
@ quadratic
Definition UniformGrid.h:408
@ linear
Definition UniformGrid.h:408
int32 Size() const
Definition UniformGrid.h:372
T Nijk(T w, int32 ii) const
Definition UniformGrid.h:338
const TVector< T, 3 > & GetDx() const
Definition UniformGrid.h:404
TMPMGrid(const TVector< T, 3 > &MinCorner, const TVector< T, 3 > &MaxCorner, const TVector< int32, 3 > &Cells, const uint32 GhostCells=0)
Definition UniformGrid.h:326
void UpdateGridFromPositions(const Chaos::TDynamicParticles< T, 3 > &InParticles)
Definition UniformGrid.cpp:362
void SetInterp(InterpType InterpIn)
Definition UniformGrid.cpp:395
T dNijk(T w, int32 ii, T dx) const
Definition UniformGrid.h:352
TMPMGrid()
Definition UniformGrid.h:325
virtual void Serialize(void *V, int64 Length) override
Definition ArchiveProxy.h:97
Definition Archive.h:1208
Definition SkeletalMeshComponent.h:307
@ X
Definition SimulationModuleBase.h:152
FChaosArchive & operator<<(FChaosArchive &Ar, FRigidParticleControlFlags &Flags)
Definition RigidParticleControlFlags.cpp:15
float FRealSingle
Definition Real.h:14
double FRealDouble
Definition Real.h:13
U16 Index
Definition radfft.cpp:71
Definition UniformGrid.h:18
Definition NumericLimits.h:41