Integrating latest 47acbe8

This commit is contained in:
alexpete
2021-03-25 13:57:57 -07:00
parent 448c549698
commit 75dc720198
10312 changed files with 2711566 additions and 671451 deletions
@@ -28,6 +28,10 @@
#include <SceneAPI/SceneCore/Events/ExportEventContext.h>
#include <SceneAPI/SceneCore/Events/ExportProductList.h>
#include <SceneAPI/SceneCore/Utilities/FileUtilities.h>
#include <SceneAPI/SceneData/Rules/CoordinateSystemRule.h>
#include <SceneAPI/SceneCore/Containers/Scene.h>
#include <cinttypes>
#include <Atom/RPI.Reflect/Material/MaterialAsset.h>
@@ -110,15 +114,24 @@ namespace AZ
AZ_Warning(s_exporterName, false, "Multiple mesh groups with duplicate name: \"%s\". Skipping export...", meshGroupName.c_str());
continue;
}
else
{
groupNames.insert(meshGroupName);
}
groupNames.insert(meshGroupName);
AZ_TraceContext("Mesh group", meshGroupName.c_str());
// Get the coordinate system conversion rule.
AZ::SceneAPI::CoordinateSystemConverter coordSysConverter;
AZStd::shared_ptr<AZ::SceneAPI::SceneData::CoordinateSystemRule> coordinateSystemRule = meshGroup.GetRuleContainerConst().FindFirstByType<AZ::SceneAPI::SceneData::CoordinateSystemRule>();
if (coordinateSystemRule)
{
coordinateSystemRule->UpdateCoordinateSystemConverter();
coordSysConverter = coordinateSystemRule->GetCoordinateSystemConverter();
}
Data::Asset<ModelAsset> modelAsset;
ModelAssetBuilderContext modelContext(exportEventContext.GetScene(), meshGroup, materialsByUid, modelAsset);
Data::Asset<SkinMetaAsset> skinMetaAsset;
Data::Asset<MorphTargetMetaAsset> morphTargetMetaAsset;
ModelAssetBuilderContext modelContext(exportEventContext.GetScene(), meshGroup, coordSysConverter, materialsByUid, modelAsset, skinMetaAsset, morphTargetMetaAsset);
combinerResult = SceneAPI::Events::Process<ModelAssetBuilderContext>(modelContext);
if (combinerResult.GetResult() != SceneAPI::Events::ProcessingResult::Success)
{
@@ -221,6 +234,40 @@ namespace AZ
{
return SceneAPI::Events::ProcessingResult::Failure;
}
// Export skin meta data
if (skinMetaAsset.IsReady())
{
AssetExportContext skinMetaExportContext =
{
/*relativeFilename=*/meshGroupName,
SkinMetaAsset::Extension,
sourceSceneUuid,
DataStream::ST_JSON
};
if (!ExportAsset(skinMetaAsset, skinMetaExportContext, exportEventContext, "SkinMeta"))
{
return SceneAPI::Events::ProcessingResult::Failure;
}
}
// Export morph target meta data
if (morphTargetMetaAsset.IsReady())
{
AssetExportContext morphTargetMetaExportContext =
{
/*relativeFilename=*/meshGroupName,
MorphTargetMetaAsset::Extension,
sourceSceneUuid,
DataStream::ST_JSON
};
if (!ExportAsset(morphTargetMetaAsset, morphTargetMetaExportContext, exportEventContext, "MorphTargetMeta"))
{
return SceneAPI::Events::ProcessingResult::Failure;
}
}
} //foreach meshGroup
return SceneAPI::Events::ProcessingResult::Success;