|
| template<typename IdxType > |
| | FTriangleMeshImplicitObject (ParticlesType &&Particles, TArray< TVec3< IdxType > > &&Elements, TArray< uint16 > &&InMaterialIndices, TUniquePtr< TArray< int32 > > &&InExternalFaceIndexMap=nullptr, TUniquePtr< TArray< int32 > > &&InExternalVertexIndexMap=nullptr, const bool bInCullsBackFaceRaycast=false) |
| |
| | FTriangleMeshImplicitObject (const FTriangleMeshImplicitObject &Other)=delete |
| |
| | FTriangleMeshImplicitObject (FTriangleMeshImplicitObject &&Other)=delete |
| |
| virtual CHAOS_API | ~FTriangleMeshImplicitObject () |
| |
| virtual FReal | GetRadius () const override |
| |
| virtual CHAOS_API FReal | PhiWithNormal (const FVec3 &x, FVec3 &Normal) const override |
| |
| virtual CHAOS_API bool | Raycast (const FVec3 &StartPoint, const FVec3 &Dir, const FReal Length, const FReal Thickness, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex) const override |
| |
| virtual CHAOS_API bool | Overlap (const FVec3 &Point, const FReal Thickness) const override |
| |
| CHAOS_API bool | OverlapGeom (const FSphere &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const |
| |
| CHAOS_API bool | OverlapGeom (const TBox< FReal, 3 > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const |
| |
| CHAOS_API bool | OverlapGeom (const FCapsule &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const |
| |
| CHAOS_API bool | OverlapGeom (const FConvex &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr) const |
| |
| CHAOS_API bool | OverlapGeom (const TImplicitObjectScaled< FSphere > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | OverlapGeom (const TImplicitObjectScaled< TBox< FReal, 3 > > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | OverlapGeom (const TImplicitObjectScaled< FCapsule > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | OverlapGeom (const TImplicitObjectScaled< FConvex > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FMTDInfo *OutMTD=nullptr, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeom (const FSphere &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeom (const TBox< FReal, 3 > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeom (const FCapsule &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeom (const FConvex &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeom (const TImplicitObjectScaled< FSphere > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeom (const TImplicitObjectScaled< TBox< FReal, 3 > > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeom (const TImplicitObjectScaled< FCapsule > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeom (const TImplicitObjectScaled< FConvex > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FReal Thickness=0, const bool bComputeMTD=false, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeomCCD (const FSphere &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeomCCD (const TBox< FReal, 3 > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeomCCD (const FCapsule &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeomCCD (const FConvex &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeomCCD (const TImplicitObjectScaled< FSphere > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeomCCD (const TImplicitObjectScaled< TBox< FReal, 3 > > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeomCCD (const TImplicitObjectScaled< FCapsule > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | SweepGeomCCD (const TImplicitObjectScaled< FConvex > &QueryGeom, const FRigidTransform3 &StartTM, const FVec3 &Dir, const FReal Length, const FReal IgnorePenetration, const FReal TargetPenetration, FReal &OutTOI, FReal &OutPhi, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex, FVec3 &OutFaceNormal, const FVec3 &TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | GJKContactPoint (const FSphere &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex) const |
| |
| CHAOS_API bool | GJKContactPoint (const TBox< FReal, 3 > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex) const |
| |
| CHAOS_API bool | GJKContactPoint (const FCapsule &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex) const |
| |
| CHAOS_API bool | GJKContactPoint (const FConvex &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex) const |
| |
| CHAOS_API bool | GJKContactPoint (const TImplicitObjectScaled< FSphere > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | GJKContactPoint (const TImplicitObjectScaled< TBox< FReal, 3 > > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | GJKContactPoint (const TImplicitObjectScaled< FCapsule > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API bool | GJKContactPoint (const TImplicitObjectScaled< FConvex > &QueryGeom, const FRigidTransform3 &QueryTM, const FReal Thickness, FVec3 &Location, FVec3 &Normal, FReal &Penetration, int32 &FaceIndex, FVec3 TriMeshScale=FVec3(1.0f)) const |
| |
| CHAOS_API int32 | GetExternalFaceIndexFromInternal (int32 InternalFaceIndex) const |
| |
| CHAOS_API bool | GetCullsBackFaceRaycast () const |
| |
| CHAOS_API void | SetCullsBackFaceRaycast (const bool bInCullsBackFace) |
| |
| virtual CHAOS_API int32 | FindMostOpposingFace (const FVec3 &Position, const FVec3 &UnitDir, int32 HintFaceIndex, FReal SearchDistance) const override |
| |
| virtual CHAOS_API int32 | FindMostOpposingFaceScaled (const FVec3 &Position, const FVec3 &UnitDir, int32 HintFaceIndex, FReal SearchDist, const FVec3 &Scale) const override |
| |
| virtual CHAOS_API FVec3 | FindGeometryOpposingNormal (const FVec3 &DenormDir, int32 FaceIndex, const FVec3 &OriginalNormal) const override |
| |
| virtual const FAABB3 | BoundingBox () const override |
| |
| const FAABB3f | BoundingBoxf () const |
| |
| virtual CHAOS_API Chaos::FImplicitObjectPtr | CopyGeometry () const |
| |
| virtual CHAOS_API Chaos::FImplicitObjectPtr | DeepCopyGeometry () const |
| |
| CHAOS_API TUniquePtr< FTriangleMeshImplicitObject > | CopySlow () const |
| |
| void | SerializeImp (FChaosArchive &Ar) |
| |
| virtual CHAOS_API void | Serialize (FChaosArchive &Ar) override |
| |
| virtual FString | ToString () const |
| |
| virtual CHAOS_API uint32 | GetTypeHash () const override |
| |
| CHAOS_API FVec3 | GetFaceNormal (const int32 FaceIdx) const |
| |
| virtual CHAOS_API uint16 | GetMaterialIndex (uint32 HintIndex) const override |
| |
| CHAOS_API const ParticlesType & | Particles () const |
| |
| CHAOS_API const FTrimeshIndexBuffer & | Elements () const |
| |
| CHAOS_API void | UpdateVertices (const TArray< FVector > &Positions) |
| |
| void | GetTransformedTriangle (const int32 TriangleIndex, const FRigidTransform3 &Transform, FTriangle &OutTriangle, int32 &OutVertexIndex0, int32 &OutVertexIndex1, int32 &OutVertexIndex2) const |
| | Generate the triangle at the specified index with the specified transform (including scale)
|
| |
| void | FindOverlappingTriangles (const FAABB3 &QueryBounds, TArray< int32 > &OutTriangleIndices) const |
| | Get a list of triangle indices that overlap the query bounds.
|
| |
| template<typename TriangleVisitor > |
| void | VisitTriangles (const FAABB3 &QueryBounds, const FRigidTransform3 &QueryTransform, const TriangleVisitor &Visitor) const |
| |
| void | CollectTriangles (const FAABB3 &MeshQueryBounds, const FRigidTransform3 &MeshToObjectTransform, const FAABB3 &ObjectBounds, Private::FMeshContactGenerator &Collector) const |
| |
| UE_INTERNAL CHAOS_API const FTrimeshBVH & | GetBVH () const |
| |
| template<typename IdxType > |
| bool | RaycastImp (const TArray< TVector< IdxType, 3 > > &Elements, const FVec3 &StartPoint, const FVec3 &Dir, const FReal Length, const FReal Thickness, FReal &OutTime, FVec3 &OutPosition, FVec3 &OutNormal, int32 &OutFaceIndex) const |
| |
| virtual FName | GetTypeName () const |
| |
| CHAOS_API | FImplicitObject (int32 Flags, EImplicitObjectType InType=ImplicitObjectType::Unknown) |
| |
| | FImplicitObject (const FImplicitObject &)=delete |
| |
| | FImplicitObject (FImplicitObject &&)=delete |
| |
| virtual CHAOS_API | ~FImplicitObject () override |
| |
| template<typename TargetType > |
| bool | IsA () const |
| |
| template<typename TargetType > |
| const TargetType * | AsA () const |
| |
| template<typename TargetType > |
| TargetType * | AsA () |
| |
| template<typename TargetType > |
| const TargetType * | AsAChecked () const |
| |
| template<typename TargetType > |
| TargetType * | AsAChecked () |
| |
| template<class T_DERIVED > |
| T_DERIVED * | GetObject () |
| |
| template<class T_DERIVED > |
| const T_DERIVED * | GetObject () const |
| |
| template<class T_DERIVED > |
| const T_DERIVED & | GetObjectChecked () const |
| |
| template<class T_DERIVED > |
| T_DERIVED & | GetObjectChecked () |
| |
| virtual EImplicitObjectType | GetNestedType () const |
| |
| CHAOS_API EImplicitObjectType | GetType () const |
| |
| CHAOS_API EImplicitObjectType | GetCollisionType () const |
| |
| void | SetCollisionType (EImplicitObjectType InCollisionType) |
| |
| virtual FRealSingle | GetRadiusf () const |
| |
| virtual FReal | GetMargin () const |
| |
| virtual FRealSingle | GetMarginf () const |
| |
| virtual CHAOS_API bool | IsValidGeometry () const |
| |
| virtual CHAOS_API Chaos::FImplicitObjectPtr | CopyGeometryWithScale (const FVec3 &Scale) const |
| |
| virtual Chaos::FImplicitObjectPtr | DeepCopyGeometryWithScale (const FVec3 &Scale) const |
| |
| virtual FImplicitObject * | Duplicate () const |
| |
| virtual TUniquePtr< FImplicitObject > | Copy () const |
| |
| virtual TUniquePtr< FImplicitObject > | CopyWithScale (const FVec3 &Scale) const |
| |
| virtual TUniquePtr< FImplicitObject > | DeepCopy () const |
| |
| virtual TUniquePtr< FImplicitObject > | DeepCopyWithScale (const FVec3 &Scale) const |
| |
| CHAOS_API bool | IsUnderlyingUnion () const |
| |
| CHAOS_API bool | IsUnderlyingMesh () const |
| |
| CHAOS_API FReal | SignedDistance (const FVec3 &x) const |
| |
| CHAOS_API FVec3 | Normal (const FVec3 &x) const |
| |
| virtual FReal | PhiWithNormalScaled (const FVec3 &Pos, const FVec3 &Scale, FVec3 &Normal) const |
| |
| virtual FAABB3 | CalculateTransformedBounds (const FRigidTransform3 &Transform) const |
| |
| bool | HasBoundingBox () const |
| |
| bool | IsConvex () const |
| |
| void | SetConvex (const bool Convex=true) |
| |
| void | SetDoCollide (const bool Collide) |
| |
| bool | GetDoCollide () const |
| |
| CHAOS_API void | Track (TSerializablePtr< FImplicitObject > This, const FString &DebugInfo) |
| |
| virtual bool | IsPerformanceWarning () const |
| |
| virtual FString | PerformanceWarningAndSimplifaction () |
| |
| CHAOS_API Pair< FVec3, bool > | FindDeepestIntersection (const FImplicitObject *Other, const FBVHParticles *Particles, const FMatrix33 &OtherToLocalTransform, const FReal Thickness) const |
| |
| CHAOS_API Pair< FVec3, bool > | FindDeepestIntersection (const FImplicitObject *Other, const FParticles *Particles, const FMatrix33 &OtherToLocalTransform, const FReal Thickness) const |
| |
| CHAOS_API Pair< FVec3, bool > | FindClosestIntersection (const FVec3 &StartPoint, const FVec3 &EndPoint, const FReal Thickness) const |
| |
| virtual int32 | FindClosestFaceAndVertices (const FVec3 &Position, TArray< FVec3 > &FaceVertices, FReal SearchDist=0.01f) const |
| |
| virtual void | AccumulateAllImplicitObjects (TArray< Pair< const FImplicitObject *, FRigidTransform3 > > &Out, const FRigidTransform3 &ParentTM) const |
| |
| virtual void | AccumulateAllSerializableImplicitObjects (TArray< Pair< TSerializablePtr< FImplicitObject >, FRigidTransform3 > > &Out, const FRigidTransform3 &ParentTM, TSerializablePtr< FImplicitObject > This) const |
| |
| virtual CHAOS_API void | FindAllIntersectingObjects (TArray< Pair< const FImplicitObject *, FRigidTransform3 > > &Out, const FAABB3 &LocalBounds) const |
| |
| CHAOS_API void | SerializeImp (FArchive &Ar) |
| |
| virtual void | Serialize (FArchive &Ar) |
| |
| int32 | CountObjectsInHierarchy () const |
| |
| int32 | CountLeafObjectsInHierarchy () const |
| |
| void | VisitOverlappingLeafObjects (const FAABB3 &LocalBounds, const FImplicitHierarchyVisitor &Visitor) const |
| |
| void | VisitLeafObjects (const FImplicitHierarchyVisitor &Visitor) const |
| |
| void | VisitObjects (const FImplicitHierarchyVisitorBool &Visitor) const |
| |
| bool | IsOverlappingBounds (const FAABB3 &LocalBounds) const |
| |
| virtual int32 | CountObjectsInHierarchyImpl () const |
| |
| virtual int32 | CountLeafObjectsInHierarchyImpl () const |
| |
| virtual void | VisitOverlappingLeafObjectsImpl (const FAABB3 &LocalBounds, const FRigidTransform3 &ObjectTransform, const int32 RootObjectIndex, int32 &ObjectIndex, int32 &LeafObjectIndex, const FImplicitHierarchyVisitor &VisitorFunc) const |
| |
| virtual void | VisitLeafObjectsImpl (const FRigidTransform3 &ObjectTransform, const int32 RootObjectIndex, int32 &ObjectIndex, int32 &LeafObjectIndex, const FImplicitHierarchyVisitor &VisitorFunc) const |
| |
| virtual bool | VisitObjectsImpl (const FRigidTransform3 &ObjectTransform, const int32 RootObjectIndex, int32 &ObjectIndex, int32 &LeafObjectIndex, const FImplicitHierarchyVisitorBool &VisitorFunc) const |
| |
| virtual bool | IsOverlappingBoundsImpl (const FAABB3 &LocalBounds) const |
| |
| | FChaosRefCountedObject () |
| |
| virtual | ~FChaosRefCountedObject () |
| |
| | FChaosRefCountedObject (const FChaosRefCountedObject &Rhs)=delete |
| |
| FChaosRefCountedObject & | operator= (const FChaosRefCountedObject &Rhs)=delete |
| |
| uint32 | AddRef () const |
| |
| uint32 | Release () const |
| |
| uint32 | GetRefCount () const |
| |
| void | MakePersistent () const |
| |