CommonLibVR
Loading...
Searching...
No Matches
NiInterpController.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace RE
6{
7 class NiBlendInterpolator;
8 class NiInterpolator;
9
11 {
12 public:
13 inline static constexpr auto RTTI = RTTI_NiInterpController;
14 inline static constexpr auto Ni_RTTI = NiRTTI_NiInterpController;
15 inline static constexpr auto VTABLE = VTABLE_NiInterpController;
16
17 ~NiInterpController() override; // 00
18
19 // override (NiTimeController)
20 const NiRTTI* GetRTTI() const override; // 02
21 void LoadBinary(NiStream& a_stream) override; // 18 - { NiTimeController::LoadBinary(a_stream); }
22 void LinkObject(NiStream& a_stream) override; // 19 - { NiTimeController::LinkObject(a_stream); }
23 bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return NiTimeController::RegisterStreamables(a_stream); }
24 void SaveBinary(NiStream& a_stream) override; // 1B - { NiTimeController::SaveBinary(a_stream); }
25 bool IsEqual(NiObject* a_object) override; // 1C - { NiTimeController::IsEqual(a_object); }
26
27 // add
28 [[nodiscard]] virtual std::uint16_t GetInterpolatorCount() const = 0; // 2F
29 virtual const char* GetInterpolatorID(std::uint16_t a_index = 0) = 0; // 30
30 virtual std::uint16_t GetInterpolatorIndex(const char* a_id) const = 0; // 31
31 [[nodiscard]] virtual std::uint16_t GetInterpolatorIndexFx(const BSFixedString& a_id) const = 0; // 32
32 [[nodiscard]] virtual NiInterpolator* GetInterpolator(std::uint16_t a_index = 0) const = 0; // 33
33 virtual void SetInterpolator(NiInterpolator* a_interpolator, std::uint16_t a_index = 0) = 0; // 34
34 virtual void ResetTimeExtrema(); // 35
35 virtual const char* GetCtlrID(); // 36 - { return 0; }
36 virtual NiInterpolator* CreatePoseInterpolator(std::uint16_t a_index) = 0; // 37
37 virtual void SynchronizePoseInterpolator(NiInterpolator* a_interp, std::uint16_t a_index = 0) = 0; // 38
38 [[nodiscard]] virtual NiBlendInterpolator* CreateBlendInterpolator(std::uint16_t a_index = 0, bool a_managerControlled = false, bool a_accumulateAnimations = false, float a_weightThreshold = 0.0, std::uint8_t a_arraySize = 2) const = 0; // 39
39 virtual void GuaranteeTimeRange(float a_startTime, float a_endTime) = 0; // 3A
40 virtual bool InterpolatorIsCorrectType(NiInterpolator* a_interpolator, std::uint16_t a_index) const = 0; // 3B
41 private:
43 };
44 static_assert(sizeof(NiInterpController) == 0x48);
45}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition NiInterpController.h:11
virtual std::uint16_t GetInterpolatorCount() const =0
virtual std::uint16_t GetInterpolatorIndexFx(const BSFixedString &a_id) const =0
bool IsEqual(NiObject *a_object) override
static constexpr auto Ni_RTTI
Definition NiInterpController.h:14
void LoadBinary(NiStream &a_stream) override
virtual void GuaranteeTimeRange(float a_startTime, float a_endTime)=0
const NiRTTI * GetRTTI() const override
~NiInterpController() override
virtual void ResetTimeExtrema()
virtual void SynchronizePoseInterpolator(NiInterpolator *a_interp, std::uint16_t a_index=0)=0
static constexpr auto RTTI
Definition NiInterpController.h:13
virtual NiInterpolator * CreatePoseInterpolator(std::uint16_t a_index)=0
void LinkObject(NiStream &a_stream) override
bool RegisterStreamables(NiStream &a_stream) override
static constexpr auto VTABLE
Definition NiInterpController.h:15
virtual const char * GetInterpolatorID(std::uint16_t a_index=0)=0
virtual std::uint16_t GetInterpolatorIndex(const char *a_id) const =0
void SaveBinary(NiStream &a_stream) override
virtual NiBlendInterpolator * CreateBlendInterpolator(std::uint16_t a_index=0, bool a_managerControlled=false, bool a_accumulateAnimations=false, float a_weightThreshold=0.0, std::uint8_t a_arraySize=2) const =0
virtual void SetInterpolator(NiInterpolator *a_interpolator, std::uint16_t a_index=0)=0
virtual const char * GetCtlrID()
virtual bool InterpolatorIsCorrectType(NiInterpolator *a_interpolator, std::uint16_t a_index) const =0
virtual NiInterpolator * GetInterpolator(std::uint16_t a_index=0) const =0
Definition NiInterpolator.h:16
Definition NiObject.h:37
Definition NiRTTI.h:6
Definition NiStream.h:29
Definition NiTimeController.h:13
Definition AbsorbEffect.h:6
constexpr REL::ID NiRTTI_NiInterpController(static_cast< std::uint64_t >(524063))
constexpr std::array< REL::ID, 1 > VTABLE_NiInterpController
Definition Offsets_VTABLE.h:12220
constexpr REL::ID RTTI_NiInterpController(static_cast< std::uint64_t >(690506))