CommonLibVR
BSMultiBoundNode.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/B/BSNiNode.h"
5 #include "RE/N/NiSmartPointer.h"
6 
7 namespace RE
8 {
9  class BSMultiBound;
10  class BSMultiBoundRoom;
11  class NiPoint3;
12 
13  class BSMultiBoundNode : public BSNiNode
14  {
15  public:
16  inline static constexpr auto RTTI = RTTI_BSMultiBoundNode;
17  inline static constexpr auto Ni_RTTI = NiRTTI_BSMultiBoundNode;
18  inline static constexpr auto VTABLE = VTABLE_BSMultiBoundNode;
19 
20  ~BSMultiBoundNode() override; // 00
21 
22  // override (BSNiNode)
23  const NiRTTI* GetRTTI() const override; // 02
24  BSMultiBoundNode* AsMultiBoundNode() override; // 06 - { return this; }
25  NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
26  void LoadBinary(NiStream& a_stream) override; // 18
27  void LinkObject(NiStream& a_stream) override; // 19
28  bool RegisterStreamables(NiStream& a_stream) override; // 1A
29  void SaveBinary(NiStream& a_stream) override; // 1B
30  bool IsEqual(NiObject* a_object) override; // 1C
31  void UpdateDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2C
32  void UpdateWorldBound() override; // 2F
33  void OnVisible(NiCullingProcess& a_process) override; // 34
34  void UpdateUpwardPass(NiUpdateData& a_data) override; // 3D
35 
36  // add
37  virtual BSMultiBoundRoom* GetMultiBoundRoom(); // 3E - { return 0; }
38  virtual bool QPointWithin(const NiPoint3& a_point); // 3F
39  virtual void Unk_40(void); // 40
40  virtual void Unk_41(void); // 41
41 
42  // members
45  float lastAccumTime; // 134 VR 15C
46  private:
47  KEEP_FOR_RE()
48  };
49 #ifndef SKYRIMVR
50  static_assert(sizeof(BSMultiBoundNode) == 0x138);
51 #else
52  static_assert(sizeof(BSMultiBoundNode) == 0x160);
53 #endif
54 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
BSCPCullingType
Definition: BSCullingProcess.h:24
Definition: BSMultiBoundNode.h:14
bool IsEqual(NiObject *a_object) override
const NiRTTI * GetRTTI() const override
NiPointer< BSMultiBound > multiBound
Definition: BSMultiBoundNode.h:43
virtual void Unk_40(void)
void UpdateWorldBound() override
~BSMultiBoundNode() override
void LinkObject(NiStream &a_stream) override
BSMultiBoundNode * AsMultiBoundNode() override
static constexpr auto Ni_RTTI
Definition: BSMultiBoundNode.h:17
virtual void Unk_41(void)
virtual bool QPointWithin(const NiPoint3 &a_point)
void LoadBinary(NiStream &a_stream) override
virtual BSMultiBoundRoom * GetMultiBoundRoom()
NiObject * CreateClone(NiCloningProcess &a_cloning) override
void UpdateDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
float lastAccumTime
Definition: BSMultiBoundNode.h:45
void UpdateUpwardPass(NiUpdateData &a_data) override
void OnVisible(NiCullingProcess &a_process) override
bool RegisterStreamables(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
static constexpr auto VTABLE
Definition: BSMultiBoundNode.h:18
static constexpr auto RTTI
Definition: BSMultiBoundNode.h:16
BSCullingProcess::BSCPCullingType cullingMode
Definition: BSMultiBoundNode.h:44
Definition: BSNiNode.h:8
Definition: NiCloningProcess.h:10
Definition: NiCullingProcess.h:34
Definition: NiObject.h:37
Definition: NiPoint3.h:6
Definition: NiSmartPointer.h:9
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: NiAVObject.h:28
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSMultiBoundNode
Definition: Offsets_VTABLE.h:9254
constexpr REL::ID NiRTTI_BSMultiBoundNode(static_cast< std::uint64_t >(524676))
constexpr REL::ID RTTI_BSMultiBoundNode(static_cast< std::uint64_t >(690672))