CommonLibVR
Loading...
Searching...
No Matches
BSCullingProcess.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/B/BSTArray.h"
7
8namespace RE
9{
10 class BSCompoundFrustum;
11 class BSMultiBound;
12 class BSOcclusionPlane;
13 class NiAVObject;
14 class NiBound;
15
17 {
18 public:
19 inline static constexpr auto RTTI = RTTI_BSCullingProcess;
20 inline static constexpr auto Ni_RTTI = NiRTTI_BSCullingProcess;
21 inline static constexpr auto VTABLE = VTABLE_BSCullingProcess;
22
23 enum class BSCPCullingType
24 {
25 kNormal = 0,
26 kAllPass = 1,
27 kAllFail = 2,
30 };
31
32 struct Data
33 {
34 public:
35 // members
36 std::uint8_t unk00[0x10]; // 00
37 };
38 static_assert(sizeof(Data) == 0x10);
39
40 // override (NiCullingProcess)
41 const NiRTTI* GetRTTI() const override; // 00
42
43 ~BSCullingProcess() override; // 15
44
45 void Process1(NiAVObject* a_object, std::uint32_t a_arg2) override; // 16
46 void Process2(const NiCamera* a_camera, NiAVObject* a_scene, NiVisibleArray* a_visibleSet) override; // 17
47 void AppendVirtual(BSGeometry& a_visible, std::uint32_t a_arg2) override; // 18
48
49 // add
50 virtual void AppendNonAccum(NiAVObject& a_object); // 19
51 virtual bool TestBaseVisibility1(BSMultiBound& a_bound); // 1A
52 virtual bool TestBaseVisibility2(BSOcclusionPlane& a_bound); // 1B
53 [[nodiscard]] virtual bool TestBaseVisibility3(const NiBound& a_bound) const; // 1C
54
57 std::uint64_t unk30160; // 30160
58 std::uint64_t unk30168; // 30168
59 std::uint64_t unk30170; // 30170
60 std::uint64_t unk30178; // 30178
61 std::uint64_t unk30180; // 30180
62 std::uint64_t unk30188; // 30188
63 void* unk30190; // 30190
64 std::int32_t cullMode; // 30198
66 std::uint64_t unk301A8; // 301A8
67 std::uint64_t unk301B0; // 301B0
68 std::uint64_t unk301B8; // 301B8
69 std::uint64_t unk301C0; // 301C0
70 std::uint64_t unk301C8; // 301C8
71 std::uint32_t unk301D0; // 301D0
72 bool recurseToGeometry; // 301D4
73 std::uint8_t unk301D5; // 301D5
74 std::uint16_t unk301D6; // 301D6
76 std::uint64_t unk301F0; // 301F0
77 private:
79 };
80 static_assert(sizeof(BSCullingProcess) == 0x301F8);
81}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition BSCompoundFrustum.h:12
Definition BSCullingProcess.h:17
static constexpr auto RTTI
Definition BSCullingProcess.h:19
const NiRTTI * GetRTTI() const override
std::uint64_t unk30170
Definition BSCullingProcess.h:59
virtual bool TestBaseVisibility1(BSMultiBound &a_bound)
std::uint32_t unk301D0
Definition BSCullingProcess.h:71
static constexpr auto VTABLE
Definition BSCullingProcess.h:21
std::uint64_t unk301C8
Definition BSCullingProcess.h:70
BSTArray< NiPointer< NiAVObject > > unk00128
Definition BSCullingProcess.h:55
void AppendVirtual(BSGeometry &a_visible, std::uint32_t a_arg2) override
std::uint64_t unk30160
Definition BSCullingProcess.h:57
BSCPCullingType
Definition BSCullingProcess.h:24
BSTLocklessQueue::ObjMultiProdCons< Data, 4096, 0 > cullQueue
Definition BSCullingProcess.h:56
std::int32_t cullMode
Definition BSCullingProcess.h:64
std::uint16_t unk301D6
Definition BSCullingProcess.h:74
BSTArray< void * > unk301D8
Definition BSCullingProcess.h:75
std::uint64_t unk30180
Definition BSCullingProcess.h:61
bool recurseToGeometry
Definition BSCullingProcess.h:72
virtual bool TestBaseVisibility2(BSOcclusionPlane &a_bound)
static constexpr auto Ni_RTTI
Definition BSCullingProcess.h:20
BSCompoundFrustum * compoundFrustum
Definition BSCullingProcess.h:65
std::uint64_t unk301B8
Definition BSCullingProcess.h:68
void * unk30190
Definition BSCullingProcess.h:63
std::uint64_t unk30178
Definition BSCullingProcess.h:60
std::uint64_t unk301F0
Definition BSCullingProcess.h:76
void Process2(const NiCamera *a_camera, NiAVObject *a_scene, NiVisibleArray *a_visibleSet) override
std::uint64_t unk30188
Definition BSCullingProcess.h:62
std::uint64_t unk301B0
Definition BSCullingProcess.h:67
virtual bool TestBaseVisibility3(const NiBound &a_bound) const
virtual void AppendNonAccum(NiAVObject &a_object)
std::uint64_t unk301C0
Definition BSCullingProcess.h:69
std::uint64_t unk30168
Definition BSCullingProcess.h:58
std::uint64_t unk301A8
Definition BSCullingProcess.h:66
std::uint8_t unk301D5
Definition BSCullingProcess.h:73
void Process1(NiAVObject *a_object, std::uint32_t a_arg2) override
~BSCullingProcess() override
Definition BSGeometry.h:17
Definition BSMultiBound.h:12
Definition BSOcclusionPlane.h:10
Definition BSTArray.h:378
Definition BSTLocklessQueue.h:28
Definition NiAVObject.h:57
Definition NiBound.h:8
Definition NiCamera.h:11
Definition NiCullingProcess.h:34
Definition NiRTTI.h:6
Definition AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BSCullingProcess
Definition Offsets_VTABLE.h:8982
constexpr REL::ID NiRTTI_BSCullingProcess(static_cast< std::uint64_t >(524626))
constexpr REL::ID RTTI_BSCullingProcess(static_cast< std::uint64_t >(685531))
Definition BSCullingProcess.h:33
std::uint8_t unk00[0x10]
Definition BSCullingProcess.h:36