LeviLamina
Loading...
Searching...
No Matches
ParticleRenderData.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/BrightnessPair.h"
7#include "mc/deps/core/math/Color.h"
8#include "mc/deps/core/math/Matrix.h"
9#include "mc/deps/core/math/Vec2.h"
10#include "mc/deps/core/math/Vec3.h"
11#include "mc/deps/core/math/Vec4.h"
12
13// auto generated forward declare list
14// clang-format off
15class HashedString;
16struct MERSUniformData;
17struct PBRTexturePtrs;
18namespace mce { class MaterialPtr; }
19// clang-format on
20
22public:
23 // ParticleRenderData inner types declare
24 // clang-format off
25 struct ParticleData;
26 // clang-format on
27
28 // ParticleRenderData inner types define
29 enum class FaceCameraMode : int {
30 None = 0,
31 RotateXYZ = 1,
32 RotateY = 2,
33 LookatXYZ = 3,
34 LookatY = 4,
35 LookatDirection = 5,
36 DirectionX = 6,
37 DirectionY = 7,
38 DirectionZ = 8,
39 EmitterTransformXY = 9,
40 EmitterTransformXZ = 10,
41 EmitterTransformYZ = 11,
42 };
43
44 struct ParticleData {
45 public:
46 // member variables
47 // NOLINTBEGIN
48 ::ll::TypedStorage<4, 16, ::mce::Color> mColor;
49 ::ll::TypedStorage<1, 2, ::BrightnessPair> mAmbientLighting;
50 ::ll::TypedStorage<4, 8, ::Vec2> mUV0;
51 ::ll::TypedStorage<4, 8, ::Vec2> mUV1;
52 ::ll::TypedStorage<4, 12, ::Vec3> mWorldPos;
53 ::ll::TypedStorage<4, 12, ::Vec3> mParticleDirection;
54 ::ll::TypedStorage<4, 8, ::Vec2> mSize;
55 ::ll::TypedStorage<4, 16, ::Vec4> mRandomNumbers;
56 ::ll::TypedStorage<4, 4, float> mRotation;
57 ::ll::TypedStorage<2, 2, ushort> mTextureIdx;
58 ::ll::TypedStorage<2, 2, ushort> mMaterialIdx;
59 ::ll::TypedStorage<4, 4, ::ParticleRenderData::FaceCameraMode> mFaceCameraMode;
60 ::ll::TypedStorage<4, 64, ::Matrix> mCustomOrientation;
61 ::ll::TypedStorage<4, 4, uint> mParticleType;
62 // NOLINTEND
63 };
64
65public:
66 // member variables
67 // NOLINTBEGIN
68 ::ll::TypedStorage<8, 24, ::std::vector<::ParticleRenderData::ParticleData>> mParticles;
69 ::ll::TypedStorage<8, 24, ::std::vector<::std::optional<::MERSUniformData>>> mMERSUniforms;
70 ::ll::TypedStorage<8, 24, ::std::vector<::PBRTexturePtrs>> mTexturesList;
71 ::ll::TypedStorage<8, 24, ::std::vector<::mce::MaterialPtr>> mMaterialsList;
72 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ushort>> mTexturesMap;
73 ::ll::TypedStorage<8, 64, ::std::unordered_map<::HashedString, ushort>> mMaterialsMap;
74 // NOLINTEND
75
76public:
77 // member functions
78 // NOLINTBEGIN
79 MCAPI ushort addTexture(::PBRTexturePtrs const& texturePtr, ::std::optional<::MERSUniformData> const& mersUniform);
80
81 MCAPI ~ParticleRenderData();
82 // NOLINTEND
83
84public:
85 // destructor thunk
86 // NOLINTBEGIN
87 MCAPI void $dtor();
88 // NOLINTEND
89};
Definition HashedString.h:5
Definition ParticleRenderData.h:5
Definition MaterialPtr.h:15
Definition MERSUniformData.h:5
Definition PBRTexturePtrs.h:5
Definition ParticleRenderData.h:15