class ASoftParticleHelper
#include <SoftParticleHelper.h>
class ASoftParticleHelper: public AActor
{
public:
// fields
TMap<int32, float> affectedVertices;
TSet<FString> currentAffectedParfticleIDs;
ACreateDeformMesh* meshContainer;
float resistance;
float maxMovement;
FVector lastposition;
FVector initposition;
TArray<FVector> meshVertices;
TArray<TPair<int32, float>> affectedVerticesArray;
TArray<TPair<ASoftParticleHelper*, float>> affectedParticlesArray;
TMap<ASoftParticleHelper*, float> affectedParticles;
ACreateDeformMesh* deformCreator;
UMagesInteractableItem* InteractableItemInstance = nullptr;
UShapeComponent* Shape;
// methods
void Initialize(TArray<FVector>& Vertices);
void SetDeformCreator(ACreateDeformMesh* cdm);
void AddAffectedVertex(int id, float affect);
void ChangeAffectedVertex(int id, float affect);
void AddAffectedParticle(ASoftParticleHelper* _ph, float _distPersent);
void UpdateParticle();
void UpdateExternalVelocities(float DeltaTime);
void UpdateParticleVertices();
void MoveToStartingPos(
FVector Pos,
FRotator Rot,
bool bApplyToOtherParticles = true,
float AffectValue = 1.0f
);
void AddExternalVelocity(FVector Vel, float AffectValue = .5f);
void RecenterParticle();
void RecenterParticle(TArray<FVector> from_vertices);
FTransform getCenterPoint();
void setCenterPoint(FTransform value);
void setBaseVertexID(int value);
void Solve(FVector Movement);
FORCEINLINE bool operator == (const ASoftParticleHelper& Other) const;
};