LeviLamina
Loading...
Searching...
No Matches
SkinnedMeshGroup.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/renderer/controller/RenderController.h"
7
8// auto generated forward declare list
9// clang-format off
12class ExpressionNode;
14class Matrix;
15class ModelPart;
16class RenderParams;
17class ScreenContext;
18class SkinnedMesh;
19struct MERSUniformData;
20namespace dragon { struct RenderMetadata; }
21// clang-format on
22
23class SkinnedMeshGroup {
24public:
25 // member variables
26 // NOLINTBEGIN
27 ::ll::TypedStorage<8, 64, ::std::unordered_map<::RenderController const*, ::ExpressionNode>> mMaterialExpressionMap;
28 ::ll::TypedStorage<1, 1, bool> mShouldDrawThisFrame;
29 ::ll::TypedStorage<1, 1, bool> mIsUniqueGroup;
30 ::ll::TypedStorage<4, 4, int> mSkinnedMeshGroupIdentifier;
31 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::SkinnedMesh>>> mSkinnedMeshes;
32 // NOLINTEND
33
34public:
35 // prevent constructor by default
36 SkinnedMeshGroup();
37
38public:
39 // member functions
40 // NOLINTBEGIN
41 MCAPI SkinnedMeshGroup(
42 ::ModelPart& modelPart,
43 int skinnedMeshGroupIdentifier,
44 bool isUniqueGroup,
45 uint64 skinnedMeshGroupIndex
46 );
47
48 MCAPI bool canRegisterPart(::ModelPart const& modelPart, int skinnedMeshGroupIdentifier) const;
49
50 MCAPI void
51 constructMesh(::BaseActorRenderContext& baseActorRenderContext, ::MaterialVariants const& defaultMaterialVariants);
52
53 MCAPI void copyBoneMatrixToSkinnedMesh(
54 int meshIndex,
55 int partIndex,
56 bool isVisible,
57 ::Matrix const& matrix,
58 int vertexCount,
59 ::std::optional<::glm::mat4x4> previousMatrix
60 );
61
62 MCAPI void dataDrivenDraw(
63 ::RenderParams& renderParams,
64 ::dragon::RenderMetadata const& renderMetadata,
65 ::gsl::not_null<::RenderController const*> renderController,
66 ::ClientPBRTextureData const& textureData,
67 ::std::optional<::MERSUniformData> const& mersUniforms
68 );
69
70 MCAPI void draw(
71 ::ScreenContext& screenContext,
72 ::dragon::RenderMetadata const& renderMetadata,
73 ::MaterialVariants const& modelMaterialVariants,
74 ::ClientPBRTextureData const& textureData,
75 ::std::optional<::MERSUniformData> const& mersUniforms
76 );
77
78 MCAPI bool
79 isMaterialExpressionMapEqual(::std::unordered_map<::RenderController const*, ::ExpressionNode> const& rhs) const;
80
81 MCAPI void registerPart(::ModelPart& part, int groupIndex);
82 // NOLINTEND
83
84public:
85 // constructor thunks
86 // NOLINTBEGIN
87 MCAPI void*
88 $ctor(::ModelPart& modelPart, int skinnedMeshGroupIdentifier, bool isUniqueGroup, uint64 skinnedMeshGroupIndex);
89 // NOLINTEND
90};
Definition BaseActorRenderContext.h:5
Definition ClientPBRTextureData.h:5
Definition ExpressionNode.h:35
Definition MaterialVariants.h:8
Definition Matrix.h:10
Definition ModelPart.h:5
Definition RenderParams.h:29
Definition ScreenContext.h:5
Definition SkinnedMeshGroup.h:5
Definition SkinnedMesh.h:5
Definition MERSUniformData.h:5
Definition RenderMetadata.h:7