CommonLibSSE (Parapets fork)
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
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
bool recurseToGeometry
Definition: BSCullingProcess.h:71
virtual bool TestBaseVisibility2(BSOcclusionPlane &a_bound)
static constexpr auto Ni_RTTI
Definition: BSCullingProcess.h:20
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:14
Definition: BSTArray.h:377
Definition: BSTLocklessQueue.h:28
Definition: NiAVObject.h:45
Definition: NiBound.h:8
Definition: NiCamera.h:11
Definition: NiCullingProcess.h:34
Definition: NiRTTI.h:6
Definition: AbsorbEffect.h:6
constexpr REL::ID NiRTTI_BSCullingProcess
Definition: Offsets_NiRTTI.h:23
constexpr REL::ID RTTI_BSCullingProcess
Definition: Offsets_RTTI.h:1664
Definition: BSCullingProcess.h:32
std::uint8_t unk00[0x10]
Definition: BSCullingProcess.h:35