55 template<
typename T_OP,
typename T_EMPTYOP>
70 #define CHAOS_CONVEXSTRUCTUREDATA_DATAOP(Op, DefaultValue) \
73 case EIndexType::Small: \
75 case EIndexType::Medium: \
77 case EIndexType::Large: \
83 template<
typename T_OP,
typename T_EMPTYOP>
115 DestroyDataContainer();
122 Data.Ptr =
Other.Data.Ptr;
123 IndexType =
Other.IndexType;
125 Other.Data.Ptr =
nullptr;
133 DestroyDataContainer();
135 check(Data.Ptr ==
nullptr);
154 IndexType =
Other.IndexType;
159 return (Data.Ptr !=
nullptr);
273 return NonConstDataOp(
277 []() {
return true; });
325 static constexpr int32 SizeOfData() {
return sizeof(FConvexStructureData::Data); }
365 DestroyDataContainer();
367 check(Data.Ptr ==
nullptr);
387 void DestroyDataContainer()
389 if (Data.Ptr !=
nullptr)
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition ConvexStructureData.h:19
int32 GetEdgeVertex(int32 EdgeIndex, int32 EdgeVertexIndex) const
Definition ConvexStructureData.h:220
void Serialize(FArchive &Ar)
Definition ConvexStructureData.h:280
int32 NumHalfEdges() const
Definition ConvexStructureData.h:206
FConvexHalfEdgeStructureDataS32 FConvexStructureDataLarge
Definition ConvexStructureData.h:21
void GetHalfEdges(int32 EdgeIndex, int32 &OutEdgeIndex0, int32 &OutEdgeIndex1) const
Definition ConvexStructureData.h:250
FConvexStructureData(const FConvexStructureData &Other)=delete
const FConvexStructureDataMedium & DataM() const
Definition ConvexStructureData.h:37
FConvexHalfEdgeStructureDataU8 FConvexStructureDataSmall
Definition ConvexStructureData.h:23
int32 GetVertexPlanes3(int32 VertexIndex, int32 &PlaneIndex0, int32 &PlaneIndex1, int32 &PlaneIndex2) const
Definition ConvexStructureData.h:174
void CopyFrom(const FConvexStructureData &Other)
Definition ConvexStructureData.h:131
FConvexHalfEdgeStructureDataS16 FConvexStructureDataMedium
Definition ConvexStructureData.h:22
int32 GetPlaneVertex(int32 PlaneIndex, int32 PlaneVertexIndex) const
Definition ConvexStructureData.h:197
bool SetPlaneVertices(const TArray< TArray< int32 > > &InPlaneVertices, int32 NumVerts, const bool bRegularDatas=false)
Definition ConvexStructureData.h:268
~FConvexStructureData()
Definition ConvexStructureData.h:113
int32 NumPlaneVertices(int32 PlaneIndex) const
Definition ConvexStructureData.h:189
EIndexType
Definition ConvexStructureData.h:27
friend FArchive & operator<<(FArchive &Ar, FConvexStructureData &Value)
Definition ConvexStructureData.h:312
EIndexType GetIndexType() const
Definition ConvexStructureData.h:162
int32 FindVertexPlanes(int32 VertexIndex, int32 *VertexPlanes, int32 MaxVertexPlanes) const
Definition ConvexStructureData.h:167
FConvexStructureData(FConvexStructureData &&Other)
Definition ConvexStructureData.h:108
FConvexStructureData & operator=(const FConvexStructureData &Other)=delete
int32 GetEdgePlane(int32 EdgeIndex, int32 EdgePlaneIndex) const
Definition ConvexStructureData.h:230
FConvexStructureData()
Definition ConvexStructureData.h:100
bool IsValid() const
Definition ConvexStructureData.h:157
FConvexStructureData & operator=(FConvexStructureData &&Other)
Definition ConvexStructureData.h:120
int32 GetPlaneHalfEdge(int32 PlaneIndex, int32 FaceVertexIndex) const
Definition ConvexStructureData.h:240
int32 NumEdges() const
Definition ConvexStructureData.h:213
const FConvexStructureDataSmall & DataS() const
Definition ConvexStructureData.h:38
const FConvexStructureDataLarge & DataL() const
Definition ConvexStructureData.h:36
static void Load(FArchive &Ar, TArray< TArray< int32 > > &OutPlaneVertices, int32 &OutNumVertices)
Definition ConvexFlattenedArrayStructureData.h:203
Definition ConvexHalfEdgeStructureData.h:38
int32 GetVertexPlanes3(int32 VertexIndex, int32 &PlaneIndex0, int32 &PlaneIndex1, int32 &PlaneIndex2) const
Definition ConvexHalfEdgeStructureData.h:326
static bool CanMake(const TArray< TArray< int32 > > &InPlaneVertices, int32 InNumVertices)
Definition ConvexHalfEdgeStructureData.h:116
Definition Archive.h:1208
virtual void Serialize(void *V, int64 Length)
Definition Archive.h:1689
virtual CORE_API void UsingCustomVersion(const struct FGuid &Guid)
Definition Archive.cpp:590
UE_FORCEINLINE_HINT bool IsLoading() const
Definition Archive.h:236
CORE_API int32 CustomVer(const struct FGuid &Key) const
Definition Archive.cpp:602
Definition SkeletalMeshComponent.h:307
TConvexHalfEdgeStructureData< int32 > FConvexHalfEdgeStructureDataS32
Definition ConvexHalfEdgeStructureData.h:721
TConvexHalfEdgeStructureData< uint8 > FConvexHalfEdgeStructureDataU8
Definition ConvexHalfEdgeStructureData.h:723
TConvexHalfEdgeStructureData< int16 > FConvexHalfEdgeStructureDataS16
Definition ConvexHalfEdgeStructureData.h:722
CORE_API static const FGuid GUID
Definition FortniteMainBranchObjectVersion.h:21
@ ChaosConvexUsesHalfEdges
Definition PhysicsObjectVersion.h:49
CORE_API static const FGuid GUID
Definition PhysicsObjectVersion.h:78