|
| CHAOS_API | FTriangleMesh () |
| |
| CHAOS_API | FTriangleMesh (TArray< TVec3< int32 > > &&Elements, const int32 StartIdx=0, const int32 EndIdx=-1, const bool CullDegenerateElements=true) |
| |
| | FTriangleMesh (const FTriangleMesh &Other)=delete |
| |
| CHAOS_API | FTriangleMesh (FTriangleMesh &&Other) |
| |
| CHAOS_API | ~FTriangleMesh () |
| |
| CHAOS_API void | Init (TArray< TVec3< int32 > > &&Elements, const int32 StartIdx=0, const int32 EndIdx=-1, const bool CullDegenerateElements=true) |
| |
| CHAOS_API void | Init (const TConstArrayView< TVec3< int32 > > &Elements, const int32 StartIdx=0, const int32 EndIdx=-1, const bool CullDegenerateElements=true) |
| |
| CHAOS_API void | ResetAuxiliaryStructures () |
| |
| CHAOS_API void | Serialize (FArchive &Ar) |
| |
| CHAOS_API TVec2< int32 > | GetVertexRange () const |
| |
| int32 | GetStartIndex () const |
| |
| int32 | GetNumIndices () const |
| |
| CHAOS_API TSet< int32 > | GetVertices () const |
| |
| CHAOS_API void | GetVertexSet (TSet< int32 > &VertexSet) const |
| |
| CHAOS_API void | GetVertexSetAsArray (TArray< int32 > &VertexSet) const |
| |
| FORCEINLINE void | ExpandVertexRange (const int32 StartIdx, const int32 EndIdx) |
| |
| FORCEINLINE const TArray< TVec3< int32 > > & | GetElements () const & |
| |
| FORCEINLINE TArray< TVec3< int32 > > | GetElements () && |
| |
| FORCEINLINE const TArray< TVec3< int32 > > & | GetSurfaceElements () const & |
| |
| FORCEINLINE TArray< TVec3< int32 > > | GetSurfaceElements () && |
| |
| FORCEINLINE int32 | GetNumElements () const |
| |
| CHAOS_API const TMap< int32, TSet< int32 > > & | GetPointToNeighborsMap () const |
| |
| FORCEINLINE const TSet< int32 > & | GetNeighbors (const int32 Element) const |
| |
| CHAOS_API TConstArrayView< TArray< int32 > > | GetPointToTriangleMap () const |
| |
| FORCEINLINE const TArray< int32 > & | GetCoincidentTriangles (const int32 Element) const |
| |
| FORCEINLINE TSet< int32 > | GetNRing (const int32 Element, const int32 N) const |
| |
| CHAOS_API TArray< Chaos::TVec2< int32 > > | GetUniqueAdjacentPoints () const |
| |
| CHAOS_API TArray< Chaos::TVec4< int32 > > | GetUniqueAdjacentElements () const |
| |
| template<typename T > |
| CHAOS_API TArray< TVec3< T > > | GetFaceNormals (const TConstArrayView< TVec3< T > > &Points, const bool ReturnEmptyOnError=true) const |
| |
| template<typename T > |
| CHAOS_API void | GetFaceNormals (TArray< TVec3< T > > &Normals, const TConstArrayView< TVec3< T > > &Points, const bool ReturnEmptyOnError=true) const |
| |
| FORCEINLINE TArray< FVec3 > | GetFaceNormals (const FParticles &InParticles, const bool ReturnEmptyOnError=true) const |
| |
| CHAOS_API TArray< FVec3 > | GetPointNormals (const TConstArrayView< FVec3 > &points, const bool ReturnEmptyOnError=true, const bool bUseGlobalArray=false) |
| |
| FORCEINLINE TArray< FVec3 > | GetPointNormals (const FParticles &InParticles, const bool ReturnEmptyOnError=true) |
| |
| CHAOS_API void | GetPointNormals (TArrayView< FVec3 > PointNormals, const TConstArrayView< FVec3 > &FaceNormals, const bool bUseGlobalArray) |
| |
| template<typename T > |
| CHAOS_API void | GetPointNormals (TArrayView< TVec3< T > > PointNormals, const TConstArrayView< TVec3< T > > &FaceNormals, const bool bUseGlobalArray) const |
| | Get per-point normals. This const version of this function requires GetPointToTriangleMap() to be called prior to invoking this function.
|
| |
| CHAOS_API void | GetPointNormals (TArrayView< TVec3< FRealSingle > > PointNormals, const TConstArrayView< TVec3< FRealSingle > > &FaceNormals, const bool bUseGlobalArray) const |
| |
| CHAOS_API const FSegmentMesh & | GetSegmentMesh () const |
| | Note that the SegmentMesh is lazily calculated (this method is not threadsafe unless it is known that the SegmentMesh is already up to date) @ret The connectivity of this mesh represented as a collection of unique segments.
|
| |
| CHAOS_API const TArray< TVec3< int32 > > & | GetFaceToEdges () const |
| | Note that this data is lazily calculated with the SegmentMesh (this method is not threadsafe unless it is known that the SegmentMesh is already up to date) @ret A map from all face indices, to the indices of their associated edges.
|
| |
| CHAOS_API const TArray< TVec2< int32 > > & | GetEdgeToFaces () const |
| | Note that this data is lazily calculated with the SegmentMesh (this method is not threadsafe unless it is known that the SegmentMesh is already up to date) @ret A map from all edge indices, to the indices of their containing faces.
|
| |
| CHAOS_API TArray< FReal > | GetCurvatureOnEdges (const TArray< FVec3 > &faceNormals) |
| |
| CHAOS_API TArray< FReal > | GetCurvatureOnEdges (const TConstArrayView< FVec3 > &points) |
| | Helper that generates face normals on the fly.
|
| |
| CHAOS_API TArray< FReal > | GetCurvatureOnPoints (const TArray< FReal > &edgeCurvatures) |
| |
| CHAOS_API TArray< FReal > | GetCurvatureOnPoints (const TConstArrayView< FVec3 > &points) |
| | Helper that generates edge curvatures on the fly.
|
| |
| CHAOS_API TSet< int32 > | GetBoundaryPoints () |
| |
| CHAOS_API TMap< int32, int32 > | FindCoincidentVertexRemappings (const TArray< int32 > &TestIndices, const TConstArrayView< FVec3 > &Points) |
| |
| CHAOS_API TArray< int32 > | GetVertexImportanceOrdering (const TConstArrayView< FVec3 > &Points, const TArray< FReal > &PointCurvatures, TArray< int32 > *CoincidentVertices=nullptr, const bool RestrictToLocalIndexRange=false) |
| |
| CHAOS_API TArray< int32 > | GetVertexImportanceOrdering (const TConstArrayView< FVec3 > &Points, TArray< int32 > *CoincidentVertices=nullptr, const bool RestrictToLocalIndexRange=false) |
| | Helper that generates point curvatures on the fly.
|
| |
| CHAOS_API void | RemapVertices (const TArray< int32 > &Order) |
| | Reorder vertices according to.
|
| |
| CHAOS_API void | RemapVertices (const TMap< int32, int32 > &Remapping) |
| |
| CHAOS_API void | RemoveDuplicateElements () |
| |
| CHAOS_API void | RemoveDegenerateElements () |
| |
| template<typename T > |
| void | BuildBVH (const TConstArrayView< TVec3< T > > &Points, TBVHType< T > &BVH) const |
| |
| template<typename T > |
| bool | PointProximityQuery (const TBVHType< T > &BVH, const TConstArrayView< TVec3< T > > &Points, const int32 PointIndex, const TVec3< T > &PointPosition, const T PointThickness, const T ThisThickness, TFunctionRef< bool(const int32 PointIndex, const int32 TriangleIndex)> BroadphaseTest, TArray< TTriangleCollisionPoint< T > > &Result) const |
| |
| template<typename T > |
| bool | EdgeIntersectionQuery (const TBVHType< T > &BVH, const TConstArrayView< TVec3< T > > &Points, const int32 EdgeIndex, const TVec3< T > &EdgePosition1, const TVec3< T > &EdgePosition2, TFunctionRef< bool(const int32 EdgeIndex, const int32 TriangleIndex)> BroadphaseTest, TArray< TTriangleCollisionPoint< T > > &Result) const |
| |
| template<typename T > |
| bool | SmoothProject (const TBVHType< T > &BVH, const TConstArrayView< FVec3 > &Points, const TArray< FVec3 > &PointNormals, const FVec3 &Point, int32 &TriangleIndex, FVec3 &Weights, const int32 MaxIters=10) const |
| | Returns false if Point is outside of the smooth normal cone, where a smooth projection doesn't exist.
|
| |
| template<typename T > |
| CHAOS_API void | BuildSpatialHash (const TConstArrayView< TVec3< T > > &Points, TSpatialHashType< T > &SpatialHash, const T MinSpatialLodSize=(T) 0.) const |
| |
| CHAOS_API void | BuildSpatialHash (const TConstArrayView< TVec3< FRealSingle > > &Points, TSpatialHashType< FRealSingle > &SpatialHash, const Softs::FPBDFlatWeightMap &PointThicknesses, int32 ThicknessMapIndexOffset, const FRealSingle MinSpatialLodSize=0.f) const |
| |
| template<typename T > |
| CHAOS_API bool | PointProximityQuery (const TSpatialHashType< T > &SpatialHash, const TConstArrayView< TVec3< T > > &Points, const int32 PointIndex, const TVec3< T > &PointPosition, const T PointThickness, const T ThisThickness, TFunctionRef< bool(const int32 PointIndex, const int32 TriangleIndex)> BroadphaseTest, TArray< TTriangleCollisionPoint< T > > &Result) const |
| |
| CHAOS_API bool | PointProximityQuery (const TSpatialHashType< FRealSingle > &SpatialHash, const TConstArrayView< TVec3< FRealSingle > > &Points, const int32 PointIndex, const TVec3< FRealSingle > &PointPosition, const FRealSingle PointThickness, const Softs::FPBDFlatWeightMap &ThisThicknesses, const FRealSingle ThisThicknessExtraMultiplier, int32 ThicknessMapIndexOffset, TFunctionRef< bool(const int32 PointIndex, const int32 TriangleIndex)> BroadphaseTest, TArray< TTriangleCollisionPoint< FRealSingle > > &Result) const |
| |
| template<typename T > |
| CHAOS_API bool | PointClosestTriangleQuery (const TSpatialHashType< T > &SpatialHash, const TConstArrayView< TVec3< T > > &Points, const int32 PointIndex, const TVec3< T > &PointPosition, const T PointThickness, const T ThisThickness, TFunctionRef< bool(const int32 PointIndex, const int32 TriangleIndex)> BroadphaseTest, TArray< TTriangleCollisionPoint< T > > &Result) const |
| |
| template<typename T > |
| bool | EdgeIntersectionQuery (const TSpatialHashType< T > &SpatialHash, const TConstArrayView< TVec3< T > > &Points, const int32 EdgeIndex, const TVec3< T > &EdgePosition1, const TVec3< T > &EdgePosition2, TFunctionRef< bool(const int32 EdgeIndex, const int32 TriangleIndex)> BroadphaseTest, TArray< TTriangleCollisionPoint< T > > &Result) const |
| |
| template<typename T > |
| void | GetFaceNormals (TArray< TVec3< T > > &Normals, const TConstArrayView< TVec3< T > > &Points, const bool ReturnEmptyOnError) const |
| |
| template<typename T > |
| TArray< TVec3< T > > | GetFaceNormals (const TConstArrayView< TVec3< T > > &Points, const bool ReturnEmptyOnError) const |
| |
| template<typename T > |
| void | GetPointNormals (TArrayView< TVec3< T > > PointNormals, const TConstArrayView< TVec3< T > > &FaceNormals, const bool bUseGlobalArray) const |
| |
| template<> |
| CHAOS_API void | GetPointNormals (TArrayView< TVec3< FRealSingle > > PointNormals, const TConstArrayView< TVec3< FRealSingle > > &FaceNormals, const bool bUseGlobalArray) const |
| |
| template<typename T > |
| void | BuildSpatialHash (const TConstArrayView< TVec3< T > > &Points, TSpatialHashType< T > &SpatialHash, const T MinSpatialLodSize) const |
| |
| template<typename T > |
| bool | PointProximityQuery (const TSpatialHashType< T > &SpatialHash, const TConstArrayView< TVec3< T > > &Points, const int32 PointIndex, const TVec3< T > &PointPosition, const T PointThickness, const T ThisThickness, TFunctionRef< bool(const int32 PointIndex, const int32 TriangleIndex)> BroadphaseTest, TArray< TTriangleCollisionPoint< T > > &Result) const |
| |
| template<typename T > |
| bool | PointClosestTriangleQuery (const TSpatialHashType< T > &SpatialHash, const TConstArrayView< TVec3< T > > &Points, const int32 PointIndex, const TVec3< T > &PointPosition, const T PointThickness, const T ThisThickness, TFunctionRef< bool(const int32 PointIndex, const int32 TriangleIndex)> BroadphaseTest, TArray< TTriangleCollisionPoint< T > > &Result) const |
| |