CommonLibSSE NG
Loading...
Searching...
No Matches
NiFloatInterpolator.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace RE
7{
8 class NiFloatData;
9
11 {
12 public:
13 inline static constexpr auto RTTI = RTTI_NiFloatInterpolator;
14 inline static auto Ni_RTTI = NiRTTI_NiFloatInterpolator;
15
16 ~NiFloatInterpolator() override; // 00
17
18 // override (NiKeyBasedInterpolator)
19 const NiRTTI* GetRTTI() const override; // 02
20 NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
21 void LoadBinary(NiStream& a_stream) override; // 18
22 void LinkObject(NiStream& a_stream) override; // 19 - { NiKeyBasedInterpolator::LinkObject(a_stream); }
23 bool RegisterStreamables(NiStream& a_stream) override; // 1A
24 void SaveBinary(NiStream& a_stream) override; // 1B
25 bool IsEqual(NiObject* a_object) override; // 1C
26 bool Update1(float a_time, NiObjectNET* a_interpTarget, NiQuatTransform& a_value) override; // 25 - { return NiInterpolator::UpdateTransform(a_time, a_interpTarget, a_value); }
27 bool Update2(float a_time, NiObjectNET* a_target, NiColorA& a_value) override; // 26 - { return NiInterpolator::UpdateTransform(a_time, a_interpTarget, a_value); }
28 bool Update3(float a_time, NiObjectNET* a_interpTarget, NiPoint3& a_value) override; // 27 - { return NiInterpolator::UpdateTransform(a_time, a_interpTarget, a_value); }
29 bool Update4(float a_time, NiObjectNET* a_interpTarget, NiQuaternion& a_value) override; // 28 - { return NiInterpolator::UpdateTransform(a_time, a_interpTarget, a_value); }
30 bool Update5(float a_time, NiObjectNET* a_interpTarget, float& a_value) override; // 29
31 bool Update6(float a_time, NiObjectNET* a_interpTarget, bool& a_value) override; // 2A - { return NiInterpolator::UpdateTransform(a_time, a_interpTarget, a_value); }
32 bool IsFloatValueSupported() const override; // 2C - { return true; }
33 void Collapse() override; // 31
34 void GuaranteeTimeRange(float a_start, float a_end) override; // 33
35 NiInterpolator* GetSequenceInterpolator(float a_start, float a_end) override; // 34
36 std::uint16_t GetKeyChannelCount() const override; // 39 - { return 1; }
37 std::uint32_t GetKeyCount(std::uint16_t a_channel) const override; // 3A - { return floatData ? floatData->numKeys : 0; }
38 KeyContent GetKeyContent(std::uint16_t a_channel) const override; // 3B - { KeyContent::kFloat; }
39 KeyType GetKeyType(std::uint16_t a_channel) const override; // 3C - { return floatData ? floatData->type : 0; }
40 void* GetKeyArray(std::uint16_t a_channel) const override; // 3D - { return floatData ? floatData->keys : 0; }
41 std::uint8_t GetKeyStride(std::uint16_t a_channel) const override; // 3E - { return floatData ? floatData->keySize : 0; }
42 [[nodiscard]] bool GetChannelPosed(std::uint16_t a_channel) const override; // 3F - { return !floatData && floatValue != -3.4028235e38; }
43
44 // members
45 float floatValue; // 18
46 std::uint32_t pad1C; // 1C
48 std::uint32_t lastIndex; // 28
49 std::uint32_t pad2C; // 2C
50 };
51 static_assert(sizeof(NiFloatInterpolator) == 0x30);
52}
KeyContent
Definition NiAnimationKey.h:9
KeyType
Definition NiAnimationKey.h:21
Definition NiCloningProcess.h:10
Definition NiColor.h:276
Definition NiFloatInterpolator.h:11
std::uint8_t GetKeyStride(std::uint16_t a_channel) const override
std::uint32_t pad2C
Definition NiFloatInterpolator.h:49
void SaveBinary(NiStream &a_stream) override
~NiFloatInterpolator() override
void LinkObject(NiStream &a_stream) override
static auto Ni_RTTI
Definition NiFloatInterpolator.h:14
float floatValue
Definition NiFloatInterpolator.h:45
void LoadBinary(NiStream &a_stream) override
bool Update1(float a_time, NiObjectNET *a_interpTarget, NiQuatTransform &a_value) override
NiPointer< NiFloatData > floatData
Definition NiFloatInterpolator.h:47
bool Update5(float a_time, NiObjectNET *a_interpTarget, float &a_value) override
bool GetChannelPosed(std::uint16_t a_channel) const override
KeyContent GetKeyContent(std::uint16_t a_channel) const override
void * GetKeyArray(std::uint16_t a_channel) const override
bool Update3(float a_time, NiObjectNET *a_interpTarget, NiPoint3 &a_value) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
bool IsFloatValueSupported() const override
static constexpr auto RTTI
Definition NiFloatInterpolator.h:13
void GuaranteeTimeRange(float a_start, float a_end) override
KeyType GetKeyType(std::uint16_t a_channel) const override
NiInterpolator * GetSequenceInterpolator(float a_start, float a_end) override
std::uint32_t lastIndex
Definition NiFloatInterpolator.h:48
bool RegisterStreamables(NiStream &a_stream) override
bool IsEqual(NiObject *a_object) override
std::uint32_t GetKeyCount(std::uint16_t a_channel) const override
const NiRTTI * GetRTTI() const override
bool Update4(float a_time, NiObjectNET *a_interpTarget, NiQuaternion &a_value) override
std::uint16_t GetKeyChannelCount() const override
bool Update2(float a_time, NiObjectNET *a_target, NiColorA &a_value) override
void Collapse() override
bool Update6(float a_time, NiObjectNET *a_interpTarget, bool &a_value) override
std::uint32_t pad1C
Definition NiFloatInterpolator.h:46
Definition NiInterpolator.h:16
Definition NiKeyBasedInterpolator.h:9
Definition NiObject.h:37
Definition NiObjectNET.h:13
Definition NiPoint3.h:6
Definition NiSmartPointer.h:9
Definition NiQuaternion.h:6
Definition NiRTTI.h:6
Definition NiStream.h:27
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiFloatInterpolator(690510, 398365, 0x1f62f60)
constexpr REL::VariantID NiRTTI_NiFloatInterpolator(524339, 410920, 0x316d2b8)