CommonLibVR
NiParticlesData.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiBound.h"
4 #include "RE/N/NiObject.h"
5 
6 namespace RE
7 {
8  class NiParticlesData : public NiObject
9  {
10  public:
11  inline static constexpr auto RTTI = RTTI_NiParticlesData;
12  inline static constexpr auto Ni_RTTI = NiRTTI_NiParticlesData;
13  inline static constexpr auto VTABLE = VTABLE_NiParticlesData;
14 
15  ~NiParticlesData() override; // 00
16 
17  // override (NiObject)
18  const NiRTTI* GetRTTI() const override; // 02
19  void LoadBinary(NiStream& a_stream) override; // 18
20  void LinkObject(NiStream& a_stream) override; // 19
21  bool RegisterStreamables(NiStream& a_stream) override; // 1A
22  void SaveBinary(NiStream& a_stream) override; // 1B
23  bool IsEqual(NiObject* a_object) override; // 1C - { return false; }
24 
25  // add
26  virtual void SetActiveVertexCount(std::uint16_t a_vertexCount); // 25
27  virtual std::uint16_t GetActiveVertexCount(); // 26
28  virtual void RemoveParticle(std::uint16_t a_particleCount); // 28
29  virtual void CalculateNormals(); // 29 - { return; }
30 
31  // members
32  bool hasRotations; // 10
33  std::uint8_t unk11; // 11
34  std::uint16_t maxNumVertices; // 12
35  NiBound bound; // 14
36  std::uint32_t pad24; // 24
39  NiColorA* color; // 38
40  float* radii; // 40
41  float* sizes; // 48
42  float* rotationAngles; // 50
45  std::uint32_t subTextureOffsetsCount; // 68 - max 256
46  float aspectRatio; // 6C
47  float speedToAspectAspect2; // 70
48  float speedToAspectAspect1; // 74
49  float speedToAspectSpeed2; // 78
50  std::uint16_t numVertices; // 7C
51  std::uint16_t pad7E; // 7E
52  std::uint8_t* textureIndices; // 80
53  std::uint8_t unk88; // 88 - aspect flags?
54  std::uint8_t unk89; // 89
55  std::uint16_t pad8A; // 8A
56  std::uint32_t pad8C; // 8C
57  private:
58  KEEP_FOR_RE()
59  };
60  static_assert(sizeof(NiParticlesData) == 0x90);
61 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: NiBound.h:8
Definition: NiColor.h:283
Definition: NiObject.h:37
Definition: NiParticlesData.h:9
std::uint8_t unk88
Definition: NiParticlesData.h:53
std::uint8_t * textureIndices
Definition: NiParticlesData.h:52
float aspectRatio
Definition: NiParticlesData.h:46
float * radii
Definition: NiParticlesData.h:40
float speedToAspectAspect2
Definition: NiParticlesData.h:47
std::uint16_t numVertices
Definition: NiParticlesData.h:50
virtual void RemoveParticle(std::uint16_t a_particleCount)
float speedToAspectAspect1
Definition: NiParticlesData.h:48
NiQuaternion * rotations
Definition: NiParticlesData.h:37
NiPoint3 * rotationAxes
Definition: NiParticlesData.h:43
std::uint8_t unk11
Definition: NiParticlesData.h:33
std::uint32_t pad24
Definition: NiParticlesData.h:36
virtual std::uint16_t GetActiveVertexCount()
virtual void CalculateNormals()
void LoadBinary(NiStream &a_stream) override
NiColorA * subtextureOffsets
Definition: NiParticlesData.h:44
std::uint16_t maxNumVertices
Definition: NiParticlesData.h:34
std::uint32_t subTextureOffsetsCount
Definition: NiParticlesData.h:45
void LinkObject(NiStream &a_stream) override
virtual void SetActiveVertexCount(std::uint16_t a_vertexCount)
float speedToAspectSpeed2
Definition: NiParticlesData.h:49
bool IsEqual(NiObject *a_object) override
static constexpr auto RTTI
Definition: NiParticlesData.h:11
NiPoint3 * positions
Definition: NiParticlesData.h:38
std::uint32_t pad8C
Definition: NiParticlesData.h:56
float * sizes
Definition: NiParticlesData.h:41
~NiParticlesData() override
NiColorA * color
Definition: NiParticlesData.h:39
float * rotationAngles
Definition: NiParticlesData.h:42
static constexpr auto Ni_RTTI
Definition: NiParticlesData.h:12
void SaveBinary(NiStream &a_stream) override
std::uint16_t pad8A
Definition: NiParticlesData.h:55
static constexpr auto VTABLE
Definition: NiParticlesData.h:13
std::uint8_t unk89
Definition: NiParticlesData.h:54
NiBound bound
Definition: NiParticlesData.h:35
bool RegisterStreamables(NiStream &a_stream) override
std::uint16_t pad7E
Definition: NiParticlesData.h:51
const NiRTTI * GetRTTI() const override
bool hasRotations
Definition: NiParticlesData.h:32
Definition: NiPoint3.h:6
Definition: NiQuaternion.h:6
Definition: NiRTTI.h:6
Definition: NiStream.h:29
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_NiParticlesData
Definition: Offsets_VTABLE.h:12301
constexpr REL::ID NiRTTI_NiParticlesData(static_cast< std::uint64_t >(524004))
constexpr REL::ID RTTI_NiParticlesData(static_cast< std::uint64_t >(690461))