UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Geometry::FGeneralizedCylinderGenerator Class Reference

#include <SweepGenerator.h>

+ Inheritance diagram for UE::Geometry::FGeneralizedCylinderGenerator:

Public Member Functions

void EnableMitering (double InMiterLimit=10)
 
void SetMiterLimitByAngle (double MiterAngleLimitInDeg)
 
virtual GEOMETRYCORE_API FMeshShapeGeneratorGenerate () override
 
- Public Member Functions inherited from UE::Geometry::FSweepGeneratorBase
virtual ~FSweepGeneratorBase ()
 
- Public Member Functions inherited from UE::Geometry::FMeshShapeGenerator
virtual ~FMeshShapeGenerator ()
 
bool HasAttributes () const
 
void ResetAttributes (bool bResetPolygonIDs=false)
 
void Reset ()
 
void SetBufferSizes (int NumVertices, int NumTriangles, int NumUVs, int NumNormals)
 
void ExtendBufferSizes (int AddVertices, int AddTriangles, int AddUVs, int AddNormals)
 
void SetVertex (int Index, const FVector3d &Position)
 
int AppendVertex (const FVector3d &Position)
 
void SetUV (int Index, const FVector2f &UV, int ParentVertex)
 
int AppendUV (const FVector2f &UV, int ParentVertex)
 
void SetNormal (int Index, const FVector3f &Normal, int ParentVertex)
 
int AppendNormal (const FVector3f &Normal, int ParentVertex)
 
void SetTriangle (int Index, const FIndex3i &Tri)
 
void SetTriangle (int Index, int A, int B, int C)
 
void SetTriangle (int Index, int A, int B, int C, bool bClockwiseOverride)
 
int AppendTriangle (int A, int B, int C)
 
void SetTriangleUVs (int Index, const FIndex3i &Tri)
 
void SetTriangleUVs (int Index, int A, int B, int C)
 
void SetTriangleUVs (int Index, int A, int B, int C, bool bClockwiseOverride)
 
void SetTriangleNormals (int Index, const FIndex3i &Tri)
 
void SetTriangleNormals (int Index, int A, int B, int C)
 
void SetTriangleNormals (int Index, int A, int B, int C, bool bClockwiseOverride)
 
void SetTrianglePolygon (int Index, int PolygonID)
 
void SetTriangleWithMatchedUVNormal (int Index, int A, int B, int C)
 

Public Attributes

FPolygon2d CrossSection
 
TArray< FVector3dPath
 
FFrame3d InitialFrame
 
TArray< FFrame3dPathFrames
 
TArray< FVector2dPathScales
 
bool bCapped = false
 
bool bLoop = false
 
ECapType CapType = ECapType::FlatTriangulation
 
double StartScale = 1.0
 
double EndScale = 1.0
 
double MiterLimit = 1.0
 
bool bAlignFramesToSampledTangents = false
 
bool bUVScaleRelativeWorld = false
 
float UnitUVInWorldCoordinates = 100
 
TArray< floatCrossSectionTexCoord
 
TArray< floatPathTexCoord
 
- Public Attributes inherited from UE::Geometry::FSweepGeneratorBase
bool bPolygroupPerQuad = false
 
bool bProfileCurveIsClosed = true
 
- Public Attributes inherited from UE::Geometry::FMeshShapeGenerator
TArray< FVector3dVertices
 
TArray< FVector2fUVs
 
TArray< int > UVParentVertex
 
TArray< FVector3fNormals
 
TArray< int > NormalParentVertex
 
TArray< FIndex3iTriangles
 
TArray< FIndex3iTriangleUVs
 
TArray< FIndex3iTriangleNormals
 
TArray< int > TrianglePolygonIDs
 
bool bReverseOrientation = false
 

Additional Inherited Members

- Static Public Member Functions inherited from UE::Geometry::FMeshShapeGenerator
static FVector3d BilinearInterp (const FVector3d &v00, const FVector3d &v10, const FVector3d &v11, const FVector3d &v01, double tx, double ty)
 
static FVector2d BilinearInterp (const FVector2d &v00, const FVector2d &v10, const FVector2d &v11, const FVector2d &v01, double tx, double ty)
 
static FVector2f BilinearInterp (const FVector2f &v00, const FVector2f &v10, const FVector2f &v11, const FVector2f &v01, float tx, float ty)
 
static FVector3i LinearInterp (const FVector3i &a, const FVector3i &b, double t)
 
- Protected Member Functions inherited from UE::Geometry::FSweepGeneratorBase
GEOMETRYCORE_API void ConstructMeshTopology (const FPolygon2d &CrossSection, const TArrayView< const int32 > &UVSections, const TArrayView< const int32 > &NormalSections, const TArrayView< const int32 > &SharpNormalsAlongLength, bool bEvenlySpaceUVs, const TArrayView< const FVector3d > &Path, int32 NumCrossSections, bool bLoop, const ECapType Caps[2], FVector2f SectionsUVScale, FVector2f CapUVScale, FVector2f CapUVOffset, const TArrayView< const float > &CustomCrossSectionTexCoord={}, const TArrayView< const float > &CustomPathTexCoord={})
 
- Protected Attributes inherited from UE::Geometry::FSweepGeneratorBase
int32 CapVertStart [2]
 
int32 CapNormalStart [2]
 
int32 CapUVStart [2]
 
int32 CapTriangleStart [2]
 
int32 CapPolygonStart [2]
 

Detailed Description

Sweep a 2D Profile Polygon along a 3D Path.

TODO:

  • a custom variant for toruses specifically (would be faster)

Member Function Documentation

◆ EnableMitering()

void UE::Geometry::FGeneralizedCylinderGenerator::EnableMitering ( double  InMiterLimit = 10)
inline

◆ Generate()

FMeshShapeGenerator & FGeneralizedCylinderGenerator::Generate ( )
overridevirtual

Generate the mesh

Implements UE::Geometry::FMeshShapeGenerator.

◆ SetMiterLimitByAngle()

void UE::Geometry::FGeneralizedCylinderGenerator::SetMiterLimitByAngle ( double  MiterAngleLimitInDeg)
inline

Member Data Documentation

◆ bAlignFramesToSampledTangents

bool UE::Geometry::FGeneralizedCylinderGenerator::bAlignFramesToSampledTangents = false

◆ bCapped

bool UE::Geometry::FGeneralizedCylinderGenerator::bCapped = false

◆ bLoop

bool UE::Geometry::FGeneralizedCylinderGenerator::bLoop = false

◆ bUVScaleRelativeWorld

bool UE::Geometry::FGeneralizedCylinderGenerator::bUVScaleRelativeWorld = false

◆ CapType

ECapType UE::Geometry::FGeneralizedCylinderGenerator::CapType = ECapType::FlatTriangulation

◆ CrossSection

FPolygon2d UE::Geometry::FGeneralizedCylinderGenerator::CrossSection

◆ CrossSectionTexCoord

TArray<float> UE::Geometry::FGeneralizedCylinderGenerator::CrossSectionTexCoord

◆ EndScale

double UE::Geometry::FGeneralizedCylinderGenerator::EndScale = 1.0

◆ InitialFrame

FFrame3d UE::Geometry::FGeneralizedCylinderGenerator::InitialFrame

◆ MiterLimit

double UE::Geometry::FGeneralizedCylinderGenerator::MiterLimit = 1.0

◆ Path

TArray<FVector3d> UE::Geometry::FGeneralizedCylinderGenerator::Path

◆ PathFrames

TArray<FFrame3d> UE::Geometry::FGeneralizedCylinderGenerator::PathFrames

◆ PathScales

TArray<FVector2d> UE::Geometry::FGeneralizedCylinderGenerator::PathScales

◆ PathTexCoord

TArray<float> UE::Geometry::FGeneralizedCylinderGenerator::PathTexCoord

◆ StartScale

double UE::Geometry::FGeneralizedCylinderGenerator::StartScale = 1.0

◆ UnitUVInWorldCoordinates

float UE::Geometry::FGeneralizedCylinderGenerator::UnitUVInWorldCoordinates = 100

The documentation for this class was generated from the following files: