Files
UnrealEngineUWP/Engine/Source/Runtime/ClothingSystemRuntimeInterface/Private/ClothCollisionData.cpp
kriss gossart 9b9bb4de8a Fix Chaos Cloth's external collision setup and the collision transform updates.
Also:
-Add the missing DestroyActors() implementation to stop leaking particles when the cloth asset are modified.
-Reimplement the collision visualization to draw the actual simulation collisions rather than the asset collision volumes.
-Split the collision creation from CreateActors into new functions.
-Fixed the size of the capsule colllision in the Chaos Cloth visualization.
-Slight general tidy up.
#rb Benn.Gallagher, Jaco.VanDyk


#ROBOMERGE-SOURCE: CL 9547657 via CL 9547681
#ROBOMERGE-BOT: (v521-9539702)

[CL 9547683 by kriss gossart in Main branch]
2019-10-11 10:07:14 -04:00

37 lines
1.1 KiB
C++

// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved.
#include "ClothCollisionData.h"
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);
}