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