code: void GenerateFolliculeMask ( [FRDGBuilder](API\Runtime\RenderCore\FRDGBuilder) & GraphBuilder, [FGlobalShaderMap](API\Runtime\RenderCore\FGlobalShaderMap) * ShaderMap, const EPixelFormat Format, const FIntPoint Resolution, const uint32 MipCount, const uint32 KernelSizeInPixels, const uint32 Channel, const int32 LODIndex, [FHairStrandsRestRootResource](API\Plugins\HairStrandsCore\FHairStrandsRestRootResource) * RestResources, FRDGTextureRef & OutTexture )


className: GetBufferTotalNumBytes

module: HairStrandsCore

code: uint32 GetBufferTotalNumBytes ( const [FRDGExternalBuffer](API\Runtime\Renderer\FRDGExternalBuffer) & In )


code: HAIRSTRANDSCORE_API const [FShaderParametersMetadata](API\Runtime\RenderCore\FShaderParametersMetadata) * GetForwardDeclaredShaderParametersStructMetadata ( const [FHairCardsVertexFactoryUniformShaderParameters](API\Plugins\HairStrandsCore\FHairCardsVertexFactoryUniformSh-) * DummyPtr )


code: HAIRSTRANDSCORE_API const [FShaderParametersMetadata](API\Runtime\RenderCore\FShaderParametersMetadata) * GetForwardDeclaredShaderParametersStructMetadata ( const [FHairStrandsVertexFactoryUniformShaderParameters](API\Plugins\HairStrandsCore\FHairStrandsVertexFactoryUniform-) * DummyPtr )


className: GetHairGroupDebugColor

description: Return the debug color of an hair group

code: const [FLinearColor](API\Runtime\Core\Math\FLinearColor) GetHairGroupDebugColor ( int32 GroupIt )


className: GetHairResourceLoadingType

code: [EHairResourceLoadingType](API\Plugins\HairStrandsCore\EHairResourceLoadingType) GetHairResourceLoadingType ( EHairGeometryType InGeometryType, int32 InLODIndex )


className: GetHairStrandsMaxLength

code: float GetHairStrandsMaxLength ( const [FHairStrandsDatas](API\Plugins\HairStrandsCore\FHairStrandsDatas) & In )


className: GetHairStrandsMaxRadius

code: float GetHairStrandsMaxRadius ( const [FHairStrandsDatas](API\Plugins\HairStrandsCore\FHairStrandsDatas) & In )


className: GetHairStrandsMaxSectionCount

description: Return the max number of section/triangle a skeletal mesh can have. After this count, binding will be disabled.

code: uint32 GetHairStrandsMaxSectionCount()


className: HairStrandsTriangleType

code: enum HairStrandsTriangleType { RestPose, DeformedPose, }


className: GetHairStrandsMaxTriangleCount

code: uint32 GetHairStrandsMaxTriangleCount()


className: HasHairAttributeFlags

code: bool HasHairAttributeFlags ( uint32 In, [EHairAttributeFlags](API\Plugins\HairStrandsCore\EHairAttributeFlags) InFlag )


code: FCriticalSection * GetCriticalSection()


code: int32 GetCurrentFrameIndex() const


code: float GetInterpolationFactor() const


code: const [FGroomCacheAnimationData](API\Plugins\HairStrandsCore\FGroomCacheAnimationData) & GetNextFrameBuffer()


code: int32 GetNextFrameIndex() const


code: virtual ~IGroomCacheBuffers()


className: IGroomCacheBuffers

description: Interface to access GroomCache buffers for playback

code: class IGroomCacheBuffers


className: HasHairAttribute

code: bool HasHairAttribute ( uint32 In, [EHairAttribute](API\Plugins\HairStrandsCore\EHairAttribute) InAttribute )


code: static [IGroomCacheStreamingManager](API\Plugins\HairStrandsCore\IGroomCacheStreamingManager) & Get()


description:
Returns a pointer to the cached GroomCacheAnimationData.
The cached data or null if it's not loaded yet

code: const [FGroomCacheAnimationData](API\Plugins\HairStrandsCore\FGroomCacheAnimationData) * MapAnimationData ( const [UGroomCache](API\Plugins\HairStrandsCore\UGroomCache) * GroomCache, uint32 ChunkIndex )


description: Prefetch data for the component. Data is automatically prefetched when initially registering the component but exposing this may be useful in other cases (eg. when seeking, etc.)

code: void PrefetchData ( [UGroomComponent](API\Plugins\HairStrandsCore\UGroomComponent) * GroomComponent )


code: const [FGroomCacheAnimationData](API\Plugins\HairStrandsCore\FGroomCacheAnimationData) & GetCurrentFrameBuffer()


description: Registers a new component to the streaming manager.

code: void RegisterComponent ( [UGroomComponent](API\Plugins\HairStrandsCore\UGroomComponent) * GroomComponent )


description: Cleans up the resources managed by the streaming manager

code: void Shutdown()


description: Releases pointer to the cachedGroomCacheAnimationData. Must be called for every successful call to MapAnimationData.

code: void UnmapAnimationData ( const [UGroomCache](API\Plugins\HairStrandsCore\UGroomCache) * GroomCache, uint32 ChunkIndex )


description: Removes the component from the streaming manager.

code: void UnregisterComponent ( [UGroomComponent](API\Plugins\HairStrandsCore\UGroomComponent) * GroomComponent )


code: virtual ~IGroomCacheStreamingManager()


className: IGroomCacheStreamingManager

code: struct IGroomCacheStreamingManager : public [IStreamingManager](API\Runtime\Engine\IStreamingManager)


className: BendOffset

code: static BendOffset = 1;


description: Get the resource name

code: virtual [FString](API\Runtime\Core\Containers\FString) GetFriendlyName() const


description: Set the asset that will be used to affect the buffer

code: void Initialize ( const [FHairStrandsRestResource](API\Plugins\HairStrandsCore\FHairStrandsRestResource) * HairStrandsRestResource, const [FHairStrandsDeformedResource](API\Plugins\HairStrandsCore\FHairStrandsDeformedResource) * HairStrandsDeformedResource, const [FHairStrandsRestRootResource](API\Plugins\HairStrandsCore\FHairStrandsRestRootResource) * HairStrandsRestRootResource, const [FHairStrandsDeformedRootResource](API\Plugins\HairStrandsCore\FHairStrandsDeformedRootResource) * HairStrandsDeformedRootResource, const [TStaticArray](API\Runtime\Core\Containers\TStaticArray)< float, 32 *NumScales > & InParamsScale )


description: Init the buffer

code: virtual void InitRHI ( [FRHICommandListBase](API\Runtime\RHI\FRHICommandListBase) & RHICmdList )


description: Release the buffer

code: virtual void ReleaseRHI()


description: Transfer CPU datas to GPU

code: void Transfer ( [FRDGBuilder](API\Runtime\RenderCore\FRDGBuilder) & GraphBuilder, const [TStaticArray](API\Runtime\Core\Containers\TStaticArray)< float, 32 *NumScales > & InParamsScale )


code: void Update ( const [FHairStrandsRestResource](API\Plugins\HairStrandsCore\FHairStrandsRestResource) * HairStrandsRestResource, const [FHairStrandsDeformedResource](API\Plugins\HairStrandsCore\FHairStrandsDeformedResource) * HairStrandsDeformedResource, const [FHairStrandsRestRootResource](API\Plugins\HairStrandsCore\FHairStrandsRestRootResource) * HairStrandsRestRootResource, const [FHairStrandsDeformedRootResource](API\Plugins\HairStrandsCore\FHairStrandsDeformedRootResource) * HairStrandsDeformedRootResource )


className: FNDIHairStrandsBuffer

description: Render buffers that will be used in hlsl functions

code: struct FNDIHairStrandsBuffer : public [FRenderResource](API\Runtime\RenderCore\FRenderResource)

BoundingBoxBuffer

type: FNiagaraPooledR...

description: Bounding Box Buffer

BoundingBoxOffsets

description: Bounding box offsets

bValidGeometryType

type: bool

description: Valid geometry type for hair (strands, cards, mesh)

DeformedPositionBuffer

type: TRefCountPtr<F...

description: Deformed position buffer in case no resource are there

ParamsScale

type: TStaticArray< f...

description: Scales along the strand

ParamsScaleBuffer

description: Params scale buffer

SourceDeformedResources

type: constFHairStra...

description: The strand deformed resource to write into

SourceDeformedRootResources

description: The strand root resource to write into

SourceRestResources

description: The strand asset resource from which to sample

SourceRestRootResources

description: The strand root resource to write into


code: void CopyDatas ( const [FNDIHairStrandsData](API\Plugins\HairStrandsCore\Niagara\FNDIHairStrandsData) * OtherDatas )


description: Update the buffers

code: void Update ( [UNiagaraDataInterfaceHairStrands](API\Plugins\HairStrandsCore\Niagara\UNiagaraDataInterfaceHairStrands) * Interface, [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance, const [FHairStrandsBulkData](API\Plugins\HairStrandsCore\FHairStrandsBulkData) * HairStrandsDatas, [UGroomAsset](API\Plugins\HairStrandsCore\UGroomAsset) * GroomAsset, const int32 GroupIndex, const int32 LODIndex, const FTransform & LocalToWorld, const float DeltaSeconds )


description: Initialize the buffers

code: bool Init ( class [UNiagaraDataInterfaceHairStrands](API\Plugins\HairStrandsCore\Niagara\UNiagaraDataInterfaceHairStrands) * Interface, [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance )


description: Release the buffers

code: void Release()


className: FNDIHairStrandsData

description: Data stored per strand base instance

code: struct FNDIHairStrandsData

AirDrag

type: float

description: Coefficient between 0 and 1 to be used for the air drag

AirVelocity

type: FVector

description: Velocity of the surrounding air in cm/s

BendDamping

description: Damping for the bend constraint between 0 and 1

BendStiffness

description: Stiffness for the bend constraint in GPa

BindingType

type: EHairBindingTyp...

description: Binding type between the groom asset and the attached skeletal mesh

BoneAngularAcceleration

description: Bone Angular Acceleration

BoneAngularVelocity

description: Bone Angular Velocity

BoneLinearAcceleration

description: Bone Linear Acceleration

BoneLinearVelocity

description: Bone Linear Velocity

BoneTransform

type: FTransform

description: Bone transform that will be used for local strands simulation

bSkinningTransfer

description: Skinning transfer from a source to a target skelmesh

CollisionRadius

description: Radius scale along the strand

ForceReset

description: Force reset simulation

GlobalInterpolation

description: Global Interpolation

GravityPreloading

description: Optimisation of the rest state configuration to compensate from the gravity

GravityVector

description: Acceleration vector in cm/s2 to be used for the gravity

GridDimension

type: FIntVector

description: Grid Dimension used to compute the viscosity forces

HairGroupInstance

type: FHairGroupInsta...

description: Hair group instance

HairGroupInstSource

type: TWeakObjectPtr<...

description: Source component of the hair group instance

HairStrandsBuffer

type: FNDIHairStrands...

description: Strands Gpu buffer

IterationCount

description: Number of iterations for the constraint solver

KineticFriction

description: Kinetic friction used for collision against the physics asset

LocalSimulation

description: Check if the simulation is running in local coordinate

NumStrands

description: Number of strands

ParamsScale

description: Scales along the strand

PreviousBoneAngularVelocity

description: Bone Previous Angular Velocity

PreviousBoneLinearVelocity

description: Bone Previous Linear Velocity

ProjectBend

description: Enable the solve of the bend constraint during the xpbd loop

ProjectCollision

description: Enable ther projection of the collision constraint after the xpbd loop

ProjectStretch

description: Enable the projection of the stretch constraint after the xpbd loop

SkeletalMeshes

description: List of all the skel meshes in the hierarchy

SolveBend

description: Velocity of the surrounding air in cm/s

SolveCollision

description: Enable the solve of the collision constraint during the xpbd loop

SolveStretch

description: Enable the solve of the stretch constraint during the xpbd loop

StaticFriction

description: Static friction used for collision against the physics asset

StrandsDensity

description: Density of the strands in g/cm3

StrandsSize

description: Strand size

StrandsSmoothing

description: Smoothing between 0 and 1 of the incoming guides curves for better stability

StrandsThickness

description: Strands thickness in cm that will be used for mass and inertia computation

StrandsViscosity

description: Radius that will be used for the collision detection against the physics asset

StretchDamping

description: Damping for the stretch constraint between 0 and 1

StretchStiffness

description: Stiffness for the stretch constraint in GPa

SubSteps

description: Number of substeps to be used

TickCount

description: Tick Count

TickingGroup

type: ETickingGroup

description: The instance ticking group

WorldTransform

description: Cached World transform.


description: Get the data that will be passed to render

code: virtual void ConsumePerInstanceDataFromGameThread ( void * PerInstanceData, const [FNiagaraSystemInstanceID](API\Plugins\NiagaraCore\FNiagaraSystemInstanceID) & Instance )


description: Destroy the proxy data if necessary

code: void DestroyPerInstanceData ( const [FNiagaraSystemInstanceID](API\Plugins\NiagaraCore\FNiagaraSystemInstanceID) & SystemInstance )


description: Initialize the Proxy data strands buffer

code: void InitializePerInstanceData ( const [FNiagaraSystemInstanceID](API\Plugins\NiagaraCore\FNiagaraSystemInstanceID) & SystemInstance )


description: Get the size of the data that will be passed to render

code: virtual int32 PerInstanceDataPassedToRenderThreadSize() const


description: MGPU buffer copy after simulation

code: virtual void PostSimulate ( const [FNDIGpuComputePostSimulateContext](API\Plugins\Niagara\FNDIGpuComputePostSimulateContex-) & Context )


className: FNDIHairStrandsProxy

description: Proxy to send data to gpu

code: struct FNDIHairStrandsProxy : public [FNiagaraDataInterfaceProxy](API\Plugins\Niagara\FNiagaraDataInterfaceProxy)

SystemInstancesToProxyData

type: TMap<FNiagaraS...

description: List of proxy data for each system instances


description: Launch all pre stage functions

code: virtual void PreStage ( const [FNDIGpuComputePreStageContext](API\Plugins\Niagara\FNDIGpuComputePreStageContext) & Context )


className: FNDIPressureGridProxy

description: Proxy to send data to gpu

code: struct FNDIPressureGridProxy : public [FNDIVelocityGridProxy](API\Plugins\HairStrandsCore\Niagara\FNDIVelocityGridProxy)


description: Get the resource name

code: virtual [FString](API\Runtime\Core\Containers\FString) GetFriendlyName() const


description: Set the grid size

code: void Initialize ( const FIntVector GridSize, const int32 NumAttributes )


description: Init the buffer

code: virtual void InitRHI ( [FRHICommandListBase](API\Runtime\RHI\FRHICommandListBase) & RHICmdList )


className: FNDIVelocityGridBuffer

description: Render buffers that will be used in hlsl functions

code: struct FNDIVelocityGridBuffer : public [FRenderResource](API\Runtime\RenderCore\FRenderResource)

GridDataBuffer

description: Grid data texture

GridSize

description: Grid size that will be used for the collision

NumAttributes

description: Num attributes in the buffer


description: Initialize the buffers

code: bool Init ( const FIntVector & InGridSize, const int32 InNumAttributes, [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance )


description: Resize the buffers

code: void Resize()


description: Swap the current and the destination data

code: void Swap()


description: Release the buffer

code: virtual void ReleaseRHI()


className: FNDIVelocityGridData

description: Data stored per strand base instance

code: struct FNDIVelocityGridData

CurrentGridBuffer

type: FNDIVelocityGri...

description: Pointer to the current buffer

DestinationGridBuffer

description: Pointer to the destination buffer

GridSize

description: Grid Size

NeedResize

description: Need a resize

description: Num Attributes

WorldInverse

type: FMatrix

description: Inverse world transform

WorldTransform

description: World Transform


code: virtual void ConsumePerInstanceDataFromGameThread ( void * PerInstanceData, const [FNiagaraSystemInstanceID](API\Plugins\NiagaraCore\FNiagaraSystemInstanceID) & Instance )


description: Get the dispatch arguments for this instance.

code: virtual void GetDispatchArgs ( const [FNDIGpuComputeDispatchArgsGenContext](API\Plugins\Niagara\FNDIGpuComputeDispatchArgsGenCon-) & Context )


description: Called at the end of each simulate tick.


description: Launch all post stage functions

code: virtual void PostStage ( const [FNDIGpuComputePostStageContext](API\Plugins\Niagara\FNDIGpuComputePostStageContext) & Context )


description: Reset the buffers

code: virtual void ResetData ( const [FNDIGpuComputeResetContext](API\Plugins\Niagara\FNDIGpuComputeResetContext) & Context )


className: FNDIVelocityGridProxy

description: Proxy to send data to gpu

code: struct FNDIVelocityGridProxy : public [FNiagaraDataInterfaceProxyRW](API\Plugins\Niagara\FNiagaraDataInterfaceProxyRW)


className: MaxDelay

code: static MaxDelay = 2;


className: RadiusOffset

code: static RadiusOffset = 2;


className: NumScales

code: static NumScales = 4;


className: StretchOffset

code: static StretchOffset = 0;


className: ThicknessOffset

code: static ThicknessOffset = 3;


description: Add external torque to the angular velocity and advect node orientation

code: void AdvectNodeOrientation ( FVectorVMExternalFunctionContext & Context )


description: Add external force to the linear velocity and advect node position

code: void AdvectNodePosition ( FVectorVMExternalFunctionContext & Context )


description: Allows the generic class defaults version of this class to specify any dependencies/version/etc that might invalidate the compile. It should never depend on the value of specific properties.

code: virtual bool AppendCompileHash ( [FNiagaraCompileHashVisitor](API\Plugins\Niagara\FNiagaraCompileHashVisitor) * InVisitor ) const


description: Update the root node position based on the current transform

code: void AttachNodeOrientation ( FVectorVMExternalFunctionContext & Context )


description: Update the root node orientation based on the current transform

code: void AttachNodePosition ( FVectorVMExternalFunctionContext & Context )


description: Attach the node position and orientation to the transform or to the skin cache

code: void AttachNodeState ( FVectorVMExternalFunctionContext & Context )


description: Build the groom bounding box

code: void BuildBoundingBox ( FVectorVMExternalFunctionContext & Context )


code: virtual bool CanExecuteOnTarget ( [ENiagaraSimTarget](API\Plugins\Niagara\ENiagaraSimTarget) Target ) const


description: When filling the data inside the set function you would ask for parameters using the same structure. Note: This function is only called on the CDO only not the instance

code: virtual void BuildShaderParameters ( [FNiagaraShaderParametersBuilder](API\Plugins\NiagaraShader\FNiagaraShaderParametersBuilder) & ShaderParametersBuilder ) const


code: virtual ETickingGroup CalculateTickGroup ( const void * PerInstanceData ) const


description: Compute the air drag force

code: void ComputeAirDragForce ( FVectorVMExternalFunctionContext & Context )


description: Compute the rest direction

code: void ComputeEdgeDirection ( FVectorVMExternalFunctionContext & Context )


description: Compute the edge length (diff between 2 nodes positions)

code: void ComputeEdgeLength ( FVectorVMExternalFunctionContext & Context )


description: Compute the edge orientation (diff between 2 nodes orientations)

code: void ComputeEdgeRotation ( FVectorVMExternalFunctionContext & Context )


description: Get the rest position and orientation relative to the transform or to the skin cache

code: void ComputeLocalState ( FVectorVMExternalFunctionContext & Context )


description: Compute the strands material frame

code: void ComputeMaterialFrame ( FVectorVMExternalFunctionContext & Context )


description: Get the strand node inertia

code: void ComputeNodeInertia ( FVectorVMExternalFunctionContext & Context )


description: Get the strand node mass

code: void ComputeNodeMass ( FVectorVMExternalFunctionContext & Context )


description: Get the strand node orientation in world space

code: void ComputeNodeOrientation ( FVectorVMExternalFunctionContext & Context )


description: Get the strand node position in world space

code: void ComputeNodePosition ( FVectorVMExternalFunctionContext & Context )


description: Compute the rest local orientation

code: void ComputeRestOrientation ( FVectorVMExternalFunctionContext & Context )


description: Compute the rest local position

code: void ComputeRestPosition ( FVectorVMExternalFunctionContext & Context )


description: Copy one niagara DI to this

code: virtual bool CopyToInternal ( [UNiagaraDataInterface](API\Plugins\Niagara\UNiagaraDataInterface) * Destination ) const


description: Destroys the per instance data for this interface.

code: virtual void DestroyPerInstanceData ( void * PerInstanceData, [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance )


description: Determines if this DataInterface is the same as another.

code: virtual bool Equals ( const [UNiagaraDataInterface](API\Plugins\Niagara\UNiagaraDataInterface) * Other ) const


description: Eval the skinned position given a rest position

code: void EvalSkinnedPosition ( FVectorVMExternalFunctionContext & Context )


description: Extract datas and resources

code: void ExtractDatasAndResources ( [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance, [FHairStrandsRestResource](API\Plugins\HairStrandsCore\FHairStrandsRestResource) *& OutStrandsRestResource, [FHairStrandsDeformedResource](API\Plugins\HairStrandsCore\FHairStrandsDeformedResource) *& OutStrandsDeformedResource, [FHairStrandsRestRootResource](API\Plugins\HairStrandsCore\FHairStrandsRestRootResource) *& OutStrandsRestRootResource, [FHairStrandsDeformedRootResource](API\Plugins\HairStrandsCore\FHairStrandsDeformedRootResource) *& OutStrandsDeformedRootResource, [UGroomAsset](API\Plugins\HairStrandsCore\UGroomAsset) *& OutGroomAsset, int32 & OutGroupIndex, int32 & OutLODIndex, FTransform & OutLocalToWorld )


description: EndINiagaraSimCacheCustomStorageInterfaceInterface Update the source component

code: void ExtractSourceComponent ( [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance )


code: void GetAirDrag ( FVectorVMExternalFunctionContext & Context )


code: void GetAirVelocity ( FVectorVMExternalFunctionContext & Context )


code: void GetBendDamping ( FVectorVMExternalFunctionContext & Context )


code: void GetBendScale ( FVectorVMExternalFunctionContext & Context )


code: void GetBendStiffness ( FVectorVMExternalFunctionContext & Context )


description: Get the bounding box center

code: void GetBoundingBox ( FVectorVMExternalFunctionContext & Context )


code: void GetCollisionRadius ( FVectorVMExternalFunctionContext & Context )


description: GPU simulation functionality

code: virtual void GetCommonHLSL ( [FString](API\Runtime\Core\Containers\FString) & OutHLSL )


code: virtual bool GetFunctionHLSL ( const [FNiagaraDataInterfaceGPUParamInfo](API\Plugins\NiagaraShader\FNiagaraDataInterfaceGPUParamInf-) & ParamInfo, const [FNiagaraDataInterfaceGeneratedFunction](API\Plugins\NiagaraShader\FNiagaraDataInterfaceGeneratedFu-) & FunctionInfo, int FunctionInstanceIndex, [FString](API\Runtime\Core\Containers\FString) & OutHLSL )


description: BeginUNiagaraDataInterfaceInterface

code: virtual void GetFunctions ( [TArray](API\Runtime\Core\Containers\TArray)< [FNiagaraFunctionSignature](API\Plugins\Niagara\FNiagaraFunctionSignature) > & OutFunctions )


code: void GetGravityPreloading ( FVectorVMExternalFunctionContext & Context )


code: void GetGravityVector ( FVectorVMExternalFunctionContext & Context )


code: void GetGridDimension ( FVectorVMExternalFunctionContext & Context )


code: void GetIterationCount ( FVectorVMExternalFunctionContext & Context )


code: void GetKineticFriction ( FVectorVMExternalFunctionContext & Context )


description: Get the number of strands

code: void GetNumStrands ( FVectorVMExternalFunctionContext & Context )


code: virtual void GetParameterDefinitionHLSL ( const [FNiagaraDataInterfaceGPUParamInfo](API\Plugins\NiagaraShader\FNiagaraDataInterfaceGPUParamInf-) & ParamInfo, [FString](API\Runtime\Core\Containers\FString) & OutHLSL )


description: Get the strand vertex position in world space

code: void GetPointPosition ( FVectorVMExternalFunctionContext & Context )


code: void GetProjectStretch ( FVectorVMExternalFunctionContext & Context )


code: void GetProjectBend ( FVectorVMExternalFunctionContext & Context )


code: void GetProjectCollision ( FVectorVMExternalFunctionContext & Context )


code: void GetRadiusScale ( FVectorVMExternalFunctionContext & Context )


description: Get the sample state given an index

code: void GetSampleState ( FVectorVMExternalFunctionContext & Context )


code: void GetSolveBend ( FVectorVMExternalFunctionContext & Context )


code: void GetSolveCollision ( FVectorVMExternalFunctionContext & Context )


code: void GetSolveStretch ( FVectorVMExternalFunctionContext & Context )


code: void GetStaticFriction ( FVectorVMExternalFunctionContext & Context )


code: void GetStrandsDensity ( FVectorVMExternalFunctionContext & Context )


description: Get the groom asset datas

code: void GetStrandSize ( FVectorVMExternalFunctionContext & Context )


code: void GetStrandsThickness ( FVectorVMExternalFunctionContext & Context )


code: void GetStrandsSmoothing ( FVectorVMExternalFunctionContext & Context )


code: void GetStrandsViscosity ( FVectorVMExternalFunctionContext & Context )


code: void GetStretchDamping ( FVectorVMExternalFunctionContext & Context )


code: void GetSubSteps ( FVectorVMExternalFunctionContext & Context )


code: void GetThicknessScale ( FVectorVMExternalFunctionContext & Context )


description: This function allows you to preserve a list of attributes when building a renderer only cache. The UsageContext will be either aUNiagaraSystemor aUNiagaraEmitterand can be used to scope your variables accordingly. For example, if you were to require 'Particles.MyAttribute' in order to process the cache results you would need to convert this into 'MyEmitter.Particles.MyAttribute' by checking the UsageContext is aUNiagaraEmitterand then creating the variable from the unique name.

code: virtual [TArray](API\Runtime\Core\Containers\TArray)< [FNiagaraVariableBase](API\Plugins\Niagara\FNiagaraVariableBase) > GetSimCacheRendererAttributes ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * UsageContext ) const


description: Returns the delegate for the passed function signature.

code: virtual void GetVMExternalFunction ( const [FVMExternalFunctionBindingInfo](API\Plugins\Niagara\FVMExternalFunctionBindingInfo) & BindingInfo, void * InstanceData, FVMExternalFunction & OutFunc )


description: Get the world inverse

code: void GetWorldInverse ( FVectorVMExternalFunctionContext & Context )


code: void GetStretchStiffness ( FVectorVMExternalFunctionContext & Context )


code: void GetStretchScale ( FVectorVMExternalFunctionContext & Context )


description: Get the world transform

code: void GetWorldTransform ( FVectorVMExternalFunctionContext & Context )


description: Check if we have a global interpolation

code: void HasGlobalInterpolation ( FVectorVMExternalFunctionContext & Context )


code: virtual bool HasPreSimulateTick() const


code: virtual bool HasTickGroupPrereqs() const


description: Init the samples along the strands that will be used to transfer informations to the grid

code: void InitGridSamples ( FVectorVMExternalFunctionContext & Context )


description: Initializes the per instance data for this interface. Returns false if there was some error and the simulation should be disabled.

code: virtual bool InitPerInstanceData ( void * PerInstanceData, [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance )


description: Check if the component is Valid

code: bool IsComponentValid() const


description: Check if we need a rest pose update

code: void NeedRestUpdate ( FVectorVMExternalFunctionContext & Context )


description: Check if we need or not a simulation reset

code: void NeedSimulationReset ( FVectorVMExternalFunctionContext & Context )


description: Returns the size of the per instance data for this interface. 0 if this interface has no per instance data. Must depend solely on the class of the interface and not on any particular member data of a individual interface.

code: virtual int32 PerInstanceDataSize() const


description: Ticks the per instance data for this interface, if it has any.

code: virtual bool PerInstanceTick ( void * PerInstanceData, [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance, float DeltaSeconds )


description: UObjectInterface

code: virtual void PostInitProperties()


description: Project the angular spring material

code: void ProjectAngularSpringMaterial ( FVectorVMExternalFunctionContext & Context )


description: Project the bend rod material

code: void ProjectBendRodMaterial ( FVectorVMExternalFunctionContext & Context )


description: Project the distance spring material

code: void ProjectDistanceSpringMaterial ( FVectorVMExternalFunctionContext & Context )


description: Project the static collision constraint

code: void ProjectHardCollisionConstraint ( FVectorVMExternalFunctionContext & Context )


description: Project the soft collision constraint

code: void ProjectSoftCollisionConstraint ( FVectorVMExternalFunctionContext & Context )


description: Project the stretch rod material

code: void ProjectStretchRodMaterial ( FVectorVMExternalFunctionContext & Context )


description: This will not be called if PerInstanceDataPassedToRenderThreadSize is 0.

code: virtual void ProvidePerInstanceDataForRenderThread ( void * DataForRenderThread, void * PerInstanceData, const [FNiagaraSystemInstanceID](API\Plugins\NiagaraCore\FNiagaraSystemInstanceID) & SystemInstance )


description: Reset the bounding box extent

code: void ResetBoundingBox ( FVectorVMExternalFunctionContext & Context )


description: Reset the point position to be the rest one

code: void ResetPointPosition ( FVectorVMExternalFunctionContext & Context )


description: Set the shader parameters will only be called if the data interface provided shader parameters. You must write the parameters in the order you added them to the structure.

code: virtual void SetShaderParameters ( const [FNiagaraDataInterfaceSetShaderParametersContext](API\Plugins\Niagara\FNiagaraDataInterfaceSetShaderPa-) & Context ) const


description: Setup the distance spring material

code: void SetupDistanceSpringMaterial ( FVectorVMExternalFunctionContext & Context )


description: Setup the angular spring material

code: void SetupAngularSpringMaterial ( FVectorVMExternalFunctionContext & Context )


description: Setup the bend rod material

code: void SetupBendRodMaterial ( FVectorVMExternalFunctionContext & Context )


description: Setup the soft collision constraint

code: void SetupSoftCollisionConstraint ( FVectorVMExternalFunctionContext & Context )


description: Setup the stretch rod material

code: void SetupStretchRodMaterial ( FVectorVMExternalFunctionContext & Context )


description: EndUNiagaraDataInterfaceInterface BeginINiagaraSimCacheCustomStorageInterfaceInterface

code: virtual void SimCachePostReadFrame ( void * OptionalPerInstanceData, [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance )


description: Solve the angular spring material

code: void SolveAngularSpringMaterial ( FVectorVMExternalFunctionContext & Context )


description: Solve the bend rod material

code: void SolveBendRodMaterial ( FVectorVMExternalFunctionContext & Context )


description: Solve the distance spring material

code: void SolveDistanceSpringMaterial ( FVectorVMExternalFunctionContext & Context )


description: Solve the static collision constraint

code: void SolveHardCollisionConstraint ( FVectorVMExternalFunctionContext & Context )


description: Solve the soft collision constraint

code: void SolveSoftCollisionConstraint ( FVectorVMExternalFunctionContext & Context )


description: Solve the stretch rod material

code: void SolveStretchRodMaterial ( FVectorVMExternalFunctionContext & Context )


description: Update the node linear velocity based on the node position difference

code: void UpdateLinearVelocity ( FVectorVMExternalFunctionContext & Context )


description: Update the node angular velocity based on the node orientation difference

code: void UpdateAngularVelocity ( FVectorVMExternalFunctionContext & Context )


description: Update the strands material frame

code: void UpdateMaterialFrame ( FVectorVMExternalFunctionContext & Context )


description: Update the node position and orientation based on rbf transfer

code: void UpdateNodeState ( FVectorVMExternalFunctionContext & Context )


description: Report the node displacement onto the points position

code: void UpdatePointPosition ( FVectorVMExternalFunctionContext & Context )


code: UNiagaraDataInterfaceHairStrands ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UNiagaraDataInterfaceHairStrands

description: Data Interface for the strand base

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(EditInlineNew, Category="Strands", Meta=(DisplayName="Hair Strands")) class UNiagaraDataInterfaceHairStrands : public [UNiagaraDataInterface](API\Plugins\Niagara\UNiagaraDataInterface), public [INiagaraSimCacheCustomStorageInterface](API\Plugins\Niagara\INiagaraSimCacheCustomStorageInt-)

DefaultSource

type: TObjectPtr<UGr...

description: Hair Strands Asset used to sample from when not overridden by a source actor from the scene.

SourceActor

type: TObjectPtr<AAc...

description: The source actor from which to sample

SourceComponent

description: The source component from which to sample


description: GPU simulation functionality

code: virtual bool AppendCompileHash ( [FNiagaraCompileHashVisitor](API\Plugins\Niagara\FNiagaraCompileHashVisitor) * InVisitor ) const


description: Build the velocity field

code: void BuildDistanceField ( FVectorVMExternalFunctionContext & Context )


description: Build the Density Field

code: void BuildDensityField ( FVectorVMExternalFunctionContext & Context )


description: Compute the solid weights

code: void ComputeBoundaryWeights ( FVectorVMExternalFunctionContext & Context )


description: Allows data interfaces to provide common functionality that will be shared across interfaces on that type.

code: virtual void GetCommonHLSL ( [FString](API\Runtime\Core\Containers\FString) & OutHLSL )


description: Get Density Field

code: void GetDensityField ( FVectorVMExternalFunctionContext & Context )


code: virtual bool GetFunctionHLSL ( const [FNiagaraDataInterfaceGPUParamInfo](API\Plugins\NiagaraShader\FNiagaraDataInterfaceGPUParamInf-) & ParamInfo, const [FNiagaraDataInterfaceGeneratedFunction](API\Plugins\NiagaraShader\FNiagaraDataInterfaceGeneratedFu-) & FunctionInfo, int FunctionInstanceIndex, [FString](API\Runtime\Core\Containers\FString) & OutHLSL )


description: UNiagaraDataInterfaceInterface

code: virtual void GetFunctions ( [TArray](API\Runtime\Core\Containers\TArray)< [FNiagaraFunctionSignature](API\Plugins\Niagara\FNiagaraFunctionSignature) > & OutFunctions )


description: Get Node Position

code: void GetNodePosition ( FVectorVMExternalFunctionContext & Context )


description: GPU simulation functionality

code: virtual void GetParameterDefinitionHLSL ( const [FNiagaraDataInterfaceGPUParamInfo](API\Plugins\NiagaraShader\FNiagaraDataInterfaceGPUParamInf-) & ParamInfo, [FString](API\Runtime\Core\Containers\FString) & OutHLSL )


description: Returns the delegate for the passed function signature.

code: virtual void GetVMExternalFunction ( const [FVMExternalFunctionBindingInfo](API\Plugins\Niagara\FVMExternalFunctionBindingInfo) & BindingInfo, void * InstanceData, FVMExternalFunction & OutFunc )


code: virtual bool HasPreSimulateTick() const


description: Scale Cell Fields

code: void ScaleCellFields ( FVectorVMExternalFunctionContext & Context )


description: Set the solid boundary

code: void SetSolidBoundary ( FVectorVMExternalFunctionContext & Context )


description: Project the velocity field to be divergence free

code: void SolveGridPressure ( FVectorVMExternalFunctionContext & Context )


description: Update the deformation gradient

code: void UpdateDeformationGradient ( FVectorVMExternalFunctionContext & Context )


code: UNiagaraDataInterfacePressureGrid ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


description: GPU simulation functionality

code: virtual bool AppendCompileHash ( [FNiagaraCompileHashVisitor](API\Plugins\Niagara\FNiagaraCompileHashVisitor) * InVisitor ) const


className: UNiagaraDataInterfacePressureGrid

description: Data Interface for the strand base

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(EditInlineNew, Category="Grid", Meta=(DisplayName="Pressure Grid")) class UNiagaraDataInterfacePressureGrid : public [UNiagaraDataInterfaceVelocityGrid](API\Plugins\HairStrandsCore\Niagara\UNiagaraDataInterfaceVelocityGri-)


description: When filling the data inside the set function you would ask for parameters using the same structure. Note: This function is only called on the CDO only not the instance

code: virtual void BuildShaderParameters ( [FNiagaraShaderParametersBuilder](API\Plugins\NiagaraShader\FNiagaraShaderParametersBuilder) & ShaderParametersBuilder ) const


description: Build the velocity field

code: void BuildVelocityField ( FVectorVMExternalFunctionContext & Context )


code: virtual bool CanExecuteOnTarget ( [ENiagaraSimTarget](API\Plugins\Niagara\ENiagaraSimTarget) Target ) const


description: Compute the grid Size (Origin and length)

code: void ComputeGridSize ( FVectorVMExternalFunctionContext & Context )


description: Copy one niagara DI to this

code: virtual bool CopyToInternal ( [UNiagaraDataInterface](API\Plugins\Niagara\UNiagaraDataInterface) * Destination ) const


description: Destroys the per instance data for this interface.

code: virtual void DestroyPerInstanceData ( void * PerInstanceData, [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance )


description: Determines if this DataInterface is the same as another.

code: virtual bool Equals ( const [UNiagaraDataInterface](API\Plugins\Niagara\UNiagaraDataInterface) * Other ) const


code: virtual void GetCommonHLSL ( [FString](API\Runtime\Core\Containers\FString) & OutHLSL )


code: virtual bool GetFunctionHLSL ( const [FNiagaraDataInterfaceGPUParamInfo](API\Plugins\NiagaraShader\FNiagaraDataInterfaceGPUParamInf-) & ParamInfo, const [FNiagaraDataInterfaceGeneratedFunction](API\Plugins\NiagaraShader\FNiagaraDataInterfaceGeneratedFu-) & FunctionInfo, int FunctionInstanceIndex, [FString](API\Runtime\Core\Containers\FString) & OutHLSL )


description: UNiagaraDataInterfaceInterface

code: virtual void GetFunctions ( [TArray](API\Runtime\Core\Containers\TArray)< [FNiagaraFunctionSignature](API\Plugins\Niagara\FNiagaraFunctionSignature) > & OutFunctions )


code: virtual void GetParameterDefinitionHLSL ( const [FNiagaraDataInterfaceGPUParamInfo](API\Plugins\NiagaraShader\FNiagaraDataInterfaceGPUParamInf-) & ParamInfo, [FString](API\Runtime\Core\Containers\FString) & OutHLSL )


code: virtual void GetVMExternalFunction ( const [FVMExternalFunctionBindingInfo](API\Plugins\Niagara\FVMExternalFunctionBindingInfo) & BindingInfo, void * InstanceData, FVMExternalFunction & OutFunc )


description: Initializes the per instance data for this interface. Returns false if there was some error and the simulation should be disabled.

code: virtual bool InitPerInstanceData ( void * PerInstanceData, [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance )


description: Returns the size of the per instance data for this interface. 0 if this interface has no per instance data. Must depend solely on the class of the interface and not on any particular member data of a individual interface.

code: virtual int32 PerInstanceDataSize() const


description: Ticks the per instance data for this interface, if it has any.

code: virtual bool PerInstanceTick ( void * PerInstanceData, [FNiagaraSystemInstance](API\Plugins\Niagara\FNiagaraSystemInstance) * SystemInstance, float DeltaSeconds )


description: UObjectInterface

code: virtual void PostInitProperties()


description: This will not be called if PerInstanceDataPassedToRenderThreadSize is 0.

code: virtual void ProvidePerInstanceDataForRenderThread ( void * DataForRenderThread, void * PerInstanceData, const [FNiagaraSystemInstanceID](API\Plugins\NiagaraCore\FNiagaraSystemInstanceID) & SystemInstance )


description: Sample the grid

code: void SampleVelocityField ( FVectorVMExternalFunctionContext & Context )


description: Set the grid dimension

code: void SetGridDimension ( FVectorVMExternalFunctionContext & Context )


description: Set the shader parameters will only be called if the data interface provided shader parameters. You must write the parameters in the order you added them to the structure.

code: virtual void SetShaderParameters ( const [FNiagaraDataInterfaceSetShaderParametersContext](API\Plugins\Niagara\FNiagaraDataInterfaceSetShaderPa-) & Context ) const


description: Update the grid transform

code: void UpdateGridTransform ( FVectorVMExternalFunctionContext & Context )


code: UNiagaraDataInterfaceVelocityGrid ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UNiagaraDataInterfaceVelocityGrid

description: Data Interface for the strand base

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(EditInlineNew, Category="Grid", Meta=(DisplayName="Velocity Grid")) class UNiagaraDataInterfaceVelocityGrid : public [UNiagaraDataInterfaceRWBase](API\Plugins\Niagara\UNiagaraDataInterfaceRWBase)

GridSize

description: Grid size along the X axis.

NumAttributes

description: Num Attributes


className: operator&

code: constexpr [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) operator& ( [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) Lhs, [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) Rhs )


code: constexpr [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) operator& ( [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) Lhs, [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) Rhs )


code: [EHairResourceStatus](API\Plugins\HairStrandsCore\EHairResourceStatus) operator& ( [EHairResourceStatus](API\Plugins\HairStrandsCore\EHairResourceStatus) In, [EHairResourceStatus::EStatus](API\Plugins\HairStrandsCore\EHairResourceStatus\EStatus) InStatus )


className: operator&=

code: [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) & operator&= ( [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) & Lhs, [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) Rhs )


code: [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) & operator&= ( [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) & Lhs, [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) Rhs )


className: operator~

code: constexpr [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) operator~ ( [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) E )


code: constexpr [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) operator~ ( [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) E )


className: operator^

code: constexpr [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) operator^ ( [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) Lhs, [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) Rhs )


code: constexpr [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) operator^ ( [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) Lhs, [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) Rhs )


className: operator^=

code: [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) & operator^= ( [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) & Lhs, [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) Rhs )


code: [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) & operator^= ( [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) & Lhs, [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) Rhs )


className: operator!

code: constexpr bool operator! ( [EGroomCacheAttributes](API\Plugins\HairStrandsCore\EGroomCacheAttributes) E )


code: constexpr bool operator! ( [EGroomCacheImportType](API\Plugins\HairStrandsCore\EGroomCacheImportType) E )


code: bool operator! ( [EHairResourceStatus](API\Plugins\HairStrandsCore\EHairResourceStatus) A )


className: operator<<

code: [FArchive](API\Runtime\Core\Serialization\FArchive) & operator<< ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar, [FHairCardsInterpolationVertex](API\Plugins\HairStrandsCore\FHairCardsInterpolationVertex) & Vertex )


code: [FArchive](API\Runtime\Core\Serialization\FArchive) & operator<< ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar, [FHairDescriptionVersion](API\Plugins\HairStrandsCore\FHairDescriptionVersion) & Version )


className: RequestStrandsPosition

code: bool RequestStrandsPosition ( const [UGroomComponent](API\Plugins\HairStrandsCore\UGroomComponent) * Component, [FStrandsPositionOutput](API\Plugins\HairStrandsCore\FStrandsPositionOutput) * Output )


code: [FArchive](API\Runtime\Core\Serialization\FArchive) & operator<< ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar, [FVector4_16](API\Plugins\HairStrandsCore\FVector4_16) & Vertex )


className: ResetHairStrandsInterpolation

description: Reset the interpolation data. This needs to be called prior to ComputeHairStrandsInterpolation and prior to the actual hair simulation in order to insure that: 1) when hair simulation is enabled, the first frame is correct 2) when hair simulation is enabled/disabled (i.e., toggle/change) we reset to deform buffer to rest state)

code: enum EGroomViewModeuint8void ResetHairStrandsInterpolation ( [FRDGBuilder](API\Runtime\RenderCore\FRDGBuilder) & GraphBuilder, [FGlobalShaderMap](API\Runtime\RenderCore\FGlobalShaderMap) * ShaderMap, [FHairGroupInstance](API\Plugins\HairStrandsCore\FHairGroupInstance) * Instance, int32 LODIndex )


className: SetGroomAttribute

code: template<typename AttributeType> void SetGroomAttribute ( [FHairDescription](API\Plugins\HairStrandsCore\FHairDescription) & HairDescription, [FGroomID](API\Plugins\HairStrandsCore\FGroomID) GroomID, [FName](API\Runtime\Core\UObject\FName) AttributeName, AttributeType AttributeValue )


className: SetHairAttribute

code: void SetHairAttribute ( uint32 & Out, [EHairAttribute](API\Plugins\HairStrandsCore\EHairAttribute) InAttribute )


className: SetHairAttributeFlags

code: void SetHairAttributeFlags ( uint32 & Out, [EHairAttributeFlags](API\Plugins\HairStrandsCore\EHairAttributeFlags) InFlag )


className: SetHairStrandAttribute

code: template<typename AttributeType> void SetHairStrandAttribute ( [FHairDescription](API\Plugins\HairStrandsCore\FHairDescription) & HairDescription, [FStrandID](API\Plugins\HairStrandsCore\FStrandID) StrandID, [FName](API\Runtime\Core\UObject\FName) AttributeName, AttributeType AttributeValue )


className: SetHairVertexAttribute

code: template<typename AttributeType> void SetHairVertexAttribute ( [FHairDescription](API\Plugins\HairStrandsCore\FHairDescription) & HairDescription, [FVertexID](API\Runtime\MeshDescription\FVertexID) VertexID, [FName](API\Runtime\Core\UObject\FName) AttributeName, AttributeType AttributeValue )


className: TGroomAttributesConstRef

code: typedef TMeshAttributesConstRef< [FGroomID](API\Plugins\HairStrandsCore\FGroomID), AttributeType > TGroomAttributesConstRef


className: TGroomAttributesRef

code: typedef [TMeshAttributesRef](API\Runtime\MeshDescription\TMeshAttributesRef)< [FGroomID](API\Plugins\HairStrandsCore\FGroomID), AttributeType > TGroomAttributesRef


className: TStrandAttributesConstRef

code: typedef TMeshAttributesConstRef< [FStrandID](API\Plugins\HairStrandsCore\FStrandID), AttributeType > TStrandAttributesConstRef


className: TStrandAttributesRef

code: typedef [TMeshAttributesRef](API\Runtime\MeshDescription\TMeshAttributesRef)< [FStrandID](API\Plugins\HairStrandsCore\FStrandID), AttributeType > TStrandAttributesRef


className: TTextureAllocation

description: Typedef UTexture2D* (TCreateTextureHelper*)(FNamePackage, const FIntPoint& Resolution);

code: typedef void(* TTextureAllocation


code: virtual void AddAssetUserData ( [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) * InUserData )


code: bool AreGroupsValid() const


description: Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.

code: virtual void BeginDestroy()


code: bool BuildCardsData &40; uint32 GroupIndex &41;


code: bool BuildMeshesData &40; uint32 GroupIndex &41;


code: bool CacheCardsData ( uint32 GroupIndex, const [FString](API\Runtime\Core\Containers\FString) & StrandsKey )


description: Caches the computed (group) groom data with the given build settings from/to the Derived Data Cache, building it if needed. This function assumes the interpolation settings are properly populated, as they will be used to build the asset.

code: bool CacheDerivedDatas()


code: bool CacheDerivedData ( uint32 GroupIndex )


code: bool CacheMeshesData ( uint32 GroupIndex )


code: bool CacheStrandsData ( uint32 GroupIndex, [FString](API\Runtime\Core\Containers\FString) & OutDerivedDataKey )


description: Returns true if the asset has the HairDescription needed to recompute its groom data

code: bool CanRebuildFromDescription() const


description: Used for PSO precaching of used materials and vertex factories

code: [TArray](API\Runtime\Core\Containers\TArray)< [FHairVertexFactoryTypesPerMaterialData](API\Plugins\HairStrandsCore\FHairVertexFactoryTypesPerMateri-) > CollectVertexFactoryTypesPerMaterialData ( EShaderPlatform ShaderPlatform )


description: Commits a HairDescription to buffer for serialization

code: void CommitHairDescription ( [FHairDescription](API\Plugins\HairStrandsCore\FHairDescription) && HairDescription, [EHairDescriptionType](API\Plugins\HairStrandsCore\UGroomAsset\EHairDescriptionType) Type )


className: EClassDataStripFlag

code: enum EClassDataStripFlag { CDSF_ImportedStrands = 1, CDSF_MinLodData = 2, CDSF_StrandsStripped = 4, CDSF_CardsStripped = 8, CDSF_MeshesStripped = 16, }


className: EHairDescriptionType

code: enum EHairDescriptionType { Source, Edit, Count, }


className: FOnGroomAssetChanged

description: Notification when anything changed

code: typedef TMulticastDelegate_NoParams< void > FOnGroomAssetChanged


className: FOnGroomAssetResourcesChanged

code: typedef TMulticastDelegate_NoParams< void > FOnGroomAssetResourcesChanged


className: FOnGroomAsyncLoadFinished

code: typedef TMulticastDelegate_NoParams< void > FOnGroomAsyncLoadFinished


code: uint8 GenerateClassStripFlags ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


description: Retrievde the asset tags

code: virtual void GetAssetRegistryTags ( [TArray](API\Runtime\Core\Containers\TArray)< [FAssetRegistryTag](API\Runtime\CoreUObject\UObject\UObject\FAssetRegistryTag) > & OutTags ) const


description: Helper function to return the asset path name, optionally joined with the LOD index if LODIndex > -1.

code: [FName](API\Runtime\Core\UObject\FName) GetAssetPathName ( int32 LODIndex )


code: [EGroomBindingType](API\Plugins\HairStrandsCore\EGroomBindingType) GetBindingType ( int32 GroupIndex, int32 LODIndex ) const


code: virtual const [TArray](API\Runtime\Core\Containers\TArray)< [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) * > * GetAssetUserDataArray() const


code: virtual [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) * GetAssetUserDataOfClass ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) > InUserDataClass )


code: const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & GetDeformedGroupSections() const


code: [FString](API\Runtime\Core\Containers\FString) GetDerivedDataKey ( bool bUseCacheKey )


code: [FString](API\Runtime\Core\Containers\FString) GetDerivedDataKeyForCards ( uint32 GroupIt, const [FString](API\Runtime\Core\Containers\FString) & StrandsKey )


code: [FString](API\Runtime\Core\Containers\FString) GetDerivedDataKeyForMeshes ( uint32 GroupIndex )


code: [FString](API\Runtime\Core\Containers\FString) GetDerivedDataKeyForStrands ( uint32 GroupIndex )


code: [TArray](API\Runtime\Core\Containers\TArray)< float > & GetEffectiveLODBias()


code: const [TArray](API\Runtime\Core\Containers\TArray)< float > & GetEffectiveLODBias() const


code: [EGroomGeometryType](API\Plugins\HairStrandsCore\EGroomGeometryType) GetGeometryType ( int32 GroupIndex, int32 LODIndex ) const


code: bool GetHairCardsGuidesDatas ( const int32 GroupIndex, const int32 LODIndex, [FHairStrandsDatas](API\Plugins\HairStrandsCore\FHairStrandsDatas) & OutCardsGuidesData )


code: const [FHairDescriptionGroups](API\Plugins\HairStrandsCore\FHairDescriptionGroups) & GetHairDescriptionGroups()


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupsCardsSourceDescription](API\Plugins\HairStrandsCore\FHairGroupsCardsSourceDescriptio-) > & GetHairGroupsCards() const


code: [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupInfoWithVisibility](API\Plugins\HairStrandsCore\FHairGroupInfoWithVisibility) > & GetHairGroupsInfo()


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupInfoWithVisibility](API\Plugins\HairStrandsCore\FHairGroupInfoWithVisibility) > & GetHairGroupsInfo() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupsInterpolation](API\Plugins\HairStrandsCore\FHairGroupsInterpolation) > & GetHairGroupsInterpolation() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupsLOD](API\Plugins\HairStrandsCore\FHairGroupsLOD) > & GetHairGroupsLOD() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupsMaterial](API\Plugins\HairStrandsCore\FHairGroupsMaterial) > & GetHairGroupsMaterials() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupsMeshesSourceDescription](API\Plugins\HairStrandsCore\FHairGroupsMeshesSourceDescripti-) > & GetHairGroupsMeshes() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupsPhysics](API\Plugins\HairStrandsCore\FHairGroupsPhysics) > & GetHairGroupsPhysics() const


code: [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupPlatformData](API\Plugins\HairStrandsCore\FHairGroupPlatformData) > & GetHairGroupsPlatformData()


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupPlatformData](API\Plugins\HairStrandsCore\FHairGroupPlatformData) > & GetHairGroupsPlatformData() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupsRendering](API\Plugins\HairStrandsCore\FHairGroupsRendering) > & GetHairGroupsRendering() const


description: Get/Build render & guides data based on the hair description and interpolation settings

code: bool GetHairStrandsDatas ( const int32 GroupIndex, [FHairStrandsDatas](API\Plugins\HairStrandsCore\FHairStrandsDatas) & OutStrandsData, [FHairStrandsDatas](API\Plugins\HairStrandsCore\FHairStrandsDatas) & OutGuidesData )


code: int32 GetLODCount() const


description: Return the material slot index corresponding to the material name

code: int32 GetMaterialIndex ( [FName](API\Runtime\Core\UObject\FName) MaterialSlotName ) const


code: [TArray](API\Runtime\Core\Containers\TArray)< [FName](API\Runtime\Core\UObject\FName) > GetMaterialSlotNames() const


code: int32 GetNumHairGroups() const


description: Get the size of the object/resource for use in memory tools or to display to artists/LDs in the Editor This is the extended version which separates up the used memory into different memory regions (the actual definition of which may be platform specific).

code: virtual void GetResourceSizeEx ( [FResourceSizeEx](API\Runtime\Core\ProfilingDebugging\FResourceSizeEx) & CumulativeResourceSize )


description: Debug data for derived asset generation (strands textures, ...).

code: bool HasDebugData() const


code: bool HasGeometryType ( [EGroomGeometryType](API\Plugins\HairStrandsCore\EGroomGeometryType) Type ) const


code: bool HasGeometryType ( uint32 GroupIndex, [EGroomGeometryType](API\Plugins\HairStrandsCore\EGroomGeometryType) Type ) const


code: void InitCardsResources()


code: void InitGuideResources()


code: void InitMeshesResources()


description: Initialize/Update/Release resources.

code: void InitResources()


code: void InitStrandsResources()


code: bool IsDeformationEnable ( int32 GroupIndex ) const


code: bool IsGlobalInterpolationEnable ( int32 GroupIndex, int32 LODIndex ) const


code: bool IsMaterialSlotNameValid ( [FName](API\Runtime\Core\UObject\FName) MaterialSlotName ) const


code: bool IsMaterialUsed ( int32 MaterialIndex ) const


code: bool IsSimulationEnable() const


code: bool IsSimulationEnable ( int32 GroupIndex, int32 LODIndex ) const


code: bool IsVisible ( int32 GroupIndex, int32 LODIndex ) const


code: void MarkMaterialsHasChanged()


code: bool NeedsInterpolationData() const


code: bool NeedsInterpolationData ( int32 GroupIndex ) const


description: Part of Uobject interface

code: virtual void PostEditChangeProperty ( [FPropertyChangedEvent](API\Runtime\CoreUObject\UObject\FPropertyChangedEvent) & PropertyChangedEvent )


description: Part of Uobject interface

code: virtual void PostInitProperties()


description: Deprecated* Use version that takesFObjectPreSaveContextinstead.

code: virtual PRAGMA_DISABLE_DEPRECATION_WARNINGSvoid PreSave ( const class [ITargetPlatform](API\Developer\TargetPlatform\Interfaces\ITargetPlatform) * TargetPlatform )


description: Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.

code: virtual void PostLoad()


description: Objects created from within PreSave will NOT have PreSave called on them!!!

code: virtual void PreSave ( [FObjectPreSaveContext](API\Runtime\CoreUObject\UObject\FObjectPreSaveContext) SaveContext )


code: void ReleaseGuidesResource ( uint32 GroupIndex )


code: void ReleaseCardsResource ( uint32 GroupIndex )


code: void ReleaseMeshesResource ( uint32 GroupIndex )


code: void ReleaseStrandsResource ( uint32 GroupIndex )


code: virtual void RemoveUserDataOfClass ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) > InUserDataClass )


description: Save out a static mesh based on generated cards.

code: void SaveProceduralCards ( uint32 CardsGroupIndex )


description: Handles reading, writing, and reference collecting usingFArchive. This implementation handles allFPropertyserialization, but can be overridden for native variables.

code: virtual void Serialize ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


code: void SetDisableBelowMinLodStripping ( [FPerPlatformBool](API\Runtime\Engine\FPerPlatformBool) In )


code: void SetEffectiveLODBias ( const [TArray](API\Runtime\Core\Containers\TArray)< float > & In )


code: void SetHairGroupsInfo ( const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupInfoWithVisibility](API\Plugins\HairStrandsCore\FHairGroupInfoWithVisibility) > & In )


code: void SetHairGroupsPlatformData ( const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupPlatformData](API\Plugins\HairStrandsCore\FHairGroupPlatformData) > & In )


code: void SetHairWidth ( float Width )


code: void SetMinLOD ( [FPerPlatformInt](API\Runtime\Engine\FPerPlatformInt) In )


code: void SetNumGroup ( uint32 InGroupCount, bool bResetGroupData, bool bResetOtherData )


code: void SetScatterSceneLighting ( bool Enable )


description: Helper functions for setting options on all hair groups.

code: void SetStableRasterization ( bool bEnable )


code: void StripLODs ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & LODsToKeep, bool bRebuildResources )


code: void UpdateCachedSettings()


code: void UpdateHairGroupsInfo()


code: UGroomAsset ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UGroomAsset

description: Implements an asset that can be used to store hair strands

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, AutoExpandCategories=("HairRendering", "HairPhysics", "HairInterpolation"), HideCategories=(Object, "Hidden")) class UGroomAsset : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [IInterface_AssetUserData](API\Runtime\Engine\Interfaces\IInterface_AssetUserData)

AssetImportData

type: TObjectPtr< cla...

description: Asset data to be used when re-importing

AssetUserData

type: TArray<TObject...

description: Array of user data stored with the asset

OnGroomAssetChanged

type: FOnGroomAssetCh...

description: Private :

OnGroomAssetResourcesChanged

type: FOnGroomAssetRe...

OnGroomAsyncLoadFinished

type: FOnGroomAsyncLo...


code: UGroomAssetImportData ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UGroomAssetImportData

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)() class UGroomAssetImportData : public [UAssetImportData](API\Runtime\Engine\EditorFramework\UAssetImportData)


code: void AddHairGroupResourcesToDelete ( [FHairGroupResource](API\Plugins\HairStrandsCore\UGroomBindingAsset\FHairGroupResource) & In )


description: Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.

code: virtual void BeginDestroy()


description: Build/rebuild a binding asset

code: void Build()


code: void CacheDerivedDatas ( uint32 InGroupIndex, const [FString](API\Runtime\Core\Containers\FString) KeySuffix, bool & bOutValid, bool & bOutReloadResource )


className: EQueryStatus

code: enum EQueryStatus { None, Submitted, Completed, }


className: FHairGroupResource

description: GPU and CPU binding data for both simulation and rendering.

code: struct FHairGroupResource

CardsRootResources

type: TArray<FHairSt...

RenRootResources

type: FHairStrandsRes...


className: FHairGroupPlatformData

description: Binding bulk data

code: struct FHairGroupPlatformData

RenRootBulkData

type: FHairStrandsRoo...


className: FOnGroomBindingAssetChanged

description: Notification when anything changed

code: typedef TMulticastDelegate_NoParams< void > FOnGroomBindingAssetChanged


code: [FName](API\Runtime\Core\UObject\FName) GetAssetPathName ( int32 LODIndex )


code: [TArray](API\Runtime\Core\Containers\TArray)< [FGoomBindingGroupInfo](API\Plugins\HairStrandsCore\FGoomBindingGroupInfo) > & GetGroupInfos()


code: const [FHairGroupResources](API\Plugins\HairStrandsCore\UGroomBindingAsset\FHairGroupResources) & GetHairGroupResources() const


code: const [TArray](API\Runtime\Core\Containers\TArray)< [FHairGroupPlatformData](API\Plugins\HairStrandsCore\UGroomBindingAsset\FHairGroupPlatformData) > & GetHairGroupsPlatformData() const


code: virtual void GetResourceSizeEx ( [FResourceSizeEx](API\Runtime\Core\ProfilingDebugging\FResourceSizeEx) & CumulativeResourceSize )


description: Returns true if the target is not null and matches the binding type

code: bool HasValidTarget() const


description: Initialize resources.

code: void InitResource()


code: void InvalidateBinding ( class [USkeletalMesh](API\Runtime\Engine\Engine\USkeletalMesh) * )


code: static bool IsCompatible ( const [USkeletalMesh](API\Runtime\Engine\Engine\USkeletalMesh) * InSkeletalMesh, const [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * InBinding, bool bIssueWarning )


code: static bool IsBindingAssetValid ( const [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * InBinding, bool bIsBindingReloading, bool bIssueWarning )


code: static bool IsCompatible ( const [UGeometryCache](API\Plugins\GeometryCache\UGeometryCache) * InGeometryCache, const [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * InBinding, bool bIssueWarning )


code: static bool IsCompatible ( const [UGroomAsset](API\Plugins\HairStrandsCore\UGroomAsset) * InGroom, const [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * InBinding, bool bIssueWarning )


description: Return true if the binding asset is valid, i.e., correctly built and loaded.

code: bool IsValid() const


description: Part ofUObjectinterface

code: virtual void PostEditChangeProperty ( [FPropertyChangedEvent](API\Runtime\CoreUObject\UObject\FPropertyChangedEvent) & PropertyChangedEvent )


code: virtual void PostLoad()


description: Deprecated* Use version that takesFObjectPostSaveRootContextinstead.

code: virtual void PostSaveRoot ( bool bCleanupIsRequired )


description: Called from within SavePackage on the passed in base/root object. This function is called after the package has been saved and can perform cleanup.

code: virtual void PostSaveRoot ( [FObjectPostSaveRootContext](API\Runtime\CoreUObject\UObject\FObjectPostSaveRootContext) ObjectSaveContext )


code: virtual PRAGMA_DISABLE_DEPRECATION_WARNINGSvoid PreSave ( const class [ITargetPlatform](API\Developer\TargetPlatform\Interfaces\ITargetPlatform) * TargetPlatform )


code: virtual void PreSave ( [FObjectPreSaveContext](API\Runtime\CoreUObject\UObject\FObjectPreSaveContext) SaveContext )


description: Release the hair strands resource.

code: void ReleaseResource()


code: bool RemoveHairGroupResourcesToDelete ( [FHairGroupResource](API\Plugins\HairStrandsCore\UGroomBindingAsset\FHairGroupResource) & Out )


code: virtual void Serialize ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


code: void SetHairGroupResources ( [FHairGroupResources](API\Plugins\HairStrandsCore\UGroomBindingAsset\FHairGroupResources) InHairGroupResources )


description: Update resources.

code: void UpdateResource()


className: UGroomBindingAsset

description: Implements an asset that can be used to store binding information between a groom and a skeletal mesh

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, HideCategories=(Object)) class UGroomBindingAsset : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

bIsValid

type: bool

CachedDerivedDataKey

type: TArray<FString...

OnGroomBindingAssetChanged

type: FOnGroomBinding...

description: Private :

QueryStatus

type: EQueryStatus


className: UGroomBindingAssetList

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, HideCategories=(Object)) class UGroomBindingAssetList : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


description: Create a new groom binding asset within the contents space of the project.

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Groom") static [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * CreateNewGeometryCacheGroomBindingAssetWithPath ( const [FString](API\Runtime\Core\Containers\FString) & DesiredPackagePath, [UGroomAsset](API\Plugins\HairStrandsCore\UGroomAsset) * GroomAsset, [UGeometryCache](API\Plugins\GeometryCache\UGeometryCache) * GeometryCache, int32 NumInterpolationPoints, [UGeometryCache](API\Plugins\GeometryCache\UGeometryCache) * SourceGeometryCacheForTransfer, int32 MatchingSection )


description: Create a new groom binding asset within the contents space of the project. The asset name will be auto generated based on the groom asset name and the skeletal asset name

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Groom") static [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * CreateNewGeometryCacheGroomBindingAsset ( [UGroomAsset](API\Plugins\HairStrandsCore\UGroomAsset) * GroomAsset, [UGeometryCache](API\Plugins\GeometryCache\UGeometryCache) * GeometryCache, int32 NumInterpolationPoints, [UGeometryCache](API\Plugins\GeometryCache\UGeometryCache) * SourceGeometryCacheForTransfer, int32 MatchingSection )


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Groom") static [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * CreateNewGroomBindingAssetWithPath ( const [FString](API\Runtime\Core\Containers\FString) & InDesiredPackagePath, [UGroomAsset](API\Plugins\HairStrandsCore\UGroomAsset) * InGroomAsset, [USkeletalMesh](API\Runtime\Engine\Engine\USkeletalMesh) * InSkeletalMesh, int32 InNumInterpolationPoints, [USkeletalMesh](API\Runtime\Engine\Engine\USkeletalMesh) * InSourceSkeletalMeshForTransfer, int32 InMatchingSection )


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Groom") static [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * CreateNewGroomBindingAsset ( [UGroomAsset](API\Plugins\HairStrandsCore\UGroomAsset) * InGroomAsset, [USkeletalMesh](API\Runtime\Engine\Engine\USkeletalMesh) * InSkeletalMesh, int32 InNumInterpolationPoints, [USkeletalMesh](API\Runtime\Engine\Engine\USkeletalMesh) * InSourceSkeletalMeshForTransfer, int32 InMatchingSection )


code: virtual void AddAssetUserData ( [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) * InUserData )


description: Gathers a list of asset registry searchable tags which are name/value pairs with some type information This only needs to be implemented for asset objects

code: virtual void GetAssetRegistryTags ( [TArray](API\Runtime\Core\Containers\TArray)< [FAssetRegistryTag](API\Runtime\CoreUObject\UObject\UObject\FAssetRegistryTag) > & OutTags ) const


code: virtual const [TArray](API\Runtime\Core\Containers\TArray)< [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) * > * GetAssetUserDataArray() const


code: virtual [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) * GetAssetUserDataOfClass ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) > InUserDataClass )


code: [TArray](API\Runtime\Core\Containers\TArray)< [FGroomCacheChunk](API\Plugins\HairStrandsCore\FGroomCacheChunk) > & GetChunks()


code: float GetDuration() const


code: int32 GetEndFrame() const


description: Get the (floored) frame index at the specified time with the index 0 being the start of the animation

code: int32 GetFrameIndexAtTime ( const float Time, bool bLooping ) const


description: Get the frame indices and interpolation factor between them that correspond to the specified time

code: void GetFrameIndicesAtTime ( float Time, bool bLooping, bool bIsPlayingBackwards, int32 & OutFrameIndex, int32 & OutNextFrameIndex, float & InterpolationFactor )


description: Get the frame indices that correspond to the specified time range

code: void GetFrameIndicesForTimeRange ( float StartTime, float EndTime, bool Looping, [TArray](API\Runtime\Core\Containers\TArray)< int32 > & OutFrameIndices )


description: Get the frame number at the specified time within the animation range which might not start at 0

code: int32 GetFrameNumberAtTime ( const float Time, bool bLooping ) const


code: bool GetGroomDataAtFrameIndex ( int32 FrameIndex, [FGroomCacheAnimationData](API\Plugins\HairStrandsCore\FGroomCacheAnimationData) & AnimData )


code: const [FGroomAnimationInfo](API\Plugins\HairStrandsCore\FGroomAnimationInfo) & GetGroomAnimationInfo() const


code: bool GetGroomDataAtTime ( float Time, bool bLooping, [FGroomCacheAnimationData](API\Plugins\HairStrandsCore\FGroomCacheAnimationData) & AnimData )


code: int32 GetStartFrame() const


code: void Initialize ( [EGroomCacheType](API\Plugins\HairStrandsCore\EGroomCacheType) Type )


code: virtual void RemoveUserDataOfClass ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAssetUserData](API\Runtime\Engine\Engine\UAssetUserData) > InUserDataClass )


description: Handles reading, writing, and reference collecting usingFArchive. This implementation handles allFPropertyserialization, but can be overridden for native variables.

code: virtual void Serialize ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


code: void SetGroomAnimationInfo ( const [FGroomAnimationInfo](API\Plugins\HairStrandsCore\FGroomAnimationInfo) & AnimInfo )


className: UGroomCache

description: Implements an asset that is used to store an animated groom

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType) class UGroomCache : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [IInterface_AssetUserData](API\Runtime\Engine\Interfaces\IInterface_AssetUserData)

ArchiveVersion

type: TOptional<FPac...

AssetImportData

description: Import options used for this GroomCache

Chunks

type: TArray<FGroomC...

GroomCacheInfo

type: FGroomCacheInfo


className: UGroomCacheImportData

description: The asset import data to store the import settings within the GroomCache asset

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)() class UGroomCacheImportData : public [UAssetImportData](API\Runtime\Engine\EditorFramework\UAssetImportData)

Settings

type: FGroomCacheImpo...


className: UGroomCacheImportOptions

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType) class UGroomCacheImportOptions : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


description: Add a skeletal mesh to the collision components

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Simulation") void AddCollisionComponent ( [USkeletalMeshComponent](API\Runtime\Engine\Components\USkeletalMeshComponent) * SkeletalMeshComponent )


description: Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.

code: virtual void BeginDestroy()


code: virtual [UPhysicsAsset](API\Runtime\Engine\PhysicsEngine\UPhysicsAsset) * BuildAndCollect ( FTransform & BoneTransform, [TArray](API\Runtime\Core\Containers\TArray)< [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< [USkeletalMeshComponent](API\Runtime\Engine\Components\USkeletalMeshComponent) >> & SourceComponents, [TArray](API\Runtime\Core\Containers\TArray)< [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< [UPhysicsAsset](API\Runtime\Engine\PhysicsEngine\UPhysicsAsset) >> & PhysicsAssets ) const


description: Build the local simulation transform that could be used in strands simulation

code: void BuildSimulationTransform ( FTransform & SimulationTransform ) const


description:
Called by the editor to query whether a property of this object is allowed to be modified. The property editor uses this to disable controls for properties that should not be changed. When overriding this function you should always call the parent implementation first.
true if the property can be modified in the editor, otherwise false

code: virtual bool CanEditChange ( const [FProperty](API\Runtime\CoreUObject\UObject\FProperty) * InProperty ) const


description: Calculate the bounds of the component. Default behavior is a bounding box/sphere of zero size.

code: virtual FBoxSphereBounds CalcBounds ( const FTransform & LocalToWorld ) const


description: Derived class implementations should call up to their parents.

code: virtual void CheckForErrors()


code: virtual void CollectPSOPrecacheData ( const [FPSOPrecacheParams](API\Runtime\Engine\FPSOPrecacheParams) & BasePrecachePSOParams, [FComponentPSOPrecacheParamsList](API\Runtime\Engine\Components\UPrimitiveComponent\FComponentPSOPrecacheParamsList) & OutParams )


code: bool ContainsGroupInstance ( [FHairGroupInstance](API\Plugins\HairStrandsCore\FHairGroupInstance) * Instance ) const


description: Create per Group/LOD the Niagara component

code: void CreateHairSimulation ( const int32 GroupIndex, const int32 LODIndex )


description: This is called concurrently on multiple threads (but never the same component concurrently)

code: virtual void CreateRenderState_Concurrent ( [FRegisterComponentContext](API\Runtime\Engine\Components\FRegisterComponentContext) * Context )


description:
Creates a proxy to represent the primitive to the scene manager in the rendering thread.
The proxy object.

code: virtual [FPrimitiveSceneProxy](API\Runtime\Engine\FPrimitiveSceneProxy) * CreateSceneProxy()


description: Detach this component from whatever it is attached to. Automatically unwelds components that are welded together (See WeldTo)

code: virtual void DetachFromComponent ( const [FDetachmentTransformRules](API\Runtime\Engine\Engine\FDetachmentTransformRules) & DetachmentRules )


description: Because properties are destroyed here,Super::FinishDestroy()should always be called at the end of your child class'sFinishDestroy()method, rather than at the beginning.

code: virtual void FinishDestroy()


code: float GetAnimationTime() const


description: Returns what the current sync LOD has bee set to

code: virtual int32 GetCurrentSyncLOD() const


description: ~ BeginILODSyncInterfaceInterface.

code: virtual int32 GetDesiredSyncLOD() const


code: int32 GetForcedLOD() const


description: GroomCache

code: [UGroomCache](API\Plugins\HairStrandsCore\UGroomCache) * GetGroomCache() const


description: Hair group instance access

code: uint32 GetGroupCount() const


code: float GetGroomCacheDuration() const


code: [FHairGroupInstance](API\Plugins\HairStrandsCore\FHairGroupInstance) * GetGroupInstance ( int32 Index )


code: const [FHairGroupInstance](API\Plugins\HairStrandsCore\FHairGroupInstance) * GetGroupInstance ( int32 Index ) const


description: Return the guide hairs deformed resources

code: [FHairStrandsDeformedResource](API\Plugins\HairStrandsCore\FHairStrandsDeformedResource) * GetGuideStrandsDeformedResource ( uint32 GroupIndex )


code: [FHairStrandsDeformedRootResource](API\Plugins\HairStrandsCore\FHairStrandsDeformedRootResource) * GetGuideStrandsDeformedRootResource ( uint32 GroupIndex )


description: Return the guide hairs rest resources

code: [FHairStrandsRestResource](API\Plugins\HairStrandsCore\FHairStrandsRestResource) * GetGuideStrandsRestResource ( uint32 GroupIndex )


description: Return the guide hairs root resources

code: [FHairStrandsRestRootResource](API\Plugins\HairStrandsCore\FHairStrandsRestRootResource) * GetGuideStrandsRestRootResource ( uint32 GroupIndex )


code: bool GetManualTick() const


description:
Returns the material used by the element at the specified index
the material used by the indexed element of this mesh.

code: virtual [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * GetMaterial ( int32 ElementIndex ) const


code: [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * GetMaterial ( int32 ElementIndex, EHairGeometryType GeometryType, bool bUseDefaultIfIncompatible ) const


code: EHairGeometryType GetMaterialGeometryType ( int32 ElementIndex ) const


code: virtual int32 GetMaterialIndex ( [FName](API\Runtime\Core\UObject\FName) MaterialSlotName ) const


code: virtual [TArray](API\Runtime\Core\Containers\TArray)< [FName](API\Runtime\Core\UObject\FName) > GetMaterialSlotNames() const


description: Given the group index return the matching niagara component

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Simulation") [UNiagaraComponent](API\Plugins\Niagara\UNiagaraComponent) * GetNiagaraComponent ( const int32 GroupIndex )


description: Return number of material elements in this primitive

code: virtual int32 GetNumMaterials() const


description: Returns number of LODs

code: virtual int32 GetNumSyncLODs() const


description: Get the size of the object/resource for use in memory tools or to display to artists/LDs in the Editor This is the extended version which separates up the used memory into different memory regions (the actual definition of which may be platform specific).

code: virtual void GetResourceSizeEx ( [FResourceSizeEx](API\Runtime\Core\ProfilingDebugging\FResourceSizeEx) & CumulativeResourceSize )


code: uint32 GetResourcesSize() const


description: Retrieves the materials used in this component

code: virtual void GetUsedMaterials ( [TArray](API\Runtime\Core\Containers\TArray)< [UMaterialInterface](API\Runtime\Engine\Materials\UMaterialInterface) * > & OutMaterials, bool bGetDebugMaterials ) const


code: void InvalidateAndRecreate()


code: virtual bool IsMaterialSlotNameValid ( [FName](API\Runtime\Core\UObject\FName) MaterialSlotName ) const


description: Check if the simulation is enabled or not

code: bool IsSimulationEnable ( int32 GroupIndex, int32 LODIndex ) const


description: Called when AttachParent changes, to allow the scene to update its attachment state.

code: virtual void OnAttachmentChanged()


description: Used for tracking if a Niagara component is attached or not.

code: virtual void OnChildAttached ( [USceneComponent](API\Runtime\Engine\Components\USceneComponent) * ChildComponent )


description: Called after a child scene component is detached from this component. Note: Do not change the attachment state of the child during this call.

code: virtual void OnChildDetached ( [USceneComponent](API\Runtime\Engine\Components\USceneComponent) * ChildComponent )


description: Called when a component is registered, after Scene is set, but before CreateRenderState_Concurrent or OnCreatePhysicsState are called.

code: virtual void OnRegister()


description: Called when a component is unregistered. Called after DestroyRenderState_Concurrent and OnDestroyPhysicsState are called.

code: virtual void OnUnregister()


description: Called when a component is destroyed

code: virtual void OnComponentDestroyed ( bool bDestroyingHierarchy )


description: Called when a property on this object has been modified externally

code: virtual void PostEditChangeProperty ( [FPropertyChangedEvent](API\Runtime\CoreUObject\UObject\FPropertyChangedEvent) & PropertyChangedEvent )


description: Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.

code: virtual void PostLoad()


description: This is called when a property is about to be modified externally

code: virtual void PreEditChange ( [FProperty](API\Runtime\CoreUObject\UObject\FProperty) * PropertyAboutToChange )


description: Release Niagara components

code: void ReleaseHairSimulation()


description: Release Niagara components

code: void ReleaseHairSimulation ( const int32 GroupIndex )


code: void ResetAnimationTime()


description: Return true if this component requires end of frame recreates to happen from the game thread.

code: virtual bool RequiresGameThreadEndOfFrameRecreate() const


description: Reset the collision components


description: Reset the simulation, if enabled


description: Called to send dynamic data for this component to the rendering thread


description: This is called concurrently on multiple threads (but never the same component concurrently)


code: void SetBinding ( [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * InBinding )


description: Accessor function for changing Groom binding asset from blueprint/sequencer

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Groom") void SetBindingAsset ( [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * InBinding )


description: Accessor function for changing the enable simulation flag from blueprint/sequencer

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Simulation") void SetEnableSimulation ( bool bInEnableSimulation )


code: void SetForcedLOD ( int32 LODIndex )


description: Accessor function for changing Groom asset from blueprint/sequencer

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Groom") void SetGroomAsset ( [UGroomAsset](API\Plugins\HairStrandsCore\UGroomAsset) * Asset )


code: void SetGroomAsset ( [UGroomAsset](API\Plugins\HairStrandsCore\UGroomAsset) * Asset, [UGroomBindingAsset](API\Plugins\HairStrandsCore\UGroomBindingAsset) * InBinding, const bool bUpdateSimulation )


code: void SetGroomCache ( [UGroomCache](API\Plugins\HairStrandsCore\UGroomCache) * InGroomCache )


description: Accessor function for changing hair length scale from blueprint/sequencer

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Groom") void SetHairLengthScale ( float Scale )


code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Groom") void SetHairLengthScaleEnable ( bool bEnable )


code: void SetHairRootScale ( float Scale )


code: void SetHairWidth ( float HairWidth )


code: void SetManualTick ( bool bInManualTick )


description: Change the MeshDeformer that is used for this Component.

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Components|SkinnedMesh") void SetMeshDeformer ( [UMeshDeformer](API\Runtime\Engine\Animation\UMeshDeformer) * InMeshDeformer )


description: Accessor function for changing Groom physics asset from blueprint/sequencer

code: [UFUNCTION](Programming/UnrealArchitecture/Reference/Functions)(BlueprintCallable, Category="Simulation") void SetPhysicsAsset ( [UPhysicsAsset](API\Runtime\Engine\PhysicsEngine\UPhysicsAsset) * InPhysicsAsset )


description: Set the component in preview mode, forcing the loading of certain data.

code: void SetPreviewMode ( bool bValue )


code: void SetScatterSceneLighting ( bool Enable )


code: void SetStableRasterization ( bool bEnable )


code: void SetValidation ( bool bEnable )


code: void SetUseCards ( bool InbUseCards )


description: Sets what is synced LOD by 0 based index

code: virtual void SetSyncLOD ( int32 LODIndex )


description: Enable/Disable hair simulation while transitioning from one LOD to another one

code: void SwitchSimulationLOD ( const int32 PreviousLOD, const int32 CurrentLOD )


code: void TickAtThisTime ( const float Time, bool bInIsRunning, bool bInBackwards, bool bInIsLooping )


description: Function called every frame on this ActorComponent. Override this function to implement custom logic to be executed every frame. Only executes if the component is registered, and also PrimaryComponentTick.bCanEverTick must be set to true.

code: virtual void TickComponent ( float DeltaTime, enum ELevelTick TickType, [FActorComponentTickFunction](API\Runtime\Engine\Engine\FActorComponentTickFunction) * ThisTickFunction )


description: Update Group Description

code: void UpdateHairGroupsDescAndInvalidateRenderState ( bool bInvalidate )


description: Update Group Description

code: void UpdateHairGroupsDesc()


description: Update Niagara components

code: void UpdateHairSimulation()


description: Update simulated groups

code: void UpdateSimulatedGroups()


code: void ValidateMaterials ( bool bMapCheck ) const


code: UGroomComponent ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UGroomComponent

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(HideCategories=(Object, Physics, Activation, Mobility, "Components|Activation"), EditInlineNew, Meta=(BlueprintSpawnableComponent), ClassGroup=Rendering) class UGroomComponent : public [UMeshComponent](API\Runtime\Engine\Components\UMeshComponent), public [ILODSyncInterface](API\Runtime\Engine\ILODSyncInterface), public [INiagaraPhysicsAssetDICollectorInterface](API\Plugins\Niagara\INiagaraPhysicsAssetDICollectorI-)

AttachmentName

type: FString

description: Optional socket name, where the groom component should be attached at, when parented with a skeletal mesh

BindingAsset

description: Optional binding asset for binding a groom onto a skeletal mesh.

bInitSimulation

description: Boolean to check when the simulation should be initialized

bResetSimulation

description: Boolean to check when the simulation should be reset

bUseCards

description: Force the groom to use cards/meshes geometry instead of strands.

type: TObjectPtr<UMa...

CollisionComponents

type: TArray<TWeakOb...

description: List of collision components to be used

GroomAsset

type: TObjectPtr<UGr...

description: Groom asset .

GroomGroupsDesc

type: TArray<FHairGr...

description: Groom's groups info.

MeshDeformer

type: TObjectPtr<UMe...

description: If set the MeshDeformer will be applied on groom instance for deformation.

MeshDeformerInstance

description: Object containing state for the bound MeshDeformer.

MeshDeformerInstanceSettings

description: Object containing instance settings for the bound MeshDeformer.

NiagaraComponents

description: Niagara components that will be attached to the system

PhysicsAsset

description: Physics asset to be used for hair simulation

PrevBoneMatrix

type: FMatrix

description: Previous bone matrix to compare the difference and decide to reset or not the simulation

SimulationSettings

type: FHairSimulation...

description: Groom's simulation settings

SourceSkeletalMesh

description: Kept for debugging mesh transfer.

description: Reference of the default/debug materials for each geometric representation


code: UGroomCreateBindingOptions ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UGroomCreateBindingOptions

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, Config=EditorPerProjectUserSettings, AutoCollapseCategories=(Conversion), HideCategories=(Hidden)) class UGroomCreateBindingOptions : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

GroomAsset

type: TWeakObjectPtr<...

description: Groom asset

GroomBindingType

type: EGroomBindingMe...

description: Type of mesh to create groom binding for

MatchingSection

description: Section to pick to transfer the position

NumInterpolationPoints

description: Number of points used for the rbf interpolation

SourceGeometryCache

type: TObjectPtr<UGe...

description: GeometryCache on which the groom has been authored

type: TObjectPtr<USk...

description: Skeletal mesh on which the groom has been authored.

TargetGeometryCache

description: GeometryCache on which the groom is attached to.

TargetSkeletalMesh

description: Skeletal mesh on which the groom is attached to.


code: UGroomCreateFollicleMaskOptions ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UGroomCreateFollicleMaskOptions

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, Config=EditorPerProjectUserSettings, HideCategories=("Hidden")) class UGroomCreateFollicleMaskOptions : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

Grooms

type: TArray<FFollic...

description: Grooms which will be use to create the follicle texture

Resolution

description: Follicle mask texture resolution. The resolution will be rounded to the closest power of two.

RootRadius

description: Size of the root in the follicle mask (in pixels)


code: UGroomCreateStrandsTexturesOptions ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UGroomCreateStrandsTexturesOptions

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, Config=EditorPerProjectUserSettings, HideCategories=("Hidden")) class UGroomCreateStrandsTexturesOptions : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

GroupIndex

type: TArray< int32 >

description: Groom index which should be baked into the textures.

LODIndex

description: LOD of the mesh, on which the texture projection is done

MeshType

type: EStrandsTexture...

description: Select which mesh should be used for tracing

Resolution

description: Resolution of the output texture maps (tangent, coverage, ...)

SectionIndex

description: Section of the mesh, on which the texture projection is done

SkeletalMesh

description: Mesh on which the groom strands will be projected on.

StaticMesh

type: TObjectPtr<USt...

TraceDistance

type: float

description: Distance from the mesh surface until hair are projected onto the mesh.

TraceType

description: Direction in which the tracing will be done: either from the mesh's surface to the outside, or from the mesh's surface to the inside.

UVChannelIndex

description: UV channel to use


code: UGroomHairGroupsPreview ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UGroomHairGroupsPreview

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, Config=EditorPerProjectUserSettings, HideCategories=("Hidden")) class UGroomHairGroupsPreview : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

Groups

type: TArray<FGroomH...


code: UGroomImportOptions ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UGroomImportOptions

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType, Config=EditorPerProjectUserSettings, HideCategories=("Hidden")) class UGroomImportOptions : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

ConversionSettings

type: FGroomConversio...

InterpolationSettings

description: Interpolation settings per group


className: UGroomPluginSettings

description: Settings for the groom plug-in

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(Config=Engine) class UGroomPluginSettings : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

GroomCacheLookAheadBuffer

description: The amount of groom cache animation (in seconds) to pre-load ahead of time by the streaming manager


code: virtual void BuildDDCKey ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


className: UHairCardGenerationSettings

description: Since hair-card generation can be controlled external to this plugin, this provides a way for those external generators a way to store their own generation data along with the groom/cards-entry.

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(Abstract, EditInlineNew) class UHairCardGenerationSettings : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


description:
Returns the range to auto size this section to, if there is one. This defaults to the range of all the keys.
the range of this section to auto size to

code: virtual [TOptional](API\Runtime\Core\IO\TOptional)< [TRange](API\Runtime\Core\Math\TRange)< [FFrameNumber](API\Runtime\Core\Misc\FFrameNumber) > > GetAutoSizeRange() const


description: The optional offset time of this section

code: virtual [TOptional](API\Runtime\Core\IO\TOptional)< [FFrameTime](API\Runtime\Core\Misc\FFrameTime) > GetOffsetTime() const


description: Gets all snap times for this section

code: virtual void GetSnapTimes ( [TArray](API\Runtime\Core\Containers\TArray)< [FFrameNumber](API\Runtime\Core\Misc\FFrameNumber) > & OutSnapTimes, bool bGetSectionBorders ) const


description: Get Frame Time as Animation Time

code: virtual float MapTimeToAnimation ( float ComponentDuration, [FFrameTime](API\Runtime\Core\Misc\FFrameTime) InPosition, [FFrameRate](API\Runtime\Core\Misc\FFrameRate) InFrameRate ) const


description:
Split a section in two at the split time
The newly created split section

code: virtual [UMovieSceneSection](API\Runtime\MovieScene\UMovieSceneSection) * SplitSection ( [FQualifiedFrameTime](API\Runtime\Core\Misc\FQualifiedFrameTime) SplitTime, bool bDeleteKeys )


description: Trim a section at the trim time

code: virtual void TrimSection ( [FQualifiedFrameTime](API\Runtime\Core\Misc\FQualifiedFrameTime) TrimTime, bool bTrimLeft, bool bDeleteKeys )


code: UMovieSceneGroomCacheSection ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


className: UMovieSceneGroomCacheSection

description: Movie scene section that control GroomCache playback

code: [UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(MinimalAPI) class UMovieSceneGroomCacheSection : public [UMovieSceneSection](API\Runtime\MovieScene\UMovieSceneSection)

Params

type: FMovieSceneGroo...


description: Adds a new animation to this track

code: virtual [UMovieSceneSection](API\Runtime\MovieScene\UMovieSceneSection) * AddNewAnimation ( [FFrameNumber](API\Runtime\Core\Misc\FFrameNumber) KeyTime, class [UGroomComponent](API\Plugins\HairStrandsCore\UGroomComponent) * GroomComp )


description: Add a section to this track.

code: virtual void AddSection ( [UMovieSceneSection](API\Runtime\MovieScene\UMovieSceneSection) & Section )


description:
Generates a new section suitable for use with this track.
a new section suitable for use with this track.

code: virtual [UMovieSceneSection](API\Runtime\MovieScene\UMovieSceneSection) * CreateNewSection()


description:
Create a movie scene eval template for the specified section
A template, or null

code: virtual [FMovieSceneEvalTemplatePtr](API\Runtime\MovieScene\Evaluation\FMovieSceneEvalTemplatePtr) CreateTemplateForSection ( const [UMovieSceneSection](API\Runtime\MovieScene\UMovieSceneSection) & InSection ) const


description:
Called when all the sections of the track need to be retrieved.
List of all the sections in the track.

code: virtual const [TArray](API\Runtime\Core\Containers\TArray)< [UMovieSceneSection](API\Runtime\MovieScene\UMovieSceneSection) * > & GetAllSections() const


description: Gets the animation sections at a certain time

code: [TArray](API\Runtime\Core\Containers\TArray)< [UMovieSceneSection](API\Runtime\MovieScene\UMovieSceneSection) * > GetAnimSectionsAtTime ( [FFrameNumber](API\Runtime\Core\Misc\FFrameNumber) Time )


code: virtual [FText](API\Runtime\Core\Internationalization\FText) GetDefaultDisplayName() const


description:
Checks to see if the section is in this track.
True if the section is in this track.

code: virtual bool HasSection ( const [UMovieSceneSection](API\Runtime\MovieScene\UMovieSceneSection) & Section ) const