3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/model/Geometry.h"
7#include "mc/client/model/geom/TextureOffset.h"
8#include "mc/client/renderer/controller/RenderController.h"
9#include "mc/deps/core/math/Vec2.h"
10#include "mc/deps/core/math/Vec3.h"
11#include "mc/deps/core/string/HashedString.h"
12#include "mc/platform/brstd/flat_map.h"
13#include "mc/util/molang/ExpressionNode.h"
14#include "mc/world/actor/animation/BoneAnimationRelativeMode.h"
15#include "mc/world/phys/AABB.h"
32namespace mce {
class Color; }
48 ::ll::UntypedStorage<8, 32> mUnk6a7c78;
49 ::ll::UntypedStorage<8, 56> mUnkddeb87;
50 ::ll::UntypedStorage<4, 12> mUnk202e6d;
51 ::ll::UntypedStorage<4, 12> mUnkb2c2b2;
52 ::ll::UntypedStorage<4, 12> mUnka0bfb0;
53 ::ll::UntypedStorage<4, 12> mUnkc2fbc4;
54 ::ll::UntypedStorage<1, 1> mUnka93767;
59 TextureMesh& operator=(TextureMesh
const&);
78 ::ll::TypedStorage<8, 48, ::HashedString> mName;
79 ::ll::TypedStorage<4, 12, ::Vec3> mPos;
80 ::ll::TypedStorage<4, 12, ::Vec3> mOffset;
81 ::ll::TypedStorage<4, 12, ::Vec3> mRot;
82 ::ll::TypedStorage<4, 12, ::Vec3> mScale;
83 ::ll::TypedStorage<4, 12, ::Vec3> mWorldPos;
84 ::ll::TypedStorage<4, 24, ::AABB> mAABB;
85 ::ll::TypedStorage<4, 4, int> mGroupIndex;
86 ::ll::TypedStorage<4, 4, int> mPartIndex;
87 ::ll::TypedStorage<4, 4, int> mMeshIndex;
88 ::ll::TypedStorage<4, 4, int> mBoneOrientationIndex;
89 ::ll::TypedStorage<8, 24, ::std::vector<::ModelPartLocator>> mLocators;
90 ::ll::TypedStorage<8, 16, ::ExpressionNode> mBinding;
91 ::ll::TypedStorage<1, 1, ::BoneAnimationRelativeMode> mRotationRelativeMode;
92 ::ll::TypedStorage<1, 1, bool> mDebug;
93 ::ll::TypedStorage<4, 4, int const> IndexNotSet;
94 ::ll::TypedStorage<1, 1, bool> mMirror;
95 ::ll::TypedStorage<1, 1, bool> mVisible;
96 ::ll::TypedStorage<4, 4, int> mSkinnedMeshGroupIdentifier;
97 ::ll::TypedStorage<8, 24, ::std::vector<::Cube>> mCubes;
98 ::ll::TypedStorage<8, 24, ::std::vector<::ModelPart::TextureMesh>> mTextureMeshes;
99 ::ll::TypedStorage<8, 128, ::Geometry::NodePolyMesh> mPolyMesh;
100 ::ll::TypedStorage<8, 8, ::ModelPart*> mParent;
101 ::ll::TypedStorage<8, 24, ::std::vector<::ModelPart*>> mChildren;
102 ::ll::TypedStorage<4, 8, ::Vec2> mTexSize;
103 ::ll::TypedStorage<8, 16, ::TextureOffset> mTexOffs;
104 ::ll::TypedStorage<1, 1, bool> mNeverRender;
105 ::ll::TypedStorage<4, 12, ::Vec3> mOriginPos;
106 ::ll::TypedStorage<1, 1, bool> mHasColor;
107 ::ll::TypedStorage<1, 1, bool> mMaterialExpressionsNeedColorVertexFormatField;
114 ::std::less<::RenderController const*>,
115 ::std::vector<::RenderController const*>,
116 ::std::vector<::ExpressionNode>>>
118 ::ll::TypedStorage<8, 64, ::std::unordered_map<::RenderController const*, ::ExpressionNode>> mMaterialExpressionMap;
123 ModelPart& operator=(ModelPart
const&);
124 ModelPart(ModelPart
const&);
130 MCAPI ModelPart(::ModelPart&& rhs);
132 MCAPI ModelPart(
int xTexOffs,
int yTexOffs,
int texWidth,
int texHeight);
136 MCAPI
void _adjustUVsInward(
137 ::std::vector<::Vec2>& uvs,
138 ::std::vector<::std::array<::Geometry::NodeVertex, 3>>
const& tris,
139 ::std::vector<::std::array<::Geometry::NodeVertex, 4>>
const& quads,
143 MCAPI
void _copyBoneMatricesToSkinnedMeshes(
145 ::gsl::span<::BoneOrientation const> boneOrientations,
164 MCAPI
void copyBoneMatricesToActor(
166 ::gsl::span<::BoneOrientation const> boneOrientations,
171 MCAPI
void copyBoneMatricesToSkinnedMeshes(
173 ::gsl::span<::BoneOrientation const> boneOrientations,
178 MCAPI
void expandAABB(
::AABB& bb)
const;
180 MCAPI
void expandAABBWithCompiledGeometry(
::AABB& bb)
const;
182 MCAPI
void LL_CC_V generateBoneTransformMatrices(
184 ::gsl::span<::BoneOrientation> boneOrientations,
186 ::DirectX::XMMATRIX boneToEntitySpaceMatrix
189 MCFOLD
bool getNeverRender()
const;
191 MCAPI ::Vec3
const& getOrigin()
const;
193 MCFOLD ::ModelPart* getParent()
const;
195 MCAPI
void getPolyCounts(
int& triVertexCount,
int& quadVertexCount);
197 MCAPI
void getTotalPolyCounts(uint64& triVertexCount, uint64& quadVertexCount)
const;
201 MCAPI
bool load(
::GeometryPtr source, ::std::string_view nodeName, ::ModelPart* parentPart);
204 ::std::shared_ptr<::ActorResourceDefinition> resourceDefinition,
206 ::std::string_view nodeName,
207 ::ModelPart* parentPart
210 MCAPI
void loadBoxes(
213 ::std::vector<::Geometry::Box>
const& boxes,
214 ::Vec3 const& bindPoseRotation
220 MCAPI
void loadTextureMeshes(
221 ::std::shared_ptr<::ActorResourceDefinition> resourceDefinition,
223 ::Vec3 const& sourceTextureMeshes,
224 ::std::vector<::Geometry::NodeTextureMesh>
const&
227 MCAPI
bool loadWithOrientation(
228 ::std::shared_ptr<::ActorResourceDefinition> resourceDefinition,
230 ::std::string_view nodeName,
233 ::ModelPart* parentPart
236 MCAPI
bool loadWithOrientation_(
238 ::std::string_view nodeName,
241 ::ModelPart* parentPart
244 MCAPI
bool needsColourVertexFormatField(
::MaterialVariants const& defaultMaterialVariants)
const;
246 MCAPI uint64 numCubes()
const;
248 MCAPI ::ModelPart& operator=(::ModelPart&& rhs);
254 bool hideParentBodyPart,
259 MCAPI
void renderAtPosition(
264 bool hideParentBodyPart,
273 MCAPI
void setModelPartMaterial(
279 MCAPI
void setOrigin(
::Vec3 const& origin);
281 MCFOLD
void setPos(
::Vec3 const& inPos);
283 MCAPI ::ModelPart& setTexSize(
int xs,
int ys);
287 MCAPI
void setVisible(
bool isVisible);
289 MCAPI
void translateTo(
::Matrix& mv,
float scale);
297 MCAPI
void* $ctor(::ModelPart&& rhs);
299 MCAPI
void* $ctor(
int xTexOffs,
int yTexOffs,
int texWidth,
int texHeight);
Definition ActorResourceDefinition.h:5
Definition BoneOrientation.h:16
Definition DataDrivenGeometry.h:5
Definition ExpressionNode.h:36
Definition GeometryPtr.h:5
Definition MaterialVariants.h:8
Definition MinecraftGameplayGraphicsResources.h:5
Definition ModelPartLocator.h:11
Definition RenderController.h:5
Definition RenderParams.h:30
Definition ScreenContext.h:5
Definition Tessellator.h:5
Definition TextureOffset.h:5
Definition MaterialPtr.h:15
Definition ModelPart.h:13
MCAPI TextureMesh(::ModelPart::TextureMesh const &)
MCAPI void * $ctor(::ModelPart::TextureMesh const &)