UNiagaraDataInterface

Base class for all Niagara data interfaces.

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

Niagara

Header

/Engine/Plugins/FX/Niagara/Source/Niagara/Classes/NiagaraDataInterface.h

Include

#include "NiagaraDataInterface.h"

Syntax

UCLASS (Abstract, EditInlineNew)
class UNiagaraDataInterface : public UNiagaraDataInterfaceBase

Remarks

Base class for all Niagara data interfaces.

Variables

Name Description

Protected variable

TUniquePtr < FNi ...

 

Proxy

Constructors

Name Description

Public function

UNiagaraDataInterface

(
    const FObjectInitializer & ObjectIn...
)

Destructors

Name Description

Public function Virtual

~UNiagaraDataInterface()

Functions

Name Description

Public function Virtual Const

bool

 

AppendCompileHash

(
    FNiagaraCompileHashVisitor * In...
)

Allows the generic class defaults version of this class to specify any dependencies/version/etc that might invalidate the compile.

Public function Virtual Const

ETickingGrou ...

 

CalculateTickGroup

(
    void * PerInstanceData
)

Public function Virtual Const

bool

 

CanExecuteOnTarget

(
    ENiagaraSimTarget Target
)

Public function Const

bool

 

CopyTo

(
    UNiagaraDataInterface * Destina...
)

Copies the contents of this DataInterface to another.

Protected function Virtual Const

bool

 

CopyToInternal

(
    UNiagaraDataInterface * Destina...
)

Public function Virtual

void

 

DestroyPerInstanceData

(
    void * PerInstanceData,
    FNiagaraSystemInstance * System...
)

Destroys the per instance data for this interface.

Public function Virtual Const

bool

 

Equals

(
    const UNiagaraDataInterface * O...
)

Determines if this DataInterface is the same as another.

Public function Virtual

void

 

GetCommonHLSL

(
    FString & OutHLSL
)

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

Public function Virtual Const

void

 

GetEmitterDependencies

(
    void * PerInstanceData,
    FNiagaraSystemInstance * System...,
    TArray < FNiagaraEmitterInstance ...
)

Allows a DI to specify data dependencies between emitters, so the system can ensure that the emitter instances are executed in the correct order.

Public function Virtual

TArray < FNia ...

 

GetErrors()

Refreshes and returns the errors detected with the corresponding data, if any.

Public function Static

void

 

GetFeedback

Public function Virtual

void

 

GetFeedback

(
    UNiagaraSystem * InAsset,
    UNiagaraComponent * InComponent,
    TArray < FNiagaraDataInterfaceError ...,
    TArray < FNiagaraDataInterfaceFeedba ...,
    TArray < FNiagaraDataInterfaceFeedba ...
)

Query the data interface to give feedback to the end user.

Public function Virtual

bool

 

GetFunctionHLSL

(
    const FNiagaraDataInterfaceGPUParam ...,
    const FNiagaraDataInterfaceGenerate ...,
    int FunctionInstanceIndex,
    FString & OutHLSL
)

Public function Virtual

void

 

GetFunctions

Gets all the available functions for this data interface.

Public function Virtual

void

 

GetParameterDefinitionHLSL

(
    const FNiagaraDataInterfaceGPUParam ...,
    FString & OutHLSL
)

Public function

FNiagaraData ...

 

GetProxy()

Protected function

T *

 

GetProxyAs()

Public function Virtual

void

 

GetVMExternalFunction

(
    const FVMExternalFunctionBindingInf ...,
    void * InstanceData,
    FVMExternalFunction & OutFunc
)

Returns the delegate for the passed function signature.

Public function Virtual Const

bool

 

HasTickGroupPrereqs()

Public function Virtual

bool

 

InitPerInstanceData

(
    void * PerInstanceData,
    FNiagaraSystemInstance * System...
)

Initializes the per instance data for this interface.

Public function Static

bool

 

IsDataInterfaceType

(
    const FNiagaraTypeDefinition & Type...
)

Determines if this type definition matches to a known data interface type.

Public function

FSimpleMulti...

 

OnErrorsRefreshed()

Public function Virtual Const

int32

 

PerInstanceDataPassedToRenderThreadSize()

The size of the data this class will provide to ProvidePerInstanceDataForRenderThread.

Public function Virtual Const

int32

 

PerInstanceDataSize()

Returns the size of the per instance data for this interface.

Public function Virtual

bool

 

PerInstanceTick

(
    void * PerInstanceData,
    FNiagaraSystemInstance * System...,
    float DeltaSeconds
)

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

Public function Virtual

bool

 

PerInstanceTickPostSimulate

(
    void * PerInstanceData,
    FNiagaraSystemInstance * System...,
    float DeltaSeconds
)

Public function Virtual

void

 

PostExecute()

Public function Virtual

void

 

ProvidePerInstanceDataForRenderThread

(
    void * DataForRenderThread,
    void * PerInstanceData,
    const FNiagaraSystemInstanceID & Sy...
)

Subclasses that wish to work with GPU systems/emitters must implement this.

Public function

void

 

RefreshErrors()

Public function Virtual Const

bool

 

RequiresDepthBuffer()

Public function Virtual Const

bool

 

RequiresDistanceFieldData()

Public function Virtual Const

bool

 

RequiresEarlyViewData()

Public function Virtual

bool

 

UpgradeFunctionCall

(
    FNiagaraFunctionSignature & Functio...
)

Allows data interfaces the opportunity to rename / change the function signature and perform an upgrade.

Public function Virtual

void

 

ValidateFunction

(
    const FNiagaraFunctionSignature & F...,
    TArray < FText >& OutValidationErro...
)

Validates a function being compiled and allows interface classes to post custom compile errors when their API changes.

Overridden from UObject

Name Description

Public function Virtual

void

 

PostEditChangeProperty

(
    FPropertyChangedEvent & PropertyCha...
)

Called when a property on this object has been modified externally

Public function Virtual

void

 

PostLoad()

Do any object-specific cleanup required immediately after loading an object.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback