Files
Commonwealth-Online-Public/plugin/lib/commonlibf4/include/RE/B/BSGeometry.h
T
2026-05-30 18:33:24 +12:00

52 lines
1.8 KiB
C++

#pragma once
#include "RE/B/BSGraphics.h"
#include "RE/N/NiAVObject.h"
#include "RE/N/NiPointer.h"
namespace RE
{
namespace BSSkin
{
class Instance;
}
class BSCombinedTriShape;
class BSGeometrySegmentData;
class BSMergeInstancedTriShape;
class BSMultiIndexTriShape;
class NiProperty;
class __declspec(novtable) BSGeometry :
public NiAVObject // 000
{
public:
static constexpr auto RTTI{ RTTI::BSGeometry };
static constexpr auto VTABLE{ VTABLE::BSGeometry };
static constexpr auto Ni_RTTI{ Ni_RTTI::BSGeometry };
BSGeometry();
virtual ~BSGeometry(); // NOLINT(modernize-use-override) 00
// add
virtual void UpdatePropertyControllers(NiUpdateData& a_data); // 3A
virtual BSGeometrySegmentData* GetSegmentData(); // 3B
virtual void SetSegmentData(BSGeometrySegmentData* a_data); // 3C
virtual BSGraphics::IndexBuffer* GetCustomIndexBuffer(); // 3D
virtual BSCombinedTriShape* IsBSCombinedTriShape(); // 3E
virtual BSMergeInstancedTriShape* IsBSMergeInstancedTriShape(); // 3F
virtual BSMultiIndexTriShape* IsMultiIndexTriShape(); // 40
virtual std::uint32_t GetRenderableTris(std::uint32_t a_LODMode); // 40
// members
NiBound modelBound; // 120
NiPointer<NiProperty> properties[2]; // 130
NiPointer<BSSkin::Instance> skinInstance; // 140
void* rendererData; // 148
BSGraphics::VertexDesc vertexDesc; // 150
std::uint8_t type; // 158
bool registered; // 159
};
static_assert(sizeof(BSGeometry) == 0x160);
}