Navigation
Unreal Engine C++ API Reference > 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 |