CommonLibSSE (powerof3)
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"
5 #include "RE/H/hkQsTransform.h"
6 #include "RE/H/hkVector4.h"
9 
10 namespace 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
102  hkAabb bounds; // 0D0
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: 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
REX::EnumSet< MaterialType, std::uint8_t > materialType
Definition: hkpCompressedMeshShape.h:90
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
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
REX::EnumSet< hkpWeldingUtility::WeldingType, std::uint8_t > weldingType
Definition: hkpCompressedMeshShape.h:89
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
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: AbsorbEffect.h:6
constexpr REL::ID RTTI_hkpCompressedMeshShape(static_cast< std::uint64_t >(690843))
constexpr std::array< REL::ID, 2 > VTABLE_hkpCompressedMeshShape
Definition: Offsets_VTABLE.h:14190
std::uint32_t hkpShapeKey
Definition: hkpContactPointEvent.h:12
Definition: hkpShape.h:51