Files
UnrealEngine/Engine/Source/Runtime/MovieScene/Private/EntitySystem/MovieSceneEntityMutations.cpp
2025-05-18 13:04:45 +08:00

40 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "EntitySystem/MovieSceneEntityMutations.h"
namespace UE
{
namespace MovieScene
{
void FAddSingleMutation::CreateMutation(FEntityManager* EntityManager, FComponentMask* InOutEntityComponentTypes) const
{
InOutEntityComponentTypes->Set(ComponentToAdd);
}
void FRemoveSingleMutation::CreateMutation(FEntityManager* EntityManager, FComponentMask* InOutEntityComponentTypes) const
{
InOutEntityComponentTypes->Remove(ComponentToRemove);
}
void FAddMultipleMutation::CreateMutation(FEntityManager* EntityManager, FComponentMask* InOutEntityComponentTypes) const
{
InOutEntityComponentTypes->CombineWithBitwiseOR(MaskToAdd, EBitwiseOperatorFlags::MaintainSize);
}
void FRemoveMultipleMutation::RemoveComponent(FComponentTypeID InComponentType)
{
checkSlow(InComponentType);
MaskToRemove.PadToNum(InComponentType.BitIndex() + 1, true);
MaskToRemove.Remove(InComponentType);
}
void FRemoveMultipleMutation::CreateMutation(FEntityManager* EntityManager, FComponentMask* InOutEntityComponentTypes) const
{
InOutEntityComponentTypes->CombineWithBitwiseAND(MaskToRemove, EBitwiseOperatorFlags::MaintainSize | EBitwiseOperatorFlags::OneFillMissingBits);
}
} // namespace MovieScene
} // namespace UE