FInterrogationChannels

A class specialized for interrogating Sequencer entity data without applying any state to objects.

Choose your operating system:

Windows

macOS

Linux

References

Module

MovieSceneTracks

Header

/Engine/Source/Runtime/MovieSceneTracks/Public/EntitySystem/Interrogation/MovieSceneInterrogationLinker.h

Include

#include "EntitySystem/Interrogation/MovieSceneInterrogationLinker.h"

Syntax

class FInterrogationChannels

Remarks

A class specialized for interrogating Sequencer entity data without applying any state to objects. Currently only tracks within the same time-base are supported. Will only link systems that are not excluded from EEntitySystemContext::Interrogation. Multiple different outputs can be interrogated simultaneously by Importing tracks onto separate channels allocated through AllocateChannel.

Systems may implement their own interrogation logic that can be run after updates to allow third-party interrogation behavior for specific channels or time.

Example usage: Interrogator.ImportTrack(MyTrack, FInterrogationChannel::Default());

for (int32 FrameNumber = 0; FrameNumber < 100; ++FrameNumber) Interrogator.InterrogateTime(FrameNumber);

Interrogator.Update();

UMyTrackSystem* MySystem = Interrogator.GetLinker()->FindSystem<UMyTrackSystem>(); if (MySystem) { TArray<DataType> OutData; MySystem->Interrogate(FInterogationKey::Default(), OutData); }

Variables

Name Description

Protected variable

TBitArray

 

ActiveChannelBits

BitArray containing set bits for any channel that has data associated with it.

Protected variable

TArray< FInterr...

 

Interrogations

An array of interrogation times

Protected variable

TMap< FObjectKe...

 

ObjectToChannel

Map from an object to its interrogation channel

Protected variable

FSparseInterrog...

 

SparseChannelInfo

Array of information pertaining to a given channel

Constructors

Name Description

Public function

FInterrogationChannels()

Destructors

Name Description

Public function

~FInterrogationChannels()

Functions

Name Description

Public function

void

 

ActivateChannel

(
    FInterrogationChannel InChannel
)

Called to activate the specified channel.

Public function

int32

 

AddInterrogation

(
    const FInterrogationParams& Params
)

Add a new time to interrogate this linker at, in the time-base of the imported tracks.

Public function

FInterrogati...

 

AllocateChannel

(
    UObject* Object,
    FInterrogationChannel ParentChannel,
    const FMovieScenePropertyBinding& ...
)

Allocate a new interrogation channel that relates to a specific object

Public function

FInterrogati...

 

AllocateChannel

(
    UObject* Object,
    const FMovieScenePropertyBinding& ...
)

Allocate a new interrogation channel that relates to a specific object

Public function

FInterrogati...

 

AllocateChannel

(
    FInterrogationChannel ParentChannel,
    const FMovieScenePropertyBinding& ...
)

Allocate a new interrogation channel that can be used to uniquely identify groups of tracks that animate the same property or output.

Public function

FInterrogati...

 

AllocateUnboundChannel

(
    FInterrogationChannel ParentChannel,
    const FTransform& CurrentValueLoca...
)

Allocate a new channel for a set of transform tracks that isn't bound to any particular object (but can still exist within a hierarchy)

Public function

void

 

DeactivateChannel

(
    FInterrogationChannel InChannel
)

Called to deactivate the specified channel.

Public function

FInterrogati...

 

FindChannel

(
    UObject* Object
)

Find the existing interrogation channel for the specified object

Public function Const

TArrayView< ...

 

GetInterrogations()

Retrieve the current interrogations

Public function Const

int32

 

GetNumChannels()

Retrieve the number of channels allocated

Public function Const

const FSpars...

 

GetSparseChannelInfo()

Public function

FInterrogati...

 

ImportTransformHierarchy

(
    USceneComponent* SceneComponen...
)

Import the entire transform hierarchy for the specified component, including all attached parents and tracks relating to them.

Public function Const

void

 

QueryLocalSpaceTransforms

Query local space transforms

Public function Const

void

 

QueryLocalSpaceTransforms

Query all local space transforms, even including channels that do not have any variable track data

Public function Const

void

 

QueryLocalSpaceTransforms

(
    UMovieSceneEntitySystemLinker*...,
    USceneComponent* SceneComponen...,
    TArray< FIntermediate3DTransform > ...
)

Query local space transforms

Public function Const

void

 

QueryLocalSpaceTransforms

(
    UMovieSceneEntitySystemLinker*...,
    const TBitArray<>& ChannelsToQuery,
    TSparseArray< TArray< FIntermediate...
)

Query a specific set of channels for their local space transforms as defined by set bits within ChannelsToQuery

Public function Const

void

 

QueryWorldSpaceTransforms

(
    UMovieSceneEntitySystemLinker*...,
    USceneComponent* SceneComponen...,
    TArray< FTransform >& OutTransform...
)

Query world space transforms for a component

Public function Const

void

 

QueryWorldSpaceTransforms

(
    UMovieSceneEntitySystemLinker*...,
    const TBitArray<>& ChannelsToQuery,
    TSparseArray< TArray< FTransform >>...
)

Query a specific set of channels for their world space transforms as defined by set bits within ChannelsToQuery

Public function Const

void

 

QueryWorldSpaceTransforms

(
    UMovieSceneEntitySystemLinker*...,
    FInterrogationChannel InChannel,
    TArray< FTransform >& OutTransform...
)

Query world space transforms for a channel

Public function Const

void

 

QueryWorldSpaceTransforms

Query all world space transforms, even including channels that do not have any variable track data

Public function

void

 

Reset()