CommonLibSSE NG
Loading...
Searching...
No Matches
NiInterpolator.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiObject.h"
4
5namespace RE
6{
7 class NiAVObjectPalette;
8 class NiBoolInterpolator;
9 class NiColorA;
10 class NiObjectNET;
11 class NiPoint3;
12 class NiQuaternion;
13 class NiQuatTransform;
14
15 class NiInterpolator : public NiObject
16 {
17 public:
18 inline static constexpr auto RTTI = RTTI_NiInterpolator;
19 inline static auto Ni_RTTI = NiRTTI_NiInterpolator;
20
21 ~NiInterpolator() override; // 00
22
23 // override (NiObject)
24 const NiRTTI* GetRTTI() const override; // 02
25 void LoadBinary(NiStream& a_stream) override; // 18 - { NiObject::LoadBinary(a_stream); }
26 void LinkObject(NiStream& a_stream) override; // 19 - { NiObject::LinkObject(a_stream); }
27 bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return NiObject::RegisterStreamables(a_stream); }
28 void SaveBinary(NiStream& a_stream) override; // 1B - { NiObject::SaveBinary(a_stream); }
29 bool IsEqual(NiObject* a_object) override; // 1C - { return NiObject::IsEqual(a_stream); }
30
31 // add
32 virtual bool Update1(float a_time, NiObjectNET* a_interpTarget, NiQuatTransform& a_value); // 25 - { return false; }
33 virtual bool Update2(float a_time, NiObjectNET* a_interpTarget, NiColorA& a_value); // 26 - { return false; }
34 virtual bool Update3(float a_time, NiObjectNET* a_interpTarget, NiPoint3& a_value); // 27 - { return false; }
35 virtual bool Update4(float a_time, NiObjectNET* a_interpTarget, NiQuaternion& a_value); // 28 - { return false; }
36 virtual bool Update5(float a_time, NiObjectNET* a_interpTarget, float& a_value); // 29 - { return false; }
37 virtual bool Update6(float a_time, NiObjectNET* a_interpTarget, bool& a_value); // 2A - { return false; }
38 [[nodiscard]] virtual bool IsBoolValueSupported() const; // 2B - { return false; }
39 [[nodiscard]] virtual bool IsFloatValueSupported() const; // 2C - { return false; }
40 [[nodiscard]] virtual bool IsQuaternionValueSupported() const; // 2D - { return false; }
41 [[nodiscard]] virtual bool IsPoint3ValueSupported() const; // 2E - { return false; }
42 [[nodiscard]] virtual bool IsColorAValueSupported() const; // 2F - { return false; }
43 [[nodiscard]] virtual bool IsTransformValueSupported() const; // 30 - { return false; }
44 virtual void Collapse(); // 31 - { return; }
45 virtual void GetActiveTimeRange(float& a_beginKeyTime, float& a_endKeyTime) const; // 32 - { a_beginKeyTime = 0.0; a_endKeyTime = 0.0; }
46 virtual void GuaranteeTimeRange(float a_startTime, float a_endTime); // 33 - { return; }
47 virtual NiInterpolator* GetSequenceInterpolator(float a_startTime, float a_endTime); // 34
48 virtual bool ResolveDependencies(NiAVObjectPalette* a_palette); // 35 - { return true; }
49 virtual bool SetUpDependencies(); // 36 - { return true; }
50 [[nodiscard]] virtual bool AlwaysUpdate() const; // 37 - { return false; }
51 virtual NiBoolInterpolator* AsNiBoolInterpolator(); // 38 - { return 0; }
52
53 bool Update(float a_time, NiObjectNET* a_interpTarget, NiQuatTransform& a_value);
54 bool Update(float a_time, NiObjectNET* a_interpTarget, NiColorA& a_value);
55 bool Update(float a_time, NiObjectNET* a_interpTarget, NiPoint3& a_value);
56 bool Update(float a_time, NiObjectNET* a_interpTarget, NiQuaternion& a_value);
57 bool Update(float a_time, NiObjectNET* a_interpTarget, float& a_value);
58 bool Update(float a_time, NiObjectNET* a_interpTarget, bool& a_value);
59
60 // members
61 float lastTime; // 10
62 std::uint32_t pad14; // 14
63 };
64 static_assert(sizeof(NiInterpolator) == 0x18);
65}
Definition NiColor.h:276
Definition NiInterpolator.h:16
virtual bool IsFloatValueSupported() const
virtual bool Update5(float a_time, NiObjectNET *a_interpTarget, float &a_value)
bool Update(float a_time, NiObjectNET *a_interpTarget, NiQuaternion &a_value)
const NiRTTI * GetRTTI() const override
virtual NiBoolInterpolator * AsNiBoolInterpolator()
virtual bool AlwaysUpdate() const
virtual bool Update1(float a_time, NiObjectNET *a_interpTarget, NiQuatTransform &a_value)
virtual void GuaranteeTimeRange(float a_startTime, float a_endTime)
virtual bool SetUpDependencies()
~NiInterpolator() override
bool IsEqual(NiObject *a_object) override
virtual void GetActiveTimeRange(float &a_beginKeyTime, float &a_endKeyTime) const
virtual bool IsColorAValueSupported() const
bool Update(float a_time, NiObjectNET *a_interpTarget, float &a_value)
virtual bool Update2(float a_time, NiObjectNET *a_interpTarget, NiColorA &a_value)
std::uint32_t pad14
Definition NiInterpolator.h:62
void SaveBinary(NiStream &a_stream) override
bool Update(float a_time, NiObjectNET *a_interpTarget, NiColorA &a_value)
virtual NiInterpolator * GetSequenceInterpolator(float a_startTime, float a_endTime)
virtual bool IsQuaternionValueSupported() const
bool RegisterStreamables(NiStream &a_stream) override
void LoadBinary(NiStream &a_stream) override
virtual bool IsBoolValueSupported() const
void LinkObject(NiStream &a_stream) override
virtual bool Update4(float a_time, NiObjectNET *a_interpTarget, NiQuaternion &a_value)
bool Update(float a_time, NiObjectNET *a_interpTarget, NiQuatTransform &a_value)
static constexpr auto RTTI
Definition NiInterpolator.h:18
bool Update(float a_time, NiObjectNET *a_interpTarget, NiPoint3 &a_value)
virtual bool Update6(float a_time, NiObjectNET *a_interpTarget, bool &a_value)
static auto Ni_RTTI
Definition NiInterpolator.h:19
virtual bool Update3(float a_time, NiObjectNET *a_interpTarget, NiPoint3 &a_value)
float lastTime
Definition NiInterpolator.h:61
virtual bool IsTransformValueSupported() const
virtual void Collapse()
virtual bool ResolveDependencies(NiAVObjectPalette *a_palette)
bool Update(float a_time, NiObjectNET *a_interpTarget, bool &a_value)
virtual bool IsPoint3ValueSupported() const
Definition NiObject.h:37
Definition NiObjectNET.h:13
Definition NiPoint3.h:6
Definition NiQuaternion.h:6
Definition NiRTTI.h:6
Definition NiStream.h:27
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiInterpolator(690508, 398363, 0x1f62ef8)
constexpr REL::VariantID NiRTTI_NiInterpolator(524353, 410934, 0x316d380)