CommonLibSSE (Parapets fork)
NiInterpolator.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiObject.h"
4 
5 namespace 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 constexpr 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:137
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 bool AlwaysUpdate() const
virtual NiInterpolator * GetSequenceInterpolator(float a_startTime, float a_endTime)
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 bool IsQuaternionValueSupported() const
static constexpr auto Ni_RTTI
Definition: NiInterpolator.h:19
bool RegisterStreamables(NiStream &a_stream) override
void LoadBinary(NiStream &a_stream) override
virtual bool IsBoolValueSupported() const
virtual NiBoolInterpolator * AsNiBoolInterpolator()
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)
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: NiObjectNET.h:13
Definition: NiObject.h:37
Definition: NiPoint3.h:6
Definition: NiQuaternion.h:6
Definition: NiRTTI.h:6
Definition: NiStream.h:6
Definition: AbsorbEffect.h:6
constexpr REL::ID NiRTTI_NiInterpolator
Definition: Offsets_NiRTTI.h:203
constexpr REL::ID RTTI_NiInterpolator
Definition: Offsets_RTTI.h:5375