// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "MovieSceneNameableTrack.h" #include "Compilation/IMovieSceneTrackTemplateProducer.h" #include "MovieSceneGeometryCacheTrack.generated.h" /** * Handles animation of geometry cache actors */ class UGeometryCacheComponent; UCLASS(MinimalAPI) class UMovieSceneGeometryCacheTrack : public UMovieSceneNameableTrack , public IMovieSceneTrackTemplateProducer { GENERATED_UCLASS_BODY() public: /** Adds a new animation to this track */ virtual UMovieSceneSection* AddNewAnimation(FFrameNumber KeyTime, UGeometryCacheComponent* GeomCacheComp); /** Gets the animation sections at a certain time */ TArray GetAnimSectionsAtTime(FFrameNumber Time); public: // UMovieSceneTrack interface virtual void RemoveAllAnimationData() override; virtual bool HasSection(const UMovieSceneSection& Section) const override; virtual void AddSection(UMovieSceneSection& Section) override; virtual void RemoveSection(UMovieSceneSection& Section) override; virtual void RemoveSectionAt(int32 SectionIndex) override; virtual bool IsEmpty() const override; virtual const TArray& GetAllSections() const override; virtual bool SupportsType(TSubclassOf SectionClass) const override; virtual UMovieSceneSection* CreateNewSection() override; // ~IMovieSceneTrackTemplateProducer interface virtual FMovieSceneEvalTemplatePtr CreateTemplateForSection(const UMovieSceneSection& InSection) const override; #if WITH_EDITORONLY_DATA virtual FText GetDefaultDisplayName() const override; #endif private: /** List of all animation sections */ UPROPERTY() TArray> AnimationSections; };