Merge branch 'development' into cmake/SPEC-2513_w4244
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com> # Conflicts: # Code/Framework/AzToolsFramework/AzToolsFramework/Input/QtEventToAzInputManager.cpp
This commit is contained in:
@@ -21,11 +21,16 @@ namespace AZ
|
||||
{
|
||||
|
||||
AssImpMaterialWrapper::AssImpMaterialWrapper(aiMaterial* aiMaterial)
|
||||
:SDKMaterial::MaterialWrapper(aiMaterial)
|
||||
:m_assImpMaterial(aiMaterial)
|
||||
{
|
||||
AZ_Assert(aiMaterial, "Asset Importer Material cannot be null");
|
||||
}
|
||||
|
||||
aiMaterial* AssImpMaterialWrapper::GetAssImpMaterial() const
|
||||
{
|
||||
return m_assImpMaterial;
|
||||
}
|
||||
|
||||
AZStd::string AssImpMaterialWrapper::GetName() const
|
||||
{
|
||||
return m_assImpMaterial->GetName().C_Str();
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace AZ
|
||||
AZ_RTTI(AssImpMaterialWrapper, "{66992628-CFCE-441B-8849-9344A49AFAC9}", SDKMaterial::MaterialWrapper);
|
||||
AssImpMaterialWrapper(aiMaterial* aiMaterial);
|
||||
~AssImpMaterialWrapper() override = default;
|
||||
aiMaterial* GetAssImpMaterial() const;
|
||||
AZStd::string GetName() const override;
|
||||
AZ::u64 GetUniqueId() const override;
|
||||
AZ::Vector3 GetDiffuseColor() const override;
|
||||
@@ -38,6 +39,9 @@ namespace AZ
|
||||
AZStd::optional<bool> GetUseEmissiveMap() const;
|
||||
AZStd::optional<float> GetEmissiveIntensity() const;
|
||||
AZStd::optional<bool> GetUseAOMap() const;
|
||||
|
||||
protected:
|
||||
aiMaterial* m_assImpMaterial = nullptr;
|
||||
};
|
||||
} // namespace AssImpSDKWrapper
|
||||
}// namespace AZ
|
||||
|
||||
@@ -17,14 +17,16 @@ namespace AZ
|
||||
namespace AssImpSDKWrapper
|
||||
{
|
||||
AssImpNodeWrapper::AssImpNodeWrapper(aiNode* sourceNode)
|
||||
:SDKNode::NodeWrapper(sourceNode)
|
||||
: m_assImpNode(sourceNode)
|
||||
{
|
||||
AZ_Assert(m_assImpNode, "Asset Importer Node cannot be null");
|
||||
}
|
||||
|
||||
AssImpNodeWrapper::~AssImpNodeWrapper()
|
||||
aiNode* AssImpNodeWrapper::GetAssImpNode() const
|
||||
{
|
||||
return m_assImpNode;
|
||||
}
|
||||
|
||||
const char* AssImpNodeWrapper::GetName() const
|
||||
{
|
||||
return m_assImpNode->mName.C_Str();
|
||||
|
||||
@@ -20,7 +20,8 @@ namespace AZ
|
||||
public:
|
||||
AZ_RTTI(AssImpNodeWrapper, "{1043260B-9076-49B7-AD38-EF62E85F7C1D}", SDKNode::NodeWrapper);
|
||||
AssImpNodeWrapper(aiNode* sourceNode);
|
||||
~AssImpNodeWrapper() override;
|
||||
~AssImpNodeWrapper() override = default;
|
||||
aiNode* GetAssImpNode() const;
|
||||
const char* GetName() const override;
|
||||
AZ::u64 GetUniqueId() const override;
|
||||
int GetChildCount() const override;
|
||||
@@ -28,6 +29,9 @@ namespace AZ
|
||||
const bool ContainsMesh();
|
||||
bool ContainsBones(const aiScene& scene) const;
|
||||
int GetMaterialCount() const override;
|
||||
|
||||
protected:
|
||||
aiNode* m_assImpNode = nullptr;
|
||||
};
|
||||
} // namespace AssImpSDKWrapper
|
||||
}// namespace AZ
|
||||
|
||||
@@ -25,15 +25,10 @@ namespace AZ
|
||||
namespace AssImpSDKWrapper
|
||||
{
|
||||
AssImpSceneWrapper::AssImpSceneWrapper()
|
||||
: SDKScene::SceneWrapperBase()
|
||||
{
|
||||
}
|
||||
AssImpSceneWrapper::AssImpSceneWrapper(aiScene* aiScene)
|
||||
: SDKScene::SceneWrapperBase(aiScene)
|
||||
{
|
||||
}
|
||||
|
||||
AssImpSceneWrapper::~AssImpSceneWrapper()
|
||||
: m_assImpScene(aiScene)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -114,6 +109,11 @@ namespace AZ
|
||||
m_importer.FreeScene();
|
||||
}
|
||||
|
||||
const aiScene* AssImpSceneWrapper::GetAssImpScene() const
|
||||
{
|
||||
return m_assImpScene;
|
||||
}
|
||||
|
||||
AZStd::pair<AssImpSceneWrapper::AxisVector, int32_t> AssImpSceneWrapper::GetUpVectorAndSign() const
|
||||
{
|
||||
AZStd::pair<AssImpSceneWrapper::AxisVector, int32_t> result(AxisVector::Z, 1);
|
||||
|
||||
@@ -21,13 +21,14 @@ namespace AZ
|
||||
AZ_RTTI(AssImpSceneWrapper, "{43A61F62-DCD4-4132-B80B-F2FBC80740BC}", SDKScene::SceneWrapperBase);
|
||||
AssImpSceneWrapper();
|
||||
AssImpSceneWrapper(aiScene* aiScene);
|
||||
~AssImpSceneWrapper();
|
||||
~AssImpSceneWrapper() override = default;
|
||||
|
||||
bool LoadSceneFromFile(const char* fileName) override;
|
||||
bool LoadSceneFromFile(const AZStd::string& fileName) override;
|
||||
|
||||
const std::shared_ptr<SDKNode::NodeWrapper> GetRootNode() const override;
|
||||
std::shared_ptr<SDKNode::NodeWrapper> GetRootNode() override;
|
||||
virtual const aiScene* GetAssImpScene() const;
|
||||
void Clear() override;
|
||||
|
||||
enum class AxisVector
|
||||
@@ -43,7 +44,7 @@ namespace AZ
|
||||
|
||||
AZStd::string GetSceneFileName() const { return m_sceneFileName; }
|
||||
protected:
|
||||
|
||||
const aiScene* m_assImpScene = nullptr;
|
||||
Assimp::Importer m_importer;
|
||||
|
||||
// FBX SDK automatically resolved relative paths to textures based on the current file location.
|
||||
|
||||
@@ -12,21 +12,6 @@ namespace AZ
|
||||
{
|
||||
namespace SDKMaterial
|
||||
{
|
||||
MaterialWrapper::MaterialWrapper(aiMaterial* assImpMaterial)
|
||||
: m_assImpMaterial(assImpMaterial)
|
||||
{
|
||||
}
|
||||
|
||||
MaterialWrapper::~MaterialWrapper()
|
||||
{
|
||||
m_assImpMaterial = nullptr;
|
||||
}
|
||||
|
||||
aiMaterial* MaterialWrapper::GetAssImpMaterial()
|
||||
{
|
||||
return m_assImpMaterial;
|
||||
}
|
||||
|
||||
AZStd::string MaterialWrapper::GetName() const
|
||||
{
|
||||
return AZStd::string();
|
||||
|
||||
@@ -34,10 +34,7 @@ namespace AZ
|
||||
BaseColor
|
||||
};
|
||||
|
||||
MaterialWrapper(aiMaterial* assImpmaterial);
|
||||
virtual ~MaterialWrapper();
|
||||
|
||||
aiMaterial* GetAssImpMaterial();
|
||||
virtual ~MaterialWrapper() = default;
|
||||
|
||||
virtual AZStd::string GetName() const;
|
||||
virtual AZ::u64 GetUniqueId() const;
|
||||
@@ -47,9 +44,6 @@ namespace AZ
|
||||
virtual AZ::Vector3 GetEmissiveColor() const;
|
||||
virtual float GetOpacity() const;
|
||||
virtual float GetShininess() const;
|
||||
|
||||
protected:
|
||||
aiMaterial* m_assImpMaterial = nullptr;
|
||||
};
|
||||
} // namespace SDKMaterial
|
||||
} // namespace AZ
|
||||
|
||||
@@ -12,21 +12,6 @@ namespace AZ
|
||||
{
|
||||
namespace SDKNode
|
||||
{
|
||||
NodeWrapper::NodeWrapper(aiNode* aiNode)
|
||||
: m_assImpNode(aiNode)
|
||||
{
|
||||
}
|
||||
|
||||
NodeWrapper::~NodeWrapper()
|
||||
{
|
||||
m_assImpNode = nullptr;
|
||||
}
|
||||
|
||||
aiNode* NodeWrapper::GetAssImpNode()
|
||||
{
|
||||
return m_assImpNode;
|
||||
}
|
||||
|
||||
const char* NodeWrapper::GetName() const
|
||||
{
|
||||
return "";
|
||||
|
||||
@@ -20,9 +20,7 @@ namespace AZ
|
||||
public:
|
||||
AZ_RTTI(NodeWrapper, "{5EB0897B-9728-44B7-B056-BA34AAF14715}");
|
||||
|
||||
NodeWrapper() = default;
|
||||
NodeWrapper(aiNode* aiNode);
|
||||
virtual ~NodeWrapper();
|
||||
virtual ~NodeWrapper() = default;
|
||||
|
||||
enum CurveNodeComponent
|
||||
{
|
||||
@@ -31,16 +29,12 @@ namespace AZ
|
||||
Component_Z
|
||||
};
|
||||
|
||||
aiNode* GetAssImpNode();
|
||||
|
||||
virtual const char* GetName() const;
|
||||
virtual AZ::u64 GetUniqueId() const;
|
||||
virtual int GetMaterialCount() const;
|
||||
|
||||
virtual int GetChildCount()const;
|
||||
virtual const std::shared_ptr<NodeWrapper> GetChild(int childIndex) const;
|
||||
|
||||
aiNode* m_assImpNode = nullptr;
|
||||
};
|
||||
} //namespace Node
|
||||
} //namespace AZ
|
||||
|
||||
@@ -13,12 +13,6 @@ namespace AZ
|
||||
{
|
||||
const char* SceneWrapperBase::s_defaultSceneName = "myScene";
|
||||
|
||||
SceneWrapperBase::SceneWrapperBase(aiScene* aiScene)
|
||||
: m_assImpScene(aiScene)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
bool SceneWrapperBase::LoadSceneFromFile([[maybe_unused]] const char* fileName)
|
||||
{
|
||||
return false;
|
||||
@@ -40,12 +34,5 @@ namespace AZ
|
||||
void SceneWrapperBase::Clear()
|
||||
{
|
||||
}
|
||||
|
||||
const aiScene* SceneWrapperBase::GetAssImpScene() const
|
||||
{
|
||||
return m_assImpScene;
|
||||
}
|
||||
|
||||
|
||||
} //namespace Scene
|
||||
}// namespace AZ
|
||||
|
||||
@@ -20,9 +20,7 @@ namespace AZ
|
||||
{
|
||||
public:
|
||||
AZ_RTTI(SceneWrapperBase, "{703CD344-2C75-4F30-8CE2-6BDEF2511AFD}");
|
||||
SceneWrapperBase() = default;
|
||||
virtual ~SceneWrapperBase() = default;
|
||||
SceneWrapperBase(aiScene* aiScene);
|
||||
|
||||
virtual bool LoadSceneFromFile(const char* fileName);
|
||||
virtual bool LoadSceneFromFile(const AZStd::string& fileName);
|
||||
@@ -31,10 +29,6 @@ namespace AZ
|
||||
virtual std::shared_ptr<SDKNode::NodeWrapper> GetRootNode();
|
||||
|
||||
virtual void Clear();
|
||||
|
||||
virtual const aiScene* GetAssImpScene() const;
|
||||
|
||||
const aiScene* m_assImpScene = nullptr;
|
||||
|
||||
static const char* s_defaultSceneName;
|
||||
};
|
||||
|
||||
@@ -56,9 +56,9 @@ namespace AZ
|
||||
Events::ProcessingResultCombiner combinedMaterialImportResults;
|
||||
|
||||
AZStd::unordered_map<int, AZStd::shared_ptr<SceneData::GraphData::MaterialData>> materialMap;
|
||||
for (unsigned int idx = 0; idx < context.m_sourceNode.m_assImpNode->mNumMeshes; ++idx)
|
||||
for (unsigned int idx = 0; idx < context.m_sourceNode.GetAssImpNode()->mNumMeshes; ++idx)
|
||||
{
|
||||
int meshIndex = context.m_sourceNode.m_assImpNode->mMeshes[idx];
|
||||
int meshIndex = context.m_sourceNode.GetAssImpNode()->mMeshes[idx];
|
||||
const aiMesh* assImpMesh = context.m_sourceScene.GetAssImpScene()->mMeshes[meshIndex];
|
||||
AZ_Assert(assImpMesh, "Asset Importer Mesh should not be null.");
|
||||
int materialIndex = assImpMesh->mMaterialIndex;
|
||||
|
||||
@@ -222,7 +222,12 @@ namespace AZ
|
||||
int childCount = node.m_node->GetChildCount();
|
||||
for (int i = 0; i < childCount; ++i)
|
||||
{
|
||||
std::shared_ptr<AssImpSDKWrapper::AssImpNodeWrapper> child = std::make_shared<AssImpSDKWrapper::AssImpNodeWrapper>(node.m_node->GetChild(i)->GetAssImpNode());
|
||||
const std::shared_ptr<SDKNode::NodeWrapper> nodeWrapper = node.m_node->GetChild(i);
|
||||
auto assImpNodeWrapper = azrtti_cast<AssImpSDKWrapper::AssImpNodeWrapper*>(nodeWrapper.get());
|
||||
|
||||
AZ_Assert(assImpNodeWrapper, "Child node is not the expected AssImpNodeWrapper type");
|
||||
|
||||
std::shared_ptr<AssImpSDKWrapper::AssImpNodeWrapper> child = std::make_shared<AssImpSDKWrapper::AssImpNodeWrapper>(assImpNodeWrapper->GetAssImpNode());
|
||||
if (child)
|
||||
{
|
||||
nodes.emplace(AZStd::move(child), newNode);
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace AZ
|
||||
}
|
||||
|
||||
AZStd::shared_ptr<Containers::Scene> AssetImportRequest::LoadSceneFromVerifiedPath(const AZStd::string& assetFilePath, const Uuid& sourceGuid,
|
||||
RequestingApplication requester)
|
||||
RequestingApplication requester, const Uuid& loadingComponentUuid)
|
||||
{
|
||||
AZStd::string sceneName;
|
||||
AzFramework::StringFunc::Path::GetFileName(assetFilePath.c_str(), sceneName);
|
||||
@@ -113,7 +113,7 @@ namespace AZ
|
||||
|
||||
// Unique pointer, will deactivate and clean up once going out of scope.
|
||||
SceneCore::EntityConstructor::EntityPointer loaders =
|
||||
SceneCore::EntityConstructor::BuildEntity("Scene Loading", SceneCore::LoadingComponent::TYPEINFO_Uuid());
|
||||
SceneCore::EntityConstructor::BuildEntity("Scene Loading", loadingComponentUuid);
|
||||
|
||||
ProcessingResultCombiner areAllPrepared;
|
||||
AssetImportRequestBus::BroadcastResult(areAllPrepared, &AssetImportRequestBus::Events::PrepareForAssetLoading, *scene, requester);
|
||||
|
||||
@@ -102,8 +102,9 @@ namespace AZ
|
||||
//! @param sourceGuid The guid assigned to the source file (not the manifest).
|
||||
//! @param requester The application making the request to load the file. This can be used to optimize the type and amount of data
|
||||
//! to load.
|
||||
//! @param loadingComponentUuid The UUID assigned to the loading component.
|
||||
static AZStd::shared_ptr<Containers::Scene> LoadSceneFromVerifiedPath(const AZStd::string& assetFilePath,
|
||||
const Uuid&sourceGuid, RequestingApplication requester);
|
||||
const Uuid& sourceGuid, RequestingApplication requester, const Uuid& loadingComponentUuid);
|
||||
|
||||
//! Utility function to determine if a given file path points to a scene manifest file (.assetinfo).
|
||||
//! @param filePath A relative or absolute path to the file to check.
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <AzCore/Math/Guid.h>
|
||||
#include <SceneAPI/SceneCore/Containers/Scene.h>
|
||||
#include <SceneAPI/SceneCore/Events/AssetImportRequest.h>
|
||||
#include <SceneAPI/SceneCore/Components/LoadingComponent.h>
|
||||
#include <SceneAPI/SceneCore/Mocks/Events/MockAssetImportRequest.h>
|
||||
|
||||
namespace AZ
|
||||
@@ -184,7 +185,7 @@ namespace AZ
|
||||
EXPECT_CALL(handler, UpdateManifest(_, _, _)).Times(0);
|
||||
|
||||
AZStd::shared_ptr<Containers::Scene> result =
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic);
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic, SceneCore::LoadingComponent::TYPEINFO_Uuid());
|
||||
EXPECT_EQ(nullptr, result);
|
||||
}
|
||||
|
||||
@@ -207,7 +208,7 @@ namespace AZ
|
||||
EXPECT_CALL(handler, UpdateManifest(_, _, _)).Times(0);
|
||||
|
||||
AZStd::shared_ptr<Containers::Scene> result =
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic);
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic, SceneCore::LoadingComponent::TYPEINFO_Uuid());
|
||||
EXPECT_EQ(nullptr, result);
|
||||
}
|
||||
|
||||
@@ -230,7 +231,7 @@ namespace AZ
|
||||
EXPECT_CALL(handler, UpdateManifest(_, _, _)).Times(0);
|
||||
|
||||
AZStd::shared_ptr<Containers::Scene> result =
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic);
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic, SceneCore::LoadingComponent::TYPEINFO_Uuid());
|
||||
EXPECT_EQ(nullptr, result);
|
||||
}
|
||||
|
||||
@@ -253,7 +254,7 @@ namespace AZ
|
||||
EXPECT_CALL(handler, UpdateManifest(_, _, _)).Times(0);
|
||||
|
||||
AZStd::shared_ptr<Containers::Scene> result =
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic);
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic, SceneCore::LoadingComponent::TYPEINFO_Uuid());
|
||||
EXPECT_EQ(nullptr, result);
|
||||
}
|
||||
|
||||
@@ -285,7 +286,7 @@ namespace AZ
|
||||
EXPECT_CALL(manifestHandler, UpdateManifest(_, _, _)).Times(1);
|
||||
|
||||
AZStd::shared_ptr<Containers::Scene> result =
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic);
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic, SceneCore::LoadingComponent::TYPEINFO_Uuid());
|
||||
EXPECT_EQ(nullptr, result);
|
||||
}
|
||||
|
||||
@@ -313,7 +314,7 @@ namespace AZ
|
||||
EXPECT_CALL(manifestHandler, UpdateManifest(_, _, _)).Times(1);
|
||||
|
||||
AZStd::shared_ptr<Containers::Scene> result =
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic);
|
||||
AssetImportRequest::LoadSceneFromVerifiedPath("test.asset", m_testId, Events::AssetImportRequest::RequestingApplication::Generic, SceneCore::LoadingComponent::TYPEINFO_Uuid());
|
||||
EXPECT_NE(nullptr, result);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user