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
20 enum class Type
21 {
22 kGeometry = 0,
23 kParticles = 1,
25 kTriShape = 3,
34 kLines = 12,
35 kDynamicLines = 13,
37 };
38
39 struct States
40 {
41 enum State
42 {
45 kTotal
46 };
47 };
48
49 ~BSGeometry() override; // 00
50
51 // override (NiAVObject)
52 const NiRTTI* GetRTTI() const override; // 02
53 BSGeometry* AsGeometry() override; // 07 - { return this; }
54 void LoadBinary(NiStream& a_stream) override; // 18
55 void LinkObject(NiStream& a_stream) override; // 19
56 bool RegisterStreamables(NiStream& a_stream) override; // 1A
57 void SaveBinary(NiStream& a_stream) override; // 1B
58 bool IsEqual(NiObject* a_object) override; // 1C - { return false; }
59 void ProcessClone(NiCloningProcess& a_cloning) override; // 1D
60 void PostLinkObject(NiStream& a_stream) override; // 1E
61 void AttachProperty(NiAlphaProperty* a_property) override; // 27
62 void SetSelectiveUpdateFlags(bool& a_selectiveUpdate, bool a_selectiveUpdateTransforms, bool& a_rigid) override; // 2B
63 void UpdateDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2C
64 void UpdateSelectedDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2D
65 void UpdateRigidDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2E
66 void UpdateWorldBound() override; // 2F
67 void OnVisible(NiCullingProcess& a_process) override; // 34
68
69 // add
70 virtual BSMultiIndexTriShape* AsMultiIndexTriShape(); // 35 - { return 0; }
71 virtual BSSkinnedDecalTriShape* AsSkinnedDecalTriShape(); // 36 - { return 0; }
72 virtual void Unk_37(void); // 37 - { return 0; }
73
74 // members
79 void* unk140; // 140 - smart ptr
82 std::uint8_t pad151; // 151
83 std::uint16_t pad152; // 152
84 std::uint32_t pad154; // 154
85 };
86 static_assert(sizeof(BSGeometry) == 0x158);
87}
Definition: BSGeometry.h:15
Type
Definition: BSGeometry.h:21
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:75
BSGraphics::TriShape * rendererData
Definition: BSGeometry.h:78
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:77
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:82
NiPointer< NiProperty > properties[States::kTotal]
Definition: BSGeometry.h:76
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
stl::enumeration< Type, std::uint8_t > type
Definition: BSGeometry.h:81
virtual BSMultiIndexTriShape * AsMultiIndexTriShape()
void UpdateDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
std::uint16_t pad152
Definition: BSGeometry.h:83
void LoadBinary(NiStream &a_stream) override
void AttachProperty(NiAlphaProperty *a_property) override
BSGraphics::VertexDesc vertexDesc
Definition: BSGeometry.h:80
void * unk140
Definition: BSGeometry.h:79
static constexpr auto Ni_RTTI
Definition: BSGeometry.h:18
std::uint32_t pad154
Definition: BSGeometry.h:84
Definition: VertexDesc.h:53
Definition: BSMultiIndexTriShape.h:17
Definition: NiAVObject.h:50
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:27
Definition: NiAVObject.h:25
Definition: PCH.h:217
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))
Definition: BSGeometry.h:40
State
Definition: BSGeometry.h:42
@ kProperty
Definition: BSGeometry.h:43
@ kEffect
Definition: BSGeometry.h:44
@ kTotal
Definition: BSGeometry.h:45
Definition: NiSkinPartition.h:15