9 class BSMultiIndexTriShape;
10 class BSSkinnedDecalTriShape;
51 #if !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
52 # define MODEL_DATA_CONTENT \
57 # define MODEL_DATA_CONTENT NiBound modelBound;
61 #ifndef ENABLE_SKYRIM_VR
62 static_assert(
sizeof(MODEL_DATA) == 0x10);
63 #elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
64 static_assert(
sizeof(MODEL_DATA) == 0x28);
69 #define RUNTIME_DATA_CONTENT \
70 NiPointer<NiProperty> properties[States::kTotal]; \
71 NiPointer<NiSkinInstance> skinInstance; \
72 BSGraphics::TriShape* rendererData; \
74 BSGraphics::VertexDesc vertexDesc;
78 static_assert(
sizeof(GEOMETRY_RUNTIME_DATA) == 0x30);
92 #ifndef SKYRIM_CROSS_VR
110 return REL::RelocateMember<MODEL_DATA>(
this, 0x110, 0x138);
115 return REL::RelocateMember<MODEL_DATA>(
this, 0x110, 0x138);
120 return REL::RelocateMember<GEOMETRY_RUNTIME_DATA>(
this, 0x120, 0x160);
125 return REL::RelocateMember<GEOMETRY_RUNTIME_DATA>(
this, 0x120, 0x160);
130 return REL::RelocateMember<stl::enumeration<Type, std::uint8_t>>(
this, 0x150, 0x190);
135 return REL::RelocateMember<stl::enumeration<Type, std::uint8_t>>(
this, 0x150, 0x190);
139 #ifndef SKYRIM_CROSS_VR
142 # ifndef ENABLE_SKYRIM_VR
147 # elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
155 #ifndef ENABLE_SKYRIM_VR
157 #elif !defined(ENABLE_SKYRIM_AE) && !defined(ENABLE_SKYRIM_SE)
161 #undef MODEL_DATA_CONTENT
162 #undef RUNTIME_DATA_CONTENT
#define SKYRIM_REL_VR_VIRTUAL
Definition: Common.h:94
Definition: BSGeometry.h:15
Type
Definition: BSGeometry.h:21
@ kParticleShaderDynamicTriShape
@ kMultiStreamInstanceTriShape
void SetSelectiveUpdateFlags(bool &a_selectiveUpdate, bool a_selectiveUpdateTransforms, bool &a_rigid) override
void UpdateRigidDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
const stl::enumeration< Type, std::uint8_t > & GetType() const noexcept
Definition: BSGeometry.h:133
std::uint32_t pad34
Definition: BSGeometry.h:146
void SaveBinary(NiStream &a_stream) override
RUNTIME_DATA_CONTENT
Definition: BSGeometry.h:141
std::uint16_t pad32
Definition: BSGeometry.h:145
static auto Ni_RTTI
Definition: BSGeometry.h:18
stl::enumeration< Type, std::uint8_t > & GetType() noexcept
Definition: BSGeometry.h:128
void OnVisible(NiCullingProcess &a_process) override
bool IsEqual(NiObject *a_object) override
static constexpr auto RTTI
Definition: BSGeometry.h:17
const MODEL_DATA & GetModelData() const noexcept
Definition: BSGeometry.h:113
void ProcessClone(NiCloningProcess &a_cloning) override
SKYRIM_REL_VR_VIRTUAL void Unk_37(void)
const NiRTTI * GetRTTI() const override
const GEOMETRY_RUNTIME_DATA & GetGeometryRuntimeData() const noexcept
Definition: BSGeometry.h:123
SKYRIM_REL_VR_VIRTUAL BSSkinnedDecalTriShape * AsSkinnedDecalTriShape()
bool RegisterStreamables(NiStream &a_stream) override
void LinkObject(NiStream &a_stream) override
void UpdateWorldBound() override
void UpdateSelectedDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
void PostLinkObject(NiStream &a_stream) override
stl::enumeration< Type, std::uint8_t > type
Definition: BSGeometry.h:143
void UpdateDownwardPass(NiUpdateData &a_data, std::uint32_t a_arg2) override
BSGeometry * AsGeometry() override
void LoadBinary(NiStream &a_stream) override
std::uint8_t pad31
Definition: BSGeometry.h:144
SKYRIM_REL_VR_VIRTUAL BSMultiIndexTriShape * AsMultiIndexTriShape()
void AttachProperty(NiAlphaProperty *a_property) override
MODEL_DATA_CONTENT
Definition: BSGeometry.h:140
MODEL_DATA & GetModelData() noexcept
Definition: BSGeometry.h:108
GEOMETRY_RUNTIME_DATA & GetGeometryRuntimeData() noexcept
Definition: BSGeometry.h:118
Definition: BSMultiIndexTriShape.h:19
Definition: NiAVObject.h:50
Definition: NiAlphaProperty.h:8
Definition: NiCloningProcess.h:10
Definition: NiCullingProcess.h:34
Definition: NiObject.h:37
Definition: NiStream.h:29
Definition: NiAVObject.h:25
Definition: AbsorbEffect.h:6
constexpr REL::VariantID NiRTTI_BSGeometry(523951, 410531, 0x316bec8)
constexpr REL::VariantID RTTI_BSGeometry(685043, 392797, 0x1ede7b0)
Definition: BSGeometry.h:68
Definition: BSGeometry.h:50
Definition: BSGeometry.h:40
State
Definition: BSGeometry.h:42
@ kProperty
Definition: BSGeometry.h:43
@ kEffect
Definition: BSGeometry.h:44
@ kTotal
Definition: BSGeometry.h:45