2019-12-27 09:26:59 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2019-10-01 20:41:42 -04:00
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include "CoreMinimal.h"
|
2021-06-13 00:35:22 -04:00
|
|
|
#include "DynamicMesh/DynamicMesh3.h"
|
2019-10-01 20:41:42 -04:00
|
|
|
|
2021-03-09 19:33:56 -04:00
|
|
|
using UE::Geometry::FDynamicMesh3;
|
|
|
|
|
|
2019-10-01 20:41:42 -04:00
|
|
|
class FFindPolygonsAlgorithm
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
FFindPolygonsAlgorithm() {}
|
|
|
|
|
FFindPolygonsAlgorithm(FDynamicMesh3* MeshIn);
|
|
|
|
|
|
|
|
|
|
FDynamicMesh3* Mesh = nullptr;
|
|
|
|
|
TArray<TArray<int>> FoundPolygons;
|
|
|
|
|
TArray<int> PolygonTags;
|
2019-12-19 18:07:47 -05:00
|
|
|
TArray<FVector3d> PolygonNormals;
|
2019-10-01 20:41:42 -04:00
|
|
|
|
|
|
|
|
TArray<int> PolygonEdges;
|
|
|
|
|
|
2019-12-19 18:07:47 -05:00
|
|
|
bool FindPolygonsFromFaceNormals(double DotTolerance = 0.0001);
|
|
|
|
|
bool FindPolygonsFromUVIslands();
|
2021-02-22 19:16:24 -04:00
|
|
|
bool FindPolygonsFromConnectedTris();
|
2019-10-01 20:41:42 -04:00
|
|
|
|
|
|
|
|
bool FindPolygonEdges();
|
2019-12-19 18:07:47 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
void SetGroupsFromPolygons();
|
2019-10-01 20:41:42 -04:00
|
|
|
};
|