Skip to content

Commit

Permalink
fixed warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
rdeioris committed Aug 27, 2021
1 parent 1c06499 commit 3e363b4
Show file tree
Hide file tree
Showing 4 changed files with 45 additions and 15 deletions.
14 changes: 10 additions & 4 deletions Source/glTFRuntime/Private/glTFRuntimeParser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1288,25 +1288,31 @@ USkeleton* FglTFRuntimeParser::LoadSkeleton(const int32 SkinIndex, const FglTFRu
USkeletalMesh* SkeletalMesh = NewObject<USkeletalMesh>(GetTransientPackage(), NAME_None, RF_Public);
USkeleton* Skeleton = NewObject<USkeleton>(GetTransientPackage(), NAME_None, RF_Public);

if (!FillReferenceSkeleton(JsonSkinObject.ToSharedRef(), SkeletalMesh->RefSkeleton, BoneMap, SkeletonConfig))
#if ENGINE_MAJOR_VERSION > 4 || ENGINE_MINOR_VERSION > 26
FReferenceSkeleton& RefSkeleton = SkeletalMesh->GetRefSkeleton();
#else
FReferenceSkeleton& RefSkeleton = SkeletalMesh->RefSkeleton;
#endif

if (!FillReferenceSkeleton(JsonSkinObject.ToSharedRef(), RefSkeleton, BoneMap, SkeletonConfig))
{
AddError("FillReferenceSkeleton()", "Unable to fill RefSkeleton.");
return nullptr;
}

if (SkeletonConfig.bNormalizeSkeletonScale)
{
NormalizeSkeletonScale(SkeletalMesh->RefSkeleton);
NormalizeSkeletonScale(RefSkeleton);
}

if (SkeletonConfig.bClearRotations || SkeletonConfig.CopyRotationsFrom)
{
ClearSkeletonRotations(SkeletalMesh->RefSkeleton);
ClearSkeletonRotations(RefSkeleton);
}

if (SkeletonConfig.CopyRotationsFrom)
{
CopySkeletonRotationsFrom(SkeletalMesh->RefSkeleton, SkeletonConfig.CopyRotationsFrom->GetReferenceSkeleton());
CopySkeletonRotationsFrom(RefSkeleton, SkeletonConfig.CopyRotationsFrom->GetReferenceSkeleton());
}

Skeleton->MergeAllBonesToBoneTree(SkeletalMesh);
Expand Down
2 changes: 1 addition & 1 deletion Source/glTFRuntime/Private/glTFRuntimeParserAudio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ bool FglTFRuntimeParser::LoadAudioEmitter(const int32 EmitterIndex, FglTFRuntime
const TArray<TSharedPtr<FJsonValue>>* JsonClips;
if (JsonEmitterObject->TryGetArrayField("clips", JsonClips))
{
for (const TSharedPtr<FJsonValue> JsonClipItem : *JsonClips)
for (const TSharedPtr<FJsonValue>& JsonClipItem : *JsonClips)
{
const TSharedPtr<FJsonObject>* JsonClipObject;
if (JsonClipItem->TryGetObject(JsonClipObject))
Expand Down
36 changes: 26 additions & 10 deletions Source/glTFRuntime/Private/glTFRuntimeParserSkeletalMeshes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,12 @@ USkeletalMesh* FglTFRuntimeParser::CreateSkeletalMeshFromLODs(TSharedRef<FglTFRu
SkeletalMeshContext->SkinIndex = SkeletalMeshContext->SkeletalMeshConfig.OverrideSkinIndex;
}

#if ENGINE_MAJOR_VERSION > 4 || ENGINE_MINOR_VERSION > 26
FReferenceSkeleton& RefSkeleton = SkeletalMeshContext->SkeletalMesh->GetRefSkeleton();
#else
FReferenceSkeleton& RefSkeleton = SkeletalMeshContext->SkeletalMesh->RefSkeleton;
#endif

TMap<int32, FName> MainBoneMap;
if (!SkeletalMeshContext->SkeletalMeshConfig.bIgnoreSkin && SkeletalMeshContext->SkinIndex > INDEX_NONE)
{
Expand All @@ -175,15 +181,15 @@ USkeletalMesh* FglTFRuntimeParser::CreateSkeletalMeshFromLODs(TSharedRef<FglTFRu
return nullptr;
}

if (!FillReferenceSkeleton(JsonSkinObject.ToSharedRef(), SkeletalMeshContext->SkeletalMesh->RefSkeleton, MainBoneMap, SkeletalMeshContext->SkeletalMeshConfig.SkeletonConfig))
if (!FillReferenceSkeleton(JsonSkinObject.ToSharedRef(), RefSkeleton, MainBoneMap, SkeletalMeshContext->SkeletalMeshConfig.SkeletonConfig))
{
AddError("CreateSkeletalMeshFromLODs()", "Unable to fill RefSkeleton.");
return nullptr;
}
}
else
{
if (!FillFakeSkeleton(SkeletalMeshContext->SkeletalMesh->RefSkeleton, MainBoneMap, SkeletalMeshContext->SkeletalMeshConfig))
if (!FillFakeSkeleton(RefSkeleton, MainBoneMap, SkeletalMeshContext->SkeletalMeshConfig))
{
AddError("CreateSkeletalMeshFromLODs()", "Unable to fill fake RefSkeleton.");
return nullptr;
Expand All @@ -192,22 +198,26 @@ USkeletalMesh* FglTFRuntimeParser::CreateSkeletalMeshFromLODs(TSharedRef<FglTFRu

if (SkeletalMeshContext->SkeletalMeshConfig.SkeletonConfig.bNormalizeSkeletonScale)
{
NormalizeSkeletonScale(SkeletalMeshContext->SkeletalMesh->RefSkeleton);
NormalizeSkeletonScale(RefSkeleton);
}

if (SkeletalMeshContext->SkeletalMeshConfig.SkeletonConfig.bClearRotations || SkeletalMeshContext->SkeletalMeshConfig.SkeletonConfig.CopyRotationsFrom)
{
ClearSkeletonRotations(SkeletalMeshContext->SkeletalMesh->RefSkeleton);
ClearSkeletonRotations(RefSkeleton);
}

if (SkeletalMeshContext->SkeletalMeshConfig.SkeletonConfig.CopyRotationsFrom)
{
CopySkeletonRotationsFrom(SkeletalMeshContext->SkeletalMesh->RefSkeleton, SkeletalMeshContext->SkeletalMeshConfig.SkeletonConfig.CopyRotationsFrom->GetReferenceSkeleton());
CopySkeletonRotationsFrom(RefSkeleton, SkeletalMeshContext->SkeletalMeshConfig.SkeletonConfig.CopyRotationsFrom->GetReferenceSkeleton());
}

if (SkeletalMeshContext->SkeletalMeshConfig.Skeleton && SkeletalMeshContext->SkeletalMeshConfig.bOverwriteRefSkeleton)
{
#if ENGINE_MAJOR_VERSION > 4 || ENGINE_MINOR_VERSION > 26
SkeletalMeshContext->SkeletalMesh->SetRefSkeleton(SkeletalMeshContext->SkeletalMeshConfig.Skeleton->GetReferenceSkeleton());
#else
SkeletalMeshContext->SkeletalMesh->RefSkeleton = SkeletalMeshContext->SkeletalMeshConfig.Skeleton->GetReferenceSkeleton();
#endif
}

TMap<int32, int32> MainBonesCache;
Expand Down Expand Up @@ -436,7 +446,7 @@ USkeletalMesh* FglTFRuntimeParser::CreateSkeletalMeshFromLODs(TSharedRef<FglTFRu
LodRenderData->StaticVertexBuffers.PositionVertexBuffer.Init(NumIndices);
LodRenderData->StaticVertexBuffers.StaticMeshVertexBuffer.Init(NumIndices, 1);

int32 NumBones = SkeletalMeshContext->SkeletalMesh->RefSkeleton.GetNum();
int32 NumBones = RefSkeleton.GetNum();

for (int32 BoneIndex = 0; BoneIndex < NumBones; BoneIndex++)
{
Expand Down Expand Up @@ -528,7 +538,7 @@ USkeletalMesh* FglTFRuntimeParser::CreateSkeletalMeshFromLODs(TSharedRef<FglTFRu
}
else
{
BoneIndex = SkeletalMeshContext->SkeletalMesh->RefSkeleton.FindBoneIndex(BoneMapInUse[Joints[j]]);
BoneIndex = RefSkeleton.FindBoneIndex(BoneMapInUse[Joints[j]]);
BonesCacheInUse.Add(Joints[j], BoneIndex);
}

Expand Down Expand Up @@ -723,9 +733,15 @@ USkeletalMesh* FglTFRuntimeParser::FinalizeSkeletalMeshWithLODs(TSharedRef<FglTF
for (int32 MatIndex = 0; MatIndex < SkeletalMeshContext->LODs[LODIndex].Primitives.Num(); MatIndex++)
{
LODInfo.LODMaterialMap.Add(MatIndex);
int32 NewMatIndex = SkeletalMeshContext->SkeletalMesh->Materials.Add(SkeletalMeshContext->LODs[LODIndex].Primitives[MatIndex].Material);
SkeletalMeshContext->SkeletalMesh->Materials[NewMatIndex].UVChannelData.bInitialized = true;
SkeletalMeshContext->SkeletalMesh->Materials[NewMatIndex].MaterialSlotName = FName(FString::Printf(TEXT("LOD_%d_Section_%d_%s"), LODIndex, MatIndex, *(SkeletalMeshContext->LODs[LODIndex].Primitives[MatIndex].MaterialName)));

#if ENGINE_MAJOR_VERSION > 4 || ENGINE_MINOR_VERSION >= 27
TArray<FSkeletalMaterial>& SkeletalMaterials = SkeletalMeshContext->SkeletalMesh->GetMaterials();
#else
TArray<FSkeletalMaterial>& SkeletalMaterials = SkeletalMeshContext->SkeletalMesh->Materials;
#endif
int32 NewMatIndex = SkeletalMaterials.Add(SkeletalMeshContext->LODs[LODIndex].Primitives[MatIndex].Material);
SkeletalMaterials[NewMatIndex].UVChannelData.bInitialized = true;
SkeletalMaterials[NewMatIndex].MaterialSlotName = FName(FString::Printf(TEXT("LOD_%d_Section_%d_%s"), LODIndex, MatIndex, *(SkeletalMeshContext->LODs[LODIndex].Primitives[MatIndex].MaterialName)));
}
#if WITH_EDITOR
IMeshBuilderModule& MeshBuilderModule = IMeshBuilderModule::GetForRunningPlatform();
Expand Down
8 changes: 8 additions & 0 deletions Source/glTFRuntime/Public/glTFRuntimeParser.h
Original file line number Diff line number Diff line change
Expand Up @@ -479,6 +479,8 @@ struct FglTFRuntimeCapsule
{
Radius = 0;
Length = 0;
Center = FVector::ZeroVector;
Rotation = FRotator::ZeroRotator;
}
};

Expand Down Expand Up @@ -898,6 +900,12 @@ struct FglTFRuntimeAudioEmitter

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "glTFRuntime")
USoundWave* Sound;

FglTFRuntimeAudioEmitter()
{
Sound = nullptr;
Volume = 1.0f;
}
};

DECLARE_DYNAMIC_DELEGATE_OneParam(FglTFRuntimeSkeletalMeshAsync, USkeletalMesh*, SkeletalMesh);
Expand Down

0 comments on commit 3e363b4

Please sign in to comment.