CommonLibSSE NG
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 auto Ni_RTTI = NiRTTI_NiInterpController;
15
16 ~NiInterpController() override; // 00
17
18 // override (NiTimeController)
19 const NiRTTI* GetRTTI() const override; // 02
20 void LoadBinary(NiStream& a_stream) override; // 18 - { NiTimeController::LoadBinary(a_stream); }
21 void LinkObject(NiStream& a_stream) override; // 19 - { NiTimeController::LinkObject(a_stream); }
22 bool RegisterStreamables(NiStream& a_stream) override; // 1A - { return NiTimeController::RegisterStreamables(a_stream); }
23 void SaveBinary(NiStream& a_stream) override; // 1B - { NiTimeController::SaveBinary(a_stream); }
24 bool IsEqual(NiObject* a_object) override; // 1C - { NiTimeController::IsEqual(a_object); }
25
26 // add
27 [[nodiscard]] virtual std::uint16_t GetInterpolatorCount() const = 0; // 2F
28 virtual const char* GetInterpolatorID(std::uint16_t a_index = 0) = 0; // 30
29 virtual std::uint16_t GetInterpolatorIndex(const char* a_id) const = 0; // 31
30 [[nodiscard]] virtual std::uint16_t GetInterpolatorIndexFx(const BSFixedString& a_id) const = 0; // 32
31 [[nodiscard]] virtual NiInterpolator* GetInterpolator(std::uint16_t a_index = 0) const = 0; // 33
32 virtual void SetInterpolator(NiInterpolator* a_interpolator, std::uint16_t a_index = 0) = 0; // 34
33 virtual void ResetTimeExtrema(); // 35
34 virtual const char* GetCtlrID(); // 36 - { return 0; }
35 virtual NiInterpolator* CreatePoseInterpolator(std::uint16_t a_index) = 0; // 37
36 virtual void SynchronizePoseInterpolator(NiInterpolator* a_interp, std::uint16_t a_index = 0) = 0; // 38
37 [[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
38 virtual void GuaranteeTimeRange(float a_startTime, float a_endTime) = 0; // 3A
39 virtual bool InterpolatorIsCorrectType(NiInterpolator* a_interpolator, std::uint16_t a_index) const = 0; // 3B
40 };
41 static_assert(sizeof(NiInterpController) == 0x48);
42}
Definition NiInterpController.h:11
static auto Ni_RTTI
Definition NiInterpController.h:14
virtual std::uint16_t GetInterpolatorCount() const =0
virtual std::uint16_t GetInterpolatorIndexFx(const BSFixedString &a_id) const =0
bool IsEqual(NiObject *a_object) override
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
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:27
Definition NiTimeController.h:13
Definition AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_NiInterpController(524063, 410644, 0x316c4d8)
constexpr REL::VariantID RTTI_NiInterpController(690506, 398361, 0x1f62e98)