3#include <EditorFramework/Assets/SimpleAssetDocument.h>
4#include <EditorFramework/Document/GameObjectContextDocument.h>
5#include <EditorFramework/Object/ObjectPropertyPath.h>
6#include <EditorPluginAssets/ColorGradientAsset/ColorGradientAsset.h>
7#include <Foundation/Communication/Event.h>
8#include <GameEngine/Animation/PropertyAnimResource.h>
9#include <GuiFoundation/Widgets/CurveEditData.h>
10#include <GuiFoundation/Widgets/EventTrackEditData.h>
41 plUInt32 m_uiFramesPerSecond = 60;
42 plUInt64 m_uiCurveDuration = 480;
52 AnimationLengthChanged,
53 ScrubberPositionChanged,
70 void SetAnimationDurationTicks(plUInt64 uiNumTicks);
71 plUInt64 GetAnimationDurationTicks()
const;
72 plTime GetAnimationDurationTime()
const;
73 void AdjustDuration();
75 bool SetScrubberPosition(plUInt64 uiTick);
76 plUInt64 GetScrubberPosition()
const {
return m_uiScrubberTickPos; }
80 void SetPlayAnimation(
bool bPlay);
81 bool GetPlayAnimation()
const {
return m_bPlayAnimation; }
82 void SetRepeatAnimation(
bool bRepeat);
83 bool GetRepeatAnimation()
const {
return m_bRepeatAnimation; }
84 void ExecuteAnimationPlaybackStep();
94 plUuid FindCurveCp(
const plUuid& trackGuid, plInt64 iTickX);
95 plUuid InsertCurveCpAt(
const plUuid& trackGuid, plInt64 iTickX,
double fNewPosY);
97 plUuid FindGradientColorCp(
const plUuid& trackGuid, plInt64 iTickX);
100 plUuid FindGradientAlphaCp(
const plUuid& trackGuid, plInt64 iTickX);
101 plUuid InsertGradientAlphaCpAt(
const plUuid& trackGuid, plInt64 iTickX, plUInt8 uiAlpha);
103 plUuid FindGradientIntensityCp(
const plUuid& trackGuid, plInt64 iTickX);
104 plUuid InsertGradientIntensityCpAt(
const plUuid& trackGuid, plInt64 iTickX,
float fIntensity);
106 plUuid InsertEventTrackCpAt(plInt64 iTickX,
const char* szValue);
110 return plManipulatorSearchStrategy::ChildrenOfSelectedObject;
116 virtual void InitializeAfterLoading(
bool bFirstTimeCreation)
override;
128 struct PropertyKeyHash
138 return a.m_Object == b.m_Object && a.m_pProperty == b.m_pProperty && a.m_Index == b.m_Index;
142 void RebuildMapping();
143 void RemoveTrack(
const plUuid& track);
144 void AddTrack(
const plUuid& track);
149 void ApplyAnimation();
155 bool m_bPlayAnimation =
false;
156 bool m_bRepeatAnimation =
false;
158 plUInt64 m_uiScrubberTickPos = 0;
This is the base interface for all properties in the reflection system. It provides enough informatio...
Definition AbstractProperty.h:150
A 8bit per channel unsigned normalized (values interpreted as 0-1) color storage format that represen...
Definition Color8UNorm.h:99
Definition ColorGradientAsset.h:49
Definition DocumentObjectBase.h:11
Definition DynamicArray.h:81
Definition EventTrackEditData.h:25
Definition HashTable.h:333
static plUInt32 xxHash32(const void *pKey, size_t uiSizeInByte, plUInt32 uiSeed=0)
Calculates the 32bit xxHash of the given key.
Definition HashingUtils.cpp:209
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Definition PropertyAnimAsset.h:62
virtual plManipulatorSearchStrategy GetManipulatorSearchStrategy() const override
Needed by plManipulatorManager to know where to look for the manipulator attributes.
Definition PropertyAnimAsset.h:108
virtual plTransformStatus InternalTransformAsset(plStreamWriter &stream, plStringView sOutputTag, const plPlatformProfile *pAssetProfile, const plAssetFileHeader &AssetHeader, plBitflags< plTransformFlags > transformFlags) override
Override this and write the transformed file for the given szOutputTag into the given stream.
Definition PropertyAnimAsset.cpp:164
Definition PropertyAnimObjectAccessor.h:8
Definition PropertyAnimAsset.h:32
Definition PropertyAnimAsset.h:18
plString m_sObjectSearchSequence
Sequence of named objects to search for the target.
Definition PropertyAnimAsset.h:22
plString m_sComponentType
Empty to reference the game object properties (position etc.)
Definition PropertyAnimAsset.h:23
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
Definition SimpleAssetDocument.h:23
Definition CurveEditData.h:82
Interface for binary out (write) streams.
Definition Stream.h:107
plStringBuilder is a class that is meant for creating and modifying strings.
Definition StringBuilder.h:35
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
This data type is the abstraction for 128-bit Uuid (also known as GUID) instances.
Definition Uuid.h:11
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
plUInt64 ComputeHash(plUInt64 uiSeed=0) const
Computes the hash value of the stored data. Returns uiSeed (unchanged) for an invalid Variant.
Definition Variant.cpp:532
The plBitflags class allows you to work with type-safe bitflags.
Definition Bitflags.h:82
Definition CommandHistory.h:31
Used by plDocumentObjectManager::m_PropertyEvents.
Definition DocumentObjectManager.h:77
Used by plDocumentObjectManager::m_StructureEvents.
Definition DocumentObjectManager.h:45
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Definition GameObjectContextDocument.h:7
Definition PropertyAnimAsset.h:49
Enum
Definition PropertyAnimResource.h:16
Definition ObjectPropertyPath.h:17
An plResult with an additional message for the reason of failure.
Definition Status.h:12
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12