2019-12-26 14:45:42 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2019-09-25 13:55:37 -04:00
|
|
|
|
|
|
|
|
#include "ClothCollisionData.h"
|
|
|
|
|
|
|
|
|
|
void FClothCollisionData::Reset()
|
|
|
|
|
{
|
|
|
|
|
Spheres.Reset();
|
|
|
|
|
SphereConnections.Reset();
|
|
|
|
|
Convexes.Reset();
|
2019-10-11 10:07:14 -04:00
|
|
|
Boxes.Reset();
|
2019-09-25 13:55:37 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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);
|
2019-10-11 10:07:14 -04:00
|
|
|
|
|
|
|
|
Boxes.Append(InOther.Boxes);
|
2019-09-25 13:55:37 -04:00
|
|
|
}
|