62 lines
1.7 KiB
C++
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
|
|
|