CommonLibVR
Loading...
Searching...
No Matches
ShadowSceneNode.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSAtomic.h"
4#include "RE/B/BSTArray.h"
5#include "RE/N/NiNode.h"
6
7namespace RE
8{
9 class BSLight;
10 class BSFogProperty;
11 class BSLensFlareRenderData;
12 class BSPortalGraph;
13 class BSShadowLight;
14 class BSShadowDirectionalLight;
15 class NiLight;
16
17 class ShadowSceneNode : public NiNode
18 {
19 public:
20 inline static constexpr auto RTTI = RTTI_ShadowSceneNode;
21 inline static constexpr auto Ni_RTTI = NiRTTI_ShadowSceneNode;
22 inline static constexpr auto VTABLE = VTABLE_ShadowSceneNode;
23
25 {
26 public:
27 // members
28 bool dynamic; // 00
29 bool shadowLight; // 01
30 bool portalStrict; // 02
31 bool affectLand; // 03
32 bool affectWater; // 04
33 bool neverFades; // 05
34 float fov; // 08
35 float falloff; // 0C
36 float nearDistance; // 10
37 float depthBias; // 14
38 std::uint32_t sceneGraphIndex; // 18
41 };
42
43 ~ShadowSceneNode() override; // 00
44
45 // override (NiNode)
46 const NiRTTI* GetRTTI() const override; // 02
47 void OnVisible(NiCullingProcess& a_process) override; // 34
48
49 BSLight* AddLight(NiLight* a_light, const LIGHT_CREATE_PARAMS& a_params);
50 void AddLight(BSLight* a_light);
54 void RemoveLight(NiLight* a_light);
55 void RemoveLight(const NiPointer<BSLight>& a_light);
56
57 // members
58 std::uint64_t unk128; // 128
64 mutable BSSpinLock lightQueueLock; // 1A8
68 mutable BSSpinLock objectListLock; // 1F8
71 BSShadowDirectionalLight* shadowDirLight; // 210
72 std::uint8_t sceneGraphIndex; // 218
73 bool disableLightUpdate; // 219
74 bool wireframe; // 21A
75 bool opaqueWireframe; // 21B
76 std::uint32_t pad21C; // 21C
80 std::uint32_t firstPersonShadowMask; // 248
81 std::uint32_t unk24C; // 24C
82 std::uint64_t unk250; // 250
83 std::uint64_t unk258; // 258
84 std::uint64_t unk260; // 260
85 std::uint64_t unk268; // 268
86 std::uint64_t unk270; // 270
87 std::uint64_t unk278; // 278
88 std::uint64_t unk280; // 280
89 std::uint64_t unk288; // 288
90 std::uint64_t unk290; // 290
91 std::uint64_t unk298; // 298
92 std::uint64_t unk2A0; // 2A0
93 std::uint64_t unk2A8; // 2A8
94 std::uint64_t unk2B0; // 2B0
95 std::uint64_t unk2B8; // 2B8
96 std::uint64_t unk2C0; // 2C0
97 std::uint64_t unk2C8; // 2C8
98 std::uint64_t unk2D0; // 2D0
99 std::uint64_t unk2D8; // 2D8
100 std::uint64_t unk2E0; // 2E0
103#ifdef SKYRIMVR
104 NiPoint3 unk328; // 328
105#endif
107 std::uint8_t pad301; // 301
108 std::uint16_t pad302; // 302
109 float windMagnitude; // 304
110 private:
112 };
113#ifndef SKYRIMVR
114 static_assert(sizeof(ShadowSceneNode) == 0x308);
115#else
116 static_assert(sizeof(ShadowSceneNode) == 0x340);
117#endif
118}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition BSLensFlareRenderData.h:11
Definition BSLight.h:21
Definition BSPortalGraph.h:17
Definition BSAtomic.h:92
Definition BSTArray.h:378
Definition NiAVObject.h:57
Definition NiCullingProcess.h:34
Definition NiLight.h:10
Definition NiNode.h:12
Definition NiPoint3.h:6
Definition NiSmartPointer.h:9
Definition NiRTTI.h:6
Definition ShadowSceneNode.h:18
std::uint64_t unk250
Definition ShadowSceneNode.h:82
std::uint8_t pad301
Definition ShadowSceneNode.h:107
std::uint64_t unk2A0
Definition ShadowSceneNode.h:92
BSTArray< NiPointer< BSLight > > activeLights
Definition ShadowSceneNode.h:59
void RemoveLight(const NiPointer< BSLight > &a_light)
std::uint64_t unk268
Definition ShadowSceneNode.h:85
BSLight * AddLight(NiLight *a_light, const LIGHT_CREATE_PARAMS &a_params)
BSSpinLock objectListLock
Definition ShadowSceneNode.h:68
bool wireframe
Definition ShadowSceneNode.h:74
static constexpr auto VTABLE
Definition ShadowSceneNode.h:22
float windMagnitude
Definition ShadowSceneNode.h:109
BSTArray< BSShadowLight * > shadowLightsAccum
Definition ShadowSceneNode.h:79
bool allowLightRemoveQueues
Definition ShadowSceneNode.h:106
BSLight * GetShadowLight(NiLight *a_light)
BSShadowDirectionalLight * shadowDirLight
Definition ShadowSceneNode.h:71
std::uint32_t pad21C
Definition ShadowSceneNode.h:76
std::uint64_t unk288
Definition ShadowSceneNode.h:89
const NiRTTI * GetRTTI() const override
BSLight * cloudLight
Definition ShadowSceneNode.h:70
std::uint64_t unk2D0
Definition ShadowSceneNode.h:98
void AddLight(BSLight *a_light)
std::uint64_t unk128
Definition ShadowSceneNode.h:58
BSPortalGraph * portalGraph
Definition ShadowSceneNode.h:78
std::uint64_t unk2B8
Definition ShadowSceneNode.h:95
BSLight * GetLight(NiLight *a_light)
BSTArray< NiPointer< NiAVObject > > objectList1
Definition ShadowSceneNode.h:66
std::uint64_t unk270
Definition ShadowSceneNode.h:86
std::uint64_t unk260
Definition ShadowSceneNode.h:84
bool disableLightUpdate
Definition ShadowSceneNode.h:73
std::uint16_t pad302
Definition ShadowSceneNode.h:108
BSSpinLock lightQueueLock
Definition ShadowSceneNode.h:64
std::uint32_t unk24C
Definition ShadowSceneNode.h:81
std::uint64_t unk2E0
Definition ShadowSceneNode.h:100
bool opaqueWireframe
Definition ShadowSceneNode.h:75
std::uint64_t unk2A8
Definition ShadowSceneNode.h:93
std::uint64_t unk2C0
Definition ShadowSceneNode.h:96
std::uint64_t unk278
Definition ShadowSceneNode.h:87
static constexpr auto Ni_RTTI
Definition ShadowSceneNode.h:21
BSLight * sunLight
Definition ShadowSceneNode.h:69
std::uint64_t unk298
Definition ShadowSceneNode.h:91
BSTArray< NiPointer< BSLight > > lightQueueAdd
Definition ShadowSceneNode.h:61
std::uint8_t sceneGraphIndex
Definition ShadowSceneNode.h:72
std::uint64_t unk258
Definition ShadowSceneNode.h:83
BSTArray< NiPointer< BSLight > > unk190
Definition ShadowSceneNode.h:63
void OnVisible(NiCullingProcess &a_process) override
NiPointer< BSFogProperty > fogProperty
Definition ShadowSceneNode.h:77
BSTArray< NiPointer< BSLight > > activeShadowLights
Definition ShadowSceneNode.h:60
std::uint32_t firstPersonShadowMask
Definition ShadowSceneNode.h:80
std::uint64_t unk290
Definition ShadowSceneNode.h:90
~ShadowSceneNode() override
std::uint64_t unk2D8
Definition ShadowSceneNode.h:99
void RemoveLight(NiLight *a_light)
BSTArray< NiPointer< NiAVObject > > litGeometry
Definition ShadowSceneNode.h:65
BSLight * GetPointLight(NiLight *a_light)
BSTArray< NiPointer< BSLight > > lightQueueRemove
Definition ShadowSceneNode.h:62
NiPoint3 cameraPos
Definition ShadowSceneNode.h:102
BSTArray< NiPointer< NiAVObject > > objectList2
Definition ShadowSceneNode.h:67
NiPoint3 lightingOffset
Definition ShadowSceneNode.h:101
static constexpr auto RTTI
Definition ShadowSceneNode.h:20
std::uint64_t unk2C8
Definition ShadowSceneNode.h:97
std::uint64_t unk2B0
Definition ShadowSceneNode.h:94
std::uint64_t unk280
Definition ShadowSceneNode.h:88
Definition AbsorbEffect.h:6
constexpr REL::ID NiRTTI_ShadowSceneNode(static_cast< std::uint64_t >(527735))
constexpr std::array< REL::ID, 1 > VTABLE_ShadowSceneNode
Definition Offsets_VTABLE.h:12643
constexpr REL::ID RTTI_ShadowSceneNode(static_cast< std::uint64_t >(692005))
Definition ShadowSceneNode.h:25
NiAVObject * restrictedNode
Definition ShadowSceneNode.h:39
float nearDistance
Definition ShadowSceneNode.h:36
bool shadowLight
Definition ShadowSceneNode.h:29
float falloff
Definition ShadowSceneNode.h:35
float depthBias
Definition ShadowSceneNode.h:37
BSLensFlareRenderData * lensFlareData
Definition ShadowSceneNode.h:40
bool portalStrict
Definition ShadowSceneNode.h:30
bool dynamic
Definition ShadowSceneNode.h:28
bool affectLand
Definition ShadowSceneNode.h:31
bool neverFades
Definition ShadowSceneNode.h:33
bool affectWater
Definition ShadowSceneNode.h:32
float fov
Definition ShadowSceneNode.h:34
std::uint32_t sceneGraphIndex
Definition ShadowSceneNode.h:38