CommonLibVR
UI3DSceneManager.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/B/BSTSingleton.h"
7 #include "RE/N/NiColor.h"
8 #include "RE/N/NiFrustum.h"
9 #include "RE/N/NiMatrix3.h"
10 #include "RE/N/NiPoint3.h"
11 #include "RE/N/NiSmartPointer.h"
12 
13 namespace RE
14 {
15  class BSCullingProcess;
16  class BSLight;
17  class BSShaderAccumulator;
18  class NiAVObject;
19  class NiCamera;
20  class NiNode;
21  class ShadowSceneNode;
22  class TESImageSpaceModifier;
23 
24  class MenuLight
25  {
26  public:
27  // members
28  NiColor color; // 00
30  float radius; // 18
31  float fade; // 1C
32  bool castsShadows; // 20
34  MenuLight* last; // 30
35  private:
36  KEEP_FOR_RE()
37  };
38  static_assert(sizeof(MenuLight) == 0x38);
39 
40  class UI3DSceneManager : public BSTSingletonSDM<UI3DSceneManager>
41  {
42  public:
44 
45 #ifndef SKYRIMVR // AttachChild function not found in VR so far
46  void AttachChild(NiAVObject* a_obj);
48  void DetachChild(NiAVObject* a_obj);
49 #endif
50  void SetCameraFOV(float a_fov);
51  void SetCameraRotate(const NiMatrix3& a_rotate);
52  void SetCameraPosition(const NiPoint3& a_pos);
53 
54  // members
55  std::uint8_t pad01; // 01
56  std::uint16_t pad02; // 02
57  std::uint32_t pad04; // 04
62  mutable BSSpinLock lock; // 28
67  std::uint32_t pad94; // 94
73  private:
74  KEEP_FOR_RE()
75  };
76  static_assert(sizeof(UI3DSceneManager) == 0x118);
77 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSCullingProcess.h:17
Definition: BSAtomic.h:92
Definition: BSTArray.h:378
Definition: UI3DSceneManager.h:25
NiPoint3 translate
Definition: UI3DSceneManager.h:29
NiColor color
Definition: UI3DSceneManager.h:28
float radius
Definition: UI3DSceneManager.h:30
NiPointer< BSLight > light
Definition: UI3DSceneManager.h:33
MenuLight * last
Definition: UI3DSceneManager.h:34
float fade
Definition: UI3DSceneManager.h:31
bool castsShadows
Definition: UI3DSceneManager.h:32
Definition: NiAVObject.h:57
Definition: NiColor.h:11
Definition: NiFrustum.h:6
Definition: NiMatrix3.h:8
Definition: NiPoint3.h:6
Definition: NiSmartPointer.h:9
Definition: ShadowSceneNode.h:18
Definition: UI3DSceneManager.h:41
NiPointer< NiCamera > camera
Definition: UI3DSceneManager.h:61
static UI3DSceneManager * GetSingleton()
std::uint16_t pad02
Definition: UI3DSceneManager.h:56
INTERFACE_LIGHT_SCHEME currentlightScheme
Definition: UI3DSceneManager.h:66
NiPointer< NiNode > menuObjects[8]
Definition: UI3DSceneManager.h:64
NiMatrix3 cachedCameraRot
Definition: UI3DSceneManager.h:71
void SetCameraPosition(const NiPoint3 &a_pos)
std::uint8_t pad01
Definition: UI3DSceneManager.h:55
void SetCameraRotate(const NiMatrix3 &a_rotate)
ShadowSceneNode * shadowSceneNode
Definition: UI3DSceneManager.h:63
BSTArray< INTERFACE_LIGHT_SCHEME > lightSchemes
Definition: UI3DSceneManager.h:68
NiPointer< BSShaderAccumulator > unk10
Definition: UI3DSceneManager.h:59
void DetachChild(NiAVObject *a_obj)
BSSpinLock lock
Definition: UI3DSceneManager.h:62
std::uint32_t pad94
Definition: UI3DSceneManager.h:67
void SetCameraFOV(float a_fov)
void AttachChild(NiAVObject *a_obj, INTERFACE_LIGHT_SCHEME a_scheme)
BSTArray< NiPointer< TESImageSpaceModifier > > imageSpaceMods
Definition: UI3DSceneManager.h:69
NiPointer< BSShaderAccumulator > unk18
Definition: UI3DSceneManager.h:60
NiPoint3 cachedCameraPos
Definition: UI3DSceneManager.h:70
BSCullingProcess * cullingProcess
Definition: UI3DSceneManager.h:58
std::uint32_t pad04
Definition: UI3DSceneManager.h:57
BSTArray< MenuLight * > menuLights
Definition: UI3DSceneManager.h:65
void AttachChild(NiAVObject *a_obj)
NiFrustum viewFrustum
Definition: UI3DSceneManager.h:72
Definition: AbsorbEffect.h:6
INTERFACE_LIGHT_SCHEME
Definition: InterfaceLightSchemes.h:6
Definition: BSTSingleton.h:50