19 #ifndef ENABLE_SKYRIM_VR
20 # define RUNTIME_DATA_CONTENT float worldToCam[4][4];
23 static_assert(
sizeof(RUNTIME_DATA) == 0x40);
24 #elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
25 # define RUNTIME_DATA_CONTENT \
26 float worldToCam[4][4]; \
27 NiFrustum* viewFrustumPtr; \
28 BSTArray<void*> unk180; \
29 BSTArray<void*> unk198; \
30 BSTArray<void*> unk1B0; \
35 static_assert(
sizeof(RUNTIME_DATA) == 0x98);
37 # define RUNTIME_DATA_CONTENT float worldToCam[4][4];
44 #define RUNTIME_DATA2_CONTENT \
45 NiFrustum viewFrustum; \
46 float minNearPlaneDist; \
47 float maxFarNearRatio; \
53 static_assert(
sizeof(RUNTIME_DATA2) == 0x38);
65 #if !defined(ENABLE_SKYRIM_VR) || (!defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_VR))
79 return REL::RelocateMember<RUNTIME_DATA>(
this, 0x110, 0x138);
84 return REL::RelocateMember<RUNTIME_DATA>(
this, 0x110, 0x138);
89 return REL::RelocateMember<RUNTIME_DATA2>(
this, 0x150, 0x1CC);
94 return REL::RelocateMember<RUNTIME_DATA2>(
this, 0x150, 0x1CC);
98 #ifndef SKYRIM_CROSS_VR
103 #ifndef ENABLE_SKYRIM_VR
104 static_assert(
sizeof(
NiCamera) == 0x188);
105 #elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
106 static_assert(
sizeof(
NiCamera) == 0x208);
109 #undef RUNTIME_DATA_CONTENT
110 #undef RUNTIME_DATA2_CONTENT
#define RUNTIME_DATA_CONTENT
Definition: NiCamera.h:20
#define RUNTIME_DATA2_CONTENT
Definition: NiCamera.h:44
Definition: NiAVObject.h:50
Definition: NiCamera.h:12
void SaveBinary(NiStream &a_stream) override
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition: NiCamera.h:82
static bool BoundInFrustum(const NiBound &a_bound, NiCamera *a_camera)
static bool PointInFrustum(const NiPoint3 &a_point, NiCamera *a_camera, float a_radius)
bool IsEqual(NiObject *a_object) override
RUNTIME_DATA_CONTENT
Definition: NiCamera.h:99
void LinkObject(NiStream &a_stream) override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
RUNTIME_DATA2 & GetRuntimeData2() noexcept
Definition: NiCamera.h:87
RUNTIME_DATA & GetRuntimeData() noexcept
Definition: NiCamera.h:77
bool RegisterStreamables(NiStream &a_stream) override
static bool WorldPtToScreenPt3(const float a_matrix[4][4], const NiRect< float > &a_port, const NiPoint3 &a_point, float &a_xOut, float &a_yOut, float &a_zOut, float a_zeroTolerance)
static bool NodeInFrustum(NiAVObject *a_node, NiCamera *a_camera)
static auto Ni_RTTI
Definition: NiCamera.h:15
const NiRTTI * GetRTTI() const override
void UpdateWorldBound() override
const RUNTIME_DATA2 & GetRuntimeData2() const noexcept
Definition: NiCamera.h:92
RUNTIME_DATA2_CONTENT
Definition: NiCamera.h:100
void LoadBinary(NiStream &a_stream) override
static constexpr auto RTTI
Definition: NiCamera.h:14
void UpdateWorldData(NiUpdateData *a_data) override
Definition: NiCloningProcess.h:10
Definition: NiObject.h:37
Definition: NiStream.h:29
Definition: NiAVObject.h:25
Definition: AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_NiCamera(523926, 410506, 0x316ad98)
constexpr REL::VariantID RTTI_NiCamera(690424, 398279, 0x1f61eb0)
Definition: NiCamera.h:43
Definition: NiCamera.h:18