CommonLibSSE NG
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 auto Ni_RTTI = NiRTTI_NiCullingProcess;
38
39 // add
40 [[nodiscard]] virtual const NiRTTI* GetRTTI() const; // 00
41 virtual NiNode* GetAsNiNode(); // 01 - { return 0; }
42 virtual NiSwitchNode* GetAsNiSwitchNode(); // 02 - { return 0; }
43 virtual BSFadeNode* GetAsBSFadeNode(); // 03 - { return 0; }
44 virtual BSMultiBoundNode* GetAsBSMultiBoundNode(); // 04 - { return 0; }
45 virtual BSGeometry* GetAsBSGeometry(); // 05 - { return 0; }
46 virtual NiTriStrips* GetAsNiTriStrips(); // 06 - { return 0; }
47 virtual BSTriShape* GetAsBSTriShape(); // 07 - { return 0; }
48 virtual BSSegmentedTriShape* GetAsBSSegmentedTriShape(); // 08 - { return 0; }
49 virtual BSSubIndexTriShape* GetAsBSSubIndexTriShape(); // 09 - { return 0; }
50 virtual BSDynamicTriShape* GetAsBSDynamicTriShape(); // 0A - { return 0; }
51 virtual NiGeometry* GetAsNiGeometry(); // 0B - { return 0; }
52 virtual NiTriBasedGeom* GetAsNiTriBasedGeom(); // 0C - { return 0; }
53 virtual NiTriShape* GetAsNiTriShape(); // 0D - { return 0; }
54 virtual NiParticles* GetAsNiParticles(); // 0E - { return 0; }
55 virtual BSLines* GetAsBSLines(); // 0F - { return 0; }
56 virtual bhkNiCollisionObject* GetAsBhkNiCollisionObject(); // 10 - { return 0; }
57 virtual bhkBlendCollisionObject* GetAsBhkBlendCollisionObject(); // 11 - { return 0; }
58 virtual bhkAttachmentCollisionObject* GetAsBhkAttachmentCollisionObject(); // 12 - { return 0; }
59 virtual bhkRigidBody* GetAsBhkRigidBody(); // 13 - { return 0; }
60 virtual bhkLimitedHingeConstraint* GetAsBhkLimitedHingeConstraint(); // 14 - { return 0; }
61
62 virtual ~NiCullingProcess(); // 15
63
64 virtual void Process1(NiAVObject* a_object, std::uint32_t a_arg2); // 16
65 virtual void Process2(const NiCamera* a_camera, NiAVObject* a_scene, NiVisibleArray* a_visibleSet); // 17 - { return; }
66 virtual void AppendVirtual(BSGeometry& a_visible, std::uint32_t a_arg2); // 18
67
68 // members
69 const bool useVirtualAppend{ false }; // 008
70 std::uint8_t pad009; // 009
71 std::uint16_t pad00A; // 00A
72 std::uint32_t pad00C; // 00C
73 NiVisibleArray* visibleSet; // 010
74 const NiCamera* camera; // 018
80 bool ignorePreprocess; // 11E
81 bool doCustomCullPlanes; // 11F
82 std::uint8_t unk120; // 120
83 std::uint8_t unk121; // 121
84 std::uint16_t pad122; // 122
85 std::uint32_t pad124; // 124
86 };
87 static_assert(sizeof(NiCullingProcess) == 0x128);
88}
Definition BSDynamicTriShape.h:8
Definition BSFadeNode.h:11
Definition BSGeometry.h:15
Definition BSMultiBoundNode.h:14
Definition BSTriShape.h:8
Definition NiAVObject.h:50
Definition NiCamera.h:12
Definition NiCullingProcess.h:34
virtual bhkBlendCollisionObject * GetAsBhkBlendCollisionObject()
virtual NiTriStrips * GetAsNiTriStrips()
bool doCustomCullPlanes
Definition NiCullingProcess.h:81
std::uint8_t unk120
Definition NiCullingProcess.h:82
NiFrustumPlanes customCullPlanes
Definition NiCullingProcess.h:77
virtual NiParticles * GetAsNiParticles()
virtual bhkRigidBody * GetAsBhkRigidBody()
NiVisibleArray * visibleSet
Definition NiCullingProcess.h:73
bool ignorePreprocess
Definition NiCullingProcess.h:80
virtual NiTriShape * GetAsNiTriShape()
virtual BSGeometry * GetAsBSGeometry()
virtual BSLines * GetAsBSLines()
const bool useVirtualAppend
Definition NiCullingProcess.h:69
NiFrustum frustum
Definition NiCullingProcess.h:75
virtual NiTriBasedGeom * GetAsNiTriBasedGeom()
const NiCamera * camera
Definition NiCullingProcess.h:74
virtual BSFadeNode * GetAsBSFadeNode()
virtual const NiRTTI * GetRTTI() const
virtual BSSegmentedTriShape * GetAsBSSegmentedTriShape()
virtual bhkLimitedHingeConstraint * GetAsBhkLimitedHingeConstraint()
std::uint16_t pad00A
Definition NiCullingProcess.h:71
NiFrustumPlanes planes
Definition NiCullingProcess.h:76
static auto Ni_RTTI
Definition NiCullingProcess.h:37
std::uint32_t pad124
Definition NiCullingProcess.h:85
virtual BSMultiBoundNode * GetAsBSMultiBoundNode()
virtual bhkNiCollisionObject * GetAsBhkNiCollisionObject()
virtual BSSubIndexTriShape * GetAsBSSubIndexTriShape()
std::uint16_t pad122
Definition NiCullingProcess.h:84
virtual NiGeometry * GetAsNiGeometry()
virtual NiSwitchNode * GetAsNiSwitchNode()
bool updateAccumulateFlag
Definition NiCullingProcess.h:79
virtual void AppendVirtual(BSGeometry &a_visible, std::uint32_t a_arg2)
virtual bhkAttachmentCollisionObject * GetAsBhkAttachmentCollisionObject()
std::uint8_t unk121
Definition NiCullingProcess.h:83
static constexpr auto RTTI
Definition NiCullingProcess.h:36
virtual BSDynamicTriShape * GetAsBSDynamicTriShape()
virtual BSTriShape * GetAsBSTriShape()
std::uint8_t pad009
Definition NiCullingProcess.h:70
virtual void Process2(const NiCamera *a_camera, NiAVObject *a_scene, NiVisibleArray *a_visibleSet)
virtual ~NiCullingProcess()
bool cameraRelatedUpdates
Definition NiCullingProcess.h:78
virtual NiNode * GetAsNiNode()
std::uint32_t pad00C
Definition NiCullingProcess.h:72
virtual void Process1(NiAVObject *a_object, std::uint32_t a_arg2)
Definition NiFrustum.h:6
Definition NiFrustumPlanes.h:8
Definition NiGeometry.h:11
Definition NiNode.h:12
Definition NiParticles.h:10
Definition NiRTTI.h:6
Definition bhkNiCollisionObject.h:11
Definition bhkRigidBody.h:14
Definition AbsorbEffect.h:6
constexpr REL::VariantID RTTI_NiCullingProcess(685532, 393317, 0x1ee7510)
constexpr REL::VariantID NiRTTI_NiCullingProcess(523961, 410541, 0x316bf48)