CommonLibVR
Loading...
Searching...
No Matches
NiCullingProcess.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiFrustum.h"
5
6namespace RE
7{
8 class BSDynamicTriShape;
9 class BSFadeNode;
10 class BSGeometry;
11 class bhkAttachmentCollisionObject;
12 class bhkBlendCollisionObject;
13 class bhkLimitedHingeConstraint;
14 class bhkNiCollisionObject;
15 class bhkRigidBody;
16 class BSLines;
17 class BSMultiBoundNode;
18 class BSSegmentedTriShape;
19 class BSSubIndexTriShape;
20 class BSTriShape;
21 class NiAVObject;
22 class NiCamera;
23 class NiGeometry;
24 class NiNode;
25 class NiParticles;
26 class NiSwitchNode;
27 class NiRTTI;
28 class NiTriBasedGeom;
29 class NiTriShape;
30 class NiTriStrips;
31 class NiVisibleArray;
32
34 {
35 public:
36 inline static constexpr auto RTTI = RTTI_NiCullingProcess;
37 inline static constexpr auto Ni_RTTI = NiRTTI_NiCullingProcess;
38 inline static constexpr auto VTABLE = VTABLE_NiCullingProcess;
39
40 // add
41 [[nodiscard]] virtual const NiRTTI* GetRTTI() const; // 00
42 virtual NiNode* GetAsNiNode(); // 01 - { return 0; }
43 virtual NiSwitchNode* GetAsNiSwitchNode(); // 02 - { return 0; }
44 virtual BSFadeNode* GetAsBSFadeNode(); // 03 - { return 0; }
45 virtual BSMultiBoundNode* GetAsBSMultiBoundNode(); // 04 - { return 0; }
46 virtual BSGeometry* GetAsBSGeometry(); // 05 - { return 0; }
47 virtual NiTriStrips* GetAsNiTriStrips(); // 06 - { return 0; }
48 virtual BSTriShape* GetAsBSTriShape(); // 07 - { return 0; }
49 virtual BSSegmentedTriShape* GetAsBSSegmentedTriShape(); // 08 - { return 0; }
50 virtual BSSubIndexTriShape* GetAsBSSubIndexTriShape(); // 09 - { return 0; }
51 virtual BSDynamicTriShape* GetAsBSDynamicTriShape(); // 0A - { return 0; }
52 virtual NiGeometry* GetAsNiGeometry(); // 0B - { return 0; }
53 virtual NiTriBasedGeom* GetAsNiTriBasedGeom(); // 0C - { return 0; }
54 virtual NiTriShape* GetAsNiTriShape(); // 0D - { return 0; }
55 virtual NiParticles* GetAsNiParticles(); // 0E - { return 0; }
56 virtual BSLines* GetAsBSLines(); // 0F - { return 0; }
57 virtual bhkNiCollisionObject* GetAsBhkNiCollisionObject(); // 10 - { return 0; }
58 virtual bhkBlendCollisionObject* GetAsBhkBlendCollisionObject(); // 11 - { return 0; }
59 virtual bhkAttachmentCollisionObject* GetAsBhkAttachmentCollisionObject(); // 12 - { return 0; }
60 virtual bhkRigidBody* GetAsBhkRigidBody(); // 13 - { return 0; }
61 virtual bhkLimitedHingeConstraint* GetAsBhkLimitedHingeConstraint(); // 14 - { return 0; }
62
63 virtual ~NiCullingProcess(); // 15
64
65 virtual void Process1(NiAVObject* a_object, std::uint32_t a_arg2); // 16
66 virtual void Process2(const NiCamera* a_camera, NiAVObject* a_scene, NiVisibleArray* a_visibleSet); // 17 - { return; }
67 virtual void AppendVirtual(BSGeometry& a_visible, std::uint32_t a_arg2); // 18
68
69 // members
70 const bool useVirtualAppend{ false }; // 008
71 std::uint8_t pad009; // 009
72 std::uint16_t pad00A; // 00A
73 std::uint32_t pad00C; // 00C
74 NiVisibleArray* visibleSet; // 010
75 const NiCamera* camera; // 018
81 bool ignorePreprocess; // 11E
82 bool doCustomCullPlanes; // 11F
83 std::uint8_t unk120; // 120
84 std::uint8_t unk121; // 121
85 std::uint16_t pad122; // 122
86 std::uint32_t pad124; // 124
87 private:
89 };
90 static_assert(sizeof(NiCullingProcess) == 0x128);
91}
#define KEEP_FOR_RE()
Definition PCH.h:517
Definition BSDynamicTriShape.h:8
Definition BSFadeNode.h:11
Definition BSGeometry.h:17
Definition BSMultiBoundNode.h:14
Definition BSTriShape.h:8
Definition NiAVObject.h:57
Definition NiCamera.h:11
Definition NiCullingProcess.h:34
virtual bhkBlendCollisionObject * GetAsBhkBlendCollisionObject()
virtual NiTriStrips * GetAsNiTriStrips()
bool doCustomCullPlanes
Definition NiCullingProcess.h:82
std::uint8_t unk120
Definition NiCullingProcess.h:83
NiFrustumPlanes customCullPlanes
Definition NiCullingProcess.h:78
virtual NiParticles * GetAsNiParticles()
virtual bhkRigidBody * GetAsBhkRigidBody()
NiVisibleArray * visibleSet
Definition NiCullingProcess.h:74
static constexpr auto Ni_RTTI
Definition NiCullingProcess.h:37
bool ignorePreprocess
Definition NiCullingProcess.h:81
virtual NiTriShape * GetAsNiTriShape()
virtual BSGeometry * GetAsBSGeometry()
virtual BSLines * GetAsBSLines()
const bool useVirtualAppend
Definition NiCullingProcess.h:70
NiFrustum frustum
Definition NiCullingProcess.h:76
virtual NiTriBasedGeom * GetAsNiTriBasedGeom()
const NiCamera * camera
Definition NiCullingProcess.h:75
virtual BSFadeNode * GetAsBSFadeNode()
virtual const NiRTTI * GetRTTI() const
virtual BSSegmentedTriShape * GetAsBSSegmentedTriShape()
virtual bhkLimitedHingeConstraint * GetAsBhkLimitedHingeConstraint()
std::uint16_t pad00A
Definition NiCullingProcess.h:72
NiFrustumPlanes planes
Definition NiCullingProcess.h:77
static constexpr auto VTABLE
Definition NiCullingProcess.h:38
std::uint32_t pad124
Definition NiCullingProcess.h:86
virtual BSMultiBoundNode * GetAsBSMultiBoundNode()
virtual bhkNiCollisionObject * GetAsBhkNiCollisionObject()
virtual BSSubIndexTriShape * GetAsBSSubIndexTriShape()
std::uint16_t pad122
Definition NiCullingProcess.h:85
virtual NiGeometry * GetAsNiGeometry()
virtual NiSwitchNode * GetAsNiSwitchNode()
bool updateAccumulateFlag
Definition NiCullingProcess.h:80
virtual void AppendVirtual(BSGeometry &a_visible, std::uint32_t a_arg2)
virtual bhkAttachmentCollisionObject * GetAsBhkAttachmentCollisionObject()
std::uint8_t unk121
Definition NiCullingProcess.h:84
static constexpr auto RTTI
Definition NiCullingProcess.h:36
virtual BSDynamicTriShape * GetAsBSDynamicTriShape()
virtual BSTriShape * GetAsBSTriShape()
std::uint8_t pad009
Definition NiCullingProcess.h:71
virtual void Process2(const NiCamera *a_camera, NiAVObject *a_scene, NiVisibleArray *a_visibleSet)
virtual ~NiCullingProcess()
bool cameraRelatedUpdates
Definition NiCullingProcess.h:79
virtual NiNode * GetAsNiNode()
std::uint32_t pad00C
Definition NiCullingProcess.h:73
virtual void Process1(NiAVObject *a_object, std::uint32_t a_arg2)
Definition NiFrustumPlanes.h:8
Definition NiFrustum.h:6
Definition NiGeometry.h:11
Definition NiNode.h:12
Definition NiParticles.h:10
Definition NiRTTI.h:6
Definition NiTriShape.h:8
Definition bhkNiCollisionObject.h:11
Definition bhkRigidBody.h:15
Definition AbsorbEffect.h:6
constexpr REL::ID RTTI_NiCullingProcess(static_cast< std::uint64_t >(685532))
constexpr std::array< REL::ID, 1 > VTABLE_NiCullingProcess
Definition Offsets_VTABLE.h:12198
constexpr REL::ID NiRTTI_NiCullingProcess(static_cast< std::uint64_t >(523961))