You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
MeshGeodesicSurfaceTracer.{h,cpp} - Add embedded path tracing.
GeodesicSurfaceTracerTests.cpp - unit tests for embedded path tracing
IntrinsicTriangulationMesh.{h, cpp} - Adds two Intrinsic Triangulation mesh types (the more sophisticaed requires embedded path tracing)
IntrinsicMeshTests.cpp - unit tests for Intrinsic mesh types.
MeshLaplacian.{h,cpp} - Adds new enum types for Intrinsic Delaunay Triangulation (IDT) Laplacians
LaplacianOperators.{h,cpp} - Adds wrappers and allow enum switches to build IDT Laplacians if requested
LaplacianMatrixAssembly.h - Actually construction of IDT Laplacian.
Laplacian.cpp - Added trivial unit test for construction of IDT Laplacian
#rb jimmy.andrews
#preflight 6138bca42d09b9000158c95a
#ROBOMERGE-AUTHOR: david.hill
#ROBOMERGE-SOURCE: CL 17458853 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17458863 by david hill in ue5-release-engine-test branch]
73 lines
1.7 KiB
C++
73 lines
1.7 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "Solvers/MeshLaplacian.h"
|
|
|
|
|
|
|
|
FString LaplacianSchemeName(const ELaplacianWeightScheme Scheme)
|
|
{
|
|
FString LaplacianName;
|
|
switch (Scheme)
|
|
{
|
|
case ELaplacianWeightScheme::ClampedCotangent:
|
|
LaplacianName = FString(TEXT("Clamped Cotangent Laplacian"));
|
|
break;
|
|
case ELaplacianWeightScheme::Cotangent:
|
|
LaplacianName = FString(TEXT("Cotangent Laplacian"));
|
|
break;
|
|
case ELaplacianWeightScheme::Umbrella:
|
|
LaplacianName = FString(TEXT("Umbrella Laplacian"));
|
|
break;
|
|
case ELaplacianWeightScheme::MeanValue:
|
|
LaplacianName = FString(TEXT("MeanValue Laplacian"));
|
|
break;
|
|
case ELaplacianWeightScheme::Uniform:
|
|
LaplacianName = FString(TEXT("Uniform Laplacian"));
|
|
break;
|
|
case ELaplacianWeightScheme::Valence:
|
|
LaplacianName = FString(TEXT("Valence Laplacian"));
|
|
break;
|
|
case ELaplacianWeightScheme::IDTCotanget:
|
|
LaplacianName = FString(TEXT("Intrinsic Delaunay Triangulation Contangent Laplacian"));
|
|
break;
|
|
default:
|
|
check(0 && "Unknown Laplacian Weight Scheme Enum");
|
|
}
|
|
|
|
return LaplacianName;
|
|
}
|
|
|
|
|
|
|
|
|
|
bool bIsSymmetricLaplacian(const ELaplacianWeightScheme Scheme)
|
|
{
|
|
bool bSymmetric = false;
|
|
switch (Scheme)
|
|
{
|
|
case ELaplacianWeightScheme::ClampedCotangent:
|
|
bSymmetric = false;
|
|
break;
|
|
case ELaplacianWeightScheme::Cotangent:
|
|
bSymmetric = false;
|
|
break;
|
|
case ELaplacianWeightScheme::Umbrella:
|
|
bSymmetric = false;
|
|
break;
|
|
case ELaplacianWeightScheme::MeanValue:
|
|
bSymmetric = false;
|
|
break;
|
|
case ELaplacianWeightScheme::Uniform:
|
|
bSymmetric = true;
|
|
break;
|
|
case ELaplacianWeightScheme::Valence:
|
|
bSymmetric = true;
|
|
break;
|
|
case ELaplacianWeightScheme::IDTCotanget:
|
|
bSymmetric = false;
|
|
break;
|
|
default:
|
|
check(0);
|
|
}
|
|
return bSymmetric;
|
|
} |