Files
UnrealEngineUWP/Engine/Source/Editor/Sequencer/Public/ISequencerKeyCollection.h
Ben Marsh 20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00

44 lines
1.5 KiB
C++

// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
class FSequencerDisplayNode;
enum class EFindKeyDirection
{
Forwards, Backwards
};
/**
* A collection of keys gathered recursively from a particular node or nodes
*/
class ISequencerKeyCollection
{
public:
virtual ~ISequencerKeyCollection() {}
public:
/** Iterate the keys contained within this collection */
virtual void IterateKeys(const TFunctionRef<bool(float)>& Iter) = 0;
/** Get a value specifying how close keys need to be in order to be considered equal by this collection */
virtual float GetKeyGroupingThreshold() const = 0;
/** Find the first key in the given range */
virtual TOptional<float> FindFirstKeyInRange(const TRange<float>& InRange, EFindKeyDirection Direction) const = 0;
public:
/** Initialize this key collection from the specified nodes. Only gathers keys from those explicitly specified. */
virtual void InitializeExplicit(const TArray<FSequencerDisplayNode*>& InNodes, float DuplicateThreshold = SMALL_NUMBER) = 0;
/** Initialize this key collection from the specified nodes. Gathers keys from all child nodes. */
virtual void InitializeRecursive(const TArray<FSequencerDisplayNode*>& InNodes, float DuplicateThreshold = SMALL_NUMBER) = 0;
/** Initialize this key collection from the specified node and section index. */
virtual void InitializeRecursive(FSequencerDisplayNode& InNode, int32 InSectionIndex, float DuplicateThreshold = SMALL_NUMBER) = 0;
};