UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RevolveUtil Namespace Reference

Functions

GEOMETRYCORE_API void GenerateSweepCurve (const FVector3d &RevolutionAxisOrigin, const FVector3d &RevolutionAxisDirection, double DegreesOffset, double DegreesPerStep, double DownAxisOffset, int TotalNumFrames, TArray< FFrame3d > &SweepCurveOut)
 
GEOMETRYCORE_API void WeldPointsOnAxis (TArray< FVector3d > &ProfileCurve, const FVector3d &RevolutionAxisOrigin, const FVector3d &RevolutionAxisDirection, double Tolerance, TSet< int32 > &ProfileVerticesToWeldOut)
 
GEOMETRYCORE_API bool ProfileIsCCWRelativeRevolve (TArray< FVector3d > &ProfileCurve, const FVector3d &RevolutionAxisOrigin, const FVector3d &RevolutionAxisDirection, bool bProfileCurveIsClosed)
 
GEOMETRYCORE_API void MakeProfileCurveMidpointOfFirstStep (TArray< FVector3d > &ProfileCurve, double DegreesPerStep, const FVector3d &RevolutionAxisOrigin, const FVector3d &RevolutionAxisDirection)
 

Function Documentation

◆ GenerateSweepCurve()

void RevolveUtil::GenerateSweepCurve ( const FVector3d RevolutionAxisOrigin,
const FVector3d RevolutionAxisDirection,
double  DegreesOffset,
double  DegreesPerStep,
double  DownAxisOffset,
int  TotalNumFrames,
TArray< FFrame3d > &  SweepCurveOut 
)

Generates a sweep curve with the initial frame at the origin and the rest rotated around the given axis.

Parameters
RevolutionAxisOrigin
RevolutionAxisDirectionShould be normalized.
DegreesOffsetNumber of degrees to rotate the first frame.
DegreesPerStepNumber of degrees each frame is rotated from the previous
DownAxisOffsetDistance to move each frame up the axis from the previous (for spirals)
TotalNumFramesNumber of frames to create, including the first frame
SweepCurveOutOutput

◆ MakeProfileCurveMidpointOfFirstStep()

void RevolveUtil::MakeProfileCurveMidpointOfFirstStep ( TArray< FVector3d > &  ProfileCurve,
double  DegreesPerStep,
const FVector3d RevolutionAxisOrigin,
const FVector3d RevolutionAxisDirection 
)

Shifts the profile curve in such a way that it becomes the midpoint of the first rotation step (i.e., rotates it back half a step while projecting it outward onto the plane passing through the profile).

◆ ProfileIsCCWRelativeRevolve()

bool RevolveUtil::ProfileIsCCWRelativeRevolve ( TArray< FVector3d > &  ProfileCurve,
const FVector3d RevolutionAxisOrigin,
const FVector3d RevolutionAxisDirection,
bool  bProfileCurveIsClosed 
)

Returns true if the profile curve is counterclockwise relative to the rotation direction. I.e., if you are looking from the side with the revolution axis pointing up and the curve to the left of the axis, the curve should be counterclockwise. If the curve is not closed, the function looks at the bottom of the profile curve relative to the revolution axis and checks whether the outer edge of the bottom goes in the direction that it would on a counterclockwise curve (up, in our example).

Results are undefined if a fully revolved mesh would be self intersecting. Assumes that RevolutionAxisDirection is normalized.

◆ WeldPointsOnAxis()

void RevolveUtil::WeldPointsOnAxis ( TArray< FVector3d > &  ProfileCurve,
const FVector3d RevolutionAxisOrigin,
const FVector3d RevolutionAxisDirection,
double  Tolerance,
TSet< int32 > &  ProfileVerticesToWeldOut 
)

Checks the profile curve for points that lie within a particular tolerance of the revolution axis. If they are found, the points are projected directly onto the revolution axis and their indices are added to a set of welded points.

Assumes that RevolutionAxisDirection is normalized.