#include <ComposableCameraDebugPanelData.h>

One node in an evaluation tree, flattened. Produced by UComposableCameraEvaluationTree::BuildDebugSnapshot.

Public Attributes

Return Name Description
EComposableCameraTreeNodeKind Kind Node kind.
int32 Depth Depth in the tree (root of this director's tree is 0).
FString DisplayLabel Primary display label (camera name / director name / transition class name).
bool bDestroyed True if the underlying pointer was IsValid-false at snapshot time.
bool bIsDominantLeaf True for the single "dominant" leaf in this tree — the one that would remain if every transition collapsed immediately. Computed by walking root → Right → Right → ... → leaf. Leaves that are part of an active transition's source (Left) side will have this as false.
bool bIsLastSibling True if this node is the last child of its parent. For an InnerTransition parent, the Left (source) child has this false and the Right (target) child has this true. Trivially true for tree roots. Drives whether the connector glyph is drawn as (last) or (middle).
uint32 AncestorLastFlagsBitmask Bitmask where bit L is set iff the ancestor at depth L was the last child of its parent. Drives whether a continuation stem is drawn at column L for this line: stem present iff bit (L+1) is 0 (i.e. the ancestor at depth L+1 was NOT last, so its parent's subtree is still incomplete).
bool bIsTransient True if the leaf's camera is marked transient.
float LifeElapsed Lifetime elapsed in seconds (only meaningful when bIsTransient).
float LifeTotal Total lifetime in seconds (only meaningful when bIsTransient).
float TransitionProgress Transition progress in [0..1]. -1 if transition is null.
float TransitionElapsed Elapsed transition time in seconds.
float TransitionTotal Total transition time in seconds.
bool bInReferencedSubtree True if this node was flattened from a ReferenceLeaf's SnapshotRoot — i.e. it belongs to the referenced source director's tree that has been inlined under a ReferenceLeaf during the snapshot build. Panel renderer uses this to pick a dimmer color (the referenced tree is a frozen source snapshot, not the active target tree).
bool bIsReferencedRoot True only on the single node that is the direct child of a ReferenceLeaf (the referenced subtree's root). Suppresses the [from]/[to] role prefix at that seam — the usual "Depth > 0 ⇒ transition parent" invariant does not hold across the RefLeaf boundary (a RefLeaf is a leaf in the outer tree with a synthetic 1-child visual expansion; it is not a transition).
TArray< float > BlendCurveSamples Blend-weight curve sampled at N+1 evenly spaced points in [0, 1], produced by calling GetBlendWeightAt(i/N) on the live transition at snapshot-build time. Drives the debug panel's in-row sparkline: amber "area-under-curve" filled up to TransitionProgress shows how far the blend has gone along its timing curve, and a thin outline shows the entire curve shape.

Kind

EComposableCameraTreeNodeKind Kind = 

Node kind.


Depth

int32 Depth = 0

Depth in the tree (root of this director's tree is 0).


DisplayLabel

FString DisplayLabel

Primary display label (camera name / director name / transition class name).


bDestroyed

bool bDestroyed = false

True if the underlying pointer was IsValid-false at snapshot time.


bIsDominantLeaf

bool bIsDominantLeaf = false

True for the single "dominant" leaf in this tree — the one that would remain if every transition collapsed immediately. Computed by walking root → Right → Right → ... → leaf. Leaves that are part of an active transition's source (Left) side will have this as false.


bIsLastSibling

bool bIsLastSibling = true

True if this node is the last child of its parent. For an InnerTransition parent, the Left (source) child has this false and the Right (target) child has this true. Trivially true for tree roots. Drives whether the connector glyph is drawn as (last) or (middle).


AncestorLastFlagsBitmask

uint32 AncestorLastFlagsBitmask = 0

Bitmask where bit L is set iff the ancestor at depth L was the last child of its parent. Drives whether a continuation stem is drawn at column L for this line: stem present iff bit (L+1) is 0 (i.e. the ancestor at depth L+1 was NOT last, so its parent's subtree is still incomplete).

A 32-bit mask caps tree depth at 32 for debug visualization, which is ~30 levels beyond anything a real camera composition produces.


bIsTransient

bool bIsTransient = false

True if the leaf's camera is marked transient.


LifeElapsed

float LifeElapsed = 0.f

Lifetime elapsed in seconds (only meaningful when bIsTransient).


LifeTotal

float LifeTotal = 0.f

Total lifetime in seconds (only meaningful when bIsTransient).


TransitionProgress

float TransitionProgress = -1.f

Transition progress in [0..1]. -1 if transition is null.


TransitionElapsed

float TransitionElapsed = 0.f

Elapsed transition time in seconds.


TransitionTotal

float TransitionTotal = 0.f

Total transition time in seconds.


bInReferencedSubtree

bool bInReferencedSubtree = false

True if this node was flattened from a ReferenceLeaf's SnapshotRoot — i.e. it belongs to the referenced source director's tree that has been inlined under a ReferenceLeaf during the snapshot build. Panel renderer uses this to pick a dimmer color (the referenced tree is a frozen source snapshot, not the active target tree).


bIsReferencedRoot

bool bIsReferencedRoot = false

True only on the single node that is the direct child of a ReferenceLeaf (the referenced subtree's root). Suppresses the [from]/[to] role prefix at that seam — the usual "Depth > 0 ⇒ transition parent" invariant does not hold across the RefLeaf boundary (a RefLeaf is a leaf in the outer tree with a synthetic 1-child visual expansion; it is not a transition).


BlendCurveSamples

TArray< float > BlendCurveSamples

Blend-weight curve sampled at N+1 evenly spaced points in [0, 1], produced by calling GetBlendWeightAt(i/N) on the live transition at snapshot-build time. Drives the debug panel's in-row sparkline: amber "area-under-curve" filled up to TransitionProgress shows how far the blend has gone along its timing curve, and a thin outline shows the entire curve shape.

Empty for non-transition nodes and for transitions whose pointer was null at snapshot time. 24 samples (25 values) is the convention used by BuildNodeDebugSnapshot — enough for Ease / Cubic / Smoother shoulders to read distinctly at typical panel widths, while staying a trivial allocation cost.