You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Add support for double precision channels, curves, evaluation, blending, and all other runtime infrastructure. - Note that, as usual for now, double channels load and save float values. - Editor side also gains some new track editors for these new types, with some workarounds to correctly recognize between float and double vectors. - Transform tracks are now operating entirely in doubles. - Float recomposing APIs for keying tracks in the editor are now using doubles, and have been renamed to "value recomposing". #rb max.chen #preflight 6123f6d9e7a3070001ff37ed [CL 17278174 by ludovic chabant in ue5-main branch]
55 lines
1.8 KiB
C++
55 lines
1.8 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreTypes.h"
|
|
#include "UObject/WeakObjectPtr.h"
|
|
#include "UObject/WeakObjectPtrTemplates.h"
|
|
#include "Channels/MovieSceneChannelHandle.h"
|
|
#include "CurveEditorKeyProxy.h"
|
|
#include "MovieSceneKeyProxy.h"
|
|
#include "Channels/MovieSceneDoubleChannel.h"
|
|
|
|
#include "DoubleChannelKeyProxy.generated.h"
|
|
|
|
class UMovieSceneSection;
|
|
|
|
UCLASS()
|
|
class UDoubleChannelKeyProxy : public UObject, public ICurveEditorKeyProxy, public IMovieSceneKeyProxy
|
|
{
|
|
public:
|
|
GENERATED_BODY()
|
|
|
|
/**
|
|
* Initialize this key proxy object by caching the underlying key object, and retrieving the time/value each tick
|
|
*/
|
|
void Initialize(FKeyHandle InKeyHandle, TMovieSceneChannelHandle<FMovieSceneDoubleChannel> InChannelHandle, TWeakObjectPtr<UMovieSceneSection> InWeakSection);
|
|
|
|
private:
|
|
|
|
/** Apply this class's properties to the underlying key */
|
|
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
|
|
|
|
/** Update this class's properties from the underlying key */
|
|
virtual void UpdateValuesFromRawData() override;
|
|
|
|
private:
|
|
|
|
/** User-facing time of the key, applied to the actual key on PostEditChange, and updated every tick */
|
|
UPROPERTY(EditAnywhere, Category="Key")
|
|
FFrameNumber Time;
|
|
|
|
/** User-facing value of the key, applied to the actual key on PostEditChange, and updated every tick */
|
|
UPROPERTY(EditAnywhere, Category="Key", meta=(ShowOnlyInnerProperties))
|
|
FMovieSceneDoubleValue Value;
|
|
|
|
private:
|
|
|
|
/** Cached key handle that this key proxy relates to */
|
|
FKeyHandle KeyHandle;
|
|
/** Cached channel in which the key resides */
|
|
TMovieSceneChannelHandle<FMovieSceneDoubleChannel> ChannelHandle;
|
|
/** Cached section in which the channel resides */
|
|
TWeakObjectPtr<UMovieSceneSection> WeakSection;
|
|
};
|