Files
UnrealEngine/Engine/Source/Runtime/Datasmith/CADKernel/Base/Public/Mesh/MeshEnum.h
2025-05-18 13:04:45 +08:00

62 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "Core/Types.h"
namespace UE::CADKernel
{
/**
* 3 parametric spaces are defined :
* -EGridSpace::Default2D the natural parametric space of the carrier surface i.e. for a Bezier surface the boundary of the space is [[0, 1], [0, 1]] and for a spherical surface [[0, 2Pi], [-Pi / 2, Pi / 2]]
* -EGridSpace::UniformScaled.The average curvilinear length of the iso curves is calculated in each axis.The parametric space is then scaled in each axis such that
* the average curvilinear length between two points P(A, V) and P(B, V) = B - A.For a spherical surface [[0, 2Pi.R / 2], [-Pi.R / 2, Pi.R / 2]] with R the radius of the sphere
* -EGridSpace::Scaled.The UnifomeScaled space is rescaled in its most disturbe axis e.g. if V is the most disturbe axis, whatever V, length of[P(A, V), P(B, V)] = (B - A).
* This parametric space is closed to a good flattening of the surface.
*/
enum EGridSpace : uint8
{
Default2D = 0, // do not modified enum value as it is used for a static array
Scaled = 1,
UniformScaled = 2,
EndGridSpace
};
enum EMeshingState : uint8
{
NotMeshed = 0,
PartiallyMeshed,
FullyMeshed
};
enum ECoordinateType : uint8
{
VertexCoordinate,
ImposedCoordinate, // imposted cutting point by thin zone meshing process
IsoUCoordinate,
IsoVCoordinate,
IsoUVCoordinate,
OtherCoordinate
};
namespace GridSpace
{
inline FString ToString(EGridSpace Space)
{
switch (Space)
{
case Default2D:
return FString(TEXT("Default2D"));
case Scaled:
return FString(TEXT("Scaled"));
case UniformScaled:
return FString(TEXT("UniformScaled"));
default:
return FString(TEXT(""));
}
}
} // namespace GridSpace
} // namespace UE::CADKernel