CommonLibVR
NiSkinData.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiBound.h"
4 #include "RE/N/NiObject.h"
5 #include "RE/N/NiSmartPointer.h"
6 #include "RE/N/NiTransform.h"
7 
8 namespace RE
9 {
10  class NiSkinPartition;
11 
12  class NiSkinData : public NiObject
13  {
14  public:
15  inline static constexpr auto RTTI = RTTI_NiSkinData;
16  inline static constexpr auto Ni_RTTI = NiRTTI_NiSkinData;
17  inline static constexpr auto VTABLE = VTABLE_NiSkinData;
18 
20  {
21  public:
22  // members
23  std::uint16_t vert; // 0
24  std::uint16_t pad2; // 2
25  float weight; // 4
26  };
27  static_assert(sizeof(BoneVertData) == 0x8);
28 
29  class BoneData
30  {
31  public:
32  // members
34  NiBound bound; // 34
35  std::uint32_t pad44; // 44
37  std::uint16_t verts; // 50
38  std::uint16_t pad52; // 52
39  std::uint32_t pad54; // 54
40  };
41  static_assert(sizeof(BoneData) == 0x58);
42 
43  ~NiSkinData() override; // 00
44 
45  // override (NiObject)
46  const NiRTTI* GetRTTI() const override; // 02
47  void LoadBinary(NiStream& a_stream) override; // 18
48  void LinkObject(NiStream& a_stream) override; // 19 - { NiObject::LinkObject(a_stream); }
49  bool RegisterStreamables(NiStream& a_stream) override; // 1A - { NiObject::RegisterStreamables(a_stream) != false; }
50  void SaveBinary(NiStream& a_stream) override; // 1B
51  bool IsEqual(NiObject* a_object) override; // 1C
52 
53  // members
57  std::uint32_t bones; // 58
58  std::uint32_t pad5C; // 5C
59  private:
60  KEEP_FOR_RE()
61  };
62  static_assert(sizeof(NiSkinData) == 0x60);
63 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: NiBound.h:8
Definition: NiObject.h:37
Definition: NiSmartPointer.h:9
Definition: NiRTTI.h:6
Definition: NiSkinData.h:30
NiBound bound
Definition: NiSkinData.h:34
std::uint32_t pad44
Definition: NiSkinData.h:35
std::uint16_t verts
Definition: NiSkinData.h:37
std::uint16_t pad52
Definition: NiSkinData.h:38
BoneVertData * boneVertData
Definition: NiSkinData.h:36
NiTransform skinToBone
Definition: NiSkinData.h:33
std::uint32_t pad54
Definition: NiSkinData.h:39
Definition: NiSkinData.h:20
std::uint16_t pad2
Definition: NiSkinData.h:24
std::uint16_t vert
Definition: NiSkinData.h:23
float weight
Definition: NiSkinData.h:25
Definition: NiSkinData.h:13
static constexpr auto RTTI
Definition: NiSkinData.h:15
BoneData * boneData
Definition: NiSkinData.h:56
NiPointer< NiSkinPartition > skinPartition
Definition: NiSkinData.h:54
std::uint32_t bones
Definition: NiSkinData.h:57
static constexpr auto VTABLE
Definition: NiSkinData.h:17
bool RegisterStreamables(NiStream &a_stream) override
~NiSkinData() override
void LoadBinary(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
std::uint32_t pad5C
Definition: NiSkinData.h:58
const NiRTTI * GetRTTI() const override
NiTransform rootParentToSkin
Definition: NiSkinData.h:55
bool IsEqual(NiObject *a_object) override
static constexpr auto Ni_RTTI
Definition: NiSkinData.h:16
void LinkObject(NiStream &a_stream) override
Definition: NiStream.h:29
Definition: NiTransform.h:9
Definition: AbsorbEffect.h:6
constexpr REL::ID NiRTTI_NiSkinData(static_cast< std::uint64_t >(523986))
constexpr REL::ID RTTI_NiSkinData(static_cast< std::uint64_t >(690444))
constexpr std::array< REL::ID, 1 > VTABLE_NiSkinData
Definition: Offsets_VTABLE.h:12319