|
| FContactPoint | BoxBoxContactPoint (const FImplicitBox3 &Box1, const FImplicitBox3 &Box2, const FRigidTransform3 &Box1TM, const FRigidTransform3 &Box2TM) |
| |
| uint32 | BoxBoxClipVerticesAgainstPlane (const FVec3 *InputVertexBuffer, FVec3 *outputVertexBuffer, uint32 ClipPointCount, int32 ClippingAxis, FReal Distance) |
| |
| void | ConstructBoxBoxOneShotManifold (const FImplicitBox3 &Box1, const FRigidTransform3 &Box1Transform, const FImplicitBox3 &Box2, const FRigidTransform3 &Box2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| uint32 | ReduceManifoldContactPoints (FVec3 *Points, uint32 PointCount) |
| | General Convexes.
|
| |
| uint32 | ClipVerticesAgainstPlane (const FVec3 *InputVertexBuffer, FVec3 *OutputVertexBuffer, const uint32 ClipPointCount, const uint32 MaxNumberOfOutputPoints, const FVec3 ClippingPlaneNormal, const FReal PlaneDistance) |
| |
| template<typename ConvexImplicitType1 , typename ConvexImplicitType2 > |
| FVec3 * | GenerateConvexManifoldClippedVertices (const ConvexImplicitType1 &RefConvex, const ConvexImplicitType2 &OtherConvex, const FRigidTransform3 &OtherToRefTransform, const int32 RefPlaneIndex, const int32 OtherPlaneIndex, const FVec3 &RefPlaneNormal, FVec3 *VertexBuffer1, FVec3 *VertexBuffer2, uint32 &ContactPointCount, const uint32 MaxContactPointCount) |
| |
| template<typename ConvexImplicitType > |
| FVec3 * | GenerateLineConvexManifoldClippedVerticesSameSpace (const ConvexImplicitType &Convex, const TSegment< FReal > &Segment, const int32 ConvexPlaneIndex, const FVec3 &PlaneNormal, FVec3 *VertexBuffer, int32 &ContactPointCount, const int32 MaxContactPointCount, const FReal PlaneTolerance) |
| |
| template<typename GeometryA , typename GeometryB > |
| FContactPoint | GJKContactPointMargin (const GeometryA &A, const GeometryB &B, const FRigidTransform3 &BToATM, FReal MarginA, FReal MarginB, FGJKSimplexData &InOutGjkWarmStartData, FReal &OutMaxMarginDelta, int32 &VertexIndexA, int32 &VertexIndexB) |
| |
| template<typename GJKShapeA , typename GJKShapeB > |
| FContactPoint | GJKContactPointSameSpace (const GJKShapeA &A, const GJKShapeB &B, FReal &OutMaxMarginDelta, int32 &VertexIndexA, int32 &VertexIndexB, const FVec3 InitialGJKDir=FVec3(-1, 0, 0)) |
| |
| template<typename ConvexImplicitType > |
| void | FindBestPlane (const ConvexImplicitType &Convex, const FVec3 &X, const FVec3 &N, const FReal MaxDistance, const int32 PlaneIndex, int32 &BestPlaneIndex, FReal &BestPlaneDot) |
| |
| void | FindBestPlaneScaledConvex (const TImplicitObjectScaled< FConvex > &ScaledConvex, const FConvex::FVec3Type &X, const FConvex::FVec3Type &N, const FConvex::FVec3Type &Scale, const FConvex::FVec3Type &ScaleInv, const FConvex::FRealType MaxDistance, const int32 PlaneIndex, int32 &OutBestPlaneIndex, FConvex::FRealType &InOutBestPlaneDot) |
| |
| template<typename ConvexImplicitType > |
| void | CheckPlaneIndex (const int32 PlaneIndex, const ConvexImplicitType &Convex, const FVec3 X, const FVec3 N, const FReal MaxDistance, const int32 VertexIndex) |
| |
| template<typename ConvexImplicitType > |
| int32 | SelectContactPlane (const ConvexImplicitType &Convex, const FVec3 X, const FVec3 N, const FReal InMaxDistance, const int32 VertexIndex) |
| |
| template<> |
| int32 | SelectContactPlane< TImplicitObjectScaled< FConvex > > (const TImplicitObjectScaled< FConvex > &ScaledConvex, const FVec3 InX, const FVec3 InN, const FReal InMaxDistance, const int32 VertexIndex) |
| |
| template<typename ConvexImplicitType > |
| bool | CheckVertexIndex (const ConvexImplicitType &Convex, const int32 VertexIndex) |
| |
| template<typename ConvexImplicitType1 , typename ConvexImplicitType2 > |
| void | ConstructConvexConvexOneShotManifold (const ConvexImplicitType1 &Convex1, const FRigidTransform3 &Convex1Transform, const ConvexImplicitType2 &Convex2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template<typename ConvexType > |
| void | ConstructCapsuleConvexOneShotManifold (const FImplicitCapsule3 &Capsule, const FRigidTransform3 &CapsuleTransform, const ConvexType &Convex, const FRigidTransform3 &ConvexTransform, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| void | ConstructCapsuleTriangleOneShotManifold (const FImplicitCapsule3 &Capsule, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<typename ConvexType > |
| void | ConstructPlanarConvexTriangleOneShotManifold (const ConvexType &Convex, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructConvexConvexOneShotManifold< FImplicitBox3, FImplicitBox3 > (const FImplicitBox3 &Implicit1, const FRigidTransform3 &Convex1Transform, const FImplicitBox3 &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< FImplicitBox3, FImplicitConvex3 > (const FImplicitBox3 &Implicit1, const FRigidTransform3 &Convex1Transform, const FImplicitConvex3 &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< FImplicitConvex3, FImplicitBox3 > (const FImplicitConvex3 &Implicit1, const FRigidTransform3 &Convex1Transform, const FImplicitBox3 &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< FImplicitBox3, TImplicitObjectInstanced< FImplicitConvex3 > > (const FImplicitBox3 &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectInstanced< FImplicitConvex3 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectInstanced< FImplicitConvex3 >, FImplicitBox3 > (const TImplicitObjectInstanced< FImplicitConvex3 > &Implicit1, const FRigidTransform3 &Convex1Transform, const FImplicitBox3 &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< FImplicitBox3, TImplicitObjectScaled< FImplicitConvex3 > > (const FImplicitBox3 &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectScaled< FImplicitConvex3 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectScaled< FImplicitConvex3 >, FImplicitBox3 > (const TImplicitObjectScaled< FImplicitConvex3 > &Implicit1, const FRigidTransform3 &Convex1Transform, const FImplicitBox3 &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< FImplicitConvex3, FImplicitConvex3 > (const FImplicitConvex3 &Implicit1, const FRigidTransform3 &Convex1Transform, const FImplicitConvex3 &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectInstanced< FImplicitConvex3 >, FImplicitConvex3 > (const TImplicitObjectInstanced< FImplicitConvex3 > &Implicit1, const FRigidTransform3 &Convex1Transform, const FImplicitConvex3 &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectScaled< FImplicitConvex3 >, FImplicitConvex3 > (const TImplicitObjectScaled< FImplicitConvex3 > &Implicit1, const FRigidTransform3 &Convex1Transform, const FImplicitConvex3 &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< FImplicitConvex3, TImplicitObjectInstanced< FImplicitConvex3 > > (const FImplicitConvex3 &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectInstanced< FImplicitConvex3 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< FImplicitConvex3, TImplicitObjectScaled< FImplicitConvex3 > > (const FImplicitConvex3 &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectScaled< FImplicitConvex3 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectInstanced< FImplicitConvex3 >, TImplicitObjectInstanced< FImplicitConvex3 > > (const TImplicitObjectInstanced< FImplicitConvex3 > &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectInstanced< FImplicitConvex3 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectScaled< FImplicitConvex3 >, TImplicitObjectInstanced< FImplicitConvex3 > > (const TImplicitObjectScaled< FImplicitConvex3 > &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectInstanced< FImplicitConvex3 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectInstanced< FImplicitConvex3 >, TImplicitObjectScaled< FImplicitConvex3 > > (const TImplicitObjectInstanced< FImplicitConvex3 > &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectScaled< FImplicitConvex3 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectScaled< FImplicitConvex3 >, TImplicitObjectScaled< FImplicitConvex3 > > (const TImplicitObjectScaled< FImplicitConvex3 > &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectScaled< FImplicitConvex3 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructCapsuleConvexOneShotManifold (const FImplicitCapsule3 &Capsule, const FRigidTransform3 &CapsuleTransform, const FImplicitConvex3 &Convex, const FRigidTransform3 &ConvexTransform, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructCapsuleConvexOneShotManifold (const FImplicitCapsule3 &Capsule, const FRigidTransform3 &CapsuleTransform, const TImplicitObjectInstanced< FImplicitConvex3 > &Convex, const FRigidTransform3 &ConvexTransform, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructCapsuleConvexOneShotManifold (const FImplicitCapsule3 &Capsule, const FRigidTransform3 &CapsuleTransform, const TImplicitObjectScaled< FImplicitConvex3 > &Convex, const FRigidTransform3 &ConvexTransform, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructCapsuleConvexOneShotManifold (const FImplicitCapsule3 &Capsule, const FRigidTransform3 &CapsuleTransform, const FImplicitBox3 &Convex, const FRigidTransform3 &ConvexTransform, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructPlanarConvexTriangleOneShotManifold (const FImplicitConvex3 &Convex, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructPlanarConvexTriangleOneShotManifold (const TImplicitObjectInstanced< FImplicitConvex3 > &Convex, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructPlanarConvexTriangleOneShotManifold (const TImplicitObjectScaled< FImplicitConvex3 > &Convex, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructPlanarConvexTriangleOneShotManifold (const FImplicitBox3 &Convex, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructPlanarConvexTriangleOneShotManifold (const TImplicitObjectScaled< FImplicitBox3 > &Convex, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructPlanarConvexTriangleOneShotManifold (const TImplicitObjectInstanced< FImplicitBox3 > &Convex, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template void | ConstructConvexConvexOneShotManifold< FCapsule, FTriangle > (const FCapsule &Implicit1, const FRigidTransform3 &Convex1Transform, const FTriangle &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectScaled< FCapsule, 1 >, FTriangle > (const TImplicitObjectScaled< class FCapsule, 1 > &Implicit1, const FRigidTransform3 &Convex1Transform, const FTriangle &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< FImplicitBox3, FTriangle > (const FImplicitBox3 &Implicit1, const FRigidTransform3 &Convex1Transform, const FTriangle &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< FImplicitConvex3, FTriangle > (const FImplicitConvex3 &Implicit1, const FRigidTransform3 &Convex1Transform, const FTriangle &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectScaled< class TBox< FReal, 3 >, 1 >, FTriangle > (const TImplicitObjectScaled< class Chaos::TBox< FReal, 3 >, 1 > &Implicit1, const FRigidTransform3 &Convex1Transform, const FTriangle &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< TImplicitObjectScaled< class FConvex, 1 >, FTriangle > (const Chaos::TImplicitObjectScaled< class FConvex, 1 > &Implicit1, const FRigidTransform3 &Convex1Transform, const FTriangle &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< class FCapsule, class FConvex > (const FCapsule &Implicit1, const FRigidTransform3 &Convex1Transform, const FConvex &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< class FCapsule, TImplicitObjectScaled< class FConvex, 1 > > (const FCapsule &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectScaled< class FConvex, 1 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< class FCapsule, class TImplicitObjectInstanced< class FConvex > > (const FCapsule &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectInstanced< class FConvex > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< class FCapsule, class TBox< FReal, 3 > > (const FCapsule &Implicit1, const FRigidTransform3 &Convex1Transform, const TBox< FReal, 3 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< class FCapsule, TImplicitObjectScaled< class TBox< FReal, 3 >, 1 > > (const FCapsule &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectScaled< class TBox< FReal, 3 >, 1 > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template void | ConstructConvexConvexOneShotManifold< class FCapsule, class TImplicitObjectInstanced< class TBox< FReal, 3 > > > (const FCapsule &Implicit1, const FRigidTransform3 &Convex1Transform, const TImplicitObjectInstanced< class TBox< FReal, 3 > > &Implicit2, const FRigidTransform3 &Convex2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| FReal | CalculateTriMeshPhiTolerance (const FReal CullDistance) |
| |
| template<typename TriMeshType > |
| void | ConstructSphereTriangleMeshOneShotManifold (const FSphere &Sphere, const FRigidTransform3 &SphereWorldTransform, const TriMeshType &TriangleMesh, const FRigidTransform3 &TriMeshWorldTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | ConstructSphereHeightFieldOneShotManifold (const FSphere &Sphere, const FRigidTransform3 &SphereTransform, const FHeightField &Heightfield, const FRigidTransform3 &HeightfieldTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template<typename ConvexType > |
| void | ConstructConvexTriangleOneShotManifold3 (const ConvexType &Convex, const FRigidTransform3 &ConvexTransform, Private::FMeshContactGenerator &ContactGenerator, const int32 TriangleIndex, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<typename ConvexType > |
| void | GenerateConvexTriangleOneShotManifold (const ConvexType &Convex, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| | Generate a manifold between a convex shape and a single triangle Templated so we can specialize for some shape types.
|
| |
| template<> |
| void | GenerateConvexTriangleOneShotManifold< FImplicitCapsule3 > (const FImplicitCapsule3 &Capsule, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<> |
| void | GenerateConvexTriangleOneShotManifold< FImplicitSphere3 > (const FImplicitSphere3 &Sphere, const FTriangle &Triangle, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<typename ConvexType > |
| void | GenerateConvexTriangleOneShotManifold (const ConvexType &Convex, const FRigidTransform3 &ConvexTransform, Private::FMeshContactGenerator &ContactGenerator, const int32 TriangleIndex, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<> |
| void | GenerateConvexTriangleOneShotManifold< FImplicitCapsule3 > (const FImplicitCapsule3 &Capsule, const FRigidTransform3 &ConvexTransform, Private::FMeshContactGenerator &ContactGenerator, const int32 TriangleIndex, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<> |
| void | GenerateConvexTriangleOneShotManifold< FImplicitSphere3 > (const FImplicitSphere3 &Sphere, const FRigidTransform3 &ConvexTransform, Private::FMeshContactGenerator &ContactGenerator, const int32 TriangleIndex, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<typename ConvexType , typename MeshType > |
| void | ConstructConvexMeshOneShotManifold2 (const ConvexType &Convex, const FRigidTransform3 &ConvexTransform, const MeshType &Mesh, const FRigidTransform3 &MeshTransform, const FVec3 &MeshScale, const FReal CullDistance, Private::FMeshContactGenerator &ContactGenerator) |
| |
| template<typename ConvexType > |
| void | GenerateConvexTriangleOneShotManifoldMACD_PostManifoldFix (const ConvexType &Convex, const FRigidTransform3 &ConvexTransform, const FVec3 &InConvexRelativeMovement, Private::FMeshContactGenerator &ContactGenerator, const int32 TriangleIndex, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<typename ConvexType > |
| void | GenerateConvexTriangleOneShotManifoldMACD_PreManifoldFix (const ConvexType &Convex, const FRigidTransform3 &ConvexTransform, const FVec3 &ConvexRelativeMovement, Private::FMeshContactGenerator &ContactGenerator, const int32 TriangleIndex, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<typename ConvexType > |
| void | GenerateConvexTriangleOneShotManifoldMACD (const ConvexType &Convex, const FRigidTransform3 &ConvexTransform, const FVec3 &ConvexRelativeMovement, Private::FMeshContactGenerator &ContactGenerator, const int32 TriangleIndex, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<> |
| void | GenerateConvexTriangleOneShotManifoldMACD (const FImplicitSphere3 &Convex, const FRigidTransform3 &ConvexTransform, const FVec3 &InConvexRelativeMovement, Private::FMeshContactGenerator &ContactGenerator, const int32 TriangleIndex, const FReal CullDistance, FContactPointManifold &OutContactPoints) |
| |
| template<typename ConvexType , typename MeshType > |
| void | ConstructConvexMeshOneShotManifoldMACD (const ConvexType &Convex, const FRigidTransform3 &ConvexTransform, const MeshType &Mesh, const FRigidTransform3 &MeshTransform, const FVec3 &MeshScale, const FVec3 &RelativeMovement, const FReal InCullDistance, Private::FMeshContactGenerator &ContactGenerator) |
| |
| template<typename ConvexType , typename MeshType > |
| void | GenerateConvexMeshContactPoints (const ConvexType &Convex, const MeshType &Mesh, const FAABB3 &MeshQueryBounds, const FRigidTransform3 &MeshToConvexTransform, const FReal CullDistance, FContactTriangleCollector &MeshContacts) |
| | Create a minimized set of contact points between a convex polyhedron (box, convex) and a non-convex mesh (trimesh, heightfield)
|
| |
| template<typename ConvexType , typename MeshType > |
| void | ConstructConvexMeshOneShotManifold (const ConvexType &Convex, const FRigidTransform3 &ConvexTransform, const MeshType &Mesh, const FRigidTransform3 &MeshTransform, const FVec3 &MeshScale, const FReal CullDistance, FContactTriangleCollector &MeshContacts) |
| | Used by all the convex types to generate a manifold against any mesh type.
|
| |
| void | ConstructQuadraticConvexTriMeshOneShotManifold (const FImplicitObject &Quadratic, const FRigidTransform3 &Quadraticransform, const FImplicitObject &TriangleMesh, const FRigidTransform3 &TriMeshTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| | Build the contact manifold between a Quadratic Convex shape and a TriMesh.
|
| |
| void | ConstructQuadraticConvexHeightFieldOneShotManifold (const FImplicitObject &Quadratic, const FRigidTransform3 &QuadraticTransform, const FHeightField &HeightField, const FRigidTransform3 &HeightFieldTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| | Build the contact manifold between a Quadratic Convex shape (Sphere, Capsule) and a TriMesh.
|
| |
| void | ConstructPlanarConvexTriMeshOneShotManifold (const FImplicitObject &Convex, const FRigidTransform3 &ConvexTransform, const FImplicitObject &InMesh, const FRigidTransform3 &MeshTransform, FPBDCollisionConstraint &Constraint) |
| | Populate the Constraint with a manifold of contacts between a Convex and a TriangleMesh.
|
| |
| void | ConstructPlanarConvexHeightFieldOneShotManifold (const FImplicitObject &Convex, const FRigidTransform3 &ConvexTransform, const FHeightField &Mesh, const FRigidTransform3 &MeshTransform, FPBDCollisionConstraint &Constraint) |
| | Populate the Constraint with a manifold of contacts between a Convex and a HeightField.
|
| |
| void | ConstructSphereSphereOneShotManifold (const FSphere &SphereA, const FRigidTransform3 &SphereATransform, const FSphere &SphereB, const FRigidTransform3 &SphereBTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | ConstructSpherePlaneOneShotManifold (const FSphere &Sphere, const FRigidTransform3 &SphereTransform, const TPlane< FReal, 3 > &Plane, const FRigidTransform3 &PlaneTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | ConstructSphereBoxOneShotManifold (const FSphere &Sphere, const FRigidTransform3 &SphereTransform, const FImplicitBox3 &Box, const FRigidTransform3 &BoxTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | ConstructSphereCapsuleOneShotManifold (const FSphere &Sphere, const FRigidTransform3 &SphereTransform, const FCapsule &Capsule, const FRigidTransform3 &CapsuleTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template<typename ConvexType > |
| void | ConstructSphereConvexManifoldImpl (const FImplicitSphere3 &Sphere, const ConvexType &Convex, const FRigidTransform3 &SphereToConvexTransform, const FReal CullDistance, FContactPointManifold &ContactPoints) |
| |
| void | ConstructSphereConvexManifold (const FSphere &Sphere, const FRigidTransform3 &SphereTransform, const FImplicitObject3 &Convex, const FRigidTransform3 &ConvexTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | ConstructCapsuleCapsuleOneShotManifold (const FCapsule &CapsuleA, const FRigidTransform3 &CapsuleATransform, const FCapsule &CapsuleB, const FRigidTransform3 &CapsuleBTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| bool | ShouldUseCCD (const FGeometryParticleHandle *Particle0, const FVec3 &DeltaX0, const FGeometryParticleHandle *Particle1, const FVec3 &DeltaX1, FVec3 &Dir, FReal &Length) |
| | Whether CCD should be enabled for a contact given the current particle velocities etc.
|
| |
| void | UpdateContactPoint (FPBDCollisionConstraint &Constraint, const FContactPoint &ContactPoint, const FReal Dt) |
| |
| void | UpdateContactPointNoCull (FPBDCollisionConstraint &Constraint, const FContactPoint &ContactPoint, const FReal Dt, const bool bNoCull=true) |
| |
| const FImplicitObject * | GetInstancedImplicit (const FImplicitObject *Implicit0) |
| |
| void | UpdateGenericConvexConvexConstraintHelper (const FImplicitObject &A, const FRigidTransform3 &ATM, const FImplicitObject &B, const FRigidTransform3 &BTM, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template<typename TPGeometryClass > |
| const TPGeometryClass * | GetInnerObject (const FImplicitObject &Geometry) |
| |
| void | UpdateBoxBoxConstraint (const FImplicitBox3 &Box1, const FRigidTransform3 &Box1Transform, const FImplicitBox3 &Box2, const FRigidTransform3 &Box2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateBoxHeightFieldConstraint (const FImplicitBox3 &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| FContactPoint | BoxPlaneContactPoint (const FImplicitBox3 &Box, const FImplicitPlane3 &Plane, const FRigidTransform3 &BoxTransform, const FRigidTransform3 &PlaneTransform) |
| |
| void | UpdateBoxPlaneConstraint (const FImplicitBox3 &A, const FRigidTransform3 &ATransform, const TPlane< FReal, 3 > &B, const FRigidTransform3 &BTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template<typename TriMeshType > |
| void | UpdateBoxTriangleMeshConstraint (const FImplicitBox3 &Box0, const FRigidTransform3 &WorldTransform0, const TriMeshType &TriangleMesh1, const FRigidTransform3 &WorldTransform1, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateSphereSphereConstraint (const FSphere &Sphere1, const FRigidTransform3 &Sphere1Transform, const FSphere &Sphere2, const FRigidTransform3 &Sphere2Transform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateSphereHeightFieldConstraint (const FSphere &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateSphereHeightFieldConstraintSwept (TGeometryParticleHandle< FReal, 3 > *Particle0, const FSphere &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FVec3 &Dir, const FReal Length, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateSpherePlaneConstraint (const FSphere &Sphere, const FRigidTransform3 &SphereTransform, const TPlane< FReal, 3 > &Plane, const FRigidTransform3 &PlaneTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateSphereBoxConstraint (const FSphere &Sphere, const FRigidTransform3 &SphereTransform, const FImplicitBox3 &Box, const FRigidTransform3 &BoxTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateSphereCapsuleConstraint (const FSphere &A, const FRigidTransform3 &ATransform, const FCapsule &B, const FRigidTransform3 &BTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateSphereConvexConstraint (const FSphere &A, const FRigidTransform3 &ATransform, const FImplicitObject3 &B, const FRigidTransform3 &BTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template<typename TriMeshType > |
| void | UpdateSphereTriangleMeshConstraint (const FSphere &Sphere0, const FRigidTransform3 &WorldTransform0, const TriMeshType &TriangleMesh1, const FRigidTransform3 &WorldTransform1, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template<typename TriMeshType > |
| void | UpdateSphereTriangleMeshConstraintSwept (TGeometryParticleHandle< FReal, 3 > *Particle0, const FSphere &Sphere0, const FRigidTransform3 &WorldTransform0, const TriMeshType &TriangleMesh1, const FRigidTransform3 &WorldTransform1, const FVec3 &Dir, const FReal Length, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateCapsuleCapsuleConstraint (const FCapsule &A, const FRigidTransform3 &ATransform, const FCapsule &B, const FRigidTransform3 &BTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateCapsuleBoxConstraint (const FCapsule &A, const FRigidTransform3 &ATransform, const FImplicitBox3 &B, const FRigidTransform3 &BTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateCapsuleGenericConvexConstraintHelper (const FCapsule &A, const FRigidTransform3 &ATM, const FImplicitObject &B, const FRigidTransform3 &BTM, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateCapsuleHeightFieldConstraint (const FCapsule &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateCapsuleHeightFieldConstraintSwept (TGeometryParticleHandle< FReal, 3 > *Particle0, const FCapsule &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FVec3 &Dir, const FReal Length, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template<typename TriMeshType > |
| void | UpdateCapsuleTriangleMeshConstraint (const FCapsule &Capsule0, const FRigidTransform3 &WorldTransform0, const TriMeshType &TriangleMesh1, const FRigidTransform3 &WorldTransform1, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template<typename TriMeshType > |
| void | UpdateCapsuleTriangleMeshConstraintSwept (TGeometryParticleHandle< FReal, 3 > *Particle0, const FCapsule &Capsule0, const FRigidTransform3 &WorldTransform0, const TriMeshType &TriangleMesh1, const FRigidTransform3 &WorldTransform1, const FVec3 &Dir, const FReal Length, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateGenericConvexConvexConstraint (const FImplicitObject &Implicit0, const FRigidTransform3 &WorldTransform0, const FImplicitObject &Implicit1, const FRigidTransform3 &WorldTransform1, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateGenericConvexConvexConstraintSwept (TGeometryParticleHandle< FReal, 3 > *Particle0, const FImplicitObject &Implicit0, const FRigidTransform3 &StartWorldTransform0, TGeometryParticleHandle< FReal, 3 > *Particle1, const FImplicitObject &Implicit1, const FRigidTransform3 &StartWorldTransform1, const FVec3 &Dir, const FReal Length, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateConvexHeightFieldConstraint (const FImplicitObject &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateConvexHeightFieldConstraintSwept (TGeometryParticleHandle< FReal, 3 > *Particle0, const FImplicitObject &A, const FRigidTransform3 &ATransform, const FHeightField &B, const FRigidTransform3 &BTransform, const FVec3 &Dir, const FReal Length, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateConvexTriangleMeshConstraint (const FImplicitObject &Convex0, const FRigidTransform3 &WorldTransform0, const FImplicitObject &TriangleMesh1, const FRigidTransform3 &WorldTransform1, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| template<typename TriMeshType > |
| void | UpdateConvexTriangleMeshConstraintSwept (TGeometryParticleHandle< FReal, 3 > *Particle0, const FImplicitObject &Convex0, const FRigidTransform3 &WorldTransform0, const TriMeshType &TriangleMesh1, const FRigidTransform3 &WorldTransform1, const FVec3 &Dir, const FReal Length, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateLevelsetLevelsetConstraint (const FRigidTransform3 &WorldTransform0, const FRigidTransform3 &WorldTransform1, const FReal Dt, FPBDCollisionConstraint &Constraint) |
| |
| void | UpdateConstraintFromGeometryImpl (FPBDCollisionConstraint &Constraint, const FRigidTransform3 &WorldTransform0, const FRigidTransform3 &WorldTransform1, const FReal Dt) |
| |
| bool | UpdateConstraintFromGeometrySweptImpl (FPBDCollisionConstraint &Constraint, const FRigidTransform3 &WorldTransform0, const FRigidTransform3 &WorldTransform1, const FReal Dt) |
| |
| void | UpdateConstraint (FPBDCollisionConstraint &Constraint, const FRigidTransform3 &ShapeWorldTransform0, const FRigidTransform3 &ShapeWorldTransform1, const FReal Dt) |
| | Update the contact manifold on the constraint.
|
| |
| bool | UpdateConstraintSwept (FPBDCollisionConstraint &Constraint, const FRigidTransform3 &ShapeStartWorldTransform0, const FRigidTransform3 &ShapeStartWorldTransform1, const FReal Dt) |
| | Update the contact manifold on the constraint.
|
| |
| EContactShapesType | CalculateShapePairType (const FGeometryParticleHandle *Particle0, const FImplicitObject *Implicit0, const FGeometryParticleHandle *Particle1, const FImplicitObject *Implicit1, bool &bOutSwap) |
| | Determine the shape pair type for use in UpdateConstraints.
|
| |
| EImplicitObjectType | GetImplicitCollisionType (const FGeometryParticleHandle *Particle, const FImplicitObject *Implicit) |
| |
| template<ECollisionUpdateType UpdateType> |
| void | UpdateConstraintFromGeometry (FPBDCollisionConstraint &Constraint, const FRigidTransform3 &ParticleWorldTransform0, const FRigidTransform3 &ParticleWorldTransform1, const FReal Dt) |
| |
| template void | UpdateConstraintFromGeometry< ECollisionUpdateType::Any > (FPBDCollisionConstraint &ConstraintBase, const FRigidTransform3 &Transform0, const FRigidTransform3 &Transform1, const FReal Dt) |
| |
| template void | UpdateConstraintFromGeometry< ECollisionUpdateType::Deepest > (FPBDCollisionConstraint &ConstraintBase, const FRigidTransform3 &Transform0, const FRigidTransform3 &Transform1, const FReal Dt) |
| |
| FRigidTransform3 | GetTransform (const TGeometryParticleHandle< FReal, 3 > *Particle) |
| |
| FVec3 | GetEnergyClampedImpulse (const TPBDRigidParticleHandle< FReal, 3 > *PBDRigid0, const TPBDRigidParticleHandle< FReal, 3 > *PBDRigid1, const FVec3 &Impulse, const FVec3 &VectorToPoint1, const FVec3 &VectorToPoint2, const FVec3 &Velocity1, const FVec3 &Velocity2) |
| |
| FVec3 | GetEnergyClampedImpulse (const FVec3 &Impulse, FReal InvM0, const FMatrix33 &InvI0, FReal InvM1, const FMatrix33 &InvI1, const FRotation3 &Q0, const FVec3 &V0, const FVec3 &W0, const FRotation3 &Q1, const FVec3 &V1, const FVec3 &W1, const FVec3 &ContactOffset0, const FVec3 &ContactOffset1, const FVec3 &ContactVelocity0, const FVec3 &ContactVelocity1) |
| |
| bool | SampleObjectNoNormal (const FImplicitObject &Object, const FRigidTransform3 &ObjectTransform, const FRigidTransform3 &SampleToObjectTransform, const FVec3 &SampleParticle, FReal Thickness, FContactPoint &Contact) |
| |
| bool | SampleObjectNormalAverageHelper (const FImplicitObject &Object, const FRigidTransform3 &ObjectTransform, const FRigidTransform3 &SampleToObjectTransform, const FVec3 &SampleParticle, FReal Thickness, FReal &TotalThickness, FContactPoint &Contact) |
| |
| | DECLARE_CYCLE_STAT (TEXT("TPBDCollisionConstraints::UpdateLevelsetPartial"), STAT_UpdateLevelsetPartial, STATGROUP_ChaosWide) |
| |
| | DECLARE_CYCLE_STAT (TEXT("TPBDCollisionConstraints::UpdateLevelsetFindParticles"), STAT_UpdateLevelsetFindParticles, STATGROUP_ChaosWide) |
| |
| | DECLARE_CYCLE_STAT (TEXT("TPBDCollisionConstraints::UpdateLevelsetBVHTraversal"), STAT_UpdateLevelsetBVHTraversal, STATGROUP_ChaosWide) |
| |
| | DECLARE_CYCLE_STAT (TEXT("TPBDCollisionConstraints::UpdateLevelsetSignedDistance"), STAT_UpdateLevelsetSignedDistance, STATGROUP_ChaosWide) |
| |
| | DECLARE_CYCLE_STAT (TEXT("TPBDCollisionConstraints::UpdateLevelsetAll"), STAT_UpdateLevelsetAll, STATGROUP_ChaosWide) |
| |
| | DECLARE_CYCLE_STAT (TEXT("TPBDCollisionConstraints::SampleObject"), STAT_SampleObject, STATGROUP_ChaosWide) |
| |
| template<ECollisionUpdateType UpdateType> |
| FContactPoint | SampleObject (const FImplicitObject &Object, const FRigidTransform3 &ObjectTransform, const FBVHParticles &SampleParticles, const FRigidTransform3 &SampleParticlesTransform, FReal CullingDistance) |
| |
| | DECLARE_CYCLE_STAT (TEXT("TPBDCollisionConstraints::FindRelevantShapes"), STAT_FindRelevantShapes, STATGROUP_ChaosWide) |
| |
| TArray< Pair< const FImplicitObject *, FRigidTransform3 > > | FindRelevantShapes (const FImplicitObject *ParticleObj, const FRigidTransform3 &ParticlesTM, const FImplicitObject &LevelsetObj, const FRigidTransform3 &LevelsetTM, const FReal Thickness) |
| |
| template FContactPoint | SampleObject< ECollisionUpdateType::Any > (const FImplicitObject &Object, const FRigidTransform3 &ObjectTransform, const FBVHParticles &SampleParticles, const FRigidTransform3 &SampleParticlesTransform, FReal CullingDistance) |
| |
| template FContactPoint | SampleObject< ECollisionUpdateType::Deepest > (const FImplicitObject &Object, const FRigidTransform3 &ObjectTransform, const FBVHParticles &SampleParticles, const FRigidTransform3 &SampleParticlesTransform, FReal CullingDistance) |
| |
| void CHAOS_API | ResetChaosCollisionCounters () |
| |
| void CHAOS_API | ConstructConstraints (TGeometryParticleHandle< FReal, 3 > *Particle0, TGeometryParticleHandle< FReal, 3 > *Particle1, const FImplicitObject *Implicit0, const FPerShapeData *Shape0, const FBVHParticles *Simplicial0, const int32 ImplicitID0, const FImplicitObject *Implicit1, const FPerShapeData *Shape1, const FBVHParticles *Simplicial1, const int32 ImplicitID1, const FRigidTransform3 &ParticleWorldTransform0, const FRigidTransform3 &Transform0, const FRigidTransform3 &ParticleWorldTransform1, const FRigidTransform3 &Transform1, const FReal CullDistance, const FReal Dt, const bool bEnableSweep, const FCollisionContext &Context) |
| |
| void CHAOS_API | ConstructConstraints (TGeometryParticleHandle< FReal, 3 > *Particle0, TGeometryParticleHandle< FReal, 3 > *Particle1, const FImplicitObject *Implicit0, const FPerShapeData *Shape0, const FBVHParticles *Simplicial0, const FImplicitObject *Implicit1, const FPerShapeData *Shape1, const FBVHParticles *Simplicial1, const FRigidTransform3 &ParticleWorldTransform0, const FRigidTransform3 &Transform0, const FRigidTransform3 &ParticleWorldTransform1, const FRigidTransform3 &Transform1, const FReal CullDistance, const FReal Dt, const bool bEnableSweep, const FCollisionContext &Context) |
| |
| void CHAOS_API | ConstructConstraints (TGeometryParticleHandle< FReal, 3 > *Particle0, TGeometryParticleHandle< FReal, 3 > *Particle1, const FImplicitObject *Implicit0, const FPerShapeData *Shape0, const FBVHParticles *Simplicial0, const FImplicitObject *Implicit1, const FPerShapeData *Shape1, const FBVHParticles *Simplicial1, const FRigidTransform3 &ParticleWorldTransform0, const FRigidTransform3 &Transform0, const FRigidTransform3 &ParticleWorldTransform1, const FRigidTransform3 &Transform1, const FReal CullDistance, const FReal Dt, const FCollisionContext &Context) |
| |
| template<ECollisionUpdateType UpdateType> |
| void CHAOS_API | UpdateConstraintFromGeometry (FPBDCollisionConstraint &Constraint, const FRigidTransform3 &ParticleTransform0, const FRigidTransform3 &ParticleTransform1, const FReal Dt) |
| |
| template<typename TRealType > |
| TMatrix33< TRealType > | ComputeFactorMatrix3 (const TVec3< TRealType > &V, const TMatrix33< TRealType > &M, const TRealType Im) |
| |
| template<typename TRealType > |
| TVec3< TRealType > | ComputeFactorDiagonal3 (const TVec3< TRealType > &V, const TMatrix33< TRealType > &M, const TRealType Im) |
| |