CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
BSGeometry.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiAVObject.h"
6
7namespace RE
8{
9 class BSMultiIndexTriShape;
10 class BSSkinnedDecalTriShape;
11 class NiProperty;
12 class NiSkinInstance;
13
14 class BSGeometry : public NiAVObject
15 {
16 public:
17 inline static constexpr auto RTTI = RTTI_BSGeometry;
18 inline static constexpr auto Ni_RTTI = NiRTTI_BSGeometry;
19 inline static constexpr auto VTABLE = VTABLE_BSGeometry;
20
39
40 struct States
41 {
48 };
49
50 ~BSGeometry() override; // 00
51
52 // override (NiAVObject)
53 const NiRTTI* GetRTTI() const override; // 02
54 BSGeometry* AsGeometry() override; // 07 - { return this; }
55 void LoadBinary(NiStream& a_stream) override; // 18
56 void LinkObject(NiStream& a_stream) override; // 19
57 bool RegisterStreamables(NiStream& a_stream) override; // 1A
58 void SaveBinary(NiStream& a_stream) override; // 1B
59 bool IsEqual(NiObject* a_object) override; // 1C - { return false; }
60 void ProcessClone(NiCloningProcess& a_cloning) override; // 1D
61 void PostLinkObject(NiStream& a_stream) override; // 1E
62 void AttachProperty(NiAlphaProperty* a_property) override; // 27
63 void SetSelectiveUpdateFlags(bool& a_selectiveUpdate, bool a_selectiveUpdateTransforms, bool& a_rigid) override; // 2B
64 void UpdateDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2C
65 void UpdateSelectedDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2D
66 void UpdateRigidDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2E
67 void UpdateWorldBound() override; // 2F
68 void OnVisible(NiCullingProcess& a_process) override; // 34
69
70 // add
71 virtual BSMultiIndexTriShape* AsMultiIndexTriShape(); // 35 - { return 0; }
72 virtual BSSkinnedDecalTriShape* AsSkinnedDecalTriShape(); // 36 - { return 0; }
73 virtual void Unk_37(void); // 37 - { return 0; }
74
75 // members
80 void* unk140; // 140 - smart ptr
83 std::uint8_t pad151; // 151
84 std::uint16_t pad152; // 152
85 std::uint32_t pad154; // 154
86 };
87 static_assert(sizeof(BSGeometry) == 0x158);
88}
Definition EnumSet.h:9
Definition BSGeometry.h:15
Type
Definition BSGeometry.h:22
void SetSelectiveUpdateFlags(bool &a_selectiveUpdate, bool a_selectiveUpdateTransforms, bool &a_rigid) override
void UpdateRigidDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
NiBound modelBound
Definition BSGeometry.h:76
REX::EnumSet< Type, std::uint8_t > type
Definition BSGeometry.h:82
BSGraphics::TriShape * rendererData
Definition BSGeometry.h:79
static constexpr auto VTABLE
Definition BSGeometry.h:19
virtual BSSkinnedDecalTriShape * AsSkinnedDecalTriShape()
void SaveBinary(NiStream &a_stream) override
void OnVisible(NiCullingProcess &a_process) override
bool IsEqual(NiObject *a_object) override
NiPointer< NiSkinInstance > skinInstance
Definition BSGeometry.h:78
static constexpr auto RTTI
Definition BSGeometry.h:17
void ProcessClone(NiCloningProcess &a_cloning) override
BSGeometry * AsGeometry() override
bool RegisterStreamables(NiStream &a_stream) override
std::uint8_t pad151
Definition BSGeometry.h:83
NiPointer< NiProperty > properties[States::kTotal]
Definition BSGeometry.h:77
const NiRTTI * GetRTTI() const override
virtual void Unk_37(void)
~BSGeometry() override
void LinkObject(NiStream &a_stream) override
void UpdateWorldBound() override
void UpdateSelectedDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
void PostLinkObject(NiStream &a_stream) override
virtual BSMultiIndexTriShape * AsMultiIndexTriShape()
void UpdateDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
std::uint16_t pad152
Definition BSGeometry.h:84
void LoadBinary(NiStream &a_stream) override
void AttachProperty(NiAlphaProperty *a_property) override
BSGraphics::VertexDesc vertexDesc
Definition BSGeometry.h:81
void * unk140
Definition BSGeometry.h:80
static constexpr auto Ni_RTTI
Definition BSGeometry.h:18
std::uint32_t pad154
Definition BSGeometry.h:85
Definition VertexDesc.h:53
Definition BSMultiIndexTriShape.h:19
Definition NiAVObject.h:51
Definition NiAlphaProperty.h:8
Definition NiBound.h:8
Definition NiCloningProcess.h:10
Definition NiCullingProcess.h:34
Definition NiObject.h:37
Definition NiSmartPointer.h:9
Definition NiRTTI.h:6
Definition NiStream.h:29
Definition NiAVObject.h:26
Definition AbsorbEffect.h:6
constexpr REL::ID NiRTTI_BSGeometry(static_cast< std::uint64_t >(523951))
constexpr REL::ID RTTI_BSGeometry(static_cast< std::uint64_t >(685043))
constexpr std::array< REL::ID, 1 > VTABLE_BSGeometry
Definition Offsets_VTABLE.h:9036
Definition BSGeometry.h:41
State
Definition BSGeometry.h:43
@ kProperty
Definition BSGeometry.h:44
@ kEffect
Definition BSGeometry.h:45
@ kTotal
Definition BSGeometry.h:46
Definition NiSkinPartition.h:15