UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BlendProfileScratchData.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "CoreMinimal.h"
8
9struct FCompactPose;
10struct FBlendedCurve;
11namespace UE { namespace Anim { struct FStackAttributeContainer; } }
12
17struct FBlendProfileScratchData : public TThreadSingleton<FBlendProfileScratchData>
18{
19 // @todo: TArray<TArray<>> allocations are not preserved during resets. We should either implement a new TArrayOfArrays container
20 // or change the deallocation policy perhaps via template specialization?
21
22 TArray<TArray<float>> PerBoneWeights; // A set of bone weights, per montage instance. Index this like [PoseIndex][CompactPoseBoneIndex].
23 TArray<float> PerBoneWeightTotals; // The bone weight totals for non-additive poses, used for normalizing weights.
24 TArray<float> PerBoneWeightTotalsAdditive; // The bone weight totals for additive poses, used for normalizing weights.
25 TArray<float> BoneBlendProfileScales; // The bone profile scale values.
26
27 TArray<FSlotEvaluationPose> Poses; // Non additive poses.
29
30 TArray<uint8, TInlineAllocator<8>> PoseIndices; // The indices inside the PerBoneWeights array, for non additive poses.
31 TArray<uint8, TInlineAllocator<8>> AdditivePoseIndices; // The indices inside the PerBoneWeights array, for additive poses.
32
33 TArray<float, TInlineAllocator<8>> BlendingWeights; // The per pose blend weights.
37
53
54 bool IsEmpty() const
55 {
56 return PerBoneWeights.IsEmpty() &&
60 Poses.IsEmpty() &&
62 PoseIndices.IsEmpty() &&
63 AdditivePoseIndices.IsEmpty() &&
64 BlendingWeights.IsEmpty() &&
65 BlendingPoses.IsEmpty() &&
66 BlendingCurves.IsEmpty() &&
67 BlendingAttributes.IsEmpty();
68 }
69};
Definition Array.h:670
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_REWRITE bool IsEmpty() const
Definition Array.h:1133
Definition ThreadSingleton.h:44
Definition AdvancedWidgetsModule.cpp:13
Definition BlendProfileScratchData.h:18
TArray< const UE::Anim::FStackAttributeContainer *, TInlineAllocator< 8 > > BlendingAttributes
Definition BlendProfileScratchData.h:36
TArray< float > BoneBlendProfileScales
Definition BlendProfileScratchData.h:25
TArray< const FBlendedCurve *, TInlineAllocator< 8 > > BlendingCurves
Definition BlendProfileScratchData.h:35
TArray< FSlotEvaluationPose > AdditivePoses
Definition BlendProfileScratchData.h:28
TArray< TArray< float > > PerBoneWeights
Definition BlendProfileScratchData.h:22
TArray< uint8, TInlineAllocator< 8 > > AdditivePoseIndices
Definition BlendProfileScratchData.h:31
TArray< float > PerBoneWeightTotals
Definition BlendProfileScratchData.h:23
void Reset()
Definition BlendProfileScratchData.h:38
TArray< FSlotEvaluationPose > Poses
Definition BlendProfileScratchData.h:27
TArray< const FCompactPose *, TInlineAllocator< 8 > > BlendingPoses
Definition BlendProfileScratchData.h:34
TArray< uint8, TInlineAllocator< 8 > > PoseIndices
Definition BlendProfileScratchData.h:30
bool IsEmpty() const
Definition BlendProfileScratchData.h:54
TArray< float, TInlineAllocator< 8 > > BlendingWeights
Definition BlendProfileScratchData.h:33
TArray< float > PerBoneWeightTotalsAdditive
Definition BlendProfileScratchData.h:24
Definition AnimCurveTypes.h:1041
Definition BonePose.h:347