// Copyright Epic Games, Inc. All Rights Reserved. #include "ClothCollisionData.h" #include UE_INLINE_GENERATED_CPP_BY_NAME(ClothCollisionData) void FClothCollisionData::Reset() { Spheres.Reset(); SphereConnections.Reset(); Convexes.Reset(); Boxes.Reset(); } void FClothCollisionData::Append(const FClothCollisionData& InOther) { const int32 NumSpheresBefore = Spheres.Num(); const int32 NumSphereConnectionsBefore = SphereConnections.Num(); Spheres.Append(InOther.Spheres); SphereConnections.Append(InOther.SphereConnections); const int32 NumSphereConnectionsAfter = SphereConnections.Num(); if(NumSpheresBefore > 0) { // Each connection that was added needs to have its sphere indices increased to match the new spheres that were added for(int32 NewConnectionIndex = NumSphereConnectionsBefore; NewConnectionIndex < NumSphereConnectionsAfter; ++NewConnectionIndex) { FClothCollisionPrim_SphereConnection& Connection = SphereConnections[NewConnectionIndex]; Connection.SphereIndices[0] += NumSpheresBefore; Connection.SphereIndices[1] += NumSpheresBefore; } } Convexes.Append(InOther.Convexes); Boxes.Append(InOther.Boxes); }