/* * 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 #include #include #include #include #include #include namespace AZ { namespace SceneAPI { namespace Containers { class Scene; } namespace Events { struct ExportProduct; class ExportProductList; } } } namespace AZ::SceneAPI::Utilities { class DebugOutput { public: template void Write(const char* name, const AZStd::vector& data); template void Write(const char* name, const AZStd::vector>& data); SCENE_CORE_API void Write(const char* name, const char* data); SCENE_CORE_API void WriteArray(const char* name, const unsigned int* data, int size); SCENE_CORE_API void Write(const char* name, const AZStd::string& data); SCENE_CORE_API void Write(const char* name, double data); SCENE_CORE_API void Write(const char* name, uint64_t data); SCENE_CORE_API void Write(const char* name, int64_t data); SCENE_CORE_API void Write(const char* name, const DataTypes::MatrixType& data); SCENE_CORE_API void Write(const char* name, bool data); SCENE_CORE_API void Write(const char* name, Vector3 data); SCENE_CORE_API void Write(const char* name, AZStd::optional data); SCENE_CORE_API void Write(const char* name, AZStd::optional data); SCENE_CORE_API void Write(const char* name, AZStd::optional data); SCENE_CORE_API const AZStd::string& GetOutput() const; SCENE_CORE_API static void BuildDebugSceneGraph(const char* outputFolder, AZ::SceneAPI::Events::ExportProductList& productList, const AZStd::shared_ptr& scene, AZStd::string productName); protected: AZStd::string m_output; }; } #include "DebugOutput.inl"