Navigation
API > API/Plugins > API/Plugins/HairStrandsCore > API/Plugins/HairStrandsCore/Niagara
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UNiagaraMergeable
- UNiagaraDataInterfaceBase
- UNiagaraDataInterface
- UNiagaraDataInterfaceHairStrands
References
| Module | HairStrandsCore |
| Header | /Engine/Plugins/Runtime/HairStrands/Source/HairStrandsCore/Public/Niagara/NiagaraDataInterfaceHairStrands.h |
| Include | #include "Niagara/NiagaraDataInterfaceHairStrands.h" |
Syntax
UCLASS&40;EditInlineNew, Category&61;"Strands", Meta&61;&40;DisplayName&61;"Hair Strands"&41;&41;
class UNiagaraDataInterfaceHairStrands :
public UNiagaraDataInterface,
public INiagaraSimCacheCustomStorageInterface
Remarks
Data Interface for the strand base
Variables
| Type | Name | Description | |
|---|---|---|---|
| TObjectPtr< UGroomAsset > | DefaultSource | Hair Strands Asset used to sample from when not overridden by a source actor from the scene. | |
| TObjectPtr< AActor > | SourceActor | The source actor from which to sample | |
| TWeakObjectPtr< class UGroomComponent > | SourceComponent | The source component from which to sample |
Constructors
| Type | Name | Description | |
|---|---|---|---|
UNiagaraDataInterfaceHairStrands
(
const FObjectInitializer& ObjectInitializer |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AdvectNodeOrientation
(
FVectorVMExternalFunctionContext& Context |
Add external torque to the angular velocity and advect node orientation | |
| void | AdvectNodePosition
(
FVectorVMExternalFunctionContext& Context |
Add external force to the linear velocity and advect node position | |
| void | AttachNodeOrientation
(
FVectorVMExternalFunctionContext& Context |
Update the root node position based on the current transform | |
| void | AttachNodePosition
(
FVectorVMExternalFunctionContext& Context |
Update the root node orientation based on the current transform | |
| void | AttachNodeState
(
FVectorVMExternalFunctionContext& Context |
Attach the node position and orientation to the transform or to the skin cache | |
| void | BuildBoundingBox
(
FVectorVMExternalFunctionContext& Context |
Build the groom bounding box | |
| void | ComputeAirDragForce
(
FVectorVMExternalFunctionContext& Context |
Compute the air drag force | |
| void | ComputeEdgeDirection
(
FVectorVMExternalFunctionContext& Context |
Compute the rest direction | |
| void | ComputeEdgeLength
(
FVectorVMExternalFunctionContext& Context |
Compute the edge length (diff between 2 nodes positions) | |
| void | ComputeEdgeRotation
(
FVectorVMExternalFunctionContext& Context |
Compute the edge orientation (diff between 2 nodes orientations) | |
| void | ComputeLocalState
(
FVectorVMExternalFunctionContext& Context |
Get the rest position and orientation relative to the transform or to the skin cache | |
| void | ComputeMaterialFrame
(
FVectorVMExternalFunctionContext& Context |
Compute the strands material frame | |
| void | ComputeNodeInertia
(
FVectorVMExternalFunctionContext& Context |
Get the strand node inertia | |
| void | ComputeNodeMass
(
FVectorVMExternalFunctionContext& Context |
Get the strand node mass | |
| void | ComputeNodeOrientation
(
FVectorVMExternalFunctionContext& Context |
Get the strand node orientation in world space | |
| void | ComputeNodePosition
(
FVectorVMExternalFunctionContext& Context |
Get the strand node position in world space | |
| void | ComputeRestOrientation
(
FVectorVMExternalFunctionContext& Context |
Compute the rest local orientation | |
| void | ComputeRestPosition
(
FVectorVMExternalFunctionContext& Context |
Compute the rest local position | |
| void | EvalSkinnedPosition
(
FVectorVMExternalFunctionContext& Context |
Eval the skinned position given a rest position | |
| void | ExtractDatasAndResources
(
FNiagaraSystemInstance* SystemInstance, |
Extract datas and resources | |
| void | ExtractSourceComponent
(
FNiagaraSystemInstance* SystemInstance |
End INiagaraSimCacheCustomStorageInterface Interface Update the source component | |
| void | GetAirDrag
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetAirVelocity
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetBendDamping
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetBendScale
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetBendStiffness
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetBoundingBox
(
FVectorVMExternalFunctionContext& Context |
Get the bounding box center | |
| void | GetCollisionRadius
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetGravityPreloading
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetGravityVector
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetGridDimension
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetIterationCount
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetKineticFriction
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetNumStrands
(
FVectorVMExternalFunctionContext& Context |
Get the number of strands | |
| void | GetPointPosition
(
FVectorVMExternalFunctionContext& Context |
Get the strand vertex position in world space | |
| void | GetProjectBend
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetProjectCollision
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetProjectStretch
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetRadiusScale
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetSampleState
(
FVectorVMExternalFunctionContext& Context |
Get the sample state given an index | |
| void | GetSolveBend
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetSolveCollision
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetSolveStretch
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetStaticFriction
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetStrandsDensity
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetStrandSize
(
FVectorVMExternalFunctionContext& Context |
Get the groom asset datas | |
| void | GetStrandsSmoothing
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetStrandsThickness
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetStrandsViscosity
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetStretchDamping
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetStretchScale
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetStretchStiffness
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetSubSteps
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetThicknessScale
(
FVectorVMExternalFunctionContext& Context |
||
| void | GetWorldInverse
(
FVectorVMExternalFunctionContext& Context |
Get the world inverse | |
| void | GetWorldTransform
(
FVectorVMExternalFunctionContext& Context |
Get the world transform | |
| void | HasGlobalInterpolation
(
FVectorVMExternalFunctionContext& Context |
Check if we have a global interpolation | |
| void | InitGridSamples
(
FVectorVMExternalFunctionContext& Context |
Init the samples along the strands that will be used to transfer informations to the grid | |
| bool | Check if the component is Valid | ||
| void | NeedRestUpdate
(
FVectorVMExternalFunctionContext& Context |
Check if we need a rest pose update | |
| void | NeedSimulationReset
(
FVectorVMExternalFunctionContext& Context |
Check if we need or not a simulation reset | |
| void | ProjectAngularSpringMaterial
(
FVectorVMExternalFunctionContext& Context |
Project the angular spring material | |
| void | ProjectBendRodMaterial
(
FVectorVMExternalFunctionContext& Context |
Project the bend rod material | |
| void | ProjectDistanceSpringMaterial
(
FVectorVMExternalFunctionContext& Context |
Project the distance spring material | |
| void | ProjectHardCollisionConstraint
(
FVectorVMExternalFunctionContext& Context |
Project the static collision constraint | |
| void | ProjectSoftCollisionConstraint
(
FVectorVMExternalFunctionContext& Context |
Project the soft collision constraint | |
| void | ProjectStretchRodMaterial
(
FVectorVMExternalFunctionContext& Context |
Project the stretch rod material | |
| void | ResetBoundingBox
(
FVectorVMExternalFunctionContext& Context |
Reset the bounding box extent | |
| void | ResetPointPosition
(
FVectorVMExternalFunctionContext& Context |
Reset the point position to be the rest one | |
| void | SetupAngularSpringMaterial
(
FVectorVMExternalFunctionContext& Context |
Setup the angular spring material | |
| void | SetupBendRodMaterial
(
FVectorVMExternalFunctionContext& Context |
Setup the bend rod material | |
| void | SetupDistanceSpringMaterial
(
FVectorVMExternalFunctionContext& Context |
Setup the distance spring material | |
| void | SetupSoftCollisionConstraint
(
FVectorVMExternalFunctionContext& Context |
Setup the soft collision constraint | |
| void | SetupStretchRodMaterial
(
FVectorVMExternalFunctionContext& Context |
Setup the stretch rod material | |
| void | SolveAngularSpringMaterial
(
FVectorVMExternalFunctionContext& Context |
Solve the angular spring material | |
| void | SolveBendRodMaterial
(
FVectorVMExternalFunctionContext& Context |
Solve the bend rod material | |
| void | SolveDistanceSpringMaterial
(
FVectorVMExternalFunctionContext& Context |
Solve the distance spring material | |
| void | SolveHardCollisionConstraint
(
FVectorVMExternalFunctionContext& Context |
Solve the static collision constraint | |
| void | SolveSoftCollisionConstraint
(
FVectorVMExternalFunctionContext& Context |
Solve the soft collision constraint | |
| void | SolveStretchRodMaterial
(
FVectorVMExternalFunctionContext& Context |
Solve the stretch rod material | |
| void | UpdateAngularVelocity
(
FVectorVMExternalFunctionContext& Context |
Update the node angular velocity based on the node orientation difference | |
| void | UpdateLinearVelocity
(
FVectorVMExternalFunctionContext& Context |
Update the node linear velocity based on the node position difference | |
| void | UpdateMaterialFrame
(
FVectorVMExternalFunctionContext& Context |
Update the strands material frame | |
| void | UpdateNodeState
(
FVectorVMExternalFunctionContext& Context |
Update the node position and orientation based on rbf transfer | |
| void | UpdatePointPosition
(
FVectorVMExternalFunctionContext& Context |
Report the node displacement onto the points position |
Overridden from UNiagaraDataInterface
| Type | Name | Description | |
|---|---|---|---|
| bool | AppendCompileHash
(
FNiagaraCompileHashVisitor* InVisitor |
Allows the generic class defaults version of this class to specify any dependencies/version/etc that might invalidate the compile. | |
| ETickingGroup | CalculateTickGroup
(
const void* PerInstanceData |
||
| bool | CanExecuteOnTarget
(
ENiagaraSimTarget Target |
||
| bool | CopyToInternal
(
UNiagaraDataInterface* Destination |
Copy one niagara DI to this | |
| void | DestroyPerInstanceData
(
void* PerInstanceData, |
Destroys the per instance data for this interface. | |
| bool | Equals
(
const UNiagaraDataInterface* Other |
Determines if this DataInterface is the same as another. | |
| void | GetCommonHLSL
(
FString& OutHLSL |
GPU simulation functionality | |
| bool | GetFunctionHLSL
(
const FNiagaraDataInterfaceGPUParamInfo& ParamInfo, |
||
| void | GetFunctions
(
TArray< FNiagaraFunctionSignature >& OutFunctions |
Begin UNiagaraDataInterface Interface | |
| void | GetParameterDefinitionHLSL
(
const FNiagaraDataInterfaceGPUParamInfo& ParamInfo, |
||
| void | GetVMExternalFunction
(
const FVMExternalFunctionBindingInfo& BindingInfo, |
Returns the delegate for the passed function signature. | |
| bool | |||
| bool | |||
| bool | InitPerInstanceData
(
void* PerInstanceData, |
Initializes the per instance data for this interface. | |
| int32 | Returns the size of the per instance data for this interface. | ||
| bool | PerInstanceTick
(
void* PerInstanceData, |
Ticks the per instance data for this interface, if it has any. | |
| void | ProvidePerInstanceDataForRenderThread
(
void* DataForRenderThread, |
Subclasses that wish to work with GPU systems/emitters must implement this. | |
| void | SetShaderParameters
(
const FNiagaraDataInterfaceSetShaderParametersContext& Context |
Set the shader parameters will only be called if the data interface provided shader parameters. |
Overridden from UNiagaraDataInterfaceBase
| Type | Name | Description | |
|---|---|---|---|
| void | BuildShaderParameters
(
FNiagaraShaderParametersBuilder& ShaderParametersBuilder |
Override this method to provide parameters to the GPU (SRV / UAV / Constants / etc) The most common usage will be to provide a single structure which is nested with other parameters. |
Overridden from UObject
| Type | Name | Description | |
|---|---|---|---|
| void | UObject Interface |
Overridden from INiagaraSimCacheCustomStorageInterface
| Type | Name | Description | |
|---|---|---|---|
| TArray< FNiagaraVariableBase > | GetSimCacheRendererAttributes
(
UObject* UsageContext |
This function allows you to preserve a list of attributes when building a renderer only cache. | |
| void | SimCachePostReadFrame
(
void* OptionalPerInstanceData, |
End UNiagaraDataInterface Interface Begin INiagaraSimCacheCustomStorageInterface Interface |