CommonLibSSE NG
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 inline static constexpr auto VTABLE = VTABLE_hkaAnimation;
17
18 enum class AnimationType
19 {
27 };
28
29 struct DataChunk
30 {
31 const void* data; // 00
32 std::uint32_t size; // 08
33 std::uint8_t offset; // 0C
34 };
35
37 {
38 // The bone ID which is annotated
39 std::uint16_t trackID;
41 };
42
43 // add
44 virtual void SampleTracks(float a_time, hkQsTransform* a_transformTracksOut, float* a_floatTracksOut, hkaChunkCache* cache) const = 0; // 03
45 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
46 virtual void ClearAllCacheKeys(hkaChunkCache* a_cache) const; // 05
47 virtual void SampleIndividualTransformTracks(float a_time, const std::uint16_t* a_tracks, std::uint32_t a_numTracks, hkQsTransform* a_transformOut) const = 0; // 06
48 virtual void SampleIndividualFloatTracks(float a_time, const std::uint16_t* a_tracks, std::uint32_t a_numTracks, float* a_out) const = 0; // 07
49 virtual std::int32_t GetNumOriginalFrames() const = 0; // 08
50 virtual std::int32_t GetNumDataChunks(std::uint32_t a_frame, float a_delta) const; // 09
51 virtual void GetDataChunks(std::uint32_t a_frame, float a_delta, DataChunk* a_dataChunks, std::int32_t a_numDataChunks) const; // 0A
52 virtual std::int32_t GetMaxSizeOfCombinedDataChunks() const; // 0B
53 virtual void GetExtractedMotionReferenceFrame(float a_time, hkQsTransform& a_motionOut) const; // 0C
54 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
55 virtual std::uint32_t GetNumAnnotations(float a_startTime, float a_deltaTime) const; // 0E
56 virtual std::uint32_t GetAnnotations(float a_startTime, float a_deltaTime, TrackAnnotation* a_annotationsOut, std::uint32_t a_maxAnnotations) const; // 0F
57
58 // members
60 float duration; // 14
61 std::int32_t numberOfTransformTracks; // 18
62 std::int32_t numberOfFloatTracks; // 1C
65 };
66 static_assert(sizeof(hkaAnimation) == 0x38);
67}
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:61
hkRefPtr< hkaAnimatedReferenceFrame > extractedMotion
Definition hkaAnimation.h:63
virtual std::int32_t GetMaxSizeOfCombinedDataChunks() const
float duration
Definition hkaAnimation.h:60
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:59
virtual std::int32_t GetNumOriginalFrames() const =0
virtual std::int32_t GetNumDataChunks(std::uint32_t a_frame, float a_delta) const
static constexpr auto VTABLE
Definition hkaAnimation.h:16
AnimationType
Definition hkaAnimation.h:19
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:62
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:64
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:223
Definition AbsorbEffect.h:6
constexpr std::array< REL::VariantID, 1 > VTABLE_hkaAnimation
Definition Offsets_VTABLE.h:5201
constexpr REL::VariantID RTTI_hkaAnimation(690064, 397919, 0x1f5c7e8)
Definition hkaAnimation.h:30
const void * data
Definition hkaAnimation.h:31
std::uint8_t offset
Definition hkaAnimation.h:33
std::uint32_t size
Definition hkaAnimation.h:32
Definition hkaAnimation.h:37
std::uint16_t trackID
Definition hkaAnimation.h:39
hkaAnnotationTrack::Annotation annotation
Definition hkaAnimation.h:40
Definition hkaAnnotationTrack.h:12