CommonLibVR
NiCullingProcess.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiFrustum.h"
4 #include "RE/N/NiFrustumPlanes.h"
5 
6 namespace 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
79  bool cameraRelatedUpdates; // 11C
80  bool updateAccumulateFlag; // 11D
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:
88  KEEP_FOR_RE()
89  };
90  static_assert(sizeof(NiCullingProcess) == 0x128);
91 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
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 bhkLimitedHingeConstraint * GetAsBhkLimitedHingeConstraint()
virtual bhkRigidBody * GetAsBhkRigidBody()
bool doCustomCullPlanes
Definition: NiCullingProcess.h:82
std::uint8_t unk120
Definition: NiCullingProcess.h:83
NiFrustumPlanes customCullPlanes
Definition: NiCullingProcess.h:78
NiVisibleArray * visibleSet
Definition: NiCullingProcess.h:74
static constexpr auto Ni_RTTI
Definition: NiCullingProcess.h:37
virtual NiSwitchNode * GetAsNiSwitchNode()
bool ignorePreprocess
Definition: NiCullingProcess.h:81
virtual NiParticles * GetAsNiParticles()
virtual bhkAttachmentCollisionObject * GetAsBhkAttachmentCollisionObject()
virtual NiGeometry * GetAsNiGeometry()
virtual BSTriShape * GetAsBSTriShape()
const bool useVirtualAppend
Definition: NiCullingProcess.h:70
NiFrustum frustum
Definition: NiCullingProcess.h:76
const NiCamera * camera
Definition: NiCullingProcess.h:75
virtual NiTriStrips * GetAsNiTriStrips()
virtual const NiRTTI * GetRTTI() const
virtual BSGeometry * GetAsBSGeometry()
virtual BSDynamicTriShape * GetAsBSDynamicTriShape()
std::uint16_t pad00A
Definition: NiCullingProcess.h:72
virtual BSLines * GetAsBSLines()
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 BSSegmentedTriShape * GetAsBSSegmentedTriShape()
std::uint16_t pad122
Definition: NiCullingProcess.h:85
bool updateAccumulateFlag
Definition: NiCullingProcess.h:80
virtual void AppendVirtual(BSGeometry &a_visible, std::uint32_t a_arg2)
virtual BSFadeNode * GetAsBSFadeNode()
virtual bhkBlendCollisionObject * GetAsBhkBlendCollisionObject()
virtual NiTriShape * GetAsNiTriShape()
std::uint8_t unk121
Definition: NiCullingProcess.h:84
static constexpr auto RTTI
Definition: NiCullingProcess.h:36
virtual bhkNiCollisionObject * GetAsBhkNiCollisionObject()
virtual NiNode * GetAsNiNode()
std::uint8_t pad009
Definition: NiCullingProcess.h:71
virtual BSSubIndexTriShape * GetAsBSSubIndexTriShape()
virtual void Process2(const NiCamera *a_camera, NiAVObject *a_scene, NiVisibleArray *a_visibleSet)
virtual ~NiCullingProcess()
bool cameraRelatedUpdates
Definition: NiCullingProcess.h:79
virtual NiTriBasedGeom * GetAsNiTriBasedGeom()
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))