2019-12-26 14:45:42 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2018-12-14 11:21:22 -05:00
|
|
|
|
2018-12-12 11:25:29 -05:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
|
|
|
|
|
|
class FGeometryCollection;
|
|
|
|
|
class UGeometryCollectionCache;
|
2024-04-03 22:22:28 -04:00
|
|
|
class USkeletalMesh;
|
2018-12-12 11:25:29 -05:00
|
|
|
|
|
|
|
|
namespace GeometryCollectionEngineUtility
|
|
|
|
|
{
|
|
|
|
|
void GEOMETRYCOLLECTIONENGINE_API PrintDetailedStatistics(const FGeometryCollection* GeometryCollection, const UGeometryCollectionCache* InCache);
|
|
|
|
|
|
2019-06-08 17:15:34 -04:00
|
|
|
void GEOMETRYCOLLECTIONENGINE_API PrintDetailedStatisticsSummary(const TArray<const FGeometryCollection*> GeometryCollectionArray);
|
|
|
|
|
|
|
|
|
|
void GEOMETRYCOLLECTIONENGINE_API ComputeNormals(FGeometryCollection* GeometryCollection);
|
|
|
|
|
|
|
|
|
|
void GEOMETRYCOLLECTIONENGINE_API ComputeTangents(FGeometryCollection* GeometryCollection);
|
|
|
|
|
|
2024-04-03 22:22:28 -04:00
|
|
|
/***
|
|
|
|
|
* Generate a vertex to component map that defines the disjoint geometries.
|
|
|
|
|
* @param IndexBuffer Input flat index of triangles
|
|
|
|
|
* @param ComponentIndices Output list of triangle indices by component
|
|
|
|
|
* @param TriangleComponentMap Output Component remapping for triangles
|
|
|
|
|
* @param VertexComponentMap Output Component remapping for vertices
|
|
|
|
|
* @param TriangleCount Output Sum of the triangles in the Components
|
|
|
|
|
* @param VertexCount Output Num of vertices in the Components
|
|
|
|
|
* @return If the remapping was valid.
|
|
|
|
|
*/
|
|
|
|
|
void
|
|
|
|
|
GEOMETRYCOLLECTIONENGINE_API
|
|
|
|
|
GenerateConnectedComponents(const USkeletalMesh* InSkeletalMesh,
|
|
|
|
|
TArray<TArray<FIntVector>>& ComponentIndices,
|
|
|
|
|
TArray<TArray<FIntVector2>>& TrangleComponentMap,
|
|
|
|
|
TArray<int32>& VertexComponentMap,
|
|
|
|
|
int32& TriangleCount, int32& VertexCount);
|
2018-12-12 11:25:29 -05:00
|
|
|
}
|