MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / CreateSkinnedModel

Method CreateSkinnedModel

Source/Engine/ContentImporters/ImportModel.cpp:668–696  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

666}
667
668CreateAssetResult ImportModel::CreateSkinnedModel(CreateAssetContext& context, const ModelData& modelData, const Options* options)
669{
670 PROFILE_CPU();
671 IMPORT_SETUP(SkinnedModel, SkinnedModel::SerializedVersion);
672 static_assert(SkinnedModel::SerializedVersion == 30, "Update code.");
673
674 // Save skinned model header
675 MemoryWriteStream stream(4096);
676 if (SkinnedModel::SaveHeader(stream, modelData))
677 return CreateAssetResult::Error;
678 if (context.AllocateChunk(0))
679 return CreateAssetResult::CannotAllocateChunk;
680 context.Data.Header.Chunks[0]->Data.Copy(ToSpan(stream));
681
682 // Pack model LODs data
683 const auto lodCount = modelData.LODs.Count();
684 for (int32 lodIndex = 0; lodIndex < lodCount; lodIndex++)
685 {
686 stream.SetPosition(0);
687 if (SkinnedModel::SaveLOD(stream, modelData, lodIndex, SkinnedModel::SaveMesh))
688 return CreateAssetResult::Error;
689 const int32 chunkIndex = MODEL_LOD_TO_CHUNK_INDEX(lodIndex);
690 if (context.AllocateChunk(chunkIndex))
691 return CreateAssetResult::CannotAllocateChunk;
692 context.Data.Header.Chunks[chunkIndex]->Data.Copy(ToSpan(stream));
693 }
694
695 return CreateAssetResult::Ok;
696}
697
698CreateAssetResult ImportModel::CreateAnimation(CreateAssetContext& context, const ModelData& modelData, const Options* options)
699{

Callers

nothing calls this directly

Calls 5

ToSpanFunction · 0.50
AllocateChunkMethod · 0.45
CopyMethod · 0.45
CountMethod · 0.45
SetPositionMethod · 0.45

Tested by

no test coverage detected