merge from development

Signed-off-by: greerdv <greerdv@amazon.com>
This commit is contained in:
greerdv
2021-11-23 21:26:52 +00:00
1428 changed files with 13218 additions and 12089 deletions
@@ -27,7 +27,6 @@
#include <AzToolsFramework/Manipulators/ScaleManipulators.h>
#include <AzToolsFramework/Manipulators/TranslationManipulators.h>
#include <AzToolsFramework/Maths/TransformUtils.h>
#include <AzToolsFramework/Prefab/PrefabFocusPublicInterface.h>
#include <AzToolsFramework/Prefab/PrefabFocusInterface.h>
#include <AzToolsFramework/Prefab/PrefabFocusPublicInterface.h>
#include <AzToolsFramework/ToolsComponents/EditorLockComponentBus.h>
@@ -893,37 +892,34 @@ namespace AzToolsFramework
prevModifiers = action.m_modifiers;
}
static void HandleAccents(
const bool hasSelectedEntities,
const AZ::EntityId entityIdUnderCursor,
const bool ctrlHeld,
AZ::EntityId& hoveredEntityId,
void HandleAccents(
const AZ::EntityId currentEntityIdUnderCursor,
AZ::EntityId& hoveredEntityIdUnderCursor,
const HandleAccentsContext& handleAccentsContext,
const ViewportInteraction::MouseButtons mouseButtons,
const bool usingBoxSelect)
const AZStd::function<void(AZ::EntityId, bool)>& setEntityAccentedFn)
{
AZ_PROFILE_FUNCTION(AzToolsFramework);
const bool invalidMouseButtonHeld = mouseButtons.Middle() || mouseButtons.Right();
const bool hasSelectedEntities = handleAccentsContext.m_hasSelectedEntities;
const bool ctrlHeld = handleAccentsContext.m_ctrlHeld;
const bool boxSelect = handleAccentsContext.m_usingBoxSelect;
const bool stickySelect = handleAccentsContext.m_usingStickySelect;
const bool canSelect = stickySelect ? !hasSelectedEntities || ctrlHeld : true;
if ((hoveredEntityId.IsValid() && hoveredEntityId != entityIdUnderCursor) ||
(hasSelectedEntities && !ctrlHeld && hoveredEntityId.IsValid()) || invalidMouseButtonHeld)
const bool removePreviousAccent =
(currentEntityIdUnderCursor != hoveredEntityIdUnderCursor && hoveredEntityIdUnderCursor.IsValid()) || invalidMouseButtonHeld;
const bool addNextAccent = currentEntityIdUnderCursor.IsValid() && canSelect && !invalidMouseButtonHeld && !boxSelect;
if (removePreviousAccent)
{
if (hoveredEntityId.IsValid())
{
ToolsApplicationRequestBus::Broadcast(&ToolsApplicationRequests::SetEntityHighlighted, hoveredEntityId, false);
hoveredEntityId.SetInvalid();
}
setEntityAccentedFn(hoveredEntityIdUnderCursor, false);
hoveredEntityIdUnderCursor.SetInvalid();
}
if (!invalidMouseButtonHeld && !usingBoxSelect && (!hasSelectedEntities || ctrlHeld))
if (addNextAccent)
{
if (entityIdUnderCursor.IsValid())
{
ToolsApplicationRequestBus::Broadcast(&ToolsApplicationRequests::SetEntityHighlighted, entityIdUnderCursor, true);
hoveredEntityId = entityIdUnderCursor;
}
setEntityAccentedFn(currentEntityIdUnderCursor, true);
hoveredEntityIdUnderCursor = currentEntityIdUnderCursor;
}
}
@@ -1781,7 +1777,7 @@ namespace AzToolsFramework
const AzFramework::CameraState cameraState = GetCameraState(viewportId);
const auto cursorEntityIdQuery = m_editorHelpers->FindEntityIdUnderCursor(cameraState, mouseInteraction);
m_cachedEntityIdUnderCursor = cursorEntityIdQuery.ContainerAncestorEntityId();
m_currentEntityIdUnderCursor = cursorEntityIdQuery.ContainerAncestorEntityId();
const auto selectClickEvent = ClickDetectorEventFromViewportInteraction(mouseInteraction);
m_cursorState.SetCurrentPosition(mouseInteraction.m_mouseInteraction.m_mousePick.m_screenCoordinates);
@@ -1802,7 +1798,7 @@ namespace AzToolsFramework
mouseInteraction.m_mouseInteraction,
AZ::Aabb::CreateFromMinMax(boxPosition - scaledSize, boxPosition + scaledSize)))
{
m_cachedEntityIdUnderCursor = entityId;
m_currentEntityIdUnderCursor = entityId;
}
}
}
@@ -1822,7 +1818,7 @@ namespace AzToolsFramework
return true;
}
const AZ::EntityId entityIdUnderCursor = m_cachedEntityIdUnderCursor;
const AZ::EntityId entityIdUnderCursor = m_currentEntityIdUnderCursor;
if (mouseInteraction.m_mouseEvent == ViewportInteraction::MouseEvent::DoubleClick &&
mouseInteraction.m_mouseInteraction.m_mouseButtons.Left())
@@ -3341,9 +3337,23 @@ namespace AzToolsFramework
m_cursorState.Update();
bool stickySelect = false;
ViewportInteraction::ViewportSettingsRequestBus::EventResult(
stickySelect, viewportInfo.m_viewportId, &ViewportInteraction::ViewportSettingsRequestBus::Events::StickySelectEnabled);
HandleAccentsContext handleAccentsContext;
handleAccentsContext.m_ctrlHeld = keyboardModifiers.Ctrl();
handleAccentsContext.m_hasSelectedEntities = !m_selectedEntityIds.empty();
handleAccentsContext.m_usingBoxSelect = m_boxSelect.Active();
handleAccentsContext.m_usingStickySelect = stickySelect;
HandleAccents(
!m_selectedEntityIds.empty(), m_cachedEntityIdUnderCursor, keyboardModifiers.Ctrl(), m_hoveredEntityId,
ViewportInteraction::BuildMouseButtons(QGuiApplication::mouseButtons()), m_boxSelect.Active());
m_currentEntityIdUnderCursor, m_hoveredEntityId, handleAccentsContext,
ViewportInteraction::BuildMouseButtons(QGuiApplication::mouseButtons()),
[](const AZ::EntityId entityId, bool highlighted)
{
ToolsApplicationRequestBus::Broadcast(&ToolsApplicationRequests::SetEntityHighlighted, entityId, highlighted);
});
const ReferenceFrame referenceFrame = m_spaceCluster.m_spaceLock.value_or(ReferenceFrameFromModifiers(keyboardModifiers));
@@ -3589,7 +3599,8 @@ namespace AzToolsFramework
if (auto prefabFocusPublicInterface = AZ::Interface<AzToolsFramework::Prefab::PrefabFocusPublicInterface>::Get())
{
AzFramework::EntityContextId editorEntityContextId = GetEntityContextId();
if (AZ::EntityId focusRoot = prefabFocusPublicInterface->GetFocusedPrefabContainerEntityId(editorEntityContextId); focusRoot.IsValid())
if (AZ::EntityId focusRoot = prefabFocusPublicInterface->GetFocusedPrefabContainerEntityId(editorEntityContextId);
focusRoot.IsValid())
{
m_selectedEntityIds.erase(focusRoot);
}
@@ -3721,7 +3732,6 @@ namespace AzToolsFramework
break;
case ViewportEditorMode::Focus:
{
ViewportUi::ViewportUiRequestBus::Event(
ViewportUi::DefaultViewportId, &ViewportUi::ViewportUiRequestBus::Events::RemoveViewportBorder);
}
@@ -317,7 +317,7 @@ namespace AzToolsFramework
void SetAllViewportUiVisible(bool visible);
AZ::EntityId m_hoveredEntityId; //!< What EntityId is the mouse currently hovering over (if any).
AZ::EntityId m_cachedEntityIdUnderCursor; //!< Store the EntityId on each mouse move for use in Display.
AZ::EntityId m_currentEntityIdUnderCursor; //!< Store the EntityId on each mouse move for use in Display.
AZ::EntityId m_editorCameraComponentEntityId; //!< The EditorCameraComponent EntityId if it is set.
EntityIdSet m_selectedEntityIds; //!< Represents the current entities in the selection.
@@ -357,6 +357,23 @@ namespace AzToolsFramework
bool m_viewportUiVisible = true; //!< Used to hide/show the viewport ui elements.
};
//! Bundles viewport state that impacts how accents are added/removed in HandleAccents.
struct HandleAccentsContext
{
bool m_hasSelectedEntities;
bool m_ctrlHeld;
bool m_usingBoxSelect;
bool m_usingStickySelect;
};
//! Updates whether accents (icon highlights) are added/removed for a given entity based on the cursor position.
void HandleAccents(
AZ::EntityId currentEntityIdUnderCursor,
AZ::EntityId& hoveredEntityIdUnderCursor,
const HandleAccentsContext& handleAccentsContext,
ViewportInteraction::MouseButtons mouseButtons,
const AZStd::function<void(AZ::EntityId, bool)>& setEntityAccentedFn);
//! The ETCS (EntityTransformComponentSelection) namespace contains functions and data used exclusively by
//! the EditorTransformComponentSelection type. Functions in this namespace are exposed to facilitate testing
//! and should not be used outside of EditorTransformComponentSelection or EditorTransformComponentSelectionTests.
@@ -2781,4 +2781,196 @@ namespace UnitTest
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
TEST(HandleAccents, CurrentValidEntityIdBecomesHoveredWithNoSelectionAndUnstickySelect)
{
namespace azvi = AzToolsFramework::ViewportInteraction;
const AZ::EntityId currentEntityId = AZ::EntityId(12345);
AZ::EntityId hoveredEntityEntityId;
AzToolsFramework::HandleAccentsContext handleAccentsContext;
handleAccentsContext.m_ctrlHeld = false;
handleAccentsContext.m_hasSelectedEntities = false;
handleAccentsContext.m_usingBoxSelect = false;
handleAccentsContext.m_usingStickySelect = false;
bool currentEntityIdAccentAdded = false;
AzToolsFramework::HandleAccents(
currentEntityId, hoveredEntityEntityId, handleAccentsContext, azvi::MouseButtonsFromButton(azvi::MouseButton::None),
[&currentEntityIdAccentAdded, currentEntityId](const AZ::EntityId entityId, const bool accent)
{
if (entityId == currentEntityId && accent)
{
currentEntityIdAccentAdded = true;
}
});
using ::testing::Eq;
using ::testing::IsTrue;
EXPECT_THAT(currentEntityId, Eq(hoveredEntityEntityId));
EXPECT_THAT(currentEntityIdAccentAdded, IsTrue());
}
TEST(HandleAccents, CurrentValidEntityIdBecomesHoveredWithSelectionAndUnstickySelect)
{
namespace azvi = AzToolsFramework::ViewportInteraction;
const AZ::EntityId currentEntityId = AZ::EntityId(12345);
AZ::EntityId hoveredEntityEntityId;
AzToolsFramework::HandleAccentsContext handleAccentsContext;
handleAccentsContext.m_ctrlHeld = false;
handleAccentsContext.m_hasSelectedEntities = true;
handleAccentsContext.m_usingBoxSelect = false;
handleAccentsContext.m_usingStickySelect = false;
bool currentEntityIdAccentAdded = false;
AzToolsFramework::HandleAccents(
currentEntityId, hoveredEntityEntityId, handleAccentsContext, azvi::MouseButtonsFromButton(azvi::MouseButton::None),
[&currentEntityIdAccentAdded, currentEntityId](const AZ::EntityId entityId, const bool accent)
{
if (entityId == currentEntityId && accent)
{
currentEntityIdAccentAdded = true;
}
});
using ::testing::Eq;
using ::testing::IsTrue;
EXPECT_THAT(currentEntityId, Eq(hoveredEntityEntityId));
EXPECT_THAT(currentEntityIdAccentAdded, IsTrue());
}
TEST(HandleAccents, CurrentValidEntityIdDoesNotBecomeHoveredWithSelectionUnstickySelectAndInvalidButton)
{
namespace azvi = AzToolsFramework::ViewportInteraction;
const AZ::EntityId currentEntityId = AZ::EntityId(12345);
AZ::EntityId hoveredEntityEntityId = AZ::EntityId(54321);
AzToolsFramework::HandleAccentsContext handleAccentsContext;
handleAccentsContext.m_ctrlHeld = false;
handleAccentsContext.m_hasSelectedEntities = false;
handleAccentsContext.m_usingBoxSelect = false;
handleAccentsContext.m_usingStickySelect = false;
bool hoveredEntityIdAccentRemoved = false;
AzToolsFramework::HandleAccents(
currentEntityId, hoveredEntityEntityId, handleAccentsContext, azvi::MouseButtonsFromButton(azvi::MouseButton::Middle),
[&hoveredEntityIdAccentRemoved, hoveredEntityEntityId](const AZ::EntityId entityId, const bool accent)
{
if (entityId == hoveredEntityEntityId && !accent)
{
hoveredEntityIdAccentRemoved = true;
}
});
using ::testing::Eq;
using ::testing::IsFalse;
using ::testing::IsTrue;
EXPECT_THAT(hoveredEntityEntityId.IsValid(), IsFalse());
EXPECT_THAT(hoveredEntityIdAccentRemoved, IsTrue());
}
TEST(HandleAccents, CurrentValidEntityIdDoesNotBecomeHoveredWithSelectionUnstickySelectAndDoingBoxSelect)
{
namespace azvi = AzToolsFramework::ViewportInteraction;
const AZ::EntityId currentEntityId = AZ::EntityId(12345);
AZ::EntityId hoveredEntityEntityId = AZ::EntityId(54321);
AzToolsFramework::HandleAccentsContext handleAccentsContext;
handleAccentsContext.m_ctrlHeld = false;
handleAccentsContext.m_hasSelectedEntities = false;
handleAccentsContext.m_usingBoxSelect = true;
handleAccentsContext.m_usingStickySelect = false;
bool hoveredEntityIdAccentRemoved = false;
AzToolsFramework::HandleAccents(
currentEntityId, hoveredEntityEntityId, handleAccentsContext, azvi::MouseButtonsFromButton(azvi::MouseButton::None),
[&hoveredEntityIdAccentRemoved, hoveredEntityEntityId](const AZ::EntityId entityId, const bool accent)
{
if (entityId == hoveredEntityEntityId && !accent)
{
hoveredEntityIdAccentRemoved = true;
}
});
using ::testing::Eq;
using ::testing::IsFalse;
using ::testing::IsTrue;
EXPECT_THAT(hoveredEntityEntityId.IsValid(), IsFalse());
EXPECT_THAT(hoveredEntityIdAccentRemoved, IsTrue());
}
// mimics the mouse moving off of hovered entity onto a new entity with sticky select enabled
TEST(HandleAccents, CurrentValidEntityIdDoesNotBecomeHoveredWithSelectionAndStickySelect)
{
namespace azvi = AzToolsFramework::ViewportInteraction;
const AZ::EntityId currentEntityId = AZ::EntityId(12345);
AZ::EntityId hoveredEntityEntityId = AZ::EntityId(54321);
AzToolsFramework::HandleAccentsContext handleAccentsContext;
handleAccentsContext.m_ctrlHeld = false;
handleAccentsContext.m_hasSelectedEntities = true;
handleAccentsContext.m_usingBoxSelect = false;
handleAccentsContext.m_usingStickySelect = true;
bool hoveredEntityIdAccentRemoved = false;
AzToolsFramework::HandleAccents(
currentEntityId, hoveredEntityEntityId, handleAccentsContext, azvi::MouseButtonsFromButton(azvi::MouseButton::None),
[&hoveredEntityIdAccentRemoved, hoveredEntityEntityId](const AZ::EntityId entityId, const bool accent)
{
if (entityId == hoveredEntityEntityId && !accent)
{
hoveredEntityIdAccentRemoved = true;
}
});
using ::testing::Eq;
using ::testing::IsFalse;
using ::testing::IsTrue;
EXPECT_THAT(hoveredEntityIdAccentRemoved, IsTrue());
EXPECT_THAT(hoveredEntityEntityId.IsValid(), IsFalse());
}
TEST(HandleAccents, CurrentValidEntityIdDoesBecomeHoveredWithSelectionAndStickySelectAndCtrl)
{
namespace azvi = AzToolsFramework::ViewportInteraction;
const AZ::EntityId currentEntityId = AZ::EntityId(12345);
AZ::EntityId hoveredEntityEntityId = AZ::EntityId(54321);
AzToolsFramework::HandleAccentsContext handleAccentsContext;
handleAccentsContext.m_ctrlHeld = true;
handleAccentsContext.m_hasSelectedEntities = true;
handleAccentsContext.m_usingBoxSelect = false;
handleAccentsContext.m_usingStickySelect = true;
bool currentEntityIdAccentAdded = false;
bool hoveredEntityIdAccentRemoved = false;
AzToolsFramework::HandleAccents(
currentEntityId, hoveredEntityEntityId, handleAccentsContext, azvi::MouseButtonsFromButton(azvi::MouseButton::None),
[&hoveredEntityIdAccentRemoved, &currentEntityIdAccentAdded, currentEntityId,
hoveredEntityEntityId](const AZ::EntityId entityId, const bool accent)
{
if (entityId == currentEntityId && accent)
{
currentEntityIdAccentAdded = true;
}
if (entityId == hoveredEntityEntityId && !accent)
{
hoveredEntityIdAccentRemoved = true;
}
});
using ::testing::Eq;
using ::testing::IsFalse;
using ::testing::IsTrue;
EXPECT_THAT(currentEntityIdAccentAdded, IsTrue());
EXPECT_THAT(hoveredEntityIdAccentRemoved, IsTrue());
EXPECT_THAT(hoveredEntityEntityId, Eq(AZ::EntityId(12345)));
}
} // namespace UnitTest
+19
View File
@@ -154,10 +154,20 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
AZ::AWSNativeSDKInit
Gem::AWSCore.Static
)
ly_add_googletest(
NAME Gem::AWSCore.Tests
)
ly_add_target_files(
TARGETS
AWSCore.Tests
FILES
${CMAKE_CURRENT_SOURCE_DIR}/Tools/ResourceMappingTool/resource_mapping_schema.json
OUTPUT_SUBDIRECTORY
Gems/AWSCore
)
if (PAL_TRAIT_BUILD_HOST_TOOLS)
ly_add_target(
NAME AWSCore.Editor.Tests ${PAL_TRAIT_TEST_TARGET_TYPE}
@@ -189,4 +199,13 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
endif()
endif()
ly_add_target_files(
TARGETS
AWSCore
FILES
${CMAKE_CURRENT_SOURCE_DIR}/Tools/ResourceMappingTool/resource_mapping_schema.json
OUTPUT_SUBDIRECTORY
Gems/AWSCore
)
ly_install_directory(DIRECTORIES Tools/ResourceMappingTool)
@@ -22,63 +22,6 @@ namespace AWSCore
static constexpr const char ResourceMappingTypeKeyName[] = "Type";
static constexpr const char ResourceMappingVersionKeyName[] = "Version";
// TODO: move this into an independent file under AWSCore gem, if resource mapping tool can reuse it
static constexpr const char ResourceMappingJsonSchema[] =
R"({
"$schema": "http://json-schema.org/draft-04/schema",
"type": "object",
"title": "The AWS Resource Mapping Root schema",
"required": ["AWSResourceMappings", "AccountId", "Region", "Version"],
"properties": {
"AWSResourceMappings": {
"type": "object",
"title": "The AWSResourceMappings schema",
"patternProperties": {
"^.+$": {
"type": "object",
"title": "The AWS Resource Entry schema",
"required": ["Type", "Name/ID"],
"properties": {
"Type": {
"$ref": "#/NonEmptyString"
},
"Name/ID": {
"$ref": "#/NonEmptyString"
},
"AccountId": {
"$ref": "#/AccountIdString"
},
"Region": {
"$ref": "#/RegionString"
}
}
}
},
"additionalProperties": false
},
"AccountId": {
"$ref": "#/AccountIdString"
},
"Region": {
"$ref": "#/RegionString"
},
"Version": {
"pattern": "^[0-9]{1}.[0-9]{1}.[0-9]{1}$"
}
},
"AccountIdString": {
"type": "string",
"pattern": "^[0-9]{12}$|EMPTY|^$"
},
"NonEmptyString": {
"type": "string",
"minLength": 1
},
"RegionString": {
"type": "string",
"pattern": "^[a-z]{2}-[a-z]{4,9}-[0-9]{1}$"
},
"additionalProperties": false
})";
static constexpr const char ResourceMapppingJsonSchemaFilePath[] =
"Gems/AWSCore/resource_mapping_schema.json";
} // namespace AWSCore
@@ -12,6 +12,7 @@
#include <AzCore/Serialization/Json/JsonUtils.h>
#include <AzCore/Settings/SettingsRegistry.h>
#include <AzCore/Settings/SettingsRegistryImpl.h>
#include <AzCore/Utils/Utils.h>
#include <AzFramework/StringFunc/StringFunc.h>
#include <AWSCoreInternalBus.h>
@@ -244,14 +245,16 @@ namespace AWSCore
bool AWSResourceMappingManager::ValidateJsonDocumentAgainstSchema(const rapidjson::Document& jsonDocument)
{
rapidjson::Document jsonSchemaDocument;
if (jsonSchemaDocument.Parse(ResourceMappingJsonSchema).HasParseError())
AZ::IO::Path executablePath = AZ::IO::PathView(AZ::Utils::GetExecutableDirectory());
AZ::IO::Path jsonSchemaPath = (executablePath / ResourceMapppingJsonSchemaFilePath).LexicallyNormal();
AZ::Outcome<rapidjson::Document, AZStd::string> readJsonOutcome = AZ::JsonSerializationUtils::ReadJsonFile(jsonSchemaPath.c_str());
if (!readJsonOutcome.IsSuccess() || readJsonOutcome.TakeValue().ObjectEmpty())
{
AZ_Error(AWSResourceMappingManagerName, false, ResourceMappingFileInvalidSchemaErrorMessage);
return false;
}
auto jsonSchema = rapidjson::SchemaDocument(jsonSchemaDocument);
auto jsonSchema = rapidjson::SchemaDocument(readJsonOutcome.TakeValue());
rapidjson::SchemaValidator validator(jsonSchema);
if (!jsonDocument.Accept(validator))
@@ -121,7 +121,7 @@ public:
void SetUp() override
{
AWSCoreFixture::SetUp();
AWSCoreFixture::SetUpFixture(false);
m_normalizedSourceProjectFolder = AZStd::string::format("%s/%s%s/", AZ::Test::GetCurrentExecutablePath().c_str(),
"AWSResourceMappingManager", AZ::Uuid::CreateRandom().ToString<AZStd::string>(false, false).c_str());
@@ -142,7 +142,7 @@ public:
m_resourceMappingManager->DeactivateManager();
m_resourceMappingManager.reset();
AWSCoreFixture::TearDown();
AWSCoreFixture::TearDownFixture(false);
}
// AWSCoreInternalRequestBus interface implementation
@@ -8,6 +8,7 @@
#pragma once
#include <AzCore/Component/ComponentApplication.h>
#include <AzCore/Memory/PoolAllocator.h>
#include <AzCore/UnitTest/TestTypes.h>
#include <AzCore/Settings/SettingsRegistryImpl.h>
@@ -111,6 +112,11 @@ public:
~AWSCoreFixture() override = default;
void SetUp() override
{
SetUpFixture();
}
void SetUpFixture(bool mockSettingsRegistry = true)
{
AZ::AllocatorInstance<AZ::ThreadPoolAllocator>::Create();
AZ::AllocatorInstance<AZ::PoolAllocator>::Create();
@@ -120,14 +126,33 @@ public:
AZ::IO::FileIOBase::SetInstance(nullptr);
AZ::IO::FileIOBase::SetInstance(m_localFileIO);
m_settingsRegistry = AZStd::make_unique<AZ::SettingsRegistryImpl>();
AZ::SettingsRegistry::Register(m_settingsRegistry.get());
if (mockSettingsRegistry)
{
m_settingsRegistry = AZStd::make_unique<AZ::SettingsRegistryImpl>();
AZ::SettingsRegistry::Register(m_settingsRegistry.get());
}
else
{
m_app = AZStd::make_unique<AZ::ComponentApplication>();
}
}
void TearDown() override
{
AZ::SettingsRegistry::Unregister(m_settingsRegistry.get());
m_settingsRegistry.reset();
TearDownFixture();
}
void TearDownFixture(bool mockSettingsRegistry = true)
{
if (mockSettingsRegistry)
{
AZ::SettingsRegistry::Unregister(m_settingsRegistry.get());
m_settingsRegistry.reset();
}
else
{
m_app.reset();
}
AZ::IO::FileIOBase::SetInstance(nullptr);
@@ -173,4 +198,5 @@ private:
protected:
AZStd::unique_ptr<AZ::SettingsRegistryImpl> m_settingsRegistry;
AZStd::unique_ptr<AZ::ComponentApplication> m_app;
};
@@ -0,0 +1,56 @@
{
"$schema": "http://json-schema.org/draft-04/schema",
"type": "object",
"title": "O3DE AWS Resource mapping file schema",
"required": ["AWSResourceMappings", "AccountId", "Region", "Version"],
"properties": {
"AWSResourceMappings": {
"type": "object",
"title": "AWS resource mappings schema",
"patternProperties": {
"^.+$": {
"type": "object",
"title": "AWS resource entry schema",
"required": ["Type", "Name/ID"],
"properties": {
"Type": {
"$ref": "#/NonEmptyString"
},
"Name/ID": {
"$ref": "#/NonEmptyString"
},
"AccountId": {
"$ref": "#/AccountIdString"
},
"Region": {
"$ref": "#/RegionString"
}
}
}
},
"additionalProperties": false
},
"AccountId": {
"$ref": "#/AccountIdString"
},
"Region": {
"$ref": "#/RegionString"
},
"Version": {
"pattern": "^[0-9]{1}.[0-9]{1}.[0-9]{1}$"
}
},
"AccountIdString": {
"type": "string",
"pattern": "^[0-9]{12}$|EMPTY|^$"
},
"NonEmptyString": {
"type": "string",
"minLength": 1
},
"RegionString": {
"type": "string",
"pattern": "^[a-z]{2}-[a-z]{4,9}-[0-9]{1}$"
},
"additionalProperties": false
}
@@ -10,6 +10,7 @@ import logging
import sys
from utils import environment_utils
from utils import json_utils
from utils import file_utils
# arguments setup
@@ -74,6 +75,15 @@ if __name__ == "__main__":
except FileNotFoundError:
logger.warning("Failed to load style sheet for resource mapping tool")
try:
schema_path: str = file_utils.join_path(file_utils.get_parent_directory_path(__file__),
'resource_mapping_schema.json')
json_utils.load_resource_mapping_json_schema(schema_path)
except (FileNotFoundError, ValueError, KeyError) as e:
logger.error(f"Failed to load schema file {e}")
environment_utils.cleanup_qt_environment()
exit(-1)
logger.info("Initializing configuration manager ...")
configuration_manager: ConfigurationManager = ConfigurationManager()
configuration_error: bool = not configuration_manager.setup(arguments.profile, arguments.config_path)
@@ -68,12 +68,65 @@ class TestFileUtils(TestCase):
self._mock_path.cwd.assert_called_once()
assert actual_path_name == TestFileUtils._expected_path_name
def test_get_parent_directory_path_return_expected_path_name(self) -> None:
self._mock_path.return_value.parent = TestFileUtils._expected_path_name
def test_get_parent_directory_path_return_empty_when_invalid_input(self) -> None:
mocked_path: MagicMock = self._mock_path.return_value
mocked_path.exists.return_value = False
actual_path_name: str = file_utils.get_parent_directory_path("dummy")
self._mock_path.assert_called_once()
assert actual_path_name == TestFileUtils._expected_path_name
assert actual_path_name == ""
def test_get_parent_directory_path_return_empty_when_parent_invalid(self) -> None:
mocked_path: MagicMock = self._mock_path.return_value
mocked_path.exists.return_value = True
mocked_parent_path: MagicMock = MagicMock()
mocked_path.parent = mocked_parent_path
mocked_parent_path.exists.return_value = False
actual_path_name: str = file_utils.get_parent_directory_path("dummy")
self._mock_path.assert_called()
assert actual_path_name == ""
def test_get_parent_directory_path_return_expected_path_when_parent_valid(self) -> None:
mocked_path: MagicMock = self._mock_path.return_value
mocked_path.exists.return_value = True
mocked_parent_path: MagicMock = MagicMock()
mocked_path.parent = mocked_parent_path
mocked_parent_path.exists.return_value = True
mocked_parent_path.resolve.return_value = TestFileUtils._expected_file_name
actual_path_name: str = file_utils.get_parent_directory_path("dummy")
self._mock_path.assert_called()
assert actual_path_name == TestFileUtils._expected_file_name
def test_get_parent_directory_path_return_empty_when_level_two_parent_invalid(self) -> None:
mocked_path: MagicMock = self._mock_path.return_value
mocked_path.exists.return_value = True
mocked_parent_path1: MagicMock = MagicMock()
mocked_path.parent = mocked_parent_path1
mocked_parent_path1.exists.return_value = True
mocked_parent_path2: MagicMock = MagicMock()
mocked_parent_path1.parent = mocked_parent_path2
mocked_parent_path2.exists.return_value = False
actual_path_name: str = file_utils.get_parent_directory_path("dummy", 2)
self._mock_path.assert_called()
assert actual_path_name == ""
def test_get_parent_directory_path_return_expected_path_when_level_two_parent_valid(self) -> None:
mocked_path: MagicMock = self._mock_path.return_value
mocked_path.exists.return_value = True
mocked_parent_path1: MagicMock = MagicMock()
mocked_path.parent = mocked_parent_path1
mocked_parent_path1.exists.return_value = True
mocked_parent_path2: MagicMock = MagicMock()
mocked_parent_path1.parent = mocked_parent_path2
mocked_parent_path2.exists.return_value = True
mocked_parent_path2.resolve.return_value = TestFileUtils._expected_file_name
actual_path_name: str = file_utils.get_parent_directory_path("dummy", 2)
self._mock_path.assert_called()
assert actual_path_name == TestFileUtils._expected_file_name
def test_find_files_with_suffix_under_directory_return_expected_file_name(self) -> None:
mocked_path: MagicMock = self._mock_path.return_value
@@ -10,6 +10,7 @@ from typing import (Dict, List)
from unittest import TestCase
from unittest.mock import (MagicMock, mock_open, patch)
from utils import file_utils
from utils import json_utils
from model import constants
from model.resource_mapping_attributes import (ResourceMappingAttributes, ResourceMappingAttributesBuilder,
@@ -49,6 +50,10 @@ class TestJsonUtils(TestCase):
}
def setUp(self) -> None:
schema_path: str = file_utils.join_path(file_utils.get_parent_directory_path(__file__, 4),
'resource_mapping_schema.json')
json_utils.load_resource_mapping_json_schema(schema_path)
self._mock_open = mock_open()
open_patcher: patch = patch("utils.json_utils.open", self._mock_open)
self.addCleanup(open_patcher.stop)
@@ -33,8 +33,29 @@ def get_current_directory_path() -> str:
return str(pathlib.Path.cwd())
def get_parent_directory_path(file_path: str) -> str:
return pathlib.Path(file_path).parent
def get_parent_directory_path(file_path: str, level: int = 1) -> str:
"""
Get parent directory path based on requested file path
:param file_path: The requested file path
:param level: The level of parent directory, default value is 1
:return The string value of parent directory path if exist; otherwise empty string
"""
if not pathlib.Path(file_path).exists():
return ""
result: pathlib.Path = pathlib.Path(file_path).parent
current_level: int = 1
while current_level < level:
current_level += 1
if result.exists():
result = result.parent
else:
return ""
if not result.exists():
return ""
else:
return result.resolve()
def find_files_with_suffix_under_directory(dir_path: str, suffix: str) -> List[str]:
@@ -19,18 +19,29 @@ Json Utils provide related functions to read/write/serialize/deserialize json fo
"""
logger = logging.getLogger(__name__)
# resource mapping json content constants
_RESOURCE_MAPPING_JSON_KEY_NAME: str = "AWSResourceMappings"
_RESOURCE_MAPPING_TYPE_JSON_KEY_NAME: str = "Type"
_RESOURCE_MAPPING_NAMEID_JSON_KEY_NAME: str = "Name/ID"
_RESOURCE_MAPPING_REGION_JSON_KEY_NAME: str = "Region"
_RESOURCE_MAPPING_VERSION_JSON_KEY_NAME: str = "Version"
_RESOURCE_MAPPING_JSON_FORMAT_VERSION: str = "1.1.0"
RESOURCE_MAPPING_ACCOUNTID_JSON_KEY_NAME: str = "AccountId"
RESOURCE_MAPPING_ACCOUNTID_TEMPLATE_VALUE: str = "EMPTY"
_RESOURCE_MAPPING_ACCOUNTID_PATTERN: str = f"^[0-9]{{12}}$|{RESOURCE_MAPPING_ACCOUNTID_TEMPLATE_VALUE}|^$"
_RESOURCE_MAPPING_REGION_PATTERN: str = "^[a-z]{2}-[a-z]{4,9}-[0-9]{1}$"
_RESOURCE_MAPPING_VERSION_PATTERN: str = "^[0-9]{1}.[0-9]{1}.[0-9]{1}$"
# resource mapping json schema constants
_RESOURCE_MAPPING_SCHEMA_ACCOUNTID_KEY_NAME: str = "AccountIdString"
_RESOURCE_MAPPING_SCHEMA_REGION_KEY_NAME: str = "RegionString"
_RESOURCE_MAPPING_SCHEMA_REQUIRED_PROPERTIES_KEY_NAME: str = "required"
_RESOURCE_MAPPING_SCHEMA_PROPERTIES_KEY_NAME: str = "properties"
_RESOURCE_MAPPING_SCHEMA_PATTERN_PROPERTIES_KEY_NAME: str = "patternProperties"
_RESOURCE_MAPPING_SCHEMA_PROPERTY_PATTERN_KEY_NAME: str = "pattern"
_RESOURCE_MAPPING_SCHEMA: Dict[str, any] = {}
_RESOURCE_MAPPING_SCHEMA_REQUIRED_ROOT_PROPERTIES: List[str] = []
_RESOURCE_MAPPING_SCHEMA_REQUIRED_RESOURCE_PROPERTIES: List[str] = []
_RESOURCE_MAPPING_SCHEMA_ACCOUNTID_PATTERN: str = ""
_RESOURCE_MAPPING_SCHEMA_REGION_PATTERN: str = ""
_RESOURCE_MAPPING_SCHEMA_VERSION_PATTERN: str = ""
def _add_validation_error_message(errors: Dict[int, List[str]], row: int, error_message: str) -> None:
if row in errors.keys():
@@ -119,6 +130,26 @@ def convert_json_dict_to_resources(json_dict: Dict[str, any]) -> List[ResourceMa
return resources
def load_resource_mapping_json_schema(schema_path: str) -> None:
global _RESOURCE_MAPPING_SCHEMA, _RESOURCE_MAPPING_SCHEMA_REQUIRED_ROOT_PROPERTIES, _RESOURCE_MAPPING_SCHEMA_REQUIRED_RESOURCE_PROPERTIES,\
_RESOURCE_MAPPING_SCHEMA_ACCOUNTID_PATTERN, _RESOURCE_MAPPING_SCHEMA_REGION_PATTERN, _RESOURCE_MAPPING_SCHEMA_VERSION_PATTERN
if not _RESOURCE_MAPPING_SCHEMA:
# assume schema should be in correct format, and manually load expected pattern; tool will log error if schema is invalid
_RESOURCE_MAPPING_SCHEMA = read_from_json_file(schema_path)
_RESOURCE_MAPPING_SCHEMA_REQUIRED_ROOT_PROPERTIES = _RESOURCE_MAPPING_SCHEMA[_RESOURCE_MAPPING_SCHEMA_REQUIRED_PROPERTIES_KEY_NAME]
schema_properties: Dict[str, any] = _RESOURCE_MAPPING_SCHEMA[_RESOURCE_MAPPING_SCHEMA_PROPERTIES_KEY_NAME]
schema_pattern_properties: Dict[str, any] = \
schema_properties[_RESOURCE_MAPPING_JSON_KEY_NAME][_RESOURCE_MAPPING_SCHEMA_PATTERN_PROPERTIES_KEY_NAME]
_RESOURCE_MAPPING_SCHEMA_REQUIRED_RESOURCE_PROPERTIES = list(schema_pattern_properties.values())[0][_RESOURCE_MAPPING_SCHEMA_REQUIRED_PROPERTIES_KEY_NAME]
_RESOURCE_MAPPING_SCHEMA_ACCOUNTID_PATTERN = \
_RESOURCE_MAPPING_SCHEMA[_RESOURCE_MAPPING_SCHEMA_ACCOUNTID_KEY_NAME][_RESOURCE_MAPPING_SCHEMA_PROPERTY_PATTERN_KEY_NAME]
_RESOURCE_MAPPING_SCHEMA_REGION_PATTERN = \
_RESOURCE_MAPPING_SCHEMA[_RESOURCE_MAPPING_SCHEMA_REGION_KEY_NAME][_RESOURCE_MAPPING_SCHEMA_PROPERTY_PATTERN_KEY_NAME]
_RESOURCE_MAPPING_SCHEMA_VERSION_PATTERN = \
schema_properties[_RESOURCE_MAPPING_VERSION_JSON_KEY_NAME][_RESOURCE_MAPPING_SCHEMA_PROPERTY_PATTERN_KEY_NAME]
def read_from_json_file(file_name: str) -> Dict[str, any]:
try:
json_dict: Dict[str, any] = {}
@@ -166,20 +197,20 @@ def validate_resources_according_to_json_schema(resources: List[ResourceMappingA
invalid_resources, row_count,
error_messages.INVALID_FORMAT_DUPLICATED_KEY_ERROR_MESSAGE.format(resource.key_name))
if not re.match(_RESOURCE_MAPPING_ACCOUNTID_PATTERN, resource.account_id):
if not re.match(_RESOURCE_MAPPING_SCHEMA_ACCOUNTID_PATTERN, resource.account_id):
_add_validation_error_message(
invalid_resources, row_count,
error_messages.INVALID_FORMAT_UNEXPECTED_VALUE_IN_TABLE_ERROR_MESSAGE.format(
resource.account_id,
RESOURCE_MAPPING_ACCOUNTID_JSON_KEY_NAME,
_RESOURCE_MAPPING_ACCOUNTID_PATTERN))
_RESOURCE_MAPPING_SCHEMA_ACCOUNTID_PATTERN))
if not re.match(_RESOURCE_MAPPING_REGION_PATTERN, resource.region):
if not re.match(_RESOURCE_MAPPING_SCHEMA_REGION_PATTERN, resource.region):
_add_validation_error_message(
invalid_resources, row_count,
error_messages.INVALID_FORMAT_UNEXPECTED_VALUE_IN_TABLE_ERROR_MESSAGE.format(
resource.region, _RESOURCE_MAPPING_REGION_JSON_KEY_NAME,
_RESOURCE_MAPPING_REGION_PATTERN))
_RESOURCE_MAPPING_SCHEMA_REGION_PATTERN))
row_count += 1
@@ -187,30 +218,32 @@ def validate_resources_according_to_json_schema(resources: List[ResourceMappingA
def validate_json_dict_according_to_json_schema(json_dict: Dict[str, any]) -> None:
_validate_required_key_in_json_dict(json_dict, "root", _RESOURCE_MAPPING_VERSION_JSON_KEY_NAME)
_validate_required_key_in_json_dict(json_dict, "root", _RESOURCE_MAPPING_JSON_KEY_NAME)
# The reason we keep this manual json schema validation is python missing supportive feature in default libs
# When it is ready, we should be able to replace this with straightforward lib function call
root_property: str
for root_property in _RESOURCE_MAPPING_SCHEMA_REQUIRED_ROOT_PROPERTIES:
_validate_required_key_in_json_dict(json_dict, "root", root_property)
_validate_required_key_in_json_dict(json_dict, "root", RESOURCE_MAPPING_ACCOUNTID_JSON_KEY_NAME)
if not re.match(_RESOURCE_MAPPING_ACCOUNTID_PATTERN, json_dict[RESOURCE_MAPPING_ACCOUNTID_JSON_KEY_NAME]):
if not re.match(_RESOURCE_MAPPING_SCHEMA_ACCOUNTID_PATTERN, json_dict[RESOURCE_MAPPING_ACCOUNTID_JSON_KEY_NAME]):
raise ValueError(error_messages.INVALID_FORMAT_UNEXPECTED_VALUE_IN_FILE_ERROR_MESSAGE.format(
json_dict[RESOURCE_MAPPING_ACCOUNTID_JSON_KEY_NAME],
f"root/{RESOURCE_MAPPING_ACCOUNTID_JSON_KEY_NAME}",
_RESOURCE_MAPPING_ACCOUNTID_PATTERN))
_RESOURCE_MAPPING_SCHEMA_ACCOUNTID_PATTERN))
_validate_required_key_in_json_dict(json_dict, "root", _RESOURCE_MAPPING_REGION_JSON_KEY_NAME)
if not re.match(_RESOURCE_MAPPING_REGION_PATTERN, json_dict[_RESOURCE_MAPPING_REGION_JSON_KEY_NAME]):
if not re.match(_RESOURCE_MAPPING_SCHEMA_REGION_PATTERN, json_dict[_RESOURCE_MAPPING_REGION_JSON_KEY_NAME]):
raise ValueError(error_messages.INVALID_FORMAT_UNEXPECTED_VALUE_IN_FILE_ERROR_MESSAGE.format(
json_dict[_RESOURCE_MAPPING_REGION_JSON_KEY_NAME],
f"root/{_RESOURCE_MAPPING_REGION_JSON_KEY_NAME}",
_RESOURCE_MAPPING_REGION_PATTERN))
_RESOURCE_MAPPING_SCHEMA_REGION_PATTERN))
json_resources: Dict[str, any] = json_dict[_RESOURCE_MAPPING_JSON_KEY_NAME]
if json_resources:
resource_key: str
resource_value: Dict[str, str]
for resource_key, resource_value in json_resources.items():
_validate_required_key_in_json_dict(resource_value, resource_key, _RESOURCE_MAPPING_TYPE_JSON_KEY_NAME)
_validate_required_key_in_json_dict(resource_value, resource_key, _RESOURCE_MAPPING_NAMEID_JSON_KEY_NAME)
resource_property: str
for resource_property in _RESOURCE_MAPPING_SCHEMA_REQUIRED_RESOURCE_PROPERTIES:
_validate_required_key_in_json_dict(resource_value, resource_key, resource_property)
def write_into_json_file(file_name: str, json_dict: Dict[str, any]) -> None:
@@ -324,8 +324,6 @@ namespace GradientSignal
void GradientTransformComponent::TransformPositionToUVW(const AZ::Vector3& inPosition, AZ::Vector3& outUVW, const bool shouldNormalizeOutput, bool& wasPointRejected) const
{
AZ_PROFILE_FUNCTION(Entity);
AZStd::lock_guard<decltype(m_cacheMutex)> lock(m_cacheMutex);
//transforming coordinate into "local" relative space of shape bounds
@@ -191,8 +191,6 @@ namespace GradientSignal
float ImageGradientComponent::GetValue(const GradientSampleParams& sampleParams) const
{
AZ_PROFILE_FUNCTION(Entity);
AZ::Vector3 uvw = sampleParams.m_position;
bool wasPointRejected = false;
@@ -153,8 +153,6 @@ namespace GradientSignal
float GetValueFromImageAsset(const AZ::Data::Asset<ImageAsset>& imageAsset, const AZ::Vector3& uvw, float tilingX, float tilingY, float defaultValue)
{
AZ_PROFILE_FUNCTION(Entity);
if (imageAsset.IsReady())
{
const auto& image = imageAsset.Get();
@@ -19,7 +19,6 @@
#include <GraphCanvas/Components/StyleBus.h>
#include <GraphCanvas/Components/VisualBus.h>
#include <GraphCanvas/Types/EntitySaveData.h>
#include <GraphCanvas/Types/TranslationTypes.h>
#include <Widgets/GraphCanvasLabel.h>
namespace GraphCanvas
@@ -58,7 +58,6 @@
#include <GraphCanvas/Types/ConstructPresets.h>
#include <GraphCanvas/Types/EntitySaveData.h>
#include <GraphCanvas/Types/TranslationTypes.h>
#include <GraphCanvas/Widgets/GraphCanvasEditor/GraphCanvasAssetEditorMainWindow.h>
#include <GraphCanvas/Widgets/GraphCanvasMimeEvent.h>
@@ -59,14 +59,14 @@ namespace GraphCanvas
//!
//! Requirements:
//! - Must have a top level array called "entries"
//! - Must provide a "key" element for any entry added
//! - Must provide a "base" element for any entry added
//!
//! Example:
//!
//! {
//! "entries": [
//! {
//! "key": "Globals",
//! "base": "Globals",
//! "details": {
//! "name": "My Name",
//! "tooltip": "My Tooltip"
@@ -90,21 +90,21 @@ namespace GraphCanvas
//! Globals.details.somearray.0.name
//! Globals.details.somearray.1.name
//!
//! There is one important aspect however, if an element in an array has a "key" value, the value of this key
//! There is one important aspect however, if an element in an array has a "base" value, the value of this key
//! will replace the index. This is useful when the index and/or ordering of an entry is not relevant or may
//! change.
//!
//! "somearray": [ {
//! "name": "First one"
//! "key": "a_key"
//! "base": "a_key"
//! }, {
//! "name": "Second one",
//! "key": "b_key"
//! "base": "b_key"
//! } ]
//!
//! Globals.details.somearray.0.key == "a_key"
//! Globals.details.somearray.0.base == "a_key"
//! Globals.details.somearray.0.name == "First one"
//! Globals.details.somearray.1.key == "b_key"
//! Globals.details.somearray.1.base == "b_key"
//! Globals.details.somearray.1.name == "Second one"
//!
class TranslationAssetHandler
@@ -11,17 +11,6 @@
namespace GraphCanvas
{
namespace Schema
{
namespace Field
{
static constexpr char key[] = "key";
static constexpr char context[] = "context";
static constexpr char variant[] = "variant";
static constexpr char entries[] = "entries";
}
}
AZ_CLASS_ALLOCATOR_IMPL(TranslationFormatSerializer, AZ::SystemAllocator, 0);
void AddEntryToDatabase(const AZStd::string& baseKey, const AZStd::string& name, const rapidjson::Value& it, TranslationFormat* translationFormat)
@@ -76,11 +65,15 @@ namespace GraphCanvas
const rapidjson::Value& array = it;
for (rapidjson::SizeType i = 0; i < array.Size(); ++i)
{
// so, here, I need to go in and if there is a "key" member within the object, then I need to use that,
// if there isn't, I can use the %d
// if there is a "base" member within the object, then use it, otherwise use the index
if (array[i].IsObject())
{
if (array[i].HasMember(Schema::Field::key))
if (array[i].HasMember(Schema::Field::deprecated_key))
{
AZStd::string innerKey = array[i].FindMember(Schema::Field::deprecated_key)->value.GetString();
itemKey.append(AZStd::string::format(".%s", innerKey.c_str()));
}
else if (array[i].HasMember(Schema::Field::key))
{
AZStd::string innerKey = array[i].FindMember(Schema::Field::key)->value.GetString();
itemKey.append(AZStd::string::format(".%s", innerKey.c_str()));
@@ -133,7 +126,12 @@ namespace GraphCanvas
AZStd::string keyStr;
rapidjson::Value::ConstMemberIterator keyValue;
if (entry.HasMember(Schema::Field::key))
if (entry.HasMember(Schema::Field::deprecated_key))
{
keyValue = entry.FindMember(Schema::Field::deprecated_key);
keyStr = keyValue->value.GetString();
}
else if (entry.HasMember(Schema::Field::key))
{
keyValue = entry.FindMember(Schema::Field::key);
keyStr = keyValue->value.GetString();
@@ -23,4 +23,17 @@ namespace GraphCanvas
AZ::JsonSerializationResult::Result Store(rapidjson::Value& outputValue, const void* inputValue,
const void* defaultValue, const AZ::Uuid& valueTypeId, AZ::JsonSerializerContext& context) override;
};
namespace Schema
{
namespace Field
{
// Moved away from "key" due to some strict filtering on secrets
static constexpr char deprecated_key[] = "key";
static constexpr char key[] = "base";
static constexpr char context[] = "context";
static constexpr char variant[] = "variant";
static constexpr char entries[] = "entries";
}
}
}
@@ -16,7 +16,6 @@ AZ_PUSH_DISABLE_WARNING(4251 4800, "-Wunknown-warning-option")
AZ_POP_DISABLE_WARNING
#include <GraphCanvas/Styling/StyleHelper.h>
#include <GraphCanvas/Types/TranslationTypes.h>
namespace GraphCanvas
{
@@ -15,7 +15,6 @@
#include <GraphCanvas/Editor/EditorTypes.h>
#include <GraphCanvas/Types/EntitySaveData.h>
#include <GraphCanvas/Types/GraphCanvasGraphSerialization.h>
#include <GraphCanvas/Types/TranslationTypes.h>
#include <GraphCanvas/Components/Slots/SlotBus.h>
@@ -11,7 +11,6 @@
#include <AzCore/EBus/EBus.h>
#include <AzCore/std/string/string.h>
#include <GraphCanvas/Types/TranslationTypes.h>
#include <GraphCanvas/Components/StyleBus.h>
#include <GraphCanvas/Types/SceneMemberComponentSaveData.h>
@@ -16,7 +16,6 @@
#include <GraphCanvas/Types/Endpoint.h>
#include <GraphCanvas/Types/Types.h>
#include <GraphCanvas/Types/TranslationTypes.h>
class QGraphicsLayoutItem;
@@ -1,116 +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 <QCoreApplication>
#include <AzCore/Serialization/SerializeContext.h>
namespace GraphCanvas
{
struct TranslationKeyedString
{
public:
AZ_TYPE_INFO(TranslationKeyedString, "{B796685C-0335-4E74-9EF8-A1933E8B2142}");
AZ_CLASS_ALLOCATOR(TranslationKeyedString, AZ::SystemAllocator, 0);
static void Reflect(AZ::ReflectContext* context)
{
AZ::SerializeContext* serializeContext = azrtti_cast<AZ::SerializeContext*>(context);
if (!serializeContext)
{
return;
}
serializeContext->Class<TranslationKeyedString>()
->Version(1)
->Field("Fallback", &TranslationKeyedString::m_fallback)
->Field("Context", &TranslationKeyedString::m_context)
->Field("Key", &TranslationKeyedString::m_key)
;
}
TranslationKeyedString()
: m_dirtyText(true)
{
}
~TranslationKeyedString() = default;
TranslationKeyedString(const AZStd::string& fallback, const AZStd::string& context = AZStd::string(), const AZStd::string& key = AZStd::string())
: m_fallback(fallback)
, m_context(context)
, m_key(key)
, m_dirtyText(true)
{
}
const AZStd::string GetDisplayString() const
{
if (m_dirtyText)
{
const_cast<TranslationKeyedString*>(this)->TranslateString();
}
return m_display;
}
void TranslateString()
{
m_display = m_fallback;
if (!m_context.empty() && !m_key.empty())
{
AZStd::string translatedText = QCoreApplication::translate(m_context.c_str(), m_key.c_str()).toUtf8().data();
if (translatedText != m_key)
{
m_display = translatedText;
}
}
m_dirtyText = false;
}
bool empty() const
{
return m_fallback.empty() && (m_context.empty() || m_key.empty());
}
bool operator==(const TranslationKeyedString& other) const
{
return m_fallback == other.m_fallback
&& m_context == other.m_context
&& m_key == other.m_key
;
}
void Clear()
{
m_key.clear();
m_context.clear();
m_fallback.clear();
}
void SetFallback(const AZStd::string& fallback)
{
m_fallback = fallback;
m_dirtyText = true;
}
AZStd::string m_context;
AZStd::string m_key;
AZStd::string m_display;
private:
AZStd::string m_fallback;
bool m_dirtyText;
};
}
@@ -102,8 +102,7 @@ set(FILES
StaticLib/GraphCanvas/Types/GraphCanvasGraphData.h
StaticLib/GraphCanvas/Types/GraphCanvasGraphSerialization.cpp
StaticLib/GraphCanvas/Types/GraphCanvasGraphSerialization.h
StaticLib/GraphCanvas/Types/SceneMemberComponentSaveData.h
StaticLib/GraphCanvas/Types/TranslationTypes.h
StaticLib/GraphCanvas/Types/SceneMemberComponentSaveData.h
StaticLib/GraphCanvas/Types/Types.h
StaticLib/GraphCanvas/Types/QtMetaTypes.h
StaticLib/GraphCanvas/Widgets/Resources/default_style.json
-8
View File
@@ -182,14 +182,6 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED)
Gem::LmbrCentral
)
if(PAL_TRAIT_JOINTS_TYPED_TEST_CASE)
ly_add_source_properties(
SOURCES Tests/PhysXJointsTest.cpp
PROPERTY COMPILE_DEFINITIONS
VALUES ENABLE_JOINTS_TYPED_TEST_CASE
)
endif()
ly_add_googletest(
NAME Gem::PhysX.Tests
)
@@ -7,20 +7,20 @@
*/
#include "ColliderComponentMode.h"
#include "ColliderAssetScaleMode.h"
#include "ColliderBoxMode.h"
#include "ColliderCapsuleMode.h"
#include "ColliderOffsetMode.h"
#include "ColliderRotationMode.h"
#include "ColliderBoxMode.h"
#include "ColliderSphereMode.h"
#include "ColliderCapsuleMode.h"
#include "ColliderAssetScaleMode.h"
#include <Editor/Source/ComponentModes/PhysXSubComponentModeBase.h>
#include <PhysX/EditorColliderComponentRequestBus.h>
#include <AzFramework/Physics/ShapeConfiguration.h>
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
#include <AzToolsFramework/ComponentModes/BoxComponentMode.h>
#include <AzToolsFramework/ComponentModes/BoxViewportEdit.h>
#include <AzToolsFramework/API/ToolsApplicationAPI.h>
namespace PhysX
{
@@ -31,7 +31,7 @@ namespace PhysX
const AZ::Crc32 SetOffsetSubModeActionUri = AZ_CRC("com.o3de.action.physx.setoffsetsubmode", 0xc06132e5);
const AZ::Crc32 SetRotationSubModeActionUri = AZ_CRC("com.o3de.action.physx.setrotationsubmode", 0xc4225918);
const AZ::Crc32 ResetSubModeActionUri = AZ_CRC("com.o3de.action.physx.resetsubmode", 0xb70b120e);
}
} // namespace
AZ_CLASS_ALLOCATOR_IMPL(ColliderComponentMode, AZ::SystemAllocator, 0);
@@ -39,19 +39,17 @@ namespace PhysX
: AzToolsFramework::ComponentModeFramework::EditorBaseComponentMode(entityComponentIdPair, componentType)
{
CreateSubModes();
CreateSubModeSelectionCluster();
ColliderComponentModeRequestBus::Handler::BusConnect(entityComponentIdPair);
ColliderComponentModeUiRequestBus::Handler::BusConnect(entityComponentIdPair);
CreateSubModeSelectionCluster();
}
ColliderComponentMode::~ColliderComponentMode()
{
RemoveSubModeSelectionCluster();
ColliderComponentModeUiRequestBus::Handler::BusDisconnect();
ColliderComponentModeRequestBus::Handler::BusDisconnect();
RemoveSubModeSelectionCluster();
m_subModes[m_subMode]->Teardown(GetEntityComponentIdPair());
}
@@ -62,39 +60,41 @@ namespace PhysX
AZStd::vector<AzToolsFramework::ActionOverride> ColliderComponentMode::PopulateActionsImpl()
{
AzToolsFramework::ActionOverride setDimensionsModeAction;
setDimensionsModeAction.SetUri(SetDimensionsSubModeActionUri);
setDimensionsModeAction.SetKeySequence(QKeySequence(Qt::Key_1));
setDimensionsModeAction.SetTitle("Set Resize Mode");
setDimensionsModeAction.SetTip("Set resize mode");
setDimensionsModeAction.SetEntityComponentIdPair(GetEntityComponentIdPair());
setDimensionsModeAction.SetCallback([this]()
{
SetCurrentMode(SubMode::Dimensions);
});
AzToolsFramework::ActionOverride setOffsetModeAction;
setOffsetModeAction.SetUri(SetOffsetSubModeActionUri);
setOffsetModeAction.SetKeySequence(QKeySequence(Qt::Key_2));
setOffsetModeAction.SetKeySequence(QKeySequence(Qt::Key_1));
setOffsetModeAction.SetTitle("Set Offset Mode");
setOffsetModeAction.SetTip("Set offset mode");
setOffsetModeAction.SetEntityComponentIdPair(GetEntityComponentIdPair());
setOffsetModeAction.SetCallback([this]()
{
SetCurrentMode(SubMode::Offset);
});
setOffsetModeAction.SetCallback(
[this]()
{
SetCurrentMode(SubMode::Offset);
});
AzToolsFramework::ActionOverride setRotationModeAction;
setRotationModeAction.SetUri(SetRotationSubModeActionUri);
setRotationModeAction.SetKeySequence(QKeySequence(Qt::Key_3));
setRotationModeAction.SetKeySequence(QKeySequence(Qt::Key_2));
setRotationModeAction.SetTitle("Set Rotation Mode");
setRotationModeAction.SetTip("Set rotation mode");
setRotationModeAction.SetEntityComponentIdPair(GetEntityComponentIdPair());
setRotationModeAction.SetCallback([this]()
{
SetCurrentMode(SubMode::Rotation);
});
setRotationModeAction.SetCallback(
[this]()
{
SetCurrentMode(SubMode::Rotation);
});
AzToolsFramework::ActionOverride setDimensionsModeAction;
setDimensionsModeAction.SetUri(SetDimensionsSubModeActionUri);
setDimensionsModeAction.SetKeySequence(QKeySequence(Qt::Key_3));
setDimensionsModeAction.SetTitle("Set Resize Mode");
setDimensionsModeAction.SetTip("Set resize mode");
setDimensionsModeAction.SetEntityComponentIdPair(GetEntityComponentIdPair());
setDimensionsModeAction.SetCallback(
[this]()
{
SetCurrentMode(SubMode::Dimensions);
});
AzToolsFramework::ActionOverride resetModeAction;
resetModeAction.SetUri(ResetSubModeActionUri);
@@ -102,12 +102,13 @@ namespace PhysX
resetModeAction.SetTitle("Reset Current Mode");
resetModeAction.SetTip("Reset current mode");
resetModeAction.SetEntityComponentIdPair(GetEntityComponentIdPair());
resetModeAction.SetCallback([this]()
{
ResetCurrentMode();
});
resetModeAction.SetCallback(
[this]()
{
ResetCurrentMode();
});
return {setDimensionsModeAction, setOffsetModeAction, setRotationModeAction, resetModeAction };
return { setDimensionsModeAction, setOffsetModeAction, setRotationModeAction, resetModeAction };
}
void ColliderComponentMode::CreateSubModes()
@@ -141,7 +142,7 @@ namespace PhysX
if (mouseInteraction.m_mouseEvent == AzToolsFramework::ViewportInteraction::MouseEvent::Wheel &&
mouseInteraction.m_mouseInteraction.m_keyboardModifiers.Ctrl())
{
int direction = MouseWheelDelta(mouseInteraction) > 0.0f ? 1 : -1;
const int direction = MouseWheelDelta(mouseInteraction) > 0.0f ? -1 : 1;
AZ::u32 currentModeIndex = static_cast<AZ::u32>(m_subMode);
AZ::u32 numSubModes = static_cast<AZ::u32>(SubMode::NumModes);
AZ::u32 nextModeIndex = (currentModeIndex + numSubModes + direction) % m_subModes.size();
@@ -159,10 +160,17 @@ namespace PhysX
void ColliderComponentMode::SetCurrentMode(SubMode newMode)
{
AZ_Assert(m_subModes.count(newMode) > 0, "Submode not found:%d", newMode);
AZ_Assert(m_subModes.find(newMode) != m_subModes.end(), "Submode not found:%d", newMode);
m_subModes[m_subMode]->Teardown(GetEntityComponentIdPair());
m_subMode = newMode;
m_subModes[m_subMode]->Setup(GetEntityComponentIdPair());
const auto modeIndex = static_cast<size_t>(newMode);
AZ_Assert(modeIndex < m_buttonIds.size(), "Invalid mode index %i.", modeIndex);
AzToolsFramework::ViewportUi::ViewportUiRequestBus::Event(
AzToolsFramework::ViewportUi::DefaultViewportId,
&AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::SetClusterActiveButton, m_modeSelectionClusterId,
m_buttonIds[modeIndex]);
}
AzToolsFramework::ViewportUi::ClusterId ColliderComponentMode::GetClusterId() const
@@ -172,36 +180,40 @@ namespace PhysX
AzToolsFramework::ViewportUi::ButtonId ColliderComponentMode::GetOffsetButtonId() const
{
return m_offsetModeButtonId;
return m_buttonIds[static_cast<size_t>(SubMode::Offset)];
}
AzToolsFramework::ViewportUi::ButtonId ColliderComponentMode::GetRotationButtonId() const
{
return m_rotationModeButtonId;
return m_buttonIds[static_cast<size_t>(SubMode::Rotation)];
}
AzToolsFramework::ViewportUi::ButtonId ColliderComponentMode::GetDimensionsButtonId() const
{
return m_dimensionsModeButtonId;
return m_buttonIds[static_cast<size_t>(SubMode::Dimensions)];
}
AZStd::string ColliderComponentMode::GetComponentModeName() const
{
return "Collider Edit Mode";
}
void RefreshUI()
{
/// The reason this is in a free function is because ColliderComponentMode
/// privately inherits from ToolsApplicationNotificationBus. Trying to invoke
/// the bus inside the class scope causes the compiler to complain it's not accessible
/// to due private inheritence.
/// Using the global namespace operator :: should have fixed that, except there
/// the bus inside the class scope causes the compiler to complain it's not accessible
/// to due private inheritence.
/// Using the global namespace operator :: should have fixed that, except there
/// is a bug in the microsoft compiler meaning it doesn't work. So this is a work around.
AzToolsFramework::ToolsApplicationNotificationBus::Broadcast(
&AzToolsFramework::ToolsApplicationNotificationBus::Events::InvalidatePropertyDisplay,
AzToolsFramework::Refresh_Values);
&AzToolsFramework::ToolsApplicationNotificationBus::Events::InvalidatePropertyDisplay, AzToolsFramework::Refresh_Values);
}
void ColliderComponentMode::ResetCurrentMode()
{
m_subModes[m_subMode]->ResetValues(GetEntityComponentIdPair());
m_subModes[m_subMode]->Refresh(GetEntityComponentIdPair());
m_subModes[m_subMode]->Refresh(GetEntityComponentIdPair());
RefreshUI();
}
@@ -225,8 +237,8 @@ namespace PhysX
void ColliderComponentMode::RemoveSubModeSelectionCluster()
{
AzToolsFramework::ViewportUi::ViewportUiRequestBus::Event(
AzToolsFramework::ViewportUi::DefaultViewportId,
&AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::RemoveCluster, m_modeSelectionClusterId);
AzToolsFramework::ViewportUi::DefaultViewportId, &AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::RemoveCluster,
m_modeSelectionClusterId);
}
void ColliderComponentMode::CreateSubModeSelectionCluster()
@@ -237,29 +249,37 @@ namespace PhysX
&AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::CreateCluster, AzToolsFramework::ViewportUi::Alignment::TopLeft);
// create and register the buttons
m_dimensionsModeButtonId = RegisterClusterButton(m_modeSelectionClusterId, "Scale");
m_offsetModeButtonId = RegisterClusterButton(m_modeSelectionClusterId, "Move");
m_rotationModeButtonId = RegisterClusterButton(m_modeSelectionClusterId, "Rotate");
m_buttonIds.resize(static_cast<size_t>(SubMode::NumModes));
m_buttonIds[static_cast<size_t>(SubMode::Offset)] = RegisterClusterButton(m_modeSelectionClusterId, "Move");
m_buttonIds[static_cast<size_t>(SubMode::Rotation)] = RegisterClusterButton(m_modeSelectionClusterId, "Rotate");
m_buttonIds[static_cast<size_t>(SubMode::Dimensions)] = RegisterClusterButton(m_modeSelectionClusterId, "Scale");
const auto onButtonClicked = [this](AzToolsFramework::ViewportUi::ButtonId buttonId) {
if (buttonId == m_dimensionsModeButtonId)
{
SetCurrentMode(SubMode::Dimensions);
}
else if (buttonId == m_offsetModeButtonId)
SetCurrentMode(SubMode::Offset);
const auto onButtonClicked = [this](AzToolsFramework::ViewportUi::ButtonId buttonId)
{
if (buttonId == m_buttonIds[static_cast<size_t>(SubMode::Offset)])
{
SetCurrentMode(SubMode::Offset);
}
else if (buttonId == m_rotationModeButtonId)
else if (buttonId == m_buttonIds[static_cast<size_t>(SubMode::Rotation)])
{
SetCurrentMode(SubMode::Rotation);
}
else if (buttonId == m_buttonIds[static_cast<size_t>(SubMode::Dimensions)])
{
SetCurrentMode(SubMode::Dimensions);
}
else
{
AZ_Error("PhysX Collider Component Mode", false, "Unrecognized button ID.");
}
};
m_modeSelectionHandler = AZ::Event<AzToolsFramework::ViewportUi::ButtonId>::Handler(onButtonClicked);
AzToolsFramework::ViewportUi::ViewportUiRequestBus::Event(
AzToolsFramework::ViewportUi::DefaultViewportId,
&AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::RegisterClusterEventHandler,
m_modeSelectionClusterId, m_modeSelectionHandler);
&AzToolsFramework::ViewportUi::ViewportUiRequestBus::Events::RegisterClusterEventHandler, m_modeSelectionClusterId,
m_modeSelectionHandler);
}
}
} // namespace PhysX
@@ -31,21 +31,23 @@ namespace PhysX
ColliderComponentMode(const AZ::EntityComponentIdPair& entityComponentIdPair, AZ::Uuid componentType);
~ColliderComponentMode();
// EditorBaseComponentMode ...
// EditorBaseComponentMode overrides ...
void Refresh() override;
AZStd::vector<AzToolsFramework::ActionOverride> PopulateActionsImpl() override;
AZStd::vector<AzToolsFramework::ViewportUi::ClusterId> PopulateViewportUiImpl() override;
// ColliderComponentModeBus ...
// ColliderComponentModeBus overrides ...
SubMode GetCurrentMode() override;
void SetCurrentMode(SubMode index) override;
// ColliderComponentModeUiBus ...
// ColliderComponentModeUiBus overrides ...
AzToolsFramework::ViewportUi::ButtonId GetOffsetButtonId() const override;
AzToolsFramework::ViewportUi::ButtonId GetRotationButtonId() const override;
AzToolsFramework::ViewportUi::ClusterId GetClusterId() const override;
AzToolsFramework::ViewportUi::ButtonId GetDimensionsButtonId() const override;
// ComponentMode overrides ...
AZStd::string GetComponentModeName() const override;
private:
// AzToolsFramework::ViewportInteraction::ViewportSelectionRequests ...
@@ -63,12 +65,9 @@ namespace PhysX
AzToolsFramework::ViewportUi::ClusterId
m_modeSelectionClusterId; //!< Viewport UI cluster for changing sub mode.
AzToolsFramework::ViewportUi::ButtonId
m_dimensionsModeButtonId; //!< Id of the Viewport UI button for resize/dimensions mode.
AzToolsFramework::ViewportUi::ButtonId
m_offsetModeButtonId; //!< Id of the Viewport UI button for offset mode.
AzToolsFramework::ViewportUi::ButtonId
m_rotationModeButtonId; //!< Id of the Viewport UI button for rotation mode.
AZStd::vector<AzToolsFramework::ViewportUi::ButtonId> m_buttonIds; //!< Ids for the Viewport UI buttons for each mode.
AZ::Event<AzToolsFramework::ViewportUi::ButtonId>::Handler
m_modeSelectionHandler; //!< Event handler for sub mode changes.
};
@@ -19,9 +19,9 @@ namespace PhysX
public:
enum class SubMode : AZ::u32
{
Dimensions,
Offset,
Rotation,
Dimensions,
NumModes
};
@@ -7,5 +7,3 @@
#
set(PAL_TRAIT_PHYSX_SUPPORTED TRUE)
set(PAL_TRAIT_JOINTS_TYPED_TEST_CASE FALSE)
@@ -7,7 +7,6 @@
#
set(PAL_TRAIT_PHYSX_SUPPORTED TRUE)
set(PAL_TRAIT_JOINTS_TYPED_TEST_CASE FALSE)
if(PAL_TRAIT_BUILD_HOST_TOOLS)
ly_associate_package(PACKAGE_NAME poly2tri-7f0487a-rev1-linux TARGETS poly2tri PACKAGE_HASH b16eef8f0bc469de0e3056d28d7484cf42659667e39b68b239f0d3a4cbb533d0)
@@ -7,7 +7,6 @@
#
set(PAL_TRAIT_PHYSX_SUPPORTED TRUE)
set(PAL_TRAIT_JOINTS_TYPED_TEST_CASE FALSE)
if(PAL_TRAIT_BUILD_HOST_TOOLS)
ly_associate_package(PACKAGE_NAME poly2tri-7f0487a-rev1-mac TARGETS poly2tri PACKAGE_HASH 23e49e6b06d79327985d17b40bff20ab202519c283a842378f5f1791c1bf8dbc)
@@ -7,7 +7,6 @@
#
set(PAL_TRAIT_PHYSX_SUPPORTED TRUE)
set(PAL_TRAIT_JOINTS_TYPED_TEST_CASE TRUE)
if(PAL_TRAIT_BUILD_HOST_TOOLS)
ly_associate_package(PACKAGE_NAME poly2tri-7f0487a-rev1-windows TARGETS poly2tri PACKAGE_HASH 5fea2bf294e5130e0654fbfa39f192e6369f3853901dde90bb9b3f3a11edcb1e)
@@ -7,4 +7,3 @@
#
set(PAL_TRAIT_PHYSX_SUPPORTED TRUE)
set(PAL_TRAIT_JOINTS_TYPED_TEST_CASE FALSE)
@@ -69,7 +69,7 @@ namespace UnitTest
PhysX::ColliderComponentModeRequests::SubMode subMode = PhysX::ColliderComponentModeRequests::SubMode::NumModes;
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
// When the mouse wheel is scrolled while holding ctrl
AzToolsFramework::ViewportInteraction::MouseInteractionEvent
@@ -87,7 +87,7 @@ namespace UnitTest
// Then the component mode is cycled.
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(handled, MouseInteractionResult::Viewport);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
}
TEST_F(PhysXColliderComponentModeTest, MouseWheelDownShouldSetPreviousMode)
@@ -98,7 +98,7 @@ namespace UnitTest
PhysX::ColliderComponentModeRequests::SubMode subMode = PhysX::ColliderComponentModeRequests::SubMode::NumModes;
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
// When the mouse wheel is scrolled while holding ctrl
AzToolsFramework::ViewportInteraction::MouseInteractionEvent
@@ -119,7 +119,7 @@ namespace UnitTest
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Rotation, subMode);
}
TEST_F(PhysXColliderComponentModeTest, PressingKey1ShouldSetSizeMode)
TEST_F(PhysXColliderComponentModeTest, PressingKey1ShouldSetOffsetMode)
{
// Given there is a collider component in component mode.
CreateColliderComponent();
@@ -127,17 +127,17 @@ namespace UnitTest
PhysX::ColliderComponentModeRequests::SubMode subMode = PhysX::ColliderComponentModeRequests::SubMode::NumModes;
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
// When the '1' key is pressed
QTest::keyPress(&m_editorActions.m_componentModeWidget, Qt::Key_1);
// Then the component mode is set to Size.
// Then the component mode is set to Offset.
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
}
TEST_F(PhysXColliderComponentModeTest, PressingKey2ShouldSetSizeMode)
TEST_F(PhysXColliderComponentModeTest, PressingKey2ShouldSetRotationMode)
{
// Given there is a collider component in component mode.
auto colliderEntity = CreateColliderComponent();
@@ -146,14 +146,14 @@ namespace UnitTest
PhysX::ColliderComponentModeRequests::SubMode subMode = PhysX::ColliderComponentModeRequests::SubMode::NumModes;
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
// When the '2' key is pressed
QTest::keyPress(&m_editorActions.m_componentModeWidget, Qt::Key_2);
// Then the component mode is set to Offset.
// Then the component mode is set to Rotation.
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Rotation, subMode);
}
TEST_F(PhysXColliderComponentModeTest, PressingKey3ShouldSetSizeMode)
@@ -165,14 +165,14 @@ namespace UnitTest
PhysX::ColliderComponentModeRequests::SubMode subMode = PhysX::ColliderComponentModeRequests::SubMode::NumModes;
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
// When the '3' key is pressed
QTest::keyPress(&m_editorActions.m_componentModeWidget, Qt::Key_3);
// Then the component mode is set to Rotation.
// Then the component mode is set to Size.
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Rotation, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
}
TEST_F(PhysXColliderComponentModeTest, PressingKeyRShouldResetSphereRadius)
@@ -295,7 +295,7 @@ namespace UnitTest
// Check preconditions
PhysX::ColliderComponentModeRequests::SubMode subMode = PhysX::ColliderComponentModeRequests::SubMode::NumModes;
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
// Get the cluster and button Ids
AzToolsFramework::ViewportUi::ClusterId modeSelectionClusterId;
@@ -330,7 +330,7 @@ namespace UnitTest
// Check preconditions
PhysX::ColliderComponentModeRequests::SubMode subMode = PhysX::ColliderComponentModeRequests::SubMode::NumModes;
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
// Get the cluster and button Ids
AzToolsFramework::ViewportUi::ClusterId modeSelectionClusterId;
@@ -365,7 +365,7 @@ namespace UnitTest
// Check preconditions
PhysX::ColliderComponentModeRequests::SubMode subMode = PhysX::ColliderComponentModeRequests::SubMode::NumModes;
PhysX::ColliderComponentModeRequestBus::BroadcastResult(subMode, &PhysX::ColliderComponentModeRequests::GetCurrentMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Dimensions, subMode);
EXPECT_EQ(PhysX::ColliderComponentModeRequests::SubMode::Offset, subMode);
// Get the cluster and button Ids
AzToolsFramework::ViewportUi::ClusterId modeSelectionClusterId;
@@ -267,8 +267,6 @@ namespace PhysX
EXPECT_GT(followerEndPosition.GetZ(), followerPosition.GetZ());
}
// for some reason TYPED_TEST_CASE with the fixture is not working on Android + Linux
#ifdef ENABLE_JOINTS_TYPED_TEST_CASE
template<class JointConfigurationType>
class PhysXJointsApiTest : public PhysX::GenericPhysicsInterfaceTest
{
@@ -347,5 +345,4 @@ namespace PhysX
EXPECT_GT(childCurrentPos.GetX(), this->m_childInitialPos.GetX());
}
#endif // ENABLE_JOINTS_TYPED_TEST_CASE
}
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "On Collision Begin event",
"base": "On Collision Begin event",
"context": "AZEventHandler",
"variant": "",
"details": {
@@ -9,49 +9,49 @@
},
"slots": [
{
"key": "Simulated Body Handle",
"base": "Simulated Body Handle",
"details": {
"name": "Simulated Body Handle"
}
},
{
"key": "Collision Event",
"base": "Collision Event",
"details": {
"name": "Collision Event"
}
},
{
"key": "On Collision Begin event",
"base": "On Collision Begin event",
"details": {
"name": "On Collision Begin event"
}
},
{
"key": "Connect",
"base": "Connect",
"details": {
"name": "Connect"
}
},
{
"key": "Disconnect",
"base": "Disconnect",
"details": {
"name": "Disconnect"
}
},
{
"key": "On Connected",
"base": "On Connected",
"details": {
"name": "On Connected"
}
},
{
"key": "On Disconnected",
"base": "On Disconnected",
"details": {
"name": "On Disconnected"
}
},
{
"key": "OnEvent",
"base": "OnEvent",
"details": {
"name": "OnEvent"
}
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "On Collision End event",
"base": "On Collision End event",
"context": "AZEventHandler",
"variant": "",
"details": {
@@ -9,49 +9,49 @@
},
"slots": [
{
"key": "Simulated Body Handle",
"base": "Simulated Body Handle",
"details": {
"name": "Simulated Body Handle"
}
},
{
"key": "Collision Event",
"base": "Collision Event",
"details": {
"name": "Collision Event"
}
},
{
"key": "On Collision End event",
"base": "On Collision End event",
"details": {
"name": "On Collision End event"
}
},
{
"key": "Connect",
"base": "Connect",
"details": {
"name": "Connect"
}
},
{
"key": "Disconnect",
"base": "Disconnect",
"details": {
"name": "Disconnect"
}
},
{
"key": "On Connected",
"base": "On Connected",
"details": {
"name": "On Connected"
}
},
{
"key": "On Disconnected",
"base": "On Disconnected",
"details": {
"name": "On Disconnected"
}
},
{
"key": "OnEvent",
"base": "OnEvent",
"details": {
"name": "OnEvent"
}
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "On Collision Persist event",
"base": "On Collision Persist event",
"context": "AZEventHandler",
"variant": "",
"details": {
@@ -9,49 +9,49 @@
},
"slots": [
{
"key": "Simulated Body Handle",
"base": "Simulated Body Handle",
"details": {
"name": "Simulated Body Handle"
}
},
{
"key": "Collision Event",
"base": "Collision Event",
"details": {
"name": "Collision Event"
}
},
{
"key": "On Collision Persist event",
"base": "On Collision Persist event",
"details": {
"name": "On Collision Persist event"
}
},
{
"key": "Connect",
"base": "Connect",
"details": {
"name": "Connect"
}
},
{
"key": "Disconnect",
"base": "Disconnect",
"details": {
"name": "Disconnect"
}
},
{
"key": "On Connected",
"base": "On Connected",
"details": {
"name": "On Connected"
}
},
{
"key": "On Disconnected",
"base": "On Disconnected",
"details": {
"name": "On Disconnected"
}
},
{
"key": "OnEvent",
"base": "OnEvent",
"details": {
"name": "OnEvent"
}
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "On Gravity Changed event",
"base": "On Gravity Changed event",
"context": "AZEventHandler",
"variant": "",
"details": {
@@ -9,49 +9,49 @@
},
"slots": [
{
"key": "Scene Handle",
"base": "Scene Handle",
"details": {
"name": "Scene Handle"
}
},
{
"key": "Gravity Vector",
"base": "Gravity Vector",
"details": {
"name": "Gravity Vector"
}
},
{
"key": "On Gravity Changed event",
"base": "On Gravity Changed event",
"details": {
"name": "On Gravity Changed event"
}
},
{
"key": "Connect",
"base": "Connect",
"details": {
"name": "Connect"
}
},
{
"key": "Disconnect",
"base": "Disconnect",
"details": {
"name": "Disconnect"
}
},
{
"key": "On Connected",
"base": "On Connected",
"details": {
"name": "On Connected"
}
},
{
"key": "On Disconnected",
"base": "On Disconnected",
"details": {
"name": "On Disconnected"
}
},
{
"key": "OnEvent",
"base": "OnEvent",
"details": {
"name": "OnEvent"
}
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "On Trigger Enter event",
"base": "On Trigger Enter event",
"context": "AZEventHandler",
"variant": "",
"details": {
@@ -9,49 +9,49 @@
},
"slots": [
{
"key": "Simulated Body Handle",
"base": "Simulated Body Handle",
"details": {
"name": "Simulated Body Handle"
}
},
{
"key": "Trigger Event",
"base": "Trigger Event",
"details": {
"name": "Trigger Event"
}
},
{
"key": "On Trigger Enter event",
"base": "On Trigger Enter event",
"details": {
"name": "On Trigger Enter event"
}
},
{
"key": "Connect",
"base": "Connect",
"details": {
"name": "Connect"
}
},
{
"key": "Disconnect",
"base": "Disconnect",
"details": {
"name": "Disconnect"
}
},
{
"key": "On Connected",
"base": "On Connected",
"details": {
"name": "On Connected"
}
},
{
"key": "On Disconnected",
"base": "On Disconnected",
"details": {
"name": "On Disconnected"
}
},
{
"key": "OnEvent",
"base": "OnEvent",
"details": {
"name": "OnEvent"
}
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "On Trigger Exit event",
"base": "On Trigger Exit event",
"context": "AZEventHandler",
"variant": "",
"details": {
@@ -9,49 +9,49 @@
},
"slots": [
{
"key": "Simulated Body Handle",
"base": "Simulated Body Handle",
"details": {
"name": "Simulated Body Handle"
}
},
{
"key": "Trigger Event",
"base": "Trigger Event",
"details": {
"name": "Trigger Event"
}
},
{
"key": "On Trigger Exit event",
"base": "On Trigger Exit event",
"details": {
"name": "On Trigger Exit event"
}
},
{
"key": "Connect",
"base": "Connect",
"details": {
"name": "Connect"
}
},
{
"key": "Disconnect",
"base": "Disconnect",
"details": {
"name": "Disconnect"
}
},
{
"key": "On Connected",
"base": "On Connected",
"details": {
"name": "On Connected"
}
},
{
"key": "On Disconnected",
"base": "On Disconnected",
"details": {
"name": "On Disconnected"
}
},
{
"key": "OnEvent",
"base": "OnEvent",
"details": {
"name": "OnEvent"
}
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "Postsimulate event",
"base": "Postsimulate event",
"context": "AZEventHandler",
"variant": "",
"details": {
@@ -9,43 +9,43 @@
},
"slots": [
{
"key": "Tick time",
"base": "Tick time",
"details": {
"name": "Tick time"
}
},
{
"key": "Postsimulate event",
"base": "Postsimulate event",
"details": {
"name": "Postsimulate event"
}
},
{
"key": "Connect",
"base": "Connect",
"details": {
"name": "Connect"
}
},
{
"key": "Disconnect",
"base": "Disconnect",
"details": {
"name": "Disconnect"
}
},
{
"key": "On Connected",
"base": "On Connected",
"details": {
"name": "On Connected"
}
},
{
"key": "On Disconnected",
"base": "On Disconnected",
"details": {
"name": "On Disconnected"
}
},
{
"key": "OnEvent",
"base": "OnEvent",
"details": {
"name": "OnEvent"
}
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "Presimulate event",
"base": "Presimulate event",
"context": "AZEventHandler",
"variant": "",
"details": {
@@ -9,43 +9,43 @@
},
"slots": [
{
"key": "Tick time",
"base": "Tick time",
"details": {
"name": "Tick time"
}
},
{
"key": "Presimulate event",
"base": "Presimulate event",
"details": {
"name": "Presimulate event"
}
},
{
"key": "Connect",
"base": "Connect",
"details": {
"name": "Connect"
}
},
{
"key": "Disconnect",
"base": "Disconnect",
"details": {
"name": "Disconnect"
}
},
{
"key": "On Connected",
"base": "On Connected",
"details": {
"name": "On Connected"
}
},
{
"key": "On Disconnected",
"base": "On Disconnected",
"details": {
"name": "On Disconnected"
}
},
{
"key": "OnEvent",
"base": "OnEvent",
"details": {
"name": "OnEvent"
}
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "SettingsRegistry Notify Event",
"base": "SettingsRegistry Notify Event",
"context": "AZEventHandler",
"variant": "",
"details": {
@@ -9,43 +9,43 @@
},
"slots": [
{
"key": "Json Path",
"base": "Json Path",
"details": {
"name": "Json Path"
}
},
{
"key": "SettingsRegistry Notify Event",
"base": "SettingsRegistry Notify Event",
"details": {
"name": "SettingsRegistry Notify Event"
}
},
{
"key": "Connect",
"base": "Connect",
"details": {
"name": "Connect"
}
},
{
"key": "Disconnect",
"base": "Disconnect",
"details": {
"name": "Disconnect"
}
},
{
"key": "On Connected",
"base": "On Connected",
"details": {
"name": "On Connected"
}
},
{
"key": "On Disconnected",
"base": "On Disconnected",
"details": {
"name": "On Disconnected"
}
},
{
"key": "OnEvent",
"base": "OnEvent",
"details": {
"name": "OnEvent"
}
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AWSMetrics_AttributesSubmissionList",
"base": "AWSMetrics_AttributesSubmissionList",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "Getattributes",
"base": "Getattributes",
"details": {
"name": "Get Attributes"
},
@@ -32,7 +32,7 @@
]
},
{
"key": "Setattributes",
"base": "Setattributes",
"details": {
"name": "Set Attributes"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AWSMetrics_MetricsAttribute",
"base": "AWSMetrics_MetricsAttribute",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "SetName",
"base": "SetName",
"context": "AWSMetrics_MetricsAttribute",
"entry": {
"name": "In",
@@ -39,7 +39,7 @@
]
},
{
"key": "SetStrValue",
"base": "SetStrValue",
"context": "AWSMetrics_MetricsAttribute",
"entry": {
"name": "In",
@@ -68,7 +68,7 @@
]
},
{
"key": "SetIntValue",
"base": "SetIntValue",
"context": "AWSMetrics_MetricsAttribute",
"entry": {
"name": "In",
@@ -97,7 +97,7 @@
]
},
{
"key": "SetDoubleValue",
"base": "SetDoubleValue",
"context": "AWSMetrics_MetricsAttribute",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AWSScriptBehaviorDynamoDB",
"base": "AWSScriptBehaviorDynamoDB",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "GetItem",
"base": "GetItem",
"context": "AWSScriptBehaviorDynamoDB",
"entry": {
"name": "In",
@@ -40,7 +40,7 @@
]
},
{
"key": "GetItemRaw",
"base": "GetItemRaw",
"context": "AWSScriptBehaviorDynamoDB",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AWSScriptBehaviorLambda",
"base": "AWSScriptBehaviorLambda",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "Invoke",
"base": "Invoke",
"context": "AWSScriptBehaviorLambda",
"entry": {
"name": "In",
@@ -39,7 +39,7 @@
]
},
{
"key": "InvokeRaw",
"base": "InvokeRaw",
"context": "AWSScriptBehaviorLambda",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AWSScriptBehaviorS3",
"base": "AWSScriptBehaviorS3",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "GetObject",
"base": "GetObject",
"context": "AWSScriptBehaviorS3",
"entry": {
"name": "In",
@@ -45,7 +45,7 @@
]
},
{
"key": "GetObjectRaw",
"base": "GetObjectRaw",
"context": "AWSScriptBehaviorS3",
"entry": {
"name": "In",
@@ -86,7 +86,7 @@
]
},
{
"key": "HeadObject",
"base": "HeadObject",
"context": "AWSScriptBehaviorS3",
"entry": {
"name": "In",
@@ -115,7 +115,7 @@
]
},
{
"key": "HeadObjectRaw",
"base": "HeadObjectRaw",
"context": "AWSScriptBehaviorS3",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AZ::SceneAPI::Containers::SceneGraph",
"base": "AZ::SceneAPI::Containers::SceneGraph",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "GetNodeChild",
"base": "GetNodeChild",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -47,7 +47,7 @@
]
},
{
"key": "FindWithPath",
"base": "FindWithPath",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -84,7 +84,7 @@
]
},
{
"key": "HasNodeChild",
"base": "HasNodeChild",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -121,7 +121,7 @@
]
},
{
"key": "HasNodeParent",
"base": "HasNodeParent",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -158,7 +158,7 @@
]
},
{
"key": "GetNodeSibling",
"base": "GetNodeSibling",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -195,7 +195,7 @@
]
},
{
"key": "HasNodeSibling",
"base": "HasNodeSibling",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -232,7 +232,7 @@
]
},
{
"key": "IsNodeEndPoint",
"base": "IsNodeEndPoint",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -269,7 +269,7 @@
]
},
{
"key": "GetNodeCount",
"base": "GetNodeCount",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -300,7 +300,7 @@
]
},
{
"key": "HasNodeContent",
"base": "HasNodeContent",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -337,7 +337,7 @@
]
},
{
"key": "GetNodeContent",
"base": "GetNodeContent",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -374,7 +374,7 @@
]
},
{
"key": "GetNodeName",
"base": "GetNodeName",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -411,7 +411,7 @@
]
},
{
"key": "GetRoot",
"base": "GetRoot",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -442,7 +442,7 @@
]
},
{
"key": "GetNodeSeperationCharacter",
"base": "GetNodeSeperationCharacter",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -465,7 +465,7 @@
]
},
{
"key": "GetNodeParent",
"base": "GetNodeParent",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -502,7 +502,7 @@
]
},
{
"key": "FindWithRootAndPath",
"base": "FindWithRootAndPath",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -545,7 +545,7 @@
]
},
{
"key": "IsValidName",
"base": "IsValidName",
"context": "AZ::SceneAPI::Containers::SceneGraph",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AZ::SceneAPI::DataTypes::IMeshData::Face",
"base": "AZ::SceneAPI::DataTypes::IMeshData::Face",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "GetVertexIndex",
"base": "GetVertexIndex",
"context": "AZ::SceneAPI::DataTypes::IMeshData::Face",
"entry": {
"name": "In",
@@ -1,33 +1,313 @@
{
"entries": [
{
"key": "AcesParameterOverrides",
"base": "AcesParameterOverrides",
"context": "BehaviorClass",
"variant": "",
"details": {
"name": "AcesParameterOverrides"
"name": "Aces Parameter Overrides",
"category": "Rendering"
},
"methods": [
{
"key": "LoadPreset",
"base": "LoadPreset",
"context": "AcesParameterOverrides",
"entry": {
"name": "In",
"tooltip": "When signaled, this will invoke LoadPreset"
"tooltip": "When signaled, this will invoke Load Preset"
},
"exit": {
"name": "Out",
"tooltip": "Signaled after LoadPreset is invoked"
"tooltip": "Signaled after Load Preset is invoked"
},
"details": {
"name": "AcesParameterOverrides::LoadPreset",
"category": "Other"
"name": "Load Preset"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": "AcesParameterOverrides*"
"name": "Aces Parameter Overrides"
}
}
]
},
{
"base": "GetOutputDeviceTransformType_4000Nits",
"details": {
"name": "Get Output Device Transform Type_ 4000 Nits"
},
"results": [
{
"typeid": "{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}",
"details": {
"name": "int"
}
}
]
},
{
"base": "GetOutputDeviceTransformType_2000Nits",
"details": {
"name": "Get Output Device Transform Type_ 2000 Nits"
},
"results": [
{
"typeid": "{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}",
"details": {
"name": "int"
}
}
]
},
{
"base": "GetapplyCATD60toD65",
"details": {
"name": "GetapplyCATD 60toD 65"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": ""
}
}
],
"results": [
{
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
"details": {
"name": ""
}
}
]
},
{
"base": "SetapplyCATD60toD65",
"details": {
"name": "SetapplyCATD 60toD 65"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": ""
}
},
{
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
"details": {
"name": ""
}
}
]
},
{
"base": "GetOutputDeviceTransformType_48Nits",
"details": {
"name": "Get Output Device Transform Type_ 48 Nits"
},
"results": [
{
"typeid": "{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}",
"details": {
"name": "int"
}
}
]
},
{
"base": "GetOutputDeviceTransformType_NumOutputDeviceTransformTypes",
"details": {
"name": "Get Output Device Transform Type_ Num Output Device Transform Types"
},
"results": [
{
"typeid": "{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}",
"details": {
"name": "int"
}
}
]
},
{
"base": "GetOutputDeviceTransformType_1000Nits",
"details": {
"name": "Get Output Device Transform Type_ 1000 Nits"
},
"results": [
{
"typeid": "{72039442-EB38-4D42-A1AD-CB68F7E0EEF6}",
"details": {
"name": "int"
}
}
]
},
{
"base": "GetapplyDesaturation",
"details": {
"name": "Getapply Desaturation"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": ""
}
}
],
"results": [
{
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
"details": {
"name": ""
}
}
]
},
{
"base": "SetapplyDesaturation",
"details": {
"name": "Setapply Desaturation"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": ""
}
},
{
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
"details": {
"name": ""
}
}
]
},
{
"base": "Getpreset",
"details": {
"name": "Getpreset"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": ""
}
}
],
"results": [
{
"typeid": "{B94085B7-C0D4-466A-A791-188A4559EC8D}",
"details": {
"name": ""
}
}
]
},
{
"base": "Setpreset",
"details": {
"name": "Setpreset"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": ""
}
},
{
"typeid": "{B94085B7-C0D4-466A-A791-188A4559EC8D}",
"details": {
"name": ""
}
}
]
},
{
"base": "GetalterSurround",
"details": {
"name": "Getalter Surround"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": ""
}
}
],
"results": [
{
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
"details": {
"name": ""
}
}
]
},
{
"base": "SetalterSurround",
"details": {
"name": "Setalter Surround"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": ""
}
},
{
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
"details": {
"name": ""
}
}
]
},
{
"base": "GetoverrideDefaults",
"details": {
"name": "Getoverride Defaults"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": ""
}
}
],
"results": [
{
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
"details": {
"name": ""
}
}
]
},
{
"base": "SetoverrideDefaults",
"details": {
"name": "Setoverride Defaults"
},
"params": [
{
"typeid": "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}",
"details": {
"name": ""
}
},
{
"typeid": "{A0CA880C-AFE4-43CB-926C-59AC48496112}",
"details": {
"name": ""
}
}
]
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "ActorComponent",
"base": "ActorComponent",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AnimationData",
"base": "AnimationData",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AssetData",
"base": "AssetData",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "GetUseCount",
"base": "GetUseCount",
"context": "AssetData",
"entry": {
"name": "In",
@@ -41,7 +41,7 @@
]
},
{
"key": "IsLoading",
"base": "IsLoading",
"context": "AssetData",
"entry": {
"name": "In",
@@ -79,7 +79,7 @@
]
},
{
"key": "IsError",
"base": "IsError",
"context": "AssetData",
"entry": {
"name": "In",
@@ -110,7 +110,7 @@
]
},
{
"key": "IsReady",
"base": "IsReady",
"context": "AssetData",
"entry": {
"name": "In",
@@ -141,7 +141,7 @@
]
},
{
"key": "GetId",
"base": "GetId",
"context": "AssetData",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AssetId",
"base": "AssetId",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "CreateString",
"base": "CreateString",
"context": "AssetId",
"entry": {
"name": "In",
@@ -41,7 +41,7 @@
]
},
{
"key": "IsValid",
"base": "IsValid",
"context": "AssetId",
"entry": {
"name": "In",
@@ -72,7 +72,7 @@
]
},
{
"key": "ToString",
"base": "ToString",
"context": "AssetId",
"entry": {
"name": "In",
@@ -103,7 +103,7 @@
]
},
{
"key": "IsEqual",
"base": "IsEqual",
"context": "AssetId",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AssetInfo",
"base": "AssetInfo",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "assetId",
"base": "assetId",
"details": {
"name": "Get Asset Id"
},
@@ -31,7 +31,7 @@
]
},
{
"key": "assetType",
"base": "assetType",
"details": {
"name": "Get Asset Type"
},
@@ -53,7 +53,7 @@
]
},
{
"key": "sizeBytes",
"base": "sizeBytes",
"details": {
"name": "Get Size (Bytes)"
},
@@ -75,7 +75,7 @@
]
},
{
"key": "relativePath",
"base": "relativePath",
"details": {
"name": "Get Relative Path"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AtomToolsDocumentSystemSettings",
"base": "AtomToolsDocumentSystemSettings",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "GetshowReloadDocumentPrompt",
"base": "GetshowReloadDocumentPrompt",
"details": {
"name": "Get Show Reload Document Prompt"
},
@@ -32,7 +32,7 @@
]
},
{
"key": "SetshowReloadDocumentPrompt",
"base": "SetshowReloadDocumentPrompt",
"details": {
"name": "Set Show Reload Document Prompt"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AuthenticationTokens",
"base": "AuthenticationTokens",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "GetAccessToken",
"base": "GetAccessToken",
"details": {
"name": "Get Access Token"
},
@@ -32,7 +32,7 @@
]
},
{
"key": "SetAccessToken",
"base": "SetAccessToken",
"details": {
"name": "Set Access Token"
},
@@ -52,7 +52,7 @@
]
},
{
"key": "GetOpenIdToken",
"base": "GetOpenIdToken",
"context": "getter",
"details": {
"name": "Get OpenId Token"
@@ -75,7 +75,7 @@
]
},
{
"key": "SetOpenIdToken",
"base": "SetOpenIdToken",
"context": "setter",
"details": {
"name": "Set OpenId Token"
@@ -96,7 +96,7 @@
]
},
{
"key": "GetRefreshToken",
"base": "GetRefreshToken",
"context": "getter",
"details": {
"name": "Get Refresh Token"
@@ -119,7 +119,7 @@
]
},
{
"key": "SetRefreshToken",
"base": "SetRefreshToken",
"context": "setter",
"details": {
"name": "Set Refresh Token"
@@ -1,15 +1,16 @@
{
"entries": [
{
"key": "AxisType",
"base": "AxisType",
"context": "BehaviorClass",
"variant": "",
"details": {
"name": "Axis Type"
"name": "Axis Type",
"category": "Constants"
},
"methods": [
{
"key": "GetZNegative",
"base": "GetZNegative",
"details": {
"name": "Get -Z"
},
@@ -23,7 +24,7 @@
]
},
{
"key": "GetZPositive",
"base": "GetZPositive",
"details": {
"name": "Get +Z"
},
@@ -37,7 +38,7 @@
]
},
{
"key": "GetYPositive",
"base": "GetYPositive",
"details": {
"name": "Get +Y"
},
@@ -51,7 +52,7 @@
]
},
{
"key": "GetXNegative",
"base": "GetXNegative",
"details": {
"name": "Get -X"
},
@@ -65,7 +66,7 @@
]
},
{
"key": "GetXPositive",
"base": "GetXPositive",
"details": {
"name": "Get +X"
},
@@ -79,7 +80,7 @@
]
},
{
"key": "GetYNegative",
"base": "GetYNegative",
"details": {
"name": "Get -Y"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "AzFramework::SurfaceData::SurfacePoint",
"base": "AzFramework::SurfaceData::SurfacePoint",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "Getposition",
"base": "Getposition",
"details": {
"name": "Get Position"
},
@@ -32,7 +32,7 @@
]
},
{
"key": "Setposition",
"base": "Setposition",
"details": {
"name": "Set Position"
},
@@ -52,7 +52,7 @@
]
},
{
"key": "Getnormal",
"base": "Getnormal",
"details": {
"name": "Get Normal"
},
@@ -74,7 +74,7 @@
]
},
{
"key": "Setnormal",
"base": "Setnormal",
"details": {
"name": "Set Normal"
},
@@ -94,7 +94,7 @@
]
},
{
"key": "GetsurfaceTags",
"base": "GetsurfaceTags",
"details": {
"name": "Get Surface Tags"
},
@@ -116,7 +116,7 @@
]
},
{
"key": "SetsurfaceTags",
"base": "SetsurfaceTags",
"details": {
"name": "Set Surface Tags"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "BlastActorData",
"base": "BlastActorData",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "GetEntityId",
"base": "GetEntityId",
"details": {
"name": "Get Entity Id"
},
@@ -34,7 +34,7 @@
]
},
{
"key": "SetEntityId",
"base": "SetEntityId",
"details": {
"name": "Set Entity Id"
},
@@ -56,7 +56,7 @@
]
},
{
"key": "GetIsStatic",
"base": "GetIsStatic",
"details": {
"name": "Get Is Static"
},
@@ -79,7 +79,7 @@
]
},
{
"key": "SetIsStatic",
"base": "SetIsStatic",
"details": {
"name": "Set Is Static"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "BlendShapeAnimationData",
"base": "BlendShapeAnimationData",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "BlendShapeData",
"base": "BlendShapeData",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "GetUV",
"base": "GetUV",
"context": "BlendShapeData",
"entry": {
"name": "In",
@@ -52,7 +52,7 @@
]
},
{
"key": "GetTangent",
"base": "GetTangent",
"context": "BlendShapeData",
"entry": {
"name": "In",
@@ -89,7 +89,7 @@
]
},
{
"key": "GetBitangent",
"base": "GetBitangent",
"context": "BlendShapeData",
"entry": {
"name": "In",
@@ -126,7 +126,7 @@
]
},
{
"key": "GetColor",
"base": "GetColor",
"context": "BlendShapeData",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "BlendShapeDataFace",
"base": "BlendShapeDataFace",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "GetVertexIndex",
"base": "GetVertexIndex",
"context": "BlendShapeDataFace",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "BoxShapeConfig",
"base": "BoxShapeConfig",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "GetDimensions",
"base": "GetDimensions",
"details": {
"name": "Get Dimensions"
},
@@ -32,7 +32,7 @@
]
},
{
"key": "SetDimensions",
"base": "SetDimensions",
"details": {
"name": "Set Dimensions"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "CameraComponent",
"base": "CameraComponent",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "CapsuleShapeConfig",
"base": "CapsuleShapeConfig",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "GetHeight",
"base": "GetHeight",
"details": {
"name": "Get Height"
},
@@ -32,7 +32,7 @@
]
},
{
"key": "SetHeight",
"base": "SetHeight",
"details": {
"name": "Set Height"
},
@@ -53,7 +53,7 @@
]
},
{
"key": "GetRadius",
"base": "GetRadius",
"details": {
"name": "Get Radius"
},
@@ -76,7 +76,7 @@
]
},
{
"key": "SetRadius",
"base": "SetRadius",
"details": {
"name": "Set Radius"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "ClientAuthAWSCredentials",
"base": "ClientAuthAWSCredentials",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "GetAWSAccessKeyId",
"base": "GetAWSAccessKeyId",
"details": {
"name": "Get AWS Access Key Id"
},
@@ -32,7 +32,7 @@
]
},
{
"key": "SetAWSAccessKeyId",
"base": "SetAWSAccessKeyId",
"details": {
"name": "Set AWS Access Key Id"
},
@@ -52,7 +52,7 @@
]
},
{
"key": "GetAWSSecretKey",
"base": "GetAWSSecretKey",
"details": {
"name": "Get AWS Secret Key"
},
@@ -74,7 +74,7 @@
]
},
{
"key": "SetAWSSecretKey",
"base": "SetAWSSecretKey",
"details": {
"name": "Set AWS Secret Key"
},
@@ -94,7 +94,7 @@
]
},
{
"key": "GetAWSSessionToken",
"base": "GetAWSSessionToken",
"details": {
"name": "Get AWS Session Token"
},
@@ -116,7 +116,7 @@
]
},
{
"key": "SetAWSSessionToken",
"base": "SetAWSSessionToken",
"details": {
"name": "Set AWS Session Token"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "CollisionEvent",
"base": "CollisionEvent",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "GetBody1EntityId",
"base": "GetBody1EntityId",
"context": "CollisionEvent",
"entry": {
"name": "In",
@@ -41,7 +41,7 @@
]
},
{
"key": "GetBody2EntityId",
"base": "GetBody2EntityId",
"context": "CollisionEvent",
"entry": {
"name": "In",
@@ -73,7 +73,7 @@
]
},
{
"key": "GetContacts",
"base": "GetContacts",
"details": {
"name": "Get Contacts"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "CollisionGroup",
"base": "CollisionGroup",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "ComponentId",
"base": "ComponentId",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "IsValid",
"base": "IsValid",
"context": "ComponentId",
"entry": {
"name": "In",
@@ -41,7 +41,7 @@
]
},
{
"key": "Equal",
"base": "Equal",
"context": "ComponentId",
"entry": {
"name": "In",
@@ -78,7 +78,7 @@
]
},
{
"key": "ToString",
"base": "ToString",
"context": "ComponentId",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "ConstantGradientComponent",
"base": "ConstantGradientComponent",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "ConstantGradientConfig",
"base": "ConstantGradientConfig",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "Contact",
"base": "Contact",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "GetPosition",
"base": "GetPosition",
"details": {
"name": "Get Position"
},
@@ -31,7 +31,7 @@
]
},
{
"key": "SetPosition",
"base": "SetPosition",
"details": {
"name": "Set Position"
},
@@ -51,7 +51,7 @@
]
},
{
"key": "GetNormal",
"base": "GetNormal",
"details": {
"name": "Get Normal"
},
@@ -73,7 +73,7 @@
]
},
{
"key": "SetNormal",
"base": "SetNormal",
"details": {
"name": "Set Normal"
},
@@ -93,7 +93,7 @@
]
},
{
"key": "GetImpulse",
"base": "GetImpulse",
"details": {
"name": "Get Impulse"
},
@@ -115,7 +115,7 @@
]
},
{
"key": "SetImpulse",
"base": "SetImpulse",
"details": {
"name": "Set Impulse"
},
@@ -135,7 +135,7 @@
]
},
{
"key": "GetSeparation",
"base": "GetSeparation",
"details": {
"name": "Get Separation"
},
@@ -157,7 +157,7 @@
]
},
{
"key": "SetSeparation",
"base": "SetSeparation",
"details": {
"name": "Set Separation"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "CryRange",
"base": "CryRange",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "CylinderShapeConfig",
"base": "CylinderShapeConfig",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "GetHeight",
"base": "GetHeight",
"details": {
"name": "Get Height"
},
@@ -32,7 +32,7 @@
]
},
{
"key": "SetHeight",
"base": "SetHeight",
"details": {
"name": "Set Height"
},
@@ -53,7 +53,7 @@
]
},
{
"key": "GetRadius",
"base": "GetRadius",
"details": {
"name": "Get Radius"
},
@@ -76,7 +76,7 @@
]
},
{
"key": "SetRadius",
"base": "SetRadius",
"details": {
"name": "Set Radius"
},
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "DiskShapeConfig",
"base": "DiskShapeConfig",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "DisplaySettingsState",
"base": "DisplaySettingsState",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "ToString",
"base": "ToString",
"context": "DisplaySettingsState",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "DitherGradientComponent",
"base": "DitherGradientComponent",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "DitherGradientConfig",
"base": "DitherGradientConfig",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "EditorActorComponent",
"base": "EditorActorComponent",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "EditorCameraComponent",
"base": "EditorCameraComponent",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "EditorLayerComponent",
"base": "EditorLayerComponent",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "CreateLayerEntityFromName",
"base": "CreateLayerEntityFromName",
"context": "EditorLayerComponent",
"entry": {
"name": "In",
@@ -42,7 +42,7 @@
]
},
{
"key": "RecoverLayer",
"base": "RecoverLayer",
"context": "EditorLayerComponent",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "EditorMaterialComponentSlot",
"base": "EditorMaterialComponentSlot",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "EditorSequenceComponent",
"base": "EditorSequenceComponent",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "EditorSimpleMotionComponent",
"base": "EditorSimpleMotionComponent",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "EditorTransformBus",
"base": "EditorTransformBus",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "Entity Transform",
"base": "Entity Transform",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "Rotate",
"base": "Rotate",
"context": "Entity Transform",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "Entity",
"base": "Entity",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -10,7 +10,7 @@
},
"methods": [
{
"key": "GetComponentName",
"base": "GetComponentName",
"context": "Entity",
"entry": {
"name": "In",
@@ -49,7 +49,7 @@
]
},
{
"key": "GetComponentType",
"base": "GetComponentType",
"context": "Entity",
"entry": {
"name": "In",
@@ -88,7 +88,7 @@
]
},
{
"key": "CreateComponent",
"base": "CreateComponent",
"context": "Entity",
"entry": {
"name": "In",
@@ -133,7 +133,7 @@
]
},
{
"key": "DestroyComponent",
"base": "DestroyComponent",
"context": "Entity",
"entry": {
"name": "In",
@@ -172,7 +172,7 @@
]
},
{
"key": "FindComponentOfType",
"base": "FindComponentOfType",
"context": "Entity",
"entry": {
"name": "In",
@@ -211,7 +211,7 @@
]
},
{
"key": "SetComponentConfiguration",
"base": "SetComponentConfiguration",
"context": "Entity",
"entry": {
"name": "In",
@@ -256,7 +256,7 @@
]
},
{
"key": "IsValid",
"base": "IsValid",
"context": "Entity",
"entry": {
"name": "In",
@@ -289,7 +289,7 @@
]
},
{
"key": "GetId",
"base": "GetId",
"context": "Entity",
"entry": {
"name": "In",
@@ -323,7 +323,7 @@
]
},
{
"key": "GetOwningContextId",
"base": "GetOwningContextId",
"context": "Entity",
"entry": {
"name": "In",
@@ -355,7 +355,7 @@
]
},
{
"key": "GetComponents",
"base": "GetComponents",
"context": "Entity",
"entry": {
"name": "In",
@@ -388,7 +388,7 @@
]
},
{
"key": "FindAllComponentsOfType",
"base": "FindAllComponentsOfType",
"context": "Entity",
"entry": {
"name": "In",
@@ -427,7 +427,7 @@
]
},
{
"key": "GetComponentConfiguration",
"base": "GetComponentConfiguration",
"context": "Entity",
"entry": {
"name": "In",
@@ -472,7 +472,7 @@
]
},
{
"key": "SetName",
"base": "SetName",
"context": "Entity",
"entry": {
"name": "In",
@@ -503,7 +503,7 @@
]
},
{
"key": "IsActivated",
"base": "IsActivated",
"context": "Entity",
"entry": {
"name": "In",
@@ -536,7 +536,7 @@
]
},
{
"key": "Activate",
"base": "Activate",
"context": "Entity",
"entry": {
"name": "In",
@@ -561,7 +561,7 @@
]
},
{
"key": "Deactivate",
"base": "Deactivate",
"context": "Entity",
"entry": {
"name": "In",
@@ -586,7 +586,7 @@
]
},
{
"key": "GetName",
"base": "GetName",
"context": "Entity",
"entry": {
"name": "In",
@@ -619,7 +619,7 @@
]
},
{
"key": "Exists",
"base": "Exists",
"context": "Entity",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "EntityComponentIdPair",
"base": "EntityComponentIdPair",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "GetEntityId",
"base": "GetEntityId",
"context": "EntityComponentIdPair",
"entry": {
"name": "In",
@@ -42,7 +42,7 @@
]
},
{
"key": "Equal",
"base": "Equal",
"context": "EntityComponentIdPair",
"entry": {
"name": "In",
@@ -80,7 +80,7 @@
]
},
{
"key": "ToString",
"base": "ToString",
"context": "EntityComponentIdPair",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "EntityEntity_VM",
"base": "EntityEntity_VM",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -9,7 +9,7 @@
},
"methods": [
{
"key": "ToString",
"base": "ToString",
"context": "EntityEntity_VM",
"entry": {
"name": "In",
@@ -42,7 +42,7 @@
]
},
{
"key": "IsValid",
"base": "IsValid",
"context": "EntityEntity_VM",
"entry": {
"name": "In",
@@ -75,7 +75,7 @@
]
},
{
"key": "GetEntityForward",
"base": "GetEntityForward",
"context": "EntityEntity_VM",
"entry": {
"name": "In",
@@ -114,7 +114,7 @@
]
},
{
"key": "IsActive",
"base": "IsActive",
"context": "EntityEntity_VM",
"entry": {
"name": "In",
@@ -147,7 +147,7 @@
]
},
{
"key": "GetEntityRight",
"base": "GetEntityRight",
"context": "EntityEntity_VM",
"entry": {
"name": "In",
@@ -186,7 +186,7 @@
]
},
{
"key": "GetEntityUp",
"base": "GetEntityUp",
"context": "EntityEntity_VM",
"entry": {
"name": "In",
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "EntityType",
"base": "EntityType",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "ExecutionStateInterpretedPerActivation",
"base": "ExecutionStateInterpretedPerActivation",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "ExecutionStateInterpretedPerActivationOnGraphStart",
"base": "ExecutionStateInterpretedPerActivationOnGraphStart",
"context": "BehaviorClass",
"variant": "",
"details": {
@@ -1,7 +1,7 @@
{
"entries": [
{
"key": "ExecutionStateInterpretedPure",
"base": "ExecutionStateInterpretedPure",
"context": "BehaviorClass",
"variant": "",
"details": {

Some files were not shown because too many files have changed in this diff Show More