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 Actor.h:633
Definition NiAVObject.h:50
void SaveBinary(NiStream &a_stream) override
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
const NiRTTI * GetRTTI() const override
NiObject * CreateClone(NiCloningProcess &a_cloning) override
RUNTIME_DATA & GetRuntimeData() noexcept
Definition NiCamera.h:77
RUNTIME_DATA_CONTENT
Definition NiCamera.h:99
const RUNTIME_DATA2 & GetRuntimeData2() const noexcept
Definition NiCamera.h:92
void LinkObject(NiStream &a_stream) override
const RUNTIME_DATA & GetRuntimeData() const noexcept
Definition NiCamera.h:82
bool RegisterStreamables(NiStream &a_stream) override
RUNTIME_DATA2 & GetRuntimeData2() noexcept
Definition NiCamera.h:87
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
void UpdateWorldBound() override
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 NiAVObject.h:25
Definition AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_NiCamera(523926, 410506, 0x316ad98)
constexpr REL::VariantID RTTI_NiCamera(690424, 398279, 0x1f61eb0)