CommonLibVR
Loading...
Searching...
No Matches
NiNode.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiAVObject.h"
5#include "RE/N/NiTArray.h"
6
7namespace RE
8{
9 class NiUpdateData;
10
11 class NiNode : public NiAVObject
12 {
13 public:
14 inline static constexpr auto RTTI = RTTI_NiNode;
15 inline static constexpr auto Ni_RTTI = NiRTTI_NiNode;
16 inline static constexpr auto VTABLE = VTABLE_NiNode;
17
18 ~NiNode() override; // 00
19
20 // override (NiAVObject)
21 const NiRTTI* GetRTTI() const override; // 02
22 NiNode* AsNode() override; // 03 - { return this; }
23 NiObject* CreateClone(NiCloningProcess& a_cloning) override; // 17
24 void LoadBinary(NiStream& a_stream) override; // 18
25 void LinkObject(NiStream& a_stream) override; // 19
26 bool RegisterStreamables(NiStream& a_stream) override; // 1A
27 void SaveBinary(NiStream& a_stream) override; // 1B
28 bool IsEqual(NiObject* a_object) override; // 1C
29 void ProcessClone(NiCloningProcess& a_cloning) override; // 1D
30 void UpdateControllers(NiUpdateData& a_data) override; // 25
31 void PerformOp(PerformOpFunc& a_func) override; // 26
32 void AttachProperty(NiAlphaProperty* a_property) override; // 27
33 NiAVObject* GetObjectByName(const BSFixedString& a_name) override; // 2A
34 void SetSelectiveUpdateFlags(bool& a_selectiveUpdate, bool a_selectiveUpdateTransforms, bool& a_rigid) override; // 2B
35 void UpdateDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2C
36 void UpdateSelectedDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2D
37 void UpdateRigidDownwardPass(NiUpdateData& a_data, std::uint32_t a_arg2) override; // 2E
38 void UpdateWorldBound() override; // 2F
39 void UpdateTransformAndBounds(NiUpdateData& a_data) override; // 31
40 void OnVisible(NiCullingProcess& a_process) override; // 34
41
42 // add
43 virtual void AttachChild(NiAVObject* a_child, bool a_firstAvail = false); // 35
44 virtual void InsertChildAt(std::uint32_t a_idx, NiAVObject* a_child); // 36
45 virtual void DetachChild1(NiAVObject* a_child, NiPointer<NiAVObject>& a_childOut); // 37
46 virtual void DetachChild2(NiAVObject* a_child); // 38
47 virtual void DetachChildAt1(std::uint32_t a_idx, NiPointer<NiAVObject>& a_childOut); // 39
48 virtual void DetachChildAt2(std::uint32_t a_idx); // 3A
49 virtual void SetAt1(std::uint32_t a_idx, NiAVObject* a_child, NiPointer<NiAVObject>& a_childOut); // 3B
50 virtual void SetAt2(std::uint32_t a_idx, NiAVObject* a_child); // 3C
51 virtual void UpdateUpwardPass(NiUpdateData& a_data); // 3D
52
53 static NiNode* Create(std::uint16_t a_arrBufLen = 0);
54
55 void DetachChild(NiAVObject* a_child);
56 void DetachChild(NiAVObject* a_child, NiPointer<NiAVObject>& a_childOut);
57 void DetachChildAt(std::uint32_t a_idx);
58 void DetachChildAt(std::uint32_t a_idx, NiPointer<NiAVObject>& a_childOut);
59 void SetAt(std::uint32_t a_idx, NiAVObject* a_child);
60 void SetAt(std::uint32_t a_idx, NiAVObject* a_child, NiPointer<NiAVObject>& a_childOut);
61
62 // members
64
65 protected:
66 NiNode* Ctor(std::uint16_t a_arrBufLen);
67
68 private:
70 };
71#ifndef SKYRIMVR
72 static_assert(sizeof(NiNode) == 0x128);
73#else
74 static_assert(sizeof(NiNode) == 0x150);
75#endif
76}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition NiAVObject.h:57
Definition NiAlphaProperty.h:8
Definition NiCloningProcess.h:10
Definition NiCullingProcess.h:34
Definition NiNode.h:12
void UpdateSelectedDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
void SetSelectiveUpdateFlags(bool &a_selectiveUpdate, bool a_selectiveUpdateTransforms, bool &a_rigid) override
virtual void InsertChildAt(std::uint32_t a_idx, NiAVObject *a_child)
const NiRTTI * GetRTTI() const override
virtual void DetachChild2(NiAVObject *a_child)
void DetachChildAt(std::uint32_t a_idx)
void SetAt(std::uint32_t a_idx, NiAVObject *a_child)
void OnVisible(NiCullingProcess &a_process) override
void UpdateTransformAndBounds(NiUpdateData &a_data) override
static constexpr auto RTTI
Definition NiNode.h:14
void UpdateControllers(NiUpdateData &a_data) override
void LinkObject(NiStream &a_stream) override
void UpdateDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
void ProcessClone(NiCloningProcess &a_cloning) override
void UpdateWorldBound() override
void PerformOp(PerformOpFunc &a_func) override
static constexpr auto Ni_RTTI
Definition NiNode.h:15
virtual void DetachChild1(NiAVObject *a_child, NiPointer< NiAVObject > &a_childOut)
static NiNode * Create(std::uint16_t a_arrBufLen=0)
NiNode * AsNode() override
void DetachChild(NiAVObject *a_child)
~NiNode() override
NiAVObject * GetObjectByName(const BSFixedString &a_name) override
virtual void DetachChildAt2(std::uint32_t a_idx)
void DetachChild(NiAVObject *a_child, NiPointer< NiAVObject > &a_childOut)
virtual void SetAt1(std::uint32_t a_idx, NiAVObject *a_child, NiPointer< NiAVObject > &a_childOut)
virtual void DetachChildAt1(std::uint32_t a_idx, NiPointer< NiAVObject > &a_childOut)
void DetachChildAt(std::uint32_t a_idx, NiPointer< NiAVObject > &a_childOut)
bool IsEqual(NiObject *a_object) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
void AttachProperty(NiAlphaProperty *a_property) override
void UpdateRigidDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
void SetAt(std::uint32_t a_idx, NiAVObject *a_child, NiPointer< NiAVObject > &a_childOut)
void SaveBinary(NiStream &a_stream) override
virtual void UpdateUpwardPass(NiUpdateData &a_data)
virtual void SetAt2(std::uint32_t a_idx, NiAVObject *a_child)
virtual void AttachChild(NiAVObject *a_child, bool a_firstAvail=false)
NiTObjectArray< NiPointer< NiAVObject > > children
Definition NiNode.h:63
void LoadBinary(NiStream &a_stream) override
bool RegisterStreamables(NiStream &a_stream) override
static constexpr auto VTABLE
Definition NiNode.h:16
NiNode * Ctor(std::uint16_t a_arrBufLen)
Definition NiObject.h:37
Definition NiSmartPointer.h:9
Definition NiRTTI.h:6
Definition NiStream.h:29
Definition NiTArray.h:126
Definition NiAVObject.h:28
Definition NiAVObject.h:45
Definition AbsorbEffect.h:6
constexpr REL::ID RTTI_NiNode(static_cast< std::uint64_t >(684841))
constexpr std::array< REL::ID, 1 > VTABLE_NiNode
Definition Offsets_VTABLE.h:12235
constexpr REL::ID NiRTTI_NiNode(static_cast< std::uint64_t >(523900))