CommonLibSSE NG
NiMultiTargetTransformController.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace RE
6 {
7  class NiAVObject;
8  class NiBlendTransformInterpolator;
9 
11  {
12  public:
13  inline static constexpr auto RTTI = RTTI_NiMultiTargetTransformController;
15 
17 
18  // override (NiInterpController)
19  const NiRTTI* GetRTTI() const override; // 02
20  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
21  void LoadBinary(NiStream& a_stream) override; // 18
22  void LinkObject(NiStream& a_stream) override; // 19
23  bool RegisterStreamables(NiStream& a_stream) override; // 1A
24  void SaveBinary(NiStream& a_stream) override; // 1B
25  bool IsEqual(NiObject* a_object) override; // 1C
26  void ProcessClone(NiCloningProcess& a_cloning) override; // 1D
27  void Update(float a_time) override; // 27
28  bool TargetIsRequiredType() const override; // 2E
29  std::uint16_t GetInterpolatorCount() const override; // 2F - { return numInterps; }
30  const char* GetInterpolatorID(std::uint16_t a_index = 0) override; // 30 - { return targets[a_index]->name.c_str(); }
31  std::uint16_t GetInterpolatorIndex(const char* a_id) const override; // 31
32  std::uint16_t GetInterpolatorIndexFx(const BSFixedString& a_id) const override; // 32
33  NiInterpolator* GetInterpolator(std::uint16_t a_index = 0) const override; // 33
34  void SetInterpolator(NiInterpolator* a_interpolator, std::uint16_t a_index = 0) override; // 34 - { return; }
35  void ResetTimeExtrema() override; // 35
36  NiInterpolator* CreatePoseInterpolator(std::uint16_t a_index) override; // 37
37  void SynchronizePoseInterpolator(NiInterpolator* a_interp, std::uint16_t a_index = 0) override; // 38 - { return; }
38  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 override; // 39
39  void GuaranteeTimeRange(float a_startTime, float a_endTime) override; // 3A
40  bool InterpolatorIsCorrectType(NiInterpolator* a_interpolator, std::uint16_t a_index) const override; // 3B
41 
42  // members
43  NiBlendTransformInterpolator* blendInterps; // 48
45  std::uint16_t numInterps; // 58
46  std::uint16_t pad5A; // 58
47  std::uint32_t pad5C; // 5C
48  };
49  static_assert(sizeof(NiMultiTargetTransformController) == 0x60);
50 }
Definition: NiAVObject.h:50
Definition: NiCloningProcess.h:10
Definition: NiInterpController.h:11
Definition: NiInterpolator.h:16
Definition: NiMultiTargetTransformController.h:11
const char * GetInterpolatorID(std::uint16_t a_index=0) override
void SaveBinary(NiStream &a_stream) override
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 override
std::uint16_t GetInterpolatorIndex(const char *a_id) const override
static constexpr auto RTTI
Definition: NiMultiTargetTransformController.h:13
NiInterpolator * CreatePoseInterpolator(std::uint16_t a_index) override
static auto Ni_RTTI
Definition: NiMultiTargetTransformController.h:14
std::uint16_t pad5A
Definition: NiMultiTargetTransformController.h:46
NiInterpolator * GetInterpolator(std::uint16_t a_index=0) const override
void GuaranteeTimeRange(float a_startTime, float a_endTime) override
std::uint32_t pad5C
Definition: NiMultiTargetTransformController.h:47
void LinkObject(NiStream &a_stream) override
bool RegisterStreamables(NiStream &a_stream) override
void Update(float a_time) override
std::uint16_t numInterps
Definition: NiMultiTargetTransformController.h:45
std::uint16_t GetInterpolatorCount() const override
NiBlendTransformInterpolator * blendInterps
Definition: NiMultiTargetTransformController.h:43
void ProcessClone(NiCloningProcess &a_cloning) override
void SynchronizePoseInterpolator(NiInterpolator *a_interp, std::uint16_t a_index=0) override
void LoadBinary(NiStream &a_stream) override
const NiRTTI * GetRTTI() const override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
bool InterpolatorIsCorrectType(NiInterpolator *a_interpolator, std::uint16_t a_index) const override
bool IsEqual(NiObject *a_object) override
NiAVObject ** targets
Definition: NiMultiTargetTransformController.h:44
bool TargetIsRequiredType() const override
std::uint16_t GetInterpolatorIndexFx(const BSFixedString &a_id) const override
void SetInterpolator(NiInterpolator *a_interpolator, std::uint16_t a_index=0) override
Definition: NiObject.h:37
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_NiMultiTargetTransformController(524061, 410642, 0x316c4b8)
constexpr REL::VariantID RTTI_NiMultiTargetTransformController(690505, 398360, 0x1f62e60)