|
| FReal | GetSolverPhysicsResultsTime (const FPhysicsSolverBase *Solver) |
| |
| FVec3 | GetAngularVelocityAdjustedForGyroscopicTorques (const FRotation3 &Q, const FVec3 &I, const FVec3 &W, const FReal Dt) |
| |
| template<typename Lambda > |
| FORCEINLINE_DEBUGGABLE decltype(auto) | CastHelper (const FImplicitObject &Geom, const Lambda &Func) |
| |
| template<typename Lambda > |
| FORCEINLINE_DEBUGGABLE decltype(auto) | CastHelper (const FImplicitObject &Geom, const FRigidTransform3 &TM, const Lambda &Func) |
| |
| template<typename Lambda > |
| FORCEINLINE_DEBUGGABLE decltype(auto) | CastHelperNoUnwrap (const FImplicitObject &Geom, const FRigidTransform3 &TM, const Lambda &Func) |
| |
| template<typename Lambda > |
| FORCEINLINE_DEBUGGABLE decltype(auto) | CastHelperNoUnwrap (const FImplicitObject &Geom, const FRigidTransform3 &TM0, const FRigidTransform3 &TM1, const Lambda &Func) |
| |
| const FImplicitObject * | ImplicitChildHelper (const FImplicitObject *ImplicitObject) |
| |
| template<typename T , typename Lambda > |
| FORCEINLINE_DEBUGGABLE decltype(auto) | CastWrapped (const FImplicitObject &A, const Lambda &Func) |
| | Given an ImplicitObject known to be of type T or a wrapper around T, call the Lambda with the concrete type which will be const T*, const TImplicitObjectInstanced<T>*, or const TImplicitObjectScaled<T>*.
|
| |
| template<typename Lambda , bool bRootObject> |
| FORCEINLINE_DEBUGGABLE void | VisitConcreteObjectsImpl (const FImplicitObject &Geom, const Lambda &Func, int32 RootObjectIndex) |
| |
| template<typename Lambda > |
| FORCEINLINE_DEBUGGABLE void | VisitConcreteObjects (const FImplicitObject &Geom, const Lambda &Func) |
| | Similar to FImplicitObject::VisitLeafObjects, but provides only the root object index (ie, the index into a particle's ShapeInstance array) and the concrete type of the leaf object. This is useful to avoid requiring users to write lambdas inside lambdas or do manual type checking if all the caller wants to do is perform some operation on each of the underlying geometries.
|
| |
| void | GetTetFaces (const FIntVector4 &Tet, FIntVector3 &Face1, FIntVector3 &Face2, FIntVector3 &Face3, FIntVector3 &Face4, const bool invert) |
| |
| int32 | GetMin (const FIntVector3 &V) |
| |
| int32 | GetMid (const FIntVector3 &V) |
| |
| int32 | GetMax (const FIntVector3 &V) |
| |
| FIntVector3 | GetOrdered (const FIntVector3 &V) |
| |
| FIntVector4 | GetOrdered (const FIntVector4 &V) |
| |
| void | GetSurfaceElements (const TArray< FIntVector4 > &Tets, TArray< FIntVector3 > &SurfaceElements, const bool KeepInteriorFaces=false, const bool InvertFaces=false) |
| |
| void | FindClosestTriangle (const TArray< TVector< FRealSingle, 3 > > &Positions, const TArray< FIntVector3 > &SurfaceElements, const TArray< TVector< FRealSingle, 3 > > &TrianglePositions, TArray< int32 > &SurfaceTriangleIndices, TArray< TVector< FRealSingle, 3 > > &BarycentricWeights, const FRealSingle BoxSize=FRealSingle(10.)) |
| |
| template<typename TRealType > |
| TRealType | SignedSquare (TRealType A) |
| |
| template<class TINT = uint64> |
| TINT | Factorial (TINT Num) |
| | Take the factorial of Num, which should be of integral type.
|
| |
| template<class TINT = uint64> |
| TINT | NChooseR (const TINT N, const TINT R) |
| | Number of ways to choose of R elements from a set of size N, with no repetitions.
|
| |
| template<class TINT = uint64> |
| TINT | NPermuteR (const TINT N, const TINT R) |
| | Number of ways to choose of R elements from a set of size N, with repetitions.
|
| |
| template<class T , class TARRAY = TArray<T>> |
| void | GetMinAvgMax (const TARRAY &Values, T &MinV, double &AvgV, T &MaxV) |
| | Compute the minimum, average, and maximum values of Values.
|
| |
| template<class T , class TARRAY = TArray<T>> |
| T | GetAverage (const TARRAY &Values) |
| | Compute the average value.
|
| |
| template<class T , class TARRAY = TArray<T>> |
| T | GetVariance (const TARRAY &Values, const T Avg) |
| | Compute the variance of Values, given the average value of Avg.
|
| |
| template<class T , class TARRAY = TArray<T>> |
| T | GetVariance (const TARRAY &Values) |
| | Compute the variance of Values (computes their average on the fly).
|
| |
| template<class T , class TARRAY = TArray<T>> |
| T | GetStandardDeviation (const TARRAY &Values, const T Avg) |
| | Compute the standard deviation of Values, given the average value of Avg.
|
| |
| template<class T , class TARRAY = TArray<T>> |
| T | GetStandardDeviation (const TARRAY &Values) |
| | Compute the standard deviation of Values (computes their average on the fly).
|
| |
| template<class T > |
| T | GetStandardDeviation (const T Variance) |
| | Compute the standard deviation from Variance.
|
| |
| FMatrix33 | Multiply (const FMatrix33 &L, const FMatrix33 &R) |
| |
| FMatrix44 | Multiply (const FMatrix44 &L, const FMatrix44 &R) |
| |
| FMatrix33 | MultiplyAB (const FMatrix33 &LIn, const FMatrix33 &RIn) |
| |
| FMatrix33 | MultiplyABt (const FMatrix33 &L, const FMatrix33 &R) |
| |
| FMatrix33 | MultiplyAtB (const FMatrix33 &L, const FMatrix33 &R) |
| |
| FVec3 | Multiply (const FMatrix33 &L, const FVec3 &R) |
| |
| TVec3< FRealSingle > | Multiply (const TMatrix33< FRealSingle > &L, const TVec3< FRealSingle > &R) |
| |
| FVec4 | Multiply (const FMatrix44 &L, const FVec4 &R) |
| |
| bool | Solve (FVec3 &X, const FMatrix33 &A, const FVec3 &B) |
| |
| FRigidTransform3 | Multiply (const FRigidTransform3 L, const FRigidTransform3 &R) |
| |
| FMatrix33 | ComputeWorldSpaceInertia (const FRotation3 &CoMRotation, const FMatrix33 &I) |
| |
| FMatrix33 | ComputeWorldSpaceInertia (const FRotation3 &CoMRotation, const FVec3 &I) |
| |
| template<class T > |
| PMatrix< T, 3, 3 > | ComputeJointFactorMatrix (const TVec3< T > &V, const PMatrix< T, 3, 3 > &M, const T &Im) |
| |
| template<class T > |
| TVec3< T > | ComputeDiagonalJointFactorMatrix (const TVec3< T > &V, const PMatrix< T, 3, 3 > &M, const T &Im) |
| |
| template<typename T > |
| bool | IntersectLineSegments2D (const TVec2< T > &InStartA, const TVec2< T > &InEndA, const TVec2< T > &InStartB, const TVec2< T > &InEndB, T &OutTA, T &OutTB) |
| |
| bool | ClipLineSegmentToPlane (FVec3 &V0, FVec3 &V1, const FVec3 &PlaneNormal, const FVec3 &PlanePos) |
| |
| bool | ClipLineSegmentToAxisAlignedPlane (FVec3 &V0, FVec3 &V1, const int32 AxisIndex, const FReal PlaneDir, const FReal PlanePos) |
| |
| void | ProjectPointOntoAxisAlignedPlane (FVec3 &V, const FVec3 &Dir, int32 AxisIndex, FReal PlaneDir, FReal PlanePos) |
| |
| bool | ProjectPointOntoAxisAlignedPlaneSafe (FVec3 &V, const FVec3 &Dir, int32 AxisIndex, FReal PlaneDir, FReal PlanePos, FReal Epsilon) |
| |
| bool | NormalizeSafe (FVec3 &V, FReal EpsilonSq=UE_SMALL_NUMBER) |
| |
| template<class T > |
| T | DotProduct (const TArray< T > &X, const TArray< T > &Y) |
| |
| template<typename T > |
| TVec3< T > | ScaleInertia (const TVec3< T > &Inertia, const TVec3< T > &Scale, const bool bScaleMass) |
| |
| FMatrix33 | ScaleInertia (const FMatrix33 &Inertia, const FVec3 &Scale, const bool bScaleMass) |
| |
| bool | BoxFromInertia (const FVec3 &InInertia, const FReal Mass, FVec3 &OutCenter, FVec3 &OutSize) |
| |
| int32 | WrapIndex (int32 V, int32 Begin, int32 End) |
| |
| void | NearestPointsOnLineSegments (const FVec3 &P1, const FVec3 &Q1, const FVec3 &P2, const FVec3 &Q2, FReal &S, FReal &T, FVec3 &C1, FVec3 &C2, const FReal Epsilon=1.e-4f) |
| |
| void | NearestPointsOnLineSegmentToLine (const FVec3 &SegmentBegin, const FVec3 &SegmentEnd, const FVec3 &LinePos, const FVec3 &LineVector, FReal &S, FReal &T, FVec3 &C1, FVec3 &C2, const FReal Epsilon=1.e-4f) |
| |
| template<typename T > |
| T | ClosestTimeOnLineSegment (const TVec3< T > &Point, const TVec3< T > &StartPoint, const TVec3< T > &EndPoint) |
| |
| template<typename T > |
| T | RaySphereIntersectionDistance (const TVec3< T > &RayStart, const TVec3< T > &RayDir, const TVec3< T > &SpherePos, const T SphereRadius) |
| | The distance from Start to the sphere along the vector Dir. Returns numeric max if no intersection.
|
| |
| template<typename T > |
| T | AsinEst1 (const T X) |
| |
| template<typename T > |
| T | AsinEst3 (const T X) |
| |
| template<typename T > |
| T | AsinEst5 (const T X) |
| |
| template<typename T > |
| T | AsinEst7 (const T X) |
| |
| template<typename T , int Order = 5> |
| T | AsinEst (const T X) |
| |
| template<typename T , int Order = 5> |
| T | AsinEstCrossover (const T X, const T Crossover=T(0.7)) |
| |
| template<class T , class TV , class TV_INT4 > |
| void | TetMeshFromGrid (const TUniformGrid< T, 3 > &Grid, TArray< TV_INT4 > &Mesh, TArray< TV > &X) |
| | Generate a tetrahedral mesh from a Freudenthal lattice defined on a 3 dimensional grid.
|
| |
| template<int d> |
| TArray< TArray< int > > | ComputeIncidentElements (const TArray< TVector< int32, d > > &Mesh, TArray< TArray< int32 > > *LocalIndex=nullptr) |
| |
| void | DFS_iterative (const TArray< TArray< int32 > > &L, int32 v, TArray< bool > &visited, TArray< int32 > &component) |
| |
| void | ConnectedComponentsDFSIterative (const TArray< TArray< int32 > > &L, TArray< TArray< int32 > > &C) |
| |
| void | FindConnectedRegions (const TArray< FIntVector4 > &Elements, TArray< TArray< int32 > > &ConnectedComponents) |
| |
| void | FindConnectedRegions (const TArray< FIntVector3 > &Elements, TArray< TArray< int32 > > &ConnectedComponents) |
| |
| TArray< int32 > | ComputeBoundaryNodes (const TArray< TVec3< int32 > > &TriangleMesh) |
| |
| TArray< TArray< int32 > > | ComputeIncidentElements (const TArray< TArray< int32 > > &Constraints, TArray< TArray< int32 > > *LocalIndex=nullptr) |
| |
| void | MergeIncidentElements (const TArray< TArray< int32 > > &ExtraIncidentElements, const TArray< TArray< int32 > > &ExtraIncidentElementsLocal, TArray< TArray< int32 > > &IncidentElements, TArray< TArray< int32 > > &IncidentElementsLocal) |
| |
| FIntVector3 | SortFIntVector3 (FIntVector3 &V) |
| |
| FIntVector3 | TetFace (int32 f) |
| |
| template<typename Func1 , typename Func2 > |
| TArray< FIntVector2 > | ComputeMeshFacePairs (const TArray< FIntVector4 > &Mesh, Func1 GreaterThan, Func2 Equal) |
| |
| TArray< FIntVector2 > | ComputeTetMeshFacePairs (const TArray< FIntVector4 > &TetMesh) |
| |
| TArray< TArray< FVector3f > > | RandomPointsInTet (const TArray< FVector3f > &x, const TArray< FIntVector4 > &TetMesh, const TArray< int32 > &SampleElements, int32 NumRandomPointsPerElement=1) |
| |