FBX -> Scene, part 2. Code changes, file renames (#1704)

* First pass FBX -> Scene File conversion.
This is the simple pass, minimizing code changes and focused on comments.

Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>

* Step 1 of part 2 of the FBX -> Scene rename

Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>

* Renaming FbxSceneBuilder folder to SceneBuilder

Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>

* Renamed files

Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>

* More FBX -> Scene

Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
This commit is contained in:
AMZN-stankowi
2021-07-01 15:46:55 -07:00
committed by GitHub
parent 328a0f09a5
commit 73522e90c9
83 changed files with 475 additions and 559 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
#
#
add_subdirectory(FbxSceneBuilder)
add_subdirectory(SceneBuilder)
add_subdirectory(SceneCore)
add_subdirectory(SceneData)
add_subdirectory(SceneUI)
@@ -1,106 +0,0 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include <AssetProcessor/AssetBuilderSDK/AssetBuilderSDK/AssetBuilderSDK.h>
#include <AzCore/Serialization/EditContextConstants.inl>
#include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/Serialization/Json/JsonSerialization.h>
#include <AzCore/Settings/SettingsRegistry.h>
#include <AzCore/StringFunc/StringFunc.h>
#include <SceneAPI/FbxSceneBuilder/FbxImportRequestHandler.h>
#include <SceneAPI/SceneCore/Containers/Scene.h>
#include <SceneAPI/SceneCore/Events/CallProcessorBus.h>
#include <SceneAPI/SceneCore/Events/ImportEventContext.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneImporter
{
void SceneImporterSettings::Reflect(AZ::ReflectContext* context)
{
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context); serializeContext)
{
serializeContext->Class<SceneImporterSettings>()
->Version(2)
->Field("SupportedFileTypeExtensions", &SceneImporterSettings::m_supportedFileTypeExtensions);
}
}
void FbxImportRequestHandler::Activate()
{
if (auto* settingsRegistry = AZ::SettingsRegistry::Get())
{
settingsRegistry->GetObject(m_settings, "/O3DE/SceneAPI/AssetImporter");
}
BusConnect();
}
void FbxImportRequestHandler::Deactivate()
{
BusDisconnect();
}
void FbxImportRequestHandler::Reflect(ReflectContext* context)
{
SceneImporterSettings::Reflect(context);
SerializeContext* serializeContext = azrtti_cast<SerializeContext*>(context);
if (serializeContext)
{
serializeContext->Class<FbxImportRequestHandler, AZ::Component>()->Version(1)->Attribute(
AZ::Edit::Attributes::SystemComponentTags,
AZStd::vector<AZ::Crc32>(
{AssetBuilderSDK::ComponentTags::AssetBuilder,
AssetImportRequest::GetAssetImportRequestComponentTag()}));
}
}
void FbxImportRequestHandler::GetSupportedFileExtensions(AZStd::unordered_set<AZStd::string>& extensions)
{
extensions.insert(m_settings.m_supportedFileTypeExtensions.begin(), m_settings.m_supportedFileTypeExtensions.end());
}
Events::LoadingResult FbxImportRequestHandler::LoadAsset(Containers::Scene& scene, const AZStd::string& path, const Uuid& guid, [[maybe_unused]] RequestingApplication requester)
{
AZStd::string extension;
StringFunc::Path::GetExtension(path.c_str(), extension);
AZStd::to_lower(extension.begin(), extension.end());
if (!m_settings.m_supportedFileTypeExtensions.contains(extension))
{
return Events::LoadingResult::Ignored;
}
scene.SetSource(path, guid);
// Push contexts
Events::ProcessingResultCombiner contextResult;
contextResult += Events::Process<Events::PreImportEventContext>(path);
contextResult += Events::Process<Events::ImportEventContext>(path, scene);
contextResult += Events::Process<Events::PostImportEventContext>(scene);
if (contextResult.GetResult() == Events::ProcessingResult::Success)
{
return Events::LoadingResult::AssetLoaded;
}
else
{
return Events::LoadingResult::AssetFailure;
}
}
void FbxImportRequestHandler::GetProvidedServices(ComponentDescriptor::DependencyArrayType& provided)
{
provided.emplace_back(AZ_CRC_CE("AssetImportRequestHandler"));
}
} // namespace Import
} // namespace SceneAPI
} // namespace AZ
@@ -1,55 +0,0 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <SceneAPI/SceneCore/Components/BehaviorComponent.h>
#include <SceneAPI/SceneCore/Events/AssetImportRequest.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneImporter
{
struct SceneImporterSettings
{
AZ_TYPE_INFO(SceneImporterSettings, "{8BB6C7AD-BF99-44DC-9DA1-E7AD3F03DC10}");
static void Reflect(AZ::ReflectContext* context);
AZStd::unordered_set<AZStd::string> m_supportedFileTypeExtensions;
};
class FbxImportRequestHandler
: public AZ::Component
, public Events::AssetImportRequestBus::Handler
{
public:
AZ_COMPONENT(FbxImportRequestHandler, "{9F4B189C-0A96-4F44-A5F0-E087FF1561F8}");
~FbxImportRequestHandler() override = default;
void Activate() override;
void Deactivate() override;
static void Reflect(ReflectContext* context);
void GetSupportedFileExtensions(AZStd::unordered_set<AZStd::string>& extensions) override;
Events::LoadingResult LoadAsset(Containers::Scene& scene, const AZStd::string& path, const Uuid& guid,
RequestingApplication requester) override;
static void GetProvidedServices(ComponentDescriptor::DependencyArrayType& provided);
private:
SceneImporterSettings m_settings;
static constexpr const char* SettingsFilename = "AssetImporterSettings.json";
};
} // namespace FbxSceneImporter
} // namespace SceneAPI
} // namespace AZ
@@ -15,8 +15,8 @@ namespace AZ
{
namespace AssImpSDKWrapper
{
AssImpNodeWrapper::AssImpNodeWrapper(aiNode* fbxNode)
:SDKNode::NodeWrapper(fbxNode)
AssImpNodeWrapper::AssImpNodeWrapper(aiNode* sourceNode)
:SDKNode::NodeWrapper(sourceNode)
{
AZ_Assert(m_assImpNode, "Asset Importer Node cannot be null");
}
@@ -18,7 +18,7 @@ namespace AZ
{
public:
AZ_RTTI(AssImpNodeWrapper, "{1043260B-9076-49B7-AD38-EF62E85F7C1D}", SDKNode::NodeWrapper);
AssImpNodeWrapper(aiNode* fbxNode);
AssImpNodeWrapper(aiNode* sourceNode);
~AssImpNodeWrapper() override;
const char* GetName() const override;
AZ::u64 GetUniqueId() const override;
@@ -11,29 +11,16 @@ namespace AZ
{
namespace SDKMaterial
{
MaterialWrapper::MaterialWrapper(fbxsdk::FbxSurfaceMaterial* fbxMaterial)
:m_fbxMaterial(fbxMaterial)
, m_assImpMaterial(nullptr)
{
}
MaterialWrapper::MaterialWrapper(aiMaterial* assImpMaterial)
:m_fbxMaterial(nullptr)
, m_assImpMaterial(assImpMaterial)
: m_assImpMaterial(assImpMaterial)
{
}
MaterialWrapper::~MaterialWrapper()
{
m_fbxMaterial = nullptr;
m_assImpMaterial = nullptr;
}
fbxsdk::FbxSurfaceMaterial* MaterialWrapper::GetFbxMaterial()
{
return m_fbxMaterial;
}
aiMaterial* MaterialWrapper::GetAssImpMaterial()
{
return m_assImpMaterial;
@@ -10,14 +10,8 @@
#include <AzCore/std/string/string.h>
#include <AzCore/Math/Vector3.h>
namespace fbxsdk
{
class FbxSurfaceMaterial;
}
struct aiMaterial;
namespace AZ
{
namespace SDKMaterial
@@ -39,11 +33,9 @@ namespace AZ
BaseColor
};
MaterialWrapper(fbxsdk::FbxSurfaceMaterial* fbxMaterial);
MaterialWrapper(aiMaterial* assImpmaterial);
virtual ~MaterialWrapper();
fbxsdk::FbxSurfaceMaterial* GetFbxMaterial();
aiMaterial* GetAssImpMaterial();
virtual AZStd::string GetName() const;
@@ -56,7 +48,6 @@ namespace AZ
virtual float GetShininess() const;
protected:
fbxsdk::FbxSurfaceMaterial* m_fbxMaterial = nullptr;
aiMaterial* m_assImpMaterial = nullptr;
};
} // namespace SDKMaterial
+1 -14
View File
@@ -11,29 +11,16 @@ namespace AZ
{
namespace SDKNode
{
NodeWrapper::NodeWrapper(fbxsdk::FbxNode* fbxNode)
:m_fbxNode(fbxNode)
, m_assImpNode(nullptr)
{
}
NodeWrapper::NodeWrapper(aiNode* aiNode)
:m_fbxNode(nullptr)
, m_assImpNode(aiNode)
: m_assImpNode(aiNode)
{
}
NodeWrapper::~NodeWrapper()
{
m_fbxNode = nullptr;
m_assImpNode = nullptr;
}
fbxsdk::FbxNode* NodeWrapper::GetFbxNode()
{
return m_fbxNode;
}
aiNode* NodeWrapper::GetAssImpNode()
{
return m_assImpNode;
@@ -6,10 +6,6 @@
*/
#pragma once
#include <AzCore/RTTI/RTTI.h>
namespace fbxsdk
{
class FbxNode;
}
struct aiNode;
@@ -23,7 +19,6 @@ namespace AZ
AZ_RTTI(NodeWrapper, "{5EB0897B-9728-44B7-B056-BA34AAF14715}");
NodeWrapper() = default;
NodeWrapper(fbxsdk::FbxNode* fbxNode);
NodeWrapper(aiNode* aiNode);
virtual ~NodeWrapper();
@@ -34,7 +29,6 @@ namespace AZ
Component_Z
};
fbxsdk::FbxNode* GetFbxNode();
aiNode* GetAssImpNode();
virtual const char* GetName() const;
@@ -44,8 +38,6 @@ namespace AZ
virtual int GetChildCount()const;
virtual const std::shared_ptr<NodeWrapper> GetChild(int childIndex) const;
fbxsdk::FbxNode* m_fbxNode = nullptr;
aiNode* m_assImpNode = nullptr;
};
} //namespace Node
@@ -12,15 +12,8 @@ namespace AZ
{
const char* SceneWrapperBase::s_defaultSceneName = "myScene";
SceneWrapperBase::SceneWrapperBase(fbxsdk::FbxScene* fbxScene)
:m_fbxScene(fbxScene)
, m_assImpScene(nullptr)
{
}
SceneWrapperBase::SceneWrapperBase(aiScene* aiScene)
:m_fbxScene(nullptr)
, m_assImpScene(aiScene)
: m_assImpScene(aiScene)
{
}
@@ -47,11 +40,6 @@ namespace AZ
{
}
fbxsdk::FbxScene* SceneWrapperBase::GetFbxScene() const
{
return m_fbxScene;
}
const aiScene* SceneWrapperBase::GetAssImpScene() const
{
return m_assImpScene;
@@ -8,14 +8,9 @@
#include <AzCore/std/smart_ptr/shared_ptr.h>
#include <AzCore/std/string/string.h>
#include <SceneAPI/SDKWrapper/NodeWrapper.h>
namespace fbxsdk
{
class FbxScene;
}
struct aiScene;
namespace AZ
{
namespace SDKScene
@@ -25,7 +20,6 @@ namespace AZ
public:
AZ_RTTI(SceneWrapperBase, "{703CD344-2C75-4F30-8CE2-6BDEF2511AFD}");
SceneWrapperBase() = default;
SceneWrapperBase(fbxsdk::FbxScene* fbxScene);
virtual ~SceneWrapperBase() = default;
SceneWrapperBase(aiScene* aiScene);
@@ -37,10 +31,8 @@ namespace AZ
virtual void Clear();
virtual fbxsdk::FbxScene* GetFbxScene() const;
virtual const aiScene* GetAssImpScene() const;
fbxsdk::FbxScene* m_fbxScene = nullptr;
const aiScene* m_assImpScene = nullptr;
static const char* s_defaultSceneName;
@@ -10,14 +10,14 @@ if (NOT PAL_TRAIT_BUILD_HOST_TOOLS)
endif()
ly_add_target(
NAME FbxSceneBuilder.Static STATIC
NAME SceneBuilder.Static STATIC
NAMESPACE AZ
FILES_CMAKE
fbxscenebuilder_files.cmake
scenebuilder_files.cmake
Platform/${PAL_PLATFORM_NAME}/platform_${PAL_PLATFORM_NAME_LOWERCASE}_files.cmake
COMPILE_DEFINITIONS
PRIVATE
FBX_SCENE_BUILDER_EXPORTS
SCENE_BUILDER_EXPORTS
INCLUDE_DIRECTORIES
PUBLIC
../..
@@ -33,40 +33,40 @@ ly_add_target(
)
ly_add_target(
NAME FbxSceneBuilder MODULE
NAME SceneBuilder MODULE
NAMESPACE AZ
FILES_CMAKE
fbxscenebuilder_shared_files.cmake
scenebuilder_shared_files.cmake
COMPILE_DEFINITIONS
PRIVATE
FBX_SCENE_BUILDER_EXPORTS
SCENE_BUILDER_EXPORTS
INCLUDE_DIRECTORIES
PUBLIC
../..
BUILD_DEPENDENCIES
PUBLIC
AZ::FbxSceneBuilder.Static
AZ::SceneBuilder.Static
PRIVATE
AZ::AzCore
)
ly_add_dependencies(AssetBuilder AZ::FbxSceneBuilder)
ly_add_dependencies(AssetBuilder AZ::SceneBuilder)
if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
ly_add_target(
NAME FbxSceneBuilder.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
NAME SceneBuilder.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
NAMESPACE AZ
FILES_CMAKE
fbxscenebuilder_testing_files.cmake
scenebuilder_testing_files.cmake
INCLUDE_DIRECTORIES
PRIVATE
Tests
BUILD_DEPENDENCIES
PRIVATE
AZ::AzTest
AZ::FbxSceneBuilder
AZ::SceneBuilder
)
ly_add_googletest(
NAME AZ::FbxSceneBuilder.Tests
NAME AZ::SceneBuilder.Tests
)
endif()
@@ -11,27 +11,27 @@
#include <AzCore/Component/ComponentApplicationBus.h>
#include <AzCore/std/containers/vector.h>
#include <AzCore/Module/Environment.h>
#include <SceneAPI/FbxSceneBuilder/FbxImportRequestHandler.h>
#include <SceneAPI/SceneBuilder/SceneImportRequestHandler.h>
#include <SceneAPI/FbxSceneBuilder/FbxImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpBitangentStreamImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpColorStreamImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpMaterialImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpMeshImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpTangentStreamImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpTransformImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpUvMapImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpSkinImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpSkinWeightsImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpBoneImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpAnimationImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpBlendShapeImporter.h>
#include <SceneAPI/SceneBuilder/SceneImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpBitangentStreamImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpColorStreamImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpMaterialImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpMeshImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpTangentStreamImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpTransformImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpUvMapImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpSkinImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpSkinWeightsImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpBoneImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpAnimationImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpBlendShapeImporter.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
static AZStd::vector<AZ::ComponentDescriptor*> g_componentDescriptors;
@@ -40,13 +40,13 @@ namespace AZ
// Descriptor registration is done in Reflect instead of Initialize because the ResourceCompilerScene initializes the libraries before
// there's an application.
using namespace AZ::SceneAPI;
using namespace AZ::SceneAPI::FbxSceneBuilder;
using namespace AZ::SceneAPI::SceneBuilder;
if (g_componentDescriptors.empty())
{
// Global importer and behavior
g_componentDescriptors.push_back(FbxSceneBuilder::FbxImporter::CreateDescriptor());
g_componentDescriptors.push_back(FbxSceneImporter::FbxImportRequestHandler::CreateDescriptor());
g_componentDescriptors.push_back(SceneBuilder::SceneImporter::CreateDescriptor());
g_componentDescriptors.push_back(SceneImportRequestHandler::CreateDescriptor());
// Node and attribute importers
g_componentDescriptors.push_back(AssImpBitangentStreamImporter::CreateDescriptor());
@@ -94,7 +94,7 @@ namespace AZ
g_componentDescriptors.shrink_to_fit();
}
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -104,15 +104,15 @@ extern "C" AZ_DLL_EXPORT void InitializeDynamicModule(void* env)
}
extern "C" AZ_DLL_EXPORT void Reflect(AZ::SerializeContext* context)
{
AZ::SceneAPI::FbxSceneBuilder::Reflect(context);
AZ::SceneAPI::SceneBuilder::Reflect(context);
}
extern "C" AZ_DLL_EXPORT void ReflectBehavior(AZ::BehaviorContext* context)
{
AZ::SceneAPI::FbxSceneBuilder::ReflectBehavior(context);
AZ::SceneAPI::SceneBuilder::ReflectBehavior(context);
}
extern "C" AZ_DLL_EXPORT void UninitializeDynamicModule()
{
AZ::SceneAPI::FbxSceneBuilder::Uninitialize();
AZ::SceneAPI::SceneBuilder::Uninitialize();
AZ::Environment::Detach();
}
@@ -5,7 +5,7 @@
*
*/
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SDKWrapper/AssImpNodeWrapper.h>
#include <SceneAPI/SceneCore/Events/ImportEventContext.h>
@@ -13,10 +13,10 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
AssImpImportContext::AssImpImportContext(const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
AssImpSDKWrapper::AssImpNodeWrapper& sourceNode)
: m_sourceScene(sourceScene)
, m_sourceSceneSystem(sourceSceneSystem)
@@ -27,7 +27,7 @@ namespace AZ
AssImpNodeEncounteredContext::AssImpNodeEncounteredContext(Containers::Scene& scene,
Containers::SceneGraph::NodeIndex currentGraphPosition,
const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
RenamedNodesMap& nodeNameMap,
AssImpSDKWrapper::AssImpNodeWrapper& sourceNode)
: AssImpImportContext(sourceScene, sourceSceneSystem, sourceNode)
@@ -39,7 +39,7 @@ namespace AZ
Events::ImportEventContext& parent,
Containers::SceneGraph::NodeIndex currentGraphPosition,
const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
RenamedNodesMap& nodeNameMap,
AssImpSDKWrapper::AssImpNodeWrapper& sourceNode)
: AssImpImportContext(sourceScene, sourceSceneSystem, sourceNode)
@@ -57,7 +57,7 @@ namespace AZ
AssImpSceneDataPopulatedContext::AssImpSceneDataPopulatedContext(Containers::Scene& scene,
Containers::SceneGraph::NodeIndex currentGraphPosition,
const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
RenamedNodesMap& nodeNameMap,
AssImpSDKWrapper::AssImpNodeWrapper& sourceNode,
const AZStd::shared_ptr<DataTypes::IGraphObject>& nodeData, const AZStd::string& dataName)
@@ -76,7 +76,7 @@ namespace AZ
AssImpSceneNodeAppendedContext::AssImpSceneNodeAppendedContext(Containers::Scene& scene,
Containers::SceneGraph::NodeIndex currentGraphPosition,
const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
RenamedNodesMap& nodeNameMap, AssImpSDKWrapper::AssImpNodeWrapper& sourceNode)
: AssImpImportContext(sourceScene, sourceSceneSystem, sourceNode)
, SceneNodeAppendedContextBase(scene, currentGraphPosition, nodeNameMap)
@@ -111,7 +111,7 @@ namespace AZ
AssImpFinalizeSceneContext::AssImpFinalizeSceneContext(Containers::Scene& scene,
const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
RenamedNodesMap& nodeNameMap)
: FinalizeSceneContextBase(scene, nodeNameMap)
, m_sourceScene(sourceScene)
@@ -120,5 +120,5 @@ namespace AZ
}
} // namespace SceneAPI
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace AZ
@@ -9,7 +9,7 @@
#include <AzCore/RTTI/RTTI.h>
#include <AzCore/std/string/string.h>
#include <SceneAPI/FbxSceneBuilder/ImportContexts/ImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/ImportContexts.h>
#include <SceneAPI/SceneCore/Containers/SceneGraph.h>
namespace AZ
@@ -22,8 +22,8 @@ namespace AZ
namespace SceneAPI
{
class FbxSceneSystem;
namespace FbxSceneBuilder
class SceneSystem;
namespace SceneBuilder
{
class RenamedNodesMap;
@@ -36,12 +36,12 @@ namespace AZ
AZ_RTTI(AssImpImportContext, "{B1076AFF-991B-423C-8D3E-D5C9230434AB}");
AssImpImportContext(const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
AssImpSDKWrapper::AssImpNodeWrapper& sourceNode);
const AssImpSDKWrapper::AssImpSceneWrapper& m_sourceScene;
AssImpSDKWrapper::AssImpNodeWrapper& m_sourceNode;
const FbxSceneSystem& m_sourceSceneSystem; // Needed for unit and axis conversion
const SceneSystem& m_sourceSceneSystem; // Needed for unit and axis conversion
};
// AssImpNodeEncounteredContext
@@ -56,14 +56,14 @@ namespace AZ
AssImpNodeEncounteredContext(Containers::Scene& scene,
Containers::SceneGraph::NodeIndex currentGraphPosition,
const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
RenamedNodesMap& nodeNameMap,
AssImpSDKWrapper::AssImpNodeWrapper& sourceNode);
AssImpNodeEncounteredContext(Events::ImportEventContext& parent,
Containers::SceneGraph::NodeIndex currentGraphPosition,
const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
RenamedNodesMap& nodeNameMap,
AssImpSDKWrapper::AssImpNodeWrapper& sourceNode);
};
@@ -85,7 +85,7 @@ namespace AZ
AssImpSceneDataPopulatedContext(Containers::Scene& scene,
Containers::SceneGraph::NodeIndex currentGraphPosition,
const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
RenamedNodesMap& nodeNameMap,
AssImpSDKWrapper::AssImpNodeWrapper& sourceNode,
const AZStd::shared_ptr<DataTypes::IGraphObject>& nodeData,
@@ -106,7 +106,7 @@ namespace AZ
AssImpSceneNodeAppendedContext(Containers::Scene& scene,
Containers::SceneGraph::NodeIndex currentGraphPosition,
const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
RenamedNodesMap& nodeNameMap,
AssImpSDKWrapper::AssImpNodeWrapper& sourceNode);
};
@@ -170,13 +170,13 @@ namespace AZ
AssImpFinalizeSceneContext(
Containers::Scene& scene,
const AssImpSDKWrapper::AssImpSceneWrapper& sourceScene,
const FbxSceneSystem& sourceSceneSystem,
const SceneSystem& sourceSceneSystem,
RenamedNodesMap& nodeNameMap);
const AssImpSDKWrapper::AssImpSceneWrapper& m_sourceScene;
const FbxSceneSystem& m_sourceSceneSystem; // Needed for unit and axis conversion
const SceneSystem& m_sourceSceneSystem; // Needed for unit and axis conversion
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -5,14 +5,14 @@
*
*/
#include <SceneAPI/FbxSceneBuilder/ImportContexts/ImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/ImportContexts.h>
#include <SceneAPI/SceneCore/Events/ImportEventContext.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
ImportContext::ImportContext(Containers::Scene& scene,
Containers::SceneGraph::NodeIndex currentGraphPosition,
@@ -103,5 +103,5 @@ namespace AZ
{
}
} // namespace SceneAPI
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace AZ
@@ -33,7 +33,7 @@ namespace AZ
class ImportEventContext;
}
namespace FbxSceneBuilder
namespace SceneBuilder
{
class RenamedNodesMap;
@@ -173,7 +173,7 @@ namespace AZ
FinalizeSceneContextBase(Containers::Scene& scene, RenamedNodesMap& nodeNameMap);
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -12,11 +12,11 @@
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzCore/StringFunc/StringFunc.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/FbxSceneSystem.h>
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpAnimationImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneBuilder/SceneSystem.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpAnimationImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneCore/Containers/Scene.h>
#include <SceneAPI/SceneData/GraphData/AnimationData.h>
#include <SceneAPI/SDKWrapper/AssImpNodeWrapper.h>
@@ -26,7 +26,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
const char* AssImpAnimationImporter::s_animationNodeName = "animation";
@@ -670,6 +670,6 @@ namespace AZ
return Events::ProcessingResult::Success;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -8,7 +8,7 @@
#pragma once
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
struct aiAnimation;
struct aiMesh;
@@ -18,7 +18,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpAnimationImporter
: public SceneCore::LoadingComponent
@@ -43,6 +43,6 @@ namespace AZ
protected:
static const char* s_animationNodeName;
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -8,9 +8,9 @@
#include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpBitangentStreamImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpBitangentStreamImporter.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneData/GraphData/MeshVertexBitangentData.h>
#include <SceneAPI/SDKWrapper/AssImpNodeWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpSceneWrapper.h>
@@ -24,7 +24,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
const char* AssImpBitangentStreamImporter::m_defaultNodeName = "Bitangent";
@@ -125,6 +125,6 @@ namespace AZ
return bitangentResults;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -6,14 +6,14 @@
*/
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpBitangentStreamImporter : public SceneCore::LoadingComponent
{
@@ -30,6 +30,6 @@ namespace AZ
protected:
static const char* m_defaultNodeName;
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -9,11 +9,11 @@
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzCore/std/string/conversions.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpBlendShapeImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/FbxSceneSystem.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpBlendShapeImporter.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/SceneSystem.h>
#include <SceneAPI/SDKWrapper/AssImpNodeWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpSceneWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpTypeConverter.h>
@@ -27,7 +27,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
AssImpBlendShapeImporter::AssImpBlendShapeImporter()
{
@@ -234,6 +234,6 @@ namespace AZ
return combinedBlendShapeResult.GetResult();
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -7,14 +7,14 @@
#pragma once
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpBlendShapeImporter
: public SceneCore::LoadingComponent
@@ -29,6 +29,6 @@ namespace AZ
Events::ProcessingResult ImportBlendShapes(AssImpSceneNodeAppendedContext& context);
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -9,10 +9,10 @@
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzCore/StringFunc/StringFunc.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/FbxSceneSystem.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpBoneImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/SceneSystem.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpBoneImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneCore/Containers/Scene.h>
#include <SceneAPI/SceneData/GraphData/BoneData.h>
#include <SceneAPI/SceneData/GraphData/RootBoneData.h>
@@ -24,7 +24,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
AssImpBoneImporter::AssImpBoneImporter()
{
@@ -170,6 +170,6 @@ namespace AZ
return Events::ProcessingResult::Success;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -7,14 +7,14 @@
#pragma once
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpBoneImporter
: public SceneCore::LoadingComponent
@@ -29,6 +29,6 @@ namespace AZ
Events::ProcessingResult ImportBone(AssImpNodeEncounteredContext& context);
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -9,9 +9,9 @@
#include <AzCore/std/numeric.h>
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpColorStreamImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpColorStreamImporter.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SDKWrapper/AssImpNodeWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpSceneWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpTypeConverter.h>
@@ -26,7 +26,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
const char* AssImpColorStreamImporter::m_defaultNodeName = "Col";
@@ -126,6 +126,6 @@ namespace AZ
return combinedVertexColorResults.GetResult();
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -6,14 +6,14 @@
*/
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpColorStreamImporter : public SceneCore::LoadingComponent
{
@@ -30,6 +30,6 @@ namespace AZ
protected:
static const char* m_defaultNodeName;
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -5,7 +5,7 @@
*
*/
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpImporterUtilities.h>
#include <AzCore/Debug/Trace.h>
#include <AzCore/StringFunc/StringFunc.h>
@@ -16,7 +16,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
bool IsSkinnedMesh(const aiNode& node, const aiScene& scene)
{
@@ -84,6 +84,6 @@ namespace AZ
return combinedTransform;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -15,7 +15,7 @@ struct aiScene;
struct aiString;
namespace AZ::SceneAPI::FbxSceneBuilder
namespace AZ::SceneAPI::SceneBuilder
{
inline constexpr char PivotNodeMarker[] = "_$AssimpFbx$_";
@@ -5,16 +5,16 @@
*
*/
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpMaterialImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpMaterialImporter.h>
#include <AzCore/IO/FileIO.h>
#include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzCore/std/containers/unordered_map.h>
#include <AzCore/StringFunc/StringFunc.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SDKWrapper/AssImpNodeWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpSceneWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpMaterialWrapper.h>
@@ -27,7 +27,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
AssImpMaterialImporter::AssImpMaterialImporter()
{
@@ -164,7 +164,7 @@ namespace AZ
if (materialResult != Events::ProcessingResult::Failure)
{
materialResult = SceneAPI::FbxSceneBuilder::AddAttributeDataNodeWithContexts(dataPopulated);
materialResult = SceneAPI::SceneBuilder::AddAttributeDataNodeWithContexts(dataPopulated);
}
combinedMaterialImportResults += materialResult;
@@ -186,7 +186,7 @@ namespace AZ
AZ::StringFunc::Path::StripFullName(cleanedUpSceneFilePath);
AZ::StringFunc::Path::Join(cleanedUpSceneFilePath.c_str(), textureFilePath.c_str(), texturePathRelativeToScene);
// If the texture did start with marker to change directories upward, then it's relative to the FBX file,
// If the texture did start with marker to change directories upward, then it's relative to the scene file,
// and that path needs to be resolved. It can't be resolved later. This was handled internally by FBX SDK,
// but is not handled by AssImp.
if (textureFilePath.starts_with(".."))
@@ -196,7 +196,7 @@ namespace AZ
}
// The engine only supports relative paths to scan folders.
// FBX files may have paths to textures, relative to the FBX file. Check for those, first.
// Scene files may have paths to textures, relative to the scene file. Check for those, first.
if (AZ::IO::FileIOBase::GetInstance()->Exists(texturePathRelativeToScene.c_str()))
{
return texturePathRelativeToScene;
@@ -205,6 +205,6 @@ namespace AZ
return textureFilePath;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -7,14 +7,14 @@
#pragma once
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpMaterialImporter
: public SceneCore::LoadingComponent
@@ -32,6 +32,6 @@ namespace AZ
private:
AZStd::string ResolveTexturePath(const AZStd::string& sceneFilePath, const AZStd::string& textureFilePath) const;
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -9,9 +9,9 @@
#include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpMeshImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpMeshImporter.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneData/GraphData/MeshData.h>
#include <SceneAPI/SDKWrapper/AssImpNodeWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpSceneWrapper.h>
@@ -20,7 +20,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
AssImpMeshImporter::AssImpMeshImporter()
{
@@ -57,6 +57,6 @@ namespace AZ
return Events::ProcessingResult::Failure;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -7,14 +7,14 @@
#pragma once
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpMeshImporter
: public SceneCore::LoadingComponent
@@ -29,6 +29,6 @@ namespace AZ
Events::ProcessingResult ImportMesh(AssImpNodeEncounteredContext& context);
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -9,9 +9,9 @@
#include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpSkinImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpSkinImporter.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneData/GraphData/SkinMeshData.h>
#include <SceneAPI/SDKWrapper/AssImpNodeWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpSceneWrapper.h>
@@ -20,7 +20,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
AssImpSkinImporter::AssImpSkinImporter()
{
@@ -57,6 +57,6 @@ namespace AZ
return Events::ProcessingResult::Failure;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -7,14 +7,14 @@
#pragma once
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpSkinImporter
: public SceneCore::LoadingComponent
@@ -29,6 +29,6 @@ namespace AZ
Events::ProcessingResult ImportSkin(AssImpNodeEncounteredContext& context);
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -9,10 +9,10 @@
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzCore/std/string/conversions.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpSkinWeightsImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpSkinWeightsImporter.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneCore/Events/ImportEventContext.h>
#include <SceneAPI/SceneData/GraphData/MeshData.h>
#include <SceneAPI/SceneData/GraphData/SkinWeightData.h>
@@ -23,7 +23,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
const AZStd::string AssImpSkinWeightsImporter::s_skinWeightName = "SkinWeight_";
@@ -142,6 +142,6 @@ namespace AZ
m_pendingSkinWeights.clear();
return result;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -9,17 +9,12 @@
#include <assimp/scene.h>
#include <AzCore/std/containers/vector.h>
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
#include <SceneAPI/SceneCore/DataTypes/GraphData/ISkinWeightData.h>
namespace AZ
{
namespace FbxSDKWrapper
{
class FbxMeshWrapper;
}
namespace SceneData
{
namespace GraphData
@@ -35,7 +30,7 @@ namespace AZ
class PostImportEventContext;
}
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpSkinWeightsImporter
: public SceneCore::LoadingComponent
@@ -68,6 +63,6 @@ namespace AZ
static const AZStd::string s_skinWeightName;
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -9,9 +9,9 @@
#include <AzCore/std/numeric.h>
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpTangentStreamImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpTangentStreamImporter.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneData/GraphData/MeshVertexTangentData.h>
#include <SceneAPI/SDKWrapper/AssImpNodeWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpSceneWrapper.h>
@@ -26,7 +26,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
const char* AssImpTangentStreamImporter::m_defaultNodeName = "Tangent";
@@ -127,6 +127,6 @@ namespace AZ
return tangentResults;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -6,14 +6,14 @@
*/
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpTangentStreamImporter : public SceneCore::LoadingComponent
{
@@ -30,6 +30,6 @@ namespace AZ
protected:
static const char* m_defaultNodeName;
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -4,27 +4,27 @@
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpTransformImporter.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpTransformImporter.h>
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzCore/Serialization/SerializeContext.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/FbxSceneSystem.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneBuilder/SceneSystem.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneCore/Utilities/Reporting.h>
#include <SceneAPI/SceneData/GraphData/TransformData.h>
#include <SceneAPI/SDKWrapper/AssImpTypeConverter.h>
#include <SceneAPI/SDKWrapper/AssImpNodeWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpSceneWrapper.h>
#include <assimp/scene.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpImporterUtilities.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
const char* AssImpTransformImporter::s_transformNodeName = "transform";
@@ -198,6 +198,6 @@ namespace AZ
return Events::ProcessingResult::Ignored;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -7,14 +7,14 @@
#pragma once
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpTransformImporter
: public SceneCore::LoadingComponent
@@ -30,6 +30,6 @@ namespace AZ
Events::ProcessingResult ImportTransform(AssImpSceneNodeAppendedContext& context);
static const char* s_transformNodeName;
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -11,10 +11,10 @@
#include <AzCore/std/numeric.h>
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpUvMapImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpUvMapImporter.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneCore/Utilities/Reporting.h>
#include <SceneAPI/SceneData/GraphData/MeshData.h>
#include <SceneAPI/SceneData/GraphData/MeshVertexUVData.h>
@@ -28,7 +28,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
const char* AssImpUvMapImporter::m_defaultNodeName = "UV";
@@ -141,7 +141,7 @@ namespace AZ
{
AZ::Vector2 vertexUV(
mesh->mTextureCoords[texCoordIndex][v].x,
// The engine's V coordinate is reverse of how it's stored in the FBX file.
// The engine's V coordinate is reverse of how it's coming in from the SDK.
1.0f - mesh->mTextureCoords[texCoordIndex][v].y);
uvMap->AppendUV(vertexUV);
}
@@ -175,6 +175,6 @@ namespace AZ
return combinedUvMapResults.GetResult();
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -7,14 +7,14 @@
#pragma once
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class AssImpUvMapImporter
: public SceneCore::LoadingComponent
@@ -32,6 +32,6 @@ namespace AZ
protected:
static const char* m_defaultNodeName;
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -7,8 +7,8 @@
#include <AzCore/Math/Transform.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneCore/Containers/Scene.h>
#include <SceneAPI/SceneCore/Containers/Views/PairIterator.h>
#include <SceneAPI/SceneCore/Containers/Views/SceneGraphDownwardsIterator.h>
@@ -25,7 +25,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
static const float g_sceneUtilityEqualityEpsilon = 0.001f;
@@ -429,6 +429,6 @@ namespace AZ
return true;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -7,7 +7,7 @@
#pragma once
#include <SceneAPI/FbxSceneBuilder/ImportContexts/ImportContexts.h>
#include <SceneAPI/SceneBuilder/ImportContexts/ImportContexts.h>
#include <SceneAPI/SceneCore/Containers/Scene.h>
#include <SceneAPI/SceneCore/Containers/SceneGraph.h>
#include <SceneAPI/SceneCore/DataTypes/MatrixType.h>
@@ -19,9 +19,9 @@ namespace AZ
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
struct FbxImportContext;
struct SceneImportContext;
using CoreScene = Containers::Scene;
using CoreSceneGraph = Containers::SceneGraph;
@@ -41,8 +41,8 @@ namespace AZ
bool IsGraphDataEqual(const AZStd::shared_ptr<const DataTypes::IGraphObject>& lhs,
const AZStd::shared_ptr<const DataTypes::IGraphObject>& rhs);
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.inl>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.inl>
@@ -5,7 +5,7 @@
*
*/
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneCore/Containers/Scene.h>
#include <SceneAPI/SceneCore/DataTypes/IGraphObject.h>
@@ -13,7 +13,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
bool NodeIsOfType(const CoreSceneGraph& sceneGraph, CoreGraphNodeIndex nodeIndex, const AZ::Uuid& uuid)
{
@@ -63,6 +63,6 @@ namespace AZ
return true;
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -10,17 +10,17 @@
#include <AzCore/Casting/numeric_cast.h>
#include <AzCore/std/numeric.h>
#include <AzCore/std/smart_ptr/make_shared.h>
#include <SceneAPI/FbxSceneBuilder/FbxSceneSystem.h>
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneBuilder/SceneSystem.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/AssImpMeshImporterUtilities.h>
#include <SceneAPI/SceneCore/Utilities/Reporting.h>
#include <SceneAPI/SceneData/GraphData/BlendShapeData.h>
#include <SceneAPI/SceneData/GraphData/BoneData.h>
#include <SceneAPI/SceneData/GraphData/MeshData.h>
namespace AZ::SceneAPI::FbxSceneBuilder
namespace AZ::SceneAPI::SceneBuilder
{
bool BuildSceneMeshFromAssImpMesh(const aiNode* currentNode, const aiScene* scene, const FbxSceneSystem& sceneSystem, AZStd::vector<AZStd::shared_ptr<DataTypes::IGraphObject>>& meshes,
bool BuildSceneMeshFromAssImpMesh(const aiNode* currentNode, const aiScene* scene, const SceneSystem& sceneSystem, AZStd::vector<AZStd::shared_ptr<DataTypes::IGraphObject>>& meshes,
const AZStd::function<AZStd::shared_ptr<SceneData::GraphData::MeshData>()>& makeMeshFunc)
{
AZStd::unordered_map<int, int> assImpMatIndexToLYIndex;
@@ -14,11 +14,6 @@ struct aiScene;
namespace AZ
{
namespace FbxSDKWrapper
{
class FbxMeshWrapper;
}
namespace SceneData
{
namespace GraphData
@@ -35,11 +30,11 @@ namespace AZ
class IGraphObject;
}
struct AssImpSceneNodeAppendedContext;
class FbxSceneSystem;
class SceneSystem;
namespace FbxSceneBuilder
namespace SceneBuilder
{
bool BuildSceneMeshFromAssImpMesh(const aiNode* currentNode, const aiScene* scene, const FbxSceneSystem& sceneSystem, AZStd::vector<AZStd::shared_ptr<DataTypes::IGraphObject>>& meshes,
bool BuildSceneMeshFromAssImpMesh(const aiNode* currentNode, const aiScene* scene, const SceneSystem& sceneSystem, AZStd::vector<AZStd::shared_ptr<DataTypes::IGraphObject>>& meshes,
const AZStd::function<AZStd::shared_ptr<SceneData::GraphData::MeshData>()>& makeMeshFunc);
typedef AZ::Outcome<const SceneData::GraphData::MeshData* const, Events::ProcessingResult> GetMeshDataFromParentResult;
@@ -9,14 +9,14 @@
#include <AzCore/std/algorithm.h>
#include <AzCore/std/string/conversions.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneCore/Utilities/Reporting.h>
namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
bool RenamedNodesMap::SanitizeNodeName(AZStd::string& name, const Containers::SceneGraph& graph,
Containers::SceneGraph::NodeIndex parentNode, const char* defaultName)
@@ -94,7 +94,7 @@ namespace AZ
{
AZ_TraceContext("New node name", name);
// Only register if the name is updated, otherwise the name in the fbx node can be returned.
// Only register if the name is updated, otherwise the name in the source scene's node can be returned.
auto entry = m_idToName.find(node.GetUniqueId());
if (entry == m_idToName.end())
{
@@ -153,6 +153,6 @@ namespace AZ
return node.GetName();
}
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -15,14 +15,9 @@
namespace AZ
{
namespace FbxSDKWrapper
{
class FbxNodeWrapper;
}
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
class RenamedNodesMap
{
@@ -60,6 +55,6 @@ namespace AZ
AZStd::unordered_map<u64, AZStd::string> m_idToName;
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -10,11 +10,11 @@
#include <AzCore/PlatformDef.h>
#if defined(AZ_MONOLITHIC_BUILD)
#define FBX_SCENE_BUILDER_API
#define SCENE_BUILDER_API
#else
#ifdef FBX_SCENE_BUILDER_EXPORTS
#define FBX_SCENE_BUILDER_API AZ_DLL_EXPORT
#ifdef SCENE_BUILDER_EXPORTS
#define SCENE_BUILDER_API AZ_DLL_EXPORT
#else
#define FBX_SCENE_BUILDER_API AZ_DLL_IMPORT
#define SCENE_BUILDER_API AZ_DLL_IMPORT
#endif
#endif // AZ_MONOLITHIC_BUILD
@@ -0,0 +1,103 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include <AssetProcessor/AssetBuilderSDK/AssetBuilderSDK/AssetBuilderSDK.h>
#include <AzCore/Serialization/EditContextConstants.inl>
#include <AzCore/Serialization/SerializeContext.h>
#include <AzCore/Serialization/Json/JsonSerialization.h>
#include <AzCore/Settings/SettingsRegistry.h>
#include <AzCore/StringFunc/StringFunc.h>
#include <SceneAPI/SceneBuilder/SceneImportRequestHandler.h>
#include <SceneAPI/SceneCore/Containers/Scene.h>
#include <SceneAPI/SceneCore/Events/CallProcessorBus.h>
#include <SceneAPI/SceneCore/Events/ImportEventContext.h>
namespace AZ
{
namespace SceneAPI
{
void SceneImporterSettings::Reflect(AZ::ReflectContext* context)
{
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context); serializeContext)
{
serializeContext->Class<SceneImporterSettings>()
->Version(2)
->Field("SupportedFileTypeExtensions", &SceneImporterSettings::m_supportedFileTypeExtensions);
}
}
void SceneImportRequestHandler::Activate()
{
if (auto* settingsRegistry = AZ::SettingsRegistry::Get())
{
settingsRegistry->GetObject(m_settings, "/O3DE/SceneAPI/AssetImporter");
}
BusConnect();
}
void SceneImportRequestHandler::Deactivate()
{
BusDisconnect();
}
void SceneImportRequestHandler::Reflect(ReflectContext* context)
{
SceneImporterSettings::Reflect(context);
SerializeContext* serializeContext = azrtti_cast<SerializeContext*>(context);
if (serializeContext)
{
serializeContext->Class<SceneImportRequestHandler, AZ::Component>()->Version(1)->Attribute(
AZ::Edit::Attributes::SystemComponentTags,
AZStd::vector<AZ::Crc32>(
{AssetBuilderSDK::ComponentTags::AssetBuilder,
AssetImportRequest::GetAssetImportRequestComponentTag()}));
}
}
void SceneImportRequestHandler::GetSupportedFileExtensions(AZStd::unordered_set<AZStd::string>& extensions)
{
extensions.insert(m_settings.m_supportedFileTypeExtensions.begin(), m_settings.m_supportedFileTypeExtensions.end());
}
Events::LoadingResult SceneImportRequestHandler::LoadAsset(Containers::Scene& scene, const AZStd::string& path, const Uuid& guid, [[maybe_unused]] RequestingApplication requester)
{
AZStd::string extension;
StringFunc::Path::GetExtension(path.c_str(), extension);
AZStd::to_lower(extension.begin(), extension.end());
if (!m_settings.m_supportedFileTypeExtensions.contains(extension))
{
return Events::LoadingResult::Ignored;
}
scene.SetSource(path, guid);
// Push contexts
Events::ProcessingResultCombiner contextResult;
contextResult += Events::Process<Events::PreImportEventContext>(path);
contextResult += Events::Process<Events::ImportEventContext>(path, scene);
contextResult += Events::Process<Events::PostImportEventContext>(scene);
if (contextResult.GetResult() == Events::ProcessingResult::Success)
{
return Events::LoadingResult::AssetLoaded;
}
else
{
return Events::LoadingResult::AssetFailure;
}
}
void SceneImportRequestHandler::GetProvidedServices(ComponentDescriptor::DependencyArrayType& provided)
{
provided.emplace_back(AZ_CRC_CE("AssetImportRequestHandler"));
}
} // namespace SceneAPI
} // namespace AZ
@@ -0,0 +1,52 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project. For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <SceneAPI/SceneCore/Components/BehaviorComponent.h>
#include <SceneAPI/SceneCore/Events/AssetImportRequest.h>
namespace AZ
{
namespace SceneAPI
{
struct SceneImporterSettings
{
AZ_TYPE_INFO(SceneImporterSettings, "{8BB6C7AD-BF99-44DC-9DA1-E7AD3F03DC10}");
static void Reflect(AZ::ReflectContext* context);
AZStd::unordered_set<AZStd::string> m_supportedFileTypeExtensions;
};
class SceneImportRequestHandler
: public AZ::Component
, public Events::AssetImportRequestBus::Handler
{
public:
AZ_COMPONENT(SceneImportRequestHandler, "{9F4B189C-0A96-4F44-A5F0-E087FF1561F8}");
~SceneImportRequestHandler() override = default;
void Activate() override;
void Deactivate() override;
static void Reflect(ReflectContext* context);
void GetSupportedFileExtensions(AZStd::unordered_set<AZStd::string>& extensions) override;
Events::LoadingResult LoadAsset(Containers::Scene& scene, const AZStd::string& path, const Uuid& guid,
RequestingApplication requester) override;
static void GetProvidedServices(ComponentDescriptor::DependencyArrayType& provided);
private:
SceneImporterSettings m_settings;
static constexpr const char* SettingsFilename = "AssetImporterSettings.json";
};
} // namespace SceneAPI
} // namespace AZ
@@ -14,11 +14,11 @@
#include <AzCore/std/string/conversions.h>
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzToolsFramework/Debug/TraceContext.h>
#include <SceneAPI/FbxSceneBuilder/FbxImporter.h>
#include <SceneAPI/FbxSceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/FbxSceneBuilder/Importers/AssImpMaterialImporter.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneBuilder/SceneImporter.h>
#include <SceneAPI/SceneBuilder/ImportContexts/AssImpImportContexts.h>
#include <SceneAPI/SceneBuilder/Importers/AssImpMaterialImporter.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneCore/Containers/Scene.h>
#include <SceneAPI/SceneCore/Utilities/Reporting.h>
#include <SceneAPI/SceneData/GraphData/TransformData.h>
@@ -29,7 +29,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
struct QueueNode
{
@@ -44,23 +44,23 @@ namespace AZ
}
};
FbxImporter::FbxImporter()
: m_sceneSystem(new FbxSceneSystem())
SceneImporter::SceneImporter()
: m_sceneSystem(new SceneSystem())
{
m_sceneWrapper = AZStd::make_unique<AssImpSDKWrapper::AssImpSceneWrapper>();
BindToCall(&FbxImporter::ImportProcessing);
BindToCall(&SceneImporter::ImportProcessing);
}
void FbxImporter::Reflect(ReflectContext* context)
void SceneImporter::Reflect(ReflectContext* context)
{
SerializeContext* serializeContext = azrtti_cast<SerializeContext*>(context);
if (serializeContext)
{
serializeContext->Class<FbxImporter, SceneCore::LoadingComponent>()->Version(2); // SPEC-5776
serializeContext->Class<SceneImporter, SceneCore::LoadingComponent>()->Version(2); // SPEC-5776
}
}
Events::ProcessingResult FbxImporter::ImportProcessing(Events::ImportEventContext& context)
Events::ProcessingResult SceneImporter::ImportProcessing(Events::ImportEventContext& context)
{
m_sceneWrapper->Clear();
@@ -77,7 +77,7 @@ namespace AZ
return Events::ProcessingResult::Failure;
}
convertFunc = AZStd::bind(&FbxImporter::ConvertFbxScene, this, AZStd::placeholders::_1);
convertFunc = AZStd::bind(&SceneImporter::ConvertScene, this, AZStd::placeholders::_1);
if (convertFunc(context.GetScene()))
{
@@ -89,10 +89,10 @@ namespace AZ
}
}
bool FbxImporter::ConvertFbxScene(Containers::Scene& scene) const
bool SceneImporter::ConvertScene(Containers::Scene& scene) const
{
std::shared_ptr<SDKNode::NodeWrapper> fbxRoot = m_sceneWrapper->GetRootNode();
if (!fbxRoot)
std::shared_ptr<SDKNode::NodeWrapper> sceneRoot = m_sceneWrapper->GetRootNode();
if (!sceneRoot)
{
return false;
}
@@ -123,13 +123,13 @@ namespace AZ
break;
}
AZStd::queue<FbxSceneBuilder::QueueNode> nodes;
nodes.emplace(AZStd::move(fbxRoot), scene.GetGraph().GetRoot());
AZStd::queue<SceneBuilder::QueueNode> nodes;
nodes.emplace(AZStd::move(sceneRoot), scene.GetGraph().GetRoot());
RenamedNodesMap nodeNameMap;
while (!nodes.empty())
{
FbxSceneBuilder::QueueNode& node = nodes.front();
SceneBuilder::QueueNode& node = nodes.front();
AZ_Assert(node.m_node, "Empty asset importer node queued");
if (!nodeNameMap.RegisterNode(node.m_node, scene.GetGraph(), node.m_parent))
{
@@ -240,12 +240,12 @@ namespace AZ
return true;
}
void FbxImporter::SanitizeNodeName(AZStd::string& nodeName) const
void SceneImporter::SanitizeNodeName(AZStd::string& nodeName) const
{
// Replace % with something else so it is safe for use in printfs.
AZStd::replace(nodeName.begin(), nodeName.end(), '%', '_');
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -12,7 +12,7 @@
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
#include <SceneAPI/SceneCore/Containers/SceneGraph.h>
#include <SceneAPI/SceneCore/Events/ImportEventContext.h>
#include <SceneAPI/FbxSceneBuilder/FbxSceneSystem.h>
#include <SceneAPI/SceneBuilder/SceneSystem.h>
#include <SceneAPI/SDKWrapper/SceneWrapper.h>
namespace AZ
@@ -24,28 +24,28 @@ namespace AZ
class Scene;
}
namespace FbxSceneBuilder
namespace SceneBuilder
{
class FbxImporter
class SceneImporter
: public SceneCore::LoadingComponent
{
public:
AZ_COMPONENT(FbxImporter, "{D5EE21B6-8B73-45BF-B711-31346E0BEDB3}", SceneCore::LoadingComponent);
AZ_COMPONENT(SceneImporter, "{D5EE21B6-8B73-45BF-B711-31346E0BEDB3}", SceneCore::LoadingComponent);
FbxImporter();
~FbxImporter() override = default;
SceneImporter();
~SceneImporter() override = default;
static void Reflect(ReflectContext* context);
Events::ProcessingResult ImportProcessing(Events::ImportEventContext& context);
protected:
bool ConvertFbxScene(Containers::Scene& scene) const;
bool ConvertScene(Containers::Scene& scene) const;
void SanitizeNodeName(AZStd::string& nodeName) const;
AZStd::unique_ptr<SDKScene::SceneWrapperBase> m_sceneWrapper;
AZStd::shared_ptr<FbxSceneSystem> m_sceneSystem;
AZStd::shared_ptr<SceneSystem> m_sceneSystem;
};
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -6,7 +6,7 @@
*/
#include <AzCore/Math/Vector3.h>
#include <SceneAPI/FbxSceneBuilder/FbxSceneSystem.h>
#include <SceneAPI/SceneBuilder/SceneSystem.h>
#include <SceneAPI/SceneCore/Utilities/Reporting.h>
#include <SceneAPI/SDKWrapper/AssImpSceneWrapper.h>
#include <SceneAPI/SDKWrapper/AssImpTypeConverter.h>
@@ -17,7 +17,7 @@ namespace AZ
{
namespace SceneAPI
{
FbxSceneSystem::FbxSceneSystem() :
SceneSystem::SceneSystem() :
m_unitSizeInMeters(1.0f),
m_originalUnitSizeInMeters(1.0f),
m_adjustTransform(nullptr),
@@ -25,15 +25,15 @@ namespace AZ
{
}
void FbxSceneSystem::Set(const SDKScene::SceneWrapperBase* fbxScene)
void SceneSystem::Set(const SDKScene::SceneWrapperBase* scene)
{
// Get unit conversion factor to meter.
if (!azrtti_istypeof<AssImpSDKWrapper::AssImpSceneWrapper>(fbxScene))
if (!azrtti_istypeof<AssImpSDKWrapper::AssImpSceneWrapper>(scene))
{
return;
}
const AssImpSDKWrapper::AssImpSceneWrapper* assImpScene = azrtti_cast<const AssImpSDKWrapper::AssImpSceneWrapper*>(fbxScene);
const AssImpSDKWrapper::AssImpSceneWrapper* assImpScene = azrtti_cast<const AssImpSDKWrapper::AssImpSceneWrapper*>(scene);
// If either meta data piece is not available, the default of 1 will be used.
assImpScene->GetAssImpScene()->mMetaData->Get("UnitScaleFactor", m_unitSizeInMeters);
@@ -111,7 +111,7 @@ namespace AZ
}
}
void FbxSceneSystem::SwapVec3ForUpAxis(Vector3& swapVector) const
void SceneSystem::SwapVec3ForUpAxis(Vector3& swapVector) const
{
if (m_adjustTransform)
{
@@ -119,7 +119,7 @@ namespace AZ
}
}
void FbxSceneSystem::SwapTransformForUpAxis(DataTypes::MatrixType& inOutTransform) const
void SceneSystem::SwapTransformForUpAxis(DataTypes::MatrixType& inOutTransform) const
{
if (m_adjustTransform)
{
@@ -127,19 +127,19 @@ namespace AZ
}
}
void FbxSceneSystem::ConvertUnit(Vector3& scaleVector) const
void SceneSystem::ConvertUnit(Vector3& scaleVector) const
{
scaleVector *= m_unitSizeInMeters;
}
void FbxSceneSystem::ConvertUnit(DataTypes::MatrixType& inOutTransform) const
void SceneSystem::ConvertUnit(DataTypes::MatrixType& inOutTransform) const
{
Vector3 translation = inOutTransform.GetTranslation();
translation *= m_unitSizeInMeters;
inOutTransform.SetTranslation(translation);
}
void FbxSceneSystem::ConvertBoneUnit(DataTypes::MatrixType& inOutTransform) const
void SceneSystem::ConvertBoneUnit(DataTypes::MatrixType& inOutTransform) const
{
@@ -8,7 +8,7 @@
*/
#include <AzCore/std/smart_ptr/unique_ptr.h>
#include <SceneAPI/FbxSceneBuilder/FbxSceneBuilderConfiguration.h>
#include <SceneAPI/SceneBuilder/SceneBuilderConfiguration.h>
#include <SceneAPI/SceneCore/DataTypes/MatrixType.h>
namespace AZ
@@ -22,10 +22,10 @@ namespace AZ
namespace SceneAPI
{
class FBX_SCENE_BUILDER_API FbxSceneSystem
class SCENE_BUILDER_API SceneSystem
{
public:
FbxSceneSystem();
SceneSystem();
void Set(const SDKScene::SceneWrapperBase* sceneWrapper);
void SwapVec3ForUpAxis(Vector3& swapVector) const;
@@ -34,11 +34,11 @@ namespace AZ
void ConvertUnit(DataTypes::MatrixType& inOutTransform) const;
void ConvertBoneUnit(DataTypes::MatrixType& inOutTransform) const;
//! Get effect unit size in meters of this Fbx Scene, internally FBX saves it in the following manner
//! Get effect unit size in meters of this scene, internally FBX saves it in the following manner
//! GlobalSettings: {
//! P : "UnitScaleFactor", "double", "Number", "", 2.54
float GetUnitSizeInMeters() const { return m_unitSizeInMeters; }
//! Get original unit size in meters of this Fbx Scene, internally FBX saves it in the following manner
//! Get original unit size in meters of this scene, internally FBX saves it in the following manner
//! GlobalSettings: {
//! P : "OriginalUnitScaleFactor", "double", "Number", "", 2.54
float GetOriginalUnitSizeInMeters() const { return m_originalUnitSizeInMeters; }
@@ -8,7 +8,7 @@
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzCore/std/smart_ptr/shared_ptr.h>
#include <AzTest/AzTest.h>
#include <SceneAPI/FbxSceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneBuilder/Importers/ImporterUtilities.h>
#include <SceneAPI/SceneCore/Containers/Scene.h>
#include <SceneAPI/SceneCore/DataTypes/IGraphObject.h>
#include <SceneAPI/SceneData/GraphData/MeshData.h>
@@ -18,9 +18,9 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
TEST(FbxImporterUtilityTests, AreSceneGraphsEqual_EmptySceneGraphs_ReturnsTrue)
TEST(SceneImporterUtilityTests, AreSceneGraphsEqual_EmptySceneGraphs_ReturnsTrue)
{
Containers::SceneGraph lhsGraph;
Containers::SceneGraph rhsGraph;
@@ -31,7 +31,7 @@ namespace AZ
EXPECT_TRUE(sceneGraphsEqual);
}
TEST(FbxImporterUtilityTests, AreSceneGraphsEqual_SameNameSingleNodeBothNull_ReturnsTrue)
TEST(SceneImporterUtilityTests, AreSceneGraphsEqual_SameNameSingleNodeBothNull_ReturnsTrue)
{
Containers::SceneGraph lhsGraph;
lhsGraph.AddChild(lhsGraph.GetRoot(), "testChild");
@@ -44,7 +44,7 @@ namespace AZ
EXPECT_TRUE(sceneGraphsEqual);
}
TEST(FbxImporterUtilityTests, AreSceneGraphsEqual_SameNameSingleNodeSameType_ReturnsTrue)
TEST(SceneImporterUtilityTests, AreSceneGraphsEqual_SameNameSingleNodeSameType_ReturnsTrue)
{
Containers::SceneGraph lhsGraph;
AZStd::shared_ptr<DataTypes::IGraphObject> lhsData = AZStd::make_shared<SceneData::GraphData::MeshData>();
@@ -59,7 +59,7 @@ namespace AZ
EXPECT_TRUE(sceneGraphsEqual);
}
TEST(FbxImporterUtilityTests, AreSceneGraphsEqual_SameNameSingleNodeOneNull_ReturnsFalse)
TEST(SceneImporterUtilityTests, AreSceneGraphsEqual_SameNameSingleNodeOneNull_ReturnsFalse)
{
Containers::SceneGraph lhsGraph;
AZStd::shared_ptr<DataTypes::IGraphObject> lhsData = AZStd::make_shared<SceneData::GraphData::MeshData>();
@@ -73,7 +73,7 @@ namespace AZ
EXPECT_FALSE(sceneGraphsEqual);
}
TEST(FbxImporterUtilityTests, AreSceneGraphsEqual_SameNameSingleNodeDifferentTypes_ReturnsFalse)
TEST(SceneImporterUtilityTests, AreSceneGraphsEqual_SameNameSingleNodeDifferentTypes_ReturnsFalse)
{
Containers::SceneGraph lhsGraph;
AZStd::shared_ptr<DataTypes::IGraphObject> lhsData = AZStd::make_shared<SceneData::GraphData::MeshData>();
@@ -88,7 +88,7 @@ namespace AZ
EXPECT_FALSE(sceneGraphsEqual);
}
TEST(FbxImporterUtilityTests, AreSceneGraphsEqual_SameNameOneEmptyOneSingleNode_ReturnsFalse)
TEST(SceneImporterUtilityTests, AreSceneGraphsEqual_SameNameOneEmptyOneSingleNode_ReturnsFalse)
{
Containers::SceneGraph lhsGraph;
AZStd::shared_ptr<DataTypes::IGraphObject> lhsData = AZStd::make_shared<SceneData::GraphData::MeshData>();
@@ -101,7 +101,7 @@ namespace AZ
EXPECT_FALSE(sceneGraphsEqual);
}
TEST(FbxImpoterUtilityTests, AreSceneGraphsEqual_DifferentNamesSingleNodeBothNull_ReturnsFalse)
TEST(SceneImpoterUtilityTests, AreSceneGraphsEqual_DifferentNamesSingleNodeBothNull_ReturnsFalse)
{
Containers::SceneGraph lhsGraph;
lhsGraph.AddChild(lhsGraph.GetRoot(), "testChild");
@@ -114,7 +114,7 @@ namespace AZ
EXPECT_FALSE(sceneGraphsEqual);
}
TEST(FbxImporterUtilityTests, AreSceneGraphsEqual_SecondGraphExtraChild_ReturnsFalse)
TEST(SceneImporterUtilityTests, AreSceneGraphsEqual_SecondGraphExtraChild_ReturnsFalse)
{
Containers::SceneGraph lhsGraph;
lhsGraph.AddChild(lhsGraph.GetRoot(), "testChild");
@@ -127,6 +127,6 @@ namespace AZ
EXPECT_FALSE(sceneGraphsEqual);
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -8,7 +8,7 @@
#include <AzCore/std/smart_ptr/make_shared.h>
#include <AzCore/std/smart_ptr/shared_ptr.h>
#include <AzTest/AzTest.h>
#include <SceneAPI/FbxSceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneBuilder/Importers/Utilities/RenamedNodesMap.h>
#include <SceneAPI/SceneCore/Containers/SceneGraph.h>
#include <SceneAPI/SceneCore/DataTypes/IGraphObject.h>
#include <SceneAPI/SceneData/GraphData/MeshData.h>
@@ -17,7 +17,7 @@ namespace AZ
{
namespace SceneAPI
{
namespace FbxSceneBuilder
namespace SceneBuilder
{
TEST(RenamedNodesMapTests, SanitizeNodeName_ValidNameProvided_ReturnsFalseAndNameUnchanged)
{
@@ -79,6 +79,6 @@ namespace AZ
EXPECT_TRUE(result);
EXPECT_STREQ("Child_2", name.c_str());
}
} // namespace FbxSceneBuilder
} // namespace SceneBuilder
} // namespace SceneAPI
} // namespace AZ
@@ -10,11 +10,11 @@
#include <AzCore/Module/DynamicModuleHandle.h>
#include <AzCore/Memory/SystemAllocator.h>
class FbxSceneBuilderTestEnvironment
class SceneBuilderTestEnvironment
: public AZ::Test::ITestEnvironment
{
public:
virtual ~FbxSceneBuilderTestEnvironment()
virtual ~SceneBuilderTestEnvironment()
{}
protected:
@@ -23,31 +23,31 @@ protected:
AZ::AllocatorInstance<AZ::SystemAllocator>::Create();
sceneCoreModule = AZ::DynamicModuleHandle::Create("SceneCore");
AZ_Assert(sceneCoreModule, "FbxSceneBuilder unit tests failed to create SceneCore module.");
AZ_Assert(sceneCoreModule, "SceneBuilder unit tests failed to create SceneCore module.");
bool loaded = sceneCoreModule->Load(false);
AZ_Assert(loaded, "FbxSceneBuilder unit tests failed to load SceneCore module.");
AZ_Assert(loaded, "SceneBuilder unit tests failed to load SceneCore module.");
auto init = sceneCoreModule->GetFunction<AZ::InitializeDynamicModuleFunction>(AZ::InitializeDynamicModuleFunctionName);
AZ_Assert(init, "FbxSceneBuilder unit tests failed to find the initialization function the SceneCore module.");
AZ_Assert(init, "SceneBuilder unit tests failed to find the initialization function the SceneCore module.");
(*init)(AZ::Environment::GetInstance());
sceneDataModule = AZ::DynamicModuleHandle::Create("SceneData");
AZ_Assert(sceneDataModule, "SceneData unit tests failed to create SceneData module.");
loaded = sceneDataModule->Load(false);
AZ_Assert(loaded, "FbxSceneBuilder unit tests failed to load SceneData module.");
AZ_Assert(loaded, "SceneBuilder unit tests failed to load SceneData module.");
init = sceneDataModule->GetFunction<AZ::InitializeDynamicModuleFunction>(AZ::InitializeDynamicModuleFunctionName);
AZ_Assert(init, "FbxSceneBuilder unit tests failed to find the initialization function the SceneData module.");
AZ_Assert(init, "SceneBuilder unit tests failed to find the initialization function the SceneData module.");
(*init)(AZ::Environment::GetInstance());
}
void TeardownEnvironment() override
{
auto uninit = sceneDataModule->GetFunction<AZ::UninitializeDynamicModuleFunction>(AZ::UninitializeDynamicModuleFunctionName);
AZ_Assert(uninit, "FbxSceneBuilder unit tests failed to find the uninitialization function the SceneData module.");
AZ_Assert(uninit, "SceneBuilder unit tests failed to find the uninitialization function the SceneData module.");
(*uninit)();
sceneDataModule.reset();
uninit = sceneCoreModule->GetFunction<AZ::UninitializeDynamicModuleFunction>(AZ::UninitializeDynamicModuleFunctionName);
AZ_Assert(uninit, "FbxSceneBuilder unit tests failed to find the uninitialization function the SceneCore module.");
AZ_Assert(uninit, "SceneBuilder unit tests failed to find the uninitialization function the SceneCore module.");
(*uninit)();
sceneCoreModule.reset();
@@ -59,5 +59,5 @@ private:
AZStd::unique_ptr<AZ::DynamicModuleHandle> sceneDataModule;
};
AZ_UNIT_TEST_HOOK(new FbxSceneBuilderTestEnvironment);
AZ_UNIT_TEST_HOOK(new SceneBuilderTestEnvironment);
@@ -6,13 +6,13 @@
#
set(FILES
FbxSceneBuilderConfiguration.h
FbxImportRequestHandler.h
FbxImportRequestHandler.cpp
FbxImporter.h
FbxImporter.cpp
FbxSceneSystem.h
FbxSceneSystem.cpp
SceneBuilderConfiguration.h
SceneImportRequestHandler.h
SceneImportRequestHandler.cpp
SceneImporter.h
SceneImporter.cpp
SceneSystem.h
SceneSystem.cpp
ImportContexts/ImportContexts.h
ImportContexts/ImportContexts.cpp
ImportContexts/AssImpImportContexts.h
@@ -7,6 +7,6 @@
set(FILES
Tests/TestsMain.cpp
Tests/Importers/FbxImporterUtilitiesTests.cpp
Tests/Importers/SceneImporterUtilitiesTests.cpp
Tests/Importers/Utilities/RenamedNodesMapTests.cpp
)
@@ -27,7 +27,7 @@ namespace AZ
{
class IGraphObject;
}
namespace FbxSceneBuilder
namespace SceneBuilder
{
struct QueueNode;
struct ImportContext;
@@ -58,8 +58,8 @@ namespace AZ
class NodeIndex
{
friend class SceneGraph;
friend struct FbxSceneBuilder::QueueNode;
friend struct FbxSceneBuilder::ImportContext;
friend struct SceneBuilder::QueueNode;
friend struct SceneBuilder::ImportContext;
public:
// Type needs to be able to store an index in a NodeHeader (currently 21-bits).
using IndexType = uint32_t;
@@ -80,11 +80,11 @@ namespace AZ
virtual unsigned int GetVertexIndex(int faceIndex, int vertexIndexInFace) const = 0;
static const int s_invalidMaterialId = 0;
// Set the unit size of the mesh, from the point of FBX SDK
// Set the unit size of the mesh, from the point of the source SDK
void SetUnitSizeInMeters(float size) { m_unitSizeInMeters = size; }
float GetUnitSizeInMeters() const { return m_unitSizeInMeters; }
// Set the original unit size of the mesh, from the point of FBX SDK
// Set the original unit size of the mesh, from the point of the source SDK
void SetOriginalUnitSizeInMeters(float size) { m_originalUnitSizeInMeters = size; }
float GetOriginalUnitSizeInMeters() const { return m_originalUnitSizeInMeters; }