CommonLibVR
NiKeyBasedInterpolator.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiAnimationKey.h"
4 #include "RE/N/NiInterpolator.h"
5 
6 namespace RE
7 {
9  {
10  public:
11  inline static constexpr auto RTTI = RTTI_NiKeyBasedInterpolator;
12  inline static constexpr auto Ni_RTTI = NiRTTI_NiKeyBasedInterpolator;
13  inline static constexpr auto VTABLE = VTABLE_NiKeyBasedInterpolator;
14 
17 
18  ~NiKeyBasedInterpolator() override; // 00
19 
20  // override (NiInterpolator)
21  const NiRTTI* GetRTTI() const override; // 02
22  void LoadBinary(NiStream& a_stream) override; // 18 - { NiInterpolator::LoadBinary(a_stream); }
23  void LinkObject(NiStream& a_stream) override; // 19 - { NiInterpolator::LinkObject(a_stream); }
24  bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return NiInterpolator::RegisterStreamables(a_stream); }
25  void SaveBinary(NiStream& a_stream) override; // 1B - { NiInterpolator::SaveBinary(a_stream); }
26  bool IsEqual(NiObject* a_object) override; // 1C - { return NiInterpolator::IsEqual(a_stream); }
27  void GetActiveTimeRange(float& a_start, float& a_end) const override; // 32
28 
29  // add
30  [[nodiscard]] virtual std::uint16_t GetKeyChannelCount() const = 0; // 39
31  [[nodiscard]] virtual std::uint32_t GetKeyCount(std::uint16_t a_channel) const = 0; // 3A
32  [[nodiscard]] virtual KeyType GetKeyType(std::uint16_t a_channel) const = 0; // 3C
33  [[nodiscard]] virtual KeyContent GetKeyContent(std::uint16_t a_channel) const = 0; // 3B
34  [[nodiscard]] virtual void* GetKeyArray(std::uint16_t a_channel) const = 0; // 3D
35  [[nodiscard]] virtual std::uint8_t GetKeyStride(std::uint16_t a_channel) const = 0; // 3E
36  [[nodiscard]] virtual bool GetChannelPosed(std::uint16_t a_channel) const = 0; // 3F
37  private:
38  KEEP_FOR_RE()
39  };
40  static_assert(sizeof(NiKeyBasedInterpolator) == 0x18);
41 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
KeyContent
Definition: NiAnimationKey.h:9
KeyType
Definition: NiAnimationKey.h:21
Definition: NiInterpolator.h:16
Definition: NiKeyBasedInterpolator.h:9
virtual std::uint32_t GetKeyCount(std::uint16_t a_channel) const =0
bool RegisterStreamables(NiStream &a_stream) override
void GetActiveTimeRange(float &a_start, float &a_end) const override
void LoadBinary(NiStream &a_stream) override
const NiRTTI * GetRTTI() const override
void LinkObject(NiStream &a_stream) override
virtual KeyType GetKeyType(std::uint16_t a_channel) const =0
static constexpr auto RTTI
Definition: NiKeyBasedInterpolator.h:11
virtual std::uint8_t GetKeyStride(std::uint16_t a_channel) const =0
virtual bool GetChannelPosed(std::uint16_t a_channel) const =0
static constexpr auto Ni_RTTI
Definition: NiKeyBasedInterpolator.h:12
bool IsEqual(NiObject *a_object) override
void SaveBinary(NiStream &a_stream) override
virtual void * GetKeyArray(std::uint16_t a_channel) const =0
virtual std::uint16_t GetKeyChannelCount() const =0
static constexpr auto VTABLE
Definition: NiKeyBasedInterpolator.h:13
~NiKeyBasedInterpolator() override
virtual KeyContent GetKeyContent(std::uint16_t a_channel) const =0
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_NiKeyBasedInterpolator(static_cast< std::uint64_t >(690511))
constexpr std::array< REL::ID, 1 > VTABLE_NiKeyBasedInterpolator
Definition: Offsets_VTABLE.h:12223
constexpr REL::ID NiRTTI_NiKeyBasedInterpolator(static_cast< std::uint64_t >(524361))