CommonLibVR
Loading...
Searching...
No Matches
NiBillboardNode.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiNode.h"
4
5namespace RE
6{
7 class NiBillboardNode : public NiNode
8 {
9 public:
10 inline static constexpr auto RTTI = RTTI_NiBillboardNode;
11 inline static constexpr auto Ni_RTTI = NiRTTI_NiBillboardNode;
12 inline static constexpr auto VTABLE = VTABLE_NiBillboardNode;
13
14 enum
15 {
18 };
19
29
30 ~NiBillboardNode() override; // 00
31
32 // override (NiNode)
33 const NiRTTI* GetRTTI() const override; // 02
34 NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
35 void LoadBinary(NiStream& a_stream) override; // 18
36 void LinkObject(NiStream& a_stream) override; // 19
37 bool RegisterStreamables(NiStream& a_stream) override; // 1A
38 void SaveBinary(NiStream& a_stream) override; // 1B
39 bool IsEqual(NiObject* a_object) override; // 1C
40 void UpdateWorldBound() override; // 2F
41 void UpdateWorldData(NiUpdateData* a_data) override; // 30
42 void OnVisible(NiCullingProcess& a_process) override; // 34
43
44 [[nodiscard]] FaceMode GetMode() const
45 {
46 return static_cast<FaceMode>(userFlags & FACE_MODE_MASK);
47 }
48
49 void SetMode(FaceMode a_mode)
50 {
51 userFlags = static_cast<uint16_t>((std::to_underlying(a_mode) << FACE_MODE_POS) | (userFlags & ~FACE_MODE_MASK));
52 }
53
54 // members
55 std::uint16_t userFlags; // 128
56 };
57#ifndef SKYRIMVR
58 static_assert(sizeof(NiBillboardNode) == 0x130);
59#else
60 static_assert(sizeof(NiBillboardNode) == 0x158);
61#endif
62}
Definition NiBillboardNode.h:8
void SetMode(FaceMode a_mode)
Definition NiBillboardNode.h:49
void LoadBinary(NiStream &a_stream) override
std::uint16_t userFlags
Definition NiBillboardNode.h:55
const NiRTTI * GetRTTI() const override
static constexpr auto RTTI
Definition NiBillboardNode.h:10
NiObject * CreateClone(NiCloningProcess &a_cloning) override
bool IsEqual(NiObject *a_object) override
bool RegisterStreamables(NiStream &a_stream) override
static constexpr auto VTABLE
Definition NiBillboardNode.h:12
void OnVisible(NiCullingProcess &a_process) override
void UpdateWorldBound() override
static constexpr auto Ni_RTTI
Definition NiBillboardNode.h:11
FaceMode
Definition NiBillboardNode.h:21
@ FACE_MODE_POS
Definition NiBillboardNode.h:16
@ FACE_MODE_MASK
Definition NiBillboardNode.h:17
void LinkObject(NiStream &a_stream) override
void SaveBinary(NiStream &a_stream) override
void UpdateWorldData(NiUpdateData *a_data) override
~NiBillboardNode() override
FaceMode GetMode() const
Definition NiBillboardNode.h:44
Definition NiCloningProcess.h:10
Definition NiCullingProcess.h:34
Definition NiNode.h:12
Definition NiObject.h:37
Definition NiRTTI.h:6
Definition NiStream.h:29
Definition NiAVObject.h:28
Definition AbsorbEffect.h:6
constexpr REL::ID NiRTTI_NiBillboardNode(static_cast< std::uint64_t >(523959))
constexpr std::array< REL::ID, 1 > VTABLE_NiBillboardNode
Definition Offsets_VTABLE.h:12163
constexpr REL::ID RTTI_NiBillboardNode(static_cast< std::uint64_t >(685540))