CommonLibSSE NG
Loading...
Searching...
No Matches
hkpCompressedMeshShape.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/H/hkAabb.h"
4#include "RE/H/hkArray.h"
6#include "RE/H/hkVector4.h"
9
10namespace RE
11{
12 class hkpMeshMaterial;
13 class hkpNamedMeshMaterial;
14
16 {
17 public:
18 inline static constexpr auto RTTI = RTTI_hkpCompressedMeshShape;
19 inline static constexpr auto VTABLE = VTABLE_hkpCompressedMeshShape;
20
21 enum class MaterialType
22 {
28 };
29
30 class Chunk
31 {
32 public:
33 //members
39 std::uint32_t materialInfo; // 50
40 std::uint16_t reference; // 54
41 std::uint16_t transformIndex; // 56
42 std::uint64_t pad58; // 58
43 };
44 static_assert(sizeof(Chunk) == 0x60);
45
47 {
48 public:
49 //members
50 std::uint16_t a; // 00
51 std::uint16_t b; // 02
52 std::uint16_t c; // 04
53 std::uint16_t pad06; // 06
54 std::uint32_t material; // 08
55 std::uint16_t weldingInfo; // 0C
56 std::uint16_t transformIndex; // 0E
57 };
58 static_assert(sizeof(BigTriangle) == 0x10);
59
61 {
62 public:
63 //members
68 std::uint16_t reference; // 40
69 std::uint16_t transformIndex; // 42
70 std::uint8_t pad44[12]; // 44
71 };
72 static_assert(sizeof(ConvexPiece) == 0x50);
73
74 ~hkpCompressedMeshShape() override; // 00
75
76 // override (hkpShapeCollection)
77 void CalcContentStatistics(hkStatisticsCollector* a_collector, const hkClass* a_class) const override; // 02
78 std::int32_t CalcSizeForSpu(const CalcSizeForSpuInput& a_input, std::int32_t a_spuBufferSizeLeft) const override; // 06
79 void GetAabbImpl(const hkTransform& a_localToWorld, float a_tolerance, hkAabb& a_out) const override; // 07
80 void InitWeldingInfo(hkpWeldingUtility::WeldingType a_weldingType) override; // 0B
81 void SetWeldingInfo(hkpShapeKey a_key, std::int16_t a_weldingInfo) override; // 0C
82
83 // members
84 std::int32_t bitsPerIndex; // 030
85 std::int32_t bitsPerWIndex; // 034
86 std::int32_t wIndexMask; // 03C
87 std::int32_t indexMask; // 038
88 float radius; // 040
91 std::uint16_t pad46; // 046
100 float error; // 0C8
101 std::uint32_t padCC; // 0CC
103 std::uint32_t defaultCollisionFilterInfo; // 0F0
104 std::uint32_t padF4; // 0F4
106 std::uint16_t materialStriding; // 100
107 std::uint16_t numMaterials; // 102
108 std::uint32_t pad104; // 104
110 std::uint64_t pad118; // 118
111 };
112 static_assert(sizeof(hkpCompressedMeshShape) == 0x120);
113}
Definition hkAabb.h:8
Definition hkArray.h:189
Definition hkTransform.h:9
Definition hkVector4.h:9
Definition hkpCompressedMeshShape.h:47
std::uint32_t material
Definition hkpCompressedMeshShape.h:54
std::uint16_t pad06
Definition hkpCompressedMeshShape.h:53
std::uint16_t a
Definition hkpCompressedMeshShape.h:50
std::uint16_t c
Definition hkpCompressedMeshShape.h:52
std::uint16_t weldingInfo
Definition hkpCompressedMeshShape.h:55
std::uint16_t b
Definition hkpCompressedMeshShape.h:51
std::uint16_t transformIndex
Definition hkpCompressedMeshShape.h:56
Definition hkpCompressedMeshShape.h:31
std::uint32_t materialInfo
Definition hkpCompressedMeshShape.h:39
std::uint16_t transformIndex
Definition hkpCompressedMeshShape.h:41
hkArray< std::uint16_t > indices
Definition hkpCompressedMeshShape.h:36
std::uint64_t pad58
Definition hkpCompressedMeshShape.h:42
hkVector4 offset
Definition hkpCompressedMeshShape.h:34
hkArray< std::uint16_t > weldingInfo
Definition hkpCompressedMeshShape.h:38
hkArray< std::uint16_t > stripLengths
Definition hkpCompressedMeshShape.h:37
std::uint16_t reference
Definition hkpCompressedMeshShape.h:40
hkArray< std::uint16_t > vertices
Definition hkpCompressedMeshShape.h:35
Definition hkpCompressedMeshShape.h:61
hkArray< std::uint16_t > faceVertices
Definition hkpCompressedMeshShape.h:66
std::uint16_t transformIndex
Definition hkpCompressedMeshShape.h:69
std::uint16_t reference
Definition hkpCompressedMeshShape.h:68
std::uint8_t pad44[12]
Definition hkpCompressedMeshShape.h:70
hkVector4 offset
Definition hkpCompressedMeshShape.h:64
hkArray< std::uint16_t > faceOffsets
Definition hkpCompressedMeshShape.h:67
hkArray< std::uint16_t > vertices
Definition hkpCompressedMeshShape.h:65
Definition hkpCompressedMeshShape.h:16
void GetAabbImpl(const hkTransform &a_localToWorld, float a_tolerance, hkAabb &a_out) const override
std::uint16_t materialStriding
Definition hkpCompressedMeshShape.h:106
std::int32_t indexMask
Definition hkpCompressedMeshShape.h:87
hkArray< std::uint32_t > materials
Definition hkpCompressedMeshShape.h:92
std::uint32_t padCC
Definition hkpCompressedMeshShape.h:101
std::uint64_t pad118
Definition hkpCompressedMeshShape.h:110
~hkpCompressedMeshShape() override
std::int32_t wIndexMask
Definition hkpCompressedMeshShape.h:86
std::int32_t CalcSizeForSpu(const CalcSizeForSpuInput &a_input, std::int32_t a_spuBufferSizeLeft) const override
std::uint32_t defaultCollisionFilterInfo
Definition hkpCompressedMeshShape.h:103
std::uint32_t padF4
Definition hkpCompressedMeshShape.h:104
stl::enumeration< hkpWeldingUtility::WeldingType, std::uint8_t > weldingType
Definition hkpCompressedMeshShape.h:89
hkAabb bounds
Definition hkpCompressedMeshShape.h:102
float radius
Definition hkpCompressedMeshShape.h:88
void CalcContentStatistics(hkStatisticsCollector *a_collector, const hkClass *a_class) const override
std::int32_t bitsPerIndex
Definition hkpCompressedMeshShape.h:84
MaterialType
Definition hkpCompressedMeshShape.h:22
std::int32_t bitsPerWIndex
Definition hkpCompressedMeshShape.h:85
hkArray< BigTriangle > bigTriangles
Definition hkpCompressedMeshShape.h:97
std::uint16_t pad46
Definition hkpCompressedMeshShape.h:91
float error
Definition hkpCompressedMeshShape.h:100
static constexpr auto VTABLE
Definition hkpCompressedMeshShape.h:19
hkArray< std::uint16_t > materials16
Definition hkpCompressedMeshShape.h:93
hkArray< hkVector4 > bigVertices
Definition hkpCompressedMeshShape.h:96
hkArray< Chunk > chunks
Definition hkpCompressedMeshShape.h:98
hkArray< hkpNamedMeshMaterial > namedMaterials
Definition hkpCompressedMeshShape.h:109
hkArray< hkQsTransform > transforms
Definition hkpCompressedMeshShape.h:95
static constexpr auto RTTI
Definition hkpCompressedMeshShape.h:18
hkpMeshMaterial * meshMaterials
Definition hkpCompressedMeshShape.h:105
stl::enumeration< MaterialType, std::uint8_t > materialType
Definition hkpCompressedMeshShape.h:90
void SetWeldingInfo(hkpShapeKey a_key, std::int16_t a_weldingInfo) override
std::uint16_t numMaterials
Definition hkpCompressedMeshShape.h:107
hkArray< std::uint8_t > materials8
Definition hkpCompressedMeshShape.h:94
void InitWeldingInfo(hkpWeldingUtility::WeldingType a_weldingType) override
hkArray< ConvexPiece > convexPieces
Definition hkpCompressedMeshShape.h:99
std::uint32_t pad104
Definition hkpCompressedMeshShape.h:108
Definition hkpMeshMaterial.h:6
Definition hkpShapeCollection.h:12
WeldingType
Definition hkpWeldingUtility.h:14
Definition PCH.h:223
Definition AbsorbEffect.h:6
constexpr std::array< REL::VariantID, 2 > VTABLE_hkpCompressedMeshShape
Definition Offsets_VTABLE.h:6025
constexpr REL::VariantID RTTI_hkpCompressedMeshShape(690843, 398698, 0x1f67ff0)
std::uint32_t hkpShapeKey
Definition hkpContactPointEvent.h:12
Definition hkpShape.h:51