UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SkeletalMeshSampling.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6
7#include "SkeletalMeshSampling.generated.h"
8
9class USkeletalMesh;
10
24
26USTRUCT()
28{
30
31
32 TArray<int32> TriangleIndices;
33
35 TArray<int32> Vertices;
36
38 TArray<int32> BoneIndices;
39
42
44
46 {
47 A.Serialize(Ar);
48 return Ar;
49 }
50};
51
57
59USTRUCT()
75
81
82USTRUCT()
93
95USTRUCT()
97{
99
101
102 UPROPERTY(EditAnywhere, Category = "Bone Filter")
103 FName BoneName;
104
106 UPROPERTY(EditAnywhere, Category = "Bone Filter")
107 uint32 bIncludeOrExclude : 1;
108
110 UPROPERTY(EditAnywhere, Category = "Bone Filter")
111 uint32 bApplyToChildren : 1;
112};
113
115USTRUCT()
117{
119
121
122 UPROPERTY(EditAnywhere, Category = "Material Filter")
123 FName MaterialName;
124};
125
127USTRUCT()
129{
131
133
135 UPROPERTY(EditAnywhere, Category = "Region")
137
139 UPROPERTY(EditAnywhere, Category = "Region")
140 int32 LODIndex;
141
146 UPROPERTY(EditAnywhere, Category = "Region")
147 uint32 bSupportUniformlyDistributedSampling : 1;
148
150 UPROPERTY(EditAnywhere, Category = "Region")
152
154 UPROPERTY(EditAnywhere, Category = "Region")
156
158// UPROPERTY()
159// TArray<int32> PaintedTriangles;
160
162// UPROPERTY()
163// TArray<int32> PaintedBones;
164
166 ENGINE_API bool IsMaterialAllowed(FName MaterialName);
167};
168
169USTRUCT()
171{
173
174
175 UPROPERTY(EditAnywhere, Category="Sampling")
177
178#if WITH_EDITORONLY_DATA
182#endif
183
185 ENGINE_API bool IsSamplingEnabled(const USkeletalMesh* OwnerMesh, int32 LODIndex)const;
186
188 {
189 return BuiltData.WholeMeshBuiltData[LODIndex];
190 }
191
193 {
194 return Regions.IndexOfByPredicate([&RegionName](const FSkeletalMeshSamplingRegion& CheckRegion)
195 {
196 return CheckRegion.Name == RegionName;
197 });
198 }
199
201 {
202 return Regions[RegionIdx];
203 }
204
206 {
207 int32 RegionIndex = IndexOfRegion(RegionName);
208 if (RegionIndex != INDEX_NONE)
209 {
210 return &GetRegion(RegionIndex);
211 }
212 return nullptr;
213 }
214
216 {
217 return BuiltData;
218 }
219
221 {
222 return BuiltData.RegionBuiltData[RegionIndex];
223 }
224
226 {
227 int32 RegionIndex = IndexOfRegion(RegionName);
228 if (RegionIndex != INDEX_NONE)
229 {
230 return &GetRegionBuiltData(RegionIndex);
231 }
232 return nullptr;
233 }
234
235private:
236
237 UPROPERTY()
239};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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
void Init()
Definition LockFreeList.h:4
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define USTRUCT(...)
Definition ObjectMacros.h:746
EPropertyObjectReferenceType
Definition ObjectMacros.h:533
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
virtual void Serialize(void *V, int64 Length)
Definition Archive.h:1689
Definition NameTypes.h:617
Definition Array.h:670
Definition SkeletalMesh.h:440
Definition ReferenceSkeleton.h:100
Definition SkeletalMeshSampling.h:13
ENGINE_API FSkeletalMeshAreaWeightedTriangleSampler()
Definition SkeletalMeshSampling.cpp:14
int32 LODIndex
Definition SkeletalMeshSampling.h:22
virtual ENGINE_API float GetWeights(TArray< float > &OutWeights) override
Definition SkeletalMeshSampling.cpp:33
TArray< int32 > * TriangleIndices
Definition SkeletalMeshSampling.h:21
USkeletalMesh * Owner
Definition SkeletalMeshSampling.h:20
Definition SkeletalMeshSampling.h:84
Definition SkeletalMeshSampling.h:171
const FSkeletalMeshSamplingLODBuiltData & GetWholeMeshLODBuiltData(int32 LODIndex) const
Definition SkeletalMeshSampling.h:187
int32 IndexOfRegion(FName RegionName) const
Definition SkeletalMeshSampling.h:192
const FSkeletalMeshSamplingBuiltData & GetBuiltData() const
Definition SkeletalMeshSampling.h:215
const FSkeletalMeshSamplingRegionBuiltData * GetRegionBuiltData(FName RegionName) const
Definition SkeletalMeshSampling.h:225
const FSkeletalMeshSamplingRegion & GetRegion(int32 RegionIdx) const
Definition SkeletalMeshSampling.h:200
const FSkeletalMeshSamplingRegionBuiltData & GetRegionBuiltData(int32 RegionIndex) const
Definition SkeletalMeshSampling.h:220
const FSkeletalMeshSamplingRegion * GetRegion(FName RegionName) const
Definition SkeletalMeshSampling.h:205
Definition SkeletalMeshSampling.h:61
Definition SkeletalMeshSampling.h:97
Definition SkeletalMeshSampling.h:28
Definition SkeletalMeshSampling.h:117
Definition SkeletalMeshSampling.h:129
Definition WeightedRandomSampler.h:30
Definition StructOpsTypeTraits.h:11
@ WithSerializer
Definition StructOpsTypeTraits.h:23
static constexpr EPropertyObjectReferenceType WithSerializerObjectReferences
Definition StructOpsTypeTraits.h:41
Definition StructOpsTypeTraits.h:46