19 template<
typename AttributeType>
34 template <
typename Type>
55 const AttributeType&
Attribute = It.GetValue();
58 if (It.GetIndex() == 0)
80 const AttributeType&
Attribute = It.GetValue();
107 template <
typename Type>
116 OutAttributes->
Add<AttributeType>(
Identifier, It.GetHighestWeightedValue());
124 OutAttributes->
Add<AttributeType>(
Identifier, It.GetValue());
130 template <
typename Type>
152 const AttributeType&
Attribute = It.GetValue();
196 const AttributeType&
Attribute = It.GetValue();
216 template <
typename Type>
223 AttributeType::StaticStruct()->CopyScriptStruct(
OutAttribute, &It.GetHighestBoneWeightedValue());
232 const float BoneWeight = It.GetBoneWeight();
238 const AttributeType&
Attribute = It.GetValue();
252 template <
typename Type>
259 const AttributeType&
Attribute = It.GetValue();
277 template <
typename Type>
284 const AttributeType&
Attribute = It.GetValue();
295 template <
typename Type>
302 const AttributeType&
Attribute = It.GetValue();
328 template <
typename Type>
335 const AttributeType&
Attribute = It.GetValue();
352 template <
typename Type>
359 const AttributeType&
Attribute = It.GetValue();
376 template <
typename Type>
383 const AttributeType&
Attribute = It.GetValue();
400 template <
typename Type>
404 const AttributeType&
TypedTo = *(
const AttributeType*)
ToData;
417 template <
typename Type>
439 const uint8* Attribute= It.GetValuePtr();
440 const FAttributeId& Identifier = It.GetIdentifier();
441 const int32 ExistingIndex = OutAttributes->IndexOfByKey(ScriptStructPtr.Get(), Identifier);
442 uint8* OutAttributePtr = OutAttributes->FindOrAdd(ScriptStructPtr.Get(), Identifier);
445 const float AttributeWeight = It.GetWeight();
446 if (ExistingIndex == INDEX_NONE || AttributeWeight > 0.5f)
448 ScriptStructPtr.Get()->CopyScriptStruct(OutAttributePtr, Attribute);
466 const uint8* Attribute = It.GetValuePtr();
467 const FAttributeId& Identifier = It.GetIdentifier();
470 uint8* OutAttribute = OutAttributes->FindOrAdd(ScriptStructPtr.Get(),Identifier);
471 ScriptStructPtr.Get()->CopyScriptStruct(OutAttribute, Attribute);
537 const uint8* Attribute = It.GetValuePtr();
538 const FAttributeId& Identifier = It.GetIdentifier();
539 const int32 ExistingIndex = OutAdditiveAttributes->IndexOfByKey(ScriptStructPtr.Get(), Identifier);
540 uint8* OutAttributePtr = OutAdditiveAttributes->FindOrAdd(ScriptStructPtr.Get(),Identifier);
543 const float AttributeWeight = It.GetWeight();
544 if (ExistingIndex == INDEX_NONE)
546 ScriptStructPtr.Get()->CopyScriptStruct(OutAttributePtr, &Attribute);
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ECustomAttributeBlendType
Definition CustomAttributes.h:19
Definition AttributeBlendOperator.h:428
virtual void Accumulate(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const final
Definition AttributeBlendOperator.h:433
virtual void Blend(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const final
Definition AttributeBlendOperator.h:475
virtual void BlendPerBone(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const final
Definition AttributeBlendOperator.h:499
virtual void ConvertToAdditive(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAdditiveAttributes) const final
Definition AttributeBlendOperator.h:531
virtual void Override(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const final
Definition AttributeBlendOperator.h:460
FNonBlendableAttributeBlendOperator(const UScriptStruct *InScriptStruct)
Definition AttributeBlendOperator.h:430
TWeakObjectPtr< const UScriptStruct > ScriptStructPtr
Definition AttributeBlendOperator.h:553
virtual void Interpolate(const void *FromData, const void *ToData, float Alpha, void *InOutData) const final
Definition AttributeBlendOperator.h:453
Definition IAttributeBlendOperator.h:16
Definition AttributeBlendOperator.h:21
virtual void ConvertToAdditive(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAdditiveAttributes) const final
Definition AttributeBlendOperator.h:29
TEnableIf< TAttributeTypeTraits< Type >::IsBlendable, void >::Type ConvertToAdditive_Internal(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAdditiveAttributes) const
Definition AttributeBlendOperator.h:353
TEnableIf<!TAttributeTypeTraits< Type >::IsBlendable, void >::Type Blend_Internal(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const
Definition AttributeBlendOperator.h:108
virtual void Accumulate(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const final
Definition AttributeBlendOperator.h:24
TEnableIf< TAttributeTypeTraits< Type >::IsBlendable &&!TAttributeTypeTraits< AttributeType >::StepInterpolate, void >::Type Interpolate_Internal(const void *FromData, const void *ToData, float Alpha, void *InOutData) const
Definition AttributeBlendOperator.h:401
TEnableIf<!TAttributeTypeTraits< Type >::IsBlendable, void >::Type Override_Internal(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const
Definition AttributeBlendOperator.h:278
TEnableIf<!TAttributeTypeTraits< Type >::IsBlendable, void >::Type Accumulate_Internal(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const
Definition AttributeBlendOperator.h:329
virtual void Override(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const final
Definition AttributeBlendOperator.h:26
TEnableIf< TAttributeTypeTraits< Type >::IsBlendable, void >::Type Override_Internal(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const
Definition AttributeBlendOperator.h:253
TEnableIf<!TAttributeTypeTraits< Type >::IsBlendable, void >::Type ConvertToAdditive_Internal(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAdditiveAttributes) const
Definition AttributeBlendOperator.h:377
TEnableIf< TAttributeTypeTraits< Type >::IsBlendable, void >::Type Blend_Internal(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const
Definition AttributeBlendOperator.h:35
virtual void Blend(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const final
Definition AttributeBlendOperator.h:27
TEnableIf<!TAttributeTypeTraits< Type >::IsBlendable, void >::Type BlendPerBone_Internal(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const
Definition AttributeBlendOperator.h:217
TEnableIf< TAttributeTypeTraits< Type >::IsBlendable, void >::Type BlendPerBone_Internal(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const
Definition AttributeBlendOperator.h:131
virtual void Interpolate(const void *FromData, const void *ToData, float Alpha, void *InOutData) const final
Definition AttributeBlendOperator.h:25
TEnableIf<!TAttributeTypeTraits< Type >::IsBlendable||TAttributeTypeTraits< AttributeType >::StepInterpolate, void >::Type Interpolate_Internal(const void *FromData, const void *ToData, float Alpha, void *InOutData) const
Definition AttributeBlendOperator.h:418
TEnableIf< TAttributeTypeTraits< Type >::IsBlendable, void >::Type Accumulate_Internal(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const
Definition AttributeBlendOperator.h:296
virtual void BlendPerBone(const FAttributeBlendData &BlendData, FStackAttributeContainer *OutAttributes) const final
Definition AttributeBlendOperator.h:28
Definition AdvancedWidgetsModule.cpp:13
static bool IsFullWeight(float InWeight)
Definition AnimTypes.h:672
static bool IsRelevant(float InWeight)
Definition AnimTypes.h:666
Definition WeakObjectPtrTemplates.h:25
static ENGINE_API ECustomAttributeBlendType GetAttributeBlendType(const FName &InName)
Definition AttributesRuntime.cpp:602
Definition AttributeBlendData.h:282
const uint8 * GetHighestWeightedValue() const
Definition AttributeBlendData.h:311
const uint8 * GetValuePtr() const
Definition AttributeBlendData.h:288
bool Next()
Definition AttributeBlendData.h:376
const FAttributeId & GetIdentifier() const
Definition AttributeBlendData.h:360
const uint8 * GetHighestBoneWeightedValue() const
Definition AttributeBlendData.h:319
const float GetBoneWeight() const
Definition AttributeBlendData.h:303
Definition AttributeBlendData.h:468
bool Next()
Definition AttributeBlendData.h:474
Definition AttributeBlendData.h:13
Definition AttributesContainer.h:27
Definition AttributesRuntime.h:40
int32 IndexOfByKey(const FAttributeId &InAttributeId) const
Definition AttributesContainer.h:575
AttributeType * Add(const FAttributeId &InAttributeId, const AttributeType &Attribute)
Definition AttributesContainer.h:309
AttributeType * FindOrAdd(const FAttributeId &InAttributeId)
Definition AttributesContainer.h:367
Definition AttributeTraits.h:30