CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
hkaAnimation.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/H/hkRefPtr.h"
7
8namespace RE
9{
10 class hkaChunkCache;
11
13 {
14 public:
15 inline static constexpr auto RTTI = RTTI_hkaAnimation;
16
17 enum class AnimationType
18 {
26 };
27
28 struct DataChunk
29 {
30 const void* data; // 00
31 std::uint32_t size; // 08
32 std::uint8_t offset; // 0C
33 };
34
36 {
37 // The bone ID which is annotated
38 std::uint16_t trackID;
40 };
41
42 // add
43 virtual void SampleTracks(float a_time, hkQsTransform* a_transformTracksOut, float* a_floatTracksOut, hkaChunkCache* cache) const = 0; // 03
44 virtual void SamplePartialTracks(float a_time, std::uint32_t a_maxNumTransformTracks, hkQsTransform* a_transformTracksOut, std::uint32_t a_maxNumFloatTracks, float* a_floatTracksOut, hkaChunkCache* a_cache) const; // 04
45 virtual void ClearAllCacheKeys(hkaChunkCache* a_cache) const; // 05
46 virtual void SampleIndividualTransformTracks(float a_time, const std::uint16_t* a_tracks, std::uint32_t a_numTracks, hkQsTransform* a_transformOut) const = 0; // 06
47 virtual void SampleIndividualFloatTracks(float a_time, const std::uint16_t* a_tracks, std::uint32_t a_numTracks, float* a_out) const = 0; // 07
48 virtual std::int32_t GetNumOriginalFrames() const = 0; // 08
49 virtual std::int32_t GetNumDataChunks(std::uint32_t a_frame, float a_delta) const; // 09
50 virtual void GetDataChunks(std::uint32_t a_frame, float a_delta, DataChunk* a_dataChunks, std::int32_t a_numDataChunks) const; // 0A
51 virtual std::int32_t GetMaxSizeOfCombinedDataChunks() const; // 0B
52 virtual void GetExtractedMotionReferenceFrame(float a_time, hkQsTransform& a_motionOut) const; // 0C
53 virtual void GetExtractedMotionDeltaReferenceFrame(float a_time, float a_nextTime, std::int32_t a_loops, hkQsTransform& a_deltaMotionOut, float a_cropStartAmount, float a_cropEndAmount) const; // 0D
54 virtual std::uint32_t GetNumAnnotations(float a_startTime, float a_deltaTime) const; // 0E
55 virtual std::uint32_t GetAnnotations(float a_startTime, float a_deltaTime, TrackAnnotation* a_annotationsOut, std::uint32_t a_maxAnnotations) const; // 0F
56
57 // members
59 float duration; // 14
60 std::int32_t numberOfTransformTracks; // 18
61 std::int32_t numberOfFloatTracks; // 1C
64 };
65 static_assert(sizeof(hkaAnimation) == 0x38);
66}
Definition: hkArray.h:189
Definition: hkQsTransform.h:9
Definition: hkRefPtr.h:7
Definition: hkReferencedObject.h:11
Definition: hkaAnimation.h:13
std::int32_t numberOfTransformTracks
Definition: hkaAnimation.h:60
hkRefPtr< hkaAnimatedReferenceFrame > extractedMotion
Definition: hkaAnimation.h:62
virtual std::int32_t GetMaxSizeOfCombinedDataChunks() const
float duration
Definition: hkaAnimation.h:59
virtual void SampleTracks(float a_time, hkQsTransform *a_transformTracksOut, float *a_floatTracksOut, hkaChunkCache *cache) const =0
virtual void ClearAllCacheKeys(hkaChunkCache *a_cache) const
virtual void GetDataChunks(std::uint32_t a_frame, float a_delta, DataChunk *a_dataChunks, std::int32_t a_numDataChunks) const
virtual std::uint32_t GetNumAnnotations(float a_startTime, float a_deltaTime) const
virtual void GetExtractedMotionReferenceFrame(float a_time, hkQsTransform &a_motionOut) const
stl::enumeration< AnimationType, std::uint32_t > type
Definition: hkaAnimation.h:58
virtual std::int32_t GetNumOriginalFrames() const =0
virtual std::int32_t GetNumDataChunks(std::uint32_t a_frame, float a_delta) const
AnimationType
Definition: hkaAnimation.h:18
virtual void GetExtractedMotionDeltaReferenceFrame(float a_time, float a_nextTime, std::int32_t a_loops, hkQsTransform &a_deltaMotionOut, float a_cropStartAmount, float a_cropEndAmount) const
virtual void SampleIndividualFloatTracks(float a_time, const std::uint16_t *a_tracks, std::uint32_t a_numTracks, float *a_out) const =0
static constexpr auto RTTI
Definition: hkaAnimation.h:15
virtual std::uint32_t GetAnnotations(float a_startTime, float a_deltaTime, TrackAnnotation *a_annotationsOut, std::uint32_t a_maxAnnotations) const
std::int32_t numberOfFloatTracks
Definition: hkaAnimation.h:61
virtual void SamplePartialTracks(float a_time, std::uint32_t a_maxNumTransformTracks, hkQsTransform *a_transformTracksOut, std::uint32_t a_maxNumFloatTracks, float *a_floatTracksOut, hkaChunkCache *a_cache) const
hkArray< hkaAnnotationTrack > annotationTracks
Definition: hkaAnimation.h:63
virtual void SampleIndividualTransformTracks(float a_time, const std::uint16_t *a_tracks, std::uint32_t a_numTracks, hkQsTransform *a_transformOut) const =0
Definition: PCH.h:217
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_hkaAnimation(static_cast< std::uint64_t >(690064))
Definition: hkaAnimation.h:29
const void * data
Definition: hkaAnimation.h:30
std::uint8_t offset
Definition: hkaAnimation.h:32
std::uint32_t size
Definition: hkaAnimation.h:31
Definition: hkaAnimation.h:36
std::uint16_t trackID
Definition: hkaAnimation.h:38
hkaAnnotationTrack::Annotation annotation
Definition: hkaAnimation.h:39
Definition: hkaAnnotationTrack.h:12