UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NaniteAssemblyDataBuilder.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6
7#if WITH_EDITOR
8
10#include "Engine/StaticMesh.h"
11#include "Engine/SkeletalMesh.h"
12
15{
16public:
17 struct FMaterialSlot
18 {
22
23 FMaterialSlot() = default;
26 {
27 }
28
31 {
32 }
33 };
34
36
38 ENGINE_API void Reset();
39
40 const FNaniteAssemblyData& GetData() const { return AssemblyData; }
41
46 {
47 bool bNewPart;
49 }
50
51 ENGINE_API int32 AddNode(
52 int32 PartIndex,
56 );
57
58 int32 AddMaterialSlotGroup() { return MaterialSlotGroups.AddDefaulted(); }
59 int32 NumMaterialSlotGroups() const { return MaterialSlotGroups.Num(); }
62
64 {
65 return MaterialSlotGroups[NewSlot.MaterialSlotGroup].Add(NewSlot);
66 }
68 {
70 }
72
75
76 void SetMaterialSlot(int32 MaterialSlotIndex, const FMaterialSlot& Slot)
77 {
78 MaterialSlotGroups[Slot.MaterialSlotGroup][MaterialSlotIndex] = Slot;
79 }
80 void SetMaterial(int32 MaterialSlotGroup, int32 MaterialSlotIndex, TObjectPtr<UMaterialInterface> Material)
81 {
83 }
84 void SetMaterial(int32 MaterialSlotIndex, TObjectPtr<UMaterialInterface> Material) { SetMaterial(0, MaterialSlotIndex, Material); }
85
86 ENGINE_API void RemapPartMaterial(int32 PartIndex, int32 LocalMaterialIndex, int32 MaterialIndex);
88
90 UStaticMesh& TargetMesh,
91 const UStaticMesh::FCommitMeshDescriptionParams& CommitParams = UStaticMesh::FCommitMeshDescriptionParams()
92 );
93
95 USkeletalMesh& TargetMesh,
96 const USkeletalMesh::FCommitMeshDescriptionParams& CommitParams = USkeletalMesh::FCommitMeshDescriptionParams()
97 );
98
99private:
101 template <typename TMaterial>
106 );
107
108private:
110
115};
116
117inline FArchive& operator<<(FArchive& Ar, FNaniteAssemblyDataBuilder::FMaterialSlot& Slot)
118{
119 Ar << Slot.MaterialSlotGroup;
120 Ar << Slot.Name;
121 Ar << Slot.Material;
122
123 return Ar;
124}
125
127{
128 Ar << Builder.AssemblyData;
129 Ar << Builder.MaterialSlotGroups;
130 Ar << Builder.PartMaterialSlotGroups;
131 Ar << Builder.BaseMeshMaterialRemap;
132
133 return Ar;
134}
135
136#endif // WITH_EDITOR
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
ENaniteAssemblyNodeTransformSpace
Definition NaniteAssemblyData.h:36
auto GetData(const TStringConversion< Converter, DefaultConversionSize > &Conversion) -> decltype(Conversion.Get())
Definition StringConv.h:802
Definition Archive.h:1208
Definition NameTypes.h:617
Definition ArrayView.h:139
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition SkeletalMesh.h:440
Definition StaticMesh.h:593
FName GetFName(const UObject *Obj)
Definition ObjectFwd.cpp:13
Definition MeshDescription.h:94
Definition NaniteAssemblyData.h:100
Definition SoftObjectPath.h:56
Definition ObjectPtr.h:488
static CORE_API const TTransform< float > Identity
Definition TransformNonVectorized.h:58