CommonLibSSE NG
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 auto Ni_RTTI = NiRTTI_BSCullingProcess;
21
22 enum class BSCPCullingType
23 {
24 kNormal = 0,
25 kAllPass = 1,
26 kAllFail = 2,
29 };
30
31 struct Data
32 {
33 public:
34 // members
35 std::uint8_t unk00[0x10]; // 00
36 };
37 static_assert(sizeof(Data) == 0x10);
38
39 // override (NiCullingProcess)
40 const NiRTTI* GetRTTI() const override; // 00
41
42 ~BSCullingProcess() override; // 15
43
44 void Process1(NiAVObject* a_object, std::uint32_t a_arg2) override; // 16
45 void Process2(const NiCamera* a_camera, NiAVObject* a_scene, NiVisibleArray* a_visibleSet) override; // 17
46 void AppendVirtual(BSGeometry& a_visible, std::uint32_t a_arg2) override; // 18
47
48 // add
49 virtual void AppendNonAccum(NiAVObject& a_object); // 19
50 virtual bool TestBaseVisibility1(BSMultiBound& a_bound); // 1A
51 virtual bool TestBaseVisibility2(BSOcclusionPlane& a_bound); // 1B
52 [[nodiscard]] virtual bool TestBaseVisibility3(const NiBound& a_bound) const; // 1C
53
56 std::uint64_t unk30160; // 30160
57 std::uint64_t unk30168; // 30168
58 std::uint64_t unk30170; // 30170
59 std::uint64_t unk30178; // 30178
60 std::uint64_t unk30180; // 30180
61 std::uint64_t unk30188; // 30188
62 void* unk30190; // 30190
63 std::int32_t cullMode; // 30198
64 BSCompoundFrustum* compoundFrustum; // 301A0
65 std::uint64_t unk301A8; // 301A8
66 std::uint64_t unk301B0; // 301B0
67 std::uint64_t unk301B8; // 301B8
68 std::uint64_t unk301C0; // 301C0
69 std::uint64_t unk301C8; // 301C8
70 std::uint32_t unk301D0; // 301D0
71 bool recurseToGeometry; // 301D4
72 std::uint8_t unk301D5; // 301D5
73 std::uint16_t unk301D6; // 301D6
75 std::uint64_t unk301F0; // 301F0
76 };
77 static_assert(sizeof(BSCullingProcess) == 0x301F8);
78}
Definition BSCullingProcess.h:17
static constexpr auto RTTI
Definition BSCullingProcess.h:19
const NiRTTI * GetRTTI() const override
std::uint64_t unk30170
Definition BSCullingProcess.h:58
virtual bool TestBaseVisibility1(BSMultiBound &a_bound)
std::uint32_t unk301D0
Definition BSCullingProcess.h:70
std::uint64_t unk301C8
Definition BSCullingProcess.h:69
BSTArray< NiPointer< NiAVObject > > unk00128
Definition BSCullingProcess.h:54
void AppendVirtual(BSGeometry &a_visible, std::uint32_t a_arg2) override
std::uint64_t unk30160
Definition BSCullingProcess.h:56
BSCPCullingType
Definition BSCullingProcess.h:23
BSTLocklessQueue::ObjMultiProdCons< Data, 4096, 0 > cullQueue
Definition BSCullingProcess.h:55
std::int32_t cullMode
Definition BSCullingProcess.h:63
std::uint16_t unk301D6
Definition BSCullingProcess.h:73
BSTArray< void * > unk301D8
Definition BSCullingProcess.h:74
std::uint64_t unk30180
Definition BSCullingProcess.h:60
static auto Ni_RTTI
Definition BSCullingProcess.h:20
bool recurseToGeometry
Definition BSCullingProcess.h:71
virtual bool TestBaseVisibility2(BSOcclusionPlane &a_bound)
BSCompoundFrustum * compoundFrustum
Definition BSCullingProcess.h:64
std::uint64_t unk301B8
Definition BSCullingProcess.h:67
void * unk30190
Definition BSCullingProcess.h:62
std::uint64_t unk30178
Definition BSCullingProcess.h:59
std::uint64_t unk301F0
Definition BSCullingProcess.h:75
void Process2(const NiCamera *a_camera, NiAVObject *a_scene, NiVisibleArray *a_visibleSet) override
std::uint64_t unk30188
Definition BSCullingProcess.h:61
std::uint64_t unk301B0
Definition BSCullingProcess.h:66
virtual bool TestBaseVisibility3(const NiBound &a_bound) const
virtual void AppendNonAccum(NiAVObject &a_object)
std::uint64_t unk301C0
Definition BSCullingProcess.h:68
std::uint64_t unk30168
Definition BSCullingProcess.h:57
std::uint64_t unk301A8
Definition BSCullingProcess.h:65
std::uint8_t unk301D5
Definition BSCullingProcess.h:72
void Process1(NiAVObject *a_object, std::uint32_t a_arg2) override
~BSCullingProcess() override
Definition BSGeometry.h:15
Definition BSMultiBound.h:12
Definition BSTArray.h:377
Definition BSTLocklessQueue.h:28
Definition NiAVObject.h:50
Definition NiBound.h:8
Definition NiCamera.h:12
Definition NiCullingProcess.h:34
Definition NiRTTI.h:6
Definition AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_BSCullingProcess(524626, 411266, 0x317ca58)
constexpr REL::VariantID RTTI_BSCullingProcess(685531, 393316, 0x1ee74e8)
Definition BSCullingProcess.h:32
std::uint8_t unk00[0x10]
Definition BSCullingProcess.h:35