Forráskód Böngészése

[RFC 96] Create new Gem `ROS2RobotImporter` out of `ROS2` Gem (#895)

* Add autogenerated ROS2RobotImporter
* Clang-format; gem.json; move files
* Move icons; exclude RobotImporter from  ROS2 initialization
* Move material assets from ROS2
* Move SDFormat library import
* Add license notes to files

Signed-off-by: Jan Hanca <[email protected]>
Jan Hanca 2 hónapja
szülő
commit
970224ad02
100 módosított fájl, 724 hozzáadás és 158 törlés
  1. 0 5
      Gems/ROS2/Assets/Editor/Images/Icons/ROS2.qrc
  2. 0 5
      Gems/ROS2/Code/CMakeLists.txt
  3. 0 10
      Gems/ROS2/Code/Platform/Linux/PAL_linux.cmake
  4. 0 15
      Gems/ROS2/Code/Source/ROS2EditorModule.cpp
  5. 0 3
      Gems/ROS2/Code/Source/ROS2ModuleInterface.h
  6. 0 38
      Gems/ROS2/Code/Source/RobotImporter/Pages/IntroPage.cpp
  7. 0 74
      Gems/ROS2/Code/ros2_editor_files.cmake
  8. 0 2
      Gems/ROS2/Code/ros2_editor_tests_files.cmake
  9. 0 2
      Gems/ROS2/Code/ros2_files.cmake
  10. 0 2
      Gems/ROS2/Code/ros2_header_files.cmake
  11. 61 0
      Gems/ROS2RobotImporter/.clang-format
  12. 0 0
      Gems/ROS2RobotImporter/.gitignore
  13. 5 0
      Gems/ROS2RobotImporter/Assets/Editor/Images/Icons/ROS2RobotImporter.qrc
  14. 0 0
      Gems/ROS2RobotImporter/Assets/Editor/Images/Icons/ToolbarIcon.svg
  15. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Black.material
  16. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/BlackTransparent.material
  17. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Blue.material
  18. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/BlueGlow.material
  19. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/BlueLaser.material
  20. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/BlueTransparent.material
  21. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Bricks.material
  22. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/CeilingTiled.material
  23. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/CloudySky.material
  24. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/DarkGray.material
  25. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/DarkGrey.material
  26. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/DarkMagentaTransparent.material
  27. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/DarkYellow.material
  28. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/FlatBlack.material
  29. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Footway.material
  30. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Gold.material
  31. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Grass.material
  32. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Gray.material
  33. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Green.material
  34. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/GreenGlow.material
  35. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/GreenTransparent.material
  36. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Grey.material
  37. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/GreyGradientSky.material
  38. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/GreyTransparent.material
  39. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Indigo.material
  40. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/LightBlueLaser.material
  41. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/LightOff.material
  42. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/LightOn.material
  43. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Orange.material
  44. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/OrangeTransparent.material
  45. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/PaintedWall.material
  46. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Pedestrian.material
  47. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Purple.material
  48. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/PurpleGlow.material
  49. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Red.material
  50. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/RedBright.material
  51. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/RedGlow.material
  52. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/RedTransparent.material
  53. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Residential.material
  54. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Road.material
  55. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/SkyBlue.material
  56. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Turquoise.material
  57. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/TurquoiseGlow.material
  58. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/White.material
  59. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/WhiteGlow.material
  60. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Wood.material
  61. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/WoodFloor.material
  62. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/WoodPallet.material
  63. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/Yellow.material
  64. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/YellowGlow.material
  65. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/YellowTransparent.material
  66. 0 0
      Gems/ROS2RobotImporter/Assets/Gazebo/ZincYellow.material
  67. 0 0
      Gems/ROS2RobotImporter/Assets/Materials/wheel_material.physxmaterial
  68. 13 0
      Gems/ROS2RobotImporter/CMakeLists.txt
  69. 264 0
      Gems/ROS2RobotImporter/Code/CMakeLists.txt
  70. 2 2
      Gems/ROS2RobotImporter/Code/Include/ROS2RobotImporter/ROS2RobotImporterBus.h
  71. 26 0
      Gems/ROS2RobotImporter/Code/Include/ROS2RobotImporter/ROS2RobotImporterTypeIds.h
  72. 0 0
      Gems/ROS2RobotImporter/Code/Include/ROS2RobotImporter/SDFormatModelPluginImporterHook.h
  73. 0 0
      Gems/ROS2RobotImporter/Code/Include/ROS2RobotImporter/SDFormatSensorImporterHook.h
  74. 11 0
      Gems/ROS2RobotImporter/Code/Platform/Android/PAL_android.cmake
  75. 10 0
      Gems/ROS2RobotImporter/Code/Platform/Android/ros2robotimporter_api_files.cmake
  76. 15 0
      Gems/ROS2RobotImporter/Code/Platform/Android/ros2robotimporter_private_files.cmake
  77. 15 0
      Gems/ROS2RobotImporter/Code/Platform/Android/ros2robotimporter_shared_files.cmake
  78. 21 0
      Gems/ROS2RobotImporter/Code/Platform/Linux/PAL_linux.cmake
  79. 10 0
      Gems/ROS2RobotImporter/Code/Platform/Linux/ros2robotimporter_api_files.cmake
  80. 10 0
      Gems/ROS2RobotImporter/Code/Platform/Linux/ros2robotimporter_editor_api_files.cmake
  81. 15 0
      Gems/ROS2RobotImporter/Code/Platform/Linux/ros2robotimporter_private_files.cmake
  82. 15 0
      Gems/ROS2RobotImporter/Code/Platform/Linux/ros2robotimporter_shared_files.cmake
  83. 4 0
      Gems/ROS2RobotImporter/Code/Platform/Mac/PAL_mac.cmake
  84. 10 0
      Gems/ROS2RobotImporter/Code/Platform/Mac/ros2robotimporter_api_files.cmake
  85. 10 0
      Gems/ROS2RobotImporter/Code/Platform/Mac/ros2robotimporter_editor_api_files.cmake
  86. 15 0
      Gems/ROS2RobotImporter/Code/Platform/Mac/ros2robotimporter_private_files.cmake
  87. 15 0
      Gems/ROS2RobotImporter/Code/Platform/Mac/ros2robotimporter_shared_files.cmake
  88. 11 0
      Gems/ROS2RobotImporter/Code/Platform/Windows/PAL_windows.cmake
  89. 10 0
      Gems/ROS2RobotImporter/Code/Platform/Windows/ros2robotimporter_api_files.cmake
  90. 10 0
      Gems/ROS2RobotImporter/Code/Platform/Windows/ros2robotimporter_editor_api_files.cmake
  91. 15 0
      Gems/ROS2RobotImporter/Code/Platform/Windows/ros2robotimporter_private_files.cmake
  92. 15 0
      Gems/ROS2RobotImporter/Code/Platform/Windows/ros2robotimporter_shared_files.cmake
  93. 11 0
      Gems/ROS2RobotImporter/Code/Platform/iOS/PAL_ios.cmake
  94. 10 0
      Gems/ROS2RobotImporter/Code/Platform/iOS/ros2robotimporter_api_files.cmake
  95. 15 0
      Gems/ROS2RobotImporter/Code/Platform/iOS/ros2robotimporter_private_files.cmake
  96. 15 0
      Gems/ROS2RobotImporter/Code/Platform/iOS/ros2robotimporter_shared_files.cmake
  97. 27 0
      Gems/ROS2RobotImporter/Code/Source/Clients/ROS2RobotImporterModule.cpp
  98. 0 0
      Gems/ROS2RobotImporter/Code/Source/Clients/ROS2RobotImporterSystemComponent.cpp
  99. 0 0
      Gems/ROS2RobotImporter/Code/Source/Clients/ROS2RobotImporterSystemComponent.h
  100. 38 0
      Gems/ROS2RobotImporter/Code/Source/ROS2RobotImporterModuleInterface.cpp

+ 0 - 5
Gems/ROS2/Assets/Editor/Images/Icons/ROS2.qrc

@@ -1,5 +0,0 @@
-<RCC>
-    <qresource prefix="/ROS2">
-     <file>ROS_import_icon.svg</file>
-    </qresource>
-</RCC>

+ 0 - 5
Gems/ROS2/Code/CMakeLists.txt

@@ -121,7 +121,6 @@ if(PAL_TRAIT_BUILD_HOST_TOOLS)
         INCLUDE_DIRECTORIES
         INCLUDE_DIRECTORIES
             PRIVATE
             PRIVATE
                 Source
                 Source
-                Source/RobotImporter
             PUBLIC
             PUBLIC
                 Include
                 Include
         COMPILE_DEFINITIONS
         COMPILE_DEFINITIONS
@@ -134,9 +133,6 @@ if(PAL_TRAIT_BUILD_HOST_TOOLS)
                 Gem::LmbrCentral.API
                 Gem::LmbrCentral.API
                 Gem::PhysX5.Editor.Static
                 Gem::PhysX5.Editor.Static
                 Gem::${gem_name}.Static
                 Gem::${gem_name}.Static
-            PRIVATE
-                AZ::AssetBuilderSDK
-                3rdParty::sdformat
     )
     )
 
 
     ly_add_target(
     ly_add_target(
@@ -244,7 +240,6 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
                         AZ::AzTestShared
                         AZ::AzTestShared
                         AZ::AzToolsFramework
                         AZ::AzToolsFramework
                         Gem::${gem_name}.Editor.Static
                         Gem::${gem_name}.Editor.Static
-                        3rdParty::sdformat
             )
             )
 
 
             # Add ROS2.Editor.Tests to googletest
             # Add ROS2.Editor.Tests to googletest

+ 0 - 10
Gems/ROS2/Code/Platform/Linux/PAL_linux.cmake

@@ -7,13 +7,3 @@
 #
 #
 
 
 set(PAL_TRAIT_BUILD_ROS2_GEM_SUPPORTED TRUE)
 set(PAL_TRAIT_BUILD_ROS2_GEM_SUPPORTED TRUE)
-
-if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
-    ly_associate_package(PACKAGE_NAME sdformat-13.5.0-rev2-linux
-        TARGETS sdformat
-        PACKAGE_HASH b8e988954c07f41b99ba0950da3f4d3e8489ffabaaff157f79ab0c716e2142e0)
-elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
-    ly_associate_package(PACKAGE_NAME sdformat-13.5.0-rev2-linux-aarch64
-        TARGETS sdformat
-        PACKAGE_HASH 7e51cc60c61a058c1f8aba7277574946ab974af3ff4601884e72380e8585c0ea)
-endif()

+ 0 - 15
Gems/ROS2/Code/Source/ROS2EditorModule.cpp

@@ -8,21 +8,12 @@
 
 
 #include <AzCore/RTTI/RTTIMacros.h>
 #include <AzCore/RTTI/RTTIMacros.h>
 #include <Frame/ROS2FrameSystemComponent.h>
 #include <Frame/ROS2FrameSystemComponent.h>
-#include <QtCore/qglobal.h>
 #include <ROS2/Frame/ROS2FrameEditorComponent.h>
 #include <ROS2/Frame/ROS2FrameEditorComponent.h>
 #include <ROS2ModuleInterface.h>
 #include <ROS2ModuleInterface.h>
-#include <RobotImporter/ROS2RobotImporterEditorSystemComponent.h>
-#include <SdfAssetBuilder/SdfAssetBuilderSystemComponent.h>
 #include <Spawner/ROS2SpawnPointEditorComponent.h>
 #include <Spawner/ROS2SpawnPointEditorComponent.h>
 #include <Spawner/ROS2SpawnerEditorComponent.h>
 #include <Spawner/ROS2SpawnerEditorComponent.h>
 #include <SystemComponents/ROS2EditorSystemComponent.h>
 #include <SystemComponents/ROS2EditorSystemComponent.h>
 
 
-void InitROS2Resources()
-{
-    // Registration of Qt (ROS2.qrc) resources
-    Q_INIT_RESOURCE(ROS2);
-}
-
 namespace ROS2
 namespace ROS2
 {
 {
     class ROS2EditorModule : public ROS2ModuleInterface
     class ROS2EditorModule : public ROS2ModuleInterface
@@ -33,15 +24,11 @@ namespace ROS2
 
 
         ROS2EditorModule()
         ROS2EditorModule()
         {
         {
-            InitROS2Resources();
-
             m_descriptors.insert(
             m_descriptors.insert(
                 m_descriptors.end(),
                 m_descriptors.end(),
                 { ROS2EditorSystemComponent::CreateDescriptor(),
                 { ROS2EditorSystemComponent::CreateDescriptor(),
-                  ROS2RobotImporterEditorSystemComponent::CreateDescriptor(),
                   ROS2SpawnerEditorComponent::CreateDescriptor(),
                   ROS2SpawnerEditorComponent::CreateDescriptor(),
                   ROS2SpawnPointEditorComponent::CreateDescriptor(),
                   ROS2SpawnPointEditorComponent::CreateDescriptor(),
-                  SdfAssetBuilderSystemComponent::CreateDescriptor(),
                   ROS2FrameSystemComponent::CreateDescriptor(),
                   ROS2FrameSystemComponent::CreateDescriptor(),
                   ROS2FrameEditorComponent::CreateDescriptor() });
                   ROS2FrameEditorComponent::CreateDescriptor() });
         }
         }
@@ -50,8 +37,6 @@ namespace ROS2
         {
         {
             return AZ::ComponentTypeList{
             return AZ::ComponentTypeList{
                 azrtti_typeid<ROS2EditorSystemComponent>(),
                 azrtti_typeid<ROS2EditorSystemComponent>(),
-                azrtti_typeid<ROS2RobotImporterEditorSystemComponent>(),
-                azrtti_typeid<SdfAssetBuilderSystemComponent>(),
                 azrtti_typeid<ROS2FrameSystemComponent>(),
                 azrtti_typeid<ROS2FrameSystemComponent>(),
             };
             };
         }
         }

+ 0 - 3
Gems/ROS2/Code/Source/ROS2ModuleInterface.h

@@ -10,7 +10,6 @@
 #include <AzCore/Memory/SystemAllocator.h>
 #include <AzCore/Memory/SystemAllocator.h>
 #include <AzCore/Module/Module.h>
 #include <AzCore/Module/Module.h>
 #include <ROS2/Frame/ROS2FrameComponent.h>
 #include <ROS2/Frame/ROS2FrameComponent.h>
-#include <RobotImporter/ROS2RobotImporterSystemComponent.h>
 #include <SimulationUtils/FollowingCameraComponent.h>
 #include <SimulationUtils/FollowingCameraComponent.h>
 #include <Spawner/ROS2SpawnPointComponent.h>
 #include <Spawner/ROS2SpawnPointComponent.h>
 #include <Spawner/ROS2SpawnerComponent.h>
 #include <Spawner/ROS2SpawnerComponent.h>
@@ -30,7 +29,6 @@ namespace ROS2
                 m_descriptors.end(),
                 m_descriptors.end(),
                 {
                 {
                     ROS2SystemComponent::CreateDescriptor(),
                     ROS2SystemComponent::CreateDescriptor(),
-                    ROS2RobotImporterSystemComponent::CreateDescriptor(),
                     ROS2FrameComponent::CreateDescriptor(),
                     ROS2FrameComponent::CreateDescriptor(),
                     ROS2SpawnerComponent::CreateDescriptor(),
                     ROS2SpawnerComponent::CreateDescriptor(),
                     ROS2SpawnPointComponent::CreateDescriptor(),
                     ROS2SpawnPointComponent::CreateDescriptor(),
@@ -42,7 +40,6 @@ namespace ROS2
         {
         {
             return AZ::ComponentTypeList{
             return AZ::ComponentTypeList{
                 azrtti_typeid<ROS2SystemComponent>(),
                 azrtti_typeid<ROS2SystemComponent>(),
-                azrtti_typeid<ROS2RobotImporterSystemComponent>(),
             };
             };
         }
         }
     };
     };

+ 0 - 38
Gems/ROS2/Code/Source/RobotImporter/Pages/IntroPage.cpp

@@ -1,38 +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 "IntroPage.h"
-#include <QVBoxLayout>
-
-namespace ROS2
-{
-    IntroPage::IntroPage(QWizard* parent)
-        : QWizardPage(parent)
-    {
-        setTitle(QObject::tr("Introduction"));
-
-        m_label = new QLabel(
-            QObject::tr("This wizard allows you to build a robot prefab using a URDF description file or object/environment prefab using an SDF file."
-                        " Before processing, please make sure that all of the robot's description packages have been built and sourced."
-                        " Details can be found <a "
-                        "href=\"https://www.o3de.org/docs/user-guide/interactivity/robotics/importing-robot/"
-                        "#loading-the-robot-definition-file-with-robot-importer\">here</a>."
-                        " The Open 3D Engine can only use files in its internal <a "
-                        "href=\"https://www.o3de.org/docs/user-guide/assets/asset-types/\">format</a>."
-                        "During the import process, the assets will be imported and processed."
-                        "A level must be opened before using the URDF/SDF Importer."));
-        m_label->setTextFormat(Qt::RichText);
-        m_label->setOpenExternalLinks(true);
-        m_label->setWordWrap(true);
-
-        QVBoxLayout* layout = new QVBoxLayout;
-        layout->addWidget(m_label);
-        setLayout(layout);
-    }
-
-} // namespace ROS2

+ 0 - 74
Gems/ROS2/Code/ros2_editor_files.cmake

@@ -4,85 +4,11 @@
 # SPDX-License-Identifier: Apache-2.0 OR MIT
 # SPDX-License-Identifier: Apache-2.0 OR MIT
 
 
 set(FILES
 set(FILES
-    ../Assets/Editor/Images/Icons/ROS2.qrc
-    ../Assets/Editor/Images/Icons/ROS_import_icon.svg
-    Source/RobotImporter/FixURDF/FixURDF.cpp
-    Source/RobotImporter/FixURDF/FixURDF.h
-    Source/RobotImporter/Pages/ModifiedURDFWindow.cpp
-    Source/RobotImporter/Pages/ModifiedURDFWindow.h
-    Source/RobotImporter/Pages/CheckAssetPage.cpp
-    Source/RobotImporter/Pages/CheckAssetPage.h
-    Source/RobotImporter/Pages/RobotDescriptionPage.cpp
-    Source/RobotImporter/Pages/RobotDescriptionPage.h
-    Source/RobotImporter/Pages/FileSelectionPage.cpp
-    Source/RobotImporter/Pages/FileSelectionPage.h
-    Source/RobotImporter/Pages/PrefabMakerPage.cpp
-    Source/RobotImporter/Pages/PrefabMakerPage.h
-    Source/RobotImporter/Pages/IntroPage.cpp
-    Source/RobotImporter/Pages/IntroPage.h
-    Source/RobotImporter/Pages/XacroParamsPage.cpp
-    Source/RobotImporter/Pages/XacroParamsPage.h
-    Source/RobotImporter/RobotImporterWidget.cpp
-    Source/RobotImporter/RobotImporterWidget.h
-    Source/RobotImporter/ROS2RobotImporterEditorSystemComponent.cpp
-    Source/RobotImporter/ROS2RobotImporterEditorSystemComponent.h
-    # temporarily disable import hooks for sensors and models for https://github.com/o3de/sig-simulation/pull/96
-    # Source/RobotImporter/SDFormat/Hooks/ROS2AckermannModelHook.cpp
-    # Source/RobotImporter/SDFormat/Hooks/ROS2CameraSensorHook.cpp
-    # Source/RobotImporter/SDFormat/Hooks/ROS2GNSSSensorHook.cpp
-    # Source/RobotImporter/SDFormat/Hooks/ROS2ImuSensorHook.cpp
-    # Source/RobotImporter/SDFormat/Hooks/ROS2LidarSensorHook.cpp
-    # Source/RobotImporter/SDFormat/Hooks/ROS2SkidSteeringModelHook.cpp
-    # Source/RobotImporter/SDFormat/Hooks/ROS2JointPoseTrajectoryModelHook.cpp
-    # Source/RobotImporter/SDFormat/Hooks/ROS2JointStatePublisherModelHook.cpp
-    Source/RobotImporter/SDFormat/ROS2ModelPluginHooks.h
-    Source/RobotImporter/SDFormat/ROS2SDFormatHooksUtils.cpp
-    Source/RobotImporter/SDFormat/ROS2SDFormatHooksUtils.h
-    Source/RobotImporter/SDFormat/ROS2SensorHooks.h
-    Source/RobotImporter/URDF/ArticulationsMaker.cpp
-    Source/RobotImporter/URDF/ArticulationsMaker.h
-    Source/RobotImporter/URDF/CollidersMaker.cpp
-    Source/RobotImporter/URDF/CollidersMaker.h
-    Source/RobotImporter/URDF/InertialsMaker.cpp
-    Source/RobotImporter/URDF/InertialsMaker.h
-    Source/RobotImporter/URDF/JointsMaker.cpp
-    Source/RobotImporter/URDF/JointsMaker.h
-    Source/RobotImporter/URDF/PrefabMakerUtils.cpp
-    Source/RobotImporter/URDF/PrefabMakerUtils.h
-    Source/RobotImporter/URDF/RobotControlMaker.cpp
-    Source/RobotImporter/URDF/RobotControlMaker.h
-    Source/RobotImporter/URDF/SensorsMaker.cpp
-    Source/RobotImporter/URDF/SensorsMaker.h
-    Source/RobotImporter/URDF/UrdfParser.cpp
-    Source/RobotImporter/URDF/UrdfParser.h
-    Source/RobotImporter/URDF/URDFPrefabMaker.cpp
-    Source/RobotImporter/URDF/URDFPrefabMaker.h
-    Source/RobotImporter/URDF/VisualsMaker.cpp
-    Source/RobotImporter/URDF/VisualsMaker.h
-    Source/RobotImporter/xacro/XacroUtils.cpp
-    Source/RobotImporter/xacro/XacroUtils.h
-    Source/RobotImporter/Utils/DefaultSolverConfiguration.h
-    Source/RobotImporter/Utils/ErrorUtils.cpp
-    Source/RobotImporter/Utils/ErrorUtils.h
-    Source/RobotImporter/Utils/FilePath.cpp
-    Source/RobotImporter/Utils/FilePath.h
-    Source/RobotImporter/Utils/RobotImporterUtils.cpp
-    Source/RobotImporter/Utils/RobotImporterUtils.h
-    Source/RobotImporter/Utils/SourceAssetsStorage.cpp
-    Source/RobotImporter/Utils/SourceAssetsStorage.h
-    Source/RobotImporter/Utils/TypeConversions.cpp
-    Source/RobotImporter/Utils/TypeConversions.h
     Source/ROS2GemUtilities.cpp
     Source/ROS2GemUtilities.cpp
     Source/Spawner/ROS2SpawnerEditorComponent.cpp
     Source/Spawner/ROS2SpawnerEditorComponent.cpp
     Source/Spawner/ROS2SpawnerEditorComponent.h
     Source/Spawner/ROS2SpawnerEditorComponent.h
     Source/Spawner/ROS2SpawnPointEditorComponent.cpp
     Source/Spawner/ROS2SpawnPointEditorComponent.cpp
     Source/Spawner/ROS2SpawnPointEditorComponent.h
     Source/Spawner/ROS2SpawnPointEditorComponent.h
-    Source/SdfAssetBuilder/SdfAssetBuilder.cpp
-    Source/SdfAssetBuilder/SdfAssetBuilder.h
-    Source/SdfAssetBuilder/SdfAssetBuilderSettings.cpp
-    Source/SdfAssetBuilder/SdfAssetBuilderSettings.h
-    Source/SdfAssetBuilder/SdfAssetBuilderSystemComponent.cpp
-    Source/SdfAssetBuilder/SdfAssetBuilderSystemComponent.h
     Source/Frame/ROS2FrameEditorComponent.cpp
     Source/Frame/ROS2FrameEditorComponent.cpp
     Source/Frame/ROS2FrameSystemComponent.cpp
     Source/Frame/ROS2FrameSystemComponent.cpp
     Source/Frame/ROS2FrameSystemComponent.h
     Source/Frame/ROS2FrameSystemComponent.h

+ 0 - 2
Gems/ROS2/Code/ros2_editor_tests_files.cmake

@@ -5,6 +5,4 @@
 
 
 set(FILES
 set(FILES
     Tests/ROS2EditorTest.cpp
     Tests/ROS2EditorTest.cpp
-    Tests/SdfParserTest.cpp
-    Tests/UrdfParserTest.cpp
 )
 )

+ 0 - 2
Gems/ROS2/Code/ros2_files.cmake

@@ -20,8 +20,6 @@ set(FILES
         Source/Frame/ROS2FrameComponent.cpp
         Source/Frame/ROS2FrameComponent.cpp
         Source/Frame/ROS2FrameConfiguration.cpp
         Source/Frame/ROS2FrameConfiguration.cpp
         Source/Frame/ROS2Transform.cpp
         Source/Frame/ROS2Transform.cpp
-        Source/RobotImporter/ROS2RobotImporterSystemComponent.cpp
-        Source/RobotImporter/ROS2RobotImporterSystemComponent.h
         Source/ROS2ModuleInterface.h
         Source/ROS2ModuleInterface.h
         Source/Sensor/Events/PhysicsBasedSource.cpp
         Source/Sensor/Events/PhysicsBasedSource.cpp
         Source/Sensor/Events/TickBasedSource.cpp
         Source/Sensor/Events/TickBasedSource.cpp

+ 0 - 2
Gems/ROS2/Code/ros2_header_files.cmake

@@ -16,8 +16,6 @@ set(FILES
         Include/ROS2/Frame/ROS2FrameComponent.h
         Include/ROS2/Frame/ROS2FrameComponent.h
         Include/ROS2/Frame/ROS2FrameConfiguration.h
         Include/ROS2/Frame/ROS2FrameConfiguration.h
         Include/ROS2/Frame/ROS2Transform.h
         Include/ROS2/Frame/ROS2Transform.h
-        Include/ROS2/RobotImporter/SDFormatModelPluginImporterHook.h
-        Include/ROS2/RobotImporter/SDFormatSensorImporterHook.h
         Include/ROS2/ROS2Bus.h
         Include/ROS2/ROS2Bus.h
         Include/ROS2/ROS2GemUtilities.h
         Include/ROS2/ROS2GemUtilities.h
         Include/ROS2/Sensor/Events/EventSourceAdapter.h
         Include/ROS2/Sensor/Events/EventSourceAdapter.h

+ 61 - 0
Gems/ROS2RobotImporter/.clang-format

@@ -0,0 +1,61 @@
+Language: Cpp
+
+AccessModifierOffset: -4
+AlignAfterOpenBracket: AlwaysBreak
+AlignConsecutiveAssignments: false
+AlignConsecutiveDeclarations: false
+AlignEscapedNewlines: Right
+AlignOperands: false
+AlignTrailingComments: false
+AllowAllArgumentsOnNextLine: true
+AllowAllParametersOfDeclarationOnNextLine: true
+AllowShortFunctionsOnASingleLine: None
+AllowShortLambdasOnASingleLine: None
+AlwaysBreakAfterReturnType: None
+AlwaysBreakTemplateDeclarations: true
+BinPackArguments: false
+BinPackParameters: false
+BreakBeforeBraces: Custom
+BraceWrapping:
+    AfterClass: true
+    AfterControlStatement: true
+    AfterEnum: true
+    AfterFunction: true
+    AfterNamespace: true
+    BeforeLambdaBody: true
+    AfterStruct: true
+    BeforeElse: true
+    SplitEmptyFunction: true
+BreakBeforeTernaryOperators: true
+BreakConstructorInitializers: BeforeComma
+BreakInheritanceList: BeforeComma
+ColumnLimit: 140
+ConstructorInitializerIndentWidth: 4
+ContinuationIndentWidth: 4
+Cpp11BracedListStyle: false
+FixNamespaceComments: true
+IncludeBlocks: Preserve
+IndentCaseBlocks: true
+IndentCaseLabels: false
+IndentPPDirectives: None
+IndentWidth: 4
+KeepEmptyLinesAtTheStartOfBlocks: false
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: All
+PenaltyReturnTypeOnItsOwnLine: 1000
+PointerAlignment: Left
+SortIncludes: true
+SpaceAfterLogicalNot: false
+SpaceAfterTemplateKeyword: false
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeCpp11BracedList: false
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
+SpaceBeforeParens: ControlStatements
+SpaceBeforeRangeBasedForLoopColon: true
+SpaceInEmptyParentheses: false
+SpacesInAngles: false
+SpacesInCStyleCastParentheses: false
+SpacesInParentheses: false
+Standard: c++17
+UseTab: Never

+ 0 - 0
Gems/ROS2RobotImporter/.gitignore


+ 5 - 0
Gems/ROS2RobotImporter/Assets/Editor/Images/Icons/ROS2RobotImporter.qrc

@@ -0,0 +1,5 @@
+<RCC>
+    <qresource prefix="/ROS2RobotImporter">
+     <file>ToolbarIcon.svg</file>
+    </qresource>
+</RCC>

+ 0 - 0
Gems/ROS2/Assets/Editor/Images/Icons/ROS_import_icon.svg → Gems/ROS2RobotImporter/Assets/Editor/Images/Icons/ToolbarIcon.svg


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Black.material → Gems/ROS2RobotImporter/Assets/Gazebo/Black.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/BlackTransparent.material → Gems/ROS2RobotImporter/Assets/Gazebo/BlackTransparent.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Blue.material → Gems/ROS2RobotImporter/Assets/Gazebo/Blue.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/BlueGlow.material → Gems/ROS2RobotImporter/Assets/Gazebo/BlueGlow.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/BlueLaser.material → Gems/ROS2RobotImporter/Assets/Gazebo/BlueLaser.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/BlueTransparent.material → Gems/ROS2RobotImporter/Assets/Gazebo/BlueTransparent.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Bricks.material → Gems/ROS2RobotImporter/Assets/Gazebo/Bricks.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/CeilingTiled.material → Gems/ROS2RobotImporter/Assets/Gazebo/CeilingTiled.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/CloudySky.material → Gems/ROS2RobotImporter/Assets/Gazebo/CloudySky.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/DarkGray.material → Gems/ROS2RobotImporter/Assets/Gazebo/DarkGray.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/DarkGrey.material → Gems/ROS2RobotImporter/Assets/Gazebo/DarkGrey.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/DarkMagentaTransparent.material → Gems/ROS2RobotImporter/Assets/Gazebo/DarkMagentaTransparent.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/DarkYellow.material → Gems/ROS2RobotImporter/Assets/Gazebo/DarkYellow.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/FlatBlack.material → Gems/ROS2RobotImporter/Assets/Gazebo/FlatBlack.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Footway.material → Gems/ROS2RobotImporter/Assets/Gazebo/Footway.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Gold.material → Gems/ROS2RobotImporter/Assets/Gazebo/Gold.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Grass.material → Gems/ROS2RobotImporter/Assets/Gazebo/Grass.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Gray.material → Gems/ROS2RobotImporter/Assets/Gazebo/Gray.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Green.material → Gems/ROS2RobotImporter/Assets/Gazebo/Green.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/GreenGlow.material → Gems/ROS2RobotImporter/Assets/Gazebo/GreenGlow.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/GreenTransparent.material → Gems/ROS2RobotImporter/Assets/Gazebo/GreenTransparent.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Grey.material → Gems/ROS2RobotImporter/Assets/Gazebo/Grey.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/GreyGradientSky.material → Gems/ROS2RobotImporter/Assets/Gazebo/GreyGradientSky.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/GreyTransparent.material → Gems/ROS2RobotImporter/Assets/Gazebo/GreyTransparent.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Indigo.material → Gems/ROS2RobotImporter/Assets/Gazebo/Indigo.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/LightBlueLaser.material → Gems/ROS2RobotImporter/Assets/Gazebo/LightBlueLaser.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/LightOff.material → Gems/ROS2RobotImporter/Assets/Gazebo/LightOff.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/LightOn.material → Gems/ROS2RobotImporter/Assets/Gazebo/LightOn.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Orange.material → Gems/ROS2RobotImporter/Assets/Gazebo/Orange.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/OrangeTransparent.material → Gems/ROS2RobotImporter/Assets/Gazebo/OrangeTransparent.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/PaintedWall.material → Gems/ROS2RobotImporter/Assets/Gazebo/PaintedWall.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Pedestrian.material → Gems/ROS2RobotImporter/Assets/Gazebo/Pedestrian.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Purple.material → Gems/ROS2RobotImporter/Assets/Gazebo/Purple.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/PurpleGlow.material → Gems/ROS2RobotImporter/Assets/Gazebo/PurpleGlow.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Red.material → Gems/ROS2RobotImporter/Assets/Gazebo/Red.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/RedBright.material → Gems/ROS2RobotImporter/Assets/Gazebo/RedBright.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/RedGlow.material → Gems/ROS2RobotImporter/Assets/Gazebo/RedGlow.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/RedTransparent.material → Gems/ROS2RobotImporter/Assets/Gazebo/RedTransparent.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Residential.material → Gems/ROS2RobotImporter/Assets/Gazebo/Residential.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Road.material → Gems/ROS2RobotImporter/Assets/Gazebo/Road.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/SkyBlue.material → Gems/ROS2RobotImporter/Assets/Gazebo/SkyBlue.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Turquoise.material → Gems/ROS2RobotImporter/Assets/Gazebo/Turquoise.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/TurquoiseGlow.material → Gems/ROS2RobotImporter/Assets/Gazebo/TurquoiseGlow.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/White.material → Gems/ROS2RobotImporter/Assets/Gazebo/White.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/WhiteGlow.material → Gems/ROS2RobotImporter/Assets/Gazebo/WhiteGlow.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Wood.material → Gems/ROS2RobotImporter/Assets/Gazebo/Wood.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/WoodFloor.material → Gems/ROS2RobotImporter/Assets/Gazebo/WoodFloor.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/WoodPallet.material → Gems/ROS2RobotImporter/Assets/Gazebo/WoodPallet.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/Yellow.material → Gems/ROS2RobotImporter/Assets/Gazebo/Yellow.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/YellowGlow.material → Gems/ROS2RobotImporter/Assets/Gazebo/YellowGlow.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/YellowTransparent.material → Gems/ROS2RobotImporter/Assets/Gazebo/YellowTransparent.material


+ 0 - 0
Gems/ROS2/Assets/Gazebo/ZincYellow.material → Gems/ROS2RobotImporter/Assets/Gazebo/ZincYellow.material


+ 0 - 0
Gems/ROS2/Assets/Materials/wheel_material.physxmaterial → Gems/ROS2RobotImporter/Assets/Materials/wheel_material.physxmaterial


+ 13 - 0
Gems/ROS2RobotImporter/CMakeLists.txt

@@ -0,0 +1,13 @@
+#
+# 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
+#
+#
+
+o3de_gem_setup("ROS2RobotImporter")
+
+ly_add_external_target_path(${CMAKE_CURRENT_SOURCE_DIR}/3rdParty)
+
+add_subdirectory(Code)

+ 264 - 0
Gems/ROS2RobotImporter/Code/CMakeLists.txt

@@ -0,0 +1,264 @@
+#
+# 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
+#
+#
+
+# Currently we are in the Code folder: ${CMAKE_CURRENT_LIST_DIR}
+# Get the platform specific folder ${pal_dir} for the current folder: ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME}
+# Note: o3de_pal_dir will take care of the details for us, as this may be a restricted platform
+#       in which case it will see if that platform is present here or in the restricted folder.
+#       i.e. It could here in our gem : Gems/ROS2RobotImporter/Code/Platform/<platorm_name>  or
+#            <restricted_folder>/<platform_name>/Gems/ROS2RobotImporter/Code
+o3de_pal_dir(pal_dir ${CMAKE_CURRENT_LIST_DIR}/Platform/${PAL_PLATFORM_NAME} "${gem_restricted_path}" "${gem_path}" "${gem_parent_relative_path}")
+
+# Now that we have the platform abstraction layer (PAL) folder for this folder, thats where we will find the
+# traits for this platform. Traits for a platform are defines for things like whether or not something in this gem
+# is supported by this platform.
+include(${pal_dir}/PAL_${PAL_PLATFORM_NAME_LOWERCASE}.cmake)
+
+# Check to see if building the Gem Modules are supported for the current platform
+if(NOT PAL_TRAIT_ROS2ROBOTIMPORTER_SUPPORTED)
+    return()
+endif()
+
+# The ${gem_name}.API target declares the common interface that users of this gem should depend on in their targets
+ly_add_target(
+    NAME ${gem_name}.API INTERFACE
+    NAMESPACE Gem
+    FILES_CMAKE
+        ros2robotimporter_api_files.cmake
+        ${pal_dir}/ros2robotimporter_api_files.cmake
+    INCLUDE_DIRECTORIES
+        INTERFACE
+            Include
+    BUILD_DEPENDENCIES
+        INTERFACE
+           AZ::AzCore
+)
+
+# The ${gem_name}.Private.Object target is an internal target
+# It should not be used outside of this Gems CMakeLists.txt
+ly_add_target(
+    NAME ${gem_name}.Private.Object STATIC
+    NAMESPACE Gem
+    FILES_CMAKE
+        ros2robotimporter_private_files.cmake
+        ${pal_dir}/ros2robotimporter_private_files.cmake
+    TARGET_PROPERTIES
+        O3DE_PRIVATE_TARGET TRUE
+    INCLUDE_DIRECTORIES
+        PRIVATE
+            Include
+            Source
+    BUILD_DEPENDENCIES
+        PUBLIC
+            AZ::AzCore
+            AZ::AzFramework
+            Gem::ROS2.Static
+)
+
+# Here add ${gem_name} target, it depends on the Private Object library and Public API interface
+ly_add_target(
+    NAME ${gem_name} ${PAL_TRAIT_MONOLITHIC_DRIVEN_MODULE_TYPE}
+    NAMESPACE Gem
+    FILES_CMAKE
+        ros2robotimporter_shared_files.cmake
+        ${pal_dir}/ros2robotimporter_shared_files.cmake
+    INCLUDE_DIRECTORIES
+        PUBLIC
+            Include
+        PRIVATE
+            Source
+    BUILD_DEPENDENCIES
+        PUBLIC
+            Gem::${gem_name}.API
+        PRIVATE
+            Gem::${gem_name}.Private.Object
+)
+
+# Include the gem name into the Client Module source file
+# for use with the AZ_DECLARE_MODULE_CLASS macro
+# This is to allow renaming of the gem to also cause
+# the CreateModuleClass_Gem_<gem-name> function which
+# is used to bootstrap the gem in monolithic builds to link to the new gem name
+ly_add_source_properties(
+SOURCES
+    Source/Clients/ROS2RobotImporterModule.cpp
+PROPERTY COMPILE_DEFINITIONS
+    VALUES
+        O3DE_GEM_NAME=${gem_name}
+        O3DE_GEM_VERSION=${gem_version})
+
+# By default, we will specify that the above target ${gem_name} would be used by
+# Client and Server type targets when this gem is enabled.  If you don't want it
+# active in Clients or Servers by default, delete one of both of the following lines:
+ly_create_alias(NAME ${gem_name}.Clients NAMESPACE Gem TARGETS Gem::${gem_name})
+ly_create_alias(NAME ${gem_name}.Servers NAMESPACE Gem TARGETS Gem::${gem_name})
+ly_create_alias(NAME ${gem_name}.Unified NAMESPACE Gem TARGETS Gem::${gem_name})
+
+# For the Client and Server variants of ${gem_name} Gem, an alias to the ${gem_name}.API target will be made
+ly_create_alias(NAME ${gem_name}.Clients.API NAMESPACE Gem TARGETS Gem::${gem_name}.API)
+ly_create_alias(NAME ${gem_name}.Servers.API NAMESPACE Gem TARGETS Gem::${gem_name}.API)
+ly_create_alias(NAME ${gem_name}.Unified.API NAMESPACE Gem TARGETS Gem::${gem_name}.API)
+
+# Add in CMake dependencies for each gem dependency listed in this gem's gem.json file
+# for the Clients, Servers, Unified gem variants
+o3de_add_variant_dependencies_for_gem_dependencies(GEM_NAME ${gem_name} VARIANTS Clients Servers Unified)
+
+# If we are on a host platform, we want to add the host tools targets like the ${gem_name}.Editor MODULE target
+if(PAL_TRAIT_BUILD_HOST_TOOLS)
+    # The ${gem_name}.Editor.API target can be used by other gems that want to interact with the ${gem_name}.Editor module
+    ly_add_target(
+        NAME ${gem_name}.Editor.API INTERFACE
+        NAMESPACE Gem
+        FILES_CMAKE
+            ros2robotimporter_editor_api_files.cmake
+            ${pal_dir}/ros2robotimporter_editor_api_files.cmake
+        INCLUDE_DIRECTORIES
+            INTERFACE
+                Include
+        BUILD_DEPENDENCIES
+            INTERFACE
+                AZ::AzToolsFramework
+    )
+
+    # The ${gem_name}.Editor.Private.Object target is an internal target
+    # which is only to be used by this gems CMakeLists.txt and any subdirectories
+    # Other gems should not use this target
+    ly_add_target(
+        NAME ${gem_name}.Editor.Private.Object STATIC
+        NAMESPACE Gem
+        AUTOMOC
+        AUTORCC
+        FILES_CMAKE
+            ros2robotimporter_editor_private_files.cmake
+        TARGET_PROPERTIES
+            O3DE_PRIVATE_TARGET TRUE
+        INCLUDE_DIRECTORIES
+            PRIVATE
+                Include
+                Source
+        BUILD_DEPENDENCIES
+            PUBLIC
+                AZ::AzToolsFramework
+                Gem::CommonFeaturesAtom.Editor.Static
+                Gem::PhysX5.Editor.Static
+                Gem::ROS2.Editor.Static
+                ${gem_name}.Private.Object
+            PRIVATE
+                AZ::AssetBuilderSDK
+                3rdParty::sdformat
+    )
+
+    ly_add_target(
+        NAME ${gem_name}.Editor GEM_MODULE
+        NAMESPACE Gem
+        AUTOMOC
+        FILES_CMAKE
+            ros2robotimporter_editor_shared_files.cmake
+        INCLUDE_DIRECTORIES
+            PRIVATE
+                Source
+            PUBLIC
+                Include
+        BUILD_DEPENDENCIES
+            PUBLIC
+                Gem::${gem_name}.Editor.API
+            PRIVATE
+                Gem::${gem_name}.Editor.Private.Object
+    )
+
+    # Include the gem name into the Editor Module source file
+    # for use with the AZ_DECLARE_MODULE_CLASS macro
+    # This is to allow renaming of the gem to also cause
+    # the CreateModuleClass_Gem_<gem-name> function which
+    # is used to bootstrap the gem in monolithic builds to link to the new gem name
+    ly_add_source_properties(
+    SOURCES
+        Source/Tools/ROS2RobotImporterEditorModule.cpp
+    PROPERTY COMPILE_DEFINITIONS
+        VALUES
+            O3DE_GEM_NAME=${gem_name}
+            O3DE_GEM_VERSION=${gem_version})
+
+    # By default, we will specify that the above target ${gem_name} would be used by
+    # Tool and Builder type targets when this gem is enabled.  If you don't want it
+    # active in Tools or Builders by default, delete one of both of the following lines:
+    ly_create_alias(NAME ${gem_name}.Tools    NAMESPACE Gem TARGETS Gem::${gem_name}.Editor)
+    ly_create_alias(NAME ${gem_name}.Builders NAMESPACE Gem TARGETS Gem::${gem_name}.Editor)
+
+    # For the Tools and Builders variants of ${gem_name} Gem, an alias to the ${gem_name}.Editor API target will be made
+    ly_create_alias(NAME ${gem_name}.Tools.API NAMESPACE Gem TARGETS Gem::${gem_name}.Editor.API)
+    ly_create_alias(NAME ${gem_name}.Builders.API NAMESPACE Gem TARGETS Gem::${gem_name}.Editor.API)
+
+    # Add in CMake dependencies for each gem dependency listed in this gem's gem.json file
+    # for the Tools and Builders gem variants
+    o3de_add_variant_dependencies_for_gem_dependencies(GEM_NAME ${gem_name} VARIANTS Tools Builders)
+endif()
+
+################################################################################
+# Tests
+################################################################################
+# See if globally, tests are supported
+if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
+    # We globally support tests, see if we support tests on this platform for ${gem_name}.Tests
+    if(PAL_TRAIT_ROS2ROBOTIMPORTER_TEST_SUPPORTED)
+        # We support ${gem_name}.Tests on this platform, add dependency on the Private Object target
+        ly_add_target(
+            NAME ${gem_name}.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
+            NAMESPACE Gem
+            FILES_CMAKE
+                ros2robotimporter_tests_files.cmake
+            INCLUDE_DIRECTORIES
+                PRIVATE
+                    Tests
+                    Source
+                    Include
+            BUILD_DEPENDENCIES
+                PRIVATE
+                    AZ::AzTest
+                    AZ::AzFramework
+                    Gem::${gem_name}.Private.Object
+        )
+
+        # Add ${gem_name}.Tests to googletest
+        ly_add_googletest(
+            NAME Gem::${gem_name}.Tests
+        )
+    endif()
+
+    # If we are a host platform we want to add tools test like editor tests here
+    if(PAL_TRAIT_BUILD_HOST_TOOLS)
+        # We are a host platform, see if Editor tests are supported on this platform
+        if(PAL_TRAIT_ROS2ROBOTIMPORTER_EDITOR_TEST_SUPPORTED)
+            # We support ${gem_name}.Editor.Tests on this platform, add ${gem_name}.Editor.Tests target which depends on
+            # private ${gem_name}.Editor.Private.Object target
+            ly_add_target(
+                NAME ${gem_name}.Editor.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
+                NAMESPACE Gem
+                FILES_CMAKE
+                    ros2robotimporter_editor_tests_files.cmake
+                INCLUDE_DIRECTORIES
+                    PRIVATE
+                        Tests
+                        Source
+                        Include
+                BUILD_DEPENDENCIES
+                    PRIVATE
+                        AZ::AzTest
+                        AZ::AzTestShared
+                        AZ::AzToolsFramework
+                        Gem::${gem_name}.Editor.Private.Object
+                        3rdParty::sdformat
+            )
+
+            # Add ${gem_name}.Editor.Tests to googletest
+            ly_add_googletest(
+                NAME Gem::${gem_name}.Editor.Tests
+            )
+        endif()
+    endif()
+endif()

+ 2 - 2
Gems/ROS2/Code/Include/ROS2/RobotImporter/RobotImporterBus.h → Gems/ROS2RobotImporter/Code/Include/ROS2RobotImporter/ROS2RobotImporterBus.h

@@ -10,8 +10,8 @@
 #include <AzCore/EBus/EBus.h>
 #include <AzCore/EBus/EBus.h>
 #include <AzCore/EBus/Policies.h>
 #include <AzCore/EBus/Policies.h>
 #include <AzCore/std/string/string.h>
 #include <AzCore/std/string/string.h>
-#include <ROS2/RobotImporter/SDFormatModelPluginImporterHook.h>
-#include <ROS2/RobotImporter/SDFormatSensorImporterHook.h>
+#include <ROS2RobotImporter/SDFormatModelPluginImporterHook.h>
+#include <ROS2RobotImporter/SDFormatSensorImporterHook.h>
 
 
 namespace ROS2
 namespace ROS2
 {
 {

+ 26 - 0
Gems/ROS2RobotImporter/Code/Include/ROS2RobotImporter/ROS2RobotImporterTypeIds.h

@@ -0,0 +1,26 @@
+/*
+ * 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
+
+namespace ROS2RobotImporter
+{
+    // System Component TypeIds
+    inline constexpr const char* ROS2RobotImporterSystemComponentTypeId = "{BA41DABD-73BD-4D57-84F5-C7573CF306C6}";
+    inline constexpr const char* ROS2RobotImporterEditorSystemComponentTypeId = "{8E64EEB9-7531-432E-9CE4-5A4EE27E9427}";
+
+    // Module derived classes TypeIds
+    inline constexpr const char* ROS2RobotImporterModuleInterfaceTypeId = "{A4047EF8-273E-40B6-A7B0-D4ACB0EEE4DB}";
+    inline constexpr const char* ROS2RobotImporterModuleTypeId = "{4A7966DE-7534-4149-9F56-0839F61A8D5D}";
+    // The Editor Module by default is mutually exclusive with the Client Module
+    // so they use the Same TypeId
+    inline constexpr const char* ROS2RobotImporterEditorModuleTypeId = ROS2RobotImporterModuleTypeId;
+
+    // Interface TypeIds
+    inline constexpr const char* ROS2RobotImporterRequestsTypeId = "{3963260F-404B-439A-B451-F4184386A1A7}";
+} // namespace ROS2RobotImporter

+ 0 - 0
Gems/ROS2/Code/Include/ROS2/RobotImporter/SDFormatModelPluginImporterHook.h → Gems/ROS2RobotImporter/Code/Include/ROS2RobotImporter/SDFormatModelPluginImporterHook.h


+ 0 - 0
Gems/ROS2/Code/Include/ROS2/RobotImporter/SDFormatSensorImporterHook.h → Gems/ROS2RobotImporter/Code/Include/ROS2RobotImporter/SDFormatSensorImporterHook.h


+ 11 - 0
Gems/ROS2RobotImporter/Code/Platform/Android/PAL_android.cmake

@@ -0,0 +1,11 @@
+#
+# 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
+#
+#
+
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_SUPPORTED TRUE)
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_TEST_SUPPORTED FALSE)
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_EDITOR_TEST_SUPPORTED FALSE)

+ 10 - 0
Gems/ROS2RobotImporter/Code/Platform/Android/ros2robotimporter_api_files.cmake

@@ -0,0 +1,10 @@
+#
+# 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
+#
+#
+
+set(FILES
+)

+ 15 - 0
Gems/ROS2RobotImporter/Code/Platform/Android/ros2robotimporter_private_files.cmake

@@ -0,0 +1,15 @@
+#
+# 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
+#
+#
+
+# Platform specific files for Android
+# i.e. ../Source/Android/ROS2RobotImporterAndroid.cpp
+#      ../Source/Android/ROS2RobotImporterAndroid.h
+#      ../Include/Android/ROS2RobotImporterAndroid.h
+
+set(FILES
+)

+ 15 - 0
Gems/ROS2RobotImporter/Code/Platform/Android/ros2robotimporter_shared_files.cmake

@@ -0,0 +1,15 @@
+#
+# 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
+#
+#
+
+# Platform specific files for Android
+# i.e. ../Source/Android/ROS2RobotImporterAndroid.cpp
+#      ../Source/Android/ROS2RobotImporterAndroid.h
+#      ../Include/Android/ROS2RobotImporterAndroid.h
+
+set(FILES
+)

+ 21 - 0
Gems/ROS2RobotImporter/Code/Platform/Linux/PAL_linux.cmake

@@ -0,0 +1,21 @@
+#
+# 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
+#
+#
+
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_SUPPORTED TRUE)
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_TEST_SUPPORTED FALSE)
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_EDITOR_TEST_SUPPORTED TRUE)
+
+if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
+    ly_associate_package(PACKAGE_NAME sdformat-13.5.0-rev2-linux
+        TARGETS sdformat
+        PACKAGE_HASH b8e988954c07f41b99ba0950da3f4d3e8489ffabaaff157f79ab0c716e2142e0)
+elseif(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64")
+    ly_associate_package(PACKAGE_NAME sdformat-13.5.0-rev2-linux-aarch64
+        TARGETS sdformat
+        PACKAGE_HASH 7e51cc60c61a058c1f8aba7277574946ab974af3ff4601884e72380e8585c0ea)
+endif()

+ 10 - 0
Gems/ROS2RobotImporter/Code/Platform/Linux/ros2robotimporter_api_files.cmake

@@ -0,0 +1,10 @@
+#
+# 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
+#
+#
+
+set(FILES
+)

+ 10 - 0
Gems/ROS2RobotImporter/Code/Platform/Linux/ros2robotimporter_editor_api_files.cmake

@@ -0,0 +1,10 @@
+#
+# 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
+#
+#
+
+set(FILES
+)

+ 15 - 0
Gems/ROS2RobotImporter/Code/Platform/Linux/ros2robotimporter_private_files.cmake

@@ -0,0 +1,15 @@
+#
+# 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
+#
+#
+
+# Platform specific files for Linux
+# i.e. ../Source/Linux/ROS2RobotImporterLinux.cpp
+#      ../Source/Linux/ROS2RobotImporterLinux.h
+#      ../Include/Linux/ROS2RobotImporterLinux.h
+
+set(FILES
+)

+ 15 - 0
Gems/ROS2RobotImporter/Code/Platform/Linux/ros2robotimporter_shared_files.cmake

@@ -0,0 +1,15 @@
+#
+# 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
+#
+#
+
+# Platform specific files for Linux
+# i.e. ../Source/Linux/ROS2RobotImporterLinux.cpp
+#      ../Source/Linux/ROS2RobotImporterLinux.h
+#      ../Include/Linux/ROS2RobotImporterLinux.h
+
+set(FILES
+)

+ 4 - 0
Gems/ROS2RobotImporter/Code/Platform/Mac/PAL_mac.cmake

@@ -0,0 +1,4 @@
+
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_SUPPORTED TRUE)
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_TEST_SUPPORTED FALSE)
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_EDITOR_TEST_SUPPORTED FALSE)

+ 10 - 0
Gems/ROS2RobotImporter/Code/Platform/Mac/ros2robotimporter_api_files.cmake

@@ -0,0 +1,10 @@
+#
+# 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
+#
+#
+
+set(FILES
+)

+ 10 - 0
Gems/ROS2RobotImporter/Code/Platform/Mac/ros2robotimporter_editor_api_files.cmake

@@ -0,0 +1,10 @@
+#
+# 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
+#
+#
+
+set(FILES
+)

+ 15 - 0
Gems/ROS2RobotImporter/Code/Platform/Mac/ros2robotimporter_private_files.cmake

@@ -0,0 +1,15 @@
+#
+# 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
+#
+#
+
+# Platform specific files for Mac
+# i.e. ../Source/Mac/ROS2RobotImporterMac.cpp
+#      ../Source/Mac/ROS2RobotImporterMac.h
+#      ../Include/Mac/ROS2RobotImporterMac.h
+
+set(FILES
+)

+ 15 - 0
Gems/ROS2RobotImporter/Code/Platform/Mac/ros2robotimporter_shared_files.cmake

@@ -0,0 +1,15 @@
+#
+# 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
+#
+#
+
+# Platform specific files for Mac
+# i.e. ../Source/Mac/ROS2RobotImporterMac.cpp
+#      ../Source/Mac/ROS2RobotImporterMac.h
+#      ../Include/Mac/ROS2RobotImporterMac.h
+
+set(FILES
+)

+ 11 - 0
Gems/ROS2RobotImporter/Code/Platform/Windows/PAL_windows.cmake

@@ -0,0 +1,11 @@
+#
+# 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
+#
+#
+
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_SUPPORTED TRUE)
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_TEST_SUPPORTED FALSE)
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_EDITOR_TEST_SUPPORTED FALSE)

+ 10 - 0
Gems/ROS2RobotImporter/Code/Platform/Windows/ros2robotimporter_api_files.cmake

@@ -0,0 +1,10 @@
+#
+# 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
+#
+#
+
+set(FILES
+)

+ 10 - 0
Gems/ROS2RobotImporter/Code/Platform/Windows/ros2robotimporter_editor_api_files.cmake

@@ -0,0 +1,10 @@
+#
+# 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
+#
+#
+
+set(FILES
+)

+ 15 - 0
Gems/ROS2RobotImporter/Code/Platform/Windows/ros2robotimporter_private_files.cmake

@@ -0,0 +1,15 @@
+#
+# 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
+#
+#
+
+# Platform specific files for Windows
+# i.e. ../Source/Windows/ROS2RobotImporterWindows.cpp
+#      ../Source/Windows/ROS2RobotImporterWindows.h
+#      ../Include/Windows/ROS2RobotImporterWindows.h
+
+set(FILES
+)

+ 15 - 0
Gems/ROS2RobotImporter/Code/Platform/Windows/ros2robotimporter_shared_files.cmake

@@ -0,0 +1,15 @@
+#
+# 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
+#
+#
+
+# Platform specific files for Windows
+# i.e. ../Source/Windows/ROS2RobotImporterWindows.cpp
+#      ../Source/Windows/ROS2RobotImporterWindows.h
+#      ../Include/Windows/ROS2RobotImporterWindows.h
+
+set(FILES
+)

+ 11 - 0
Gems/ROS2RobotImporter/Code/Platform/iOS/PAL_ios.cmake

@@ -0,0 +1,11 @@
+#
+# 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
+#
+#
+
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_SUPPORTED TRUE)
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_TEST_SUPPORTED FALSE)
+set(PAL_TRAIT_ROS2ROBOTIMPORTER_EDITOR_TEST_SUPPORTED FALSE)

+ 10 - 0
Gems/ROS2RobotImporter/Code/Platform/iOS/ros2robotimporter_api_files.cmake

@@ -0,0 +1,10 @@
+#
+# 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
+#
+#
+
+set(FILES
+)

+ 15 - 0
Gems/ROS2RobotImporter/Code/Platform/iOS/ros2robotimporter_private_files.cmake

@@ -0,0 +1,15 @@
+#
+# 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
+#
+#
+
+# Platform specific files for iOS
+# i.e. ../Source/iOS/ROS2RobotImporteriOS.cpp
+#      ../Source/iOS/ROS2RobotImporteriOS.h
+#      ../Include/iOS/ROS2RobotImporteriOS.h
+
+set(FILES
+)

+ 15 - 0
Gems/ROS2RobotImporter/Code/Platform/iOS/ros2robotimporter_shared_files.cmake

@@ -0,0 +1,15 @@
+#
+# 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
+#
+#
+
+# Platform specific files for iOS
+# i.e. ../Source/iOS/ROS2RobotImporteriOS.cpp
+#      ../Source/iOS/ROS2RobotImporteriOS.h
+#      ../Include/iOS/ROS2RobotImporteriOS.h
+
+set(FILES
+)

+ 27 - 0
Gems/ROS2RobotImporter/Code/Source/Clients/ROS2RobotImporterModule.cpp

@@ -0,0 +1,27 @@
+/*
+ * 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 "ROS2RobotImporterSystemComponent.h"
+#include <ROS2RobotImporter/ROS2RobotImporterTypeIds.h>
+#include <ROS2RobotImporterModuleInterface.h>
+
+namespace ROS2RobotImporter
+{
+    class ROS2RobotImporterModule : public ROS2RobotImporterModuleInterface
+    {
+    public:
+        AZ_RTTI(ROS2RobotImporterModule, ROS2RobotImporterModuleTypeId, ROS2RobotImporterModuleInterface);
+        AZ_CLASS_ALLOCATOR(ROS2RobotImporterModule, AZ::SystemAllocator);
+    };
+} // namespace ROS2RobotImporter
+
+#if defined(O3DE_GEM_NAME)
+AZ_DECLARE_MODULE_CLASS(AZ_JOIN(Gem_, O3DE_GEM_NAME), ROS2RobotImporter::ROS2RobotImporterModule)
+#else
+AZ_DECLARE_MODULE_CLASS(Gem_ROS2RobotImporter, ROS2RobotImporter::ROS2RobotImporterModule)
+#endif

+ 0 - 0
Gems/ROS2/Code/Source/RobotImporter/ROS2RobotImporterSystemComponent.cpp → Gems/ROS2RobotImporter/Code/Source/Clients/ROS2RobotImporterSystemComponent.cpp


+ 0 - 0
Gems/ROS2/Code/Source/RobotImporter/ROS2RobotImporterSystemComponent.h → Gems/ROS2RobotImporter/Code/Source/Clients/ROS2RobotImporterSystemComponent.h


+ 38 - 0
Gems/ROS2RobotImporter/Code/Source/ROS2RobotImporterModuleInterface.cpp

@@ -0,0 +1,38 @@
+/*
+ * 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 "ROS2RobotImporterModuleInterface.h"
+#include <AzCore/Memory/Memory.h>
+
+#include <ROS2RobotImporter/ROS2RobotImporterTypeIds.h>
+
+#include <Clients/ROS2RobotImporterSystemComponent.h>
+
+namespace ROS2RobotImporter
+{
+    AZ_TYPE_INFO_WITH_NAME_IMPL(
+        ROS2RobotImporterModuleInterface, "ROS2RobotImporterModuleInterface", ROS2RobotImporterModuleInterfaceTypeId);
+    AZ_RTTI_NO_TYPE_INFO_IMPL(ROS2RobotImporterModuleInterface, AZ::Module);
+    AZ_CLASS_ALLOCATOR_IMPL(ROS2RobotImporterModuleInterface, AZ::SystemAllocator);
+
+    ROS2RobotImporterModuleInterface::ROS2RobotImporterModuleInterface()
+    {
+        m_descriptors.insert(
+            m_descriptors.end(),
+            {
+                ROS2::ROS2RobotImporterSystemComponent::CreateDescriptor(),
+            });
+    }
+
+    AZ::ComponentTypeList ROS2RobotImporterModuleInterface::GetRequiredSystemComponents() const
+    {
+        return AZ::ComponentTypeList{
+            azrtti_typeid<ROS2::ROS2RobotImporterSystemComponent>(),
+        };
+    }
+} // namespace ROS2RobotImporter

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott