diff --git a/CHANGELOG.md b/CHANGELOG.md index 64c923ce..c8adc626 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -24,6 +24,34 @@ If a copy of the MPL was not distributed with this file, You can obtain one at h --> +## [1.2.0] Trace player, weak links, and running Python script in GUI application +* **File version number has changed. Files saved with RaCo 1.1.2 cannot be opened by previous versions.** + +### Added +* Added ability to run Python scripts in the UI version. + * Use the new command line argument "-r" to run Python scripts before the UI appears. + * During UI usage, you can run Python scripts using the new dialog "File" -> "Run Script..." + * Note that Python functions "load()" and "reset()" have been temporarily disabled for this particular use case as they are currently incompatible with scene switches in the UI. +* Added TracePlayer + * TracePlayer is used for simulation and debugging purposes, where a recorded, or manually defined, animation scenario in a RaCo trace file (.rctrace) can be loaded and played in the scene. + * rctrace files are JSON based files that should contain so called frames of scene properties data in consecutive timestamps snapshots. + * TracePlayer parses frames periodically based on RaCo application update time and updates the corresponding LuaScript or LuaInterface object(s) in the scene. + * For more details with an example, see the TracePlayer section in the Ramses Composer documentation. +* Added support for weak links. Weak links are ignored in the LogicEngine Lua dependency graph which determines the Lua execution order. + * Weak links can be created in the UI when a loop would be created with a strong link. + * Strong/weak links are indicated in the property browser by double/single left arrows next to the link menu button. + * The Python API addLink received an additional argument to allow creating weak links. +* Added "all file" filter for file dialogs that load files (e.g. URIs). + +### Changes +* Changed "ramses-framework-arguments" ("-r") command line argument to "framework-arguments" ("-a"). +* Icons in read-only state (e.g. link icons of properties in the Property Browser) will retain their color now. +* Removed lua script time_ms hack. + +### Fixes +* Fixed incorrect update of PrefabInstance contents when loading a scene with a camera inside a PrefabInstance referenced by a RenderPass. + + ## [1.1.2] Lua Interface Naming Bugfix ### Fixes @@ -45,6 +73,7 @@ If a copy of the MPL was not distributed with this file, You can obtain one at h * Fixed Timer objects being deleted all the time by "Delete Unused Resources" despite potential links to and from the Timer. + ## [1.1.0] Lua Interfaces, various UI improvements * **File version number has changed. Files saved with RaCo 1.1.0 cannot be opened by previous versions.** * **Check the suggested migration procedure below for the LuaInterfaces introduced in RamsesComposer 1.1.0 to avoid unnecessary issues.** @@ -411,7 +440,7 @@ If a copy of the MPL was not distributed with this file, You can obtain one at h * A broken render target now stops a render pass rendering to it from rendering, instead of rendering to the default framebuffer. * Also: the render pass shows a warning that it won't render due to the broken render target. * A render target now displays an error if some of its render buffers are either not valid or not set. - * This is due to https://github.com/COVESA/ramses/issues/52 + * This is due to https://github.com/bmwcarit/ramses/issues/52 * A render target now displays an error if its first render buffer is not set. * The sampling parameters are hidden for depth buffers. * Fixed absolute paths for .ramses & .rlogic files not being recognized in the "Export Project" dialog. @@ -533,7 +562,7 @@ If a copy of the MPL was not distributed with this file, You can obtain one at h ### Changes * Update from ramses-logic 0.6.0 to ramses-logic 0.6.1 * Update from ramses 27.0.102 to ramses 27.0.103 -* Removed RACO_CONVENTIONS.md - superseded with the Ramses Composer documentation repository: https://github.com/GENIVI/ramses-composer-docs +* Removed RACO_CONVENTIONS.md - superseded with the Ramses Composer documentation repository: https://github.com/bmwcarit/ramses-composer-docs * PrefabInstance interface scripts (LuaScripts on PrefabInstance top level) now get exported with the object name ".". * The folder and library structure has been cleaned up. * LuaScripts that have no parent are not displayed in the Resource tree anymore. diff --git a/CMakeLists.txt b/CMakeLists.txt index 3cc5cdb3..05e67163 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -11,7 +11,7 @@ cmake_minimum_required(VERSION 3.19) SET(CMAKE_CONFIGURATION_TYPES "Debug;RelWithDebInfo") -project(RaCoOS VERSION 1.1.2) +project(RaCoOS VERSION 1.2.0) SET(RACO_RELEASE_DIRECTORY ${CMAKE_BINARY_DIR}/release) diff --git a/EditorApp/CMakeLists.txt b/EditorApp/CMakeLists.txt index 5e5351d2..32761fb9 100644 --- a/EditorApp/CMakeLists.txt +++ b/EditorApp/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -42,6 +42,7 @@ set_target_properties(RaCoEditor PROPERTIES OUTPUT_NAME "RamsesComposer" RUNTIME add_dependencies(RaCoEditor RaCoResources RaCoPrepareReleaseFolder) target_link_libraries(RaCoEditor +PUBLIC raco::LogSystem raco::PropertyBrowser raco::CommonWidgets @@ -52,6 +53,9 @@ target_link_libraries(RaCoEditor raco::ObjectTree Qt5::Widgets qtadvanceddocking + raco::PythonAPI +PRIVATE + raco::pybind11 ) add_compile_definitions(RaCoEditor PRIVATE CMAKE_SOURCE_DIR="${CMAKE_SOURCE_DIR}") diff --git a/EditorApp/DebugActions.cpp b/EditorApp/DebugActions.cpp index f920999d..ba697c6c 100644 --- a/EditorApp/DebugActions.cpp +++ b/EditorApp/DebugActions.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/DebugActions.h b/EditorApp/DebugActions.h index 2df09c2d..7b03b842 100644 --- a/EditorApp/DebugActions.h +++ b/EditorApp/DebugActions.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/EditMenu.cpp b/EditorApp/EditMenu.cpp index be7e74a4..b739f88e 100644 --- a/EditorApp/EditMenu.cpp +++ b/EditorApp/EditMenu.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/EditMenu.h b/EditorApp/EditMenu.h index c0aa210f..2f6dd06f 100644 --- a/EditorApp/EditMenu.h +++ b/EditorApp/EditMenu.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/ForceHighEndGPU.cpp b/EditorApp/ForceHighEndGPU.cpp index 46216c49..d6c40f17 100644 --- a/EditorApp/ForceHighEndGPU.cpp +++ b/EditorApp/ForceHighEndGPU.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/OpenRecentMenu.cpp b/EditorApp/OpenRecentMenu.cpp index 8002e6fe..72d89226 100644 --- a/EditorApp/OpenRecentMenu.cpp +++ b/EditorApp/OpenRecentMenu.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/OpenRecentMenu.h b/EditorApp/OpenRecentMenu.h index b378b07c..0d207712 100644 --- a/EditorApp/OpenRecentMenu.h +++ b/EditorApp/OpenRecentMenu.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/RaCoDockManager.cpp b/EditorApp/RaCoDockManager.cpp index 9eb2ba06..980ac582 100644 --- a/EditorApp/RaCoDockManager.cpp +++ b/EditorApp/RaCoDockManager.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/RaCoDockManager.h b/EditorApp/RaCoDockManager.h index 0e82a91e..151335c5 100644 --- a/EditorApp/RaCoDockManager.h +++ b/EditorApp/RaCoDockManager.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/SavedLayoutsDialog.cpp b/EditorApp/SavedLayoutsDialog.cpp index 884ddd02..43dfa59b 100644 --- a/EditorApp/SavedLayoutsDialog.cpp +++ b/EditorApp/SavedLayoutsDialog.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/SavedLayoutsDialog.h b/EditorApp/SavedLayoutsDialog.h index 93df7000..1400b4fb 100644 --- a/EditorApp/SavedLayoutsDialog.h +++ b/EditorApp/SavedLayoutsDialog.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/main.cpp b/EditorApp/main.cpp index 69c03e36..22f1d727 100644 --- a/EditorApp/main.cpp +++ b/EditorApp/main.cpp @@ -2,11 +2,15 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +// Needs to be first +#include + #include "mainwindow.h" #include "application/RaCoApplication.h" @@ -21,9 +25,13 @@ #include "utils/CrashDump.h" #include "utils/u8path.h" +#include "python_api/PythonAPI.h" + #include #include +namespace py = pybind11; + void createStdOutConsole(); #ifdef _WIN32 @@ -64,8 +72,8 @@ int main(int argc, char* argv[]) { << "console", "Open with std out console."); QCommandLineOption forwardCommandLineArgs( - QStringList() << "r" - << "ramses-framework-arguments", + QStringList() << "a" + << "framework-arguments", "Override arguments passed to the ramses framework.", "default-args"); QCommandLineOption noDumpFileCheckOption( @@ -81,11 +89,17 @@ int main(int argc, char* argv[]) { QStringList() << "t" << "trace-messages-ramses", "Enable trace-level Ramses log messages."); + QCommandLineOption pyrunOption( + QStringList() << "r" + << "run", + "Run Python script. Specify arguments for python script by writing '--' before arguments.", + "script-path"); parser.addOption(consoleOption); parser.addOption(forwardCommandLineArgs); parser.addOption(noDumpFileCheckOption); parser.addOption(loadProjectAction); parser.addOption(ramsesTraceLogMessageAction); + parser.addOption(pyrunOption); // apply global style, must be done before application instance QApplication::setStyle(new raco::style::RaCoStyle()); @@ -96,7 +110,26 @@ int main(int argc, char* argv[]) { // force use of style palette, required on Linux a.setPalette(a.style()->standardPalette()); - parser.process(QCoreApplication::arguments()); + auto args = QCoreApplication::arguments(); + std::vector pythonArguments; + + { + auto parsingPythonArgs = false; + auto argsIt = args.begin(); + while (argsIt != args.end()) { + if (*argsIt == "--") { + parsingPythonArgs = true; + ++argsIt; + } else if (parsingPythonArgs) { + pythonArguments.emplace_back(argsIt->toStdString()); + argsIt = args.erase(argsIt); + } else { + ++argsIt; + } + } + } + + parser.process(args); bool noDumpFiles = parser.isSet(noDumpFileCheckOption); raco::utils::crashdump::installCrashDumpHandler(noDumpFiles); @@ -109,15 +142,29 @@ int main(int argc, char* argv[]) { raco::core::PathManager::init(QCoreApplication::applicationDirPath().toStdString(), appDataPath); raco::log_system::init(raco::core::PathManager::logFileEditorName().internalPath().native()); - const QStringList args = parser.positionalArguments(); + const QStringList positionalArgs = parser.positionalArguments(); // support both loading with named parameter for compatibility with headless version and // loading with positional parameter drag&drop onto desktop icon QString projectFile{}; if (parser.isSet(loadProjectAction)) { projectFile = QFileInfo(parser.value(loadProjectAction)).absoluteFilePath(); - } else if (args.size() > 0) { - projectFile = QFileInfo(args.at(0)).absoluteFilePath(); + } else if (positionalArgs.size() > 0) { + projectFile = QFileInfo(positionalArgs.at(0)).absoluteFilePath(); + } + + QString pythonScriptPath{}; + if (parser.isSet(pyrunOption)) { + QFileInfo path(parser.value(pyrunOption)); + if (path.exists()) { + if (raco::utils::u8path(path.filePath().toStdString()).userHasReadAccess()) { + pythonScriptPath = path.absoluteFilePath(); + } else { + LOG_ERROR(raco::log_system::PYTHON, "Python script file could not be read {}", path.filePath().toStdString()); + } + } else { + LOG_ERROR(raco::log_system::PYTHON, "Python script file not found {}", path.filePath().toStdString()); + } } // set font, must be done after application instance @@ -129,7 +176,7 @@ int main(int argc, char* argv[]) { std::unique_ptr app; try { - app = std::make_unique(rendererBackend, raco::application::RaCoApplicationLaunchSettings{projectFile, true, parser.isSet(ramsesTraceLogMessageAction)}); + app = std::make_unique(rendererBackend, raco::application::RaCoApplicationLaunchSettings{projectFile, true, parser.isSet(ramsesTraceLogMessageAction), true}); } catch (const raco::application::FutureFileVersion& error) { LOG_ERROR(raco::log_system::COMMON, "File load error: project file was created with newer file version {} but current file version is {}.", error.fileVersion_, raco::serialization::RAMSES_PROJECT_FILE_VERSION); app.reset(); @@ -143,6 +190,18 @@ int main(int argc, char* argv[]) { if (app) { MainWindow w{app.get(), &rendererBackend}; + + if (!pythonScriptPath.isEmpty()) { + auto pythonScriptPathStr = pythonScriptPath.toStdString(); + std::vector pos_argv_cp; + pos_argv_cp.emplace_back(pythonScriptPathStr.c_str()); + for (auto& s : pythonArguments) { + pos_argv_cp.emplace_back(s.c_str()); + } + + raco::python_api::runPythonScript(app.get(), QCoreApplication::applicationFilePath().toStdWString(), pythonScriptPath.toStdString(), pos_argv_cp); + } + w.show(); return a.exec(); diff --git a/EditorApp/mainwindow.cpp b/EditorApp/mainwindow.cpp index 203ff5ec..4fff6fa1 100644 --- a/EditorApp/mainwindow.cpp +++ b/EditorApp/mainwindow.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -19,6 +19,8 @@ #include "common_widgets/LogView.h" #include "common_widgets/MeshAssetImportDialog.h" #include "common_widgets/PreferencesView.h" +#include "common_widgets/RunScriptDialog.h" +#include "common_widgets/TracePlayerWidget.h" #include "common_widgets/UndoView.h" #include "core/Context.h" #include "core/EditorObject.h" @@ -73,6 +75,10 @@ #include "versiondialog.h" #include "utils/u8path.h" +#include "python_api/PythonAPI.h" +#include "DockAreaWidget.h" +#include "DockSplitter.h" +#include "ads_globals.h" #include #include @@ -89,6 +95,7 @@ #include #include #include +#include #include #include #include @@ -210,8 +217,7 @@ ads::CDockAreaWidget* createAndAddResourceTree(MainWindow* mainWindow, const cha RenderBuffer::typeDescription.typeName, RenderTarget::typeDescription.typeName, RenderLayer::typeDescription.typeName, - RenderPass::typeDescription.typeName - }; + RenderPass::typeDescription.typeName}; auto* model = new raco::object_tree::model::ObjectTreeViewResourceModel(racoApplication->activeRaCoProject().commandInterface(), racoApplication->dataChangeDispatcher(), racoApplication->externalProjects(), allowedCreateableUserTypes); return createAndAddObjectTree( @@ -258,7 +264,7 @@ ads::CDockAreaWidget* createAndAddSceneGraphTree(MainWindow* mainWindow, const c ads::LeftDockWidgetArea, mainWindow, dockManager, treeDockManager, nullptr); } -ads::CDockAreaWidget* createAndAddUndoView(raco::application::RaCoApplication* application, const char *dockObjName, raco::application::RaCoProject* project, MainWindow* mainWindow, RaCoDockManager* dockManager, ads::CDockAreaWidget* dockArea = nullptr) { +ads::CDockAreaWidget* createAndAddUndoView(raco::application::RaCoApplication* application, const char* dockObjName, raco::application::RaCoProject* project, MainWindow* mainWindow, RaCoDockManager* dockManager, ads::CDockAreaWidget* dockArea = nullptr) { auto* dock = createDockWidget(MainWindow::DockWidgetTypes::UNDO_STACK, mainWindow); dock->setWidget(new raco::common_widgets::UndoView(project->undoStack(), application->dataChangeDispatcher(), mainWindow)); dock->setObjectName(dockObjName); @@ -282,7 +288,48 @@ ads::CDockAreaWidget* createAndAddLogView(MainWindow* mainWindow, raco::applicat return dockManager->addDockWidget(ads::BottomDockWidgetArea, dock, dockArea); } -void createInitialWidgets(MainWindow* mainWindow, raco::ramses_widgets::RendererBackend& rendererBackend, raco::application::RaCoApplication* application, RaCoDockManager* dockManager, raco::object_tree::view::ObjectTreeDockManager& treeDockManager) { +ads::CDockAreaWidget* createAndAddTracePlayer(MainWindow* mainWindow, RaCoDockManager* dockManager, raco::components::TracePlayer* tracePlayer) { + if (auto existingTraceplayerDock{dockManager->findDockWidget(MainWindow::DockWidgetTypes::TRACE_PLAYER)}) { + return existingTraceplayerDock->dockAreaWidget(); + } + + auto* newTraceplayerDock{createDockWidget(MainWindow::DockWidgetTypes::TRACE_PLAYER, mainWindow)}; + newTraceplayerDock->setMinimumSizeHintMode(ads::CDockWidget::eMinimumSizeHintMode::MinimumSizeHintFromContent); + + auto* traceplayerWidget{new raco::common_widgets::TracePlayerWidget(newTraceplayerDock->objectName(), tracePlayer)}; + newTraceplayerDock->setWidget(traceplayerWidget, ads::CDockWidget::ForceNoScrollArea); + + ads::CDockWidget* existingPreviewDock{nullptr}; + constexpr auto isRamsesPreviewWidget{ + [](const ads::CDockWidget* dockWidget) { return dockWidget->windowTitle() == MainWindow::DockWidgetTypes::RAMSES_PREVIEW; }}; + const auto& dockWidgetsMap{dockManager->dockWidgetsMap()}; + if (const auto itr = std::find_if(dockWidgetsMap.begin(), dockWidgetsMap.end(), isRamsesPreviewWidget); itr != dockWidgetsMap.end()) { + existingPreviewDock = *itr; + } + + // this prevents the whole dock area from auto resizing by ADS when TracePlayer is added to the top of Preview + struct LockDockAreaWidth { + QWidget* target_; + LockDockAreaWidth(QWidget* target, ads::CDockWidget* host) : target_{target} { + if (host) { + target->setFixedWidth(host->width()); + } + } + ~LockDockAreaWidth() { + target_->setMinimumWidth(0); + target_->setMaximumWidth(QWIDGETSIZE_MAX); + } + } lockDockAreaWidth{traceplayerWidget, existingPreviewDock}; + + ads::CDockAreaWidget* previewDockArea{nullptr}; + if (existingPreviewDock) { + previewDockArea = existingPreviewDock->dockAreaWidget(); + } + + return dockManager->addDockWidget(ads::TopDockWidgetArea, newTraceplayerDock, previewDockArea); +} + +void createInitialWidgets(MainWindow* mainWindow, raco::ramses_widgets::RendererBackend& rendererBackend, raco::application::RaCoApplication* application, RaCoDockManager* dockManager, raco::object_tree::view::ObjectTreeDockManager& treeDockManager) { createAndAddPreview(mainWindow, "defaultPreview", dockManager, rendererBackend, application); auto leftDockArea = createAndAddSceneGraphTree(mainWindow, "defaultSceneGraph", dockManager, treeDockManager, application); @@ -313,7 +360,6 @@ MainWindow::MainWindow(raco::application::RaCoApplication* racoApplication, raco // Shortcuts { - auto undoShortcut = new QShortcut(QKeySequence::Undo, this, nullptr, nullptr, Qt::ApplicationShortcut); QObject::connect(undoShortcut, &QShortcut::activated, this, [this]() { EditMenu::globalUndoCallback(racoApplication_); @@ -332,7 +378,7 @@ MainWindow::MainWindow(raco::application::RaCoApplication* racoApplication, raco QObject::connect(pasteShortcut, &QShortcut::activated, this, [this]() { EditMenu::globalPasteCallback(racoApplication_, &treeDockManager_); }); - + ui->actionSave->setShortcut(QKeySequence::Save); ui->actionSave->setShortcutContext(Qt::ApplicationShortcut); QObject::connect(ui->actionSave, &QAction::triggered, this, &MainWindow::saveActiveProject); @@ -342,8 +388,29 @@ MainWindow::MainWindow(raco::application::RaCoApplication* racoApplication, raco QObject::connect(ui->actionSaveAs, &QAction::triggered, this, &MainWindow::saveAsActiveProject); } + QObject::connect(ui->actionRunScript, &QAction::triggered, [this]() { + auto *dialog = new raco::common_widgets::RunScriptDialog(pythonScriptCache_, pythonScriptArgumentCache_); + + QObject::connect(dialog, &raco::common_widgets::RunScriptDialog::pythonScriptRunRequested, [this](const QString &scriptPath, const QStringList &arguments) { + std::vector pos_argv_s; + pos_argv_s.emplace_back(scriptPath.toStdString()); + for (auto arg : arguments) { + pos_argv_s.emplace_back(arg.toStdString()); + } + std::vector pos_argv_cp; + for (auto& s : pos_argv_s) { + pos_argv_cp.emplace_back(s.c_str()); + } + + raco::python_api::runPythonScript(racoApplication_, QCoreApplication::applicationFilePath().toStdWString(), scriptPath.toStdString(), pos_argv_cp); + }); + + dialog->exec(); + }); + + QObject::connect(ui->actionOpen, &QAction::triggered, [this]() { - auto file = QFileDialog::getOpenFileName(this, "Open", QString::fromStdString(raco::core::PathManager::getCachedPath(raco::core::PathManager::FolderTypeKeys::Project).string()), "Ramses Composer Assembly (*.rca)"); + auto file = QFileDialog::getOpenFileName(this, "Open", QString::fromStdString(raco::core::PathManager::getCachedPath(raco::core::PathManager::FolderTypeKeys::Project).string()), "Ramses Composer Assembly (*.rca);; All files (*.*)"); if (file.size() > 0) { openProject(file); } @@ -375,7 +442,7 @@ MainWindow::MainWindow(raco::application::RaCoApplication* racoApplication, raco QObject::connect(ui->actionNewUndoView, &QAction::triggered, [this]() { createAndAddUndoView(racoApplication_, EditorObject::normalizedObjectID("").c_str(), &racoApplication_->activeRaCoProject(), this, dockManager_); }); QObject::connect(ui->actionNewErrorView, &QAction::triggered, [this]() { createAndAddErrorView(this, racoApplication_, EditorObject::normalizedObjectID("").c_str(), dockManager_, treeDockManager_, logViewModel_); }); QObject::connect(ui->actionNewLogView, &QAction::triggered, [this]() { createAndAddLogView(this, racoApplication_, EditorObject::normalizedObjectID("").c_str(), dockManager_, treeDockManager_, logViewModel_); }); - QObject::connect(ui->actionRestoreDefaultLayout, &QAction::triggered, [this](){ + QObject::connect(ui->actionRestoreDefaultLayout, &QAction::triggered, [this]() { resetDockManager(); createInitialWidgets(this, *rendererBackend_, racoApplication_, dockManager_, treeDockManager_); }); @@ -404,10 +471,8 @@ MainWindow::MainWindow(raco::application::RaCoApplication* racoApplication, raco saveDockManagerCustomLayouts(); }); + QObject::connect(ui->actionTracePlayer, &QAction::triggered, [this]() { createAndAddTracePlayer(this, dockManager_, &racoApplication_->activeRaCoProject().tracePlayer()); }); QObject::connect(ui->actionProjectSettings, &QAction::triggered, [this]() { createAndAddProjectSettings(this, EditorObject::normalizedObjectID("").c_str(), dockManager_, &racoApplication_->activeRaCoProject(), racoApplication_->dataChangeDispatcher(), racoApplication_->activeRaCoProject().commandInterface()); }); - QObject::connect(ui->actionEnableRuntimeScriptPreview, &QAction::toggled, [this](const bool toggled) { - racoApplication_->activeRaCoProject().project()->settings()->runTimer_ = toggled; - }); configureDebugActions(ui, this, racoApplication_->activeRaCoProject().commandInterface()); // Help actions @@ -418,6 +483,8 @@ MainWindow::MainWindow(raco::application::RaCoApplication* racoApplication, raco QObject::connect(this, &MainWindow::objectFocusRequestedForTreeDock, &treeDockManager_, &raco::object_tree::view::ObjectTreeDockManager::selectObjectAcrossAllTreeDocks); + updateProjectSavedConnection(); + restoreSettings(); restoreCachedLayout(); @@ -540,14 +607,7 @@ void MainWindow::openProject(const QString& file) { updateApplicationTitle(); updateActiveProjectConnection(); - - if (racoApplication_->activeRaCoProject().project()->settings()->enableTimerFlag_.asBool() == true) { - ui->menuDebug->addAction(ui->actionEnableRuntimeScriptPreview); - ui->actionEnableRuntimeScriptPreview->setChecked(racoApplication_->activeRaCoProject().project()->settings()->runTimer_.asBool()); - } else { - ui->menuDebug->removeAction(ui->actionEnableRuntimeScriptPreview); - racoApplication_->activeRaCoProject().project()->settings()->runTimer_ = false; - } + updateProjectSavedConnection(); } MainWindow::~MainWindow() { @@ -570,8 +630,6 @@ bool MainWindow::saveActiveProject() { } else { std::string errorMsg; if (racoApplication_->activeRaCoProject().save(errorMsg)) { - recentFileMenu_->addRecentFile(racoApplication_->activeProjectPath().c_str()); - updateApplicationTitle(); return true; } else { updateApplicationTitle(); @@ -595,10 +653,8 @@ bool MainWindow::saveAsActiveProject() { if (!newPath.endsWith(".rca")) newPath += ".rca"; std::string errorMsg; if (racoApplication_->activeRaCoProject().saveAs(newPath, errorMsg, setProjectName)) { - recentFileMenu_->addRecentFile(racoApplication_->activeProjectPath().c_str()); - updateActiveProjectConnection(); - updateApplicationTitle(); + updateProjectSavedConnection(); return true; } else { updateApplicationTitle(); @@ -612,7 +668,7 @@ bool MainWindow::saveAsActiveProject() { void MainWindow::importScene() { auto sceneFolder = raco::core::PathManager::getCachedPath(raco::core::PathManager::FolderTypeKeys::Mesh, racoApplication_->activeProjectFolder()); - auto filePath = QFileDialog::getOpenFileName(this, "Load Asset File", QString::fromStdString(sceneFolder.string()), "glTF files (*.gltf *.glb)"); + auto filePath = QFileDialog::getOpenFileName(this, "Load Asset File", QString::fromStdString(sceneFolder.string()), "glTF files (*.gltf *.glb);; All files (*.*)"); if (!filePath.isEmpty()) { MeshDescriptor meshDesc; meshDesc.absPath = filePath.toStdString(); @@ -717,6 +773,8 @@ void MainWindow::regenerateLayoutDocks(const RaCoDockManager::LayoutDocks& docks createAndAddErrorView(this, racoApplication_, dockNameCString, dockManager_, treeDockManager_, logViewModel_); } else if (savedDockType == DockWidgetTypes::LOG_VIEW) { createAndAddLogView(this, racoApplication_, dockNameCString, dockManager_, treeDockManager_, logViewModel_); + } else if (savedDockType == DockWidgetTypes::TRACE_PLAYER) { + createAndAddTracePlayer(this, dockManager_, &racoApplication_->activeRaCoProject().tracePlayer()); } else { assert(false && "Unknown Dock Type detected"); } @@ -737,6 +795,14 @@ void MainWindow::updateActiveProjectConnection() { } } +void MainWindow::updateProjectSavedConnection() { + QObject::disconnect(projectSavedConnection_); + projectSavedConnection_ = QObject::connect(&racoApplication_->activeRaCoProject(), &raco::application::RaCoProject::projectSuccessfullySaved, [this]() { + recentFileMenu_->addRecentFile(racoApplication_->activeProjectPath().c_str()); + updateApplicationTitle(); + }); +} + void MainWindow::focusToObject(const QString& objectID) { if (treeDockManager_.getTreeDockAmount() != 0 && treeDockManager_.docksContainObject(objectID)) { Q_EMIT objectFocusRequestedForTreeDock(objectID); diff --git a/EditorApp/mainwindow.h b/EditorApp/mainwindow.h index ff31baee..a26979f6 100644 --- a/EditorApp/mainwindow.h +++ b/EditorApp/mainwindow.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -49,6 +49,7 @@ class MainWindow : public QMainWindow { static inline const char* UNDO_STACK{"Undo Stack"}; static inline const char* ERROR_VIEW{"Error View"}; static inline const char* LOG_VIEW{"Log View"}; + static inline const char* TRACE_PLAYER{"Trace Player"}; }; explicit MainWindow( @@ -84,6 +85,7 @@ protected Q_SLOTS: void importScene(); void resetDockManager(); void updateActiveProjectConnection(); + void updateProjectSavedConnection(); Q_SIGNALS: void viewportChanged(const QSize& sceneSize); @@ -100,7 +102,10 @@ protected Q_SLOTS: raco::object_tree::view::ObjectTreeDockManager treeDockManager_; raco::common_widgets::TimingsModel timingsModel_{this}; QMetaObject::Connection activeProjectFileConnection_; + QMetaObject::Connection projectSavedConnection_; raco::common_widgets::LogViewModel* logViewModel_; + std::map pythonScriptCache_; + std::map pythonScriptArgumentCache_; int renderTimerId_ = 0; }; diff --git a/EditorApp/mainwindow.ui b/EditorApp/mainwindow.ui index 2c63eebb..bd57a51b 100644 --- a/EditorApp/mainwindow.ui +++ b/EditorApp/mainwindow.ui @@ -20,7 +20,7 @@ 0 0 400 - 21 + 22 @@ -35,6 +35,8 @@ + + @@ -56,7 +58,7 @@ - Saved Layouts + Saved &Layouts @@ -77,6 +79,7 @@ + @@ -130,6 +133,11 @@ &Preferences + + + Run S&cript... + + &Quit @@ -185,6 +193,11 @@ New &Error View + + + &Trace Player + + Project &Settings @@ -205,27 +218,19 @@ &About... - - - true - - - Enable time_ms property preview - - - Restore Default Layout + Restore &Default Layout - Manage Layouts... + &Manage Layouts... - Save Current Layout... + &Save Current Layout... diff --git a/EditorApp/versiondialog.cpp b/EditorApp/versiondialog.cpp index f22e5eb1..252628ad 100644 --- a/EditorApp/versiondialog.cpp +++ b/EditorApp/versiondialog.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/EditorApp/versiondialog.h b/EditorApp/versiondialog.h index e7b2f55e..bbb14331 100644 --- a/EditorApp/versiondialog.h +++ b/EditorApp/versiondialog.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/HeadlessApp/CMakeLists.txt b/HeadlessApp/CMakeLists.txt index 22981c40..41a4fd11 100644 --- a/HeadlessApp/CMakeLists.txt +++ b/HeadlessApp/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/HeadlessApp/main.cpp b/HeadlessApp/main.cpp index f5b07e43..a4ec5147 100644 --- a/HeadlessApp/main.cpp +++ b/HeadlessApp/main.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -44,7 +44,7 @@ public Q_SLOTS: std::unique_ptr app; try { - app = std::make_unique(backend, raco::application::RaCoApplicationLaunchSettings{projectFile_, false, true}); + app = std::make_unique(backend, raco::application::RaCoApplicationLaunchSettings{projectFile_, false, true, false}); } catch (const raco::application::FutureFileVersion& error) { LOG_ERROR(raco::log_system::COMMON, "File load error: project file was created with newer file version {} but current file version is {}.", error.fileVersion_, raco::serialization::RAMSES_PROJECT_FILE_VERSION); app.reset(); @@ -71,31 +71,7 @@ public Q_SLOTS: pos_argv_cp.emplace_back(s.c_str()); } - if (raco::python_api::preparePythonEnvironment(QCoreApplication::applicationFilePath().toStdWString())) { - py::scoped_interpreter pyGuard{true, static_cast(pos_argv_cp.size()), pos_argv_cp.data()}; - - raco::python_api::setup(app.get()); - LOG_INFO(raco::log_system::COMMON, "running python script {}", pythonScriptPath_.toStdString()); - try { - py::eval_file(pythonScriptPath_.toStdString().c_str()); - } catch (py::error_already_set& e) { - if (e.matches(PyExc_SystemExit)) { - exitCode_ = py::cast(e.value().attr("code")); - LOG_ERROR(raco::log_system::COMMON, "Exit called from Python: exit code '{}'", exitCode_); - } else { - LOG_ERROR(raco::log_system::COMMON, "Python exception:\n{}", e.what()); - exitCode_ = 1; - } - } catch (std::exception& e) { - LOG_ERROR(raco::log_system::COMMON, "Error thrown in Python script:\n{}", e.what()); - // TODO exit code - // how do we get here? - // need a test - } - } else { - LOG_ERROR(raco::log_system::COMMON, "Failed to prepare the Python environment."); - exitCode_ = 1; - } + exitCode_ = raco::python_api::runPythonScript(app.get(), QCoreApplication::applicationFilePath().toStdWString(), pythonScriptPath_.toStdString(), pos_argv_cp); } else if (!exportPath_.isEmpty()) { QString ramsesPath = exportPath_ + "." + raco::names::FILE_EXTENSION_RAMSES_EXPORT; QString logicPath = exportPath_ + "." + raco::names::FILE_EXTENSION_LOGIC_EXPORT; @@ -269,17 +245,17 @@ int main(int argc, char* argv[]) { if (raco::utils::u8path(path.filePath().toStdString()).userHasReadAccess()) { pythonScriptPath = path.absoluteFilePath(); } else { - LOG_ERROR(raco::log_system::COMMON, "Python script file could not be read {}", path.filePath().toStdString()); + LOG_ERROR(raco::log_system::PYTHON, "Python script file could not be read {}", path.filePath().toStdString()); // TODO needs test exit(1); } } else { - LOG_ERROR(raco::log_system::COMMON, "Python script file not found {}", path.filePath().toStdString()); + LOG_ERROR(raco::log_system::PYTHON, "Python script file not found {}", path.filePath().toStdString()); exit(1); } } - LOG_INFO(raco::log_system::COMMON, "positional arguments = {}", parser.positionalArguments().join(", ").toStdString()); + LOG_INFO(raco::log_system::PYTHON, "positional arguments = {}", parser.positionalArguments().join(", ").toStdString()); Worker* task = new Worker(&a, projectFile, exportPath, pythonScriptPath, compressExport, parser.positionalArguments()); QObject::connect(task, &Worker::finished, &QCoreApplication::exit); diff --git a/HeadlessApp/tests/CMakeLists.txt b/HeadlessApp/tests/CMakeLists.txt index 7f00d39f..a3c41561 100644 --- a/HeadlessApp/tests/CMakeLists.txt +++ b/HeadlessApp/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/PyAPITests/CMakeLists.txt b/PyAPITests/CMakeLists.txt index ecd242dd..3768d133 100644 --- a/PyAPITests/CMakeLists.txt +++ b/PyAPITests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/PyAPITests/exit_code.py b/PyAPITests/exit_code.py index 703faf55..6c71774e 100644 --- a/PyAPITests/exit_code.py +++ b/PyAPITests/exit_code.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 # # This file is part of Ramses Composer -# (see https://github.com/GENIVI/ramses-composer). +# (see https://github.com/bmwcarit/ramses-composer). # # This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. # If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/PyAPITests/pyt_general.py b/PyAPITests/pyt_general.py index e5ee7954..65493b26 100644 --- a/PyAPITests/pyt_general.py +++ b/PyAPITests/pyt_general.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 # # This file is part of Ramses Composer -# (see https://github.com/GENIVI/ramses-composer). +# (see https://github.com/bmwcarit/ramses-composer). # # This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. # If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -282,6 +282,7 @@ def test_link_create_remove(self): self.assertEqual(link.start, lua.outputs.ovector3f) self.assertEqual(link.end, node.translation) self.assertTrue(link.valid) + self.assertFalse(link.weak) queried_link = raco.getLink(node.translation) self.assertEqual(link, queried_link) @@ -289,6 +290,25 @@ def test_link_create_remove(self): raco.removeLink(node.translation) self.assertEqual(raco.links(), []) + + def test_addLink_weak(self): + lua_start = raco.create("LuaScript", "start") + lua_start.uri = self.cwd() + R"/../resources/scripts/types-scalar.lua" + + lua_end = raco.create("LuaScript", "end") + lua_end.uri = self.cwd() + R"/../resources/scripts/types-scalar.lua" + + link_strong = raco.addLink(lua_start.outputs.ofloat, lua_end.inputs.float) + link_weak = raco.addLink(lua_end.outputs.ofloat, lua_start.inputs.float, True) + self.assertFalse(link_strong.weak) + self.assertTrue(link_weak.weak) + + self.assertEqual(len(raco.links()), 2) + queried_link_strong = raco.getLink(lua_end.inputs.float) + self.assertEqual(link_strong, queried_link_strong) + queried_link_weak = raco.getLink(lua_start.inputs.float) + self.assertEqual(link_weak, queried_link_weak) + def test_getLink_fail(self): node = raco.create("Node", "node") diff --git a/PyAPITests/python_exception.py b/PyAPITests/python_exception.py index 5ed8111d..52b4f200 100644 --- a/PyAPITests/python_exception.py +++ b/PyAPITests/python_exception.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 # # This file is part of Ramses Composer -# (see https://github.com/GENIVI/ramses-composer). +# (see https://github.com/bmwcarit/ramses-composer). # # This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. # If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/PyAPITests/run_test.py b/PyAPITests/run_test.py index a764115c..aaac85ee 100644 --- a/PyAPITests/run_test.py +++ b/PyAPITests/run_test.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 # # This file is part of Ramses Composer -# (see https://github.com/GENIVI/ramses-composer). +# (see https://github.com/bmwcarit/ramses-composer). # # This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. # If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/PyAPITests/use_pip.py b/PyAPITests/use_pip.py index 1698486a..775151ad 100644 --- a/PyAPITests/use_pip.py +++ b/PyAPITests/use_pip.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 # # This file is part of Ramses Composer -# (see https://github.com/GENIVI/ramses-composer). +# (see https://github.com/bmwcarit/ramses-composer). # # This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. # If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/PythonAPI.md b/PythonAPI.md index 8457a793..90e382c8 100644 --- a/PythonAPI.md +++ b/PythonAPI.md @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -30,17 +30,38 @@ The python interface currently allows access only to the active project. The act A few example scripts can be found in the 'python' folder in the installation zip file. +Any python output will be logged. + The Python environment used by RaCoHeadless is shipped with Ramses Composer, isolated from any Python installations on the system and can be found in the bin/python... folder. It is possible to use pip to install custom packages to that environment, for an example see the python/use_pip_to_install_module.py script. Please be aware that virtualenv or venv are known to cause problems if used with the RaCoHeadless Python environment - particularly in Linux. +# RaCoEditor Python API Reference + +The "-r" commandline option of the RaCoEditor application also allows to run non-interactive python scripts for the UI version of Ramses Composer. +The script will be run before the editor window appears. +To specify position arguments for the Python script, use "--" so filenames (before "--") can be separated from python arguments (after "--"). + +Examples: +* "RamsesComposer.exe -r script.py test.rca" will load test.rca, pass no parameters to python +* "RamsesComposer.exe -r script.py -- a b c" will load no project, pass 3 parameters to python +* "RamsesComposer.exe -r script.py test.rca -- a b c" will load test.rca, pass 3 parameters to python + +Aside from that, all information from the RaCoHeadless Python API Reference also applies here. + +While the editor window is open, a python script can also be run on the current project. +The menu bar option "File" -> "Run Script" will launch a "Run Script" dialog where a path to the script as well as command line arguments can be specified. +Scripts with functions that load or reset the current project are currently disabled in the "Run Script" dialog due to UI incompatibilities. + ## General Functions > reset() >> Create a new project which is empty except a newly created ProjectSettings object. +>> This function is currently disabled when using the "Run Dialog" script. > load(path) >> Load the project with the given `path` and replace the active project with it. +>> This function is currently disabled when using the "Run Dialog" script. > save(path) >> Save the active project under the given `path`. @@ -135,7 +156,7 @@ Read and write access to substructure of complex properties is performed as for Links are represented by LinkDescriptors. -The printed representation includes the property paths including the object names of both the start end endpoints of the link as well as the link validity flag, e.g. ``. +The printed representation includes the property paths including the object names of both the start end endpoints of the link as well as the link validity and weak flags, e.g. ``. ### Member variables @@ -148,6 +169,9 @@ The printed representation includes the property paths including the object name > valid >> The current link validity. Only valid links are created in the LogicEngine. Invalid links are kept for caching purposes and can become active if LuaScript properties change or if links on parent properties are changed. Link validity can not be set directly by the user. + +> weak +>> Flag indicating a weak link. The member variables of a LinkDescriptor can't be changed. Modification of links is only possible with the addLink and removeLink functions described below. @@ -173,8 +197,8 @@ The member variables of a LinkDescriptor can't be changed. Modification of links > getLink(property) >> Given a PropertyDescriptor this will return a LinkDescriptor if the property has a link ending on it or `None` if there is no link. -> addLink(start, end) ->> Creates a link between two properties given their PropertyDescriptors. +> addLink(start, end[, isWeak]) +>> Creates a link between two properties given their PropertyDescriptors. Weak links can be created using an optional boolean flag. By default strong link are created. > removeLink(end) >> Removes a link given the PropertyDescriptor of the link endpoint. diff --git a/README.md b/README.md index 8341e86b..7ad70000 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -12,7 +12,7 @@ If a copy of the MPL was not distributed with this file, You can obtain one at h ![](styles/ramses-composer-logo.png) The authoring tool for the RAMSES rendering ecosystem. -Find the [user manual here](https://github.com/GENIVI/ramses-composer-docs). +Find the [user manual here](https://github.com/bmwcarit/ramses-composer-docs). Find a broader overview of [the Ramses SDK here](https://ramses-sdk.readthedocs.io/). @@ -21,7 +21,7 @@ Find a broader overview of [the Ramses SDK here](https://ramses-sdk.readthedocs. To build Ramses Composer you first need to checkout and initialize it's dependencies: ```console -> git clone https://github.com/GENIVI/ramses-composer ramses-composer +> git clone https://github.com/bmwcarit/ramses-composer ramses-composer > cd ramses-composer \raco> git submodule update --init --recursive ``` @@ -181,7 +181,7 @@ This example will create the setup for having a working directory with the speci ## Third Party Components -The UI is based on [Qt](https://www.qt.io). Qt is used as Open Source under the LGPL 3 license in the form of unmodified dynamic libraries from Qt 5.15.2. You can find the [source code here](https://github.com/GENIVI/ramses-composer/releases/download/v0.8.1/qt-src-5.15.2.tgz). +The UI is based on [Qt](https://www.qt.io). Qt is used as Open Source under the LGPL 3 license in the form of unmodified dynamic libraries from Qt 5.15.2. You can find the [source code here](https://github.com/bmwcarit/ramses-composer/releases/download/v0.8.1/qt-src-5.15.2.tgz). Ramses Composer uses a number of third party libraries: diff --git a/components/CMakeLists.txt b/components/CMakeLists.txt index 1ac7fd7f..3f707afd 100644 --- a/components/CMakeLists.txt +++ b/components/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libApplication/CMakeLists.txt b/components/libApplication/CMakeLists.txt index 8e5c6a1f..401a7707 100644 --- a/components/libApplication/CMakeLists.txt +++ b/components/libApplication/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libApplication/include/application/ExternalProjectsStore.h b/components/libApplication/include/application/ExternalProjectsStore.h index fd02d389..2473685e 100644 --- a/components/libApplication/include/application/ExternalProjectsStore.h +++ b/components/libApplication/include/application/ExternalProjectsStore.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libApplication/include/application/RaCoApplication.h b/components/libApplication/include/application/RaCoApplication.h index f155977f..ddffb909 100644 --- a/components/libApplication/include/application/RaCoApplication.h +++ b/components/libApplication/include/application/RaCoApplication.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -39,11 +39,13 @@ struct RaCoApplicationLaunchSettings { QString initialProject{}; bool createDefaultScene{true}; bool enableRamsesTrace{false}; + bool runningInUI{false}; }; class RaCoApplication { public: explicit RaCoApplication(ramses_base::BaseEngineBackend& engine, const RaCoApplicationLaunchSettings& settings = {}); + ~RaCoApplication(); RaCoProject& activeRaCoProject(); const RaCoProject& activeRaCoProject() const; @@ -67,7 +69,6 @@ class RaCoApplication { std::string& outError, bool forceExportWithErrors = false); - void doOneLoop(); void resetSceneBackend(); @@ -87,6 +88,13 @@ class RaCoApplication { QString generateApplicationTitle() const; + bool isRunningInUI() const; + + // Take control of the time measuring inside the app. By default, RaCo will measure the elapsed wall time. By calling this function + // RaCo instead will use the time given by the lambda. The returned value is the elapsed time in milliseconds since the application + // was started and can never decrease. + void overrideTime(std::function getTime); + bool rendererDirty_ = false; private: @@ -109,8 +117,11 @@ class RaCoApplication { ExternalProjectsStore externalProjectsStore_; bool logicEngineNeedsUpdate_ = false; + bool runningInUI_ = false; std::chrono::high_resolution_clock::time_point startTime_; + + std::function getTime_; }; } // namespace raco::application diff --git a/components/libApplication/include/application/RaCoProject.h b/components/libApplication/include/application/RaCoProject.h index 146cb090..a00e4375 100644 --- a/components/libApplication/include/application/RaCoProject.h +++ b/components/libApplication/include/application/RaCoProject.h @@ -2,27 +2,31 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #pragma once +#include "components/DataChangeDispatcher.h" #include "components/MeshCacheImpl.h" #include "components/Naming.h" #include "core/CommandInterface.h" #include "core/Context.h" #include "core/Errors.h" #include "core/Project.h" -#include "core/Undo.h" #include "core/Serialization.h" +#include "core/Undo.h" #include "user_types/UserObjectFactory.h" #include #include #include -#include "components/DataChangeDispatcher.h" +#include +namespace raco::components { +class TracePlayer; +} namespace raco::application { class RaCoApplication; @@ -64,6 +68,7 @@ class RaCoProject : public QObject { raco::core::CommandInterface* commandInterface(); raco::core::UndoStack* undoStack(); raco::core::MeshCache* meshCache(); + raco::components::TracePlayer& tracePlayer(); QJsonDocument serializeProject(const std::unordered_map>& currentVersions); @@ -72,6 +77,7 @@ class RaCoProject : public QObject { Q_SIGNALS: void activeProjectFileChanged(); + void projectSuccessfullySaved(); private: // @exception ExtrefError @@ -104,6 +110,7 @@ class RaCoProject : public QObject { raco::core::MeshCache* meshCache_; raco::core::UndoStack undoStack_; raco::core::CommandInterface commandInterface_; + std::unique_ptr tracePlayer_; }; } // namespace raco::application diff --git a/components/libApplication/src/ExternalProjectsStore.cpp b/components/libApplication/src/ExternalProjectsStore.cpp index bd75d77c..c9fec6d3 100644 --- a/components/libApplication/src/ExternalProjectsStore.cpp +++ b/components/libApplication/src/ExternalProjectsStore.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libApplication/src/RaCoApplication.cpp b/components/libApplication/src/RaCoApplication.cpp index b28bff8c..a3806fd8 100644 --- a/components/libApplication/src/RaCoApplication.cpp +++ b/components/libApplication/src/RaCoApplication.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -13,16 +13,18 @@ #include "utils/u8path.h" +#include "core/Context.h" +#include "core/Handles.h" +#include "components/TracePlayer.h" +#include "core/Context.h" #include "core/PathManager.h" #include "core/Project.h" -#include "core/Context.h" +#include "core/ProjectMigration.h" #include "ramses_adaptor/SceneBackend.h" #include "ramses_base/BaseEngineBackend.h" #include "user_types/Animation.h" -#include "core/ProjectMigration.h" #include -#include "core/Handles.h" #ifdef OS_WINDOWS // see: https://doc.qt.io/qt-5/qfileinfo.html#ntfs-permissions @@ -42,9 +44,15 @@ RaCoApplication::RaCoApplication(ramses_base::BaseEngineBackend& engine, const R // Preferences need to be initalized before we have a fist initial project raco::components::RaCoPreferences::init(); + runningInUI_ = settings.runningInUI; + switchActiveRaCoProject(settings.initialProject, settings.createDefaultScene); } +RaCoApplication::~RaCoApplication() { + /* an implicit destructor would force users of RaCoApplication class to include the definition of SceneBackend (due to unique_ptr) */ +} + RaCoProject& RaCoApplication::activeRaCoProject() { return *activeProject_.get(); } @@ -163,7 +171,7 @@ bool RaCoApplication::exportProjectImpl(const std::string& ramsesExport, const s // Use JSON format for the metadata string to allow future extensibility // CAREFUL: only include data here which we are certain all users agree to have included in the exported files. metadata.setMetadataString(fmt::format( -R"___({{ + R"___({{ "generator" : "{}" }})___", QCoreApplication::applicationName().toStdString())); @@ -193,22 +201,19 @@ void RaCoApplication::doOneLoop() { } } - auto elapsedTime = std::chrono::high_resolution_clock::now() - startTime_; - auto elapsedMsec = std::chrono::duration_cast(elapsedTime).count(); - - auto activeProjectRunsTimer = activeRaCoProject().project()->settings()->runTimer_.asBool(); - if (activeProjectRunsTimer) { - auto loadedScripts = engine_->logicEngine().getCollection(); - for (auto* loadedScript : loadedScripts) { - if (loadedScript->getInputs()->hasChild("time_ms")) { - loadedScript->getInputs()->getChild("time_ms")->set(static_cast(elapsedMsec)); - } - } + int64_t elapsedMsec; + if (getTime_) { + elapsedMsec = getTime_(); + } else { + auto elapsedTime = std::chrono::high_resolution_clock::now() - startTime_; + elapsedMsec = std::chrono::duration_cast(elapsedTime).count(); } + activeProject_->tracePlayer().refresh(elapsedMsec); + auto dataChanges = activeProject_->recorder()->release(); dataChangeDispatcherEngine_->dispatch(dataChanges); - if (activeProjectRunsTimer || logicEngineNeedsUpdate_ || !dataChanges.getAllChangedObjects(true, true, true).empty()) { + if (logicEngineNeedsUpdate_ || !dataChanges.getAllChangedObjects(true, true, true).empty()) { if (!engine_->logicEngine().update()) { LOG_ERROR_IF(raco::log_system::RAMSES_BACKEND, !engine_->logicEngine().getErrors().empty(), "{}", LogicEngineErrors{engine_->logicEngine()}); } @@ -273,6 +278,14 @@ QString RaCoApplication::generateApplicationTitle() const { return windowTitle; } +bool RaCoApplication::isRunningInUI() const { + return runningInUI_; +} + +void RaCoApplication::overrideTime(std::function getTime) { + getTime_ = getTime; +} + core::ExternalProjectsStoreInterface* RaCoApplication::externalProjects() { return &externalProjectsStore_; } diff --git a/components/libApplication/src/RaCoProject.cpp b/components/libApplication/src/RaCoProject.cpp index 40585be0..674e7d6f 100644 --- a/components/libApplication/src/RaCoProject.cpp +++ b/components/libApplication/src/RaCoProject.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -24,6 +24,7 @@ #include "application/RaCoApplication.h" #include "components/RaCoPreferences.h" #include "components/RaCoNameConstants.h" +#include "components/TracePlayer.h" #include "core/ProjectMigration.h" #include "core/Serialization.h" #include "core/SerializationKeys.h" @@ -117,6 +118,8 @@ RaCoProject::RaCoProject(const QString& file, Project& p, EngineInterface* engin updateActiveFileListener(); } dirty_ = false; + + tracePlayer_ = std::make_unique(*project(), context_->uiChanges(), *undoStack()); } void RaCoProject::onAfterProjectPathChange(const std::string& oldPath, const std::string& newPath) { @@ -646,6 +649,7 @@ bool RaCoProject::save(std::string& outError) { dirty_ = false; LOG_INFO(raco::log_system::PROJECT, "Finished saving project to {}", path); + Q_EMIT projectSuccessfullySaved(); return true; } @@ -713,4 +717,8 @@ MeshCache* RaCoProject::meshCache() { return meshCache_; } +raco::components::TracePlayer& RaCoProject::tracePlayer() { + return *tracePlayer_; +} + } // namespace raco::application \ No newline at end of file diff --git a/components/libApplication/tests/CMakeLists.txt b/components/libApplication/tests/CMakeLists.txt index d2c1346b..6f874600 100644 --- a/components/libApplication/tests/CMakeLists.txt +++ b/components/libApplication/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libApplication/tests/RaCoApplication_test.cpp b/components/libApplication/tests/RaCoApplication_test.cpp index d7604636..4852b55b 100644 --- a/components/libApplication/tests/RaCoApplication_test.cpp +++ b/components/libApplication/tests/RaCoApplication_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -44,7 +44,6 @@ TEST_F(RaCoApplicationFixture, exportNewProject) { ASSERT_TRUE(success); } - TEST_F(RaCoApplicationFixture, exportDuckProject) { auto* commandInterface = application.activeRaCoProject().commandInterface(); diff --git a/components/libApplication/tests/RaCoProject_test.cpp b/components/libApplication/tests/RaCoProject_test.cpp index 17b14104..7591168c 100644 --- a/components/libApplication/tests/RaCoProject_test.cpp +++ b/components/libApplication/tests/RaCoProject_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -427,16 +427,6 @@ TEST_F(RaCoProjectFixture, idChange) { ASSERT_EQ(1024u, app.sceneBackend()->currentSceneIdValue()); } -TEST_F(RaCoProjectFixture, enableTimerFlagChange) { - RaCoApplication app{backend}; - const auto PROJECT_PATH = QString::fromStdString((test_path() / "project.rca").string()); - app.activeRaCoProject().commandInterface()->set({app.activeRaCoProject().project()->settings(), {"enableTimerFlag"}}, true); - std::string msg; - ASSERT_TRUE(app.activeRaCoProject().saveAs(PROJECT_PATH, msg)); - app.switchActiveRaCoProject(PROJECT_PATH); - ASSERT_EQ(app.activeRaCoProject().project()->settings()->enableTimerFlag_.asBool(), true); -} - TEST_F(RaCoProjectFixture, restoredLinkWorksInLogicEngine) { RaCoApplication app{backend}; auto start{app.activeRaCoProject().commandInterface()->createObject(raco::user_types::LuaScript::typeDescription.typeName, "start")}; diff --git a/components/libComponents/CMakeLists.txt b/components/libComponents/CMakeLists.txt index fb783c4e..60e53940 100644 --- a/components/libComponents/CMakeLists.txt +++ b/components/libComponents/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -22,6 +22,7 @@ add_library(libComponents include/components/QtFormatter.h include/components/RaCoNameConstants.h include/components/RaCoPreferences.h src/RaCoPreferences.cpp + include/components/TracePlayer.h src/TracePlayer.cpp ) target_include_directories(libComponents PUBLIC include/) target_link_libraries(libComponents diff --git a/components/libComponents/include/components/DataChangeDispatcher.h b/components/libComponents/include/components/DataChangeDispatcher.h index f371e5e0..55ef911b 100644 --- a/components/libComponents/include/components/DataChangeDispatcher.h +++ b/components/libComponents/include/components/DataChangeDispatcher.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/include/components/DebugInstanceCounter.h b/components/libComponents/include/components/DebugInstanceCounter.h index 54b09c84..33ae741c 100644 --- a/components/libComponents/include/components/DebugInstanceCounter.h +++ b/components/libComponents/include/components/DebugInstanceCounter.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/include/components/EditorObjectFormatter.h b/components/libComponents/include/components/EditorObjectFormatter.h index 9ce52643..c5021ee4 100644 --- a/components/libComponents/include/components/EditorObjectFormatter.h +++ b/components/libComponents/include/components/EditorObjectFormatter.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/include/components/FileChangeListenerImpl.h b/components/libComponents/include/components/FileChangeListenerImpl.h index 863121aa..21dbfa70 100644 --- a/components/libComponents/include/components/FileChangeListenerImpl.h +++ b/components/libComponents/include/components/FileChangeListenerImpl.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/include/components/FileChangeMonitorImpl.h b/components/libComponents/include/components/FileChangeMonitorImpl.h index 7a7d0bc2..ba280f60 100644 --- a/components/libComponents/include/components/FileChangeMonitorImpl.h +++ b/components/libComponents/include/components/FileChangeMonitorImpl.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/include/components/MeshCacheImpl.h b/components/libComponents/include/components/MeshCacheImpl.h index bb0270ad..3ae21f18 100644 --- a/components/libComponents/include/components/MeshCacheImpl.h +++ b/components/libComponents/include/components/MeshCacheImpl.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/include/components/Naming.h b/components/libComponents/include/components/Naming.h index 133797ed..8c11d161 100644 --- a/components/libComponents/include/components/Naming.h +++ b/components/libComponents/include/components/Naming.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/include/components/QtFormatter.h b/components/libComponents/include/components/QtFormatter.h index 990a1517..a8ae5d1c 100644 --- a/components/libComponents/include/components/QtFormatter.h +++ b/components/libComponents/include/components/QtFormatter.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/include/components/RaCoNameConstants.h b/components/libComponents/include/components/RaCoNameConstants.h index 1ebedcc3..362c4960 100644 --- a/components/libComponents/include/components/RaCoNameConstants.h +++ b/components/libComponents/include/components/RaCoNameConstants.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/include/components/RaCoPreferences.h b/components/libComponents/include/components/RaCoPreferences.h index 29c7c8b8..711f5554 100644 --- a/components/libComponents/include/components/RaCoPreferences.h +++ b/components/libComponents/include/components/RaCoPreferences.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/include/components/TracePlayer.h b/components/libComponents/include/components/TracePlayer.h new file mode 100644 index 00000000..b570811b --- /dev/null +++ b/components/libComponents/include/components/TracePlayer.h @@ -0,0 +1,130 @@ +/* + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of Ramses Composer + * (see https://github.com/bmwcarit/ramses-composer). + * + * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. + * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +#pragma once + +#include +#include +#include +#include +#include +#include + +class QJsonArray; +class QJsonObject; +class QJsonParseError; +class QJsonValue; + +namespace raco::core { +class UndoStack; +class DataChangeRecorder; +class Project; +class ValueHandle; +class EditorObject; +using SEditorObject = std::shared_ptr; +enum class ErrorLevel; +} // namespace raco::core + +namespace raco::components { +class TracePlayer { +public: + using timeInMilliSeconds = int64_t; + + enum class PlayerState { + Faulty = -1, + Init = 0, + Stopped = 1, + Playing = 2, + Paused = 3 + }; + + using OnStateChangeCallback = std::function; + using OnLuaUpdateCallback = std::function; + using OnLogUpdateCallback = std::function&, core::ErrorLevel)>; + + ~TracePlayer(); + TracePlayer() = delete; + TracePlayer(const TracePlayer&) = delete; + TracePlayer& operator=(const TracePlayer&) = delete; + TracePlayer(TracePlayer&&) = delete; + TracePlayer& operator=(TracePlayer&&) = delete; + TracePlayer(core::Project& project, core::DataChangeRecorder& uiChanges, core::UndoStack& undoStack); + + void setCallbacks( + const OnStateChangeCallback& onStateChange = [](PlayerState) {}, + const OnLuaUpdateCallback& onLuaUpdate = [](int) {}, + const OnLogUpdateCallback& onLogChange = [](const std::vector&, core::ErrorLevel) {}); + void refresh(timeInMilliSeconds elapsedTimeSinceStart); + std::string const& getFilePath() const; + int getTraceLen() const; + PlayerState getState() const; + int getIndex() const; + int getTimestamp() const; + bool getLoopingStatus() const; + void clearLog(); + std::unordered_map const& getLog() const; + + /// player playback controls + QJsonArray const* const loadTrace(const std::string& fileName); + void play(); + void pause(); + void stop(); + void step(int step); + void jumpTo(int newIndex); + void setSpeed(double speed); + void toggleLooping(); + + core::DataChangeRecorder& uiChanges() const; + +private: + raco::core::SEditorObject findLua(const std::string& luaObjName, bool logErrors = true); + QJsonObject parseFrame(int frameIndex); + QJsonObject parseSceneData(const QJsonObject& qjFrame, int frameIndex = -1); + QJsonObject parseTracePlayerData(const QJsonObject& qjFrame, int frameIndex = -1); + int parseTimestamp(const QJsonObject& qjTracePlayerData, int frameIndex = -1); + bool parseFrameAndUpdateLua(); + void updateLua(const QJsonValue& jsonChild, std::vector& keysChain, const raco::core::SEditorObject& lua); + void updateLuaProperty(const raco::core::SEditorObject& lua, const std::vector& keysChain, const QJsonValue& jsonChild, bool logErrors = true); + std::string streamKeysChain(const std::vector& keysChain) const; + void qjParseErrMsg(const QJsonParseError& qjParseError, const std::string& fileName); + void clearError(const std::string& msg, core::ErrorLevel level); + void reset(); + void failSafe(); + bool isLastFrame() const; + timeInMilliSeconds getNextTs(); + void setState(PlayerState newState); + void addError(const std::string& msg, core::ErrorLevel level); + void lockLua(); + void makeFramesConsistent(); + QJsonValue deepAddMissingProperties(const QJsonValue& qjPrev, const QJsonValue& qjCurr, std::vector& propertyPath); + QJsonValue buildFullFrameFromLua(std::unordered_set const& sceneLuaList); + QJsonValue deepCopyFromLua(raco::core::ValueHandle const& luaValHandle); + void rebuildFrameSceneData(int index, const QJsonValue& qjPrev, const QJsonValue& qjCurr); + + class CodeControlledObjectExtension; + std::unique_ptr racoCoreInterface_; + std::unique_ptr qjRoot_; + PlayerState state_{PlayerState::Init}; + double speed_{1.0}; + int playbackIndex_{0}; + OnStateChangeCallback onStateChange_{nullptr}; + OnLuaUpdateCallback onLuaUpdate_{nullptr}; + OnLogUpdateCallback onLogChange_{nullptr}; + std::unordered_map tracePlayerLog_{}; + std::vector logReport_{}; + core::ErrorLevel highestCriticality_; + timeInMilliSeconds refreshTs_{0}; + timeInMilliSeconds playbackTs_{0}; + timeInMilliSeconds timeOfLastRefresh_{0}; + bool looping_{false}; + std::string filePath_{}; + std::vector framesTsList_{}; +}; + +} // namespace raco::components diff --git a/components/libComponents/src/DataChangeDispatcher.cpp b/components/libComponents/src/DataChangeDispatcher.cpp index b1d68228..ec9dc575 100644 --- a/components/libComponents/src/DataChangeDispatcher.cpp +++ b/components/libComponents/src/DataChangeDispatcher.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/src/FileChangeListenerImpl.cpp b/components/libComponents/src/FileChangeListenerImpl.cpp index 13319f51..81ec01bd 100644 --- a/components/libComponents/src/FileChangeListenerImpl.cpp +++ b/components/libComponents/src/FileChangeListenerImpl.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/src/MeshCacheImpl.cpp b/components/libComponents/src/MeshCacheImpl.cpp index 1dd812e3..54dd088e 100644 --- a/components/libComponents/src/MeshCacheImpl.cpp +++ b/components/libComponents/src/MeshCacheImpl.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/src/RaCoPreferences.cpp b/components/libComponents/src/RaCoPreferences.cpp index 349fce38..6d397f6b 100644 --- a/components/libComponents/src/RaCoPreferences.cpp +++ b/components/libComponents/src/RaCoPreferences.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/src/TracePlayer.cpp b/components/libComponents/src/TracePlayer.cpp new file mode 100644 index 00000000..2d4fce3b --- /dev/null +++ b/components/libComponents/src/TracePlayer.cpp @@ -0,0 +1,976 @@ +/* + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of Ramses Composer + * (see https://github.com/bmwcarit/ramses-composer). + * + * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. + * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +#include "components/TracePlayer.h" + +#include "core/CodeControlledPropertyModifier.h" +#include "core/CoreAnnotations.h" +#include "core/EditorObject.h" +#include "core/ErrorItem.h" +#include "core/Handles.h" +#include "core/PrefabOperations.h" +#include "core/Queries.h" +#include "core/Undo.h" +#include "log_system/log.h" +#include "user_types/LuaInterface.h" +#include "user_types/LuaScript.h" + +#include +#include +#include +#include +#include +#include + +#include +#include + +namespace raco::components { +class TracePlayer::CodeControlledObjectExtension { +public: + CodeControlledObjectExtension(core::Project& project, core::DataChangeRecorder& uiChanges, core::UndoStack& undoStack) : project_(project), uiChanges_(uiChanges), undoStack_(undoStack) {} + /** + * @note Marking an editor object as "code controlled" makes it read-only for the user and it becomes possible to call + * the setCodeControlledValueHandle functions which allow changing the objects without changing the undo stack. + * Once a set of objects is code controlled, it is an error to call lockCodeControlledObjects until the set of objects + * has been released with unlockCodeControlledObjects(). + * When the objects are released, their values are restored to the current state on the undo stack - + * that is any changes done via setCodeControlledValueHandle are reverted. + * If a code controlled object is deleted, it is automatically released. + */ + void lockCodeControlledObjects(core::SEditorObjectSet const& editorObjs) { + project_.lockCodeCtrldObjs(editorObjs); + for (auto const& object : editorObjs) { + uiChanges_.recordValueChanged(core::ValueHandle(object)); + } + codeCtrldObjs_ = editorObjs; + } + + void unlockCodeControlledObjects() { + const auto unlockedObjs{project_.unlockCodeCtrldObjs(codeCtrldObjs_)}; + codeCtrldObjs_.clear(); + + for (auto const& editorObj : unlockedObjs) { + if (editorObj) { + uiChanges_.recordValueChanged(core::ValueHandle(editorObj)); + } + } + // Restore the previously locked objects to the state they had before they were locked. + undoStack_.setIndex(undoStack_.getIndex(), true); + } + + /** + * @note setCodeControlledValueHandle() can only be called on locked objects and + * needs to be cyclically called for locked objects to keep all controlled + * properties persistent; a user Undo will overwrite properties values. + */ + template + void setCodeControlledValueHandle(core::ValueHandle const& handle, T const& value); + + core::Project const& project() const { + return project_; + } + + core::DataChangeRecorder& uiChanges() const { + return uiChanges_; + } + +private: + core::Project& project_; + core::DataChangeRecorder& uiChanges_; + core::UndoStack& undoStack_; + core::SEditorObjectSet codeCtrldObjs_; +}; + +template +void TracePlayer::CodeControlledObjectExtension::setCodeControlledValueHandle(core::ValueHandle const& handle, T const& value) { + if (!handle) { + return; + } + if (!project_.isCodeCtrldObj(handle.rootObject())) { + assert(false && "Trying to update a Lua which is no more uncontrolled by TracePlayer!"); + return; + } + core::CodeControlledPropertyModifier::setPrimitive(handle, value, uiChanges_); +} + +core::DataChangeRecorder& TracePlayer::uiChanges() const { + return racoCoreInterface_->uiChanges(); +} + +constexpr auto CriticalToString(core::ErrorLevel e) { + switch (e) { + case core::ErrorLevel::INFORMATION: + return "INFO"; + case core::ErrorLevel::WARNING: + return "WARNING"; + case core::ErrorLevel::ERROR: + return "ERROR"; + default: + assert(false && "Undefined Criticality Level!"); + return "Undefined Criticality Level!"; + } +} + +TracePlayer::TracePlayer(core::Project& project, core::DataChangeRecorder& uiChanges, core::UndoStack& undoStack) : racoCoreInterface_{std::make_unique(project, uiChanges, undoStack)}, highestCriticality_{core::ErrorLevel::NONE} { +} + +TracePlayer::~TracePlayer() = default; + +void TracePlayer::setCallbacks( + const OnStateChangeCallback& onStateChange, + const OnLuaUpdateCallback& onLuaUpdate, + const OnLogUpdateCallback& onLogChange) { + onStateChange_ = onStateChange; + onLuaUpdate_ = onLuaUpdate; + onLogChange_ = onLogChange; +} + +/// @todo when it goes into Faulty after at one successful load, then user Clear errors, make sure you update the path with the previous trace again. +/// @todo pass faulty error messages to failSafe +/// @todo switch to fmt::format using #include +QJsonArray const* const TracePlayer::loadTrace(const std::string& fileName) { + /// validate not empty file path + if (fileName.empty()) { + addError("Could not open file! File path is empty.", core::ErrorLevel::ERROR); + failSafe(); + return nullptr; + } + + /// validate extension + const auto FILE_EXTENSION{".rctrace"}; + if (fileName.compare(fileName.length() - std::string(FILE_EXTENSION).length(), std::string(FILE_EXTENSION).length(), FILE_EXTENSION)) { + addError("Could not open file! Invalid file extension, expected .rctrace ( filePath: " + fileName + " )", core::ErrorLevel::ERROR); + failSafe(); + return nullptr; + } + + /// open trace file and validate its format + QFile qTraceFile(QString::fromStdString(fileName)); + if (!qTraceFile.open(QIODevice::ReadOnly | QIODevice::Text)) { + addError("Could not open file! Invalid file format ( filePath: " + fileName + " )", core::ErrorLevel::ERROR); + failSafe(); + return nullptr; + } + + /// parse trace QFile + QJsonParseError qjParseError{}; + const auto qjDocument{QJsonDocument::fromJson(qTraceFile.readAll(), &qjParseError)}; + qTraceFile.close(); + + /// validate trace QJsonDocument format + if (qjParseError.error) { + qjParseErrMsg(qjParseError, fileName); + failSafe(); + return nullptr; + } + + /// validate root type + if (!qjDocument.isArray()) { + addError("Invalid trace file! Root member must be an JSON array representing the list of frames. For more details, refer to Ramses Composer documentation. ( filePath: " + fileName + " )", core::ErrorLevel::ERROR); + if (qjParseError.error) { + qjParseErrMsg(qjParseError, fileName); + } + failSafe(); + return nullptr; + } + + /// valid file loaded + filePath_ = fileName; + setState(PlayerState::Init); + speed_ = 1.0; + framesTsList_.clear(); + + /// parse root array + qjRoot_ = std::make_unique(qjDocument.array()); + + clearLog(); + + /// match scene Lua objects and latch properties if they are missing in consecutive frames + makeFramesConsistent(); + + /// initialize traceplayer + stop(); + + return qjRoot_.get(); +} + +void TracePlayer::qjParseErrMsg(const QJsonParseError& qjParseError, const std::string& fileName) { + std::string errorMsg{"Invalid trace file >> Parsing error! "}; + switch (qjParseError.error) { + case QJsonParseError::UnterminatedObject: + errorMsg += "An object is not correctly terminated with a closing curly bracket"; + break; + case QJsonParseError::MissingNameSeparator: + errorMsg += "A comma separating different items is missing"; + break; + case QJsonParseError::UnterminatedArray: + errorMsg += "The array is not correctly terminated with a closing square bracket"; + break; + case QJsonParseError::MissingValueSeparator: + errorMsg += "A colon separating keys from values inside objects is missing"; + break; + case QJsonParseError::IllegalValue: + errorMsg += "The value is illegal"; + break; + case QJsonParseError::TerminationByNumber: + errorMsg += "The input stream ended while parsing a number"; + break; + case QJsonParseError::IllegalNumber: + errorMsg += "The number is not well formed"; + break; + case QJsonParseError::IllegalEscapeSequence: + errorMsg += "An illegal escape sequence occurred in the input"; + break; + case QJsonParseError::IllegalUTF8String: + errorMsg += "An illegal UTF8 sequence occurred in the input"; + break; + case QJsonParseError::UnterminatedString: + errorMsg += "A string wasn't terminated with a quote"; + break; + case QJsonParseError::MissingObject: + errorMsg += "An object was expected but couldn't be found"; + break; + case QJsonParseError::DeepNesting: + errorMsg += "The JSON document is too deeply nested for the parser to parse it"; + break; + case QJsonParseError::DocumentTooLarge: + errorMsg += "The JSON document is too large for the parser to parse it"; + break; + case QJsonParseError::GarbageAtEnd: + errorMsg += "The parsed document contains additional garbage characters at the end"; + break; + default: + errorMsg += "Undefined parse error"; + break; + } + errorMsg += " ( filePath: " + fileName + " >> offset: " + std::to_string(qjParseError.offset) + " )"; + addError(errorMsg, core::ErrorLevel::ERROR); +} + +QJsonValue TracePlayer::deepAddMissingProperties(const QJsonValue& qjPrev, const QJsonValue& qjCurrent, std::vector& propertyPath) { + if (qjCurrent.type() == QJsonValue::Object) { + auto qjCurrObj{qjCurrent.toObject()}; + const auto qjPrevObj{qjPrev.toObject()}; + + /// add missing properties to current frame + for (auto qjPrevItr{qjPrevObj.constBegin()}; qjPrevItr != qjPrevObj.constEnd(); ++qjPrevItr) { + const auto propName{qjPrevItr.key()}; + const auto qjCurrItr{qjCurrObj.find(propName)}; + propertyPath.push_back(propName.toStdString()); + if (qjCurrItr != qjCurrObj.end()) { + qjCurrObj[qjCurrItr.key()] = deepAddMissingProperties(qjPrevItr.value(), qjCurrItr.value(), propertyPath); + } else { + qjCurrObj.insert(propName, qjPrevItr.value()); + } + propertyPath.pop_back(); + } + + /// delete properties which are not in the scene + auto qjCurrItr{qjCurrObj.begin()}; + while (qjCurrItr != qjCurrObj.end()) { + if (qjPrevObj.find(qjCurrItr.key()) == qjPrevObj.constEnd()) { + const auto propPathStream{streamKeysChain(propertyPath)}; + if (propertyPath.size() == 0) { + addError("Lua is not available in the scene! Lua and its properties are disregarded from trace ( luaObjName: " + propPathStream + qjCurrItr.key().toStdString() + " )", core::ErrorLevel::WARNING); + } else if (!qjCurrItr->isUndefined() && !qjCurrItr->isNull()) { + addError("Lua property was not found in the scene! Property is disregarded from trace ( propName: " + propPathStream + "->" + qjCurrItr.key().toStdString() + " )", core::ErrorLevel::WARNING); + } else { + addError("Unexpected JSON type! ( propName: " + qjCurrItr.key().toStdString() + " )", core::ErrorLevel::ERROR); + } + qjCurrItr = qjCurrObj.erase(qjCurrItr); + } else { + ++qjCurrItr; + } + } + + return qjCurrObj; + } else { + return qjCurrent; + } +} + +void TracePlayer::makeFramesConsistent() { + std::unordered_set sceneLuaList; + for (int frameIndex{0}; frameIndex < getTraceLen(); ++frameIndex) { + const auto qjSceneData{parseSceneData(parseFrame(frameIndex))}; + for (auto itr{qjSceneData.constBegin()}; itr != qjSceneData.constEnd(); ++itr) { + if (const auto lua{findLua(itr.key().toStdString(), false)}) { + sceneLuaList.emplace(lua); + } + } + framesTsList_.emplace_back(parseTimestamp(parseTracePlayerData(parseFrame(frameIndex)))); + } + + if (sceneLuaList.empty()) { + return; + } + + rebuildFrameSceneData(0, buildFullFrameFromLua(sceneLuaList), parseSceneData(parseFrame(0))); + for (int frameIndex{1}; frameIndex < getTraceLen(); ++frameIndex) { + rebuildFrameSceneData(frameIndex, parseSceneData(parseFrame(frameIndex - 1)), parseSceneData(parseFrame(frameIndex))); + } +} + +void TracePlayer::rebuildFrameSceneData(int index, const QJsonValue& qjPrev, const QJsonValue& qjCurr) { + auto qjFrameObj{parseFrame(index)}; + std::vector propertyPath; + qjFrameObj["SceneData"] = deepAddMissingProperties(qjPrev, qjCurr, propertyPath); + (*qjRoot_)[index] = qjFrameObj; +} + +QJsonValue TracePlayer::deepCopyFromLua(raco::core::ValueHandle const& luaValHandle) { + switch (luaValHandle.type()) { + case data_storage::PrimitiveType::Struct: + case data_storage::PrimitiveType::Table: { + /// check whether it's a JSON array or object + const bool isArray{luaValHandle.query()}; + if (isArray) { + QJsonArray qjPropertyArr; + for (int arrElmntIndx{0}; arrElmntIndx < luaValHandle.size(); ++arrElmntIndx) { + qjPropertyArr.insert(arrElmntIndx, deepCopyFromLua(luaValHandle[arrElmntIndx])); + } + return qjPropertyArr; + } else { + QJsonObject qjPropertyObj; + for (int i{0}; i < luaValHandle.size(); ++i) { + const auto childPropertyValHandle = luaValHandle[i]; + const auto childPropName = childPropertyValHandle.getPropName(); + qjPropertyObj.insert(childPropName.c_str(), deepCopyFromLua(childPropertyValHandle)); + } + return qjPropertyObj; + } + } + + case data_storage::PrimitiveType::Bool: + return luaValHandle.asBool(); + + case data_storage::PrimitiveType::Int: + return luaValHandle.asInt(); + + case data_storage::PrimitiveType::Int64: + return static_cast(luaValHandle.asInt64()); + + case data_storage::PrimitiveType::Double: + return luaValHandle.asDouble(); + + case data_storage::PrimitiveType::String: + return luaValHandle.asString().c_str(); + + default: + assert("Unknown property type!" && false); + return {}; + } +} + +QJsonValue TracePlayer::buildFullFrameFromLua(std::unordered_set const& sceneLuaList) { + QJsonObject fullFrame; + for (const auto& lua : sceneLuaList) { + const auto luaFullFrame{deepCopyFromLua(core::ValueHandle(lua, {"inputs"}))}; + + if (luaFullFrame.isNull() || luaFullFrame.isUndefined()) { + assert("Something went wrong!" && false); + } else { + fullFrame.insert(lua->objectName().c_str(), luaFullFrame); + } + } + return fullFrame; +} + +std::string const& TracePlayer::getFilePath() const { + return filePath_; +} + +int TracePlayer::getTraceLen() const { + if (!qjRoot_) { + return -1; + } + return qjRoot_->size(); +} + +bool TracePlayer::isLastFrame() const { + return (playbackIndex_ == getTraceLen() - 1); +} + +TracePlayer::PlayerState TracePlayer::getState() const { + return state_; +} + +int TracePlayer::getIndex() const { + return playbackIndex_; +} + +int TracePlayer::getTimestamp() const { + return playbackTs_; +} + +auto TracePlayer::getNextTs() -> timeInMilliSeconds { + const auto nextIndex{playbackIndex_ + 1}; + return parseTimestamp(parseTracePlayerData(parseFrame(nextIndex))); +} + +bool TracePlayer::parseFrameAndUpdateLua() { + const auto qjFrame{parseFrame(playbackIndex_)}; + if (qjFrame.isEmpty()) { + return false; + } + + const auto qjSceneData{parseSceneData(qjFrame, playbackIndex_)}; + if (qjSceneData.isEmpty()) { + return false; + } + + const auto qjTracePlayerData{parseTracePlayerData(qjFrame, playbackIndex_)}; + if (qjTracePlayerData.isEmpty()) { + return false; + } + + const auto timestamp{parseTimestamp(qjTracePlayerData, playbackIndex_)}; + if (timestamp > 0) { + playbackTs_ = timestamp; + } else { + addError("Invalid timestamp! ( frameNr: " + std::to_string(playbackIndex_) + " )", core::ErrorLevel::ERROR); + return false; + } + + /// iterate over all scripts/features of the frame + int validLuaCount{0}; + for (auto itr{qjSceneData.constBegin()}; itr != qjSceneData.constEnd(); ++itr) { + if (const auto lua{findLua(itr.key().toStdString())}) { + if (!racoCoreInterface_->project().isCodeCtrldObj(lua)) { + addError("Lua was unlocked during playback! ( luaObjName: " + lua->objectName() + " )", core::ErrorLevel::ERROR); + return false; + } + ++validLuaCount; + std::vector keysChain{"inputs"}; + updateLua(itr.value(), keysChain, lua); + if (onLuaUpdate_) { + onLuaUpdate_(playbackIndex_); + } + } + } + + /// pause playback and log error if no Lua script is available + if (!validLuaCount) { + addError("No Lua script from trace was found in the scene!", core::ErrorLevel::ERROR); + return false; + } + + return true; +} + +QJsonObject TracePlayer::parseFrame(int frameIndex) { + if (frameIndex < 0 || frameIndex >= getTraceLen()) { + /// handle out of range jumps + addError("Frame index went out of range! ( frameNr: " + std::to_string(frameIndex) + " )", core::ErrorLevel::ERROR); + return QJsonObject(); + } + + /// parse and validate current frame + const auto qjFrameVal{qjRoot_->at(frameIndex)}; + if (qjFrameVal == QJsonValue::Undefined) { + addError("Frame entry was not found! ( frameNr: " + std::to_string(frameIndex) + " )", core::ErrorLevel::ERROR); + return QJsonObject(); + } + const QJsonObject qjFrame{qjFrameVal.toObject()}; + if (qjFrame.isEmpty()) { + addError("Invalid frame >> Empty frame! ( frameNr: " + std::to_string(frameIndex) + " )", core::ErrorLevel::ERROR); + return QJsonObject(); + } + + return qjFrame; +} + +QJsonObject TracePlayer::parseSceneData(const QJsonObject& qjFrame, int frameIndex) { + /// parse and validate SceneData + const auto qjSceneDataVal{qjFrame.value("SceneData")}; + if (qjSceneDataVal == QJsonValue::Undefined && frameIndex != -1) { + addError("Invalid frame >> SceneData not found! ( frameNr: " + std::to_string(frameIndex) + " )", core::ErrorLevel::ERROR); + return QJsonObject(); + } + + const auto qjSceneData{qjSceneDataVal.toObject()}; + if (qjSceneData.isEmpty() && frameIndex != -1) { + addError("Invalid frame >> Empty SceneData! ( frameNr: " + std::to_string(frameIndex) + " )", core::ErrorLevel::ERROR); + return QJsonObject(); + } + + return qjSceneData; +} + +QJsonObject TracePlayer::parseTracePlayerData(const QJsonObject& qjFrame, int frameIndex) { + if (qjFrame.isEmpty()) { + return QJsonObject(); + } + + /// parse and validate TracePlayerData + const auto qjTracePlayerDataVal{qjFrame.value("TracePlayerData")}; + if (qjTracePlayerDataVal == QJsonValue::Undefined && frameIndex != -1) { + addError("Invalid frame >> TracePlayerData was not found! ( frameNr: " + std::to_string(frameIndex) + " )", core::ErrorLevel::ERROR); + return QJsonObject(); + } + + const QJsonObject qjTracePlayerData{qjTracePlayerDataVal.toObject()}; + if (qjTracePlayerData.isEmpty() && frameIndex != -1) { + addError("Invalid frame >> Empty TracePlayerData! ( frameNr: " + std::to_string(frameIndex) + " )", core::ErrorLevel::ERROR); + return QJsonObject(); + } + + return qjTracePlayerData; +} + +int TracePlayer::parseTimestamp(const QJsonObject& qjTracePlayerData, int frameIndex) { + if (qjTracePlayerData.isEmpty()) { + return -1; + } + + /// parse and validate timestamp(ms) + const QJsonValue qjTimestampVal{qjTracePlayerData.value("timestamp(ms)")}; + if (qjTimestampVal == QJsonValue::Undefined && frameIndex != -1) { + addError("Invalid frame >> TracePlayerData::timestamp(ms) was not found! ( frameNr: " + std::to_string(frameIndex) + " )", core::ErrorLevel::ERROR); + return -1; + } + if (qjTimestampVal.type() != QJsonValue::Double && frameIndex != -1) { + addError("Invalid frame >> TracePlayerData::timestamp(ms) is not a number! ( frameNr: " + std::to_string(frameIndex) + " )", core::ErrorLevel::ERROR); + return -1; + } + + return qjTimestampVal.toInt(); +} + +core::SEditorObject TracePlayer::findLua(const std::string& luaObjName, bool logErrors) { + /// find matching LuaScript or LuaInterface + const auto isControllableLua{[&luaObjName](const raco::core::SEditorObject& o) { + return ( + ((o->objectName() == luaObjName) && (!raco::core::PrefabOperations::findContainingPrefab(o))) && + ((o->isType()) || + (o->isType() && (!core::PrefabOperations::findContainingPrefabInstance(o))))); + }}; + + const auto& instances{racoCoreInterface_->project().instances()}; + if (const auto itrLuaObj{std::find_if(instances.cbegin(), instances.cend(), isControllableLua)}; + itrLuaObj != instances.cend()) { + /// make sure we have only one Lua object with that name in the scene + if (const auto itrDuplicateLua{std::find_if(itrLuaObj + 1, instances.cend(), isControllableLua)}; + itrDuplicateLua != instances.cend()) { + if (logErrors) { + addError("Lua object was found more than once in the scene! ( luaObjName: " + luaObjName + " )", core::ErrorLevel::ERROR); + } + return nullptr; + } + + const auto lua{*itrLuaObj}; + + if (user_types::Queries::isReadOnly(lua)) { + if (logErrors) { + addError("Could not take control of Lua >> Object is read-only! ( luaObjName: " + lua->objectName() + " )", core::ErrorLevel::WARNING); + } + return nullptr; + } + clearError("Could not take control of Lua >> Object is read-only! ( luaObjName: " + lua->objectName() + " )", core::ErrorLevel::WARNING); + + clearError("Could not find Lua in the scene! ( luaObjName: " + luaObjName + " )", core::ErrorLevel::WARNING); + return lua; + } + + if (logErrors) { + addError("Could not find Lua in the scene! ( luaObjName: " + luaObjName + " )", core::ErrorLevel::WARNING); + } + return nullptr; +} + +void TracePlayer::updateLua(const QJsonValue& jsonChild, std::vector& keysChain, const core::SEditorObject& lua) { + const std::string keysStream{lua->objectName() + "->" + streamKeysChain(keysChain)}; + switch (jsonChild.type()) { + case QJsonValue::Null: { + addError("Invalid JSON value! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + break; + } + + case QJsonValue::Bool: + case QJsonValue::Double: + case QJsonValue::String: { + updateLuaProperty(lua, keysChain, jsonChild); + break; + } + case QJsonValue::Array: { + const auto nestedArr = jsonChild.toArray(); + uint key{1}; + for (auto itr{nestedArr.constBegin()}; itr != nestedArr.constEnd(); ++itr) { + keysChain.push_back(std::to_string(key)); + updateLua(*itr, keysChain, lua); + keysChain.pop_back(); + ++key; + } + break; + } + case QJsonValue::Object: { + const auto nestedObj = jsonChild.toObject(); + for (auto itr{nestedObj.constBegin()}; itr != nestedObj.constEnd(); ++itr) { + keysChain.push_back(itr.key().toStdString()); + updateLua(itr.value(), keysChain, lua); + keysChain.pop_back(); + } + break; + } + case QJsonValue::Undefined: + default: + /// trying to read an out of bounds value in an array or a non existent key in an object. + addError("Out of bounds JSON value! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + break; + } +} + +std::string TracePlayer::streamKeysChain(const std::vector& keysChain) const { + std::string keysStream{}; + int chainIndex{0}; + for (const auto& key : keysChain) { + ++chainIndex; + if (key == "inputs") { + continue; + } + keysStream.append(key); + if (chainIndex != keysChain.size()) { + keysStream.append("->"); + } + } + return keysStream; +} + +void TracePlayer::updateLuaProperty(const core::SEditorObject& lua, const std::vector& keysChain, const QJsonValue& jsonChild, bool logErrors) { + const std::string keysStream{lua->objectName() + "->" + streamKeysChain(keysChain)}; + + if (auto const valHandle{raco::core::ValueHandle{lua, keysChain}}) { + clearError("Property was not found! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + + if (core::Queries::linkState(racoCoreInterface_->project(), valHandle).current != core::Queries::CurrentLinkState::NOT_LINKED) { + if (logErrors) { + addError("Can not set linked property! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + } + return; + } + clearError("Can not set linked property! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + + switch (jsonChild.type()) { + case QJsonValue::Bool: { + if (valHandle.type() != raco::data_storage::PrimitiveType::Bool) { + if (logErrors) { + addError("Property type mismatch >> Expected a Bool! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + } + } else { + racoCoreInterface_->setCodeControlledValueHandle(valHandle, jsonChild.toBool()); + clearError("Property type mismatch >> Expected a Bool! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + } + break; + } + case QJsonValue::Double: { + if (valHandle.type() == raco::data_storage::PrimitiveType::Int) { + racoCoreInterface_->setCodeControlledValueHandle(valHandle, static_cast(jsonChild.toDouble())); + } else if (valHandle.type() == raco::data_storage::PrimitiveType::Double) { + racoCoreInterface_->setCodeControlledValueHandle(valHandle, jsonChild.toDouble()); + } else { + if (logErrors) { + addError("Property type mismatch >> Expected a Number! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + } + break; + } + clearError("Property type mismatch >> Expected a Number! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + break; + } + case QJsonValue::String: { + if (valHandle.type() != raco::data_storage::PrimitiveType::String) { + if (logErrors) { + addError("Property type mismatch >> Expected a String! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + } + } else { + racoCoreInterface_->setCodeControlledValueHandle(valHandle, jsonChild.toString().toStdString()); + clearError("Property type mismatch >> Expected a String! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + } + break; + } + default: + if (logErrors) { + addError("Property type mismatch >> Unexpected data type! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + } + break; + } + } else { + if (logErrors) { + addError("Property was not found! ( propPath: " + keysStream + " )", core::ErrorLevel::WARNING); + } + } +} + +void TracePlayer::addError(const std::string& msg, core::ErrorLevel level) { + if (tracePlayerLog_.insert(std::make_pair(msg, level)).second) { + const std::string errLvl = "[" + std::string(CriticalToString(level)) + "] "; + logReport_.push_back(errLvl + msg); + + switch (level) { + case core::ErrorLevel::ERROR: + LOG_ERROR(raco::log_system::TRACE_PLAYER, msg); + break; + case core::ErrorLevel::WARNING: + LOG_WARNING(raco::log_system::TRACE_PLAYER, msg); + break; + case core::ErrorLevel::INFORMATION: + LOG_INFO(raco::log_system::TRACE_PLAYER, msg); + break; + default: + break; + } + + if (highestCriticality_ < level) { + highestCriticality_ = level; + } + if (onLogChange_) { + onLogChange_(logReport_, highestCriticality_); + } + } +} + +void TracePlayer::clearError(const std::string& msg, core::ErrorLevel level) { + if (tracePlayerLog_.erase(msg)) { + const std::string errLvl = "[" + std::string(CriticalToString(level)) + "] "; + logReport_.erase(std::remove(logReport_.begin(), logReport_.end(), errLvl + msg)); + if (onLogChange_) { + onLogChange_(logReport_, highestCriticality_); + } + } +} + +void TracePlayer::clearLog() { + tracePlayerLog_.clear(); + logReport_.clear(); + highestCriticality_ = core::ErrorLevel::NONE; + if (onLogChange_) { + onLogChange_(logReport_, highestCriticality_); + } +} + +std::unordered_map const& TracePlayer::getLog() const { + return tracePlayerLog_; +} + +void TracePlayer::reset() { + playbackIndex_ = -1; + playbackTs_ = parseTimestamp(parseTracePlayerData(parseFrame(0))); + refreshTs_ = playbackTs_; +} + +void TracePlayer::refresh(timeInMilliSeconds elapsedTimeSinceStart) { + const timeInMilliSeconds refreshTime{elapsedTimeSinceStart - timeOfLastRefresh_}; + timeOfLastRefresh_ = elapsedTimeSinceStart; + if (refreshTime < 0 || (state_ != PlayerState::Playing && state_ != PlayerState::Paused)) { + return; + } + + if (state_ == PlayerState::Playing) { + /// increase refreshTs_ by at least 1 ms + refreshTs_ += std::max(refreshTime * speed_, 1); + /// update animation current timeline + if (const auto lua{findLua("TracePlayerData", false)}; lua != nullptr && racoCoreInterface_->project().isCodeCtrldObj(lua)) { + updateLuaProperty(lua, std::vector{"inputs", "TracePlayerData", "timestamp_milli"}, static_cast(refreshTs_), false); + } + + if (refreshTs_ >= framesTsList_.front()) { + if (refreshTs_ >= framesTsList_.back()) { + playbackIndex_ = framesTsList_.size() - 1; + } else { + auto itr{std::upper_bound(framesTsList_.cbegin(), framesTsList_.cend(), refreshTs_)}; + --itr; + playbackIndex_ = itr - framesTsList_.cbegin(); + } + } + } + + /// @note overwrite possible changes by a user Undo + if (parseFrameAndUpdateLua()) { + if (state_ == PlayerState::Playing) { + if (isLastFrame()) { + if (looping_) { + /// loop playback + play(); + } else { + /// pause playback at end of trace + pause(); + return; + } + } + } + } else { + failSafe(); + return; + } +} + +void TracePlayer::lockLua() { + core::SEditorObjectSet luaObjects; + for (int frameIndex{0}; frameIndex < getTraceLen(); ++frameIndex) { + const auto qjSceneData{parseSceneData(parseFrame(frameIndex))}; + for (auto itr{qjSceneData.constBegin()}; itr != qjSceneData.constEnd(); ++itr) { + if (auto const lua{findLua(itr.key().toStdString())}) { + if (!racoCoreInterface_->project().isCodeCtrldObj(lua)) { + if (!user_types::Queries::isReadOnly(lua)) { + luaObjects.insert(lua); + } else { + addError("Could not lock Lua >> Object is read-only! ( luaObjName: " + lua->objectName() + " )", core::ErrorLevel::WARNING); + } + } else { + addError("Could not lock Lua >> Object is already locked! ( luaObjName: " + lua->objectName() + " )", core::ErrorLevel::WARNING); + } + } + } + } + + if (const auto luaTracePlayerData{findLua("TracePlayerData", false)}) { + luaObjects.insert(luaTracePlayerData); + } + racoCoreInterface_->lockCodeControlledObjects(luaObjects); +} + +void TracePlayer::setState(PlayerState newState) { + state_ = newState; + if (onStateChange_) { + onStateChange_(newState); + } +} + +void TracePlayer::play() { + switch (state_) { + case PlayerState::Init: + assert("Invalid transition to Playing state!" && false); + return; + case PlayerState::Faulty: + /// do nothing + return; + case PlayerState::Playing: + /// restart playback + reset(); + break; + case PlayerState::Stopped: + /// store initial state once + lockLua(); + break; + case PlayerState::Paused: + if (isLastFrame()) { + /// restart playback + reset(); + } else { + /// resume playback + } + break; + default: + assert("Undefined TracePlayer State!" && false); + break; + } + + /// start playback + setState(PlayerState::Playing); +} + +void TracePlayer::pause() { + switch (state_) { + case PlayerState::Init: + assert("Invalid transition to Paused state!" && false); + return; + case PlayerState::Paused: + case PlayerState::Stopped: + case PlayerState::Faulty: + /// do nothing + return; + case PlayerState::Playing: + /// pause playback + break; + default: + assert("Undefined TracePlayer State!" && false); + break; + } + + /// pause playback + setState(PlayerState::Paused); +} + +void TracePlayer::stop() { + switch (state_) { + case PlayerState::Stopped: + /// do nothing + return; + case PlayerState::Init: + case PlayerState::Playing: + case PlayerState::Paused: + case PlayerState::Faulty: + /// stop playback and put TracePlayer in initial state + break; + default: + assert("Undefined TracePlayer State!" && false); + break; + } + + /// stop playback + reset(); + racoCoreInterface_->unlockCodeControlledObjects(); + setState(PlayerState::Stopped); +} + +void TracePlayer::jumpTo(int newIndex) { + switch (state_) { + case PlayerState::Init: + assert("Invalid transition to Jumping state!" && false); + return; + case PlayerState::Faulty: + /// do nothing + return; + case PlayerState::Stopped: + lockLua(); + break; + case PlayerState::Playing: + case PlayerState::Paused: + /// jump to newIndex and pause + break; + default: + assert("Undefined TracePlayer State!" && false); + break; + } + + /// jump to new index + playbackIndex_ = newIndex; + refreshTs_ = parseTimestamp(parseTracePlayerData(parseFrame(playbackIndex_))); + + /// pause playback + setState(PlayerState::Paused); +} + +void TracePlayer::step(int step) { + auto targetFrameIndex{playbackIndex_ + step}; + if (targetFrameIndex < 0) { + targetFrameIndex = 0; + } else if (targetFrameIndex > getTraceLen() - 1) { + targetFrameIndex = getTraceLen() - 1; + } + jumpTo(targetFrameIndex); +} + +void TracePlayer::failSafe() { + setState(PlayerState::Faulty); +} + +void TracePlayer::setSpeed(double speed) { + speed_ = speed; +} + +void TracePlayer::toggleLooping() { + looping_ = !looping_; +} + +bool TracePlayer::getLoopingStatus() const { + return looping_; +} + +} // namespace raco::components diff --git a/components/libComponents/tests/CMakeLists.txt b/components/libComponents/tests/CMakeLists.txt index ce58bb62..20b3cb8b 100644 --- a/components/libComponents/tests/CMakeLists.txt +++ b/components/libComponents/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -42,3 +42,48 @@ raco_package_add_test_resources( scripts/runtime-error.lua scripts/compile-error.lua ) + +set(TEST_SOURCES_TRACEPLAYER + TracePlayer_test.cpp +) + +set(TEST_LIBRARIES_TRACEPLAYER + raco::Testing + raco::RamsesBase + raco::ApplicationLib + raco::Components +) + +raco_package_add_headless_test( + libTracePlayer_test + "${TEST_SOURCES_TRACEPLAYER}" + "${TEST_LIBRARIES_TRACEPLAYER}" + ${CMAKE_CURRENT_BINARY_DIR} +) + +raco_package_add_test_resources( + libTracePlayer_test "${CMAKE_CURRENT_SOURCE_DIR}/resources" + raco_traces/invalid_empty.rctrace + raco_traces/invalid_wrongExtension.so + raco_traces/invalid_wrongFormat.rctrace + raco_traces/invalid_wrongRootType.rctrace + raco_traces/valid_20211123.rctrace + raco_traces/valid_10frames_500ms.rctrace + lua_scripts/saInfo.lua + lua_scripts/SyntheticData.lua + lua_scripts/TracePlayerData.lua + lua_scripts/dummyAllTypes.lua + lua_scripts/dummyAllTypes_NoInteger.lua + raco_traces/g05_demo.rctrace + raco_traces/g05_demo_withExtras.rctrace + lua_scripts/SceneControls.lua + lua_scripts/SceneControls_withExtras.lua + lua_scripts/modules/anim_utils.lua + lua_scripts/modules/car_utils.lua + lua_scripts/SceneControls_withArrays.lua + raco_traces/g05_demo_Arrays.rctrace + lua_scripts/DummyScript.lua + raco_traces/g05_demo_withDummy.rctrace +) + +add_compile_definitions(libTracePlayer_test PRIVATE CMAKE_CURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}") \ No newline at end of file diff --git a/components/libComponents/tests/DataChangeDispatcher_test.cpp b/components/libComponents/tests/DataChangeDispatcher_test.cpp index 75b2272a..279ded1c 100644 --- a/components/libComponents/tests/DataChangeDispatcher_test.cpp +++ b/components/libComponents/tests/DataChangeDispatcher_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/tests/FileChangeMonitor_test.cpp b/components/libComponents/tests/FileChangeMonitor_test.cpp index 5413e8f8..d04a412c 100644 --- a/components/libComponents/tests/FileChangeMonitor_test.cpp +++ b/components/libComponents/tests/FileChangeMonitor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libComponents/tests/TracePlayer_test.cpp b/components/libComponents/tests/TracePlayer_test.cpp new file mode 100644 index 00000000..472a5dbb --- /dev/null +++ b/components/libComponents/tests/TracePlayer_test.cpp @@ -0,0 +1,1155 @@ +/* + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of Ramses Composer + * (see https://github.com/bmwcarit/ramses-composer). + * + * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. + * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * For more details about TracePlayer Finite State Machine (FSM), please refer to this diagram: https://azure.paradoxcat.com/confluence/x/NY_QNQ + */ + +#include +#include + +#include "gtest/gtest.h" +#include "testing/RacoBaseTest.h" + +#include "application/RaCoApplication.h" +#include "components/TracePlayer.h" +#include "core/CodeControlledPropertyModifier.h" +#include "core/EditorObject.h" +#include "core/PrefabOperations.h" +#include "core/Queries.h" +#include "ramses_base/HeadlessEngineBackend.h" +#include "user_types/LuaInterface.h" +#include "user_types/LuaScript.h" +#include "user_types/LuaScriptModule.h" +#include "user_types/Prefab.h" +#include "user_types/PrefabInstance.h" + +using namespace raco::components; +constexpr int RENDER_TIME_TOLERENCE_MS = 50; +enum class LuaType { + LuaScript, + LuaInterface +}; + +class TracePlayerTest : public RacoBaseTest<> { +protected: + void SetUp() override { + RacoBaseTest::SetUp(); + spdlog::drop_all(); + raco::log_system::init(); + raco::log_system::setConsoleLogLevel(spdlog::level::level_enum::info); + racoApp.overrideTime([this] { + return tracePlayerTestTime_; + }); + cmd_ = racoApp.activeRaCoProject().commandInterface(); + player_ = &racoApp.activeRaCoProject().tracePlayer(); + tracePlayerDataLua_ = createLua("TracePlayerData", LuaType::LuaScript, false)->as(); + createLua("saInfo", LuaType::LuaScript); + } + + raco::ramses_base::HeadlessEngineBackend backend{}; + raco::application::RaCoApplication racoApp{backend}; + raco::core::CommandInterface* cmd_{nullptr}; + TracePlayer* player_{nullptr}; + std::vector luaObjs_; + raco::user_types::SLuaScript tracePlayerDataLua_{nullptr}; + + /// states transition validation + void isInit() const; + void isFaulty() const; + void isStopped() const; + void isPlaying() const; + void isPaused() const; + + /// utilities + QJsonArray const* const loadTrace(std::string const& fileName); + raco::core::SEditorObject createLua(std::string const& luaName, const LuaType type, bool sceneScript = true, raco::core::SEditorObject parent = nullptr); + std::unordered_map const* const backupSceneLuaObjs(QJsonArray const* const); + void deleteLuaObj(raco::core::SEditorObject lua); + void playOneFrame(); + void increaseTimeAndDoOneLoop(); + void setMinMaxFrameTime(long minFrameTime, long maxFrameTime); + + /// validations + bool isValidRange() const; + bool areLuaObjsRestored(std::unordered_map const* const luaObjsBackup) const; + bool areAllLuaObjsLocked() const; + bool areAllLuaObjsUnlocked() const; + raco::core::SEditorObject findLua(std::string const& luaName) const; + + long long tracePlayerTestTime_{0}; // we need a reproducable time line to avoid flaky tests. + long long lastFrameTime_{-1}; + long minFrameTime_{5}; + long maxFrameTime_{300}; + std::minstd_rand frameTimeGenerator_{42}; + + int argc{0}; + QCoreApplication eventLoop_{argc, nullptr}; +}; + +/* ************************************** helper functions ************************************** */ +raco::core::SEditorObject TracePlayerTest::createLua(std::string const& luaName, const LuaType type, bool sceneScript, raco::core::SEditorObject parent) { + const auto lua_filename{luaName + ".lua"}; + raco::core::SEditorObject luaObj; + if (type == LuaType::LuaScript) { + luaObj = cmd_->createObject(raco::user_types::LuaScript::typeDescription.typeName, luaName, parent); + } else if (type == LuaType::LuaInterface) { + luaObj = cmd_->createObject(raco::user_types::LuaInterface::typeDescription.typeName, luaName, parent); + } + + cmd_->set(raco::core::ValueHandle{luaObj, {"uri"}}, (test_path() / "lua_scripts" / lua_filename).string()); + + if (sceneScript) { + luaObjs_.push_back(luaObj); + } + + return luaObj; +} + +raco::core::SEditorObject TracePlayerTest::findLua(std::string const& luaObjName) const { + const auto isControllableLua{[&luaObjName](const raco::core::SEditorObject& o) { + return ( + ((o->objectName() == luaObjName) && (!raco::core::PrefabOperations::findContainingPrefab(o))) && + ((o->isType()) || + (o->isType() && (!raco::core::PrefabOperations::findContainingPrefabInstance(o))))); + }}; + + if (const auto itrLuaObj{std::find_if(cmd_->project()->instances().cbegin(), cmd_->project()->instances().cend(), isControllableLua)}; + itrLuaObj != cmd_->project()->instances().cend()) { + if (const auto itrDuplicateLua{std::find_if(itrLuaObj + 1, cmd_->project()->instances().cend(), isControllableLua)}; + itrDuplicateLua != cmd_->project()->instances().cend()) { + return nullptr; + } + + const auto lua{*itrLuaObj}; + if (raco::user_types::Queries::isReadOnly(lua)) { + return nullptr; + } + + return lua; + } + + return nullptr; +} + +void TracePlayerTest::deleteLuaObj(raco::core::SEditorObject lua) { + EXPECT_EQ(cmd_->deleteObjects(std::vector{lua}), 1); + const auto lastRemoved{luaObjs_.erase(std::remove(luaObjs_.begin(), luaObjs_.end(), lua), luaObjs_.end())}; + EXPECT_EQ(lastRemoved, luaObjs_.end()); +} + +QJsonArray const* const TracePlayerTest::loadTrace(std::string const& fileName) { + return player_->loadTrace((test_path() / fileName).string()); +} + +/// backup features Lua nodes from Scene (e.g. saInfo Lua node) to validate backup/restore mechanism +std::unordered_map const* const TracePlayerTest::backupSceneLuaObjs(QJsonArray const* const qjTrace) { + std::unordered_map* const luaObjsBackup{new std::unordered_map()}; + + for (int frameIndex{0}; frameIndex < qjTrace->size(); ++frameIndex) { + const auto qjSceneData{qjTrace->at(frameIndex).toObject().value("SceneData").toObject()}; + for (auto itr{qjSceneData.constBegin()}; itr != qjSceneData.constEnd(); ++itr) { + if (const auto lua{findLua(itr.key().toStdString())}) { + luaObjsBackup->emplace(lua->objectName(), lua->get("inputs")->asTable()); + } else { + continue; + } + } + } + + return luaObjsBackup; +} + +bool TracePlayerTest::areAllLuaObjsLocked() const { + bool ret{true}; + + for (auto const& lua : luaObjs_) { + ret = ret && cmd_->project()->isCodeCtrldObj(lua); + } + + return ret; +} + +bool TracePlayerTest::areAllLuaObjsUnlocked() const { + bool ret{true}; + + for (auto const& lua : luaObjs_) { + ret = ret && !cmd_->project()->isCodeCtrldObj(lua); + } + + return ret; +} + +bool TracePlayerTest::isValidRange() const { + return ((player_->getIndex() >= 0) && (player_->getIndex() < player_->getTraceLen())); +} + +bool TracePlayerTest::areLuaObjsRestored(std::unordered_map const* const luaObjsBackup) const { + bool restored{true}; + bool atLeastOneWasFound{false}; + + if (!luaObjsBackup->empty()) { + for (auto const& luaBackupEntry : *luaObjsBackup) { + if (auto lua{findLua(luaBackupEntry.first)}) { + atLeastOneWasFound = true; + restored = restored && (lua->get("inputs")->asTable() == luaBackupEntry.second); + } else { + continue; + } + } + } + + return (restored && atLeastOneWasFound); +} + +void TracePlayerTest::increaseTimeAndDoOneLoop() { + lastFrameTime_ = minFrameTime_; + if (maxFrameTime_ > minFrameTime_) { + lastFrameTime_ += frameTimeGenerator_() % (maxFrameTime_ - minFrameTime_); + } + tracePlayerTestTime_ += lastFrameTime_; + racoApp.doOneLoop(); +} + +void TracePlayerTest::setMinMaxFrameTime(long minFrameTime, long maxFrameTime) { + minFrameTime_ = std::max(minFrameTime, 0l); + maxFrameTime_ = std::max(maxFrameTime, minFrameTime_); +} + +void TracePlayerTest::playOneFrame() { + const auto lastIndex{player_->getIndex()}; + while ((player_->getIndex() <= lastIndex) && (player_->getIndex() < player_->getTraceLen() - 1)) { + increaseTimeAndDoOneLoop(); + if (player_->getState() != TracePlayer::PlayerState::Playing) { + return; + } + } +} + +/* ****************************************** States ****************************************** */ +void TracePlayerTest::isInit() const { + ASSERT_EQ(TracePlayer::PlayerState::Init, player_->getState()); + + /// entry: is there any loaded trace? + EXPECT_EQ(-1, player_->getTraceLen()); +} + +void TracePlayerTest::isFaulty() const { + ASSERT_EQ(TracePlayer::PlayerState::Faulty, player_->getState()); +} + +void TracePlayerTest::isStopped() const { + ASSERT_EQ(TracePlayer::PlayerState::Stopped, player_->getState()); + + /// entry: are Lua nodes unlocked? + EXPECT_EQ(true, areAllLuaObjsUnlocked()); +} + +void TracePlayerTest::isPlaying() const { + ASSERT_EQ(TracePlayer::PlayerState::Playing, player_->getState()); + + /// entry: are Lua nodes locked? + EXPECT_EQ(true, areAllLuaObjsLocked()); +} + +void TracePlayerTest::isPaused() const { + ASSERT_EQ(TracePlayer::PlayerState::Paused, player_->getState()); + + /// entry: are Lua nodes locked? + EXPECT_EQ(true, areAllLuaObjsLocked()); + + // entry: is frame index at valid range? + EXPECT_EQ(true, isValidRange()); +} + +/* ####################################### Test Fixtures ####################################### */ + +TEST_F(TracePlayerTest, TF01_ValidTraceLoad) { + isInit(); + + EXPECT_NE(nullptr, loadTrace("raco_traces/valid_20211123.rctrace")); + isStopped(); +} + +TEST_F(TracePlayerTest, TF02_InvalidTrace_Empty) { + isInit(); + + EXPECT_EQ(nullptr, loadTrace("raco_traces/invalid_empty.rctrace")); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF03_InvalidTrace_WrongRootType) { + isInit(); + + EXPECT_EQ(nullptr, loadTrace("raco_traces/invalid_wrongRootType.rctrace")); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF04_InvalidTrace_WrongFormat) { + isInit(); + + EXPECT_EQ(nullptr, loadTrace("raco_traces/invalid_wrongFormat.rctrace")); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF05_InvalidTrace_WrongExtension) { + isInit(); + + EXPECT_EQ(nullptr, loadTrace("raco_traces/invalid_wrongExtension.so")); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF11_Playing_Paused_playToEnd) { + constexpr int FRAME_UPDATE_TIME_MS = 500; + + auto qjTrace{loadTrace("raco_traces/valid_10frames_500ms.rctrace")}; + isStopped(); + + /// run playback to end + /// dummy doOneLoop to update totalElapsedMsec_ in racoApp + increaseTimeAndDoOneLoop(); + player_->play(); + const auto traceStartTs{player_->getTimestamp()}; + const auto startTime{tracePlayerTestTime_}; + while (player_->getIndex() < player_->getTraceLen() - 1) { + auto lastDoOneLoopTime{tracePlayerTestTime_}; + isPlaying(); + const auto prevFrameIndex{player_->getIndex()}; + increaseTimeAndDoOneLoop(); + const auto currentFrameIndex{player_->getIndex()}; + lastDoOneLoopTime = tracePlayerTestTime_ - lastDoOneLoopTime; + if (prevFrameIndex >= 0 && currentFrameIndex > prevFrameIndex) { + const auto appTimeline{tracePlayerTestTime_ - startTime}; + const auto traceTimeline{player_->getTimestamp() - traceStartTs}; + EXPECT_GE(appTimeline, traceTimeline); + EXPECT_LE(appTimeline, traceTimeline + lastDoOneLoopTime); + } + } + + /// is playback ended (paused at last frame)? + ASSERT_EQ(player_->getIndex(), player_->getTraceLen() - 1); + isPaused(); +} + +TEST_F(TracePlayerTest, TF12_Playing_Paused_pause) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + const auto prevFrameIndex{player_->getIndex()}; + increaseTimeAndDoOneLoop(); + const auto currentFrameIndex{player_->getIndex()}; + ASSERT_GE(currentFrameIndex, prevFrameIndex); + } + + player_->pause(); + /// is playback paused? + isPaused(); +} + +TEST_F(TracePlayerTest, TF13_Playing_Playing_restart) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and restart it midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + const auto prevFrameIndex{player_->getIndex()}; + increaseTimeAndDoOneLoop(); + const auto currentFrameIndex{player_->getIndex()}; + ASSERT_GE(currentFrameIndex, prevFrameIndex); + } + + player_->play(); + /// is playback restarted? + ASSERT_EQ(player_->getIndex(), -1); + + playOneFrame(); + isPlaying(); +} + +TEST_F(TracePlayerTest, TF14_Playing_Faulty_noLua) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and delete all Lua nodes midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + for (auto& lua : luaObjs_) { + deleteLuaObj(lua); + EXPECT_EQ(nullptr, findLua(lua->objectName())); + } + + playOneFrame(); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF15_Playing_Faulty_invalidTrace) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and load invalid trace midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + loadTrace("raco_traces/invalid_empty.rctrace"); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF16_Playing_Jump_Paused) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and jump midway near end + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + const auto prevFrameIndex{player_->getIndex()}; + increaseTimeAndDoOneLoop(); + const auto currentFrameIndex{player_->getIndex()}; + ASSERT_GE(currentFrameIndex, prevFrameIndex); + } + + player_->jumpTo(player_->getTraceLen() - 3); + increaseTimeAndDoOneLoop(); + /// is playback jumped and paused near end? + ASSERT_EQ(player_->getIndex(), player_->getTraceLen() - 3); + isPaused(); +} + +TEST_F(TracePlayerTest, TF17_Playing_Jump_Faulty_noLua) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and jump midway near end + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + const auto prevFrameIndex{player_->getIndex()}; + increaseTimeAndDoOneLoop(); + const auto currentFrameIndex{player_->getIndex()}; + ASSERT_GE(currentFrameIndex, prevFrameIndex); + } + + for (auto& lua : luaObjs_) { + deleteLuaObj(lua); + EXPECT_EQ(nullptr, findLua(lua->objectName())); + } + + player_->jumpTo(player_->getTraceLen() - 3); + increaseTimeAndDoOneLoop(); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF18_Playing_Jump_Faulty_outOfRange) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and jump out-of-range midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + player_->jumpTo(player_->getTraceLen() * 2); + increaseTimeAndDoOneLoop(); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF19_Playing_Stopped) { + auto qjTrace{loadTrace("raco_traces/valid_20211123.rctrace")}; + isStopped(); + + auto luaObjsBackup{backupSceneLuaObjs(qjTrace)}; + + player_->play(); + /// run playback and stop it midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + const auto prevFrameIndex{player_->getIndex()}; + increaseTimeAndDoOneLoop(); + const auto currentFrameIndex{player_->getIndex()}; + ASSERT_GE(currentFrameIndex, prevFrameIndex); + } + + player_->stop(); + EXPECT_EQ(true, areLuaObjsRestored(luaObjsBackup)); + isStopped(); +} + +TEST_F(TracePlayerTest, TF21_Stopped_Jump_Paused) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->jumpTo(player_->getTraceLen() - 3); + increaseTimeAndDoOneLoop(); + /// is playback jumped and paused near end? + ASSERT_EQ(player_->getIndex(), player_->getTraceLen() - 3); + isPaused(); +} + +TEST_F(TracePlayerTest, TF22_Stopped_Jump_Faulty_noLua) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + for (auto& lua : luaObjs_) { + deleteLuaObj(lua); + EXPECT_EQ(nullptr, findLua(lua->objectName())); + } + + player_->jumpTo(player_->getTraceLen() - 3); + increaseTimeAndDoOneLoop(); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF23_Stopped_Jump_Faulty_outOfRange) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->jumpTo(player_->getTraceLen() * 2); + increaseTimeAndDoOneLoop(); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF24_Stopped_Faulty_invalidTrace) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + loadTrace("raco_traces/invalid_empty.rctrace"); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF25_Stopped_Jump_End_Paused) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->jumpTo(player_->getTraceLen() - 1); + increaseTimeAndDoOneLoop(); + /// is playback jumped and paused at end? + ASSERT_EQ(player_->getIndex(), player_->getTraceLen() - 1); + isPaused(); +} + +TEST_F(TracePlayerTest, TF31_Paused_Stopped) { + const auto qjTrace{loadTrace("raco_traces/valid_20211123.rctrace")}; + isStopped(); + + auto luaObjsBackup{backupSceneLuaObjs(qjTrace)}; + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + const auto prevFrameIndex{player_->getIndex()}; + increaseTimeAndDoOneLoop(); + const auto currentFrameIndex{player_->getIndex()}; + ASSERT_GE(currentFrameIndex, prevFrameIndex); + } + + player_->pause(); + isPaused(); + + player_->stop(); + EXPECT_EQ(true, areLuaObjsRestored(luaObjsBackup)); + isStopped(); +} + +TEST_F(TracePlayerTest, TF32_Paused_Jump_Paused) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + player_->pause(); + isPaused(); + + player_->jumpTo(player_->getTraceLen() - 3); + increaseTimeAndDoOneLoop(); + /// is playback jumped and paused near end? + ASSERT_EQ(player_->getIndex(), player_->getTraceLen() - 3); + isPaused(); +} + +TEST_F(TracePlayerTest, TF33_Paused_Jump_Faulty_noLua) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + player_->pause(); + isPaused(); + + for (auto& lua : luaObjs_) { + deleteLuaObj(lua); + EXPECT_EQ(nullptr, findLua(lua->objectName())); + } + + player_->jumpTo(player_->getTraceLen() - 3); + increaseTimeAndDoOneLoop(); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF34_Paused_Jump_Faulty_outOfRange) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + player_->pause(); + isPaused(); + + player_->jumpTo(player_->getTraceLen() * 2); + increaseTimeAndDoOneLoop(); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF35_Paused_Playing_resume) { + constexpr int FRAME_UPDATE_TIME_MS = 500; + constexpr int ELAPSED_TILL_PAUSED_MS = 170; + setMinMaxFrameTime(10, RENDER_TIME_TOLERENCE_MS); + + loadTrace("raco_traces/valid_10frames_500ms.rctrace"); + isStopped(); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + // Move the timeline in the current frame of 500ms to at least 1/3 of the frame time, but not outside the frame. + while (player_->getIndex() < player_->getTraceLen()) { + increaseTimeAndDoOneLoop(); + if (player_->getIndex() > player_->getTraceLen() / 2) { + const auto startTimeInFrame = tracePlayerTestTime_; + while (tracePlayerTestTime_ - startTimeInFrame < ELAPSED_TILL_PAUSED_MS) { + increaseTimeAndDoOneLoop(); + } + ASSERT_LT(tracePlayerTestTime_ - startTimeInFrame, FRAME_UPDATE_TIME_MS); + break; + } + } + + // Pause and do a few loop + const auto wallTimeBeforePause = tracePlayerTestTime_; + const auto tracePlayerTimeBeforePause = player_->getTimestamp(); + player_->pause(); + isPaused(); + increaseTimeAndDoOneLoop(); + increaseTimeAndDoOneLoop(); + increaseTimeAndDoOneLoop(); + ASSERT_GT(tracePlayerTestTime_, wallTimeBeforePause); + ASSERT_EQ(player_->getTimestamp(), tracePlayerTimeBeforePause); + + // Advance into the next frame and make sure the trace player and our wall clock agree on how much time needs to be elapsed for the next frame + player_->play(); + const auto wallTimeBeforePlay = tracePlayerTestTime_; + const long timeToBePlayedInThisFrame = FRAME_UPDATE_TIME_MS - (player_->getTimestamp() % FRAME_UPDATE_TIME_MS), playOneFrame(); + const long timePlayedInNextFrame = player_->getTimestamp() % FRAME_UPDATE_TIME_MS; + EXPECT_EQ(FRAME_UPDATE_TIME_MS - timeToBePlayedInThisFrame + timePlayedInNextFrame, tracePlayerTestTime_ - wallTimeBeforePlay); + + isPlaying(); +} + +TEST_F(TracePlayerTest, TF36_Paused_Playing_restart) { + auto qjTrace{loadTrace("raco_traces/valid_20211123.rctrace")}; + isStopped(); + + player_->play(); + /// run playback to end + while (player_->getIndex() < player_->getTraceLen() - 1) { + isPlaying(); + const auto prevFrameIndex{player_->getIndex()}; + increaseTimeAndDoOneLoop(); + const auto currentFrameIndex{player_->getIndex()}; + ASSERT_GE(currentFrameIndex, prevFrameIndex); + } + + /// is playback ended (paused at last frame)? + ASSERT_EQ(player_->getIndex(), player_->getTraceLen() - 1); + isPaused(); + + player_->play(); + playOneFrame(); + /// has playback restarted? + isPlaying(); +} + +TEST_F(TracePlayerTest, TF37_Paused_Faulty_invalidTrace) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + player_->pause(); + isPaused(); + + loadTrace("raco_traces/invalid_empty.rctrace"); + isFaulty(); +} + +TEST_F(TracePlayerTest, TF41_Faulty_Stopped) { + isInit(); + + EXPECT_EQ(nullptr, loadTrace("raco_traces/invalid_wrongFormat.rctrace")); + isFaulty(); + + EXPECT_NE(nullptr, loadTrace("raco_traces/valid_20211123.rctrace")); + isStopped(); +} + +TEST_F(TracePlayerTest, TF71_Play_DeleteLua_Play_Failed_Recreate_Play) { + loadTrace("raco_traces/valid_20211123.rctrace"); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + deleteLuaObj(findLua("saInfo")); + + playOneFrame(); + + isFaulty(); + + createLua("saInfo", LuaType::LuaScript); + + player_->stop(); + player_->play(); + + playOneFrame(); + + isPlaying(); +} + +TEST_F(TracePlayerTest, TF81_LinkedProperty) { + loadTrace("raco_traces/valid_20211123.rctrace"); + + const auto saInfoLua{findLua("saInfo")}; + const auto srcLua{createLua("dummyAllTypes", LuaType::LuaScript)}; + + const auto srcPropIn = raco::core::ValueHandle{srcLua, {"inputs", "propIntegerIn"}}; + const auto srcPropOut = raco::core::ValueHandle{srcLua, {"outputs", "propIntegerOut"}}; + const auto destProp = raco::core::ValueHandle{saInfoLua, {"inputs", "ACC", "state"}}; + cmd_->set(srcPropIn, 123000321); + + /*** Test setting linked property ***/ + { + EXPECT_NE(123000321, destProp.asInt()); + EXPECT_EQ(raco::core::Queries::CurrentLinkState::NOT_LINKED, raco::core::Queries::linkState(*cmd_->project(), destProp).current); + EXPECT_NE(nullptr, cmd_->addLink(srcPropOut, destProp)); + increaseTimeAndDoOneLoop(); + EXPECT_EQ(raco::core::Queries::CurrentLinkState::LINKED, raco::core::Queries::linkState(*cmd_->project(), destProp).current); + EXPECT_EQ(123000321, destProp.asInt()); + + player_->play(); + playOneFrame(); + EXPECT_EQ(123000321, destProp.asInt()); + const auto& log{player_->getLog()}; + ASSERT_EQ(log.size(), 1); + ASSERT_NE(log.find("Can not set linked property! ( propPath: saInfo->ACC->state )"), log.cend()); + + // EXPECT_ANY_THROW(cmd_->removeLink(destProp.getDescriptor())); currently this would fail, see RAOS-905. + player_->stop(); + isStopped(); + cmd_->removeLink(destProp.getDescriptor()); + + player_->play(); + increaseTimeAndDoOneLoop(); + playOneFrame(); + EXPECT_EQ(raco::core::Queries::CurrentLinkState::NOT_LINKED, raco::core::Queries::linkState(*cmd_->project(), destProp).current); + playOneFrame(); + EXPECT_NE(123000321, destProp.asInt()); + ASSERT_EQ(log.size(), 0); + ASSERT_EQ(log.find("Can not set linked property! ( propPath: saInfo->ACC->state )"), log.cend()); + } + + /*** Test setting property with broken link ***/ + { + player_->stop(); + cmd_->set(srcPropIn, 123000322); + increaseTimeAndDoOneLoop(); + EXPECT_EQ(123000322, srcPropOut.asInt()); + + EXPECT_NE(nullptr, cmd_->addLink(srcPropOut, destProp)); + increaseTimeAndDoOneLoop(); + EXPECT_EQ(raco::core::Queries::CurrentLinkState::LINKED, raco::core::Queries::linkState(*cmd_->project(), destProp).current); + player_->play(); + playOneFrame(); + EXPECT_EQ(123000322, destProp.asInt()); + + cmd_->set(raco::core::ValueHandle{srcLua, {"uri"}}, (test_path() / "lua_scripts" / "dummyAllTypes_NoInteger.lua").string()); + EXPECT_EQ(raco::core::Queries::CurrentLinkState::BROKEN, raco::core::Queries::linkState(*cmd_->project(), destProp).current); + playOneFrame(); + EXPECT_EQ(123000322, destProp.asInt()); + const auto& log{player_->getLog()}; + ASSERT_EQ(log.size(), 1); + ASSERT_NE(log.find("Can not set linked property! ( propPath: saInfo->ACC->state )"), log.cend()); + + cmd_->removeLink(destProp.getDescriptor()); + increaseTimeAndDoOneLoop(); + EXPECT_EQ(raco::core::Queries::CurrentLinkState::NOT_LINKED, raco::core::Queries::linkState(*cmd_->project(), destProp).current); + playOneFrame(); + EXPECT_NE(123000322, destProp.asInt()); + ASSERT_EQ(log.size(), 0); + ASSERT_EQ(log.find("Can not set linked property! ( propPath: saInfo->ACC->state )"), log.cend()); + } +} + +TEST_F(TracePlayerTest, TF91_Duplicate_Lua) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + createLua("saInfo", LuaType::LuaScript); + + player_->play(); + playOneFrame(); + + isFaulty(); +} + +TEST_F(TracePlayerTest, TF92_TracePlayerData_Lua_Deletion) { + loadTrace("raco_traces/valid_20211123.rctrace"); + isStopped(); + + deleteLuaObj(findLua("TracePlayerData")); + + player_->play(); + playOneFrame(); + + ASSERT_EQ(TracePlayer::PlayerState::Playing, player_->getState()); + EXPECT_EQ(true, areAllLuaObjsLocked()); +} + +TEST_F(TracePlayerTest, TF93_Move_Lua_Under_Prefab) { + loadTrace("raco_traces/valid_20211123.rctrace"); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + cmd_->moveScenegraphChildren({findLua("saInfo")}, cmd_->createObject(raco::user_types::Prefab::typeDescription.typeName, "TestPrefab")); + + playOneFrame(); + + isFaulty(); +} + +TEST_F(TracePlayerTest, TF94_Play_DeleteLua_Recreate_Resume) { + loadTrace("raco_traces/valid_20211123.rctrace"); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + deleteLuaObj(findLua("saInfo")); + createLua("saInfo", LuaType::LuaScript); + + playOneFrame(); + + isFaulty(); +} + +TEST_F(TracePlayerTest, TF95_Play_DeleteLua_Undo_Play_Redo__FAILED) { + loadTrace("raco_traces/valid_20211123.rctrace"); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + deleteLuaObj(findLua("saInfo")); + + cmd_->undoStack().undo(); + + player_->play(); + playOneFrame(); + + isFaulty(); + + cmd_->undoStack().redo(); + + playOneFrame(); + + isFaulty(); +} + +TEST_F(TracePlayerTest, TF96_Lock_ReadOnly_NestedPrefabInstanceLua) { + loadTrace("raco_traces/valid_20211123.rctrace"); + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + deleteLuaObj(findLua("saInfo")); + + const auto parentPrefab{cmd_->createObject(raco::user_types::Prefab::typeDescription.typeName)}; + const auto childPrefab{cmd_->createObject(raco::user_types::Prefab::typeDescription.typeName)}; + createLua("saInfo", LuaType::LuaScript, true, childPrefab); + + const auto prefabInstance_parentPrefab{cmd_->createObject(raco::user_types::PrefabInstance::typeDescription.typeName, std::string(), parentPrefab)}; + cmd_->set(raco::core::ValueHandle{prefabInstance_parentPrefab, &raco::user_types::PrefabInstance::template_}, childPrefab); + const auto prefabInstance_sceneGraph{cmd_->createObject(raco::user_types::PrefabInstance::typeDescription.typeName)}; + cmd_->set(raco::core::ValueHandle{prefabInstance_sceneGraph, &raco::user_types::PrefabInstance::template_}, parentPrefab); + + playOneFrame(); + + isFaulty(); +} + +TEST_F(TracePlayerTest, TF101_Undo_NoEffect_WhilePaused) { + const auto qjTrace{loadTrace("raco_traces/valid_20211123.rctrace")}; + + player_->play(); + /// run playback and pause midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + increaseTimeAndDoOneLoop(); + } + player_->pause(); + + cmd_->createObject(raco::user_types::LuaScript::typeDescription.typeName, "dummyLua"); + cmd_->undoStack().undo(); + + increaseTimeAndDoOneLoop(); + + isPaused(); +} + +TEST_F(TracePlayerTest, TF102_Undo_NoEffect_WhilePlaying) { + const auto qjTrace{loadTrace("raco_traces/valid_20211123.rctrace")}; + + player_->play(); + /// run playback till midway + while (player_->getIndex() < player_->getTraceLen() / 2) { + increaseTimeAndDoOneLoop(); + } + + cmd_->createObject(raco::user_types::LuaScript::typeDescription.typeName, "dummyLua"); + cmd_->undoStack().undo(); + + playOneFrame(); + + isPlaying(); +} + +TEST_F(TracePlayerTest, TF103_Check_Properties_Consistency) { + deleteLuaObj(findLua("saInfo")); + const auto luaSceneControls{createLua("SceneControls", LuaType::LuaScript)}; + const auto luaModule{cmd_->createObject(raco::user_types::LuaScriptModule::typeDescription.typeName, "m")}; + cmd_->set({luaModule, &raco::user_types::LuaScriptModule::uri_}, test_path().append("lua_scripts/modules/anim_utils.lua").string()); + cmd_->set({luaSceneControls, {"luaModules", "anim_utils"}}, luaModule); + + loadTrace("raco_traces/g05_demo.rctrace"); + isStopped(); + + player_->play(); + /// run playback till midway + while (player_->getIndex() < 11) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + player_->jumpTo(8); + increaseTimeAndDoOneLoop(); + + EXPECT_EQ(true, luaSceneControls->get("inputs")->asTable().get("Door_F_L_isOpen")->asBool()); + EXPECT_EQ(true, luaSceneControls->get("inputs")->asTable().get("Door_F_R_isOpen")->asBool()); + EXPECT_EQ(true, luaSceneControls->get("inputs")->asTable().get("Door_B_L_isOpen")->asBool()); + EXPECT_EQ(false, luaSceneControls->get("inputs")->asTable().get("Door_B_R_isOpen")->asBool()); + + /// resume playback till Tailgate_isOpen is true, which occurs at frame index 15 + player_->play(); + while (!luaSceneControls->get("inputs")->asTable().get("Tailgate_isOpen")->asBool()) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + EXPECT_EQ(15, player_->getIndex()); +} + +TEST_F(TracePlayerTest, TF104_Disregarded_Properties) { + deleteLuaObj(findLua("saInfo")); + const auto luaSceneControls{createLua("SceneControls", LuaType::LuaScript)}; + const auto luaModule{cmd_->createObject(raco::user_types::LuaScriptModule::typeDescription.typeName, "m")}; + cmd_->set({luaModule, &raco::user_types::LuaScriptModule::uri_}, test_path().append("lua_scripts/modules/anim_utils.lua").string()); + cmd_->set({luaSceneControls, {"luaModules", "anim_utils"}}, luaModule); + + { + loadTrace("raco_traces/g05_demo.rctrace"); + for (const auto& msg : player_->getLog()) { + ASSERT_EQ(msg.first.find("disregarded from trace"), std::string::npos); + } + isStopped(); + } + + { + loadTrace("raco_traces/g05_demo_withExtras.rctrace"); + const auto& log{player_->getLog()}; + ASSERT_EQ(log.size(), 3); + ASSERT_NE(log.find("Lua is not available in the scene! Lua and its properties are disregarded from trace ( luaObjName: ExtraLuaScript )"), log.cend()); + ASSERT_NE(log.find("Lua property was not found in the scene! Property is disregarded from trace ( propName: SceneControls->Extra_Struct )"), log.cend()); + ASSERT_NE(log.find("Lua property was not found in the scene! Property is disregarded from trace ( propName: SceneControls->extra_property )"), log.cend()); + isStopped(); + } + + /*** Check if disregarded properties are ignored ***/ + + /// run playback till midway + player_->play(); + while (player_->getIndex() < player_->getTraceLen() / 2) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + /// switch Lua to anther one that contains extra properties. We need to cheat here and briefly unlock the editor object. + /// the same change could happen by changing the underlying file, but that is harder to accomplish right here. + const auto luaText{raco::utils::file::read((test_path() / "lua_scripts" / "SceneControls_withExtras.lua").string())}; + const auto fileUsedByScript{luaSceneControls->as()->uri_.asString()}; + raco::utils::file::write(fileUsedByScript, luaText); + + // Make sure the file system watcher picks up the change + int maxNumLoops{50}; + while (!raco::core::ValueHandle{luaSceneControls, {"inputs", "extra_property"}} && --maxNumLoops >= 0) { + std::this_thread::sleep_for(std::chrono::milliseconds(100)); // give the file monitor thread some time. + QCoreApplication::processEvents(); + increaseTimeAndDoOneLoop(); + } + + ASSERT_GE(maxNumLoops, 0); + ASSERT_EQ(static_cast(raco::core::ValueHandle{luaSceneControls, {"inputs", "extra_property"}}), true); + + /// handle to extra_property + const auto extraPropValHandle{raco::core::ValueHandle{luaSceneControls, {"inputs", "extra_property"}}}; + raco::core::CodeControlledPropertyModifier::setPrimitive(extraPropValHandle, 12345, player_->uiChanges()); + + /// handle to Extra_Struct properties + const auto extraChild1PropValHandle{raco::core::ValueHandle{luaSceneControls, {"inputs", "Extra_Struct", "extra_child1"}}}; + const auto extraChild2PropValHandle{raco::core::ValueHandle{luaSceneControls, {"inputs", "Extra_Struct", "extra_child2"}}}; + raco::core::CodeControlledPropertyModifier::setPrimitive(extraChild1PropValHandle, true, player_->uiChanges()); + raco::core::CodeControlledPropertyModifier::setPrimitive(extraChild2PropValHandle, 54321, player_->uiChanges()); + + /// continue playback till end of trace + while (player_->getIndex() < player_->getTraceLen() - 1) { + isPlaying(); + increaseTimeAndDoOneLoop(); + } + + /** + * Now, validate that "extra_property" isn't equal to the last value in the trace, which is 57468 + * It should instead be equal to 12345, which was manually set in this test-case + * Then same thing to Extra_Struct properties + */ + EXPECT_EQ(12345, extraPropValHandle.asInt()); + EXPECT_EQ(true, extraChild1PropValHandle.asBool()); + EXPECT_EQ(54321, extraChild2PropValHandle.asInt()); +} + +TEST_F(TracePlayerTest, TF105_ArrayOfDifferentTypes) { + deleteLuaObj(findLua("saInfo")); + + const auto luaSceneControls{createLua("SceneControls_withArrays", LuaType::LuaScript)}; + const auto luaModule{cmd_->createObject(raco::user_types::LuaScriptModule::typeDescription.typeName, "m")}; + cmd_->set({luaModule, &raco::user_types::LuaScriptModule::uri_}, test_path().append("lua_scripts/modules/anim_utils.lua").string()); + cmd_->set({luaSceneControls, {"luaModules", "anim_utils"}}, luaModule); + + loadTrace("raco_traces/g05_demo_Arrays.rctrace"); + player_->jumpTo(3); + increaseTimeAndDoOneLoop(); + + /// validate ArrayOfFloats array + { + EXPECT_EQ(7.7, luaSceneControls->get("inputs")->asTable().get("ArrayOfFloats")->asTable()[0]->asDouble()); + EXPECT_EQ(5.5, luaSceneControls->get("inputs")->asTable().get("ArrayOfFloats")->asTable()[1]->asDouble()); + } + + /// vaildate ComplexStruct array of complex struct + { + EXPECT_EQ(1, luaSceneControls->get("inputs")->asTable().get("ComplexStruct")->asTable()[0]->asTable().get("subArr")->asTable()[0]->asTable().get("prop1")->asInt()); + EXPECT_EQ(false, luaSceneControls->get("inputs")->asTable().get("ComplexStruct")->asTable()[0]->asTable().get("subArr")->asTable()[0]->asTable().get("prop2")->asBool()); + EXPECT_EQ(2, luaSceneControls->get("inputs")->asTable().get("ComplexStruct")->asTable()[0]->asTable().get("subArr")->asTable()[1]->asTable().get("prop1")->asInt()); + EXPECT_EQ(true, luaSceneControls->get("inputs")->asTable().get("ComplexStruct")->asTable()[0]->asTable().get("subArr")->asTable()[1]->asTable().get("prop2")->asBool()); + EXPECT_EQ(123.456, luaSceneControls->get("inputs")->asTable().get("ComplexStruct")->asTable()[0]->asTable().get("prop3")->asDouble()); + + EXPECT_EQ(11, luaSceneControls->get("inputs")->asTable().get("ComplexStruct")->asTable()[1]->asTable().get("subArr")->asTable()[0]->asTable().get("prop1")->asInt()); + EXPECT_EQ(false, luaSceneControls->get("inputs")->asTable().get("ComplexStruct")->asTable()[1]->asTable().get("subArr")->asTable()[0]->asTable().get("prop2")->asBool()); + EXPECT_EQ(22, luaSceneControls->get("inputs")->asTable().get("ComplexStruct")->asTable()[1]->asTable().get("subArr")->asTable()[1]->asTable().get("prop1")->asInt()); + EXPECT_EQ(true, luaSceneControls->get("inputs")->asTable().get("ComplexStruct")->asTable()[1]->asTable().get("subArr")->asTable()[1]->asTable().get("prop2")->asBool()); + EXPECT_EQ(789.101, luaSceneControls->get("inputs")->asTable().get("ComplexStruct")->asTable()[1]->asTable().get("prop3")->asDouble()); + } +} + +TEST_F(TracePlayerTest, TF106_ConsistentWithUndo) { + const auto luaSceneControls{createLua("SceneControls", LuaType::LuaScript)}; + const auto luaModule{cmd_->createObject(raco::user_types::LuaScriptModule::typeDescription.typeName, "m")}; + cmd_->set({luaModule, &raco::user_types::LuaScriptModule::uri_}, test_path().append("lua_scripts/modules/anim_utils.lua").string()); + cmd_->set({luaSceneControls, {"luaModules", "anim_utils"}}, luaModule); + + const auto luaObjsBackup{backupSceneLuaObjs(loadTrace("raco_traces/g05_demo_withDummy.rctrace"))}; + + deleteLuaObj(findLua("SceneControls")); + + player_->play(); + /// run playback till midway + while (player_->getIndex() < player_->getIndex() / 2) { + increaseTimeAndDoOneLoop(); + } + player_->pause(); + + /// this should undo the deletion of SceneControls + cmd_->undoStack().undo(); + + player_->play(); + playOneFrame(); + player_->stop(); + + EXPECT_EQ(true, areLuaObjsRestored(luaObjsBackup)); +} \ No newline at end of file diff --git a/components/libComponents/tests/resources/lua_scripts/DummyScript.lua b/components/libComponents/tests/resources/lua_scripts/DummyScript.lua new file mode 100644 index 00000000..a482aa26 --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/DummyScript.lua @@ -0,0 +1,8 @@ +function interface(IN,OUT) + IN.dummyPropBool = Type:Bool() + OUT.dummyPropBool = Type:Bool() +end + +function run(IN,OUT) + OUT.dummyPropBool = IN.dummyPropBool +end diff --git a/components/libComponents/tests/resources/lua_scripts/SceneControls.lua b/components/libComponents/tests/resources/lua_scripts/SceneControls.lua new file mode 100644 index 00000000..d953e768 --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/SceneControls.lua @@ -0,0 +1,62 @@ +modules("anim_utils") + + +-- Define Input and Output parameters +function interface(IN,OUT) + -- Input Parameters + IN.CameraPerspective_ID = Type:Int32() -- ID of camera perspective (DEFAULT: 1) - all options listed below + --[[ + 1: Side + 2: Wheel close-up + 3: Classic beauty shot + 4: Big front + 5: High roof + 6: Trunk + 7: Low Back Left + ]]-- + + IN.Camera_TurntableSettings = anim_utils.getTurntableSettings() + + IN.CarPaint_ID = Type:Int32() -- ID of exterior paint (DEFAULT: 1) - all options listed below + --[[ + 1: Pyhtonic Blue + 2: Transanit Blue + 3: Black + 4: Black Metallic + 5: Mineral White + 6: Silver Blue + 7: Ametrin Metallic + ]]-- + + -- Output Parameters + OUT.CameraPerspective_ID = Type:Int32() -- linked to 'Anim_CameraCrane' script + OUT.Camera_TurntableSettings = anim_utils.getTurntableSettings() -- linked to 'Anim_CameraCrane' script + + OUT.CarPaint_ID = Type:Int32() -- linked to 'Anim_CarPaint' script + + IN.Door_B_L_isOpen = Type:Bool() -- Open/close door (back left) (false = fully closed, true = fully open) + IN.Door_B_R_isOpen = Type:Bool() -- Open/close door (back right) (false = fully closed, true = fully open) + IN.Door_F_L_isOpen = Type:Bool() -- Open/close door (front left) (false = fully closed, true = fully open) + IN.Door_F_R_isOpen = Type:Bool() -- Open/close door (front right) (false = fully closed, true = fully open) + IN.Tailgate_isOpen = Type:Bool() -- Open/close tailgate (false = fully closed, true = fully open) + + OUT.Door_B_L_isOpen = Type:Bool() + OUT.Door_B_R_isOpen = Type:Bool() + OUT.Door_F_L_isOpen = Type:Bool() + OUT.Door_F_R_isOpen = Type:Bool() + OUT.Tailgate_isOpen = Type:Bool() +end + + +-- Passing through the Input parameters to the Output parameters +function run(IN,OUT) + OUT.CameraPerspective_ID = IN.CameraPerspective_ID + OUT.CarPaint_ID = IN.CarPaint_ID + OUT.Camera_TurntableSettings = IN.Camera_TurntableSettings + + OUT.Door_B_L_isOpen = IN.Door_B_L_isOpen + OUT.Door_B_R_isOpen = IN.Door_B_R_isOpen + OUT.Door_F_L_isOpen = IN.Door_F_L_isOpen + OUT.Door_F_R_isOpen = IN.Door_F_R_isOpen + OUT.Tailgate_isOpen = IN.Tailgate_isOpen +end diff --git a/components/libComponents/tests/resources/lua_scripts/SceneControls_withArrays.lua b/components/libComponents/tests/resources/lua_scripts/SceneControls_withArrays.lua new file mode 100644 index 00000000..b248a2e6 --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/SceneControls_withArrays.lua @@ -0,0 +1,79 @@ +modules("anim_utils") + +function init() + +end + +-- Define Input and Output parameters +function interface(IN,OUT) + local SubSubArray = { + prop1 = Type:Int32(), + prop2 = Type:Bool() + } + + local SubMix = { + subArr = Type:Array(2,SubSubArray), + prop3 = Type:Float() + } + + --Testing Variables + IN.ArrayOfFloats = Type:Array(3, Type:Float()) + IN.ComplexStruct = Type:Array(2, SubMix) + + -- Input Parameters + IN.CameraPerspective_ID = Type:Int32() -- ID of camera perspective (DEFAULT: 1) - all options listed below + --[[ + 1: Side + 2: Wheel close-up + 3: Classic beauty shot + 4: Big front + 5: High roof + 6: Trunk + 7: Low Back Left + ]]-- + + IN.Camera_TurntableSettings = anim_utils.getTurntableSettings() + + IN.CarPaint_ID = Type:Int32() -- ID of exterior paint (DEFAULT: 1) - all options listed below + --[[ + 1: Pyhtonic Blue + 2: Transanit Blue + 3: Black + 4: Black Metallic + 5: Mineral White + 6: Silver Blue + 7: Ametrin Metallic + ]]-- + + -- Output Parameters + OUT.CameraPerspective_ID = Type:Int32() -- linked to 'Anim_CameraCrane' script + OUT.Camera_TurntableSettings = anim_utils.getTurntableSettings() -- linked to 'Anim_CameraCrane' script + + OUT.CarPaint_ID = Type:Int32() -- linked to 'Anim_CarPaint' script + + IN.Door_B_L_isOpen = Type:Bool() -- Open/close door (back left) (false = fully closed, true = fully open) + IN.Door_B_R_isOpen = Type:Bool() -- Open/close door (back right) (false = fully closed, true = fully open) + IN.Door_F_L_isOpen = Type:Bool() -- Open/close door (front left) (false = fully closed, true = fully open) + IN.Door_F_R_isOpen = Type:Bool() -- Open/close door (front right) (false = fully closed, true = fully open) + IN.Tailgate_isOpen = Type:Bool() -- Open/close tailgate (false = fully closed, true = fully open) + + OUT.Door_B_L_isOpen = Type:Bool() + OUT.Door_B_R_isOpen = Type:Bool() + OUT.Door_F_L_isOpen = Type:Bool() + OUT.Door_F_R_isOpen = Type:Bool() + OUT.Tailgate_isOpen = Type:Bool() +end + + +-- Passing through the Input parameters to the Output parameters +function run(IN,OUT) + OUT.CameraPerspective_ID = IN.CameraPerspective_ID + OUT.CarPaint_ID = IN.CarPaint_ID + OUT.Camera_TurntableSettings = IN.Camera_TurntableSettings + + OUT.Door_B_L_isOpen = IN.Door_B_L_isOpen + OUT.Door_B_R_isOpen = IN.Door_B_R_isOpen + OUT.Door_F_L_isOpen = IN.Door_F_L_isOpen + OUT.Door_F_R_isOpen = IN.Door_F_R_isOpen + OUT.Tailgate_isOpen = IN.Tailgate_isOpen +end diff --git a/components/libComponents/tests/resources/lua_scripts/SceneControls_withExtras.lua b/components/libComponents/tests/resources/lua_scripts/SceneControls_withExtras.lua new file mode 100644 index 00000000..459d1624 --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/SceneControls_withExtras.lua @@ -0,0 +1,77 @@ +modules("anim_utils") + + +-- Define Input and Output parameters +function interface(IN,OUT) + -- Input Parameters + IN.extra_property = Type:Int32() + IN.Extra_Struct = { + extra_child1 = Type:Bool(), + extra_child2 = Type:Int32() + } + + IN.CameraPerspective_ID = Type:Int32() -- ID of camera perspective (DEFAULT: 1) - all options listed below + --[[ + 1: Side + 2: Wheel close-up + 3: Classic beauty shot + 4: Big front + 5: High roof + 6: Trunk + 7: Low Back Left + ]]-- + + IN.Camera_TurntableSettings = anim_utils.getTurntableSettings() + + IN.CarPaint_ID = Type:Int32() -- ID of exterior paint (DEFAULT: 1) - all options listed below + --[[ + 1: Pyhtonic Blue + 2: Transanit Blue + 3: Black + 4: Black Metallic + 5: Mineral White + 6: Silver Blue + 7: Ametrin Metallic + ]]-- + + -- Output Parameters + OUT.extra_property = Type:Int32() + OUT.Extra_Struct = { + extra_child1 = Type:Bool(), + extra_child2 = Type:Int32() + } + + OUT.CameraPerspective_ID = Type:Int32() -- linked to 'Anim_CameraCrane' script + OUT.Camera_TurntableSettings = anim_utils.getTurntableSettings() -- linked to 'Anim_CameraCrane' script + + OUT.CarPaint_ID = Type:Int32() -- linked to 'Anim_CarPaint' script + + IN.Door_B_L_isOpen = Type:Bool() -- Open/close door (back left) (false = fully closed, true = fully open) + IN.Door_B_R_isOpen = Type:Bool() -- Open/close door (back right) (false = fully closed, true = fully open) + IN.Door_F_L_isOpen = Type:Bool() -- Open/close door (front left) (false = fully closed, true = fully open) + IN.Door_F_R_isOpen = Type:Bool() -- Open/close door (front right) (false = fully closed, true = fully open) + IN.Tailgate_isOpen = Type:Bool() -- Open/close tailgate (false = fully closed, true = fully open) + + OUT.Door_B_L_isOpen = Type:Bool() + OUT.Door_B_R_isOpen = Type:Bool() + OUT.Door_F_L_isOpen = Type:Bool() + OUT.Door_F_R_isOpen = Type:Bool() + OUT.Tailgate_isOpen = Type:Bool() +end + + +-- Passing through the Input parameters to the Output parameters +function run(IN,OUT) + OUT.extra_property = IN.extra_property + OUT.Extra_Struct = IN.Extra_Struct + + OUT.CameraPerspective_ID = IN.CameraPerspective_ID + OUT.CarPaint_ID = IN.CarPaint_ID + OUT.Camera_TurntableSettings = IN.Camera_TurntableSettings + + OUT.Door_B_L_isOpen = IN.Door_B_L_isOpen + OUT.Door_B_R_isOpen = IN.Door_B_R_isOpen + OUT.Door_F_L_isOpen = IN.Door_F_L_isOpen + OUT.Door_F_R_isOpen = IN.Door_F_R_isOpen + OUT.Tailgate_isOpen = IN.Tailgate_isOpen +end diff --git a/components/libComponents/tests/resources/lua_scripts/SyntheticData.lua b/components/libComponents/tests/resources/lua_scripts/SyntheticData.lua new file mode 100644 index 00000000..a9f24f2f --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/SyntheticData.lua @@ -0,0 +1,15 @@ +function init() + GLOBAL.TrafficSigns = { + posX = Type:Float(), + code = Type:Int32() + } +end + +function interface(IN,OUT) + IN.RoadSigns = Type:Array(10, GLOBAL.TrafficSigns) + OUT.TrafficSigns = Type:Array(10, GLOBAL.TrafficSigns) +end + +function run(IN,OUT) + OUT.TrafficSigns = IN.RoadSigns +end diff --git a/components/libComponents/tests/resources/lua_scripts/TracePlayerData.lua b/components/libComponents/tests/resources/lua_scripts/TracePlayerData.lua new file mode 100644 index 00000000..c62a2abf --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/TracePlayerData.lua @@ -0,0 +1,16 @@ +function init() + GLOBAL.iCustomTimer = { + delta_time = Type:Int32(), + timestamp_milli = Type:Int32(), + activate_animation = Type:Bool() + } +end + +function interface(IN,OUT) + IN.TracePlayerData = GLOBAL.iCustomTimer + OUT.Timer = GLOBAL.iCustomTimer +end + +function run(IN,OUT) + OUT.Timer = IN.TracePlayerData +end \ No newline at end of file diff --git a/components/libComponents/tests/resources/lua_scripts/dummyAllTypes.lua b/components/libComponents/tests/resources/lua_scripts/dummyAllTypes.lua new file mode 100644 index 00000000..195b987b --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/dummyAllTypes.lua @@ -0,0 +1,15 @@ +function interface(IN,OUT) + IN.propIntegerIn = Type:Int32() + IN.propFloatIn = Type:Float() + IN.propBoolIn = Type:Bool() + + OUT.propIntegerOut = Type:Int32() + OUT.propFloatOut = Type:Float() + OUT.propBoolOut = Type:Bool() +end + +function run(IN,OUT) + OUT.propIntegerOut = IN.propIntegerIn + OUT.propFloatOut = IN.propFloatIn + OUT.propBoolOut = IN.propBoolIn +end \ No newline at end of file diff --git a/components/libComponents/tests/resources/lua_scripts/dummyAllTypes_NoInteger.lua b/components/libComponents/tests/resources/lua_scripts/dummyAllTypes_NoInteger.lua new file mode 100644 index 00000000..b495e612 --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/dummyAllTypes_NoInteger.lua @@ -0,0 +1,12 @@ +function interface(IN,OUT) + IN.propFloatIn = Type:Float() + IN.propBoolIn = Type:Bool() + + OUT.propFloatOut = Type:Float() + OUT.propBoolOut = Type:Bool() +end + +function run(IN,OUT) + OUT.propFloatIn = IN.propFloatOut + OUT.propBoolIn = IN.propBoolOut +end \ No newline at end of file diff --git a/components/libComponents/tests/resources/lua_scripts/modules/anim_utils.lua b/components/libComponents/tests/resources/lua_scripts/modules/anim_utils.lua new file mode 100644 index 00000000..fa38e134 --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/modules/anim_utils.lua @@ -0,0 +1,97 @@ +local anim_utils = {} + + +anim_utils.animationSettings = +{ + SkipAnimations = Type:Bool(), + SpeedModifier = Type:Float(), +} + +function anim_utils.getAnimationSettings() + return anim_utils.animationSettings +end + + +anim_utils.turntableSettings = +{ + TurntableMode = Type:Bool(), + TurntableDuration_s = Type:Float(), -- duration of one full rotation [seconds] +} + +function anim_utils.getTurntableSettings() + return anim_utils.turntableSettings +end + + +-- Linear interpolation between x (number) and y (number) using an interpolation value t (number, 0.0 to 1.0) +-- output value is not clamped; returns number +function anim_utils.lerp(x, y, t) + return x * (1.0 - t) + y * t +end + + +function anim_utils.animateFromTo(from, to, progress, interpolation) + interpolation = interpolation or "linear" -- if no interpolation arg is specified, assume linear + + --if type(to) == "string" then + -- return progress < 1.0 and from or to -- interpolation for strings is only sensible as 'constant' + --end + + if (interpolation == "constant") then + + if type(to) == "number" then + return progress < 1.0 and from or to + + elseif type(to) == "table" then + local t = {} + for i = 1, #to do + t[i] = progress < 1.0 and from[i] or to[i] + end + return t + end + + elseif (interpolation == "linear") then + + if type(to) == "number" then + return anim_utils.lerp(from, to, progress) + + elseif type(to) == "table" then + local t = {} + for i = 1, #to do + t[i] = anim_utils.lerp(from[i], to[i], progress) + end + return t + end + + elseif (interpolation == "smooth") then + local smoothstep = progress * progress * (3.0 - 2.0 * progress) + + if type(to) == "number" then + return smoothstep * to + (1.0 - smoothstep) * from + + elseif type(to) == "table" then + local t = {} + for i = 1, #to do + t[i] = smoothstep * to[i] + (1.0 - smoothstep) * from[i] + end + return t + end + + elseif (interpolation == "quadratic") then + local quadratic = math.pow(progress, 2.0) + + if type(to) == "number" then + return quadratic * to + (1.0 - quadratic) * from + + elseif type(to) == "table" then + local t = {} + for i = 1, #to do + t[i] = quadratic * to[i] + (1.0 - quadratic) * from[i] + end + return t + end + end +end + + +return anim_utils diff --git a/components/libComponents/tests/resources/lua_scripts/modules/car_utils.lua b/components/libComponents/tests/resources/lua_scripts/modules/car_utils.lua new file mode 100644 index 00000000..4639e635 --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/modules/car_utils.lua @@ -0,0 +1,60 @@ +local car_utils = {} + + +car_utils.paintSettings = +{ + Name = Type:String(), -- for debugging + BaseColor = Type:Vec4f(), + MetallicRoughness = Type:Vec2f(), + SheenRoughness = Type:Float(), + SheenScale = Type:Float(), + NormalScale = Type:Float(), +} + +function car_utils.getPaintSettings() + return car_utils.paintSettings +end + + +car_utils.perspectiveSettings = +{ + CraneGimbal = { + Yaw = Type:Float(), + Pitch = Type:Float(), + Roll = Type:Float(), + Distance = Type:Float(), + }, + Origin = Type:Vec3f(), +} + +function car_utils.getPerspectiveSettings() + return car_utils.perspectiveSettings +end + + +-- -- Clone table and make it unique (allows modifying of tables from modules) +-- function car_utils.clone_table(t) +-- -- return { unpack(org) } +-- local nt = {} +-- for i = 1, rl_len(t) do +-- nt[i] = t[i] +-- end +-- return nt +-- end + + +-- Clamp f (number) between 'minimum' (number) and 'maximum' (number) +-- returns number +function car_utils.clamp(f, minimum, maximum) + if minimum > maximum then minimum, maximum = maximum, minimum end -- swap arguments if boundaries are provided in the wrong order + return math.max(minimum, math.min(maximum, f)) +end + + +-- Return 1 if f (number) is greater than zero, -1 if f is less than zero, or 0 if f is zero +function car_utils.sign(f) + if (f > 0) then return 1 elseif (f < 0) then return -1 else return 0 end +end + + +return car_utils diff --git a/components/libComponents/tests/resources/lua_scripts/saInfo.lua b/components/libComponents/tests/resources/lua_scripts/saInfo.lua new file mode 100644 index 00000000..42bef0ed --- /dev/null +++ b/components/libComponents/tests/resources/lua_scripts/saInfo.lua @@ -0,0 +1,132 @@ +function init() + local Lane = { + isEnabled = Type:Bool(), + inputId = Type:Int32(), + displayIndex = Type:Int32(), + width = Type:Float(), + showInHud = Type:Bool() } + + GLOBAL.iLanes = { + neighborLeft = Lane, + ego = Lane, + neighborRight = Lane } + + GLOBAL.iAcc = { + state = Type:Int32(), --enum: Off, Active, Overruled, TakeOverRequest, StandBy + followingState = Type:Int32(), --enum: Not_Following, Following, RequestStartDriving, Overruled, TakeOverRequest + handsOffOptionState = Type:Int32(), --enum: Not_Available, Available, Active, StandBy_Hack + desiredDistanceSteps = Type:Int32(), --enum: Invalid, One_Step, Two_Steps, Three_Steps, Four_Steps + desiredDistance = Type:Float(), + desiredDistanceStepsButtonPressedCounter = Type:Int32() } + + GLOBAL.iLsa = { + maneuver = Type:Int32(), -- enum: NoManeuver, LaneChangeLeft, LaneChangeRight, LaneChangeSearchLeft, LaneChangeSearchRight + laneMarkingDisplayLeft = Type:Int32(), -- enum: NotVisible, Visible, Visible_Reduced, Warning_Lane_Change, Warning_Lane_Departure + laneMarkingDisplayRight = Type:Int32(), -- enum: NotVisible, Visible, Visible_Reduced, Warning_Lane_Change, Warning_Lane_Departure + laneMarkingLaneInputIdLeft = Type:Int32(), + laneMarkingLaneDisplayIndexLeft = Type:Int32(), + laneMarkingLaneInputIdRight = Type:Int32(), + laneMarkingLaneDisplayIndexRight = Type:Int32(), + lsaDropCounter = Type:Int32() } + + GLOBAL.iEmergencyCorridor = { + laneInputId = Type:Int32(), + laneDisplayIndex = Type:Int32(), + positionY = Type:Float(), + width = Type:Float() } + + GLOBAL.iRabbit = { + isEnabled = Type:Bool(), + positionX = Type:Float(), + positionY = Type:Float(), + rawReferencePointX = Type:Float(), + rawReferencePointY = Type:Float(), + laneInputId = Type:Int32(), + laneDisplayIndex = Type:Int32(), + absoluteVelocityX = Type:Float(), + objectClassification = Type:Int32(), -- enum: Unknown, Bike, Car, Truck, Van, Pedestrian + classificationLocked = Type:Bool(), + objectHighlightReason = Type:Int32(), -- enum: None, Following, RequestStartDriving, Overruled, TakeOverRequest, Warning + objectInputId = Type:Int32(), + objectDisplayId = Type:Int32(), + length = Type:Float(), + width = Type:Float(), + height = Type:Float(), + noLaneChangeAnimation = Type:Bool(), + keepInHudHighlight = Type:Bool(), + showInHud = Type:Bool() } + + GLOBAL.iLaneChangeHint = { + objectDisplayIdFront = Type:Int32(), + objectDisplayIdBack = Type:Int32(), + gapLaneInputId = Type:Int32(), + gapLaneDisplayIndex = Type:Int32() } + + GLOBAL.iEgoVehicle = { + positionY = Type:Float(), + absoluteVelocityX = Type:Float(), + inputLaneId = Type:Int32(), + laneDisplayIndex = Type:Int32() } + + local TimeStamp = { + isValid = Type:Bool(), + seconds = Type:Int32(), + nanoseconds = Type:Int32() } + + GLOBAL.iEgoVehicleConfig = { + length = Type:Float(), + width = Type:Float() } + + GLOBAL.iSceneMeta = { + --scene and display behaviour + timeStamp = TimeStamp, + beginProcessingTimeStamp = TimeStamp, -- unsure if needed + operatingState = Type:Int32(), -- enum: NotAvailable_Initializing, NotAvailable_GenericError, Available + displayState = Type:Int32(), -- enum: Do_Not_Display, Display, Display_Reduced + + --SP21 + drivingModeLevel = Type:Int32(), -- enum: Level0_Manual, Level1_TAF, Level2_HAF + isLivingMode = Type:Bool(), + focusRequestPossible = Type:Bool(), + isTrailerActive = Type:Bool() } + +end + +function interface(IN,OUT) + --scene object controller inputs + IN.ACC = GLOBAL.iAcc + IN.LSA = GLOBAL.iLsa + IN.LaneChangeHint = GLOBAL.iLaneChangeHint + IN.Lanes = GLOBAL.iLanes + IN.DetectedObjects = Type:Array(14, GLOBAL.iRabbit) + IN.EgoVehicle = GLOBAL.iEgoVehicle + IN.EmergencyCorridor = GLOBAL.iEmergencyCorridor + IN.EgoVehicleConfig = GLOBAL.iEgoVehicleConfig + IN.SceneMeta = GLOBAL.iSceneMeta + + --output + OUT.ACC = GLOBAL.iAcc + OUT.LSA = GLOBAL.iLsa + OUT.LaneChangeHint = GLOBAL.iLaneChangeHint + OUT.Lanes = GLOBAL.iLanes + OUT.DetectedObjects = Type:Array(14, GLOBAL.iRabbit) + OUT.EgoVehicle = GLOBAL.iEgoVehicle + OUT.EmergencyCorridor = GLOBAL.iEmergencyCorridor + OUT.EgoVehicleConfig = GLOBAL.iEgoVehicleConfig + OUT.SceneMeta = GLOBAL.iSceneMeta +end + +function run(IN,OUT) + + --pass through + OUT.ACC = IN.ACC + OUT.LSA = IN.LSA + OUT.LaneChangeHint = IN.LaneChangeHint + OUT.Lanes = IN.Lanes + OUT.DetectedObjects = IN.DetectedObjects + OUT.EgoVehicle = IN.EgoVehicle + OUT.EmergencyCorridor = IN.EmergencyCorridor + OUT.EgoVehicleConfig = IN.EgoVehicleConfig + OUT.SceneMeta = IN.SceneMeta + +end \ No newline at end of file diff --git a/components/libComponents/tests/resources/raco_traces/g05_demo.rctrace b/components/libComponents/tests/resources/raco_traces/g05_demo.rctrace new file mode 100644 index 00000000..21ef7234 --- /dev/null +++ b/components/libComponents/tests/resources/raco_traces/g05_demo.rctrace @@ -0,0 +1,249 @@ +[ + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 2, + "CarPaint_ID": 1, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_L_isOpen": false, + "Door_B_R_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 1000 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 1, + "CarPaint_ID": 1 + } + }, + "TracePlayerData": { + "timestamp(ms)": 2000 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 2 + } + }, + "TracePlayerData": { + "timestamp(ms)": 5001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 2 + } + }, + "TracePlayerData": { + "timestamp(ms)": 10001 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 5 + } + }, + "TracePlayerData": { + "timestamp(ms)": 15001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 3 + } + }, + "TracePlayerData": { + "timestamp(ms)": 20001 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 23501 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 24001 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 24501 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_R_isOpen": true, + "CarPaint_ID": 4 + } + }, + "TracePlayerData": { + "timestamp(ms)": 25001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 4, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_L_isOpen": false, + "Door_B_R_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 30001 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 6 + } + }, + "TracePlayerData": { + "timestamp(ms)": 35001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 5 + } + }, + "TracePlayerData": { + "timestamp(ms)": 40001 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 3 + } + }, + "TracePlayerData": { + "timestamp(ms)": 45001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 6 + } + }, + "TracePlayerData": { + "timestamp(ms)": 50001 + } + }, + { + "SceneData": { + "SceneControls": { + "Tailgate_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 52501 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 53501 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 54001 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 54501 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_L_isOpen": true, + "CarPaint_ID": 7 + } + }, + "TracePlayerData": { + "timestamp(ms)": 55001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 7, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_R_isOpen": false, + "Tailgate_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 60001 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 1, + "Door_B_L_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 65001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 1 + } + }, + "TracePlayerData": { + "timestamp(ms)": 70001 + } + } +] diff --git a/components/libComponents/tests/resources/raco_traces/g05_demo_Arrays.rctrace b/components/libComponents/tests/resources/raco_traces/g05_demo_Arrays.rctrace new file mode 100644 index 00000000..5bdd5ff4 --- /dev/null +++ b/components/libComponents/tests/resources/raco_traces/g05_demo_Arrays.rctrace @@ -0,0 +1,285 @@ +[ + { + "SceneData": { + "SceneControls_withArrays": { + "CameraPerspective_ID": 2, + "CarPaint_ID": 1, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_L_isOpen": false, + "Door_B_R_isOpen": false, + "ArrayOfFloats": + [ + 7.7, + 5.5 + ] + } + }, + "TracePlayerData": { + "timestamp(ms)": 1000 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CameraPerspective_ID": 1, + "CarPaint_ID": 1, + "ComplexStruct": + [ + { + "subArr": + [ + { + "prop1": 1, + "prop2": false + }, + { + "prop1": 2, + "prop2": true + } + ], + "prop3": 123.456 + }, + { + "subArr": + [ + { + "prop1": 11, + "prop2": false + }, + { + "prop1": 22, + "prop2": true + } + ], + "prop3": 789.101 + } + ] + } + }, + "TracePlayerData": { + "timestamp(ms)": 2000 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CarPaint_ID": 2 + } + }, + "TracePlayerData": { + "timestamp(ms)": 5001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CameraPerspective_ID": 2 + } + }, + "TracePlayerData": { + "timestamp(ms)": 10001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CarPaint_ID": 5 + } + }, + "TracePlayerData": { + "timestamp(ms)": 15001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CameraPerspective_ID": 3 + } + }, + "TracePlayerData": { + "timestamp(ms)": 20001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "Door_F_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 23501 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "Door_F_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 24001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "Door_B_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 24501 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "Door_B_R_isOpen": true, + "CarPaint_ID": 4 + } + }, + "TracePlayerData": { + "timestamp(ms)": 25001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CameraPerspective_ID": 4, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_L_isOpen": false, + "Door_B_R_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 30001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CarPaint_ID": 6 + } + }, + "TracePlayerData": { + "timestamp(ms)": 35001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CameraPerspective_ID": 5 + } + }, + "TracePlayerData": { + "timestamp(ms)": 40001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CarPaint_ID": 3 + } + }, + "TracePlayerData": { + "timestamp(ms)": 45001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CameraPerspective_ID": 6 + } + }, + "TracePlayerData": { + "timestamp(ms)": 50001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "Tailgate_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 52501 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "Door_B_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 53501 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "Door_B_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 54001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "Door_F_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 54501 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "Door_F_L_isOpen": true, + "CarPaint_ID": 7 + } + }, + "TracePlayerData": { + "timestamp(ms)": 55001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CameraPerspective_ID": 7, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_R_isOpen": false, + "Tailgate_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 60001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CarPaint_ID": 1, + "Door_B_L_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 65001 + } + }, + { + "SceneData": { + "SceneControls_withArrays": { + "CameraPerspective_ID": 1 + } + }, + "TracePlayerData": { + "timestamp(ms)": 70001 + } + } +] diff --git a/components/libComponents/tests/resources/raco_traces/g05_demo_withDummy.rctrace b/components/libComponents/tests/resources/raco_traces/g05_demo_withDummy.rctrace new file mode 100644 index 00000000..e2ea043b --- /dev/null +++ b/components/libComponents/tests/resources/raco_traces/g05_demo_withDummy.rctrace @@ -0,0 +1,252 @@ +[ + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 2, + "CarPaint_ID": 1, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_L_isOpen": false, + "Door_B_R_isOpen": false + }, + "DummyScript": { + "dummyPropBool": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 1000 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 1, + "CarPaint_ID": 1 + } + }, + "TracePlayerData": { + "timestamp(ms)": 2000 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 2 + } + }, + "TracePlayerData": { + "timestamp(ms)": 5001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 2 + } + }, + "TracePlayerData": { + "timestamp(ms)": 10001 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 5 + } + }, + "TracePlayerData": { + "timestamp(ms)": 15001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 3 + } + }, + "TracePlayerData": { + "timestamp(ms)": 20001 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 23501 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 24001 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 24501 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_R_isOpen": true, + "CarPaint_ID": 4 + } + }, + "TracePlayerData": { + "timestamp(ms)": 25001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 4, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_L_isOpen": false, + "Door_B_R_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 30001 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 6 + } + }, + "TracePlayerData": { + "timestamp(ms)": 35001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 5 + } + }, + "TracePlayerData": { + "timestamp(ms)": 40001 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 3 + } + }, + "TracePlayerData": { + "timestamp(ms)": 45001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 6 + } + }, + "TracePlayerData": { + "timestamp(ms)": 50001 + } + }, + { + "SceneData": { + "SceneControls": { + "Tailgate_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 52501 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 53501 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 54001 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 54501 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_L_isOpen": true, + "CarPaint_ID": 7 + } + }, + "TracePlayerData": { + "timestamp(ms)": 55001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 7, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_R_isOpen": false, + "Tailgate_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 60001 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 1, + "Door_B_L_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 65001 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 1 + } + }, + "TracePlayerData": { + "timestamp(ms)": 70001 + } + } +] diff --git a/components/libComponents/tests/resources/raco_traces/g05_demo_withExtras.rctrace b/components/libComponents/tests/resources/raco_traces/g05_demo_withExtras.rctrace new file mode 100644 index 00000000..a66dadc9 --- /dev/null +++ b/components/libComponents/tests/resources/raco_traces/g05_demo_withExtras.rctrace @@ -0,0 +1,261 @@ +[ + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 2, + "CarPaint_ID": 1, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_L_isOpen": false, + "Door_B_R_isOpen": false, + "Tailgate_isOpen": false, + "extra_property": 1 + } + }, + "TracePlayerData": { + "timestamp(ms)": 1000 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 1, + "CarPaint_ID": 1 + } + }, + "TracePlayerData": { + "timestamp(ms)": 1100 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 2 + } + }, + "TracePlayerData": { + "timestamp(ms)": 1200 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 2 + } + }, + "TracePlayerData": { + "timestamp(ms)": 1300 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 5 + }, + "ExtraLuaScript": { + "dummy_struct": { + "dummy_prop#1": 22, + "dummy_prop#2": 23 + } + } + }, + "TracePlayerData": { + "timestamp(ms)": 1400 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 3 + } + }, + "TracePlayerData": { + "timestamp(ms)": 1500 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 1600 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 1700 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 1800 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_R_isOpen": true, + "CarPaint_ID": 4 + } + }, + "TracePlayerData": { + "timestamp(ms)": 1900 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 4, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_L_isOpen": false, + "Door_B_R_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 2000 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 6 + } + }, + "TracePlayerData": { + "timestamp(ms)": 2100 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 5 + } + }, + "TracePlayerData": { + "timestamp(ms)": 2200 + } + }, + { + "SceneData": { + "SceneControls": { + "CarPaint_ID": 3 + } + }, + "TracePlayerData": { + "timestamp(ms)": 2300 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 6 + } + }, + "TracePlayerData": { + "timestamp(ms)": 2400 + } + }, + { + "SceneData": { + "SceneControls": { + "Tailgate_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 2500 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 2600 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_L_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 2700 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_R_isOpen": true + } + }, + "TracePlayerData": { + "timestamp(ms)": 2800 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_F_L_isOpen": true, + "CarPaint_ID": 7 + } + }, + "TracePlayerData": { + "timestamp(ms)": 2900 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 7, + "Door_F_L_isOpen": false, + "Door_F_R_isOpen": false, + "Door_B_R_isOpen": false, + "Tailgate_isOpen": false + } + }, + "TracePlayerData": { + "timestamp(ms)": 3000 + } + }, + { + "SceneData": { + "SceneControls": { + "Door_B_L_isOpen": false, + "extra_property": 57468 + } + }, + "TracePlayerData": { + "timestamp(ms)": 3100 + } + }, + { + "SceneData": { + "SceneControls": { + "CameraPerspective_ID": 1, + "Extra_Struct": { + "extra_child1" : false, + "extra_child2" : 33 + } + } + }, + "TracePlayerData": { + "timestamp(ms)": 3200 + } + } +] diff --git a/components/libComponents/tests/resources/raco_traces/invalid_empty.rctrace b/components/libComponents/tests/resources/raco_traces/invalid_empty.rctrace new file mode 100644 index 00000000..e69de29b diff --git a/components/libComponents/tests/resources/raco_traces/invalid_wrongExtension.so b/components/libComponents/tests/resources/raco_traces/invalid_wrongExtension.so new file mode 100755 index 00000000..e5f9be2a Binary files /dev/null and b/components/libComponents/tests/resources/raco_traces/invalid_wrongExtension.so differ diff --git a/components/libComponents/tests/resources/raco_traces/invalid_wrongFormat.rctrace b/components/libComponents/tests/resources/raco_traces/invalid_wrongFormat.rctrace new file mode 100755 index 00000000..e5f9be2a Binary files /dev/null and b/components/libComponents/tests/resources/raco_traces/invalid_wrongFormat.rctrace differ diff --git a/components/libComponents/tests/resources/raco_traces/invalid_wrongRootType.rctrace b/components/libComponents/tests/resources/raco_traces/invalid_wrongRootType.rctrace new file mode 100644 index 00000000..292844a0 --- /dev/null +++ b/components/libComponents/tests/resources/raco_traces/invalid_wrongRootType.rctrace @@ -0,0 +1,11952 @@ +{ + "externalProjects": { + }, + "fileVersion": 14, + "instances": [ + { + "properties": { + "instanceCount": { + "annotations": [ + { + "properties": { + "max": 20, + "min": 1 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 1 + }, + "mesh": null, + "objectID": "6b96ed9b-05ab-434d-a494-abd825d69e6f", + "objectName": "MeshNode", + "rotation": { + "x": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "scale": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + } + }, + "translation": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "visible": true + }, + "typeName": "MeshNode" + }, + { + "properties": { + "children": { + "properties": [ + { + "typeName": "Ref", + "value": "6b96ed9b-05ab-434d-a494-abd825d69e6f" + } + ] + }, + "objectID": "75991dc5-7583-4be0-b539-3406ebce7fa4", + "objectName": "Node", + "rotation": { + "x": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "scale": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + } + }, + "translation": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "visible": true + }, + "typeName": "Node" + }, + { + "properties": { + "frustum": { + "aspectRatio": { + "annotations": [ + { + "properties": { + "max": 4, + "min": 0.5 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 2 + }, + "farPlane": { + "annotations": [ + { + "properties": { + "max": 10000, + "min": 100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1000 + }, + "fieldOfView": { + "annotations": [ + { + "properties": { + "max": 120, + "min": 10 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 35 + }, + "nearPlane": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0.1 + } + }, + "objectID": "b8fa8ac0-d1ab-4574-80ef-e303fe077452", + "objectName": "PerspectiveCamera", + "rotation": { + "x": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "scale": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + } + }, + "translation": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 10 + } + }, + "viewport": { + "height": { + "annotations": [ + { + "properties": { + "max": 7680, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 720 + }, + "offsetX": { + "annotations": [ + { + "properties": { + "max": 7680, + "min": -7680 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "offsetY": { + "annotations": [ + { + "properties": { + "max": 7680, + "min": -7680 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "width": { + "annotations": [ + { + "properties": { + "max": 7680, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 1440 + } + }, + "visible": true + }, + "typeName": "PerspectiveCamera" + }, + { + "properties": { + "backgroundColor": { + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "enableTimerFlag": false, + "objectID": "f4fef46d-5063-4e4f-84c4-4debd9752dc4", + "objectName": "saInfo", + "runTimer": false, + "sceneId": { + "annotations": [ + { + "properties": { + "max": 1024, + "min": 1 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 123 + }, + "viewport": { + "i1": { + "annotations": [ + { + "properties": { + "max": 4096, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 1440 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 4096, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 720 + } + } + }, + "typeName": "ProjectSettings" + }, + { + "properties": { + "luaInputs": { + "order": [ + "ACC", + "DetectedObjects", + "EgoVehicle", + "EgoVehicleConfig", + "EmergencyCorridor", + "LSA", + "LaneChangeHint", + "Lanes", + "SceneMeta" + ], + "properties": { + "ACC": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "desiredDistance", + "desiredDistanceSteps", + "desiredDistanceStepsButtonPressedCounter", + "followingState", + "handsOffOptionState", + "state" + ], + "properties": { + "desiredDistance": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "desiredDistanceSteps": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "desiredDistanceStepsButtonPressedCounter": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "followingState": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "handsOffOptionState": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "state": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "DetectedObjects": { + "annotations": [ + { + "properties": { + "engineType": 14 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14" + ], + "properties": { + "1": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "10": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "11": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "12": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "13": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "14": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "2": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "3": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "4": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "5": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "6": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "7": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "8": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "9": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "EgoVehicle": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "inputLaneId", + "laneDisplayIndex", + "positionY" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "inputLaneId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "EgoVehicleConfig": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "length", + "width" + ], + "properties": { + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "EmergencyCorridor": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "laneDisplayIndex", + "laneInputId", + "positionY", + "width" + ], + "properties": { + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "LSA": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "laneMarkingDisplayLeft", + "laneMarkingDisplayRight", + "laneMarkingLaneDisplayIndexLeft", + "laneMarkingLaneDisplayIndexRight", + "laneMarkingLaneInputIdLeft", + "laneMarkingLaneInputIdRight", + "lsaDropCounter", + "maneuver" + ], + "properties": { + "laneMarkingDisplayLeft": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneMarkingDisplayRight": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneMarkingLaneDisplayIndexLeft": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneMarkingLaneDisplayIndexRight": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneMarkingLaneInputIdLeft": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "laneMarkingLaneInputIdRight": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "lsaDropCounter": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "maneuver": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "LaneChangeHint": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "gapLaneDisplayIndex", + "gapLaneInputId", + "objectDisplayIdBack", + "objectDisplayIdFront" + ], + "properties": { + "gapLaneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "gapLaneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayIdBack": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "objectDisplayIdFront": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "Lanes": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "ego", + "neighborLeft", + "neighborRight" + ], + "properties": { + "ego": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "displayIndex", + "inputId", + "isEnabled", + "showInHud", + "width" + ], + "properties": { + "displayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "inputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "neighborLeft": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "displayIndex", + "inputId", + "isEnabled", + "showInHud", + "width" + ], + "properties": { + "displayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "inputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "neighborRight": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "displayIndex", + "inputId", + "isEnabled", + "showInHud", + "width" + ], + "properties": { + "displayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "inputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "SceneMeta": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "beginProcessingTimeStamp", + "displayState", + "drivingModeLevel", + "focusRequestPossible", + "isLivingMode", + "isTrailerActive", + "operatingState", + "timeStamp" + ], + "properties": { + "beginProcessingTimeStamp": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "isValid", + "nanoseconds", + "seconds" + ], + "properties": { + "isValid": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "nanoseconds": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "seconds": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + }, + "displayState": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "drivingModeLevel": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "focusRequestPossible": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "isLivingMode": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "isTrailerActive": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "operatingState": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "timeStamp": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "order": [ + "isValid", + "nanoseconds", + "seconds" + ], + "properties": { + "isValid": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "nanoseconds": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "seconds": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkEndAnnotation" + } + } + }, + "luaOutputs": { + "order": [ + "ACC", + "DetectedObjects", + "EgoVehicle", + "EgoVehicleConfig", + "EmergencyCorridor", + "LSA", + "LaneChangeHint", + "Lanes", + "SceneMeta" + ], + "properties": { + "ACC": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "desiredDistance", + "desiredDistanceSteps", + "desiredDistanceStepsButtonPressedCounter", + "followingState", + "handsOffOptionState", + "state" + ], + "properties": { + "desiredDistance": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "desiredDistanceSteps": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "desiredDistanceStepsButtonPressedCounter": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "followingState": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "handsOffOptionState": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "state": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "DetectedObjects": { + "annotations": [ + { + "properties": { + "engineType": 14 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14" + ], + "properties": { + "1": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "10": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "11": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "12": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "13": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "14": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "2": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "3": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "4": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "5": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "6": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "7": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "8": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "9": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "classificationLocked", + "height", + "isEnabled", + "keepInHudHighlight", + "laneDisplayIndex", + "laneInputId", + "length", + "noLaneChangeAnimation", + "objectClassification", + "objectDisplayId", + "objectHighlightReason", + "objectInputId", + "positionX", + "positionY", + "rawReferencePointX", + "rawReferencePointY", + "showInHud", + "width" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "classificationLocked": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "height": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "keepInHudHighlight": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "noLaneChangeAnimation": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "objectClassification": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectHighlightReason": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "rawReferencePointY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "EgoVehicle": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "absoluteVelocityX", + "inputLaneId", + "laneDisplayIndex", + "positionY" + ], + "properties": { + "absoluteVelocityX": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "inputLaneId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "EgoVehicleConfig": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "length", + "width" + ], + "properties": { + "length": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "EmergencyCorridor": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "laneDisplayIndex", + "laneInputId", + "positionY", + "width" + ], + "properties": { + "laneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "positionY": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "LSA": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "laneMarkingDisplayLeft", + "laneMarkingDisplayRight", + "laneMarkingLaneDisplayIndexLeft", + "laneMarkingLaneDisplayIndexRight", + "laneMarkingLaneInputIdLeft", + "laneMarkingLaneInputIdRight", + "lsaDropCounter", + "maneuver" + ], + "properties": { + "laneMarkingDisplayLeft": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneMarkingDisplayRight": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneMarkingLaneDisplayIndexLeft": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneMarkingLaneDisplayIndexRight": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneMarkingLaneInputIdLeft": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "laneMarkingLaneInputIdRight": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "lsaDropCounter": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "maneuver": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "LaneChangeHint": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "gapLaneDisplayIndex", + "gapLaneInputId", + "objectDisplayIdBack", + "objectDisplayIdFront" + ], + "properties": { + "gapLaneDisplayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "gapLaneInputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayIdBack": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "objectDisplayIdFront": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "Lanes": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "ego", + "neighborLeft", + "neighborRight" + ], + "properties": { + "ego": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "displayIndex", + "inputId", + "isEnabled", + "showInHud", + "width" + ], + "properties": { + "displayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "inputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "neighborLeft": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "displayIndex", + "inputId", + "isEnabled", + "showInHud", + "width" + ], + "properties": { + "displayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "inputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "neighborRight": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "displayIndex", + "inputId", + "isEnabled", + "showInHud", + "width" + ], + "properties": { + "displayIndex": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "inputId": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "isEnabled": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "showInHud": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "width": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "SceneMeta": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "beginProcessingTimeStamp", + "displayState", + "drivingModeLevel", + "focusRequestPossible", + "isLivingMode", + "isTrailerActive", + "operatingState", + "timeStamp" + ], + "properties": { + "beginProcessingTimeStamp": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "isValid", + "nanoseconds", + "seconds" + ], + "properties": { + "isValid": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "nanoseconds": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "seconds": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + }, + "displayState": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "drivingModeLevel": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "focusRequestPossible": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "isLivingMode": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "isTrailerActive": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "operatingState": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "timeStamp": { + "annotations": [ + { + "properties": { + "engineType": 13 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "order": [ + "isValid", + "nanoseconds", + "seconds" + ], + "properties": { + "isValid": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "nanoseconds": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "seconds": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + } + }, + "typeName": "Table::EngineTypeAnnotation::LinkStartAnnotation" + } + } + }, + "objectID": "351f9f4c-7819-4060-a345-1a4d2ffb11e0", + "objectName": "saInfo", + "uri": "../02.scripts/saInfo.lua" + }, + "typeName": "LuaScript" + } + ], + "links": [ + ], + "logicEngineVersion": [ + 0, + 7, + 0 + ], + "racoVersion": [ + 0, + 8, + 3 + ], + "ramsesVersion": [ + 27, + 0, + 105 + ] +} diff --git a/components/libComponents/tests/resources/raco_traces/valid_10frames_500ms.rctrace b/components/libComponents/tests/resources/raco_traces/valid_10frames_500ms.rctrace new file mode 100644 index 00000000..07d7f73f --- /dev/null +++ b/components/libComponents/tests/resources/raco_traces/valid_10frames_500ms.rctrace @@ -0,0 +1,4032 @@ +[ + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 0.0, + "desiredDistanceSteps" : 0, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 0 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 8.6111116409301758, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 0, + "laneMarkingDisplayRight" : 0, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 4294967295, + "laneMarkingLaneInputIdRight" : 4294967295, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 4294967295, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 4294967295, + "inputId" : 4294967295, + "isEnabled" : false, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 4294967295, + "inputId" : 4294967295, + "isEnabled" : false, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 0, + "focusRequestPossible" : false, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 891000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 500 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 58.849441528320312, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 4294967295, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 56.071140289306641, + "positionY" : 0.0, + "rawReferencePointX" : 44.669998168945312, + "rawReferencePointY" : -0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 8.6111116409301758, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 0, + "laneMarkingDisplayRight" : 0, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 4294967295, + "laneMarkingLaneInputIdRight" : 4294967295, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 4294967295, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 4294967295, + "inputId" : 4294967295, + "isEnabled" : false, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 4294967295, + "inputId" : 4294967295, + "isEnabled" : false, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 891000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 1000 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 58.849441528320312, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 56.071140289306641, + "positionY" : 0.0, + "rawReferencePointX" : 44.669998168945312, + "rawReferencePointY" : -0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.830001831054688, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -9.856348991394043, + "positionY" : 0.0, + "rawReferencePointX" : -11.939999580383301, + "rawReferencePointY" : 3.2599999904632568, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 8.6111116409301758, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 891000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 1500 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 58.849441528320312, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 56.143306732177734, + "positionY" : 0.0, + "rawReferencePointX" : 44.729999542236328, + "rawReferencePointY" : -0.05000000074505806, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.775001525878906, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -9.9044589996337891, + "positionY" : 0.0, + "rawReferencePointX" : -11.970000267028809, + "rawReferencePointY" : 3.1600000858306885, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 8.6111116409301758, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 2000 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 58.849441528320312, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 56.179386138916016, + "positionY" : 0.0, + "rawReferencePointX" : 44.759998321533203, + "rawReferencePointY" : -0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.810001373291016, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -9.6939802169799805, + "positionY" : 0.0, + "rawReferencePointX" : -11.789999961853027, + "rawReferencePointY" : 3.2100000381469727, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 8.6111116409301758, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 2500 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.250999450683594, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.270000457763672, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.899997711181641, + "positionY" : 0.0, + "rawReferencePointX" : 73.400001525878906, + "rawReferencePointY" : -3.75, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.696998596191406, + "positionY" : 0.0, + "rawReferencePointX" : 44.759998321533203, + "rawReferencePointY" : -0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.810001373291016, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.6419997215270996, + "positionY" : 0.0, + "rawReferencePointX" : -11.789999961853027, + "rawReferencePointY" : 3.2100000381469727, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.947048187255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 3000 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.250999450683594, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.264999389648438, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.843997955322266, + "positionY" : 0.0, + "rawReferencePointX" : 73.319999694824219, + "rawReferencePointY" : -3.7100000381469727, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.71099853515625, + "positionY" : 0.0, + "rawReferencePointX" : 44.779998779296875, + "rawReferencePointY" : -0.039999999105930328, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.814998626708984, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.5999994277954102, + "positionY" : 0.0, + "rawReferencePointX" : -11.729999542236328, + "rawReferencePointY" : 3.2100000381469727, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.947048187255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 3500 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.250999450683594, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.264999389648438, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.801998138427734, + "positionY" : 0.0, + "rawReferencePointX" : 73.260002136230469, + "rawReferencePointY" : -3.7200000286102295, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.724998474121094, + "positionY" : 0.0, + "rawReferencePointX" : 44.799999237060547, + "rawReferencePointY" : -0.019999999552965164, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.790000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.5580000877380371, + "positionY" : 0.0, + "rawReferencePointX" : -11.670000076293945, + "rawReferencePointY" : 3.2400000095367432, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.947048187255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 4000 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.264999389648438, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.264999389648438, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.801998138427734, + "positionY" : 0.0, + "rawReferencePointX" : 73.260002136230469, + "rawReferencePointY" : -3.7200000286102295, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.724998474121094, + "positionY" : 0.0, + "rawReferencePointX" : 44.799999237060547, + "rawReferencePointY" : -0.019999999552965164, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.790000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.5580000877380371, + "positionY" : 0.0, + "rawReferencePointX" : -11.670000076293945, + "rawReferencePointY" : 3.2400000095367432, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.947048187255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 4500 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.264999389648438, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.260000228881836, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.787998199462891, + "positionY" : 0.0, + "rawReferencePointX" : 73.239997863769531, + "rawReferencePointY" : -3.75, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.767002105712891, + "positionY" : 0.0, + "rawReferencePointX" : 44.860000610351562, + "rawReferencePointY" : -0.029999999329447746, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.790000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.4530000686645508, + "positionY" : 0.0, + "rawReferencePointX" : -11.520000457763672, + "rawReferencePointY" : 3.2400000095367432, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.947048187255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 5000 + } + } +] diff --git a/components/libComponents/tests/resources/raco_traces/valid_20211123.rctrace b/components/libComponents/tests/resources/raco_traces/valid_20211123.rctrace new file mode 100644 index 00000000..087f75a2 --- /dev/null +++ b/components/libComponents/tests/resources/raco_traces/valid_20211123.rctrace @@ -0,0 +1,16928 @@ +[ + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 0.0, + "desiredDistanceSteps" : 0, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 0 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 8.6111116409301758, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 0, + "laneMarkingDisplayRight" : 0, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 4294967295, + "laneMarkingLaneInputIdRight" : 4294967295, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 4294967295, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 4294967295, + "inputId" : 4294967295, + "isEnabled" : false, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 4294967295, + "inputId" : 4294967295, + "isEnabled" : false, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 0, + "focusRequestPossible" : false, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 891000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79241891 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 58.849441528320312, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 4294967295, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 56.071140289306641, + "positionY" : 0.0, + "rawReferencePointX" : 44.669998168945312, + "rawReferencePointY" : -0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 8.6111116409301758, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 0, + "laneMarkingDisplayRight" : 0, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 4294967295, + "laneMarkingLaneInputIdRight" : 4294967295, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 4294967295, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 4294967295, + "inputId" : 4294967295, + "isEnabled" : false, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 4294967295, + "inputId" : 4294967295, + "isEnabled" : false, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 891000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79241891 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 58.849441528320312, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 56.071140289306641, + "positionY" : 0.0, + "rawReferencePointX" : 44.669998168945312, + "rawReferencePointY" : -0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.830001831054688, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -9.856348991394043, + "positionY" : 0.0, + "rawReferencePointX" : -11.939999580383301, + "rawReferencePointY" : 3.2599999904632568, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 8.6111116409301758, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 891000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79241891 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 58.849441528320312, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 56.143306732177734, + "positionY" : 0.0, + "rawReferencePointX" : 44.729999542236328, + "rawReferencePointY" : -0.05000000074505806, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.775001525878906, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -9.9044589996337891, + "positionY" : 0.0, + "rawReferencePointX" : -11.970000267028809, + "rawReferencePointY" : 3.1600000858306885, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 8.6111116409301758, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79241932 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 58.849441528320312, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 56.179386138916016, + "positionY" : 0.0, + "rawReferencePointX" : 44.759998321533203, + "rawReferencePointY" : -0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.810001373291016, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -9.6939802169799805, + "positionY" : 0.0, + "rawReferencePointX" : -11.789999961853027, + "rawReferencePointY" : 3.2100000381469727, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 8.6111116409301758, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79241932 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.250999450683594, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.270000457763672, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.899997711181641, + "positionY" : 0.0, + "rawReferencePointX" : 73.400001525878906, + "rawReferencePointY" : -3.75, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.696998596191406, + "positionY" : 0.0, + "rawReferencePointX" : 44.759998321533203, + "rawReferencePointY" : -0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.810001373291016, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.6419997215270996, + "positionY" : 0.0, + "rawReferencePointX" : -11.789999961853027, + "rawReferencePointY" : 3.2100000381469727, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.947048187255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79241932 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.250999450683594, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.264999389648438, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.843997955322266, + "positionY" : 0.0, + "rawReferencePointX" : 73.319999694824219, + "rawReferencePointY" : -3.7100000381469727, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.71099853515625, + "positionY" : 0.0, + "rawReferencePointX" : 44.779998779296875, + "rawReferencePointY" : -0.039999999105930328, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.814998626708984, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.5999994277954102, + "positionY" : 0.0, + "rawReferencePointX" : -11.729999542236328, + "rawReferencePointY" : 3.2100000381469727, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.947048187255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79241932 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.250999450683594, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.264999389648438, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.801998138427734, + "positionY" : 0.0, + "rawReferencePointX" : 73.260002136230469, + "rawReferencePointY" : -3.7200000286102295, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.724998474121094, + "positionY" : 0.0, + "rawReferencePointX" : 44.799999237060547, + "rawReferencePointY" : -0.019999999552965164, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.790000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.5580000877380371, + "positionY" : 0.0, + "rawReferencePointX" : -11.670000076293945, + "rawReferencePointY" : 3.2400000095367432, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.947048187255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79241932 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.264999389648438, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.264999389648438, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.801998138427734, + "positionY" : 0.0, + "rawReferencePointX" : 73.260002136230469, + "rawReferencePointY" : -3.7200000286102295, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.724998474121094, + "positionY" : 0.0, + "rawReferencePointX" : 44.799999237060547, + "rawReferencePointY" : -0.019999999552965164, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.790000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.5580000877380371, + "positionY" : 0.0, + "rawReferencePointX" : -11.670000076293945, + "rawReferencePointY" : 3.2400000095367432, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.947048187255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 932000000, + "seconds" : 79241 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79241932 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.264999389648438, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.260000228881836, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.787998199462891, + "positionY" : 0.0, + "rawReferencePointX" : 73.239997863769531, + "rawReferencePointY" : -3.75, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.767002105712891, + "positionY" : 0.0, + "rawReferencePointX" : 44.860000610351562, + "rawReferencePointY" : -0.029999999329447746, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.790000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.4530000686645508, + "positionY" : 0.0, + "rawReferencePointX" : -11.520000457763672, + "rawReferencePointY" : 3.2400000095367432, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.947048187255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242092 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.264999389648438, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.260000228881836, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.787998199462891, + "positionY" : 0.0, + "rawReferencePointX" : 73.239997863769531, + "rawReferencePointY" : -3.75, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.767002105712891, + "positionY" : 0.0, + "rawReferencePointX" : 44.860000610351562, + "rawReferencePointY" : -0.029999999329447746, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.790000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.4530000686645508, + "positionY" : 0.0, + "rawReferencePointX" : -11.520000457763672, + "rawReferencePointY" : 3.2400000095367432, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.9296875, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242092 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.264999389648438, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.260000228881836, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.787998199462891, + "positionY" : 0.0, + "rawReferencePointX" : 73.239997863769531, + "rawReferencePointY" : -3.75, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.424999237060547, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.767002105712891, + "positionY" : 0.0, + "rawReferencePointX" : 44.860000610351562, + "rawReferencePointY" : -0.029999999329447746, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.790000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.4530000686645508, + "positionY" : 0.0, + "rawReferencePointX" : -11.520000457763672, + "rawReferencePointY" : 3.2400000095367432, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.9296875, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242092 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.264999389648438, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.260000228881836, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.752998352050781, + "positionY" : 0.0, + "rawReferencePointX" : 73.19000244140625, + "rawReferencePointY" : -3.7000000476837158, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.795001983642578, + "positionY" : 0.0, + "rawReferencePointX" : 44.900001525878906, + "rawReferencePointY" : -0.0099999997764825821, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.830001831054688, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.4039998054504395, + "positionY" : 0.0, + "rawReferencePointX" : -11.449999809265137, + "rawReferencePointY" : 3.2799999713897705, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.9296875, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242092 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.292999267578125, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.260000228881836, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.752998352050781, + "positionY" : 0.0, + "rawReferencePointX" : 73.19000244140625, + "rawReferencePointY" : -3.7000000476837158, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.795001983642578, + "positionY" : 0.0, + "rawReferencePointX" : 44.900001525878906, + "rawReferencePointY" : -0.0099999997764825821, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.830001831054688, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.4039998054504395, + "positionY" : 0.0, + "rawReferencePointX" : -11.449999809265137, + "rawReferencePointY" : 3.2799999713897705, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.9296875, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242092 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.292999267578125, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.260000228881836, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.675994873046875, + "positionY" : 0.0, + "rawReferencePointX" : 73.089996337890625, + "rawReferencePointY" : -3.6800000667572021, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.801998138427734, + "positionY" : 0.0, + "rawReferencePointX" : 44.909999847412109, + "rawReferencePointY" : -0.0099999997764825821, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.849998474121094, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.3025002479553223, + "positionY" : 0.0, + "rawReferencePointX" : -11.300000190734863, + "rawReferencePointY" : 3.3299999237060547, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.9296875, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242092 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.292999267578125, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.260000228881836, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.675994873046875, + "positionY" : 0.0, + "rawReferencePointX" : 73.089996337890625, + "rawReferencePointY" : -3.6800000667572021, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.801998138427734, + "positionY" : 0.0, + "rawReferencePointX" : 44.909999847412109, + "rawReferencePointY" : -0.0099999997764825821, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.849998474121094, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.3025002479553223, + "positionY" : 0.0, + "rawReferencePointX" : -11.300000190734863, + "rawReferencePointY" : 3.3299999237060547, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 33.012153625488281, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242092 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.292999267578125, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.260000228881836, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.675994873046875, + "positionY" : 0.0, + "rawReferencePointX" : 73.089996337890625, + "rawReferencePointY" : -3.6800000667572021, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.801998138427734, + "positionY" : 0.0, + "rawReferencePointX" : 44.909999847412109, + "rawReferencePointY" : -0.0099999997764825821, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.849998474121094, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -5.3025002479553223, + "positionY" : 0.0, + "rawReferencePointX" : -11.300000190734863, + "rawReferencePointY" : 3.3299999237060547, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 33.012153625488281, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242092 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.292999267578125, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.25, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.640998840332031, + "positionY" : 0.0, + "rawReferencePointX" : 73.040000915527344, + "rawReferencePointY" : -3.6600000858306885, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.822998046875, + "positionY" : 0.0, + "rawReferencePointX" : 44.939998626708984, + "rawReferencePointY" : 0.0, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.834999084472656, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -4.0250000953674316, + "positionY" : 0.0, + "rawReferencePointX" : -7.7800002098083496, + "rawReferencePointY" : 3.309999942779541, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 33.012153625488281, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242092 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.285999298095703, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.25, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.640998840332031, + "positionY" : 0.0, + "rawReferencePointX" : 73.040000915527344, + "rawReferencePointY" : -3.6600000858306885, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.430000305175781, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.822998046875, + "positionY" : 0.0, + "rawReferencePointX" : 44.939998626708984, + "rawReferencePointY" : 0.0, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.834999084472656, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -4.0250000953674316, + "positionY" : 0.0, + "rawReferencePointX" : -7.7800002098083496, + "rawReferencePointY" : 3.309999942779541, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 33.012153625488281, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 92000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242092 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.285999298095703, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.245000839233398, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.5885009765625, + "positionY" : 0.0, + "rawReferencePointX" : 72.970001220703125, + "rawReferencePointY" : -3.619999885559082, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.865001678466797, + "positionY" : 0.0, + "rawReferencePointX" : 45.0, + "rawReferencePointY" : 0.0, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.834999084472656, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.9409999847412109, + "positionY" : 0.0, + "rawReferencePointX" : -7.6599998474121094, + "rawReferencePointY" : 3.3199999332427979, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 33.012153625488281, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 262000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242262 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.285999298095703, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.245000839233398, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.543003082275391, + "positionY" : 0.0, + "rawReferencePointX" : 72.910003662109375, + "rawReferencePointY" : -3.6099998950958252, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.865001678466797, + "positionY" : 0.0, + "rawReferencePointX" : 45.0, + "rawReferencePointY" : 0.029999999329447746, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.865001678466797, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.8394999504089355, + "positionY" : 0.0, + "rawReferencePointX" : -7.5100002288818359, + "rawReferencePointY" : 3.3499999046325684, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.921009063720703, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 262000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242262 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.285999298095703, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.239999771118164, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.500999450683594, + "positionY" : 0.0, + "rawReferencePointX" : 72.849998474121094, + "rawReferencePointY" : -3.5799999237060547, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.879001617431641, + "positionY" : 0.0, + "rawReferencePointX" : 45.020000457763672, + "rawReferencePointY" : 0.029999999329447746, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.904998779296875, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.6820001602172852, + "positionY" : 0.0, + "rawReferencePointX" : -7.2800002098083496, + "rawReferencePointY" : 3.3599998950958252, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.921009063720703, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 262000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242262 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.285999298095703, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.239999771118164, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.469493865966797, + "positionY" : 0.0, + "rawReferencePointX" : 72.80999755859375, + "rawReferencePointY" : -3.559999942779541, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.91400146484375, + "positionY" : 0.0, + "rawReferencePointX" : 45.069999694824219, + "rawReferencePointY" : 0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.915000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.5279998779296875, + "positionY" : 0.0, + "rawReferencePointX" : -7.130000114440918, + "rawReferencePointY" : 3.3900001049041748, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.921009063720703, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 262000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242262 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.292999267578125, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.239999771118164, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.469493865966797, + "positionY" : 0.0, + "rawReferencePointX" : 72.80999755859375, + "rawReferencePointY" : -3.559999942779541, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.91400146484375, + "positionY" : 0.0, + "rawReferencePointX" : 45.069999694824219, + "rawReferencePointY" : 0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.915000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.5279998779296875, + "positionY" : 0.0, + "rawReferencePointX" : -7.130000114440918, + "rawReferencePointY" : 3.3900001049041748, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.921009063720703, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 262000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242262 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.292999267578125, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.239999771118164, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.469493865966797, + "positionY" : 0.0, + "rawReferencePointX" : 72.80999755859375, + "rawReferencePointY" : -3.559999942779541, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.91400146484375, + "positionY" : 0.0, + "rawReferencePointX" : 45.069999694824219, + "rawReferencePointY" : 0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.915000915527344, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.5279998779296875, + "positionY" : 0.0, + "rawReferencePointX" : -7.130000114440918, + "rawReferencePointY" : 3.3900001049041748, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.981773376464844, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 262000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242262 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.292999267578125, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.239999771118164, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.434497833251953, + "positionY" : 0.0, + "rawReferencePointX" : 72.760002136230469, + "rawReferencePointY" : -3.5199999809265137, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.956001281738281, + "positionY" : 0.0, + "rawReferencePointX" : 45.130001068115234, + "rawReferencePointY" : 0.079999998211860657, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.924999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.4054996967315674, + "positionY" : 0.0, + "rawReferencePointX" : -6.9499998092651367, + "rawReferencePointY" : 3.3299999237060547, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.981773376464844, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 412000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242412 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.292999267578125, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.235000610351562, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.378498077392578, + "positionY" : 0.0, + "rawReferencePointX" : 72.680000305175781, + "rawReferencePointY" : -3.5299999713897705, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.970001220703125, + "positionY" : 0.0, + "rawReferencePointX" : 45.150001525878906, + "rawReferencePointY" : 0.090000003576278687, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.930000305175781, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.3424999713897705, + "positionY" : 0.0, + "rawReferencePointX" : -6.8600001335144043, + "rawReferencePointY" : 3.3499999046325684, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.981773376464844, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 412000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242412 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.299999237060547, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.235000610351562, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.378498077392578, + "positionY" : 0.0, + "rawReferencePointX" : 72.680000305175781, + "rawReferencePointY" : -3.5299999713897705, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.970001220703125, + "positionY" : 0.0, + "rawReferencePointX" : 45.150001525878906, + "rawReferencePointY" : 0.090000003576278687, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.930000305175781, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.3424999713897705, + "positionY" : 0.0, + "rawReferencePointX" : -6.8600001335144043, + "rawReferencePointY" : 3.3499999046325684, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.981773376464844, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 412000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242412 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.299999237060547, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.229999542236328, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.336498260498047, + "positionY" : 0.0, + "rawReferencePointX" : 72.620002746582031, + "rawReferencePointY" : -3.5699999332427979, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.991001129150391, + "positionY" : 0.0, + "rawReferencePointX" : 45.180000305175781, + "rawReferencePointY" : 0.079999998211860657, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.944999694824219, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.1010000705718994, + "positionY" : 0.0, + "rawReferencePointX" : -6.6100001335144043, + "rawReferencePointY" : 3.3499999046325684, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.981773376464844, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 412000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242412 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.313999176025391, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.229999542236328, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.336498260498047, + "positionY" : 0.0, + "rawReferencePointX" : 72.620002746582031, + "rawReferencePointY" : -3.5699999332427979, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 32.991001129150391, + "positionY" : 0.0, + "rawReferencePointX" : 45.180000305175781, + "rawReferencePointY" : 0.079999998211860657, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.944999694824219, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.1010000705718994, + "positionY" : 0.0, + "rawReferencePointX" : -6.6100001335144043, + "rawReferencePointY" : 3.3499999046325684, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.981773376464844, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 412000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242412 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.313999176025391, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.225000381469727, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.287498474121094, + "positionY" : 0.0, + "rawReferencePointX" : 72.550003051757812, + "rawReferencePointY" : -3.5899999141693115, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.012001037597656, + "positionY" : 0.0, + "rawReferencePointX" : 45.209999084472656, + "rawReferencePointY" : 0.070000000298023224, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.919998168945312, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -3.0519998073577881, + "positionY" : 0.0, + "rawReferencePointX" : -6.5399999618530273, + "rawReferencePointY" : 3.2699999809265137, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.981773376464844, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 412000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242412 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.313999176025391, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.225000381469727, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.231498718261719, + "positionY" : 0.0, + "rawReferencePointX" : 72.470001220703125, + "rawReferencePointY" : -3.630000114440918, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.0260009765625, + "positionY" : 0.0, + "rawReferencePointX" : 45.229999542236328, + "rawReferencePointY" : 0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.935001373291016, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.936500072479248, + "positionY" : 0.0, + "rawReferencePointX" : -6.3600001335144043, + "rawReferencePointY" : 3.2699999809265137, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.981773376464844, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 571000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242571 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.313999176025391, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.225000381469727, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.231498718261719, + "positionY" : 0.0, + "rawReferencePointX" : 72.470001220703125, + "rawReferencePointY" : -3.630000114440918, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.0260009765625, + "positionY" : 0.0, + "rawReferencePointX" : 45.229999542236328, + "rawReferencePointY" : 0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.935001373291016, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.936500072479248, + "positionY" : 0.0, + "rawReferencePointX" : -6.3600001335144043, + "rawReferencePointY" : 3.2699999809265137, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.960071563720703, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 571000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242571 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.313999176025391, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.219999313354492, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.189498901367188, + "positionY" : 0.0, + "rawReferencePointX" : 72.410003662109375, + "rawReferencePointY" : -3.5799999237060547, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.054000854492188, + "positionY" : 0.0, + "rawReferencePointX" : 45.270000457763672, + "rawReferencePointY" : 0.079999998211860657, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.924999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.8805000782012939, + "positionY" : 0.0, + "rawReferencePointX" : -6.2800002098083496, + "rawReferencePointY" : 3.2599999904632568, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.960071563720703, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 571000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242571 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.334999084472656, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.219999313354492, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.189498901367188, + "positionY" : 0.0, + "rawReferencePointX" : 72.410003662109375, + "rawReferencePointY" : -3.5799999237060547, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.054000854492188, + "positionY" : 0.0, + "rawReferencePointX" : 45.270000457763672, + "rawReferencePointY" : 0.079999998211860657, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.924999237060547, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.8805000782012939, + "positionY" : 0.0, + "rawReferencePointX" : -6.2800002098083496, + "rawReferencePointY" : 3.2599999904632568, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.960071563720703, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 571000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242571 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.334999084472656, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.215000152587891, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.1614990234375, + "positionY" : 0.0, + "rawReferencePointX" : 72.370002746582031, + "rawReferencePointY" : -3.5999999046325684, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.435001373291016, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.110000610351562, + "positionY" : 0.0, + "rawReferencePointX" : 45.349998474121094, + "rawReferencePointY" : 0.079999998211860657, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.930000305175781, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.7894999980926514, + "positionY" : 0.0, + "rawReferencePointX" : -6.1500000953674316, + "rawReferencePointY" : 3.2699999809265137, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.960071563720703, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 571000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242571 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.334999084472656, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.209999084472656, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.105499267578125, + "positionY" : 0.0, + "rawReferencePointX" : 72.290000915527344, + "rawReferencePointY" : -3.6099998950958252, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.439998626708984, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.13800048828125, + "positionY" : 0.0, + "rawReferencePointX" : 45.389999389648438, + "rawReferencePointY" : 0.070000000298023224, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.950000762939453, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.6529998779296875, + "positionY" : 0.0, + "rawReferencePointX" : -5.940000057220459, + "rawReferencePointY" : 3.2699999809265137, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.960071563720703, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 571000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242571 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.334999084472656, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.209999084472656, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.105499267578125, + "positionY" : 0.0, + "rawReferencePointX" : 72.290000915527344, + "rawReferencePointY" : -3.6099998950958252, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.439998626708984, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.13800048828125, + "positionY" : 0.0, + "rawReferencePointX" : 45.389999389648438, + "rawReferencePointY" : 0.070000000298023224, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.950000762939453, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.6529998779296875, + "positionY" : 0.0, + "rawReferencePointX" : -5.940000057220459, + "rawReferencePointY" : 3.2699999809265137, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.986110687255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 571000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242571 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.285999298095703, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.209999084472656, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.105499267578125, + "positionY" : 0.0, + "rawReferencePointX" : 72.290000915527344, + "rawReferencePointY" : -3.6099998950958252, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.439998626708984, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.13800048828125, + "positionY" : 0.0, + "rawReferencePointX" : 45.389999389648438, + "rawReferencePointY" : 0.070000000298023224, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.950000762939453, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.6529998779296875, + "positionY" : 0.0, + "rawReferencePointX" : -5.940000057220459, + "rawReferencePointY" : 3.2699999809265137, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.986110687255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 571000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242571 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.285999298095703, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.204999923706055, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.035499572753906, + "positionY" : 0.0, + "rawReferencePointX" : 72.199996948242188, + "rawReferencePointY" : -3.630000114440918, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.439998626708984, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.152000427246094, + "positionY" : 0.0, + "rawReferencePointX" : 45.409999847412109, + "rawReferencePointY" : 0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.970001220703125, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.5339999198913574, + "positionY" : 0.0, + "rawReferencePointX" : -5.75, + "rawReferencePointY" : 3.2599999904632568, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.986110687255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 741000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242741 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.334999084472656, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.204999923706055, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.035499572753906, + "positionY" : 0.0, + "rawReferencePointX" : 72.199996948242188, + "rawReferencePointY" : -3.630000114440918, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.439998626708984, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.152000427246094, + "positionY" : 0.0, + "rawReferencePointX" : 45.409999847412109, + "rawReferencePointY" : 0.059999998658895493, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.970001220703125, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.5339999198913574, + "positionY" : 0.0, + "rawReferencePointX" : -5.75, + "rawReferencePointY" : 3.2599999904632568, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.986110687255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 741000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242741 + } + }, + { + "SceneData" : + { + "saInfo" : + { + "ACC" : + { + "desiredDistance" : 34.334999084472656, + "desiredDistanceSteps" : 2, + "desiredDistanceStepsButtonPressedCounter" : 0, + "followingState" : 0, + "handsOffOptionState" : 0, + "state" : 1 + }, + "DetectedObjects" : + [ + { + "absoluteVelocityX" : 31.204999923706055, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483646, + "laneInputId" : 113, + "length" : 7.1999998092651367, + "noLaneChangeAnimation" : false, + "objectClassification" : 5, + "objectDisplayId" : 39, + "objectHighlightReason" : 0, + "objectInputId" : 2939, + "positionX" : 53.004001617431641, + "positionY" : 0.0, + "rawReferencePointX" : 72.160003662109375, + "rawReferencePointY" : -3.6800000667572021, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 33.439998626708984, + "classificationLocked" : true, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483647, + "laneInputId" : 123, + "length" : 3.9000000953674316, + "noLaneChangeAnimation" : false, + "objectClassification" : 3, + "objectDisplayId" : 2, + "objectHighlightReason" : 1, + "objectInputId" : 3013, + "positionX" : 33.173000335693359, + "positionY" : 0.0, + "rawReferencePointX" : 45.439998626708984, + "rawReferencePointY" : 0.029999999329447746, + "showInHud" : true, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 34.994998931884766, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : true, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 2147483648, + "laneInputId" : 126, + "length" : 7.4899997711181641, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4, + "objectHighlightReason" : 0, + "objectInputId" : 3047, + "positionX" : -2.4325001239776611, + "positionY" : 0.0, + "rawReferencePointX" : -5.5900001525878906, + "rawReferencePointY" : 3.2799999713897705, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + }, + { + "absoluteVelocityX" : 0.0, + "classificationLocked" : false, + "height" : 0.0, + "isEnabled" : false, + "keepInHudHighlight" : false, + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "length" : 0.0, + "noLaneChangeAnimation" : false, + "objectClassification" : 0, + "objectDisplayId" : 4294967295, + "objectHighlightReason" : 0, + "objectInputId" : 4294967295, + "positionX" : 0.0, + "positionY" : 0.0, + "rawReferencePointX" : 0.0, + "rawReferencePointY" : 0.0, + "showInHud" : false, + "width" : 0.0 + } + ], + "EgoVehicle" : + { + "absoluteVelocityX" : 32.986110687255859, + "inputLaneId" : 4294967295, + "laneDisplayIndex" : 2147483647, + "positionY" : 0.0 + }, + "EgoVehicleConfig" : + { + "length" : 1.0, + "width" : 1.0 + }, + "EmergencyCorridor" : + { + "laneDisplayIndex" : 4294967295, + "laneInputId" : 4294967295, + "positionY" : 0.0, + "width" : 0.0 + }, + "LSA" : + { + "laneMarkingDisplayLeft" : 1, + "laneMarkingDisplayRight" : 1, + "laneMarkingLaneDisplayIndexLeft" : 2147483647, + "laneMarkingLaneDisplayIndexRight" : 2147483647, + "laneMarkingLaneInputIdLeft" : 123, + "laneMarkingLaneInputIdRight" : 123, + "lsaDropCounter" : 0, + "maneuver" : 0 + }, + "LaneChangeHint" : + { + "gapLaneDisplayIndex" : 4294967295, + "gapLaneInputId" : 4294967295, + "objectDisplayIdBack" : 4294967295, + "objectDisplayIdFront" : 4294967295 + }, + "Lanes" : + { + "ego" : + { + "displayIndex" : 2147483647, + "inputId" : 123, + "isEnabled" : true, + "showInHud" : true, + "width" : 0.0 + }, + "neighborLeft" : + { + "displayIndex" : 2147483648, + "inputId" : 126, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + }, + "neighborRight" : + { + "displayIndex" : 2147483646, + "inputId" : 113, + "isEnabled" : true, + "showInHud" : false, + "width" : 0.0 + } + }, + "SceneMeta" : + { + "beginProcessingTimeStamp" : + { + "isValid" : false, + "nanoseconds" : 0, + "seconds" : 0 + }, + "displayState" : 1, + "drivingModeLevel" : 1, + "focusRequestPossible" : true, + "isLivingMode" : false, + "isTrailerActive" : false, + "operatingState" : 0, + "timeStamp" : + { + "isValid" : true, + "nanoseconds" : 741000000, + "seconds" : 79242 + } + } + } + }, + "TracePlayerData" : + { + "timestamp(ms)" : 79242741 + } + } +] diff --git a/components/libMeshLoader/CMakeLists.txt b/components/libMeshLoader/CMakeLists.txt index 3e7d0112..f09c42a0 100644 --- a/components/libMeshLoader/CMakeLists.txt +++ b/components/libMeshLoader/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/include/mesh_loader/CTMFileLoader.h b/components/libMeshLoader/include/mesh_loader/CTMFileLoader.h index 9c3e3f2b..73c85f16 100644 --- a/components/libMeshLoader/include/mesh_loader/CTMFileLoader.h +++ b/components/libMeshLoader/include/mesh_loader/CTMFileLoader.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/include/mesh_loader/CTMMesh.h b/components/libMeshLoader/include/mesh_loader/CTMMesh.h index 495e0262..3c6f8fca 100644 --- a/components/libMeshLoader/include/mesh_loader/CTMMesh.h +++ b/components/libMeshLoader/include/mesh_loader/CTMMesh.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/include/mesh_loader/glTFBufferData.h b/components/libMeshLoader/include/mesh_loader/glTFBufferData.h index 6b4ffd8e..580f99f4 100644 --- a/components/libMeshLoader/include/mesh_loader/glTFBufferData.h +++ b/components/libMeshLoader/include/mesh_loader/glTFBufferData.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/include/mesh_loader/glTFFileLoader.h b/components/libMeshLoader/include/mesh_loader/glTFFileLoader.h index 5409e4bb..083adef7 100644 --- a/components/libMeshLoader/include/mesh_loader/glTFFileLoader.h +++ b/components/libMeshLoader/include/mesh_loader/glTFFileLoader.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/include/mesh_loader/glTFMesh.h b/components/libMeshLoader/include/mesh_loader/glTFMesh.h index 4c284749..3a4d57fb 100644 --- a/components/libMeshLoader/include/mesh_loader/glTFMesh.h +++ b/components/libMeshLoader/include/mesh_loader/glTFMesh.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/src/CTMFileLoader.cpp b/components/libMeshLoader/src/CTMFileLoader.cpp index 5afd453c..b1b695fc 100644 --- a/components/libMeshLoader/src/CTMFileLoader.cpp +++ b/components/libMeshLoader/src/CTMFileLoader.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/src/CTMMesh.cpp b/components/libMeshLoader/src/CTMMesh.cpp index fbaee844..9de5f745 100644 --- a/components/libMeshLoader/src/CTMMesh.cpp +++ b/components/libMeshLoader/src/CTMMesh.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/src/glTFFileLoader.cpp b/components/libMeshLoader/src/glTFFileLoader.cpp index 4f8ee508..1e70db27 100644 --- a/components/libMeshLoader/src/glTFFileLoader.cpp +++ b/components/libMeshLoader/src/glTFFileLoader.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/src/glTFMesh.cpp b/components/libMeshLoader/src/glTFMesh.cpp index 8aeac300..3febb046 100644 --- a/components/libMeshLoader/src/glTFMesh.cpp +++ b/components/libMeshLoader/src/glTFMesh.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/tests/CMakeLists.txt b/components/libMeshLoader/tests/CMakeLists.txt index 1395539f..c989f414 100644 --- a/components/libMeshLoader/tests/CMakeLists.txt +++ b/components/libMeshLoader/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libMeshLoader/tests/FileLoader_test.cpp b/components/libMeshLoader/tests/FileLoader_test.cpp index f56ed25b..31830e87 100644 --- a/components/libMeshLoader/tests/FileLoader_test.cpp +++ b/components/libMeshLoader/tests/FileLoader_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libPythonAPI/CMakeLists.txt b/components/libPythonAPI/CMakeLists.txt index 46a48929..159558e0 100644 --- a/components/libPythonAPI/CMakeLists.txt +++ b/components/libPythonAPI/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libPythonAPI/include/python_api/PythonAPI.h b/components/libPythonAPI/include/python_api/PythonAPI.h index e2fe1081..d2f23e21 100644 --- a/components/libPythonAPI/include/python_api/PythonAPI.h +++ b/components/libPythonAPI/include/python_api/PythonAPI.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -17,5 +17,5 @@ namespace raco::python_api { bool preparePythonEnvironment(std::wstring argv0, bool searchPythonFolderForTest = false); void setup(raco::application::RaCoApplication* app); - +int runPythonScript(raco::application::RaCoApplication* app, const std::wstring& applicationPath, const std::string& pythonScriptPath, const std::vector& pos_argv_cp); } diff --git a/components/libPythonAPI/src/PythonAPI.cpp b/components/libPythonAPI/src/PythonAPI.cpp index e561909c..fe9653c9 100644 --- a/components/libPythonAPI/src/PythonAPI.cpp +++ b/components/libPythonAPI/src/PythonAPI.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -15,6 +15,7 @@ #endif #include +#include #include #include @@ -39,6 +40,8 @@ namespace py = pybind11; namespace { raco::application::RaCoApplication* app; +std::string pythonStdoutBuffer; +std::string pythonStderrBuffer; py::object python_get_scalar_value(raco::core::ValueHandle handle) { switch (handle.type()) { @@ -150,6 +153,47 @@ void python_set_value(const raco::core::PropertyDescriptor& desc, py::object val } // namespace +PYBIND11_EMBEDDED_MODULE(raco_py_io, m) { + struct raco_py_stdout { + raco_py_stdout() = default; + raco_py_stdout(const raco_py_stdout&) = default; + raco_py_stdout(raco_py_stdout&&) = default; + }; + + struct raco_py_stderr { + raco_py_stderr() = default; + raco_py_stderr(const raco_py_stderr&) = default; + raco_py_stderr(raco_py_stderr&&) = default; + }; + + py::class_ raco_py_stdout(m, "raco_py_stdout"); + raco_py_stdout.def_static("write", [](py::object buffer) { + pythonStdoutBuffer.append(buffer.cast()); + }); + raco_py_stdout.def_static("flush", []() { + LOG_INFO(raco::log_system::PYTHON, pythonStdoutBuffer); + pythonStdoutBuffer.clear(); + }); + + py::class_ raco_py_stderr(m, "raco_py_stderr"); + raco_py_stderr.def_static("write", [](py::object buffer) { + pythonStderrBuffer.append(buffer.cast()); + }); + raco_py_stderr.def_static("flush", []() { + if (!pythonStderrBuffer.empty()) { + LOG_ERROR(raco::log_system::PYTHON, pythonStderrBuffer); + pythonStderrBuffer.clear(); + } + }); + + m.def("hook_stdout", []() { + auto py_sys = py::module::import("sys"); + auto pyIo = py::module::import("raco_py_io"); + py_sys.attr("stdout") = pyIo.attr("raco_py_stdout"); + py_sys.attr("stderr") = pyIo.attr("raco_py_stderr"); + }); +} + PYBIND11_EMBEDDED_MODULE(raco, m) { py::enum_(m, "ECullMode") .value("Disabled", ramses::ECullMode_Disabled) @@ -244,6 +288,10 @@ PYBIND11_EMBEDDED_MODULE(raco, m) { m.def("load", [](std::string path) { + if (app->isRunningInUI()) { + throw std::runtime_error(fmt::format("Can not load project: project-switching Python functions currently not allowed in UI.")); + } + if (!path.empty()) { try { app->switchActiveRaCoProject(QString::fromStdString(path), false); @@ -258,6 +306,10 @@ PYBIND11_EMBEDDED_MODULE(raco, m) { }); m.def("reset", []() { + if (app->isRunningInUI()) { + throw std::runtime_error(fmt::format("Can not reset project: project-switching Python functions currently not allowed in UI.")); + } + app->switchActiveRaCoProject(QString(), false); }); @@ -371,12 +423,13 @@ PYBIND11_EMBEDDED_MODULE(raco, m) { py::class_(m, "LinkDescriptor") .def("__repr__", [](const raco::core::LinkDescriptor& desc) { - return fmt::format("", desc.start.getPropertyPath(), desc.end.getPropertyPath(), desc.isValid); + return fmt::format("", desc.start.getPropertyPath(), desc.end.getPropertyPath(), desc.isValid, desc.isWeak); }) .def(py::self == py::self) .def_readonly("start", &raco::core::LinkDescriptor::start) .def_readonly("end", &raco::core::LinkDescriptor::end) - .def_readonly("valid", &raco::core::LinkDescriptor::isValid); + .def_readonly("valid", &raco::core::LinkDescriptor::isValid) + .def_readonly("weak", &raco::core::LinkDescriptor::isWeak); m.def("instances", []() { return app->activeRaCoProject().project()->instances(); @@ -436,6 +489,14 @@ PYBIND11_EMBEDDED_MODULE(raco, m) { return py::none(); }); + m.def("addLink", [](const raco::core::PropertyDescriptor& start, const raco::core::PropertyDescriptor& end, bool isWeak) -> py::object { + if (auto newLink = app->activeRaCoProject().commandInterface()->addLink(raco::core::ValueHandle(start), raco::core::ValueHandle(end), isWeak)) { + app->doOneLoop(); + return py::cast(newLink->descriptor()); + } + return py::none(); + }); + m.def("removeLink", [](const raco::core::PropertyDescriptor& end) { app->activeRaCoProject().commandInterface()->removeLink(end); app->doOneLoop(); @@ -449,7 +510,7 @@ bool preparePythonEnvironment(std::wstring argv0, bool searchPythonFolderForTest PyPreConfig_InitIsolatedConfig(&preconfig); const auto status = Py_PreInitialize(&preconfig); if (PyStatus_IsError(status) != 0) { - LOG_ERROR(raco::log_system::COMMON, "Py_PreInitialize failed. Error: '{}'", status.err_msg); + LOG_ERROR(raco::log_system::PYTHON, "Py_PreInitialize failed. Error: '{}'", status.err_msg); return false; } @@ -509,11 +570,11 @@ bool preparePythonEnvironment(std::wstring argv0, bool searchPythonFolderForTest static std::wstring programname = argv0; std::string programnameUTF8(1024, 0); programnameUTF8.resize(std::wcstombs(programnameUTF8.data(), programname.data(), programnameUTF8.size())); - LOG_INFO(raco::log_system::COMMON, "Calling Py_SetProgramName with '{}'", programnameUTF8); + LOG_INFO(raco::log_system::PYTHON, "Calling Py_SetProgramName with '{}'", programnameUTF8); Py_SetProgramName(programname.data()); std::string pythonPathsUTF8(1024, 0); pythonPathsUTF8.resize(std::wcstombs(pythonPathsUTF8.data(), pythonPaths.data(), pythonPathsUTF8.size())); - LOG_INFO(raco::log_system::COMMON, "Calling Py_SetPath with '{}'", pythonPathsUTF8); + LOG_INFO(raco::log_system::PYTHON, "Calling Py_SetPath with '{}'", pythonPathsUTF8); Py_SetPath(pythonPaths.data()); return true; @@ -525,7 +586,40 @@ void setup(raco::application::RaCoApplication* racoApp) { const std::wstring pythonPaths = Py_GetPath(); std::string pythonPathsUTF8(1024, 0); pythonPathsUTF8.resize(std::wcstombs(pythonPathsUTF8.data(), pythonPaths.data(), pythonPathsUTF8.size())); - LOG_INFO(raco::log_system::COMMON, "Python module search paths: {}", pythonPathsUTF8); + LOG_INFO(raco::log_system::PYTHON, "Python module search paths: {}", pythonPathsUTF8); + + py::module::import("raco_py_io").attr("hook_stdout")(); +} + +int runPythonScript(raco::application::RaCoApplication* app, const std::wstring& applicationPath, const std::string& pythonScriptPath, const std::vector& pos_argv_cp) { + if (raco::python_api::preparePythonEnvironment(applicationPath)) { + py::scoped_interpreter pyGuard{true, static_cast(pos_argv_cp.size()), pos_argv_cp.data()}; + + raco::python_api::setup(app); + LOG_INFO(raco::log_system::PYTHON, "running python script {}", pythonScriptPath); + try { + py::eval_file(pythonScriptPath); + } catch (py::error_already_set& e) { + if (e.matches(PyExc_SystemExit)) { + auto exitCode = py::cast(e.value().attr("code")); + LOG_ERROR(raco::log_system::PYTHON, "Exit called from Python: exit code '{}'", exitCode); + return py::cast(e.value().attr("code")); + } else { + LOG_ERROR(raco::log_system::PYTHON, "Python exception:\n{}", e.what()); + return 1; + } + } catch (std::exception& e) { + LOG_ERROR(raco::log_system::PYTHON, "Error thrown in Python script:\n{}", e.what()); + return 1; + // TODO exit code + // how do we get here? + // need a test + } + } else { + LOG_ERROR(raco::log_system::PYTHON, "Failed to prepare the Python environment."); + return 1; + } + return 0; } } // namespace raco::python_api diff --git a/components/libPythonAPI/tests/CMakeLists.txt b/components/libPythonAPI/tests/CMakeLists.txt index 97e33219..71574e88 100644 --- a/components/libPythonAPI/tests/CMakeLists.txt +++ b/components/libPythonAPI/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libPythonAPI/tests/PythonAPI_Simple_test.cpp b/components/libPythonAPI/tests/PythonAPI_Simple_test.cpp index efae9c8f..da3d6b7f 100644 --- a/components/libPythonAPI/tests/PythonAPI_Simple_test.cpp +++ b/components/libPythonAPI/tests/PythonAPI_Simple_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/CMakeLists.txt b/components/libRamsesBase/CMakeLists.txt index c40a0689..878a87ba 100644 --- a/components/libRamsesBase/CMakeLists.txt +++ b/components/libRamsesBase/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/README.md b/components/libRamsesBase/README.md index deadbbac..39481f12 100644 --- a/components/libRamsesBase/README.md +++ b/components/libRamsesBase/README.md @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/AnimationAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/AnimationAdaptor.h index 8d4bbfa8..27b69529 100644 --- a/components/libRamsesBase/include/ramses_adaptor/AnimationAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/AnimationAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/AnimationChannelAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/AnimationChannelAdaptor.h index 423af137..56a10c2e 100644 --- a/components/libRamsesBase/include/ramses_adaptor/AnimationChannelAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/AnimationChannelAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/BaseCameraAdaptorHelpers.h b/components/libRamsesBase/include/ramses_adaptor/BaseCameraAdaptorHelpers.h index b78e7290..033ddea9 100644 --- a/components/libRamsesBase/include/ramses_adaptor/BaseCameraAdaptorHelpers.h +++ b/components/libRamsesBase/include/ramses_adaptor/BaseCameraAdaptorHelpers.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/BuildOptions.h b/components/libRamsesBase/include/ramses_adaptor/BuildOptions.h index b08ad367..dec5d0e2 100644 --- a/components/libRamsesBase/include/ramses_adaptor/BuildOptions.h +++ b/components/libRamsesBase/include/ramses_adaptor/BuildOptions.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/CubeMapAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/CubeMapAdaptor.h index d25ef76d..185c29ba 100644 --- a/components/libRamsesBase/include/ramses_adaptor/CubeMapAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/CubeMapAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/Factories.h b/components/libRamsesBase/include/ramses_adaptor/Factories.h index 70651cd2..dc92c465 100644 --- a/components/libRamsesBase/include/ramses_adaptor/Factories.h +++ b/components/libRamsesBase/include/ramses_adaptor/Factories.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/LinkAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/LinkAdaptor.h index fd7b0173..15a04aad 100644 --- a/components/libRamsesBase/include/ramses_adaptor/LinkAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/LinkAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -40,7 +40,7 @@ class LinkAdaptor { void readDataFromEngine(core::DataChangeRecorder &recorder); protected: - void connectHelper(const core::PropertyDescriptor& start, const rlogic::Property& endEngineProp); + void connectHelper(const core::PropertyDescriptor& start, const rlogic::Property& endEngineProp, bool isWeak); SceneAdaptor* sceneAdaptor_; core::LinkDescriptor editorLink_; diff --git a/components/libRamsesBase/include/ramses_adaptor/LuaInterfaceAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/LuaInterfaceAdaptor.h index c82a76cc..7f7eadeb 100644 --- a/components/libRamsesBase/include/ramses_adaptor/LuaInterfaceAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/LuaInterfaceAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/LuaScriptAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/LuaScriptAdaptor.h index 2e6a507d..767dce73 100644 --- a/components/libRamsesBase/include/ramses_adaptor/LuaScriptAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/LuaScriptAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/LuaScriptModuleAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/LuaScriptModuleAdaptor.h index d167ee04..30bb4afd 100644 --- a/components/libRamsesBase/include/ramses_adaptor/LuaScriptModuleAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/LuaScriptModuleAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/MaterialAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/MaterialAdaptor.h index 6c016af2..e8cea62e 100644 --- a/components/libRamsesBase/include/ramses_adaptor/MaterialAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/MaterialAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/MeshAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/MeshAdaptor.h index 3833eb7a..441ce94e 100644 --- a/components/libRamsesBase/include/ramses_adaptor/MeshAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/MeshAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/MeshNodeAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/MeshNodeAdaptor.h index da3685a9..20eadf2a 100644 --- a/components/libRamsesBase/include/ramses_adaptor/MeshNodeAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/MeshNodeAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/NodeAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/NodeAdaptor.h index 1302998d..cd86c54b 100644 --- a/components/libRamsesBase/include/ramses_adaptor/NodeAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/NodeAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/ObjectAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/ObjectAdaptor.h index 162fb450..0c7d93bd 100644 --- a/components/libRamsesBase/include/ramses_adaptor/ObjectAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/ObjectAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/OrthographicCameraAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/OrthographicCameraAdaptor.h index bde0ea03..bffd1f83 100644 --- a/components/libRamsesBase/include/ramses_adaptor/OrthographicCameraAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/OrthographicCameraAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/PerspectiveCameraAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/PerspectiveCameraAdaptor.h index a04c5c48..dd9f9ce5 100644 --- a/components/libRamsesBase/include/ramses_adaptor/PerspectiveCameraAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/PerspectiveCameraAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/RenderBufferAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/RenderBufferAdaptor.h index 659df284..f9c80276 100644 --- a/components/libRamsesBase/include/ramses_adaptor/RenderBufferAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/RenderBufferAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/RenderLayerAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/RenderLayerAdaptor.h index b2880278..6b48fa6a 100644 --- a/components/libRamsesBase/include/ramses_adaptor/RenderLayerAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/RenderLayerAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/RenderPassAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/RenderPassAdaptor.h index 67ec1b55..95acacf7 100644 --- a/components/libRamsesBase/include/ramses_adaptor/RenderPassAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/RenderPassAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/RenderTargetAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/RenderTargetAdaptor.h index 78f96f3b..933ff5d4 100644 --- a/components/libRamsesBase/include/ramses_adaptor/RenderTargetAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/RenderTargetAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/SceneAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/SceneAdaptor.h index e7e292fe..82f86665 100644 --- a/components/libRamsesBase/include/ramses_adaptor/SceneAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/SceneAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/SceneBackend.h b/components/libRamsesBase/include/ramses_adaptor/SceneBackend.h index 15dcf31f..bb35c9fa 100644 --- a/components/libRamsesBase/include/ramses_adaptor/SceneBackend.h +++ b/components/libRamsesBase/include/ramses_adaptor/SceneBackend.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/TextureSamplerAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/TextureSamplerAdaptor.h index 8840133e..71fff78c 100644 --- a/components/libRamsesBase/include/ramses_adaptor/TextureSamplerAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/TextureSamplerAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/TimerAdaptor.h b/components/libRamsesBase/include/ramses_adaptor/TimerAdaptor.h index c4349e69..c55daec7 100644 --- a/components/libRamsesBase/include/ramses_adaptor/TimerAdaptor.h +++ b/components/libRamsesBase/include/ramses_adaptor/TimerAdaptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_adaptor/utilities.h b/components/libRamsesBase/include/ramses_adaptor/utilities.h index f99026d2..ed27b7c1 100644 --- a/components/libRamsesBase/include/ramses_adaptor/utilities.h +++ b/components/libRamsesBase/include/ramses_adaptor/utilities.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -11,6 +11,7 @@ #pragma once #include "components/DataChangeDispatcher.h" +#include "core/CodeControlledPropertyModifier.h" #include "core/CoreFormatter.h" #include "core/EditorObject.h" #include "core/Handles.h" @@ -242,120 +243,6 @@ inline bool setLuaInputInEngine(rlogic::Property* property, const core::ValueHan return success; } -class ReadFromEngineManager { -public: - template - static void setValueFromEngineValue(const core::ValueHandle& valueHandle, Type newValue, core::DataChangeRecorder& recorder) { - auto oldValue = valueHandle.as(); - if (oldValue != newValue) { - valueHandle.valueRef()->set(static_cast(newValue)); - recorder.recordValueChanged(valueHandle); - } - } - - static void setVec2f(const core::ValueHandle& handle, double x, double y, core::DataChangeRecorder& recorder) { - raco::core::Vec2f& v = dynamic_cast(handle.valueRef()->asStruct()); - - if (*v.x != x) { - v.x = x; - recorder.recordValueChanged(handle[0]); - } - if (*v.y != y) { - v.y = y; - recorder.recordValueChanged(handle[1]); - } - } - - static void setVec3f(const core::ValueHandle& handle, double x, double y, double z, core::DataChangeRecorder& recorder) { - raco::core::Vec3f& v = dynamic_cast(handle.valueRef()->asStruct()); - - if (*v.x != x) { - v.x = x; - recorder.recordValueChanged(handle[0]); - } - if (*v.y != y) { - v.y = y; - recorder.recordValueChanged(handle[1]); - } - if (*v.z != z) { - v.z = z; - recorder.recordValueChanged(handle[2]); - } - } - - static void setVec4f(const core::ValueHandle& handle, double x, double y, double z, double w, core::DataChangeRecorder& recorder) { - raco::core::Vec4f& v = dynamic_cast(handle.valueRef()->asStruct()); - - if (*v.x != x) { - v.x = x; - recorder.recordValueChanged(handle[0]); - } - if (*v.y != y) { - v.y = y; - recorder.recordValueChanged(handle[1]); - } - if (*v.z != z) { - v.z = z; - recorder.recordValueChanged(handle[2]); - } - if (*v.w != w) { - v.w = w; - recorder.recordValueChanged(handle[3]); - } - } - - static void setVec2i(const core::ValueHandle& handle, int x, int y, core::DataChangeRecorder& recorder) { - raco::core::Vec2i& v = dynamic_cast(handle.valueRef()->asStruct()); - - if (*v.i1_ != x) { - v.i1_ = x; - recorder.recordValueChanged(handle[0]); - } - if (*v.i2_ != y) { - v.i2_ = y; - recorder.recordValueChanged(handle[1]); - } - } - - static void setVec3i(const core::ValueHandle& handle, int x, int y, int z, core::DataChangeRecorder& recorder) { - raco::core::Vec3i& v = dynamic_cast(handle.valueRef()->asStruct()); - - if (*v.i1_ != x) { - v.i1_ = x; - recorder.recordValueChanged(handle[0]); - } - if (*v.i2_ != y) { - v.i2_ = y; - recorder.recordValueChanged(handle[1]); - } - if (*v.i3_ != z) { - v.i3_ = z; - recorder.recordValueChanged(handle[2]); - } - } - - static void setVec4i(const core::ValueHandle& handle, int x, int y, int z, int w, core::DataChangeRecorder& recorder) { - raco::core::Vec4i& v = dynamic_cast(handle.valueRef()->asStruct()); - - if (*v.i1_ != x) { - v.i1_ = x; - recorder.recordValueChanged(handle[0]); - } - if (*v.i2_ != y) { - v.i2_ = y; - recorder.recordValueChanged(handle[1]); - } - if (*v.i3_ != z) { - v.i3_ = z; - recorder.recordValueChanged(handle[2]); - } - if (*v.i4_ != w) { - v.i4_ = w; - recorder.recordValueChanged(handle[3]); - } - } -}; - void getOutputFromEngine(const rlogic::Property& property, const core::ValueHandle& valueHandle, core::DataChangeRecorder& recorder); @@ -376,51 +263,51 @@ inline void getOutputFromEngine(const rlogic::Property& property, const core::Va if (valueHandle.isVec3f() && property.getType() == rlogic::EPropertyType::Vec4f) { auto [x, y, z, w] = property.get().value(); auto [eulerX, eulerY, eulerZ] = raco::utils::math::quaternionToXYZDegrees(x, y, z, w); - ReadFromEngineManager::setVec3f(valueHandle, eulerX, eulerY, eulerZ, recorder); + core::CodeControlledPropertyModifier::setVec3f(valueHandle, eulerX, eulerY, eulerZ, recorder); return; } switch (valueHandle.type()) { case PrimitiveType::Double: { - ReadFromEngineManager::setValueFromEngineValue(valueHandle, property.get().value(), recorder); + core::CodeControlledPropertyModifier::setPrimitive(valueHandle, property.get().value(), recorder); break; } case PrimitiveType::Int: { - ReadFromEngineManager::setValueFromEngineValue(valueHandle, property.get().value(), recorder); + core::CodeControlledPropertyModifier::setPrimitive(valueHandle, property.get().value(), recorder); break; } case PrimitiveType::Int64: { - ReadFromEngineManager::setValueFromEngineValue(valueHandle, property.get().value(), recorder); + core::CodeControlledPropertyModifier::setPrimitive(valueHandle, property.get().value(), recorder); break; } case PrimitiveType::Bool: { - ReadFromEngineManager::setValueFromEngineValue(valueHandle, property.get().value(), recorder); + core::CodeControlledPropertyModifier::setPrimitive(valueHandle, property.get().value(), recorder); break; } case PrimitiveType::String: { - ReadFromEngineManager::setValueFromEngineValue(valueHandle, property.get().value(), recorder); + core::CodeControlledPropertyModifier::setPrimitive(valueHandle, property.get().value(), recorder); break; } case PrimitiveType::Struct: { auto typeDesc = &valueHandle.constValueRef()->asStruct().getTypeDescription(); if (typeDesc == &core::Vec2f::typeDescription) { auto [x, y] = property.get().value(); - ReadFromEngineManager::setVec2f(valueHandle, x, y, recorder); + core::CodeControlledPropertyModifier::setVec2f(valueHandle, x, y, recorder); } else if (typeDesc == &core::Vec3f::typeDescription) { auto [x, y, z] = property.get().value(); - ReadFromEngineManager::setVec3f(valueHandle, x, y, z, recorder); + core::CodeControlledPropertyModifier::setVec3f(valueHandle, x, y, z, recorder); } else if (typeDesc == &core::Vec4f::typeDescription) { auto [x, y, z, w] = property.get().value(); - ReadFromEngineManager::setVec4f(valueHandle, x, y, z, w, recorder); + core::CodeControlledPropertyModifier::setVec4f(valueHandle, x, y, z, w, recorder); } else if (typeDesc == &core::Vec2i::typeDescription) { auto [i1, i2] = property.get().value(); - ReadFromEngineManager::setVec2i(valueHandle, i1, i2, recorder); + core::CodeControlledPropertyModifier::setVec2i(valueHandle, i1, i2, recorder); } else if (typeDesc == &core::Vec3i::typeDescription) { auto [i1, i2, i3] = property.get().value(); - ReadFromEngineManager::setVec3i(valueHandle, i1, i2, i3, recorder); + core::CodeControlledPropertyModifier::setVec3i(valueHandle, i1, i2, i3, recorder); } else if (typeDesc == &core::Vec4i::typeDescription) { auto [i1, i2, i3, i4] = property.get().value(); - ReadFromEngineManager::setVec4i(valueHandle, i1, i2, i3, i4, recorder); + core::CodeControlledPropertyModifier::setVec4i(valueHandle, i1, i2, i3, i4, recorder); } else { getComplexLuaOutputFromEngine(property, valueHandle, recorder); } diff --git a/components/libRamsesBase/include/ramses_base/BaseEngineBackend.h b/components/libRamsesBase/include/ramses_base/BaseEngineBackend.h index c30dad2c..06aee0f7 100644 --- a/components/libRamsesBase/include/ramses_base/BaseEngineBackend.h +++ b/components/libRamsesBase/include/ramses_base/BaseEngineBackend.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_base/BuildOptions.h b/components/libRamsesBase/include/ramses_base/BuildOptions.h index 2bd27038..76854036 100644 --- a/components/libRamsesBase/include/ramses_base/BuildOptions.h +++ b/components/libRamsesBase/include/ramses_base/BuildOptions.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_base/CoreInterfaceImpl.h b/components/libRamsesBase/include/ramses_base/CoreInterfaceImpl.h index 4a3aa6de..64f65c3b 100644 --- a/components/libRamsesBase/include/ramses_base/CoreInterfaceImpl.h +++ b/components/libRamsesBase/include/ramses_base/CoreInterfaceImpl.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_base/HeadlessEngineBackend.h b/components/libRamsesBase/include/ramses_base/HeadlessEngineBackend.h index 021d0bbe..80480b49 100644 --- a/components/libRamsesBase/include/ramses_base/HeadlessEngineBackend.h +++ b/components/libRamsesBase/include/ramses_base/HeadlessEngineBackend.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_base/LogicEngine.h b/components/libRamsesBase/include/ramses_base/LogicEngine.h index 371d09ad..7076d033 100644 --- a/components/libRamsesBase/include/ramses_base/LogicEngine.h +++ b/components/libRamsesBase/include/ramses_base/LogicEngine.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_base/LogicEngineFormatter.h b/components/libRamsesBase/include/ramses_base/LogicEngineFormatter.h index 41b9abb6..0da025a1 100644 --- a/components/libRamsesBase/include/ramses_base/LogicEngineFormatter.h +++ b/components/libRamsesBase/include/ramses_base/LogicEngineFormatter.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_base/RamsesFormatter.h b/components/libRamsesBase/include/ramses_base/RamsesFormatter.h index f7d8dbe3..721253cb 100644 --- a/components/libRamsesBase/include/ramses_base/RamsesFormatter.h +++ b/components/libRamsesBase/include/ramses_base/RamsesFormatter.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_base/RamsesHandles.h b/components/libRamsesBase/include/ramses_base/RamsesHandles.h index 731704e6..54a2db9f 100644 --- a/components/libRamsesBase/include/ramses_base/RamsesHandles.h +++ b/components/libRamsesBase/include/ramses_base/RamsesHandles.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/include/ramses_base/Utils.h b/components/libRamsesBase/include/ramses_base/Utils.h index e6b1ed1d..83cd098c 100644 --- a/components/libRamsesBase/include/ramses_base/Utils.h +++ b/components/libRamsesBase/include/ramses_base/Utils.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/AnimationAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/AnimationAdaptor.cpp index 1eafd832..79b8adc7 100644 --- a/components/libRamsesBase/src/ramses_adaptor/AnimationAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/AnimationAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/AnimationChannelAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/AnimationChannelAdaptor.cpp index 7e8ec52c..4a1d954d 100644 --- a/components/libRamsesBase/src/ramses_adaptor/AnimationChannelAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/AnimationChannelAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/BaseCameraAdaptorHelpers.cpp b/components/libRamsesBase/src/ramses_adaptor/BaseCameraAdaptorHelpers.cpp index 0be16c05..50d2de80 100644 --- a/components/libRamsesBase/src/ramses_adaptor/BaseCameraAdaptorHelpers.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/BaseCameraAdaptorHelpers.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/CubeMapAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/CubeMapAdaptor.cpp index feb8f045..210679d6 100644 --- a/components/libRamsesBase/src/ramses_adaptor/CubeMapAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/CubeMapAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/Factories.cpp b/components/libRamsesBase/src/ramses_adaptor/Factories.cpp index a732f6eb..1f159696 100644 --- a/components/libRamsesBase/src/ramses_adaptor/Factories.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/Factories.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/LinkAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/LinkAdaptor.cpp index 57d0c3cb..70b8c4d7 100644 --- a/components/libRamsesBase/src/ramses_adaptor/LinkAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/LinkAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -21,8 +21,8 @@ namespace raco::ramses_adaptor { namespace { -LinkAdaptor::UniqueEngineLink createEngineLink(rlogic::LogicEngine* engine, const rlogic::Property& origin, const rlogic::Property& dest) { - if (engine->link(origin, dest)) { +LinkAdaptor::UniqueEngineLink createEngineLink(rlogic::LogicEngine* engine, const rlogic::Property& origin, const rlogic::Property& dest, bool isWeak) { + if (isWeak ? engine->linkWeak(origin, dest) : engine->link(origin, dest)) { LOG_TRACE(log_system::RAMSES_ADAPTOR, "Create LogicEngine link: {}:{}->{}:{}", fmt::ptr(&origin), origin.getName(), fmt::ptr(&dest), dest.getName()); return {new LinkAdaptor::EngineLink{&origin, &dest}, [engine](LinkAdaptor::EngineLink* link) { bool success = engine->unlink(*link->origin, *link->dest); @@ -78,7 +78,7 @@ void LinkAdaptor::lift() { engineLinks_.clear(); } -void LinkAdaptor::connectHelper(const core::PropertyDescriptor& start, const rlogic::Property& endEngineProp) { +void LinkAdaptor::connectHelper(const core::PropertyDescriptor& start, const rlogic::Property& endEngineProp, bool isWeak) { core::ValueHandle startHandle(start); auto engineType = endEngineProp.getType(); @@ -86,7 +86,7 @@ void LinkAdaptor::connectHelper(const core::PropertyDescriptor& start, const rlo for (size_t index = 0; index < endEngineProp.getChildCount(); index++) { auto endChild = endEngineProp.getChild(index); std::string propName = user_types::dataModelPropNameForLogicEnginePropName(std::string(endChild->getName()), index); - connectHelper(start.child(propName), *endChild); + connectHelper(start.child(propName), *endChild, isWeak); } } else { std::optional startPropOpt = start; @@ -99,7 +99,7 @@ void LinkAdaptor::connectHelper(const core::PropertyDescriptor& start, const rlo if (startAdaptor) { auto startEngineProp = dynamic_cast(startAdaptor)->getProperty(startProp.propertyNames()); if (startEngineProp) { - auto engineLink = createEngineLink(&sceneAdaptor_->logicEngine(), *startEngineProp, endEngineProp); + auto engineLink = createEngineLink(&sceneAdaptor_->logicEngine(), *startEngineProp, endEngineProp, isWeak); if (engineLink) { engineLinks_.emplace_back(std::move(engineLink)); } @@ -122,7 +122,7 @@ void LinkAdaptor::connect() { if (editorLink_.isValid && destAdaptor) { auto endEngineProp = dynamic_cast(destAdaptor)->getProperty(editorLink_.end.propertyNames()); if (endEngineProp) { - connectHelper(editorLink_.start, *endEngineProp); + connectHelper(editorLink_.start, *endEngineProp, editorLink_.isWeak); } } } diff --git a/components/libRamsesBase/src/ramses_adaptor/LuaInterfaceAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/LuaInterfaceAdaptor.cpp index fc379a36..395b1e64 100644 --- a/components/libRamsesBase/src/ramses_adaptor/LuaInterfaceAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/LuaInterfaceAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/LuaScriptAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/LuaScriptAdaptor.cpp index cba1efb8..8913321d 100644 --- a/components/libRamsesBase/src/ramses_adaptor/LuaScriptAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/LuaScriptAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/LuaScriptModuleAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/LuaScriptModuleAdaptor.cpp index 2fd161d5..372b4703 100644 --- a/components/libRamsesBase/src/ramses_adaptor/LuaScriptModuleAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/LuaScriptModuleAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/MaterialAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/MaterialAdaptor.cpp index 576b1f31..ad9f6f86 100644 --- a/components/libRamsesBase/src/ramses_adaptor/MaterialAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/MaterialAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/MeshAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/MeshAdaptor.cpp index d2da02b2..e513059a 100644 --- a/components/libRamsesBase/src/ramses_adaptor/MeshAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/MeshAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/MeshNodeAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/MeshNodeAdaptor.cpp index 2c4577ac..00aaa3ad 100644 --- a/components/libRamsesBase/src/ramses_adaptor/MeshNodeAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/MeshNodeAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/NodeAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/NodeAdaptor.cpp index 690336da..aeacf6fb 100644 --- a/components/libRamsesBase/src/ramses_adaptor/NodeAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/NodeAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/ObjectAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/ObjectAdaptor.cpp index 531c128b..b4a6458b 100644 --- a/components/libRamsesBase/src/ramses_adaptor/ObjectAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/ObjectAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/OrthographicCameraAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/OrthographicCameraAdaptor.cpp index 485053e5..f584c448 100644 --- a/components/libRamsesBase/src/ramses_adaptor/OrthographicCameraAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/OrthographicCameraAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/PerspectiveCameraAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/PerspectiveCameraAdaptor.cpp index d829394c..7d88f674 100644 --- a/components/libRamsesBase/src/ramses_adaptor/PerspectiveCameraAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/PerspectiveCameraAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/RenderBufferAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/RenderBufferAdaptor.cpp index 5c09fc12..4fdf76c7 100644 --- a/components/libRamsesBase/src/ramses_adaptor/RenderBufferAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/RenderBufferAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/RenderLayerAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/RenderLayerAdaptor.cpp index 96f19d37..1ad3d98a 100644 --- a/components/libRamsesBase/src/ramses_adaptor/RenderLayerAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/RenderLayerAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/RenderPassAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/RenderPassAdaptor.cpp index 679b2b15..43a23285 100644 --- a/components/libRamsesBase/src/ramses_adaptor/RenderPassAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/RenderPassAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/RenderTargetAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/RenderTargetAdaptor.cpp index 3f4fca40..08b0c206 100644 --- a/components/libRamsesBase/src/ramses_adaptor/RenderTargetAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/RenderTargetAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -49,7 +49,7 @@ bool RenderTargetAdaptor::sync(core::Errors* errors) { // But if we only add valid render buffers to the list of render buffers, // it will shift all later render buffers to the front, changing their index // (which is not what the shader will expect). - // This is a Ramses bug - see https://github.com/COVESA/ramses/issues/52 + // This is a Ramses bug - see https://github.com/bmwcarit/ramses/issues/52 // If that occurs, refuse to create the render target to avoid any surprises for the user. bool hasEmptySlots = false; for (int bufferSlotIndex = 0; bufferSlotIndex < usertypebuffers.size(); ++bufferSlotIndex) { diff --git a/components/libRamsesBase/src/ramses_adaptor/SceneAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/SceneAdaptor.cpp index 30de80b9..98c55ddd 100644 --- a/components/libRamsesBase/src/ramses_adaptor/SceneAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/SceneAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/SceneBackend.cpp b/components/libRamsesBase/src/ramses_adaptor/SceneBackend.cpp index 51d04806..bafe668a 100644 --- a/components/libRamsesBase/src/ramses_adaptor/SceneBackend.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/SceneBackend.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/TextureSamplerAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/TextureSamplerAdaptor.cpp index 8f7253b2..f386994a 100644 --- a/components/libRamsesBase/src/ramses_adaptor/TextureSamplerAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/TextureSamplerAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_adaptor/TimerAdaptor.cpp b/components/libRamsesBase/src/ramses_adaptor/TimerAdaptor.cpp index 23c95009..362233a0 100644 --- a/components/libRamsesBase/src/ramses_adaptor/TimerAdaptor.cpp +++ b/components/libRamsesBase/src/ramses_adaptor/TimerAdaptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_base/BaseEngineBackend.cpp b/components/libRamsesBase/src/ramses_base/BaseEngineBackend.cpp index 41a12a36..f78ab7ed 100644 --- a/components/libRamsesBase/src/ramses_base/BaseEngineBackend.cpp +++ b/components/libRamsesBase/src/ramses_base/BaseEngineBackend.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_base/CoreInterfaceImpl.cpp b/components/libRamsesBase/src/ramses_base/CoreInterfaceImpl.cpp index 5e601fb4..6a46e4fd 100644 --- a/components/libRamsesBase/src/ramses_base/CoreInterfaceImpl.cpp +++ b/components/libRamsesBase/src/ramses_base/CoreInterfaceImpl.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_base/EnumerationDescriptions.h b/components/libRamsesBase/src/ramses_base/EnumerationDescriptions.h index 703e1142..4699af73 100644 --- a/components/libRamsesBase/src/ramses_base/EnumerationDescriptions.h +++ b/components/libRamsesBase/src/ramses_base/EnumerationDescriptions.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_base/HeadlessEngineBackend.cpp b/components/libRamsesBase/src/ramses_base/HeadlessEngineBackend.cpp index 2898deb2..ae64868d 100644 --- a/components/libRamsesBase/src/ramses_base/HeadlessEngineBackend.cpp +++ b/components/libRamsesBase/src/ramses_base/HeadlessEngineBackend.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/src/ramses_base/Utils.cpp b/components/libRamsesBase/src/ramses_base/Utils.cpp index 12cae2fa..1b81f4ec 100644 --- a/components/libRamsesBase/src/ramses_base/Utils.cpp +++ b/components/libRamsesBase/src/ramses_base/Utils.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/AnimationAdaptor_test.cpp b/components/libRamsesBase/tests/AnimationAdaptor_test.cpp index 8a3fbef1..b1b97a75 100644 --- a/components/libRamsesBase/tests/AnimationAdaptor_test.cpp +++ b/components/libRamsesBase/tests/AnimationAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/AnimationChannelAdaptor_test.cpp b/components/libRamsesBase/tests/AnimationChannelAdaptor_test.cpp index b5ac17ee..531f233d 100644 --- a/components/libRamsesBase/tests/AnimationChannelAdaptor_test.cpp +++ b/components/libRamsesBase/tests/AnimationChannelAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/CMakeLists.txt b/components/libRamsesBase/tests/CMakeLists.txt index 5362fef9..8e02fb66 100644 --- a/components/libRamsesBase/tests/CMakeLists.txt +++ b/components/libRamsesBase/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/CubeMapAdaptor_test.cpp b/components/libRamsesBase/tests/CubeMapAdaptor_test.cpp index c7f6e2ee..4e78666d 100644 --- a/components/libRamsesBase/tests/CubeMapAdaptor_test.cpp +++ b/components/libRamsesBase/tests/CubeMapAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/EngineInterface_test.cpp b/components/libRamsesBase/tests/EngineInterface_test.cpp index c978e73f..335dadf8 100644 --- a/components/libRamsesBase/tests/EngineInterface_test.cpp +++ b/components/libRamsesBase/tests/EngineInterface_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/LinkAdaptor_test.cpp b/components/libRamsesBase/tests/LinkAdaptor_test.cpp index 9dbd92bb..3ecfd061 100644 --- a/components/libRamsesBase/tests/LinkAdaptor_test.cpp +++ b/components/libRamsesBase/tests/LinkAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -565,4 +565,42 @@ end ASSERT_TRUE(commandInterface.project()->links()[0]->isValid()); nodeBinding = backend.logicEngine().findByName("node_NodeBinding"); ASSERT_EQ(nodeBinding->getRotationType(), rlogic::ERotationType::Quaternion); -} \ No newline at end of file +} + +TEST_F(LinkAdaptorFixture, link_weak) { + auto scriptFile = makeFile("lua_script.lua", R"( +function interface(IN,OUT) + IN.x = Type:Float() + IN.y = Type:Float() + OUT.x = Type:Float() + OUT.y = Type:Float() +end +function run(IN,OUT) + OUT.x = IN.x + 1 + OUT.y = IN.y +end + )"); + auto start = create_lua("start", scriptFile); + auto end = create_lua("end", scriptFile); + + commandInterface.addLink({start, {"outputs", "x"}}, {end, {"inputs", "x"}}, false); + commandInterface.addLink({end, {"outputs", "x"}}, {start, {"inputs", "y"}}, true); + commandInterface.set({start, {"inputs", "x"}}, 2.0); + + ASSERT_TRUE(dispatch()); + + auto startEngineObj = select(sceneContext.logicEngine(), "start"); + auto endEngineObj = select(sceneContext.logicEngine(), "end"); + + ASSERT_EQ(startEngineObj->getInputs()->getChild("x")->get(), 2.0); + ASSERT_EQ(startEngineObj->getInputs()->getChild("y")->get(), 4.0); + ASSERT_EQ(startEngineObj->getOutputs()->getChild("x")->get(), 3.0); + ASSERT_EQ(startEngineObj->getOutputs()->getChild("y")->get(), 0.0); + + ASSERT_TRUE(dispatch()); + + ASSERT_EQ(startEngineObj->getInputs()->getChild("x")->get(), 2.0); + ASSERT_EQ(startEngineObj->getInputs()->getChild("y")->get(), 4.0); + ASSERT_EQ(startEngineObj->getOutputs()->getChild("x")->get(), 3.0); + ASSERT_EQ(startEngineObj->getOutputs()->getChild("y")->get(), 4.0); +} diff --git a/components/libRamsesBase/tests/LinkOptimization_test.cpp b/components/libRamsesBase/tests/LinkOptimization_test.cpp index dae0c7c3..e13d5925 100644 --- a/components/libRamsesBase/tests/LinkOptimization_test.cpp +++ b/components/libRamsesBase/tests/LinkOptimization_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/LuaInterfaceAdaptor_test.cpp b/components/libRamsesBase/tests/LuaInterfaceAdaptor_test.cpp index d7f322a1..241ef7d3 100644 --- a/components/libRamsesBase/tests/LuaInterfaceAdaptor_test.cpp +++ b/components/libRamsesBase/tests/LuaInterfaceAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/LuaScriptAdaptor_test.cpp b/components/libRamsesBase/tests/LuaScriptAdaptor_test.cpp index 94ec2fae..09a9b7f2 100644 --- a/components/libRamsesBase/tests/LuaScriptAdaptor_test.cpp +++ b/components/libRamsesBase/tests/LuaScriptAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/LuaScriptModuleAdaptor_test.cpp b/components/libRamsesBase/tests/LuaScriptModuleAdaptor_test.cpp index eac79988..7f2eea5d 100644 --- a/components/libRamsesBase/tests/LuaScriptModuleAdaptor_test.cpp +++ b/components/libRamsesBase/tests/LuaScriptModuleAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/MaterialAdaptor_test.cpp b/components/libRamsesBase/tests/MaterialAdaptor_test.cpp index 591791ab..d4a02e69 100644 --- a/components/libRamsesBase/tests/MaterialAdaptor_test.cpp +++ b/components/libRamsesBase/tests/MaterialAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/MeshAdaptor_test.cpp b/components/libRamsesBase/tests/MeshAdaptor_test.cpp index 16828587..7d43d58e 100644 --- a/components/libRamsesBase/tests/MeshAdaptor_test.cpp +++ b/components/libRamsesBase/tests/MeshAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/MeshNodeAdaptor_test.cpp b/components/libRamsesBase/tests/MeshNodeAdaptor_test.cpp index 22bd191e..3486eca7 100644 --- a/components/libRamsesBase/tests/MeshNodeAdaptor_test.cpp +++ b/components/libRamsesBase/tests/MeshNodeAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/NodeAdaptor_test.cpp b/components/libRamsesBase/tests/NodeAdaptor_test.cpp index fc5846b5..3d5a9bab 100644 --- a/components/libRamsesBase/tests/NodeAdaptor_test.cpp +++ b/components/libRamsesBase/tests/NodeAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/OrthographicCameraAdaptor_test.cpp b/components/libRamsesBase/tests/OrthographicCameraAdaptor_test.cpp index 36f9b1f5..b1688aae 100644 --- a/components/libRamsesBase/tests/OrthographicCameraAdaptor_test.cpp +++ b/components/libRamsesBase/tests/OrthographicCameraAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/PerspectiveCameraAdaptor_test.cpp b/components/libRamsesBase/tests/PerspectiveCameraAdaptor_test.cpp index 18dc811b..9c257020 100644 --- a/components/libRamsesBase/tests/PerspectiveCameraAdaptor_test.cpp +++ b/components/libRamsesBase/tests/PerspectiveCameraAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/RamsesBaseFixture.h b/components/libRamsesBase/tests/RamsesBaseFixture.h index 96571c3c..b3076040 100644 --- a/components/libRamsesBase/tests/RamsesBaseFixture.h +++ b/components/libRamsesBase/tests/RamsesBaseFixture.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -60,9 +60,9 @@ class RamsesBaseFixture : public TestEnvironmentCoreT { std::shared_ptr dataChangeDispatcher; raco::ramses_adaptor::SceneAdaptor sceneContext; - void dispatch() { + bool dispatch() { dataChangeDispatcher->dispatch(this->recorder.release()); - sceneContext.logicEngine().update(); + return sceneContext.logicEngine().update(); } protected: diff --git a/components/libRamsesBase/tests/RamsesLogic_test.cpp b/components/libRamsesBase/tests/RamsesLogic_test.cpp index bf179ee8..8174d263 100644 --- a/components/libRamsesBase/tests/RamsesLogic_test.cpp +++ b/components/libRamsesBase/tests/RamsesLogic_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/Ramses_test.cpp b/components/libRamsesBase/tests/Ramses_test.cpp index 2249faad..f14faff3 100644 --- a/components/libRamsesBase/tests/Ramses_test.cpp +++ b/components/libRamsesBase/tests/Ramses_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/RenderLayerAdaptor_test.cpp b/components/libRamsesBase/tests/RenderLayerAdaptor_test.cpp index 204091de..894ca7d2 100644 --- a/components/libRamsesBase/tests/RenderLayerAdaptor_test.cpp +++ b/components/libRamsesBase/tests/RenderLayerAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/Resources_test.cpp b/components/libRamsesBase/tests/Resources_test.cpp index f379ac87..fc7eb853 100644 --- a/components/libRamsesBase/tests/Resources_test.cpp +++ b/components/libRamsesBase/tests/Resources_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/SceneContext_test.cpp b/components/libRamsesBase/tests/SceneContext_test.cpp index 813c37d7..7f98a8e0 100644 --- a/components/libRamsesBase/tests/SceneContext_test.cpp +++ b/components/libRamsesBase/tests/SceneContext_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/TextureAdaptor_test.cpp b/components/libRamsesBase/tests/TextureAdaptor_test.cpp index f34a2cb1..9951e27d 100644 --- a/components/libRamsesBase/tests/TextureAdaptor_test.cpp +++ b/components/libRamsesBase/tests/TextureAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/TimerAdaptor_test.cpp b/components/libRamsesBase/tests/TimerAdaptor_test.cpp index b713bf4e..6cae2bbe 100644 --- a/components/libRamsesBase/tests/TimerAdaptor_test.cpp +++ b/components/libRamsesBase/tests/TimerAdaptor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/components/libRamsesBase/tests/utilities_test.cpp b/components/libRamsesBase/tests/utilities_test.cpp index 65b0299c..d8fa901d 100644 --- a/components/libRamsesBase/tests/utilities_test.cpp +++ b/components/libRamsesBase/tests/utilities_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/CMakeLists.txt b/datamodel/CMakeLists.txt index 42851f99..def4b3de 100644 --- a/datamodel/CMakeLists.txt +++ b/datamodel/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/CMakeLists.txt b/datamodel/libCore/CMakeLists.txt index e52765f6..1d7bd4ff 100644 --- a/datamodel/libCore/CMakeLists.txt +++ b/datamodel/libCore/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -14,6 +14,7 @@ add_library(libCore include/core/BasicAnnotations.h include/core/BasicTypes.h include/core/ChangeRecorder.h src/ChangeRecorder.cpp + include/core/CodeControlledPropertyModifier.h include/core/CommandInterface.h src/CommandInterface.cpp include/core/Consistency.h src/Consistency.cpp include/core/Context.h src/Context.cpp diff --git a/datamodel/libCore/include/core/BasicAnnotations.h b/datamodel/libCore/include/core/BasicAnnotations.h index d4235901..6ce9bd72 100644 --- a/datamodel/libCore/include/core/BasicAnnotations.h +++ b/datamodel/libCore/include/core/BasicAnnotations.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/BasicTypes.h b/datamodel/libCore/include/core/BasicTypes.h index 997c0e6b..95d262a5 100644 --- a/datamodel/libCore/include/core/BasicTypes.h +++ b/datamodel/libCore/include/core/BasicTypes.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/ChangeRecorder.h b/datamodel/libCore/include/core/ChangeRecorder.h index 9a8af921..2b332abc 100644 --- a/datamodel/libCore/include/core/ChangeRecorder.h +++ b/datamodel/libCore/include/core/ChangeRecorder.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/CodeControlledPropertyModifier.h b/datamodel/libCore/include/core/CodeControlledPropertyModifier.h new file mode 100644 index 00000000..c269663f --- /dev/null +++ b/datamodel/libCore/include/core/CodeControlledPropertyModifier.h @@ -0,0 +1,131 @@ +/* + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of Ramses Composer + * (see https://github.com/bmwcarit/ramses-composer). + * + * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. + * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +#pragma once + +#include "core/BasicTypes.h" +#include "core/ChangeRecorder.h" +#include "core/Handles.h" + +namespace raco::core { + +class CodeControlledPropertyModifier { +public: + template + static void setPrimitive(const core::ValueHandle& valueHandle, Type newValue, core::DataChangeRecorder& recorder) { + auto oldValue = valueHandle.as(); + if (oldValue != newValue) { + valueHandle.valueRef()->set(static_cast(newValue)); + recorder.recordValueChanged(valueHandle); + } + } + + static void setVec2f(const core::ValueHandle& handle, double x, double y, core::DataChangeRecorder& recorder) { + raco::core::Vec2f& v = dynamic_cast(handle.valueRef()->asStruct()); + + if (*v.x != x) { + v.x = x; + recorder.recordValueChanged(handle[0]); + } + if (*v.y != y) { + v.y = y; + recorder.recordValueChanged(handle[1]); + } + } + + static void setVec3f(const core::ValueHandle& handle, double x, double y, double z, core::DataChangeRecorder& recorder) { + raco::core::Vec3f& v = dynamic_cast(handle.valueRef()->asStruct()); + + if (*v.x != x) { + v.x = x; + recorder.recordValueChanged(handle[0]); + } + if (*v.y != y) { + v.y = y; + recorder.recordValueChanged(handle[1]); + } + if (*v.z != z) { + v.z = z; + recorder.recordValueChanged(handle[2]); + } + } + + static void setVec4f(const core::ValueHandle& handle, double x, double y, double z, double w, core::DataChangeRecorder& recorder) { + raco::core::Vec4f& v = dynamic_cast(handle.valueRef()->asStruct()); + + if (*v.x != x) { + v.x = x; + recorder.recordValueChanged(handle[0]); + } + if (*v.y != y) { + v.y = y; + recorder.recordValueChanged(handle[1]); + } + if (*v.z != z) { + v.z = z; + recorder.recordValueChanged(handle[2]); + } + if (*v.w != w) { + v.w = w; + recorder.recordValueChanged(handle[3]); + } + } + + static void setVec2i(const core::ValueHandle& handle, int x, int y, core::DataChangeRecorder& recorder) { + raco::core::Vec2i& v = dynamic_cast(handle.valueRef()->asStruct()); + + if (*v.i1_ != x) { + v.i1_ = x; + recorder.recordValueChanged(handle[0]); + } + if (*v.i2_ != y) { + v.i2_ = y; + recorder.recordValueChanged(handle[1]); + } + } + + static void setVec3i(const core::ValueHandle& handle, int x, int y, int z, core::DataChangeRecorder& recorder) { + raco::core::Vec3i& v = dynamic_cast(handle.valueRef()->asStruct()); + + if (*v.i1_ != x) { + v.i1_ = x; + recorder.recordValueChanged(handle[0]); + } + if (*v.i2_ != y) { + v.i2_ = y; + recorder.recordValueChanged(handle[1]); + } + if (*v.i3_ != z) { + v.i3_ = z; + recorder.recordValueChanged(handle[2]); + } + } + + static void setVec4i(const core::ValueHandle& handle, int x, int y, int z, int w, core::DataChangeRecorder& recorder) { + raco::core::Vec4i& v = dynamic_cast(handle.valueRef()->asStruct()); + + if (*v.i1_ != x) { + v.i1_ = x; + recorder.recordValueChanged(handle[0]); + } + if (*v.i2_ != y) { + v.i2_ = y; + recorder.recordValueChanged(handle[1]); + } + if (*v.i3_ != z) { + v.i3_ = z; + recorder.recordValueChanged(handle[2]); + } + if (*v.i4_ != w) { + v.i4_ = w; + recorder.recordValueChanged(handle[3]); + } + } +}; +} // namespace raco::core diff --git a/datamodel/libCore/include/core/CommandInterface.h b/datamodel/libCore/include/core/CommandInterface.h index e7a7e5b2..87bd1920 100644 --- a/datamodel/libCore/include/core/CommandInterface.h +++ b/datamodel/libCore/include/core/CommandInterface.h @@ -2,13 +2,14 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #pragma once +#include "EditorObject.h" #include "Handles.h" #include "Link.h" @@ -132,7 +133,7 @@ class CommandInterface { std::vector duplicateObjects(const std::vector& objects); // Link operations - SLink addLink(const ValueHandle& start, const ValueHandle& end); + SLink addLink(const ValueHandle& start, const ValueHandle& end, bool isWeak = false); void removeLink(const PropertyDescriptor& end); // @return number of actually deleted objects. @@ -146,4 +147,4 @@ class CommandInterface { UndoStack* undoStack_; }; -} \ No newline at end of file +} // namespace raco::core \ No newline at end of file diff --git a/datamodel/libCore/include/core/Consistency.h b/datamodel/libCore/include/core/Consistency.h index 642bb833..170d6142 100644 --- a/datamodel/libCore/include/core/Consistency.h +++ b/datamodel/libCore/include/core/Consistency.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/Context.h b/datamodel/libCore/include/core/Context.h index 0a75c19f..8b5e5df3 100644 --- a/datamodel/libCore/include/core/Context.h +++ b/datamodel/libCore/include/core/Context.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -146,7 +146,7 @@ class BaseContext { void insertAssetScenegraph(const raco::core::MeshScenegraph& scenegraph, const std::string& absPath, SEditorObject const& parent); // Link operations - SLink addLink(const ValueHandle& start, const ValueHandle& end); + SLink addLink(const ValueHandle& start, const ValueHandle& end, bool isWeak = false); void removeLink(const PropertyDescriptor& end); void performExternalFileReload(const std::vector& objects); diff --git a/datamodel/libCore/include/core/CoreAnnotations.h b/datamodel/libCore/include/core/CoreAnnotations.h index f5669d9b..8ed35d6b 100644 --- a/datamodel/libCore/include/core/CoreAnnotations.h +++ b/datamodel/libCore/include/core/CoreAnnotations.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/CoreFormatter.h b/datamodel/libCore/include/core/CoreFormatter.h index 7b67343f..7f743283 100644 --- a/datamodel/libCore/include/core/CoreFormatter.h +++ b/datamodel/libCore/include/core/CoreFormatter.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -121,12 +121,13 @@ template <> struct fmt::formatter : formatter { template auto format(const raco::core::SLink& link, FormatContext& ctx) { - return fmt::format_to(ctx.out(), "Link {{ start: {}#{} end: {}#{} valid: {}}}", + return fmt::format_to(ctx.out(), "Link {{ start: {}#{} end: {}#{} valid: {} weak: {}}}", ObjectNameOnly{*link->startObject_}, fmt::join(link->startProp_->asVector(), "."), ObjectNameOnly{*link->endObject_}, fmt::join(link->endProp_->asVector(), "."), - *link->isValid_); + *link->isValid_, + *link->isWeak_); } }; diff --git a/datamodel/libCore/include/core/DynamicEditorObject.h b/datamodel/libCore/include/core/DynamicEditorObject.h index 6eaf14f3..408dbaa1 100644 --- a/datamodel/libCore/include/core/DynamicEditorObject.h +++ b/datamodel/libCore/include/core/DynamicEditorObject.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/EditorObject.h b/datamodel/libCore/include/core/EditorObject.h index 77fce8f6..205a3df2 100644 --- a/datamodel/libCore/include/core/EditorObject.h +++ b/datamodel/libCore/include/core/EditorObject.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/EngineInterface.h b/datamodel/libCore/include/core/EngineInterface.h index b46b5097..ad438cd6 100644 --- a/datamodel/libCore/include/core/EngineInterface.h +++ b/datamodel/libCore/include/core/EngineInterface.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/ErrorItem.h b/datamodel/libCore/include/core/ErrorItem.h index ea163ea9..d8c5f628 100644 --- a/datamodel/libCore/include/core/ErrorItem.h +++ b/datamodel/libCore/include/core/ErrorItem.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/Errors.h b/datamodel/libCore/include/core/Errors.h index dbd85ac1..3e47c491 100644 --- a/datamodel/libCore/include/core/Errors.h +++ b/datamodel/libCore/include/core/Errors.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/ExternalReferenceAnnotation.h b/datamodel/libCore/include/core/ExternalReferenceAnnotation.h index 331d56f6..2ef56469 100644 --- a/datamodel/libCore/include/core/ExternalReferenceAnnotation.h +++ b/datamodel/libCore/include/core/ExternalReferenceAnnotation.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/ExtrefOperations.h b/datamodel/libCore/include/core/ExtrefOperations.h index a7549ff4..2cdf19a6 100644 --- a/datamodel/libCore/include/core/ExtrefOperations.h +++ b/datamodel/libCore/include/core/ExtrefOperations.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/FileChangeCallback.h b/datamodel/libCore/include/core/FileChangeCallback.h index 9df7dfc9..6d466eb8 100644 --- a/datamodel/libCore/include/core/FileChangeCallback.h +++ b/datamodel/libCore/include/core/FileChangeCallback.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/FileChangeMonitor.h b/datamodel/libCore/include/core/FileChangeMonitor.h index 92b3eae7..af43b2f8 100644 --- a/datamodel/libCore/include/core/FileChangeMonitor.h +++ b/datamodel/libCore/include/core/FileChangeMonitor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/Handles.h b/datamodel/libCore/include/core/Handles.h index 754eb58a..8365ec85 100644 --- a/datamodel/libCore/include/core/Handles.h +++ b/datamodel/libCore/include/core/Handles.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -17,10 +17,6 @@ #include #include -namespace raco::ramses_adaptor { -class ReadFromEngineManager; -} - namespace raco::core { using namespace raco::data_storage; @@ -32,7 +28,7 @@ template class AnnotationValueHandle; class BaseContext; - +class CodeControlledPropertyModifier; class ValueHandle; class EditorObject; class ValueTreeIterator; @@ -222,7 +218,7 @@ class ValueHandle { private: friend class BaseContext; - friend class raco::ramses_adaptor::ReadFromEngineManager; + friend class CodeControlledPropertyModifier; friend class PrefabOperations; ValueBase* valueRef() const; diff --git a/datamodel/libCore/include/core/Iterators.h b/datamodel/libCore/include/core/Iterators.h index f5e76f82..6b36bc57 100644 --- a/datamodel/libCore/include/core/Iterators.h +++ b/datamodel/libCore/include/core/Iterators.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/Link.h b/datamodel/libCore/include/core/Link.h index b8114b8b..346e74ea 100644 --- a/datamodel/libCore/include/core/Link.h +++ b/datamodel/libCore/include/core/Link.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -36,6 +36,7 @@ struct LinkDescriptor { PropertyDescriptor start; PropertyDescriptor end; bool isValid{true}; + bool isWeak{false}; static bool lessThanByObjectID(const LinkDescriptor& lhs, const LinkDescriptor& rhs); }; @@ -48,12 +49,17 @@ bool operator<(const LinkDescriptor& lhs, const LinkDescriptor& rhs); // Link objects represent links between EditorObject properties in the data model // - Link objects do not possess an identity beyond their content, i.e. they have value semantic // - only the start and end object and property names participate in comparison and establish an identity -// relation between links. The isValid flag is ignored in comparisons +// relation between links. The isValid/isWeak flags are ignored in comparisons // - links must start and end on existing objects in the data model // - links may start/end on properties which don't exist (but the objects must exist). // this can occur for links on lua in/out properties or uniforms // - link validity can change when the set of dynamic properties of objects changes. // currently this concerns lua in/out properties and meshnode uniform properties. +// - weak links do not affect link loop detection in the data model or the engine update order graph. +// they can be used to build loops. +// - weak link status can not change; instead links need to be removed and created again. +// - weak links may not start/end on LuaInterface objects since this would interfere with link optimiation +// on export. // class Link : public ClassWithReflectedMembers { public: @@ -67,9 +73,8 @@ class Link : public ClassWithReflectedMembers { // Needs to be default constructible for deserialization Link(); - Link(const Link& other) : ClassWithReflectedMembers(getProperties()), startObject_(other.startObject_), startProp_(other.startProp_), endObject_(other.endObject_), endProp_(other.endProp_), isValid_(other.isValid_) {} - - Link(const PropertyDescriptor& start, const PropertyDescriptor& end, bool isValid = true); + Link(const Link& other); + Link(const PropertyDescriptor& start, const PropertyDescriptor& end, bool isValid = true, bool isWeak = false); bool isValid() const; @@ -101,6 +106,7 @@ class Link : public ClassWithReflectedMembers { Property endProp_ {{}, {}}; Value isValid_{true}; + Value isWeak_{false}; }; // Compare links but use object id and not SEditorObject pointer itself to compare start/end objects. diff --git a/datamodel/libCore/include/core/MeshCacheInterface.h b/datamodel/libCore/include/core/MeshCacheInterface.h index e352572f..98dbb9f5 100644 --- a/datamodel/libCore/include/core/MeshCacheInterface.h +++ b/datamodel/libCore/include/core/MeshCacheInterface.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/PathManager.h b/datamodel/libCore/include/core/PathManager.h index 3f4e41d7..412c3be6 100644 --- a/datamodel/libCore/include/core/PathManager.h +++ b/datamodel/libCore/include/core/PathManager.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/PathQueries.h b/datamodel/libCore/include/core/PathQueries.h index af54f804..91cf4a62 100644 --- a/datamodel/libCore/include/core/PathQueries.h +++ b/datamodel/libCore/include/core/PathQueries.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/PrefabOperations.h b/datamodel/libCore/include/core/PrefabOperations.h index dd55c319..888302b1 100644 --- a/datamodel/libCore/include/core/PrefabOperations.h +++ b/datamodel/libCore/include/core/PrefabOperations.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/Project.h b/datamodel/libCore/include/core/Project.h index 3a2f8ada..39013c59 100644 --- a/datamodel/libCore/include/core/Project.h +++ b/datamodel/libCore/include/core/Project.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -13,11 +13,12 @@ #include "Handles.h" #include "Link.h" #include "core/ProjectSettings.h" -#include "log_system/log.h" #include "core/Serialization.h" -#include +#include "log_system/log.h" #include +#include #include +#include namespace raco::core { @@ -142,6 +143,12 @@ class Project { // Repair project by removing duplicate links void deduplicateLinks(); + // Lock/unlock code-controlled objects in the Project + void lockCodeCtrldObjs(const SEditorObjectSet& editorObjs); + SEditorObjectSet unlockCodeCtrldObjs(const SEditorObjectSet& editorObjs); + // Check if the object is code-controlled + bool isCodeCtrldObj(const SEditorObject& editorObj) const; + private: // Needed because undo/redo needs to set the complete externalProjectsMap_ at once but // we don't want public functions to allow anybody to do that. @@ -151,6 +158,12 @@ class Project { void removeAllLinks(); + + /** + * @brief Maintains the connection graph of all non-weak links in the project and implements loop detection. + * + * Weak links are not relevant for loop detection and are therefore not included in the link graph. + */ class LinkGraph { public: LinkGraph(const Project& project); @@ -198,6 +211,8 @@ class Project { static inline const std::regex NAMING_PATTERN{"(.*)\\s+\\((\\d+)\\)"}; + // List of all code-controlled objects. + std::unordered_set codeCtrldObjs_{}; }; } // namespace raco::core \ No newline at end of file diff --git a/datamodel/libCore/include/core/ProjectMigration.h b/datamodel/libCore/include/core/ProjectMigration.h index 44a848d7..51a97423 100644 --- a/datamodel/libCore/include/core/ProjectMigration.h +++ b/datamodel/libCore/include/core/ProjectMigration.h @@ -2,15 +2,15 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #pragma once -#include "core/Serialization.h" #include "core/ProxyObjectFactory.h" +#include "core/Serialization.h" namespace raco::serialization { /** @@ -74,8 +74,11 @@ namespace raco::serialization { * 39: Added interfaceSubdirectory to the default resource folder struct in the ProjectSettings. * 40: Renamed 6 user type properties * 41: Renamed Animation property: "animationOutputs" -> "outputs" - */ -constexpr int RAMSES_PROJECT_FILE_VERSION = 41; + * 42: Added isWeak flag to links. + * 43: Removed enableTimerFlag and runTimer properties in ProjectSettings. +*/ + +constexpr int RAMSES_PROJECT_FILE_VERSION = 43; void migrateProject(ProjectDeserializationInfoIR& deserializedIR, raco::serialization::proxy::ProxyObjectFactory& factory); diff --git a/datamodel/libCore/include/core/ProjectMigrationToV23.h b/datamodel/libCore/include/core/ProjectMigrationToV23.h index 20d22a2f..526d2704 100644 --- a/datamodel/libCore/include/core/ProjectMigrationToV23.h +++ b/datamodel/libCore/include/core/ProjectMigrationToV23.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/ProjectSettings.h b/datamodel/libCore/include/core/ProjectSettings.h index d9667aff..82afe25b 100644 --- a/datamodel/libCore/include/core/ProjectSettings.h +++ b/datamodel/libCore/include/core/ProjectSettings.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -84,8 +84,6 @@ class ProjectSettings : public EditorObject { sceneId_(other.sceneId_), viewport_(other.viewport_), backgroundColor_(other.backgroundColor_), - runTimer_(other.runTimer_), - enableTimerFlag_(other.enableTimerFlag_), saveAsZip_(other.saveAsZip_) { fillPropertyDescription(); } @@ -102,8 +100,6 @@ class ProjectSettings : public EditorObject { properties_.emplace_back("viewport", &viewport_); properties_.emplace_back("backgroundColor", &backgroundColor_); properties_.emplace_back("defaultResourceFolders", &defaultResourceDirectories_); - properties_.emplace_back("enableTimerFlag", &enableTimerFlag_); - properties_.emplace_back("runTimer", &runTimer_); properties_.emplace_back("saveAsZip", &saveAsZip_); } @@ -113,10 +109,6 @@ class ProjectSettings : public EditorObject { Property saveAsZip_{false, {"Save As Zipped File"}}; Property defaultResourceDirectories_{{}, {"Default Resource Folders"}}; - - // Properties related to timer running hack - remove these properties and all related code when proper animations have been implemented - Property enableTimerFlag_{false, HiddenProperty()}; - Property runTimer_{false, HiddenProperty()}; }; } // namespace raco::core diff --git a/datamodel/libCore/include/core/PropertyDescriptor.h b/datamodel/libCore/include/core/PropertyDescriptor.h index 2f7307b6..6243ce29 100644 --- a/datamodel/libCore/include/core/PropertyDescriptor.h +++ b/datamodel/libCore/include/core/PropertyDescriptor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/ProxyObjectFactory.h b/datamodel/libCore/include/core/ProxyObjectFactory.h index bbbb5792..e3a91ab4 100644 --- a/datamodel/libCore/include/core/ProxyObjectFactory.h +++ b/datamodel/libCore/include/core/ProxyObjectFactory.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/ProxyTypes.h b/datamodel/libCore/include/core/ProxyTypes.h index abccbf75..2449d4b5 100644 --- a/datamodel/libCore/include/core/ProxyTypes.h +++ b/datamodel/libCore/include/core/ProxyTypes.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/Queries.h b/datamodel/libCore/include/core/Queries.h index 5db2356e..de8b4d44 100644 --- a/datamodel/libCore/include/core/Queries.h +++ b/datamodel/libCore/include/core/Queries.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -152,14 +152,11 @@ namespace Queries { // Returns empty string if no broken links found. std::string getBrokenLinksErrorMessage(const Project& project, SEditorObject obj); - // Get all properties that are allowed as the start of a link ending on the given end property. - // Includes type compatibility checks and loop detection. - std::set allowedLinkStartProperties(const Project& project, const ValueHandle& end); /** Get all properties that are allowed as the start of a link ending on the given end property. * Includes type compatibility checks. - * @returns pair of [ValueHandle] and bool inidicator if a loop will be created. + * @returns tuple of ([ValueHandle], isAllowedStrong, isAllowedWeak) with flags indicating if the link is allowed as strong/weak link. */ - std::set> allLinkStartProperties(const Project& project, const ValueHandle& end); + std::set> allLinkStartProperties(const Project& project, const ValueHandle& end); bool linkSatisfiesConstraints(const PropertyDescriptor& start, const PropertyDescriptor& end); @@ -169,15 +166,15 @@ namespace Queries { bool isValidLinkStart(const ValueHandle& startProperty); // Check if two properties can be linked together - bool userCanCreateLink(const Project& project, const ValueHandle& start, const ValueHandle& link); + bool userCanCreateLink(const Project& project, const ValueHandle& start, const ValueHandle& link, bool isWeak); // Check if a link ending on a property could be removed bool userCanRemoveLink(const Project& project, const PropertyDescriptor& end); // Check if a link is allowed to exist in the data model. - bool linkWouldBeAllowed(const Project& project, const PropertyDescriptor& start, const PropertyDescriptor& end); + bool linkWouldBeAllowed(const Project& project, const PropertyDescriptor& start, const PropertyDescriptor& end, bool isWeak); - // Check if a link between properties would be valid. + // Check if a link between properties would be valid independently of whether it is allowed in the data model. bool linkWouldBeValid(const Project& project, const PropertyDescriptor& start, const PropertyDescriptor& end); }; diff --git a/datamodel/libCore/include/core/Queries_Tags.h b/datamodel/libCore/include/core/Queries_Tags.h index 0ace12cd..7a60a50b 100644 --- a/datamodel/libCore/include/core/Queries_Tags.h +++ b/datamodel/libCore/include/core/Queries_Tags.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/SceneBackendInterface.h b/datamodel/libCore/include/core/SceneBackendInterface.h index 990b15f4..767780e6 100644 --- a/datamodel/libCore/include/core/SceneBackendInterface.h +++ b/datamodel/libCore/include/core/SceneBackendInterface.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/Serialization.h b/datamodel/libCore/include/core/Serialization.h index a409562e..b958c104 100644 --- a/datamodel/libCore/include/core/Serialization.h +++ b/datamodel/libCore/include/core/Serialization.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/SerializationKeys.h b/datamodel/libCore/include/core/SerializationKeys.h index 1ee42b46..a494ae5e 100644 --- a/datamodel/libCore/include/core/SerializationKeys.h +++ b/datamodel/libCore/include/core/SerializationKeys.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/TagDataCache.h b/datamodel/libCore/include/core/TagDataCache.h index e99ce959..68c1a5e9 100644 --- a/datamodel/libCore/include/core/TagDataCache.h +++ b/datamodel/libCore/include/core/TagDataCache.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/Undo.h b/datamodel/libCore/include/core/Undo.h index 9282df9b..6f9fd3b6 100644 --- a/datamodel/libCore/include/core/Undo.h +++ b/datamodel/libCore/include/core/Undo.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/include/core/UserObjectFactoryInterface.h b/datamodel/libCore/include/core/UserObjectFactoryInterface.h index 401d77ec..d0d14215 100644 --- a/datamodel/libCore/include/core/UserObjectFactoryInterface.h +++ b/datamodel/libCore/include/core/UserObjectFactoryInterface.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/ChangeRecorder.cpp b/datamodel/libCore/src/ChangeRecorder.cpp index 4040da43..32a6ac36 100644 --- a/datamodel/libCore/src/ChangeRecorder.cpp +++ b/datamodel/libCore/src/ChangeRecorder.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -76,6 +76,7 @@ void DataChangeRecorder::LinkMap::insertOrUpdateLink(const LinkDescriptor& link) if (addedLinkIt != addedLinksForEndObj.end()) { auto savedLink = addedLinksForEndObj.extract(addedLinkIt); savedLink.value().isValid = link.isValid; + savedLink.value().isWeak = link.isWeak; addedLinksForEndObj.insert(std::move(savedLink)); } else { linkMap_[linkEndObjId].insert(link); @@ -93,6 +94,7 @@ bool DataChangeRecorder::LinkMap::updateLinkIfSaved(const LinkDescriptor& link) if (addedLinkIt != addedLinksForEndObj.end()) { auto savedLink = addedLinksForEndObj.extract(addedLinkIt); savedLink.value().isValid = link.isValid; + savedLink.value().isWeak = link.isWeak; addedLinksForEndObj.insert(std::move(savedLink)); return true; diff --git a/datamodel/libCore/src/CommandInterface.cpp b/datamodel/libCore/src/CommandInterface.cpp index 0370f0db..94008626 100644 --- a/datamodel/libCore/src/CommandInterface.cpp +++ b/datamodel/libCore/src/CommandInterface.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -54,7 +54,6 @@ UndoStack& CommandInterface::undoStack() { return *undoStack_; } - bool CommandInterface::checkHandleForSet(ValueHandle const& handle) { if (!handle) { throw std::runtime_error(fmt::format("Invalid property handle")); @@ -460,7 +459,7 @@ std::vector CommandInterface::duplicateObjects(const std::vector< return duplicatedObjs; } -SLink CommandInterface::addLink(const ValueHandle& start, const ValueHandle& end) { +SLink CommandInterface::addLink(const ValueHandle& start, const ValueHandle& end, bool isWeak) { if (start && !context_->project()->isInstance(start.rootObject())) { throw std::runtime_error(fmt::format("Link starting object '{}' not in project", start.rootObject()->objectName())); } @@ -468,10 +467,10 @@ SLink CommandInterface::addLink(const ValueHandle& start, const ValueHandle& end throw std::runtime_error(fmt::format("Link end object '{}' not in project", end.rootObject()->objectName())); } - if (Queries::userCanCreateLink(*context_->project(), start, end)) { - auto link = context_->addLink(start, end); + if (Queries::userCanCreateLink(*context_->project(), start, end, isWeak)) { + auto link = context_->addLink(start, end, isWeak); PrefabOperations::globalPrefabUpdate(*context_); - undoStack_->push(fmt::format("Create link from '{}' to '{}'", + undoStack_->push(fmt::format("Create {} link from '{}' to '{}'", isWeak ? "weak" : "strong", start.getPropertyPath(), end.getPropertyPath())); return link; } else { @@ -504,5 +503,4 @@ size_t CommandInterface::deleteUnreferencedResources() { return 0; } - } // namespace raco::core diff --git a/datamodel/libCore/src/Consistency.cpp b/datamodel/libCore/src/Consistency.cpp index 3a610869..4dad278d 100644 --- a/datamodel/libCore/src/Consistency.cpp +++ b/datamodel/libCore/src/Consistency.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/Context.cpp b/datamodel/libCore/src/Context.cpp index be937493..0397ef4c 100644 --- a/datamodel/libCore/src/Context.cpp +++ b/datamodel/libCore/src/Context.cpp @@ -2,30 +2,31 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "core/Context.h" +#include "core/CodeControlledPropertyModifier.h" +#include "core/CoreFormatter.h" #include "core/EditorObject.h" #include "core/ErrorItem.h" #include "core/Errors.h" -#include "core/ExtrefOperations.h" #include "core/ExternalReferenceAnnotation.h" +#include "core/ExtrefOperations.h" #include "core/Iterators.h" #include "core/Link.h" -#include "core/PrefabOperations.h" #include "core/MeshCacheInterface.h" +#include "core/PrefabOperations.h" #include "core/Project.h" #include "core/PropertyDescriptor.h" #include "core/Queries.h" +#include "core/Serialization.h" #include "core/Undo.h" #include "core/UserObjectFactoryInterface.h" -#include "core/CoreFormatter.h" #include "log_system/log.h" -#include "core/Serialization.h" #include "user_types/Animation.h" #include "user_types/AnimationChannel.h" #include "user_types/Mesh.h" @@ -695,7 +696,7 @@ std::vector BaseContext::pasteObjects(const std::string& seralize // Keep links if the property doesn't exist or the types don't match: these links are only (temporarily) invalid. if (*link->startObject_ && *link->endObject_ && discardedObjects.find((*link->endObject_)->objectID()) == discardedObjects.end()) { - if (Queries::linkWouldBeAllowed(*project_, link->startProp(), link->endProp())) { + if (Queries::linkWouldBeAllowed(*project_, link->startProp(), link->endProp(), *link->isWeak_)) { link->isValid_ = Queries::linkWouldBeValid(*project_, link->startProp(), link->endProp()); project_->addLink(link); changeMultiplexer_.recordAddLink(link->descriptor()); @@ -1179,8 +1180,9 @@ void BaseContext::insertAssetScenegraph(const raco::core::MeshScenegraph& sceneg auto animChannelOutputName = linkStartAnim->as()->createAnimChannelOutputName(channel.samplerIndex, sceneChannels[animationIndex][channel.samplerIndex]->objectName()); auto linkStart = ValueHandle{linkStartAnim, {"outputs", animChannelOutputName}}; - if (raco::core::Queries::linkWouldBeValid(*project(), linkStart.getDescriptor(), linkEndProp.getDescriptor())) { - addLink(linkStart, linkEndProp); + if (Queries::linkWouldBeAllowed(*project(), linkStart.getDescriptor(), linkEndProp.getDescriptor(), false) && + Queries::linkWouldBeValid(*project(), linkStart.getDescriptor(), linkEndProp.getDescriptor())) { + addLink(linkStart, linkEndProp, false); } else { LOG_WARNING(log_system::CONTEXT, "Output property '{}' of Node '{}' can't be linked with Animation '{}' - either the property is already linked or types are incompatible", animTargetProp, linkEndProp.rootObject()->objectName(), linkStartAnim->objectName()); } @@ -1190,13 +1192,13 @@ void BaseContext::insertAssetScenegraph(const raco::core::MeshScenegraph& sceneg LOG_INFO(log_system::CONTEXT, "Animations imported."); } -SLink BaseContext::addLink(const ValueHandle& start, const ValueHandle& end) { +SLink BaseContext::addLink(const ValueHandle& start, const ValueHandle& end, bool isWeak) { // Remove existing links ending on the property or any nested child properties for (auto link : Queries::getLinksConnectedToPropertySubtree(*project_, end, false, true)) { removeLink(link->endProp()); } - auto link = std::make_shared(start.getDescriptor(), end.getDescriptor()); + auto link = std::make_shared(start.getDescriptor(), end.getDescriptor(), true, isWeak); project_->addLink(link); changeMultiplexer_.recordAddLink(link->descriptor()); diff --git a/datamodel/libCore/src/EditorObject.cpp b/datamodel/libCore/src/EditorObject.cpp index 9066fced..2d461d36 100644 --- a/datamodel/libCore/src/EditorObject.cpp +++ b/datamodel/libCore/src/EditorObject.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/ErrorItem.cpp b/datamodel/libCore/src/ErrorItem.cpp index d7994513..de159693 100644 --- a/datamodel/libCore/src/ErrorItem.cpp +++ b/datamodel/libCore/src/ErrorItem.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/Errors.cpp b/datamodel/libCore/src/Errors.cpp index 65f86f13..93e82d2a 100644 --- a/datamodel/libCore/src/Errors.cpp +++ b/datamodel/libCore/src/Errors.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/ExtrefOperations.cpp b/datamodel/libCore/src/ExtrefOperations.cpp index b915c114..7aa6b213 100644 --- a/datamodel/libCore/src/ExtrefOperations.cpp +++ b/datamodel/libCore/src/ExtrefOperations.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -261,6 +261,15 @@ void ExtrefOperations::updateExternalObjects(BaseContext& context, Project* proj auto localLink = Link::cloneLinkWithTranslation(extLink, translateToLocal); project->addLink(localLink); localChanges.recordAddLink(localLink->descriptor()); + } else if (*localLink->isWeak_ != *extLink->isWeak_) { + // strong <-> weak link transitions are handled as removal and creation operation + // the Project::removeLink/addLink calls are needed to update the link graph map correctly. + project->removeLink(localLink); + localChanges.recordRemoveLink(localLink->descriptor()); + localLink->isWeak_ = *extLink->isWeak_; + localLink->isValid_ = *extLink->isValid_; + project->addLink(localLink); + localChanges.recordAddLink(localLink->descriptor()); } else if (*localLink->isValid_ != *extLink->isValid_) { // update link validity localLink->isValid_ = extLink->isValid_; diff --git a/datamodel/libCore/src/FileChangeCallback.cpp b/datamodel/libCore/src/FileChangeCallback.cpp index f00c32fc..879e2b10 100644 --- a/datamodel/libCore/src/FileChangeCallback.cpp +++ b/datamodel/libCore/src/FileChangeCallback.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/Handles.cpp b/datamodel/libCore/src/Handles.cpp index 7db7c04b..3ef50e59 100644 --- a/datamodel/libCore/src/Handles.cpp +++ b/datamodel/libCore/src/Handles.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/Iterators.cpp b/datamodel/libCore/src/Iterators.cpp index 9b9851a9..dfdd3ea2 100644 --- a/datamodel/libCore/src/Iterators.cpp +++ b/datamodel/libCore/src/Iterators.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/Link.cpp b/datamodel/libCore/src/Link.cpp index c3325fc3..a3dcc9e4 100644 --- a/datamodel/libCore/src/Link.cpp +++ b/datamodel/libCore/src/Link.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -13,16 +13,26 @@ namespace raco::core { -Link::Link(): ClassWithReflectedMembers(getProperties()) -{ +Link::Link() : ClassWithReflectedMembers(getProperties()) { } -Link::Link(const PropertyDescriptor& start, const PropertyDescriptor& end, bool isValid) : ClassWithReflectedMembers(getProperties()) { +Link::Link(const Link& other) + : ClassWithReflectedMembers(getProperties()), + startObject_(other.startObject_), + startProp_(other.startProp_), + endObject_(other.endObject_), + endProp_(other.endProp_), + isValid_(other.isValid_), + isWeak_(other.isWeak_) { +} + +Link::Link(const PropertyDescriptor& start, const PropertyDescriptor& end, bool isValid, bool isWeak) : ClassWithReflectedMembers(getProperties()) { *startObject_ = start.object(); startProp_->set(start.propertyNames()); *endObject_ = end.object(); endProp_->set(end.propertyNames()); isValid_ = isValid; + isWeak_ = isWeak; } bool Link::isValid() const { @@ -34,11 +44,12 @@ std::vector> Link::getProperties() { {"startProp", &startProp_}, {"endObject", &endObject_}, {"endProp", &endProp_}, - {"isValid", &isValid_}}; + {"isValid", &isValid_}, + {"isWeak", &isWeak_}}; } LinkDescriptor Link::descriptor() const { - return LinkDescriptor{startProp(),endProp(), isValid()}; + return LinkDescriptor{startProp(), endProp(), isValid(), *isWeak_}; } std::vector Link::startPropertyNamesVector() const { diff --git a/datamodel/libCore/src/PathManager.cpp b/datamodel/libCore/src/PathManager.cpp index 2c29a82b..3e1c627c 100644 --- a/datamodel/libCore/src/PathManager.cpp +++ b/datamodel/libCore/src/PathManager.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/PathQueries.cpp b/datamodel/libCore/src/PathQueries.cpp index b77fc975..56371a44 100644 --- a/datamodel/libCore/src/PathQueries.cpp +++ b/datamodel/libCore/src/PathQueries.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/PrefabOperations.cpp b/datamodel/libCore/src/PrefabOperations.cpp index d79bcf1f..36dfba55 100644 --- a/datamodel/libCore/src/PrefabOperations.cpp +++ b/datamodel/libCore/src/PrefabOperations.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -234,6 +234,13 @@ void PrefabOperations::updatePrefabInstance(BaseContext& context, const SPrefab& context.project()->addInstance(newInstChild); localChanges.recordCreateObject(newInstChild); createdObjects.emplace_back(prefabChild, newInstChild); + + // If we add an object we must also update the children property of the scenegraph parent + // Normally this property should already be present in the model changes, but + // since the save file optimization may remove objects this is not guaranteed directly after loading. + if (prefabChild->getParent()) { + allChangedValues.insert(ValueHandle(prefabChild->getParent(), &EditorObject::children_)); + } } } @@ -305,6 +312,15 @@ void PrefabOperations::updatePrefabInstance(BaseContext& context, const SPrefab& auto destLink = Link::cloneLinkWithTranslation(prefabLink, translateRefFunc); context.project()->addLink(destLink); localChanges.recordAddLink(destLink->descriptor()); + } else if (*instLink->isWeak_ != *prefabLink->isWeak_) { + // strong <-> weak link transitions are handled as removal and creation operation + // the Project::removeLink/addLink calls are needed to update the link graph map correctly. + context.project()->removeLink(instLink); + localChanges.recordRemoveLink(instLink->descriptor()); + instLink->isWeak_ = *prefabLink->isWeak_; + instLink->isValid_ = prefabLink->isValid(); + context.project()->addLink(instLink); + localChanges.recordAddLink(instLink->descriptor()); } else if (instLink->isValid() != prefabLink->isValid()) { // update link validity instLink->isValid_ = prefabLink->isValid(); diff --git a/datamodel/libCore/src/Project.cpp b/datamodel/libCore/src/Project.cpp index 22b679db..4e1b53f9 100644 --- a/datamodel/libCore/src/Project.cpp +++ b/datamodel/libCore/src/Project.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -32,6 +32,7 @@ Project::Project(const std::vector& instances) : instances_{insta bool Project::removeInstances(SEditorObjectSet const& objects, bool gcExternalProjectMap) { for (const auto& object : objects) { instances_.erase(std::find(instances_.begin(), instances_.end(), object)); + codeCtrldObjs_.erase(object); instanceMap_.erase(object->objectID()); } if (gcExternalProjectMap) { @@ -41,7 +42,9 @@ bool Project::removeInstances(SEditorObjectSet const& objects, bool gcExternalPr } void Project::addInstance(SEditorObject object) { - assert(instanceMap_.find(object->objectID()) == instanceMap_.end()); + if (instanceMap_.find(object->objectID()) != instanceMap_.end()) { + throw std::runtime_error(fmt::format("duplicate object {} with id {}", object->objectName(), object->objectID())); + } instances_.push_back(object); instanceMap_[object->objectID()] = object; } @@ -352,6 +355,34 @@ void Project::setExternalReferenceUpdateFailed(bool status) { externalReferenceUpdateFailed_ = status; } +void Project::lockCodeCtrldObjs(const SEditorObjectSet& editorObjs) { + for (const auto& editorObj : editorObjs) { + if (isCodeCtrldObj(editorObj)) { + assert(false && "Object is already locked!"); + return; + } + codeCtrldObjs_.insert(editorObj); + } +} + +SEditorObjectSet Project::unlockCodeCtrldObjs(const SEditorObjectSet& editorObjs) { + SEditorObjectSet unlockedObjs; + + for (const auto& editorObj : editorObjs) { + if (isCodeCtrldObj(editorObj)) { + unlockedObjs.insert(editorObj); + codeCtrldObjs_.erase(editorObj); + } else { + /* do nothing; object was deleted or unlocked */ + } + } + + return unlockedObjs; +} + +bool Project::isCodeCtrldObj(const SEditorObject& editorObj) const { + return (codeCtrldObjs_.find(editorObj) != codeCtrldObjs_.end()); +} Project::LinkGraph::LinkGraph(const Project& project) { for (auto &link : project.links()) { @@ -360,7 +391,9 @@ Project::LinkGraph::LinkGraph(const Project& project) { } void Project::LinkGraph::addLink(SLink link) { - graph[*link->startObject_].insert(*link->endObject_); + if (!*link->isWeak_) { + graph[*link->startObject_].insert(*link->endObject_); + } } void Project::LinkGraph::removeLink(const Project& project, const SLink link) { diff --git a/datamodel/libCore/src/ProjectMigration.cpp b/datamodel/libCore/src/ProjectMigration.cpp index ea4c808c..1dda4e33 100644 --- a/datamodel/libCore/src/ProjectMigration.cpp +++ b/datamodel/libCore/src/ProjectMigration.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -879,6 +879,7 @@ void migrateProject(ProjectDeserializationInfoIR& deserializedIR, raco::serializ } } + // File version 36: LuaInterfaces instead of LuaScripts as Prefab/PrefabInstance interfaces if (deserializedIR.fileVersion < 36) { @@ -1088,6 +1089,19 @@ void migrateProject(ProjectDeserializationInfoIR& deserializedIR, raco::serializ } } } + + if (deserializedIR.fileVersion < 43) { + for (const auto& dynObj : deserializedIR.objects) { + if (dynObj->serializationTypeName() == "ProjectSettings") { + if (dynObj->hasProperty("runTimer")) { + dynObj->removeProperty("runTimer"); + } + if (dynObj->hasProperty("enableTimerFlag")) { + dynObj->removeProperty("enableTimerFlag"); + } + } + } + } } } // namespace raco::serialization \ No newline at end of file diff --git a/datamodel/libCore/src/ProjectMigrationToV23.cpp b/datamodel/libCore/src/ProjectMigrationToV23.cpp index 48a248eb..c5508327 100644 --- a/datamodel/libCore/src/ProjectMigrationToV23.cpp +++ b/datamodel/libCore/src/ProjectMigrationToV23.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/PropertyDescriptor.cpp b/datamodel/libCore/src/PropertyDescriptor.cpp index 9d89b2ca..61edccf9 100644 --- a/datamodel/libCore/src/PropertyDescriptor.cpp +++ b/datamodel/libCore/src/PropertyDescriptor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/ProxyObjectFactory.cpp b/datamodel/libCore/src/ProxyObjectFactory.cpp index a4322a0f..9c33ab2e 100644 --- a/datamodel/libCore/src/ProxyObjectFactory.cpp +++ b/datamodel/libCore/src/ProxyObjectFactory.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/ProxyTypes.cpp b/datamodel/libCore/src/ProxyTypes.cpp index 22ec4ce2..9d16b156 100644 --- a/datamodel/libCore/src/ProxyTypes.cpp +++ b/datamodel/libCore/src/ProxyTypes.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/Queries.cpp b/datamodel/libCore/src/Queries.cpp index 7c20c879..0a730884 100644 --- a/datamodel/libCore/src/Queries.cpp +++ b/datamodel/libCore/src/Queries.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -394,7 +394,6 @@ bool Queries::isReadOnly(SEditorObject editorObj) { return false; } - bool Queries::isReadOnly(const Project& project, const ValueHandle& handle, bool linkState) { if (Queries::isReadOnly(handle.rootObject())) { return true; @@ -432,6 +431,11 @@ bool Queries::isReadOnly(const Project& project, const ValueHandle& handle, bool if (parent && parent.depth() > 0) { return isReadOnly(project, parent); } + + if (project.isCodeCtrldObj(handle.rootObject())) { + return true; + } + return false; } @@ -809,38 +813,6 @@ bool Queries::linkSatisfiesConstraints(const PropertyDescriptor& start, const Pr } -std::set Queries::allowedLinkStartProperties(const Project& project, const ValueHandle& end) { - PropertyDescriptor endDesc{end.getDescriptor()}; - std::set result; - for (auto instance : project.instances()) { - if (instance != end.rootObject()) { - for (auto const& prop : ValueTreeIteratorAdaptor(ValueHandle(instance))) { - PropertyDescriptor propDesc{prop.getDescriptor()}; - if (prop.query() && checkLinkCompatibleTypes(prop, end) && linkSatisfiesConstraints(propDesc,endDesc) && !project.createsLoop(propDesc, endDesc)) { - result.insert(prop); - } - } - } - } - return result; -} - -std::set> Queries::allLinkStartProperties(const Project& project, const ValueHandle& end) { - PropertyDescriptor endDesc{end.getDescriptor()}; - std::set> result; - for (auto instance : project.instances()) { - if (instance != end.rootObject()) { - for (auto const& prop : ValueTreeIteratorAdaptor(ValueHandle(instance))) { - PropertyDescriptor propDesc{prop.getDescriptor()}; - if (prop.query() && checkLinkCompatibleTypes(prop, end) && linkSatisfiesConstraints(propDesc, endDesc)) { - result.insert({ prop, project.createsLoop(propDesc, endDesc) }); - } - } - } - } - return result; -} - bool Queries::isValidLinkEnd(const ValueHandle& endProperty) { return endProperty.isProperty() && endProperty.query(); } @@ -849,16 +821,25 @@ bool Queries::isValidLinkStart(const ValueHandle& startProperty) { return startProperty.isProperty() && startProperty.query(); } -bool Queries::userCanCreateLink(const Project& project, const ValueHandle& start, const ValueHandle& end) { - if (!(start && end && isValidLinkEnd(end) && isValidLinkStart(start) && checkLinkCompatibleTypes(start, end))) { - return false; - } - if (Queries::isReadOnly(project, end, true)) { +bool Queries::linkWouldBeAllowed(const Project& project, const PropertyDescriptor& start, const PropertyDescriptor& end, bool isWeak) { + if (isWeak && (start.object() == end.object() || + start.object()->isType() || end.object()->isType())) { return false; } - PropertyDescriptor startDesc{start.getDescriptor()}; - PropertyDescriptor endDesc{end.getDescriptor()}; - return linkSatisfiesConstraints(startDesc, endDesc) && !project.createsLoop(startDesc, endDesc); + return linkSatisfiesConstraints(start, end) && + (isWeak || !project.createsLoop(start, end)); +} + +bool Queries::linkWouldBeValid(const Project& project, const PropertyDescriptor& start, const PropertyDescriptor& end) { + ValueHandle startHandle(start); + ValueHandle endHandle(end); + return startHandle && endHandle && isValidLinkStart(startHandle) && isValidLinkEnd(endHandle) && checkLinkCompatibleTypes(startHandle, endHandle); +} + +bool Queries::userCanCreateLink(const Project& project, const ValueHandle& start, const ValueHandle& end, bool isWeak) { + return Queries::linkWouldBeAllowed(project, start.getDescriptor(), end.getDescriptor(), isWeak) && + Queries::linkWouldBeValid(project, start.getDescriptor(), end.getDescriptor()) && + !Queries::isReadOnly(project, end, true); } bool Queries::userCanRemoveLink(const Project& project, const PropertyDescriptor& end) { @@ -868,14 +849,24 @@ bool Queries::userCanRemoveLink(const Project& project, const PropertyDescriptor return true; } -bool Queries::linkWouldBeAllowed(const Project& project, const PropertyDescriptor& start, const PropertyDescriptor& end) { - return linkSatisfiesConstraints(start, end) && !project.createsLoop(start, end); -} - -bool Queries::linkWouldBeValid(const Project& project, const PropertyDescriptor& start, const PropertyDescriptor& end) { - ValueHandle startHandle(start); - ValueHandle endHandle(end); - return startHandle && endHandle && isValidLinkStart(startHandle) && isValidLinkEnd(endHandle) && checkLinkCompatibleTypes(startHandle, endHandle) && linkWouldBeAllowed(project, start, end); +std::set> Queries::allLinkStartProperties(const Project& project, const ValueHandle& end) { + PropertyDescriptor endDesc{end.getDescriptor()}; + std::set> result; + for (auto instance : project.instances()) { + if (instance != end.rootObject()) { + for (auto const& prop : ValueTreeIteratorAdaptor(ValueHandle(instance))) { + PropertyDescriptor propDesc{prop.getDescriptor()}; + if (Queries::linkWouldBeValid(project, propDesc, endDesc)) { + bool allowedWeak = Queries::linkWouldBeAllowed(project, propDesc, endDesc, true); + bool allowedStrong = Queries::linkWouldBeAllowed(project, propDesc, endDesc, false); + if (allowedWeak || allowedStrong) { + result.insert({prop, allowedStrong, allowedWeak}); + } + } + } + } + } + return result; } std::vector Queries::filterForNotResource(const std::vector& objects) { diff --git a/datamodel/libCore/src/Queries_Tags.cpp b/datamodel/libCore/src/Queries_Tags.cpp index 3e8c1e87..326444ed 100644 --- a/datamodel/libCore/src/Queries_Tags.cpp +++ b/datamodel/libCore/src/Queries_Tags.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/Serialization.cpp b/datamodel/libCore/src/Serialization.cpp index b9c841a2..0f82259d 100644 --- a/datamodel/libCore/src/Serialization.cpp +++ b/datamodel/libCore/src/Serialization.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/TagDataCache.cpp b/datamodel/libCore/src/TagDataCache.cpp index 7bcacee2..e0ece905 100644 --- a/datamodel/libCore/src/TagDataCache.cpp +++ b/datamodel/libCore/src/TagDataCache.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/src/Undo.cpp b/datamodel/libCore/src/Undo.cpp index a83b98dd..04029d4e 100644 --- a/datamodel/libCore/src/Undo.cpp +++ b/datamodel/libCore/src/Undo.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -349,6 +349,16 @@ void UndoStack::restoreProjectState(Project *src, Project *dest, BaseContext &co dest->addLink(destLink); changes.recordAddLink(destLink->descriptor()); extrefDirty = extrefDirty || (*srcLink->endObject_)->query(); + } else if (*srcLink->isWeak_ != *foundDestLink->isWeak_) { + // strong <-> weak link transitions are handled as removal and creation operation + // the Project::removeLink/addLink calls are needed to update the link graph map correctly. + dest->removeLink(foundDestLink); + changes.recordRemoveLink(foundDestLink->descriptor()); + foundDestLink->isWeak_ = *srcLink->isWeak_; + foundDestLink->isValid_ = srcLink->isValid(); + dest->addLink(foundDestLink); + changes.recordAddLink(foundDestLink->descriptor()); + extrefDirty = extrefDirty || (*srcLink->endObject_)->query(); } else if (srcLink->isValid() != foundDestLink->isValid()) { // set validity of dest link to validity of src link foundDestLink->isValid_ = srcLink->isValid(); diff --git a/datamodel/libCore/tests/Annotation_test.cpp b/datamodel/libCore/tests/Annotation_test.cpp index 7090bcbd..291aba39 100644 --- a/datamodel/libCore/tests/Annotation_test.cpp +++ b/datamodel/libCore/tests/Annotation_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/CMakeLists.txt b/datamodel/libCore/tests/CMakeLists.txt index acaf232c..1ed30da4 100644 --- a/datamodel/libCore/tests/CMakeLists.txt +++ b/datamodel/libCore/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -145,6 +145,7 @@ raco_package_add_test_resources( migrationTestData/V35_extref_nested.rca migrationTestData/V39.rca migrationTestData/V40.rca + migrationTestData/V41.rca migrationTestData/version-current.rca ) add_compile_definitions(libSerialization_test PRIVATE CMAKE_CURRENT_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}") diff --git a/datamodel/libCore/tests/CommandInterface_test.cpp b/datamodel/libCore/tests/CommandInterface_test.cpp index 63ca14f1..fee75aa8 100644 --- a/datamodel/libCore/tests/CommandInterface_test.cpp +++ b/datamodel/libCore/tests/CommandInterface_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -437,6 +437,7 @@ TEST_F(CommandInterfaceTest, addLink_fail_no_end) { TEST_F(CommandInterfaceTest, addLink_fail_loop) { auto lua = create_lua("lua", "scripts/types-scalar.lua"); EXPECT_THROW(commandInterface.addLink({lua, {"outputs", "ofloat"}}, {lua, {"inputs", "float"}}), std::runtime_error); + EXPECT_THROW(commandInterface.addLink({lua, {"outputs", "ofloat"}}, {lua, {"inputs", "float"}}, true), std::runtime_error); } TEST_F(CommandInterfaceTest, addLink_fail_end_object_readonly) { diff --git a/datamodel/libCore/tests/Context_test.cpp b/datamodel/libCore/tests/Context_test.cpp index ebd6af1b..de3709b8 100644 --- a/datamodel/libCore/tests/Context_test.cpp +++ b/datamodel/libCore/tests/Context_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/Datamodel_test.cpp b/datamodel/libCore/tests/Datamodel_test.cpp index 9fc653c2..1b9999c7 100644 --- a/datamodel/libCore/tests/Datamodel_test.cpp +++ b/datamodel/libCore/tests/Datamodel_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/Deserialization_test.cpp b/datamodel/libCore/tests/Deserialization_test.cpp index d7650c8d..7632c594 100644 --- a/datamodel/libCore/tests/Deserialization_test.cpp +++ b/datamodel/libCore/tests/Deserialization_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/ExternalReference_test.cpp b/datamodel/libCore/tests/ExternalReference_test.cpp index 5a7695d0..fdc9e2fb 100644 --- a/datamodel/libCore/tests/ExternalReference_test.cpp +++ b/datamodel/libCore/tests/ExternalReference_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -54,7 +54,10 @@ class ExtrefTest : public RacoBaseTest<> { EXPECT_EQ(refLinks.size(), project->links().size()); for (const auto &refLink : refLinks) { auto projectLink = raco::core::Queries::getLink(*project, refLink.endProp()); - EXPECT_TRUE(projectLink && projectLink->startProp() == refLink.startProp() && projectLink->isValid() == refLink.isValid()); + EXPECT_TRUE(projectLink); + EXPECT_TRUE(projectLink->startProp() == refLink.startProp()); + EXPECT_TRUE(projectLink->isValid() == refLink.isValid()); + EXPECT_TRUE(*projectLink->isWeak_ == *refLink.isWeak_); } } @@ -2405,4 +2408,113 @@ end ASSERT_NE((ValueHandle{instanceScript, {"inputs", "v"}}.asInt64()), int64_t{0}); }); +} + +TEST_F(ExtrefTest, link_strong_to_weak_transition) { + auto basePathName{(test_path() / "base.rca").string()}; + auto compositePathName{(test_path() / "composite.rca").string()}; + + setupBase(basePathName, [this]() { + auto start = create_lua("start", "scripts/types-scalar.lua"); + auto end = create_lua("end", "scripts/types-scalar.lua"); + cmd->addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}); + }); + + setupComposite(basePathName, compositePathName, {"start", "end"}, [this]() { + auto start = findExt("start"); + auto end = findExt("end"); + checkLinks({{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, false}}); + EXPECT_TRUE(project->createsLoop({end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}})); + + auto local_start = create_lua("local_start", "scripts/types-scalar.lua"); + auto local_end = create_lua("local_end", "scripts/types-scalar.lua"); + cmd->addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{local_start, {"inputs", "float"}}); + cmd->addLink(ValueHandle{end, {"outputs", "ofloat"}}, ValueHandle{local_end, {"inputs", "float"}}); + }); + + updateBase(basePathName, [this]() { + auto start = find("start"); + auto end = find("end"); + cmd->removeLink({end, {"inputs", "float"}}); + cmd->addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}, true); + }); + + updateComposite(compositePathName, [this]() { + auto start = findExt("start"); + auto end = findExt("end"); + + auto local_start = find("local_start"); + auto local_end = find("local_end"); + + checkLinks({{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, true}, + {{start, {"outputs", "ofloat"}}, {local_start, {"inputs", "float"}}, true, false}, + {{end, {"outputs", "ofloat"}}, {local_end, {"inputs", "float"}}, true, false}}); + EXPECT_FALSE(project->createsLoop({end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}})); + }); +} + +TEST_F(ExtrefTest, link_strong_valid_to_weak_invalid_transition) { + auto basePathName{(test_path() / "base.rca").string()}; + auto compositePathName{(test_path() / "composite.rca").string()}; + + setupBase(basePathName, [this]() { + auto start = create_lua("start", "scripts/types-scalar.lua"); + auto end = create_lua("end", "scripts/types-scalar.lua"); + cmd->addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}); + }); + + setupComposite(basePathName, compositePathName, {"start", "end"}, [this]() { + auto start = findExt("start"); + auto end = findExt("end"); + checkLinks({{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, false}}); + EXPECT_TRUE(project->createsLoop({end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}})); + + auto local_start = create_lua("local_start", "scripts/types-scalar.lua"); + auto local_end = create_lua("local_end", "scripts/types-scalar.lua"); + cmd->addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{local_start, {"inputs", "float"}}); + cmd->addLink(ValueHandle{end, {"outputs", "ofloat"}}, ValueHandle{local_end, {"inputs", "float"}}); + }); + + updateBase(basePathName, [this]() { + auto start = find("start"); + auto end = find("end"); + cmd->removeLink({end, {"inputs", "float"}}); + cmd->addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}, true); + cmd->set(ValueHandle{end, {"uri"}}, (test_path() / "scripts/SimpleScript.lua").string()); + }); + + updateComposite(compositePathName, [this]() { + auto start = findExt("start"); + auto end = findExt("end"); + + auto local_start = find("local_start"); + auto local_end = find("local_end"); + + checkLinks({{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, false, true}, + {{start, {"outputs", "ofloat"}}, {local_start, {"inputs", "float"}}, true, false}, + {{end, {"outputs", "ofloat"}}, {local_end, {"inputs", "float"}}, true, false}}); + EXPECT_FALSE(project->createsLoop({end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}})); + }); +} + +TEST_F(ExtrefTest, link_weak_cycle) { + auto basePathName{(test_path() / "base.rca").string()}; + auto compositePathName{(test_path() / "composite.rca").string()}; + + setupBase(basePathName, [this]() { + auto start = create_lua("start", "scripts/types-scalar.lua"); + auto end = create_lua("end", "scripts/types-scalar.lua"); + cmd->addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}); + cmd->addLink(ValueHandle{end, {"outputs", "ofloat"}}, ValueHandle{start, {"inputs", "float"}}, true); + + checkLinks({{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, false}, + {{end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}}, true, true}}); + }); + + setupComposite(basePathName, compositePathName, {"start", "end"}, [this]() { + auto start = findExt("start"); + auto end = findExt("end"); + checkLinks({{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, false}, + {{end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}}, true, true}}); + }); } \ No newline at end of file diff --git a/datamodel/libCore/tests/Handle_test.cpp b/datamodel/libCore/tests/Handle_test.cpp index cd63118d..cffcf3ab 100644 --- a/datamodel/libCore/tests/Handle_test.cpp +++ b/datamodel/libCore/tests/Handle_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/Iterator_test.cpp b/datamodel/libCore/tests/Iterator_test.cpp index 0149a455..3a415a35 100644 --- a/datamodel/libCore/tests/Iterator_test.cpp +++ b/datamodel/libCore/tests/Iterator_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/Link_test.cpp b/datamodel/libCore/tests/Link_test.cpp index 98f1ed97..29bfd459 100644 --- a/datamodel/libCore/tests/Link_test.cpp +++ b/datamodel/libCore/tests/Link_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -226,15 +226,15 @@ TEST_F(LinkTest, lua_lua_compatibility_int64) { auto start = create_lua("start", "scripts/types-scalar.lua"); auto end = create_lua("end", "scripts/struct-simple.lua"); - auto allowed64 = Queries::allowedLinkStartProperties(project, ValueHandle(end, {"inputs", "s", "integer64"})); - std::set refAllowed64{ - {start, {"outputs", "ointeger64"}}}; + auto allowed64 = Queries::allLinkStartProperties(project, ValueHandle(end, {"inputs", "s", "integer64"})); + std::set> refAllowed64{ + {{start, {"outputs", "ointeger64"}}, true, true}}; EXPECT_EQ(allowed64, refAllowed64); - auto allowed32 = Queries::allowedLinkStartProperties(project, ValueHandle(end, {"inputs", "s", "integer"})); - std::set refAllowed32{ - {start, {"outputs", "ointeger"}}}; + auto allowed32 = Queries::allLinkStartProperties(project, ValueHandle(end, {"inputs", "s", "integer"})); + std::set> refAllowed32{ + {{start, {"outputs", "ointeger"}}, true, true}}; EXPECT_EQ(allowed32, refAllowed32); } @@ -243,11 +243,11 @@ TEST_F(LinkTest, lua_lua_compatibility_float) { auto start = create_lua("start", "scripts/types-scalar.lua"); auto end = create_lua("end", "scripts/struct-simple.lua"); - auto allowed = Queries::allowedLinkStartProperties(project, ValueHandle(end, {"inputs", "s", "float"})); - std::set refAllowed{ - {start, {"outputs", "ofloat"}}, - {start, {"outputs", "foo"}}, - {start, {"outputs", "bar"}}}; + auto allowed = Queries::allLinkStartProperties(project, ValueHandle(end, {"inputs", "s", "float"})); + std::set> refAllowed{ + {{start, {"outputs", "ofloat"}}, true, true}, + {{start, {"outputs", "foo"}}, true, true}, + {{start, {"outputs", "bar"}}, true, true}}; EXPECT_EQ(allowed, refAllowed); } @@ -256,11 +256,35 @@ TEST_F(LinkTest, lua_lua_compatibility_struct) { auto start = create_lua("start", "scripts/struct-simple.lua"); auto end = create_lua("end", "scripts/struct-simple.lua"); - auto allowed = Queries::allowedLinkStartProperties(project, ValueHandle(end, {"inputs", "s"})); + auto allowed = Queries::allLinkStartProperties(project, ValueHandle(end, {"inputs", "s"})); - EXPECT_EQ(allowed, std::set({{start, {"outputs", "s"}}})); + std::set> refAllowed{{{start, {"outputs", "s"}}, true, true}}; + EXPECT_EQ(allowed, refAllowed); +} + +TEST_F(LinkTest, loop_weak_after_strong) { + auto start = create_lua("start", "scripts/types-scalar.lua"); + auto end = create_lua("end", "scripts/types-scalar.lua"); + auto [start_out, end_in] = link(start, {"outputs", "ofloat"}, end, {"inputs", "float"}); + checkLinks({{start_out, end_in, true, false}}); + + auto [end_out, start_in] = link(end, {"outputs", "ofloat"}, start, {"inputs", "float"}, true); + checkLinks({{start_out, end_in, true, false}, + {end_out, start_in, true, true}}); +} + +TEST_F(LinkTest, loop_strong_after_weak) { + auto start = create_lua("start", "scripts/types-scalar.lua"); + auto end = create_lua("end", "scripts/types-scalar.lua"); + auto [start_out, end_in] = link(start, {"outputs", "ofloat"}, end, {"inputs", "float"}, true); + checkLinks({{start_out, end_in, true, true}}); + + auto [end_out, start_in] = link(end, {"outputs", "ofloat"}, start, {"inputs", "float"}, false); + checkLinks({{start_out, end_in, true, true}, + {end_out, start_in, true, false}}); } + TEST_F(LinkTest, lua_loop_detection) { auto start = create_lua("start", "scripts/types-scalar.lua"); auto end = create_lua("end", "scripts/types-scalar.lua"); @@ -269,8 +293,13 @@ TEST_F(LinkTest, lua_loop_detection) { // 2 lua scripts, connected graph -> no links allowed { - auto allowed = Queries::allowedLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})); - EXPECT_EQ(allowed.size(), 0); + auto allowed = Queries::allLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})); + std::set> refAllowed{ + {{end, {"outputs", "ofloat"}}, false, true}, + {{end, {"outputs", "foo"}}, false, true}, + {{end, {"outputs", "bar"}}, false, true}}; + + EXPECT_EQ(allowed, refAllowed); } auto start2 = create_lua("start 2", "scripts/types-scalar.lua"); @@ -280,14 +309,17 @@ TEST_F(LinkTest, lua_loop_detection) { // 4 lua scripts, graph not connected, links allowed between the 2 disconnected subgraphs { - auto allowed = Queries::allowedLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})); - std::set refAllowed{ - {start2, {"outputs", "ofloat"}}, - {start2, {"outputs", "foo"}}, - {start2, {"outputs", "bar"}}, - {end2, {"outputs", "ofloat"}}, - {end2, {"outputs", "foo"}}, - {end2, {"outputs", "bar"}}}; + auto allowed = Queries::allLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})); + std::set> refAllowed{ + {{end, {"outputs", "ofloat"}}, false, true}, + {{end, {"outputs", "foo"}}, false, true}, + {{end, {"outputs", "bar"}}, false, true}, + {{start2, {"outputs", "ofloat"}}, true, true}, + {{start2, {"outputs", "foo"}}, true, true}, + {{start2, {"outputs", "bar"}}, true, true}, + {{end2, {"outputs", "ofloat"}}, true, true}, + {{end2, {"outputs", "foo"}}, true, true}, + {{end2, {"outputs", "bar"}}, true, true}}; EXPECT_EQ(allowed, refAllowed); } @@ -296,8 +328,18 @@ TEST_F(LinkTest, lua_loop_detection) { // 4 lua scripts, graph connected again, no links allowed { - auto allowed = Queries::allowedLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})); - EXPECT_EQ(allowed.size(), 0); + auto allowed = Queries::allLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})); + std::set> refAllowed{ + {{end, {"outputs", "ofloat"}}, false, true}, + {{end, {"outputs", "foo"}}, false, true}, + {{end, {"outputs", "bar"}}, false, true}, + {{start2, {"outputs", "ofloat"}}, false, true}, + {{start2, {"outputs", "foo"}}, false, true}, + {{start2, {"outputs", "bar"}}, false, true}, + {{end2, {"outputs", "ofloat"}}, false, true}, + {{end2, {"outputs", "foo"}}, false, true}, + {{end2, {"outputs", "bar"}}, false, true}}; + EXPECT_EQ(allowed, refAllowed); } } @@ -309,13 +351,37 @@ TEST_F(LinkTest, lua_loop_detection_after_remove_link) { checkLinks({{sprop1, eprop1, true}, {sprop2, eprop2, true}}); - EXPECT_EQ(Queries::allowedLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})).size(), 0); + { + auto allowed = Queries::allLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})); + std::set> refAllowed{ + {{end, {"outputs", "ofloat"}}, false, true}, + {{end, {"outputs", "foo"}}, false, true}, + {{end, {"outputs", "bar"}}, false, true}}; + + EXPECT_EQ(allowed, refAllowed); + } context.removeLink(eprop2); - EXPECT_EQ(Queries::allowedLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})).size(), 0); + { + auto allowed = Queries::allLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})); + std::set> refAllowed{ + {{end, {"outputs", "ofloat"}}, false, true}, + {{end, {"outputs", "foo"}}, false, true}, + {{end, {"outputs", "bar"}}, false, true}}; + + EXPECT_EQ(allowed, refAllowed); + } context.removeLink(eprop1); - EXPECT_NE(Queries::allowedLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})).size(), 0); + { + auto allowed = Queries::allLinkStartProperties(project, ValueHandle(start, {"inputs", "float"})); + std::set> refAllowed{ + {{end, {"outputs", "ofloat"}}, true, true}, + {{end, {"outputs", "foo"}}, true, true}, + {{end, {"outputs", "bar"}}, true, true}}; + + EXPECT_EQ(allowed, refAllowed); + } } @@ -767,7 +833,7 @@ TEST_F(LinkTest, lua_restore_two_scripts_prevent_loop_when_changing_output_uri) checkLinks({{sprop, eprop, false}}); // Broken link hinders further links and thus loops - auto allowed = Queries::allowedLinkStartProperties(project, ValueHandle(linkBase, {"outputs", "out_float"})); + auto allowed = Queries::allLinkStartProperties(project, ValueHandle(linkBase, {"outputs", "out_float"})); EXPECT_EQ(allowed.size(), 0); change_uri(linkBase, "scripts/types-scalar.lua"); diff --git a/datamodel/libCore/tests/Node_test.cpp b/datamodel/libCore/tests/Node_test.cpp index c44a840b..c2302c73 100644 --- a/datamodel/libCore/tests/Node_test.cpp +++ b/datamodel/libCore/tests/Node_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/PathManager_test.cpp b/datamodel/libCore/tests/PathManager_test.cpp index 02e92fca..78d0eba9 100644 --- a/datamodel/libCore/tests/PathManager_test.cpp +++ b/datamodel/libCore/tests/PathManager_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/Prefab_test.cpp b/datamodel/libCore/tests/Prefab_test.cpp index dbdf5ea3..d8c39d59 100644 --- a/datamodel/libCore/tests/Prefab_test.cpp +++ b/datamodel/libCore/tests/Prefab_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -293,14 +293,9 @@ TEST_F(PrefabTest, link_broken_inside_prefab_status_gets_propagated_to_instances auto inst = create("inst"); commandInterface.set({inst, {"template"}}, prefab); - auto node = create("node"); - commandInterface.moveScenegraphChildren({node}, prefab); - - auto luaPrefabGlobal = create("luaPrefab"); - commandInterface.moveScenegraphChildren({luaPrefabGlobal}, prefab); - - auto luaPrefabNodeChild = create("luaPrefabNode"); - commandInterface.moveScenegraphChildren({luaPrefabNodeChild}, node); + auto node = create("node", prefab); + auto luaPrefabGlobal = create("luaPrefab", prefab); + auto luaPrefabNodeChild = create("luaPrefabNode", node); commandInterface.set({luaPrefabGlobal, {"uri"}}, test_path().append("scripts/types-scalar.lua").string()); commandInterface.set({luaPrefabNodeChild, {"uri"}}, test_path().append("scripts/SimpleScript.lua").string()); @@ -980,3 +975,133 @@ TEST_F(PrefabTest, prefab_is_valid_ref_target_for_prefabinstance) { auto refTargets = raco::core::Queries::findAllValidReferenceTargets(*commandInterface.project(), {inst, &raco::user_types::PrefabInstance::template_}); ASSERT_EQ(refTargets, std::vector{prefab}); } + + +TEST_F(PrefabTest, link_strong_to_weak_transition) { + auto prefab = create("prefab"); + auto start = create_lua("start", "scripts/types-scalar.lua", prefab); + auto end = create_lua("end", "scripts/types-scalar.lua", prefab); + commandInterface.addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}); + + auto inst = create_prefabInstance("inst", prefab); + auto inst_start = raco::select(inst->children_->asVector(), "start"); + auto inst_end = raco::select(inst->children_->asVector(), "end"); + + checkLinks({{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, false}, + {{inst_start, {"outputs", "ofloat"}}, {inst_end, {"inputs", "float"}}, true, false}}); + + EXPECT_TRUE(project.createsLoop({end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}})); + EXPECT_TRUE(project.createsLoop({inst_end, {"outputs", "ofloat"}}, {inst_start, {"inputs", "float"}})); + + // Use context here to perform prefab update only after both operations are complete + context.removeLink({end, {"inputs", "float"}}); + context.addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}, true); + raco::core::PrefabOperations::globalPrefabUpdate(context); + + checkLinks({{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, true}, + {{inst_start, {"outputs", "ofloat"}}, {inst_end, {"inputs", "float"}}, true, true}}); + + EXPECT_FALSE(project.createsLoop({end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}})); + EXPECT_FALSE(project.createsLoop({inst_end, {"outputs", "ofloat"}}, {inst_start, {"inputs", "float"}})); +} + + +TEST_F(PrefabTest, link_strong_valid_to_weak_invalid_transition) { + auto prefab = create("prefab"); + auto start = create_lua("start", "scripts/types-scalar.lua", prefab); + auto end = create_lua("end", "scripts/types-scalar.lua", prefab); + commandInterface.addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}); + + auto inst = create_prefabInstance("inst", prefab); + auto inst_start = raco::select(inst->children_->asVector(), "start"); + auto inst_end = raco::select(inst->children_->asVector(), "end"); + + checkLinks({{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, false}, + {{inst_start, {"outputs", "ofloat"}}, {inst_end, {"inputs", "float"}}, true, false}}); + + EXPECT_TRUE(project.createsLoop({end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}})); + EXPECT_TRUE(project.createsLoop({inst_end, {"outputs", "ofloat"}}, {inst_start, {"inputs", "float"}})); + + // Use context here to perform prefab update only after both operations are complete + context.removeLink({end, {"inputs", "float"}}); + context.addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}, true); + context.set(ValueHandle{end, {"uri"}}, (test_path() / "scripts/SimpleScript.lua").string()); + raco::core::PrefabOperations::globalPrefabUpdate(context); + + checkLinks({{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, false, true}, + {{inst_start, {"outputs", "ofloat"}}, {inst_end, {"inputs", "float"}}, false, true}}); + + EXPECT_FALSE(project.createsLoop({end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}})); + EXPECT_FALSE(project.createsLoop({inst_end, {"outputs", "ofloat"}}, {inst_start, {"inputs", "float"}})); +} + + +TEST_F(PrefabTest, prefab_update_from_optimized_saved_file) { + raco::ramses_base::HeadlessEngineBackend backend{}; + + std::string root_id; + std::string node_id; + std::string camera_id; + std::string lua_id; + + { + raco::application::RaCoApplication app{backend}; + auto& cmd = *app.activeRaCoProject().commandInterface(); + + auto prefab = create(cmd, "prefab"); + auto root = create(cmd, "root", prefab); + auto camera = create(cmd, "camera", root); + auto node = create(cmd, "node", root); + auto lua = create(cmd, "lua", root); + + auto inst = create_prefabInstance(cmd, "inst", prefab); + auto inst_root = inst->children_->asVector()[0]; + auto inst_camera = inst_root->children_->asVector()[0]; + auto inst_node = inst_root->children_->asVector()[1]; + auto inst_lua = inst_root->children_->asVector()[2]; + + auto renderpass = create(cmd, "renderpass"); + cmd.set({renderpass, &RenderPass::camera_}, inst_camera); + + root_id = inst_root->objectID(); + node_id = inst_node->objectID(); + camera_id = inst_camera->objectID(); + lua_id = inst_lua->objectID(); + + std::string msg; + app.activeRaCoProject().saveAs(QString::fromStdString((test_path() / "test.rca").string()), msg); + } + + { + raco::application::RaCoApplicationLaunchSettings settings; + settings.initialProject = (test_path() / "test.rca").string().c_str(); + raco::application::RaCoApplication app{backend, settings}; + + auto& project = *app.activeRaCoProject().project(); + + auto root = project.getInstanceByID(root_id); + auto camera = project.getInstanceByID(camera_id); + auto node = project.getInstanceByID(node_id); + auto lua = project.getInstanceByID(lua_id); + + ASSERT_TRUE(root != nullptr); + ASSERT_TRUE(camera != nullptr); + ASSERT_TRUE(node != nullptr); + ASSERT_TRUE(lua != nullptr); + + EXPECT_EQ(root, camera->getParent()); + EXPECT_EQ(root, node->getParent()); + EXPECT_EQ(root, lua->getParent()); + + auto count_id_func = [](const Project& project, std::string objectID) { + return std::count_if(project.instances().begin(), project.instances().end(), [objectID](SEditorObject obj) { + return obj->objectID() == objectID; + }); + }; + + EXPECT_EQ(count_id_func(project, root_id), 1); + EXPECT_EQ(count_id_func(project, camera_id), 1); + EXPECT_EQ(count_id_func(project, node_id), 1); + EXPECT_EQ(count_id_func(project, lua_id), 1); + } +} diff --git a/datamodel/libCore/tests/ProjectMigration_test.cpp b/datamodel/libCore/tests/ProjectMigration_test.cpp index e53e930e..cfb3ae70 100644 --- a/datamodel/libCore/tests/ProjectMigration_test.cpp +++ b/datamodel/libCore/tests/ProjectMigration_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -463,6 +463,7 @@ TEST_F(MigrationTest, migrate_V30_to_V34) { EXPECT_EQ(*layer_incl->materialFilterMode_, static_cast(raco::user_types::ERenderLayerMaterialFilterMode::Inclusive)); } + TEST_F(MigrationTest, migrate_from_V35) { auto racoproject = loadAndCheckJson(QString::fromStdString((test_path() / "migrationTestData" / "V35.rca").string())); @@ -489,7 +490,7 @@ TEST_F(MigrationTest, migrate_from_V35) { EXPECT_EQ(inst_int_types->inputs_->get("integer64")->asInt64(), 9); for (auto& link : racoproject->project()->links()) { - EXPECT_TRUE(Queries::linkWouldBeAllowed(*racoproject->project(), link->startProp(), link->endProp())); + EXPECT_TRUE(Queries::linkWouldBeAllowed(*racoproject->project(), link->startProp(), link->endProp(), false)); } EXPECT_EQ(nullptr, Queries::getLink(*racoproject->project(), {prefab_int_array, {"inputs", "float_array", "1"}})); @@ -523,7 +524,7 @@ TEST_F(MigrationTest, migrate_from_V35_extref) { EXPECT_EQ(inst_int_types->inputs_->get("integer64")->asInt64(), 9); for (auto& link : racoproject->project()->links()) { - EXPECT_TRUE(Queries::linkWouldBeAllowed(*racoproject->project(), link->startProp(), link->endProp())); + EXPECT_TRUE(Queries::linkWouldBeAllowed(*racoproject->project(), link->startProp(), link->endProp(), false)); } } @@ -553,7 +554,7 @@ TEST_F(MigrationTest, migrate_from_V35_extref_nested) { EXPECT_EQ(inst_int_types->inputs_->get("float")->asDouble(), 0.25); for (auto& link : racoproject->project()->links()) { - EXPECT_TRUE(Queries::linkWouldBeAllowed(*racoproject->project(), link->startProp(), link->endProp())); + EXPECT_TRUE(Queries::linkWouldBeAllowed(*racoproject->project(), link->startProp(), link->endProp(), false)); } auto inst_link = Queries::getLink(*racoproject->project(), {inst_int_array, {"inputs", "float_array", "1"}}); @@ -619,6 +620,25 @@ TEST_F(MigrationTest, migrate_from_V40) { checkLinks(*racoproject->project(), {{{animation, {"outputs", "Ch0.AnimationChannel"}}, {node, {"translation"}}, true}}); } +TEST_F(MigrationTest, migrate_from_V41) { + auto racoproject = loadAndCheckJson(QString::fromStdString((test_path() / "migrationTestData" / "V41.rca").string())); + + auto start = raco::core::Queries::findByName(racoproject->project()->instances(), "start")->as(); + auto end = raco::core::Queries::findByName(racoproject->project()->instances(), "end")->as(); + + checkLinks(*racoproject->project(), {{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, false}}); +} + +TEST_F(MigrationTest, migrate_to_V43) { + auto racoproject = loadAndCheckJson(QString::fromStdString((test_path() / "migrationTestData" / "V41.rca").string())); + + auto settings = raco::core::Queries::findByName(racoproject->project()->instances(), "V41")->as(); + + EXPECT_FALSE(settings->hasProperty("enableTimerFlag")); + EXPECT_FALSE(settings->hasProperty("runTimer")); +} + + TEST_F(MigrationTest, migrate_from_current) { // Check for changes in serialized JSON in newest version. // Should detect changes in data model with missing migration code. diff --git a/datamodel/libCore/tests/Queries_Tags_test.cpp b/datamodel/libCore/tests/Queries_Tags_test.cpp index 500cfb80..0950fffa 100644 --- a/datamodel/libCore/tests/Queries_Tags_test.cpp +++ b/datamodel/libCore/tests/Queries_Tags_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/Reference_test.cpp b/datamodel/libCore/tests/Reference_test.cpp index 9408b188..c95798f0 100644 --- a/datamodel/libCore/tests/Reference_test.cpp +++ b/datamodel/libCore/tests/Reference_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/Serialization_test.cpp b/datamodel/libCore/tests/Serialization_test.cpp index 10b57c1a..7c39e419 100644 --- a/datamodel/libCore/tests/Serialization_test.cpp +++ b/datamodel/libCore/tests/Serialization_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/Undo_test.cpp b/datamodel/libCore/tests/Undo_test.cpp index e3b4415f..2304e95a 100644 --- a/datamodel/libCore/tests/Undo_test.cpp +++ b/datamodel/libCore/tests/Undo_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -460,11 +460,56 @@ TEST_F(UndoTest, no_change_records_for_deleted_objects) { checkLinks(refLinks); undoStack.setIndex(index); - + auto changedSet = recorder.getAllChangedObjects(); EXPECT_TRUE(changedSet.find(end) == changedSet.end()); } +TEST_F(UndoTest, link_strong_to_weak_transition) { + auto start = create_lua("start", "scripts/types-scalar.lua"); + auto end = create_lua("end", "scripts/types-scalar.lua"); + commandInterface.addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}); + + checkJump( + [this, start, end]() { + commandInterface.removeLink({end, {"inputs", "float"}}); + commandInterface.addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}, true); + }, + [this, start, end]() { + std::vector refLinks{{{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, false}}}; + checkLinks(refLinks); + EXPECT_FALSE(Queries::linkWouldBeAllowed(project, {end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}}, false)); + }, + [this, start, end]() { + std::vector refLinks{{{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, true}}}; + checkLinks(refLinks); + EXPECT_TRUE(Queries::linkWouldBeAllowed(project, {end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}}, false)); + }); +} + +TEST_F(UndoTest, link_strong_valid_to_weak_invalid_transition) { + auto start = create_lua("start", "scripts/types-scalar.lua"); + auto end = create_lua("end", "scripts/types-scalar.lua"); + commandInterface.addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}); + + checkJump( + [this, start, end]() { + commandInterface.removeLink({end, {"inputs", "float"}}); + commandInterface.addLink(ValueHandle{start, {"outputs", "ofloat"}}, ValueHandle{end, {"inputs", "float"}}, true); + commandInterface.set(ValueHandle{end, {"uri"}}, (test_path() / "scripts/SimpleScript.lua").string()); + }, + [this, start, end]() { + std::vector refLinks{{{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, true, false}}}; + checkLinks(refLinks); + EXPECT_FALSE(Queries::linkWouldBeAllowed(project, {end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}}, false)); + }, + [this, start, end]() { + std::vector refLinks{{{{start, {"outputs", "ofloat"}}, {end, {"inputs", "float"}}, false, true}}}; + checkLinks(refLinks); + EXPECT_TRUE(Queries::linkWouldBeAllowed(project, {end, {"outputs", "ofloat"}}, {start, {"inputs", "float"}}, false)); + }); +} + TEST_F(UndoTest, link_broken_changed_output) { auto linkBase = create("script1"); commandInterface.set(ValueHandle{linkBase, {"uri"}}, test_path().append("scripts/types-scalar.lua").string()); diff --git a/datamodel/libCore/tests/ValueHandle_test.cpp b/datamodel/libCore/tests/ValueHandle_test.cpp index 6011ae09..70114015 100644 --- a/datamodel/libCore/tests/ValueHandle_test.cpp +++ b/datamodel/libCore/tests/ValueHandle_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libCore/tests/expectations/LuaScriptLinkedToNode.json b/datamodel/libCore/tests/expectations/LuaScriptLinkedToNode.json index 18ce07d7..5afa7a90 100644 --- a/datamodel/libCore/tests/expectations/LuaScriptLinkedToNode.json +++ b/datamodel/libCore/tests/expectations/LuaScriptLinkedToNode.json @@ -14,6 +14,7 @@ ] }, "isValid": true, + "isWeak": false, "startObject": "lua_script_id", "startProp": { "properties": [ diff --git a/datamodel/libCore/tests/migrationTestData/V41.rca b/datamodel/libCore/tests/migrationTestData/V41.rca new file mode 100644 index 00000000..d4e1ffae --- /dev/null +++ b/datamodel/libCore/tests/migrationTestData/V41.rca @@ -0,0 +1,2799 @@ +{ + "externalProjects": { + }, + "fileVersion": 41, + "instances": [ + { + "properties": { + "inputs": { + "order": [ + "bool", + "float", + "integer", + "integer64", + "s", + "vector2f", + "vector2i", + "vector3f", + "vector3i", + "vector4f", + "vector4i" + ], + "properties": { + "bool": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "float": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "integer": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "integer64": { + "annotations": [ + { + "properties": { + "engineType": 18 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int64::EngineTypeAnnotation::LinkEndAnnotation", + "value": "0" + }, + "s": { + "annotations": [ + { + "properties": { + "engineType": 6 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "String::EngineTypeAnnotation::LinkEndAnnotation", + "value": "" + }, + "vector2f": { + "annotations": [ + { + "properties": { + "engineType": 7 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "typeName": "Vec2f::EngineTypeAnnotation::LinkEndAnnotation" + }, + "vector2i": { + "annotations": [ + { + "properties": { + "engineType": 10 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec2i::EngineTypeAnnotation::LinkEndAnnotation" + }, + "vector3f": { + "annotations": [ + { + "properties": { + "engineType": 8 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "typeName": "Vec3f::EngineTypeAnnotation::LinkEndAnnotation" + }, + "vector3i": { + "annotations": [ + { + "properties": { + "engineType": 11 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i3": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec3i::EngineTypeAnnotation::LinkEndAnnotation" + }, + "vector4f": { + "annotations": [ + { + "properties": { + "engineType": 9 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "w": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "typeName": "Vec4f::EngineTypeAnnotation::LinkEndAnnotation" + }, + "vector4i": { + "annotations": [ + { + "properties": { + "engineType": 12 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i3": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i4": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec4i::EngineTypeAnnotation::LinkEndAnnotation" + } + } + }, + "objectID": "200e136b-79f3-4753-978f-cc49f7bddbe4", + "objectName": "end", + "outputs": { + "order": [ + "bar", + "flag", + "foo", + "obool", + "ofloat", + "ointeger", + "ointeger64", + "ovector2f", + "ovector2i", + "ovector3f", + "ovector3i", + "ovector4f", + "ovector4i" + ], + "properties": { + "bar": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "flag": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "foo": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "obool": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": true + }, + "ofloat": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "ointeger": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "ointeger64": { + "annotations": [ + { + "properties": { + "engineType": 18 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int64::EngineTypeAnnotation::LinkStartAnnotation", + "value": "0" + }, + "ovector2f": { + "annotations": [ + { + "properties": { + "engineType": 7 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "typeName": "Vec2f::EngineTypeAnnotation::LinkStartAnnotation" + }, + "ovector2i": { + "annotations": [ + { + "properties": { + "engineType": 10 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec2i::EngineTypeAnnotation::LinkStartAnnotation" + }, + "ovector3f": { + "annotations": [ + { + "properties": { + "engineType": 8 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 3 + } + }, + "typeName": "Vec3f::EngineTypeAnnotation::LinkStartAnnotation" + }, + "ovector3i": { + "annotations": [ + { + "properties": { + "engineType": 11 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i3": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec3i::EngineTypeAnnotation::LinkStartAnnotation" + }, + "ovector4f": { + "annotations": [ + { + "properties": { + "engineType": 9 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "w": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "typeName": "Vec4f::EngineTypeAnnotation::LinkStartAnnotation" + }, + "ovector4i": { + "annotations": [ + { + "properties": { + "engineType": 12 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i3": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i4": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec4i::EngineTypeAnnotation::LinkStartAnnotation" + } + } + }, + "stdModules": { + "base": true, + "debug": true, + "math": true, + "string": true, + "table": true + }, + "uri": "scripts/types-scalar.lua" + }, + "typeName": "LuaScript" + }, + { + "properties": { + "backgroundColor": { + "w": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "defaultResourceFolders": { + "imageSubdirectory": "images", + "interfaceSubdirectory": "interfaces", + "meshSubdirectory": "meshes", + "scriptSubdirectory": "qwerty", + "shaderSubdirectory": "shaders" + }, + "enableTimerFlag": false, + "objectID": "3aeb7d55-60ef-4082-aa8d-4965841ffdae", + "objectName": "V41", + "runTimer": false, + "saveAsZip": false, + "sceneId": { + "annotations": [ + { + "properties": { + "max": 1024, + "min": 1 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 123 + }, + "viewport": { + "i1": { + "annotations": [ + { + "properties": { + "max": 4096, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 1440 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 4096, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 720 + } + } + }, + "typeName": "ProjectSettings" + }, + { + "properties": { + "frustum": { + "aspectRatio": { + "annotations": [ + { + "properties": { + "max": 4, + "min": 0.5 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 2 + }, + "farPlane": { + "annotations": [ + { + "properties": { + "max": 10000, + "min": 100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1000 + }, + "fieldOfView": { + "annotations": [ + { + "properties": { + "max": 120, + "min": 10 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 35 + }, + "nearPlane": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0.1 + } + }, + "objectID": "3b370bc8-1fbe-43f5-bed4-a3d798d052ab", + "objectName": "PerspectiveCamera", + "rotation": { + "x": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "scaling": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + } + }, + "translation": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 10 + } + }, + "viewport": { + "height": { + "annotations": [ + { + "properties": { + "max": 7680, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 720 + }, + "offsetX": { + "annotations": [ + { + "properties": { + "max": 7680, + "min": -7680 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "offsetY": { + "annotations": [ + { + "properties": { + "max": 7680, + "min": -7680 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "width": { + "annotations": [ + { + "properties": { + "max": 7680, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 1440 + } + }, + "visibility": true + }, + "typeName": "PerspectiveCamera" + }, + { + "properties": { + "camera": "3b370bc8-1fbe-43f5-bed4-a3d798d052ab", + "clearColor": { + "w": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "enableClearColor": true, + "enableClearDepth": true, + "enableClearStencil": true, + "enabled": true, + "layer0": "775ad378-3a59-4183-ab2d-3c63d9fbe987", + "layer1": null, + "layer2": null, + "layer3": null, + "layer4": null, + "layer5": null, + "layer6": null, + "layer7": null, + "objectID": "5407ba94-e21a-4738-9d3d-03016204e460", + "objectName": "MainRenderPass", + "order": 1, + "target": null + }, + "typeName": "RenderPass" + }, + { + "properties": { + "children": { + "properties": [ + { + "typeName": "Ref", + "value": "b7a7a745-b861-4a16-a1b0-44de70ca952c" + } + ] + }, + "objectID": "545bed4b-d14f-4f82-a286-63893d26e7e4", + "objectName": "Node", + "rotation": { + "x": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "scaling": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + } + }, + "tags": { + "properties": [ + { + "typeName": "String", + "value": "render_main" + } + ] + }, + "translation": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "visibility": true + }, + "typeName": "Node" + }, + { + "properties": { + "materialFilterMode": 1, + "objectID": "775ad378-3a59-4183-ab2d-3c63d9fbe987", + "objectName": "MainRenderLayer", + "renderableTags": { + "order": [ + "render_main" + ], + "properties": { + "render_main": { + "typeName": "Int", + "value": 0 + } + } + }, + "sortOrder": 0 + }, + "typeName": "RenderLayer" + }, + { + "properties": { + "instanceCount": { + "annotations": [ + { + "properties": { + "max": 20, + "min": 1 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 1 + }, + "mesh": null, + "objectID": "b7a7a745-b861-4a16-a1b0-44de70ca952c", + "objectName": "MeshNode", + "rotation": { + "x": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 360, + "min": -360 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "scaling": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": 0.1 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 1 + } + }, + "translation": { + "x": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 100, + "min": -100 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "visibility": true + }, + "typeName": "MeshNode" + }, + { + "properties": { + "inputs": { + "order": [ + "bool", + "float", + "integer", + "integer64", + "s", + "vector2f", + "vector2i", + "vector3f", + "vector3i", + "vector4f", + "vector4i" + ], + "properties": { + "bool": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkEndAnnotation", + "value": false + }, + "float": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "integer": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkEndAnnotation", + "value": 0 + }, + "integer64": { + "annotations": [ + { + "properties": { + "engineType": 18 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "Int64::EngineTypeAnnotation::LinkEndAnnotation", + "value": "0" + }, + "s": { + "annotations": [ + { + "properties": { + "engineType": 6 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "typeName": "String::EngineTypeAnnotation::LinkEndAnnotation", + "value": "" + }, + "vector2f": { + "annotations": [ + { + "properties": { + "engineType": 7 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "typeName": "Vec2f::EngineTypeAnnotation::LinkEndAnnotation" + }, + "vector2i": { + "annotations": [ + { + "properties": { + "engineType": 10 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec2i::EngineTypeAnnotation::LinkEndAnnotation" + }, + "vector3f": { + "annotations": [ + { + "properties": { + "engineType": 8 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "typeName": "Vec3f::EngineTypeAnnotation::LinkEndAnnotation" + }, + "vector3i": { + "annotations": [ + { + "properties": { + "engineType": 11 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i3": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec3i::EngineTypeAnnotation::LinkEndAnnotation" + }, + "vector4f": { + "annotations": [ + { + "properties": { + "engineType": 9 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "w": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "typeName": "Vec4f::EngineTypeAnnotation::LinkEndAnnotation" + }, + "vector4i": { + "annotations": [ + { + "properties": { + "engineType": 12 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkEndAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i3": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i4": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec4i::EngineTypeAnnotation::LinkEndAnnotation" + } + } + }, + "objectID": "fdacfa3c-61b4-4b67-a88d-a17546d5ebd1", + "objectName": "start", + "outputs": { + "order": [ + "bar", + "flag", + "foo", + "obool", + "ofloat", + "ointeger", + "ointeger64", + "ovector2f", + "ovector2i", + "ovector3f", + "ovector3i", + "ovector4f", + "ovector4i" + ], + "properties": { + "bar": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "flag": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": false + }, + "foo": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "obool": { + "annotations": [ + { + "properties": { + "engineType": 1 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Bool::EngineTypeAnnotation::LinkStartAnnotation", + "value": true + }, + "ofloat": { + "annotations": [ + { + "properties": { + "engineType": 5 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Double::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "ointeger": { + "annotations": [ + { + "properties": { + "engineType": 2 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int::EngineTypeAnnotation::LinkStartAnnotation", + "value": 0 + }, + "ointeger64": { + "annotations": [ + { + "properties": { + "engineType": 18 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "typeName": "Int64::EngineTypeAnnotation::LinkStartAnnotation", + "value": "0" + }, + "ovector2f": { + "annotations": [ + { + "properties": { + "engineType": 7 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "typeName": "Vec2f::EngineTypeAnnotation::LinkStartAnnotation" + }, + "ovector2i": { + "annotations": [ + { + "properties": { + "engineType": 10 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec2i::EngineTypeAnnotation::LinkStartAnnotation" + }, + "ovector3f": { + "annotations": [ + { + "properties": { + "engineType": 8 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 3 + } + }, + "typeName": "Vec3f::EngineTypeAnnotation::LinkStartAnnotation" + }, + "ovector3i": { + "annotations": [ + { + "properties": { + "engineType": 11 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i3": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec3i::EngineTypeAnnotation::LinkStartAnnotation" + }, + "ovector4f": { + "annotations": [ + { + "properties": { + "engineType": 9 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "w": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "x": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "y": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + }, + "z": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationDouble" + } + ], + "value": 0 + } + }, + "typeName": "Vec4f::EngineTypeAnnotation::LinkStartAnnotation" + }, + "ovector4i": { + "annotations": [ + { + "properties": { + "engineType": 12 + }, + "typeName": "EngineTypeAnnotation" + }, + { + "typeName": "LinkStartAnnotation" + } + ], + "properties": { + "i1": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i2": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i3": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + }, + "i4": { + "annotations": [ + { + "properties": { + "max": 1, + "min": 0 + }, + "typeName": "RangeAnnotationInt" + } + ], + "value": 0 + } + }, + "typeName": "Vec4i::EngineTypeAnnotation::LinkStartAnnotation" + } + } + }, + "stdModules": { + "base": true, + "debug": true, + "math": true, + "string": true, + "table": true + }, + "uri": "scripts/types-scalar.lua" + }, + "typeName": "LuaScript" + } + ], + "links": [ + { + "properties": { + "endObject": "200e136b-79f3-4753-978f-cc49f7bddbe4", + "endProp": { + "properties": [ + { + "typeName": "String", + "value": "inputs" + }, + { + "typeName": "String", + "value": "float" + } + ] + }, + "isValid": true, + "startObject": "fdacfa3c-61b4-4b67-a88d-a17546d5ebd1", + "startProp": { + "properties": [ + { + "typeName": "String", + "value": "outputs" + }, + { + "typeName": "String", + "value": "ofloat" + } + ] + } + }, + "typeName": "Link" + } + ], + "logicEngineVersion": [ + 1, + 1, + 0 + ], + "racoVersion": [ + 1, + 1, + 0 + ], + "ramsesVersion": [ + 27, + 0, + 121 + ], + "structPropMap": { + "BlendOptions": { + "blendColor": "Vec4f::DisplayNameAnnotation", + "blendFactorDestAlpha": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "blendFactorDestColor": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "blendFactorSrcAlpha": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "blendFactorSrcColor": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "blendOperationAlpha": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "blendOperationColor": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "cullmode": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "depthFunction": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "depthwrite": "Bool::DisplayNameAnnotation" + }, + "CameraViewport": { + "height": "Int::RangeAnnotationInt::DisplayNameAnnotation::LinkEndAnnotation", + "offsetX": "Int::RangeAnnotationInt::DisplayNameAnnotation::LinkEndAnnotation", + "offsetY": "Int::RangeAnnotationInt::DisplayNameAnnotation::LinkEndAnnotation", + "width": "Int::RangeAnnotationInt::DisplayNameAnnotation::LinkEndAnnotation" + }, + "DefaultResourceDirectories": { + "imageSubdirectory": "String::DisplayNameAnnotation::URIAnnotation", + "interfaceSubdirectory": "String::DisplayNameAnnotation::URIAnnotation", + "meshSubdirectory": "String::DisplayNameAnnotation::URIAnnotation", + "scriptSubdirectory": "String::DisplayNameAnnotation::URIAnnotation", + "shaderSubdirectory": "String::DisplayNameAnnotation::URIAnnotation" + }, + "LuaStandardModuleSelection": { + "base": "Bool::DisplayNameAnnotation", + "debug": "Bool::DisplayNameAnnotation", + "math": "Bool::DisplayNameAnnotation", + "string": "Bool::DisplayNameAnnotation", + "table": "Bool::DisplayNameAnnotation" + }, + "OrthographicFrustum": { + "bottomPlane": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation", + "farPlane": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation", + "leftPlane": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation", + "nearPlane": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation", + "rightPlane": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation", + "topPlane": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation" + }, + "PerspectiveFrustum": { + "aspectRatio": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation", + "farPlane": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation", + "fieldOfView": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation", + "nearPlane": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation" + }, + "TimerInput": { + "ticker_us": "Int64::DisplayNameAnnotation::LinkEndAnnotation" + }, + "TimerOutput": { + "ticker_us": "Int64::DisplayNameAnnotation::LinkStartAnnotation" + }, + "Vec2f": { + "x": "Double::DisplayNameAnnotation::RangeAnnotationDouble", + "y": "Double::DisplayNameAnnotation::RangeAnnotationDouble" + }, + "Vec2i": { + "i1": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "i2": "Int::DisplayNameAnnotation::RangeAnnotationInt" + }, + "Vec3f": { + "x": "Double::DisplayNameAnnotation::RangeAnnotationDouble", + "y": "Double::DisplayNameAnnotation::RangeAnnotationDouble", + "z": "Double::DisplayNameAnnotation::RangeAnnotationDouble" + }, + "Vec3i": { + "i1": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "i2": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "i3": "Int::DisplayNameAnnotation::RangeAnnotationInt" + }, + "Vec4f": { + "w": "Double::DisplayNameAnnotation::RangeAnnotationDouble", + "x": "Double::DisplayNameAnnotation::RangeAnnotationDouble", + "y": "Double::DisplayNameAnnotation::RangeAnnotationDouble", + "z": "Double::DisplayNameAnnotation::RangeAnnotationDouble" + }, + "Vec4i": { + "i1": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "i2": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "i3": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "i4": "Int::DisplayNameAnnotation::RangeAnnotationInt" + } + }, + "userTypePropMap": { + "Animation": { + "animationChannels": "Table::DisplayNameAnnotation", + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "outputs": "Table::DisplayNameAnnotation", + "progress": "Double::DisplayNameAnnotation::RangeAnnotationDouble::LinkEndAnnotation" + }, + "AnimationChannel": { + "animationIndex": "Int::DisplayNameAnnotation", + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "samplerIndex": "Int::DisplayNameAnnotation", + "uri": "String::URIAnnotation::DisplayNameAnnotation" + }, + "CubeMap": { + "anisotropy": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "generateMipmaps": "Bool::DisplayNameAnnotation", + "level2uriBack": "String::URIAnnotation::DisplayNameAnnotation", + "level2uriBottom": "String::URIAnnotation::DisplayNameAnnotation", + "level2uriFront": "String::URIAnnotation::DisplayNameAnnotation", + "level2uriLeft": "String::URIAnnotation::DisplayNameAnnotation", + "level2uriRight": "String::URIAnnotation::DisplayNameAnnotation", + "level2uriTop": "String::URIAnnotation::DisplayNameAnnotation", + "level3uriBack": "String::URIAnnotation::DisplayNameAnnotation", + "level3uriBottom": "String::URIAnnotation::DisplayNameAnnotation", + "level3uriFront": "String::URIAnnotation::DisplayNameAnnotation", + "level3uriLeft": "String::URIAnnotation::DisplayNameAnnotation", + "level3uriRight": "String::URIAnnotation::DisplayNameAnnotation", + "level3uriTop": "String::URIAnnotation::DisplayNameAnnotation", + "level4uriBack": "String::URIAnnotation::DisplayNameAnnotation", + "level4uriBottom": "String::URIAnnotation::DisplayNameAnnotation", + "level4uriFront": "String::URIAnnotation::DisplayNameAnnotation", + "level4uriLeft": "String::URIAnnotation::DisplayNameAnnotation", + "level4uriRight": "String::URIAnnotation::DisplayNameAnnotation", + "level4uriTop": "String::URIAnnotation::DisplayNameAnnotation", + "magSamplingMethod": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "minSamplingMethod": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "mipmapLevel": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "textureFormat": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "uriBack": "String::URIAnnotation::DisplayNameAnnotation", + "uriBottom": "String::URIAnnotation::DisplayNameAnnotation", + "uriFront": "String::URIAnnotation::DisplayNameAnnotation", + "uriLeft": "String::URIAnnotation::DisplayNameAnnotation", + "uriRight": "String::URIAnnotation::DisplayNameAnnotation", + "uriTop": "String::URIAnnotation::DisplayNameAnnotation", + "wrapUMode": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "wrapVMode": "Int::DisplayNameAnnotation::EnumerationAnnotation" + }, + "LuaInterface": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "inputs": "Table::DisplayNameAnnotation::LinkStartAnnotation::LinkEndAnnotation", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "uri": "String::URIAnnotation::DisplayNameAnnotation" + }, + "LuaScript": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "inputs": "Table::DisplayNameAnnotation::LinkEndAnnotation", + "luaModules": "Table::DisplayNameAnnotation", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "outputs": "Table::DisplayNameAnnotation", + "stdModules": "LuaStandardModuleSelection::DisplayNameAnnotation", + "uri": "String::URIAnnotation::DisplayNameAnnotation" + }, + "LuaScriptModule": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "stdModules": "LuaStandardModuleSelection::DisplayNameAnnotation", + "uri": "String::URIAnnotation::DisplayNameAnnotation" + }, + "Material": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "options": "BlendOptions::DisplayNameAnnotation", + "tags": "Table::ArraySemanticAnnotation::HiddenProperty::TagContainerAnnotation::DisplayNameAnnotation", + "uniforms": "Table::DisplayNameAnnotation", + "uriDefines": "String::URIAnnotation::DisplayNameAnnotation", + "uriFragment": "String::URIAnnotation::DisplayNameAnnotation", + "uriGeometry": "String::URIAnnotation::DisplayNameAnnotation", + "uriVertex": "String::URIAnnotation::DisplayNameAnnotation" + }, + "Mesh": { + "bakeMeshes": "Bool::DisplayNameAnnotation", + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "materialNames": "Table::ArraySemanticAnnotation::HiddenProperty", + "meshIndex": "Int::DisplayNameAnnotation", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "uri": "String::URIAnnotation::DisplayNameAnnotation" + }, + "MeshNode": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "instanceCount": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "materials": "Table::DisplayNameAnnotation", + "mesh": "Mesh::DisplayNameAnnotation", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "rotation": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "scaling": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "tags": "Table::ArraySemanticAnnotation::HiddenProperty::TagContainerAnnotation::DisplayNameAnnotation", + "translation": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "visibility": "Bool::DisplayNameAnnotation::LinkEndAnnotation" + }, + "Node": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "rotation": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "scaling": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "tags": "Table::ArraySemanticAnnotation::HiddenProperty::TagContainerAnnotation::DisplayNameAnnotation", + "translation": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "visibility": "Bool::DisplayNameAnnotation::LinkEndAnnotation" + }, + "OrthographicCamera": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "frustum": "OrthographicFrustum::DisplayNameAnnotation::LinkEndAnnotation", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "rotation": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "scaling": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "tags": "Table::ArraySemanticAnnotation::HiddenProperty::TagContainerAnnotation::DisplayNameAnnotation", + "translation": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "viewport": "CameraViewport::DisplayNameAnnotation::LinkEndAnnotation", + "visibility": "Bool::DisplayNameAnnotation::LinkEndAnnotation" + }, + "PerspectiveCamera": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "frustum": "PerspectiveFrustum::DisplayNameAnnotation::LinkEndAnnotation", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "rotation": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "scaling": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "tags": "Table::ArraySemanticAnnotation::HiddenProperty::TagContainerAnnotation::DisplayNameAnnotation", + "translation": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "viewport": "CameraViewport::DisplayNameAnnotation::LinkEndAnnotation", + "visibility": "Bool::DisplayNameAnnotation::LinkEndAnnotation" + }, + "Prefab": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation" + }, + "PrefabInstance": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "rotation": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "scaling": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "tags": "Table::ArraySemanticAnnotation::HiddenProperty::TagContainerAnnotation::DisplayNameAnnotation", + "template": "Prefab::DisplayNameAnnotation", + "translation": "Vec3f::DisplayNameAnnotation::LinkEndAnnotation", + "visibility": "Bool::DisplayNameAnnotation::LinkEndAnnotation" + }, + "ProjectSettings": { + "backgroundColor": "Vec4f::DisplayNameAnnotation", + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "defaultResourceFolders": "DefaultResourceDirectories::DisplayNameAnnotation", + "enableTimerFlag": "Bool::HiddenProperty", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "runTimer": "Bool::HiddenProperty", + "saveAsZip": "Bool::DisplayNameAnnotation", + "sceneId": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "viewport": "Vec2i::DisplayNameAnnotation" + }, + "RenderBuffer": { + "anisotropy": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "format": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "height": "Int::RangeAnnotationInt::DisplayNameAnnotation", + "magSamplingMethod": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "minSamplingMethod": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "width": "Int::RangeAnnotationInt::DisplayNameAnnotation", + "wrapUMode": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "wrapVMode": "Int::DisplayNameAnnotation::EnumerationAnnotation" + }, + "RenderLayer": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "materialFilterMode": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "materialFilterTags": "Table::ArraySemanticAnnotation::HiddenProperty::TagContainerAnnotation::DisplayNameAnnotation", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "renderableTags": "Table::RenderableTagContainerAnnotation::HiddenProperty::DisplayNameAnnotation", + "sortOrder": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "tags": "Table::ArraySemanticAnnotation::HiddenProperty::TagContainerAnnotation::DisplayNameAnnotation" + }, + "RenderPass": { + "camera": "BaseCamera::DisplayNameAnnotation", + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "clearColor": "Vec4f::DisplayNameAnnotation", + "enableClearColor": "Bool::DisplayNameAnnotation", + "enableClearDepth": "Bool::DisplayNameAnnotation", + "enableClearStencil": "Bool::DisplayNameAnnotation", + "enabled": "Bool::DisplayNameAnnotation", + "layer0": "RenderLayer::DisplayNameAnnotation", + "layer1": "RenderLayer::DisplayNameAnnotation::EmptyReferenceAllowable", + "layer2": "RenderLayer::DisplayNameAnnotation::EmptyReferenceAllowable", + "layer3": "RenderLayer::DisplayNameAnnotation::EmptyReferenceAllowable", + "layer4": "RenderLayer::DisplayNameAnnotation::EmptyReferenceAllowable", + "layer5": "RenderLayer::DisplayNameAnnotation::EmptyReferenceAllowable", + "layer6": "RenderLayer::DisplayNameAnnotation::EmptyReferenceAllowable", + "layer7": "RenderLayer::DisplayNameAnnotation::EmptyReferenceAllowable", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "order": "Int::DisplayNameAnnotation", + "target": "RenderTarget::DisplayNameAnnotation::EmptyReferenceAllowable" + }, + "RenderTarget": { + "buffer0": "RenderBuffer::DisplayNameAnnotation", + "buffer1": "RenderBuffer::DisplayNameAnnotation::EmptyReferenceAllowable", + "buffer2": "RenderBuffer::DisplayNameAnnotation::EmptyReferenceAllowable", + "buffer3": "RenderBuffer::DisplayNameAnnotation::EmptyReferenceAllowable", + "buffer4": "RenderBuffer::DisplayNameAnnotation::EmptyReferenceAllowable", + "buffer5": "RenderBuffer::DisplayNameAnnotation::EmptyReferenceAllowable", + "buffer6": "RenderBuffer::DisplayNameAnnotation::EmptyReferenceAllowable", + "buffer7": "RenderBuffer::DisplayNameAnnotation::EmptyReferenceAllowable", + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation" + }, + "Texture": { + "anisotropy": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "flipTexture": "Bool::DisplayNameAnnotation", + "generateMipmaps": "Bool::DisplayNameAnnotation", + "level2uri": "String::URIAnnotation::DisplayNameAnnotation", + "level3uri": "String::URIAnnotation::DisplayNameAnnotation", + "level4uri": "String::URIAnnotation::DisplayNameAnnotation", + "magSamplingMethod": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "minSamplingMethod": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "mipmapLevel": "Int::DisplayNameAnnotation::RangeAnnotationInt", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "textureFormat": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "uri": "String::URIAnnotation::DisplayNameAnnotation", + "wrapUMode": "Int::DisplayNameAnnotation::EnumerationAnnotation", + "wrapVMode": "Int::DisplayNameAnnotation::EnumerationAnnotation" + }, + "Timer": { + "children": "Table::ArraySemanticAnnotation::HiddenProperty", + "inputs": "TimerInput::DisplayNameAnnotation", + "objectID": "String::HiddenProperty", + "objectName": "String::DisplayNameAnnotation", + "outputs": "TimerOutput::DisplayNameAnnotation" + } + } +} diff --git a/datamodel/libCore/tests/migrationTestData/version-current.rca b/datamodel/libCore/tests/migrationTestData/version-current.rca index 4d0ec8b6..a37af891 100644 --- a/datamodel/libCore/tests/migrationTestData/version-current.rca +++ b/datamodel/libCore/tests/migrationTestData/version-current.rca @@ -1,7 +1,7 @@ { "externalProjects": { }, - "fileVersion": 41, + "fileVersion": 43, "instances": [ { "properties": { @@ -485,9 +485,9 @@ } }, "uriDefines": "", - "uriFragment": "../testData/simple_texture.frag", + "uriFragment": "../../../../../raco-oss-ref/datamodel/libCore/tests/testData/simple_texture.frag", "uriGeometry": "", - "uriVertex": "../testData/simple_texture.vert" + "uriVertex": "../../../../../raco-oss-ref/datamodel/libCore/tests/testData/simple_texture.vert" }, "typeName": "Material" }, @@ -576,9 +576,9 @@ } }, "uriDefines": "", - "uriFragment": "../testData/simple_texture.frag", + "uriFragment": "../../../../../raco-oss-ref/datamodel/libCore/tests/testData/simple_texture.frag", "uriGeometry": "", - "uriVertex": "../testData/simple_texture.vert" + "uriVertex": "../../../../../raco-oss-ref/datamodel/libCore/tests/testData/simple_texture.vert" }, "typeName": "Material" }, @@ -1052,10 +1052,8 @@ "scriptSubdirectory": "scripts", "shaderSubdirectory": "shaders" }, - "enableTimerFlag": false, "objectID": "71454add-eb56-4288-9057-825539914bed", "objectName": "test-offscreen-tex-uniform-migration-material", - "runTimer": false, "saveAsZip": false, "sceneId": { "annotations": [ @@ -1486,7 +1484,7 @@ "objectID": "9c2eeeea-cef0-42a5-9815-d32d38ccfd60", "objectName": "Timer", "outputs": { - "ticker_us": "602356459012" + "ticker_us": "1885853931337" } }, "typeName": "Timer" @@ -1850,7 +1848,7 @@ "meshIndex": 0, "objectID": "a11461f9-239e-4fb5-8a4e-aa55cd177039", "objectName": "Mesh", - "uri": "../testData/duck.glb" + "uri": "../../../../../raco-oss-ref/datamodel/libCore/tests/testData/duck.glb" }, "typeName": "Mesh" }, @@ -1964,7 +1962,7 @@ "racoVersion": [ 1, 1, - 0 + 1 ], "ramsesVersion": [ 27, @@ -2221,10 +2219,8 @@ "backgroundColor": "Vec4f::DisplayNameAnnotation", "children": "Table::ArraySemanticAnnotation::HiddenProperty", "defaultResourceFolders": "DefaultResourceDirectories::DisplayNameAnnotation", - "enableTimerFlag": "Bool::HiddenProperty", "objectID": "String::HiddenProperty", "objectName": "String::DisplayNameAnnotation", - "runTimer": "Bool::HiddenProperty", "saveAsZip": "Bool::DisplayNameAnnotation", "sceneId": "Int::DisplayNameAnnotation::RangeAnnotationInt", "viewport": "Vec2i::DisplayNameAnnotation" diff --git a/datamodel/libDataStorage/CMakeLists.txt b/datamodel/libDataStorage/CMakeLists.txt index 73ab1a0e..7a4d86af 100644 --- a/datamodel/libDataStorage/CMakeLists.txt +++ b/datamodel/libDataStorage/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libDataStorage/include/data_storage/AnnotationBase.h b/datamodel/libDataStorage/include/data_storage/AnnotationBase.h index e698df0e..98685aee 100644 --- a/datamodel/libDataStorage/include/data_storage/AnnotationBase.h +++ b/datamodel/libDataStorage/include/data_storage/AnnotationBase.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libDataStorage/include/data_storage/ReflectionInterface.h b/datamodel/libDataStorage/include/data_storage/ReflectionInterface.h index dbddb7c2..6cc3072b 100644 --- a/datamodel/libDataStorage/include/data_storage/ReflectionInterface.h +++ b/datamodel/libDataStorage/include/data_storage/ReflectionInterface.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -66,6 +66,9 @@ class ReflectionInterface { ValueBase* operator[](std::string const& propertyName); ValueBase* operator[](size_t index); + const ValueBase* operator[](std::string const& propertyName) const; + const ValueBase* operator[](size_t index) const; + virtual size_t size() const = 0; // Find index from property name; return -1 if not found diff --git a/datamodel/libDataStorage/include/data_storage/Table.h b/datamodel/libDataStorage/include/data_storage/Table.h index 4cfc3723..f3b30c42 100644 --- a/datamodel/libDataStorage/include/data_storage/Table.h +++ b/datamodel/libDataStorage/include/data_storage/Table.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libDataStorage/include/data_storage/Value.h b/datamodel/libDataStorage/include/data_storage/Value.h index 01ab04d6..1437f642 100644 --- a/datamodel/libDataStorage/include/data_storage/Value.h +++ b/datamodel/libDataStorage/include/data_storage/Value.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libDataStorage/src/ReflectionInterface.cpp b/datamodel/libDataStorage/src/ReflectionInterface.cpp index 023f1d5a..ddcd9f12 100644 --- a/datamodel/libDataStorage/src/ReflectionInterface.cpp +++ b/datamodel/libDataStorage/src/ReflectionInterface.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -27,7 +27,13 @@ ValueBase* ReflectionInterface::operator[](size_t index) return get(index); } +const ValueBase* ReflectionInterface::operator[](std::string const& propertyName) const { + return get(propertyName); +} +const ValueBase* ReflectionInterface::operator[](size_t index) const { + return get(index); +} ValueBase* ClassWithReflectedMembers::get(std::string const& propertyName) { auto it = std::find_if(properties_.begin(), properties_.end(), diff --git a/datamodel/libDataStorage/src/Table.cpp b/datamodel/libDataStorage/src/Table.cpp index ae93d678..51b19a0a 100644 --- a/datamodel/libDataStorage/src/Table.cpp +++ b/datamodel/libDataStorage/src/Table.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libDataStorage/src/Value.cpp b/datamodel/libDataStorage/src/Value.cpp index 019b918f..0de7fa10 100644 --- a/datamodel/libDataStorage/src/Value.cpp +++ b/datamodel/libDataStorage/src/Value.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libDataStorage/tests/CMakeLists.txt b/datamodel/libDataStorage/tests/CMakeLists.txt index 339a82b6..03c45001 100644 --- a/datamodel/libDataStorage/tests/CMakeLists.txt +++ b/datamodel/libDataStorage/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libDataStorage/tests/Property_test.cpp b/datamodel/libDataStorage/tests/Property_test.cpp index 46886cc7..3f9c9fbb 100644 --- a/datamodel/libDataStorage/tests/Property_test.cpp +++ b/datamodel/libDataStorage/tests/Property_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libDataStorage/tests/StructTypes.h b/datamodel/libDataStorage/tests/StructTypes.h index 71352456..7e0de250 100644 --- a/datamodel/libDataStorage/tests/StructTypes.h +++ b/datamodel/libDataStorage/tests/StructTypes.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libDataStorage/tests/Value_test.cpp b/datamodel/libDataStorage/tests/Value_test.cpp index fe50e02f..74f03973 100644 --- a/datamodel/libDataStorage/tests/Value_test.cpp +++ b/datamodel/libDataStorage/tests/Value_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libTesting/CMakeLists.txt b/datamodel/libTesting/CMakeLists.txt index 18b10671..1d175cb8 100644 --- a/datamodel/libTesting/CMakeLists.txt +++ b/datamodel/libTesting/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libTesting/include/testing/MockUserTypes.h b/datamodel/libTesting/include/testing/MockUserTypes.h index dfa1a87e..3087092e 100644 --- a/datamodel/libTesting/include/testing/MockUserTypes.h +++ b/datamodel/libTesting/include/testing/MockUserTypes.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libTesting/include/testing/RacoBaseTest.h b/datamodel/libTesting/include/testing/RacoBaseTest.h index 46490d79..e82476f2 100644 --- a/datamodel/libTesting/include/testing/RacoBaseTest.h +++ b/datamodel/libTesting/include/testing/RacoBaseTest.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -76,7 +76,10 @@ class RacoBaseTest : public BaseClass { EXPECT_EQ(refLinks.size(), project.links().size()); for (const auto& refLink : refLinks) { auto projectLink = raco::core::Queries::getLink(project, refLink.endProp()); - EXPECT_TRUE(projectLink && projectLink->startProp() == refLink.startProp() && projectLink->isValid() == refLink.isValid()); + EXPECT_TRUE(projectLink); + EXPECT_TRUE(projectLink->startProp() == refLink.startProp()); + EXPECT_TRUE(projectLink->isValid() == refLink.isValid()); + EXPECT_TRUE(*projectLink->isWeak_ == *refLink.isWeak_); } } diff --git a/datamodel/libTesting/include/testing/TestEnvironmentCore.h b/datamodel/libTesting/include/testing/TestEnvironmentCore.h index 4dcc6b7e..fbbc55d2 100644 --- a/datamodel/libTesting/include/testing/TestEnvironmentCore.h +++ b/datamodel/libTesting/include/testing/TestEnvironmentCore.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -192,12 +192,15 @@ struct TestEnvironmentCoreT : public RacoBaseTest { return layer; } - raco::user_types::SPrefabInstance create_prefabInstance(const std::string& name, raco::user_types::SPrefab prefab, raco::user_types::SEditorObject parent = nullptr) { - auto inst = create(name, parent); - commandInterface.set({inst, {"template"}}, prefab); + raco::user_types::SPrefabInstance create_prefabInstance(raco::core::CommandInterface& cmd, const std::string& name, raco::user_types::SPrefab prefab, raco::user_types::SEditorObject parent = nullptr) { + auto inst = create(cmd, name, parent); + cmd.set({inst, {"template"}}, prefab); return inst; } + raco::user_types::SPrefabInstance create_prefabInstance(const std::string& name, raco::user_types::SPrefab prefab, raco::user_types::SEditorObject parent = nullptr) { + return create_prefabInstance(commandInterface, name, prefab, parent); + } void checkUndoRedo(std::function operation, std::function preCheck, std::function postCheck) { RacoBaseTest::checkUndoRedo(commandInterface, operation, preCheck, postCheck); @@ -208,10 +211,10 @@ struct TestEnvironmentCoreT : public RacoBaseTest { RacoBaseTest::checkUndoRedoMultiStep(commandInterface, operations, checks); } - std::pair link(raco::user_types::SEditorObject startObj, std::vector startProp, raco::user_types::SEditorObject endObj, std::vector endProp) { + std::pair link(raco::user_types::SEditorObject startObj, std::vector startProp, raco::user_types::SEditorObject endObj, std::vector endProp, bool isWeak = false) { raco::core::PropertyDescriptor start{startObj, startProp}; raco::core::PropertyDescriptor end{endObj, endProp}; - commandInterface.addLink(raco::core::ValueHandle(start), raco::core::ValueHandle(end)); + commandInterface.addLink(raco::core::ValueHandle(start), raco::core::ValueHandle(end), isWeak); return {start, end}; } diff --git a/datamodel/libTesting/include/testing/TestUtil.h b/datamodel/libTesting/include/testing/TestUtil.h index fcefe39a..b870bf0d 100644 --- a/datamodel/libTesting/include/testing/TestUtil.h +++ b/datamodel/libTesting/include/testing/TestUtil.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/CMakeLists.txt b/datamodel/libUserTypes/CMakeLists.txt index b68e45c4..3a273922 100644 --- a/datamodel/libUserTypes/CMakeLists.txt +++ b/datamodel/libUserTypes/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/Animation.h b/datamodel/libUserTypes/include/user_types/Animation.h index 34821d1f..0ba372c1 100644 --- a/datamodel/libUserTypes/include/user_types/Animation.h +++ b/datamodel/libUserTypes/include/user_types/Animation.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/AnimationChannel.h b/datamodel/libUserTypes/include/user_types/AnimationChannel.h index 9d78b7ff..5cf08e83 100644 --- a/datamodel/libUserTypes/include/user_types/AnimationChannel.h +++ b/datamodel/libUserTypes/include/user_types/AnimationChannel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/BaseCamera.h b/datamodel/libUserTypes/include/user_types/BaseCamera.h index 6a7b30dd..c56367e3 100644 --- a/datamodel/libUserTypes/include/user_types/BaseCamera.h +++ b/datamodel/libUserTypes/include/user_types/BaseCamera.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/BaseObject.h b/datamodel/libUserTypes/include/user_types/BaseObject.h index 0606373d..12ae8cd7 100644 --- a/datamodel/libUserTypes/include/user_types/BaseObject.h +++ b/datamodel/libUserTypes/include/user_types/BaseObject.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/BaseTexture.h b/datamodel/libUserTypes/include/user_types/BaseTexture.h index c556d132..af8e75fa 100644 --- a/datamodel/libUserTypes/include/user_types/BaseTexture.h +++ b/datamodel/libUserTypes/include/user_types/BaseTexture.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/CubeMap.h b/datamodel/libUserTypes/include/user_types/CubeMap.h index 9380832e..a99c5245 100644 --- a/datamodel/libUserTypes/include/user_types/CubeMap.h +++ b/datamodel/libUserTypes/include/user_types/CubeMap.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -96,33 +96,33 @@ class CubeMap : public BaseTexture { Property generateMipmaps_{false, DisplayNameAnnotation("Automatically Generate Mipmaps")}; - Property uriFront_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 1 URI +Z"}}; - Property uriBack_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 1 URI -Z"}}; - Property uriLeft_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 1 URI -X"}}; - Property uriRight_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 1 URI +X"}}; - Property uriTop_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 1 URI +Y"}}; - Property uriBottom_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 1 URI -Y"}}; - - Property level2uriFront_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 2 URI +Z"}}; - Property level2uriBack_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 2 URI -Z"}}; - Property level2uriLeft_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 2 URI -X"}}; - Property level2uriRight_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 2 URI +X"}}; - Property level2uriTop_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 2 URI +Y"}}; - Property level2uriBottom_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 2 URI -Y"}}; - - Property level3uriFront_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 3 URI +Z"}}; - Property level3uriBack_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 3 URI -Z"}}; - Property level3uriLeft_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 3 URI -X"}}; - Property level3uriRight_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 3 URI +X"}}; - Property level3uriTop_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 3 URI +Y"}}; - Property level3uriBottom_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 3 URI -Y"}}; - - Property level4uriFront_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 4 URI +Z"}}; - Property level4uriBack_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 4 URI -Z"}}; - Property level4uriLeft_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 4 URI -X"}}; - Property level4uriRight_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 4 URI +X"}}; - Property level4uriTop_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 4 URI +Y"}}; - Property level4uriBottom_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 4 URI -Y"}}; + Property uriFront_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 1 URI +Z"}}; + Property uriBack_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 1 URI -Z"}}; + Property uriLeft_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 1 URI -X"}}; + Property uriRight_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 1 URI +X"}}; + Property uriTop_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 1 URI +Y"}}; + Property uriBottom_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 1 URI -Y"}}; + + Property level2uriFront_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 2 URI +Z"}}; + Property level2uriBack_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 2 URI -Z"}}; + Property level2uriLeft_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 2 URI -X"}}; + Property level2uriRight_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 2 URI +X"}}; + Property level2uriTop_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 2 URI +Y"}}; + Property level2uriBottom_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 2 URI -Y"}}; + + Property level3uriFront_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 3 URI +Z"}}; + Property level3uriBack_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 3 URI -Z"}}; + Property level3uriLeft_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 3 URI -X"}}; + Property level3uriRight_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 3 URI +X"}}; + Property level3uriTop_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 3 URI +Y"}}; + Property level3uriBottom_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 3 URI -Y"}}; + + Property level4uriFront_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 4 URI +Z"}}; + Property level4uriBack_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 4 URI -Z"}}; + Property level4uriLeft_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 4 URI -X"}}; + Property level4uriRight_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 4 URI +X"}}; + Property level4uriTop_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 4 URI +Y"}}; + Property level4uriBottom_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 4 URI -Y"}}; private: void validateURIs(BaseContext& context); diff --git a/datamodel/libUserTypes/include/user_types/DefaultValues.h b/datamodel/libUserTypes/include/user_types/DefaultValues.h index 56015e1c..0f655bab 100644 --- a/datamodel/libUserTypes/include/user_types/DefaultValues.h +++ b/datamodel/libUserTypes/include/user_types/DefaultValues.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/EngineTypeAnnotation.h b/datamodel/libUserTypes/include/user_types/EngineTypeAnnotation.h index e646b0d8..e0bef0fa 100644 --- a/datamodel/libUserTypes/include/user_types/EngineTypeAnnotation.h +++ b/datamodel/libUserTypes/include/user_types/EngineTypeAnnotation.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/Enumerations.h b/datamodel/libUserTypes/include/user_types/Enumerations.h index afade3ed..9983b6e4 100644 --- a/datamodel/libUserTypes/include/user_types/Enumerations.h +++ b/datamodel/libUserTypes/include/user_types/Enumerations.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/LuaInterface.h b/datamodel/libUserTypes/include/user_types/LuaInterface.h index 00788eb8..417539dc 100644 --- a/datamodel/libUserTypes/include/user_types/LuaInterface.h +++ b/datamodel/libUserTypes/include/user_types/LuaInterface.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -41,7 +41,7 @@ class LuaInterface : public BaseObject { void updateFromExternalFile(BaseContext& context) override; - Property uri_{std::string{}, {"Lua interface files(*.lua)"}, DisplayNameAnnotation("URI")}; + Property uri_{std::string{}, {"Lua interface files(*.lua);; All files (*.*)"}, DisplayNameAnnotation("URI")}; Property inputs_{{}, DisplayNameAnnotation("Inputs"), {}, {}}; diff --git a/datamodel/libUserTypes/include/user_types/LuaScript.h b/datamodel/libUserTypes/include/user_types/LuaScript.h index 674a047c..bf6eb223 100644 --- a/datamodel/libUserTypes/include/user_types/LuaScript.h +++ b/datamodel/libUserTypes/include/user_types/LuaScript.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -46,7 +46,7 @@ class LuaScript : public BaseObject { void updateFromExternalFile(BaseContext& context) override; - Property uri_{std::string{}, {"Lua script files(*.lua)"}, DisplayNameAnnotation("URI")}; + Property uri_{std::string{}, {"Lua script files(*.lua);; All files (*.*)"}, DisplayNameAnnotation("URI")}; Property stdModules_{{}, {"Standard Modules"}}; diff --git a/datamodel/libUserTypes/include/user_types/LuaScriptModule.h b/datamodel/libUserTypes/include/user_types/LuaScriptModule.h index e173d899..3ff86489 100644 --- a/datamodel/libUserTypes/include/user_types/LuaScriptModule.h +++ b/datamodel/libUserTypes/include/user_types/LuaScriptModule.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -49,7 +49,7 @@ class LuaScriptModule : public BaseObject { bool isValid() const; - Property uri_{std::string{}, {"Lua script files(*.lua)"}, DisplayNameAnnotation("URI")}; + Property uri_{std::string{}, {"Lua script files(*.lua);; All files (*.*)"}, DisplayNameAnnotation("URI")}; Property stdModules_{{}, {"Standard Modules"}}; diff --git a/datamodel/libUserTypes/include/user_types/LuaStandardModuleSelection.h b/datamodel/libUserTypes/include/user_types/LuaStandardModuleSelection.h index 40f7a435..9052d0cc 100644 --- a/datamodel/libUserTypes/include/user_types/LuaStandardModuleSelection.h +++ b/datamodel/libUserTypes/include/user_types/LuaStandardModuleSelection.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/Material.h b/datamodel/libUserTypes/include/user_types/Material.h index 13b67ceb..c5416d3b 100644 --- a/datamodel/libUserTypes/include/user_types/Material.h +++ b/datamodel/libUserTypes/include/user_types/Material.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -135,10 +135,10 @@ class Material : public BaseObject { Property tags_{{}, {}, {}, {}, {"Tags"}}; - Property uriVertex_{std::string(), {"Vertex shader files(*.glsl *.vert)"}, DisplayNameAnnotation("Vertex URI")}; - Property uriGeometry_{std::string(), {"Geometry shader files(*.glsl *.geom)"}, DisplayNameAnnotation("Geometry URI")}; - Property uriFragment_{std::string(), {"Fragment shader files(*.glsl *.frag)"}, DisplayNameAnnotation("Fragment URI")}; - Property uriDefines_{std::string(), {"Shader define files(*.def)"}, DisplayNameAnnotation("Defines URI")}; + Property uriVertex_{std::string(), {"Vertex shader files(*.glsl *.vert);; All files (*.*)"}, DisplayNameAnnotation("Vertex URI")}; + Property uriGeometry_{std::string(), {"Geometry shader files(*.glsl *.geom);; All files (*.*)"}, DisplayNameAnnotation("Geometry URI")}; + Property uriFragment_{std::string(), {"Fragment shader files(*.glsl *.frag);; All files (*.*)"}, DisplayNameAnnotation("Fragment URI")}; + Property uriDefines_{std::string(), {"Shader define files(*.def);; All files (*.*)"}, DisplayNameAnnotation("Defines URI")}; Property options_{{}, {"Options"}}; diff --git a/datamodel/libUserTypes/include/user_types/Mesh.h b/datamodel/libUserTypes/include/user_types/Mesh.h index c80470d9..827dafb9 100644 --- a/datamodel/libUserTypes/include/user_types/Mesh.h +++ b/datamodel/libUserTypes/include/user_types/Mesh.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/MeshNode.h b/datamodel/libUserTypes/include/user_types/MeshNode.h index c52237bc..9ecf57cc 100644 --- a/datamodel/libUserTypes/include/user_types/MeshNode.h +++ b/datamodel/libUserTypes/include/user_types/MeshNode.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/Node.h b/datamodel/libUserTypes/include/user_types/Node.h index 2c8aac9a..3e656b3f 100644 --- a/datamodel/libUserTypes/include/user_types/Node.h +++ b/datamodel/libUserTypes/include/user_types/Node.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/OrthographicCamera.h b/datamodel/libUserTypes/include/user_types/OrthographicCamera.h index c0210d80..8a830174 100644 --- a/datamodel/libUserTypes/include/user_types/OrthographicCamera.h +++ b/datamodel/libUserTypes/include/user_types/OrthographicCamera.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/PerspectiveCamera.h b/datamodel/libUserTypes/include/user_types/PerspectiveCamera.h index bd690eb8..80b8baa0 100644 --- a/datamodel/libUserTypes/include/user_types/PerspectiveCamera.h +++ b/datamodel/libUserTypes/include/user_types/PerspectiveCamera.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/Prefab.h b/datamodel/libUserTypes/include/user_types/Prefab.h index 2dcebff0..d524612b 100644 --- a/datamodel/libUserTypes/include/user_types/Prefab.h +++ b/datamodel/libUserTypes/include/user_types/Prefab.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/PrefabInstance.h b/datamodel/libUserTypes/include/user_types/PrefabInstance.h index 6e09080f..342ea454 100644 --- a/datamodel/libUserTypes/include/user_types/PrefabInstance.h +++ b/datamodel/libUserTypes/include/user_types/PrefabInstance.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/RenderBuffer.h b/datamodel/libUserTypes/include/user_types/RenderBuffer.h index 60cbad8b..173515fb 100644 --- a/datamodel/libUserTypes/include/user_types/RenderBuffer.h +++ b/datamodel/libUserTypes/include/user_types/RenderBuffer.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/RenderLayer.h b/datamodel/libUserTypes/include/user_types/RenderLayer.h index 9153a0c8..7a42f248 100644 --- a/datamodel/libUserTypes/include/user_types/RenderLayer.h +++ b/datamodel/libUserTypes/include/user_types/RenderLayer.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/RenderPass.h b/datamodel/libUserTypes/include/user_types/RenderPass.h index eedd228f..e4b1502f 100644 --- a/datamodel/libUserTypes/include/user_types/RenderPass.h +++ b/datamodel/libUserTypes/include/user_types/RenderPass.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/RenderTarget.h b/datamodel/libUserTypes/include/user_types/RenderTarget.h index 2b05d823..8ee6eb08 100644 --- a/datamodel/libUserTypes/include/user_types/RenderTarget.h +++ b/datamodel/libUserTypes/include/user_types/RenderTarget.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/SyncTableWithEngineInterface.h b/datamodel/libUserTypes/include/user_types/SyncTableWithEngineInterface.h index b34881d1..91042e31 100644 --- a/datamodel/libUserTypes/include/user_types/SyncTableWithEngineInterface.h +++ b/datamodel/libUserTypes/include/user_types/SyncTableWithEngineInterface.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/Texture.h b/datamodel/libUserTypes/include/user_types/Texture.h index 12fa4715..4d9a15b0 100644 --- a/datamodel/libUserTypes/include/user_types/Texture.h +++ b/datamodel/libUserTypes/include/user_types/Texture.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -51,10 +51,10 @@ class Texture : public TextureSampler2DBase { Property> mipmapLevel_{1, {"Mipmap Level"}, {1, 4}}; - Property uri_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation("Level 1 URI")}; - Property level2uri_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 2 URI"}}; - Property level3uri_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 3 URI"}}; - Property level4uri_{std::string{}, {"Image files(*.png)"}, DisplayNameAnnotation{"Level 4 URI"}}; + Property uri_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation("Level 1 URI")}; + Property level2uri_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 2 URI"}}; + Property level3uri_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 3 URI"}}; + Property level4uri_{std::string{}, {"Image files(*.png);; All files (*.*)"}, DisplayNameAnnotation{"Level 4 URI"}}; private: void validateURIs(BaseContext& context); diff --git a/datamodel/libUserTypes/include/user_types/Timer.h b/datamodel/libUserTypes/include/user_types/Timer.h index 477f6f5f..0faf6ef3 100644 --- a/datamodel/libUserTypes/include/user_types/Timer.h +++ b/datamodel/libUserTypes/include/user_types/Timer.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/include/user_types/UserObjectFactory.h b/datamodel/libUserTypes/include/user_types/UserObjectFactory.h index 5341cc47..f119e67f 100644 --- a/datamodel/libUserTypes/include/user_types/UserObjectFactory.h +++ b/datamodel/libUserTypes/include/user_types/UserObjectFactory.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/Animation.cpp b/datamodel/libUserTypes/src/Animation.cpp index 693381b0..bb8df246 100644 --- a/datamodel/libUserTypes/src/Animation.cpp +++ b/datamodel/libUserTypes/src/Animation.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/AnimationChannel.cpp b/datamodel/libUserTypes/src/AnimationChannel.cpp index 8d43384d..b632bb87 100644 --- a/datamodel/libUserTypes/src/AnimationChannel.cpp +++ b/datamodel/libUserTypes/src/AnimationChannel.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/CubeMap.cpp b/datamodel/libUserTypes/src/CubeMap.cpp index 9842cb43..8355a4ba 100644 --- a/datamodel/libUserTypes/src/CubeMap.cpp +++ b/datamodel/libUserTypes/src/CubeMap.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/Enumerations.cpp b/datamodel/libUserTypes/src/Enumerations.cpp index 16493140..4f1a0b49 100644 --- a/datamodel/libUserTypes/src/Enumerations.cpp +++ b/datamodel/libUserTypes/src/Enumerations.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/LuaInterface.cpp b/datamodel/libUserTypes/src/LuaInterface.cpp index 01d2666a..d669d157 100644 --- a/datamodel/libUserTypes/src/LuaInterface.cpp +++ b/datamodel/libUserTypes/src/LuaInterface.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/LuaScript.cpp b/datamodel/libUserTypes/src/LuaScript.cpp index 66f0b33f..2ce3861b 100644 --- a/datamodel/libUserTypes/src/LuaScript.cpp +++ b/datamodel/libUserTypes/src/LuaScript.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/LuaScriptModule.cpp b/datamodel/libUserTypes/src/LuaScriptModule.cpp index c53f27ff..141e0e71 100644 --- a/datamodel/libUserTypes/src/LuaScriptModule.cpp +++ b/datamodel/libUserTypes/src/LuaScriptModule.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/Material.cpp b/datamodel/libUserTypes/src/Material.cpp index 5fd2ad73..e6f7e487 100644 --- a/datamodel/libUserTypes/src/Material.cpp +++ b/datamodel/libUserTypes/src/Material.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/Mesh.cpp b/datamodel/libUserTypes/src/Mesh.cpp index eab2adf9..7d218637 100644 --- a/datamodel/libUserTypes/src/Mesh.cpp +++ b/datamodel/libUserTypes/src/Mesh.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/MeshNode.cpp b/datamodel/libUserTypes/src/MeshNode.cpp index 91c91ee3..8054944f 100644 --- a/datamodel/libUserTypes/src/MeshNode.cpp +++ b/datamodel/libUserTypes/src/MeshNode.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/Prefab.cpp b/datamodel/libUserTypes/src/Prefab.cpp index d44139d5..606e1817 100644 --- a/datamodel/libUserTypes/src/Prefab.cpp +++ b/datamodel/libUserTypes/src/Prefab.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/PrefabInstance.cpp b/datamodel/libUserTypes/src/PrefabInstance.cpp index 54c83ec0..ee261fed 100644 --- a/datamodel/libUserTypes/src/PrefabInstance.cpp +++ b/datamodel/libUserTypes/src/PrefabInstance.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/RenderPass.cpp b/datamodel/libUserTypes/src/RenderPass.cpp index c2e8866f..738cb8ad 100644 --- a/datamodel/libUserTypes/src/RenderPass.cpp +++ b/datamodel/libUserTypes/src/RenderPass.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/SyncTableWithEngineInterface.cpp b/datamodel/libUserTypes/src/SyncTableWithEngineInterface.cpp index 287b2ccd..2fde7f8c 100644 --- a/datamodel/libUserTypes/src/SyncTableWithEngineInterface.cpp +++ b/datamodel/libUserTypes/src/SyncTableWithEngineInterface.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/Texture.cpp b/datamodel/libUserTypes/src/Texture.cpp index 996c70ff..d873be7a 100644 --- a/datamodel/libUserTypes/src/Texture.cpp +++ b/datamodel/libUserTypes/src/Texture.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/Timer.cpp b/datamodel/libUserTypes/src/Timer.cpp index 105254b5..31047ee9 100644 --- a/datamodel/libUserTypes/src/Timer.cpp +++ b/datamodel/libUserTypes/src/Timer.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/UserObjectFactory.cpp b/datamodel/libUserTypes/src/UserObjectFactory.cpp index e17f5124..861ee77b 100644 --- a/datamodel/libUserTypes/src/UserObjectFactory.cpp +++ b/datamodel/libUserTypes/src/UserObjectFactory.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/src/Validation.h b/datamodel/libUserTypes/src/Validation.h index 5a1ed422..b57c3794 100644 --- a/datamodel/libUserTypes/src/Validation.h +++ b/datamodel/libUserTypes/src/Validation.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/AnimationChannel_test.cpp b/datamodel/libUserTypes/tests/AnimationChannel_test.cpp index 42f59bf7..ef52502a 100644 --- a/datamodel/libUserTypes/tests/AnimationChannel_test.cpp +++ b/datamodel/libUserTypes/tests/AnimationChannel_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/Animation_test.cpp b/datamodel/libUserTypes/tests/Animation_test.cpp index 80f5d475..645b12d1 100644 --- a/datamodel/libUserTypes/tests/Animation_test.cpp +++ b/datamodel/libUserTypes/tests/Animation_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/CMakeLists.txt b/datamodel/libUserTypes/tests/CMakeLists.txt index 0a01f287..465a2267 100644 --- a/datamodel/libUserTypes/tests/CMakeLists.txt +++ b/datamodel/libUserTypes/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/CubeMap_test.cpp b/datamodel/libUserTypes/tests/CubeMap_test.cpp index 5a03fd23..d5e8f5d6 100644 --- a/datamodel/libUserTypes/tests/CubeMap_test.cpp +++ b/datamodel/libUserTypes/tests/CubeMap_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/DefaultValues_test.cpp b/datamodel/libUserTypes/tests/DefaultValues_test.cpp index ae7ce340..12a72277 100644 --- a/datamodel/libUserTypes/tests/DefaultValues_test.cpp +++ b/datamodel/libUserTypes/tests/DefaultValues_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/LuaInterface_test.cpp b/datamodel/libUserTypes/tests/LuaInterface_test.cpp index bbb62d79..f4abc930 100644 --- a/datamodel/libUserTypes/tests/LuaInterface_test.cpp +++ b/datamodel/libUserTypes/tests/LuaInterface_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/LuaScriptModule_test.cpp b/datamodel/libUserTypes/tests/LuaScriptModule_test.cpp index 31e66f44..e8e33d1c 100644 --- a/datamodel/libUserTypes/tests/LuaScriptModule_test.cpp +++ b/datamodel/libUserTypes/tests/LuaScriptModule_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/LuaScript_test.cpp b/datamodel/libUserTypes/tests/LuaScript_test.cpp index 4d2da922..3cdd7454 100644 --- a/datamodel/libUserTypes/tests/LuaScript_test.cpp +++ b/datamodel/libUserTypes/tests/LuaScript_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/Material_test.cpp b/datamodel/libUserTypes/tests/Material_test.cpp index 0135b1e6..87d9ed10 100644 --- a/datamodel/libUserTypes/tests/Material_test.cpp +++ b/datamodel/libUserTypes/tests/Material_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/MeshNode_test.cpp b/datamodel/libUserTypes/tests/MeshNode_test.cpp index a76ac4cc..4143ccd8 100644 --- a/datamodel/libUserTypes/tests/MeshNode_test.cpp +++ b/datamodel/libUserTypes/tests/MeshNode_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/Texture_test.cpp b/datamodel/libUserTypes/tests/Texture_test.cpp index c4dc9922..6174adc1 100644 --- a/datamodel/libUserTypes/tests/Texture_test.cpp +++ b/datamodel/libUserTypes/tests/Texture_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/datamodel/libUserTypes/tests/Timer_test.cpp b/datamodel/libUserTypes/tests/Timer_test.cpp index 4bdefffc..5575adee 100644 --- a/datamodel/libUserTypes/tests/Timer_test.cpp +++ b/datamodel/libUserTypes/tests/Timer_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt index 4e88ed31..61557af0 100644 --- a/gui/CMakeLists.txt +++ b/gui/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/CMakeLists.txt b/gui/libCommonWidgets/CMakeLists.txt index a8fc7f8f..b2b7883e 100644 --- a/gui/libCommonWidgets/CMakeLists.txt +++ b/gui/libCommonWidgets/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -26,7 +26,9 @@ add_library(libCommonWidgets include/common_widgets/PropertyBrowserButton.h src/PropertyBrowserButton.cpp include/common_widgets/QtGuiFormatter.h include/common_widgets/RaCoClipboard.h src/RaCoClipboard.cpp + include/common_widgets/RunScriptDialog.h src/RunScriptDialog.cpp include/common_widgets/TimingsWidget.h + include/common_widgets/TracePlayerWidget.h src/TracePlayerWidget.cpp include/common_widgets/UndoView.h src/UndoView.cpp ) @@ -48,6 +50,7 @@ target_link_libraries(libCommonWidgets raco::Style PRIVATE raco::LogSystem + raco::Style ) add_library(raco::CommonWidgets ALIAS libCommonWidgets) diff --git a/gui/libCommonWidgets/include/common_widgets/DebugLayout.h b/gui/libCommonWidgets/include/common_widgets/DebugLayout.h index 06a5fac8..9fdb2fa3 100644 --- a/gui/libCommonWidgets/include/common_widgets/DebugLayout.h +++ b/gui/libCommonWidgets/include/common_widgets/DebugLayout.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/ErrorView.h b/gui/libCommonWidgets/include/common_widgets/ErrorView.h index 2c6b48dc..ab6604e6 100644 --- a/gui/libCommonWidgets/include/common_widgets/ErrorView.h +++ b/gui/libCommonWidgets/include/common_widgets/ErrorView.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/ExportDialog.h b/gui/libCommonWidgets/include/common_widgets/ExportDialog.h index 53ffc7a0..ffeb6086 100644 --- a/gui/libCommonWidgets/include/common_widgets/ExportDialog.h +++ b/gui/libCommonWidgets/include/common_widgets/ExportDialog.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/LinkStartSearchView.h b/gui/libCommonWidgets/include/common_widgets/LinkStartSearchView.h index d02a25cc..fa7e3a3d 100644 --- a/gui/libCommonWidgets/include/common_widgets/LinkStartSearchView.h +++ b/gui/libCommonWidgets/include/common_widgets/LinkStartSearchView.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -28,8 +28,10 @@ namespace raco::common_widgets { class LinkStartViewItem final : public QStandardItem { public: - explicit LinkStartViewItem(const QString& s, const core::ValueHandle& handle); + explicit LinkStartViewItem(const QString& s, const core::ValueHandle& handle, bool allowedStrong, bool allowedWeak); core::ValueHandle handle_; + bool allowedStrong_; + bool allowedWeak_; }; class LinkStartItemModel final : public QStandardItemModel { @@ -64,6 +66,10 @@ class LinkStartSearchView final : public QWidget { Q_SIGNAL void activated(const QModelIndex& index); Q_SIGNAL void selectionChanged(bool valid); const core::ValueHandle& handleFromIndex(const QModelIndex& index) const; + + bool allowedStrong(const QModelIndex& index) const; + bool allowedWeak(const QModelIndex& index) const; + bool hasValidSelection() const noexcept; QModelIndex selection() const noexcept; diff --git a/gui/libCommonWidgets/include/common_widgets/LogView.h b/gui/libCommonWidgets/include/common_widgets/LogView.h index cf68b587..d35b61e2 100644 --- a/gui/libCommonWidgets/include/common_widgets/LogView.h +++ b/gui/libCommonWidgets/include/common_widgets/LogView.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/MeshAssetImportDialog.h b/gui/libCommonWidgets/include/common_widgets/MeshAssetImportDialog.h index 0e8318b5..0f8fe5d1 100644 --- a/gui/libCommonWidgets/include/common_widgets/MeshAssetImportDialog.h +++ b/gui/libCommonWidgets/include/common_widgets/MeshAssetImportDialog.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/NoContentMarginsLayout.h b/gui/libCommonWidgets/include/common_widgets/NoContentMarginsLayout.h index f5a3461b..3463da47 100644 --- a/gui/libCommonWidgets/include/common_widgets/NoContentMarginsLayout.h +++ b/gui/libCommonWidgets/include/common_widgets/NoContentMarginsLayout.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/PopupDialog.h b/gui/libCommonWidgets/include/common_widgets/PopupDialog.h index cb679c5d..497e924f 100644 --- a/gui/libCommonWidgets/include/common_widgets/PopupDialog.h +++ b/gui/libCommonWidgets/include/common_widgets/PopupDialog.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/PreferencesView.h b/gui/libCommonWidgets/include/common_widgets/PreferencesView.h index 4be74d3f..fa1788bd 100644 --- a/gui/libCommonWidgets/include/common_widgets/PreferencesView.h +++ b/gui/libCommonWidgets/include/common_widgets/PreferencesView.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/PropertyBrowserButton.h b/gui/libCommonWidgets/include/common_widgets/PropertyBrowserButton.h index 0ba4b291..64e41693 100644 --- a/gui/libCommonWidgets/include/common_widgets/PropertyBrowserButton.h +++ b/gui/libCommonWidgets/include/common_widgets/PropertyBrowserButton.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/QtGuiFormatter.h b/gui/libCommonWidgets/include/common_widgets/QtGuiFormatter.h index 5cfc0c8e..90410e63 100644 --- a/gui/libCommonWidgets/include/common_widgets/QtGuiFormatter.h +++ b/gui/libCommonWidgets/include/common_widgets/QtGuiFormatter.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/RaCoClipboard.h b/gui/libCommonWidgets/include/common_widgets/RaCoClipboard.h index d3fb2918..3c5cce57 100644 --- a/gui/libCommonWidgets/include/common_widgets/RaCoClipboard.h +++ b/gui/libCommonWidgets/include/common_widgets/RaCoClipboard.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/RunScriptDialog.h b/gui/libCommonWidgets/include/common_widgets/RunScriptDialog.h new file mode 100644 index 00000000..75a8ae05 --- /dev/null +++ b/gui/libCommonWidgets/include/common_widgets/RunScriptDialog.h @@ -0,0 +1,46 @@ +/* + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of Ramses Composer + * (see https://github.com/bmwcarit/ramses-composer). + * + * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. + * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +#pragma once + +#include "application/RaCoApplication.h" +#include +#include +#include +#include +#include +#include +#include + +namespace raco::common_widgets { +class RunScriptDialog final : public QDialog { + Q_OBJECT +public: + static constexpr auto ENTRIES_SIZE = 3; + + RunScriptDialog(std::map& scriptEntries, std::map& commandLineParamEntries, QWidget* parent = nullptr); + +Q_SIGNALS: + void pythonScriptRunRequested(const QString& pythonFilePath, const QStringList& arguments); + +private: + Q_SLOT void updateButtonStates(); + Q_SLOT void runScript(); + void updateComboBoxItems(); + + QGridLayout* layout_; + QComboBox* scriptPathEdit_; + QComboBox* argumentsEdit_; + QLabel* warningLabel_; + QDialogButtonBox* buttonBox_; + std::map& scriptEntries_; + std::map& commandLineParamEntries_; +}; + +} // namespace raco::common_widgets diff --git a/gui/libCommonWidgets/include/common_widgets/TimingsWidget.h b/gui/libCommonWidgets/include/common_widgets/TimingsWidget.h index c77522c0..43b1fd4e 100644 --- a/gui/libCommonWidgets/include/common_widgets/TimingsWidget.h +++ b/gui/libCommonWidgets/include/common_widgets/TimingsWidget.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/TracePlayerWidget.h b/gui/libCommonWidgets/include/common_widgets/TracePlayerWidget.h new file mode 100644 index 00000000..55db01e9 --- /dev/null +++ b/gui/libCommonWidgets/include/common_widgets/TracePlayerWidget.h @@ -0,0 +1,109 @@ +/* + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of Ramses Composer + * (see https://github.com/bmwcarit/ramses-composer). + * + * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. + * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +#pragma once + +#include "components/FileChangeMonitorImpl.h" +#include "components/TracePlayer.h" + +#include +#include +#include + +#include + +class QDoubleSpinBox; +class QEvent; +class QFrame; +class QGridLayout; +class QLabel; +class QLineEdit; +class QPushButton; +class QSlider; +class QSpinBox; +class QString; +class QTextEdit; + +namespace raco::core { +enum class ErrorLevel; +} // namespace raco::core +namespace raco::components { +class TracePlayer; +using TraceFileChangeMonitor = GenericFileChangeMonitorImpl>>; +} // namespace raco::components + +namespace raco::common_widgets { +class TracePlayerWidget : public QWidget { + Q_OBJECT + +public: + ~TracePlayerWidget(); + TracePlayerWidget() = delete; + TracePlayerWidget(const TracePlayerWidget&) = delete; + TracePlayerWidget& operator=(const TracePlayerWidget&) = delete; + TracePlayerWidget(const TracePlayerWidget&&) = delete; + TracePlayerWidget& operator=(const TracePlayerWidget&&) = delete; + TracePlayerWidget(const QString& widgetName, raco::components::TracePlayer* tracePlayer); + +protected: + bool eventFilter(QObject* object, QEvent* event) override; + +private: + void configLayout(); + void configCtrls(); + void addWidgets(); + void connectCtrls(); + void enableCtrls(uint flags); + void updateCtrls(int frameIndex); + void loadClicked(); + void parseTraceFile(); + void editClicked(); + void speedChanged(); + void playClicked(); + void pauseClicked(); + void stopClicked(); + void stepBackwardClicked(); + void stepForwardClicked(); + void sliderMoved(int newSliderPos); + void jumpToChanged(); + void clearLog(); + void reportLog(const std::vector& tracePlayerReport, core::ErrorLevel highestCriticality, bool widgetMsg = false); + void logCleared(); + void stateChanged(raco::components::TracePlayer::PlayerState state); + void loopClicked(); + + raco::components::TracePlayer* tracePlayer_{nullptr}; + QString defaultDir_{}; + /// UI Controls + QGridLayout* layout_{nullptr}; + QLineEdit* fileNameLineEdt_{nullptr}; + QPushButton* browseBtn_{nullptr}; + QPushButton* reloadBtn_{nullptr}; + QPushButton* editBtn_{nullptr}; + QPushButton* loopBtn_{nullptr}; + QDoubleSpinBox* speedSpin_{nullptr}; + QPushButton* playBtn_{nullptr}; + QPushButton* pauseBtn_{nullptr}; + QPushButton* stepBackwardBtn_{nullptr}; + QPushButton* stopBtn_{nullptr}; + QPushButton* stepForwardBtn_{nullptr}; + QSpinBox* stepSpin_{nullptr}; + QSlider* timelineSlider_{nullptr}; + QSpinBox* jumpToSpin_{nullptr}; + QLabel* statusIndicator_{nullptr}; + QTextEdit* logTxtEdt_{nullptr}; + QPushButton* clearLogBtn_{nullptr}; + std::size_t widgetLogLen_{0}; + std::size_t totalLogLen_{0}; + components::TraceFileChangeMonitor loadedTraceFileChangeMonitor_; + components::TraceFileChangeMonitor::UniqueListener loadedTraceFileChangeListener_; + bool jumpToInFocus_{false}; +}; + +} // namespace raco::common_widgets \ No newline at end of file diff --git a/gui/libCommonWidgets/include/common_widgets/UndoView.h b/gui/libCommonWidgets/include/common_widgets/UndoView.h index 645a8347..ab6d6011 100644 --- a/gui/libCommonWidgets/include/common_widgets/UndoView.h +++ b/gui/libCommonWidgets/include/common_widgets/UndoView.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/log_model/LogViewModel.h b/gui/libCommonWidgets/include/common_widgets/log_model/LogViewModel.h index 9c93d9c0..1bf5fe75 100644 --- a/gui/libCommonWidgets/include/common_widgets/log_model/LogViewModel.h +++ b/gui/libCommonWidgets/include/common_widgets/log_model/LogViewModel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/log_model/LogViewSink.h b/gui/libCommonWidgets/include/common_widgets/log_model/LogViewSink.h index b7100e8d..d6d41d98 100644 --- a/gui/libCommonWidgets/include/common_widgets/log_model/LogViewSink.h +++ b/gui/libCommonWidgets/include/common_widgets/log_model/LogViewSink.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/include/common_widgets/log_model/LogViewSortFilterProxyModel.h b/gui/libCommonWidgets/include/common_widgets/log_model/LogViewSortFilterProxyModel.h index 3646e708..2edd59b6 100644 --- a/gui/libCommonWidgets/include/common_widgets/log_model/LogViewSortFilterProxyModel.h +++ b/gui/libCommonWidgets/include/common_widgets/log_model/LogViewSortFilterProxyModel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/ErrorView.cpp b/gui/libCommonWidgets/src/ErrorView.cpp index fcc1362b..5c65486b 100644 --- a/gui/libCommonWidgets/src/ErrorView.cpp +++ b/gui/libCommonWidgets/src/ErrorView.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/ExportDialog.cpp b/gui/libCommonWidgets/src/ExportDialog.cpp index 55f8c038..bff8ffa2 100644 --- a/gui/libCommonWidgets/src/ExportDialog.cpp +++ b/gui/libCommonWidgets/src/ExportDialog.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/LinkStartSearchView.cpp b/gui/libCommonWidgets/src/LinkStartSearchView.cpp index 90614ee0..feb2415b 100644 --- a/gui/libCommonWidgets/src/LinkStartSearchView.cpp +++ b/gui/libCommonWidgets/src/LinkStartSearchView.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -11,7 +11,7 @@ namespace raco::common_widgets { -LinkStartViewItem::LinkStartViewItem(const QString& s, const core::ValueHandle& handle) : QStandardItem{s}, handle_{handle} { +LinkStartViewItem::LinkStartViewItem(const QString& s, const core::ValueHandle& handle, bool allowedStrong, bool allowedWeak) : QStandardItem{s}, handle_{handle}, allowedStrong_(allowedStrong), allowedWeak_(allowedWeak) { setDragEnabled(true); setToolTip(QString::fromStdString(handle_.getDescriptor().getFullPropertyPath())); @@ -102,14 +102,22 @@ const core::ValueHandle& LinkStartSearchView::handleFromIndex(const QModelIndex& return (dynamic_cast(model_.itemFromIndex(index)))->handle_; } +bool LinkStartSearchView::allowedStrong(const QModelIndex& index) const { + return (dynamic_cast(model_.itemFromIndex(index)))->allowedStrong_; +} + +bool LinkStartSearchView::allowedWeak(const QModelIndex& index) const { + return (dynamic_cast(model_.itemFromIndex(index)))->allowedWeak_; +} + void LinkStartSearchView::rebuild() noexcept { model_.clear(); - for (const auto& start : core::Queries::allLinkStartProperties(*project_, end_)) { - QString title{start.first.getPropertyPath().c_str()}; - if (start.second) - title.append(" (loop)"); - auto* item{new LinkStartViewItem{title, start.first}}; - item->setEnabled(!start.second); + for (const auto& [handle, strong, weak] : core::Queries::allLinkStartProperties(*project_, end_)) { + QString title{handle.getPropertyPath().c_str()}; + if (weak && !strong) { + title.append(" (weak)"); + } + auto* item{new LinkStartViewItem{title, handle, strong, weak}}; model_.appendRow(item); } } diff --git a/gui/libCommonWidgets/src/LogView.cpp b/gui/libCommonWidgets/src/LogView.cpp index 13dd87cf..c55fe725 100644 --- a/gui/libCommonWidgets/src/LogView.cpp +++ b/gui/libCommonWidgets/src/LogView.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -84,6 +84,7 @@ LogView::LogView(LogViewModel* model, QWidget* parent) : model_(model) { filterCategoryBox->addItem(raco::log_system::RAMSES_ADAPTOR, raco::log_system::RAMSES_ADAPTOR); filterCategoryBox->addItem(raco::log_system::DESERIALIZATION, raco::log_system::DESERIALIZATION); filterCategoryBox->addItem(raco::log_system::PROJECT, raco::log_system::PROJECT); + filterCategoryBox->addItem(raco::log_system::PYTHON, raco::log_system::PYTHON); filterCategoryBox->addItem(raco::log_system::MESH_LOADER, raco::log_system::MESH_LOADER); filterCategoryBox->addItem(raco::log_system::RAMSES, raco::log_system::RAMSES); filterCategoryBox->addItem(raco::log_system::RAMSES_LOGIC, raco::log_system::RAMSES_LOGIC); diff --git a/gui/libCommonWidgets/src/MeshAssetImportDialog.cpp b/gui/libCommonWidgets/src/MeshAssetImportDialog.cpp index f9b6729c..f57924e6 100644 --- a/gui/libCommonWidgets/src/MeshAssetImportDialog.cpp +++ b/gui/libCommonWidgets/src/MeshAssetImportDialog.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/PopupDialog.cpp b/gui/libCommonWidgets/src/PopupDialog.cpp index 5925ad70..5dbcc690 100644 --- a/gui/libCommonWidgets/src/PopupDialog.cpp +++ b/gui/libCommonWidgets/src/PopupDialog.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/PreferencesView.cpp b/gui/libCommonWidgets/src/PreferencesView.cpp index 11af411e..284b7cba 100644 --- a/gui/libCommonWidgets/src/PreferencesView.cpp +++ b/gui/libCommonWidgets/src/PreferencesView.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/PropertyBrowserButton.cpp b/gui/libCommonWidgets/src/PropertyBrowserButton.cpp index 17066f1b..d2206dd5 100644 --- a/gui/libCommonWidgets/src/PropertyBrowserButton.cpp +++ b/gui/libCommonWidgets/src/PropertyBrowserButton.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/RaCoClipboard.cpp b/gui/libCommonWidgets/src/RaCoClipboard.cpp index 4c47a3af..1ff142c3 100644 --- a/gui/libCommonWidgets/src/RaCoClipboard.cpp +++ b/gui/libCommonWidgets/src/RaCoClipboard.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/RunScriptDialog.cpp b/gui/libCommonWidgets/src/RunScriptDialog.cpp new file mode 100644 index 00000000..e9608dbe --- /dev/null +++ b/gui/libCommonWidgets/src/RunScriptDialog.cpp @@ -0,0 +1,137 @@ +/* + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of Ramses Composer + * (see https://github.com/bmwcarit/ramses-composer). + * + * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. + * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +#include "common_widgets/RunScriptDialog.h" + +#include "core/PathManager.h" +#include "utils/u8path.h" + +#include +#include +#include +#include +#include + + +namespace raco::common_widgets { + +RunScriptDialog::RunScriptDialog(std::map& scriptEntries, std::map& commandLineParamEntries, QWidget* parent) + : QDialog{parent}, + scriptEntries_{scriptEntries}, + commandLineParamEntries_{commandLineParamEntries} { + layout_ = new QGridLayout(this); + + auto contentLayout = new QGridLayout(this); + contentLayout->setAlignment(Qt::AlignTop); + + scriptPathEdit_ = new QComboBox(this); + scriptPathEdit_->setEditable(true); + scriptPathEdit_->setMinimumWidth(400); + + auto scriptPathURIButton = new QPushButton("...", this); + scriptPathURIButton->setMaximumWidth(30); + contentLayout->addWidget(new QLabel{"Python Script Path", this}, 0, 0); + contentLayout->addWidget(scriptPathEdit_, 0, 1); + contentLayout->addWidget(scriptPathURIButton, 0, 2); + QObject::connect(scriptPathEdit_, &QComboBox::currentTextChanged, this, &RunScriptDialog::updateButtonStates); + QObject::connect(scriptPathURIButton, &QPushButton::clicked, [this]() { + auto pythonPath = scriptPathEdit_->currentText(); + if (pythonPath.isEmpty()) { + auto cachedScriptPath = raco::core::PathManager::getCachedPath(raco::core::PathManager::FolderTypeKeys::Script, pythonPath.toStdString()); + pythonPath = QString::fromStdString(cachedScriptPath.string()); + } + + auto pythonScriptPath = QFileDialog::getOpenFileName(this, "Open Python Script", pythonPath, "Python Scripts (*.py);; All files (*.*)"); + if (!pythonScriptPath.isEmpty()) { + scriptPathEdit_->setCurrentText(pythonScriptPath); + raco::core::PathManager::setCachedPath(raco::core::PathManager::FolderTypeKeys::Script, QFileInfo(pythonScriptPath).absoluteDir().absolutePath().toStdString()); + } + }); + + argumentsEdit_ = new QComboBox(this); + argumentsEdit_->setEditable(true); + contentLayout->addWidget(new QLabel{"Command Line Arguments", this}, 1, 0); + contentLayout->addWidget(argumentsEdit_, 1, 1); + + warningLabel_ = new QLabel(""); + contentLayout->addWidget(warningLabel_, 2, 1); + + buttonBox_ = new QDialogButtonBox{QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this}; + buttonBox_->button(QDialogButtonBox::Ok)->setText("Run Script"); + connect(buttonBox_, &QDialogButtonBox::accepted, this, &RunScriptDialog::runScript); + connect(buttonBox_, &QDialogButtonBox::rejected, this, &RunScriptDialog::reject); + + this->layout()->setSizeConstraint(QLayout::SetFixedSize); + layout_->addLayout(contentLayout, 0, 0); + layout_->addWidget(buttonBox_, 1, 0); + + setAttribute(Qt::WA_DeleteOnClose); + setWindowTitle("Run Python Script"); + updateComboBoxItems(); + updateButtonStates(); +} + +Q_SLOT void RunScriptDialog::updateButtonStates() { + warningLabel_->setText(""); + + auto path = scriptPathEdit_->currentText(); + auto fileInfo = QFileInfo(path); + if (scriptPathEdit_->currentText().isEmpty() || !fileInfo.exists() || !fileInfo.isReadable()) { + buttonBox_->button(QDialogButtonBox::Ok)->setEnabled(false); + return; + } + + buttonBox_->button(QDialogButtonBox::Ok)->setEnabled(true); +} + +void RunScriptDialog::runScript() { + auto scriptPath = scriptPathEdit_->currentText(); + auto commandLineArgumentString = argumentsEdit_->currentText(); + auto commandLineArguments = commandLineArgumentString.split(' ', Qt::SkipEmptyParts); + + scriptEntries_[scriptPath] = QDateTime::currentMSecsSinceEpoch(); + if (!commandLineArguments.isEmpty()) { + commandLineParamEntries_[commandLineArgumentString] = QDateTime::currentMSecsSinceEpoch(); + } + + Q_EMIT pythonScriptRunRequested(scriptPath, commandLineArguments); + updateComboBoxItems(); +} + +void RunScriptDialog::updateComboBoxItems() { + auto updateItems = [](QComboBox* comboBox, auto& map) { + comboBox->clear(); + + std::vector> mapSortedByValue(map.begin(), map.end()); + + std::sort(mapSortedByValue.begin(), mapSortedByValue.end(), [](const std::pair& l, const std::pair& r) { + return l.second > r.second; + }); + + if (map.size() > ENTRIES_SIZE) { + map.erase(mapSortedByValue.back().first); + mapSortedByValue.pop_back(); + } + + for (const auto& [string, date] : mapSortedByValue) { + comboBox->addItem(string); + } + }; + + auto resetCommandLineParams = argumentsEdit_->currentText().isEmpty(); + + updateItems(scriptPathEdit_, scriptEntries_); + updateItems(argumentsEdit_, commandLineParamEntries_); + + if (resetCommandLineParams) { + argumentsEdit_->setCurrentText(""); + } +} + +} // namespace raco::common_widgets diff --git a/gui/libCommonWidgets/src/TracePlayerWidget.cpp b/gui/libCommonWidgets/src/TracePlayerWidget.cpp new file mode 100644 index 00000000..744f64ac --- /dev/null +++ b/gui/libCommonWidgets/src/TracePlayerWidget.cpp @@ -0,0 +1,444 @@ +/* + * SPDX-License-Identifier: MPL-2.0 + * + * This file is part of Ramses Composer + * (see https://github.com/bmwcarit/ramses-composer). + * + * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. + * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +#include "common_widgets/TracePlayerWidget.h" + +#include "core/ErrorItem.h" +#include "core/PathManager.h" +#include "style/Icons.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +enum Ctrl { + None = 0x000, + All = 0xFFF, + + EditButton = 0x001, + SpeedSpin = 0x002, + StepSpin = 0x004, + PlayButton = 0x008, + StepBackwardButton = 0x010, + StepForwardButton = 0x020, + TimelineSlider = 0x100, + JumpToSpin = 0x200, + PauseButton = 0x040, + StopButton = 0x80, + ReloadButton = 0x400, + LoopButton = 0x800 +}; + +namespace { +constexpr double SPEED_MIN{0.1}; +constexpr double SPEED_MAX{10.0}; +constexpr double SPEED_DEFAULT{1.0}; +constexpr double SPEED_SINGLE_STEP{0.1}; +constexpr int STEP_DEFAULT{1}; +} // namespace + +namespace raco::common_widgets { + +TracePlayerWidget::TracePlayerWidget(const QString& widgetName, raco::components::TracePlayer* tracePlayer) + : tracePlayer_(tracePlayer), + defaultDir_(QString::fromStdString(raco::core::PathManager::getCachedPath(raco::core::PathManager::FolderTypeKeys::Project).string())) { + tracePlayer_->setCallbacks( + [this](raco::components::TracePlayer::PlayerState s) { stateChanged(s); }, + [this](int index) { updateCtrls(index); }, + [this](std::vector log, core::ErrorLevel c) { reportLog(log, c); }); + configCtrls(); + configLayout(); + connectCtrls(); + this->setObjectName(widgetName); + + if (const auto tracePlayerState{tracePlayer_->getState()}; tracePlayerState != components::TracePlayer::PlayerState::Init) { + if (const auto file{tracePlayer_->getFilePath()}; !file.empty()) { + fileNameLineEdt_->setText(file.c_str()); + } + stateChanged(tracePlayerState); + timelineSlider_->setRange(0, tracePlayer_->getTraceLen() - 1); + } +} + +TracePlayerWidget::~TracePlayerWidget() { + if (tracePlayer_->getState() != components::TracePlayer::PlayerState::Init) { + tracePlayer_->clearLog(); + tracePlayer_->stop(); + } +} + +void TracePlayerWidget::configCtrls() { + fileNameLineEdt_ = new QLineEdit(this); + fileNameLineEdt_->setPlaceholderText("trace file absolute path"); + + browseBtn_ = new QPushButton(this); + browseBtn_->setIcon(raco::style::Icons::instance().browse); + browseBtn_->setToolTip("Browse"); + + reloadBtn_ = new QPushButton(this); + reloadBtn_->setIcon(raco::style::Icons::instance().refresh); + reloadBtn_->setToolTip("Reload"); + + editBtn_ = new QPushButton(this); + editBtn_->setIcon(raco::style::Icons::instance().openInNew); + editBtn_->setToolTip("Edit"); + + loopBtn_ = new QPushButton(this); + loopBtn_->setIcon(raco::style::Icons::instance().loopingInactive); + loopBtn_->setToolTip("Loop playback"); + + statusIndicator_ = new QLabel(this); + QSizePolicy sp_retain{statusIndicator_->sizePolicy()}; + sp_retain.setRetainSizeWhenHidden(true); + statusIndicator_->setSizePolicy(sp_retain); + statusIndicator_->hide(); + + logTxtEdt_ = new QTextEdit(this); + logTxtEdt_->setReadOnly(true); + logTxtEdt_->setMinimumHeight(50); + + clearLogBtn_ = new QPushButton("Clear", logTxtEdt_); + + speedSpin_ = new QDoubleSpinBox(this); + speedSpin_->setPrefix("Speed x "); + speedSpin_->setDecimals(1); + speedSpin_->setRange(SPEED_MIN, SPEED_MAX); + speedSpin_->setSingleStep(SPEED_SINGLE_STEP); + speedSpin_->setValue(SPEED_DEFAULT); + speedSpin_->setToolTip(QString::number(SPEED_MIN) + " ... " + QString::number(SPEED_MAX) + + " (" + QString::number(SPEED_SINGLE_STEP) + ")"); + + playBtn_ = new QPushButton(this); + playBtn_->setIcon(raco::style::Icons::instance().playInactive); + playBtn_->setToolTip("Play"); + + pauseBtn_ = new QPushButton(this); + pauseBtn_->setIcon(raco::style::Icons::instance().pauseInactive); + pauseBtn_->setToolTip("Pause"); + + stopBtn_ = new QPushButton(this); + stopBtn_->setIcon(raco::style::Icons::instance().stopInactive); + stopBtn_->setToolTip("Stop"); + + stepForwardBtn_ = new QPushButton(this); + stepForwardBtn_->setIcon(raco::style::Icons::instance().skipNext); + stepForwardBtn_->setToolTip("Step Forward"); + + stepBackwardBtn_ = new QPushButton(this); + stepBackwardBtn_->setIcon(raco::style::Icons::instance().skipPrevious); + stepBackwardBtn_->setToolTip("Step Backward"); + + stepSpin_ = new QSpinBox(this); + stepSpin_->setPrefix("Step size: "); + stepSpin_->setValue(STEP_DEFAULT); + + timelineSlider_ = new QSlider(Qt::Orientation::Horizontal, this); + timelineSlider_->setTickPosition(QSlider::TicksBelow); + + jumpToSpin_ = new QSpinBox(this); + jumpToSpin_->setPrefix("Jump to: "); + jumpToSpin_->installEventFilter(this); + + enableCtrls(Ctrl::None); +} + +void TracePlayerWidget::configLayout() { + layout_ = new QGridLayout(this); + /// row#1 + layout_->addWidget(fileNameLineEdt_, 0, 0, 1, 4); + QHBoxLayout* topRightCtrls = new QHBoxLayout(); + topRightCtrls->addWidget(browseBtn_); + topRightCtrls->addWidget(editBtn_); + topRightCtrls->addWidget(reloadBtn_); + topRightCtrls->addWidget(statusIndicator_); + layout_->addLayout(topRightCtrls, 0, 4); + /// row#2 + layout_->addWidget(playBtn_, 1, 0); + layout_->addWidget(pauseBtn_, 1, 1); + layout_->addWidget(stopBtn_, 1, 2); + layout_->addWidget(stepBackwardBtn_, 1, 3); + layout_->addWidget(stepForwardBtn_, 1, 4); + /// row#3 + layout_->addWidget(loopBtn_, 2, 0); + layout_->addWidget(jumpToSpin_, 2, 1); + layout_->addWidget(speedSpin_, 2, 2); + layout_->addWidget(stepSpin_, 2, 3, 1, 2); + /// row#4 + layout_->addWidget(timelineSlider_, 3, 0, 1, 5); + /// row#5 + layout_->addWidget(logTxtEdt_, 4, 0, 1, 5); + /// row#6 + layout_->addWidget(clearLogBtn_, 5, 4); +} + +void TracePlayerWidget::connectCtrls() { + QObject::connect(fileNameLineEdt_, &QLineEdit::returnPressed, this, &TracePlayerWidget::parseTraceFile); + QObject::connect(browseBtn_, &QPushButton::clicked, this, &TracePlayerWidget::loadClicked); + QObject::connect(editBtn_, &QPushButton::clicked, this, &TracePlayerWidget::editClicked); + QObject::connect(speedSpin_, QOverload::of(&QDoubleSpinBox::valueChanged), this, &TracePlayerWidget::speedChanged); + QObject::connect(playBtn_, &QPushButton::clicked, this, &TracePlayerWidget::playClicked); + QObject::connect(pauseBtn_, &QPushButton::clicked, this, &TracePlayerWidget::pauseClicked); + QObject::connect(stopBtn_, &QPushButton::clicked, this, &TracePlayerWidget::stopClicked); + QObject::connect(stepBackwardBtn_, &QPushButton::clicked, this, &TracePlayerWidget::stepBackwardClicked); + QObject::connect(stepForwardBtn_, &QPushButton::clicked, this, &TracePlayerWidget::stepForwardClicked); + QObject::connect(timelineSlider_, &QSlider::sliderMoved, this, &TracePlayerWidget::sliderMoved); + QObject::connect(jumpToSpin_, &QSpinBox::editingFinished, this, &TracePlayerWidget::jumpToChanged); + QObject::connect(clearLogBtn_, &QPushButton::clicked, this, &TracePlayerWidget::clearLog); + QObject::connect(reloadBtn_, &QPushButton::clicked, this, &TracePlayerWidget::parseTraceFile); + QObject::connect(loopBtn_, &QPushButton::clicked, this, &TracePlayerWidget::loopClicked); +} + +void TracePlayerWidget::enableCtrls(uint flags) { + editBtn_->setEnabled(flags & Ctrl::EditButton); + speedSpin_->setEnabled(flags & Ctrl::SpeedSpin); + stepSpin_->setEnabled(flags & Ctrl::StepSpin); + playBtn_->setEnabled(flags & Ctrl::PlayButton); + pauseBtn_->setEnabled(flags & Ctrl::PauseButton); + stopBtn_->setEnabled(flags & Ctrl::StopButton); + stepBackwardBtn_->setEnabled(flags & Ctrl::StepBackwardButton); + stepForwardBtn_->setEnabled(flags & Ctrl::StepForwardButton); + timelineSlider_->setEnabled(flags & Ctrl::TimelineSlider); + jumpToSpin_->setEnabled(flags & Ctrl::JumpToSpin); + reloadBtn_->setEnabled(flags & Ctrl::ReloadButton); + loopBtn_->setEnabled(flags & Ctrl::LoopButton); +} + +void TracePlayerWidget::loadClicked() { + const QString qFileName{QFileDialog::getOpenFileName(this, "Load trace file", defaultDir_, "Ramses Composer Trace (*.rctrace);;Any files (*)")}; + + if (!qFileName.isValidUtf16()) { + reportLog({"Invalid trace file name! (fileName: " + qFileName.toStdString() + " )"}, core::ErrorLevel::ERROR, true); + } else if (qFileName.size() > 0) { + fileNameLineEdt_->setText(qFileName); + parseTraceFile(); + defaultDir_ = QFileInfo(qFileName).absoluteDir().absolutePath(); + } else { + /* do nothing, user canceled trace loading */ + } + + browseBtn_->setBackgroundRole(QPalette::Highlight); +} + +void TracePlayerWidget::parseTraceFile() { + if (const auto filename{fileNameLineEdt_->text().toStdString()}; tracePlayer_->loadTrace(filename)) { + const auto traceLen{tracePlayer_->getTraceLen()}; + const auto lastFrameIndex{traceLen - 1}; + stepSpin_->setRange(1, lastFrameIndex); + timelineSlider_->setRange(0, lastFrameIndex); + jumpToSpin_->setRange(0, lastFrameIndex); + timelineSlider_->setToolTip(QString::number(traceLen) + " frames"); + jumpToSpin_->setToolTip(QString::number(0) + " ... " + QString::number(lastFrameIndex)); + reloadBtn_->setIcon(raco::style::Icons::instance().refresh); + loadedTraceFileChangeListener_ = loadedTraceFileChangeMonitor_.registerFileChangedHandler( + filename, + [this]() { + reportLog({"Loaded trace file has been modified! Press Reload to reparse file."}, core::ErrorLevel::WARNING); + reloadBtn_->setIcon(raco::style::Icons::instance().refreshNeeded); }); + } else { + /* do nothing */ + } +} + +void TracePlayerWidget::editClicked() { + if (const auto qFilename{fileNameLineEdt_->text()}; !QDesktopServices::openUrl(QUrl::fromLocalFile(qFilename))) { + reportLog({"Unable to open trace file! (fileName: " + qFilename.toStdString() + " )"}, core::ErrorLevel::ERROR); + } + editBtn_->setBackgroundRole(QPalette::Highlight); +} + +void TracePlayerWidget::speedChanged() { + if (tracePlayer_) { + tracePlayer_->setSpeed(speedSpin_->value()); + speedSpin_->setBackgroundRole(QPalette::Highlight); + } +} + +void TracePlayerWidget::playClicked() { + if (tracePlayer_) { + tracePlayer_->play(); + playBtn_->setBackgroundRole(QPalette::Highlight); + } +} + +void TracePlayerWidget::pauseClicked() { + if (tracePlayer_) { + tracePlayer_->pause(); + pauseBtn_->setBackgroundRole(QPalette::Highlight); + } +} + +void TracePlayerWidget::stopClicked() { + if (tracePlayer_) { + tracePlayer_->stop(); + stopBtn_->setBackgroundRole(QPalette::Highlight); + } +} + +void TracePlayerWidget::stepBackwardClicked() { + if (tracePlayer_) { + tracePlayer_->step(-stepSpin_->value()); + stepBackwardBtn_->setBackgroundRole(QPalette::Highlight); + } +} + +void TracePlayerWidget::stepForwardClicked() { + if (tracePlayer_) { + tracePlayer_->step(stepSpin_->value()); + stepForwardBtn_->setBackgroundRole(QPalette::Highlight); + } +} + +void TracePlayerWidget::sliderMoved(int newSliderPos) { + if (tracePlayer_) { + tracePlayer_->jumpTo(newSliderPos); + timelineSlider_->setBackgroundRole(QPalette::Highlight); + } +} + +void TracePlayerWidget::jumpToChanged() { + if (tracePlayer_) { + if (jumpToInFocus_) { + tracePlayer_->jumpTo(jumpToSpin_->value()); + jumpToSpin_->setBackgroundRole(QPalette::Highlight); + } + } +} + +void TracePlayerWidget::updateCtrls(int frameIndex) { + if (timelineSlider_->value() != frameIndex) { + timelineSlider_->setValue(frameIndex); + } + if (jumpToSpin_->value() != frameIndex && !jumpToInFocus_) { + jumpToSpin_->setValue(frameIndex); + } +} + +void TracePlayerWidget::reportLog(const std::vector& tracePlayerReport, core::ErrorLevel highestCriticality, bool widgetMsg) { + if (widgetMsg) { + ++widgetLogLen_; + totalLogLen_ += widgetLogLen_; + } else { + totalLogLen_ = tracePlayerReport.size() + widgetLogLen_; + logTxtEdt_->clear(); + } + if (totalLogLen_ == 0) { + logCleared(); + return; + } + + statusIndicator_->setToolTip(QString::number(totalLogLen_) + " active messages"); + + for (auto itr{tracePlayerReport.crbegin()}; itr != tracePlayerReport.rend(); ++itr) { + logTxtEdt_->insertPlainText(QString::fromStdString(*itr + '\n')); + } + + switch (highestCriticality) { + case core::ErrorLevel::NONE: + logCleared(); + break; + case core::ErrorLevel::INFORMATION: + statusIndicator_->setPixmap(raco::style::Icons::instance().info.pixmap(reloadBtn_->iconSize())); + break; + case core::ErrorLevel::WARNING: + statusIndicator_->setPixmap(raco::style::Icons::instance().warning.pixmap(reloadBtn_->iconSize())); + statusIndicator_->show(); + break; + case core::ErrorLevel::ERROR: + statusIndicator_->setPixmap(raco::style::Icons::instance().error.pixmap(reloadBtn_->iconSize())); + statusIndicator_->show(); + break; + default: + statusIndicator_->hide(); + break; + } +} + +void TracePlayerWidget::logCleared() { + logTxtEdt_->clear(); + totalLogLen_ = 0; + widgetLogLen_ = 0; + statusIndicator_->setToolTip(""); + statusIndicator_->hide(); +} + +void TracePlayerWidget::clearLog() { + if (tracePlayer_) { + tracePlayer_->clearLog(); + if (tracePlayer_->getState() == components::TracePlayer::PlayerState::Faulty) { + tracePlayer_->stop(); + } + } +} + +void TracePlayerWidget::stateChanged(raco::components::TracePlayer::PlayerState state) { + enableCtrls(Ctrl::All); + playBtn_->setIcon(raco::style::Icons::instance().playInactive); + pauseBtn_->setIcon(raco::style::Icons::instance().pauseInactive); + stopBtn_->setIcon(raco::style::Icons::instance().stopInactive); + switch (state) { + case raco::components::TracePlayer::PlayerState::Init: + break; + case raco::components::TracePlayer::PlayerState::Faulty: + enableCtrls(Ctrl::EditButton); + break; + case raco::components::TracePlayer::PlayerState::Playing: + playBtn_->setIcon(raco::style::Icons::instance().playActive); + break; + case raco::components::TracePlayer::PlayerState::Paused: + pauseBtn_->setIcon(raco::style::Icons::instance().pauseActive); + break; + case raco::components::TracePlayer::PlayerState::Stopped: + stopBtn_->setIcon(raco::style::Icons::instance().stopActive); + updateCtrls(0); + break; + default: + reportLog({"Undefined playback state!"}, core::ErrorLevel::ERROR); + break; + } +} + +void TracePlayerWidget::loopClicked() { + if (tracePlayer_) { + tracePlayer_->toggleLooping(); + if (tracePlayer_->getLoopingStatus()) { + loopBtn_->setIcon(raco::style::Icons::instance().loopingActive); + } else { + loopBtn_->setIcon(raco::style::Icons::instance().loopingInactive); + } + } +} + +bool TracePlayerWidget::eventFilter(QObject* obj, QEvent* event) { + if (obj == jumpToSpin_) { + if (event->type() == event->FocusIn) { + jumpToSpin_->clear(); + jumpToInFocus_ = true; + } else if (event->type() == event->FocusOut) { + jumpToSpin_->setValue(jumpToSpin_->value()); + jumpToInFocus_ = false; + } + return false; + } + // standard event processing + return QObject::eventFilter(obj, event); +} + +} // namespace raco::common_widgets \ No newline at end of file diff --git a/gui/libCommonWidgets/src/UndoView.cpp b/gui/libCommonWidgets/src/UndoView.cpp index a5bc89fa..bb9e2bda 100644 --- a/gui/libCommonWidgets/src/UndoView.cpp +++ b/gui/libCommonWidgets/src/UndoView.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/log_model/LogViewModel.cpp b/gui/libCommonWidgets/src/log_model/LogViewModel.cpp index 9de63145..59ec5aa3 100644 --- a/gui/libCommonWidgets/src/log_model/LogViewModel.cpp +++ b/gui/libCommonWidgets/src/log_model/LogViewModel.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/log_model/LogViewSink.cpp b/gui/libCommonWidgets/src/log_model/LogViewSink.cpp index 67cb519d..470e3b6c 100644 --- a/gui/libCommonWidgets/src/log_model/LogViewSink.cpp +++ b/gui/libCommonWidgets/src/log_model/LogViewSink.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/src/log_model/LogViewSortFilterProxyModel.cpp b/gui/libCommonWidgets/src/log_model/LogViewSortFilterProxyModel.cpp index 52ce8c45..319c4b19 100644 --- a/gui/libCommonWidgets/src/log_model/LogViewSortFilterProxyModel.cpp +++ b/gui/libCommonWidgets/src/log_model/LogViewSortFilterProxyModel.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/tests/CMakeLists.txt b/gui/libCommonWidgets/tests/CMakeLists.txt index ad0bd6d0..9e1f6c7e 100644 --- a/gui/libCommonWidgets/tests/CMakeLists.txt +++ b/gui/libCommonWidgets/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/tests/ErrorView_test.cpp b/gui/libCommonWidgets/tests/ErrorView_test.cpp index 3c377cc4..700054af 100644 --- a/gui/libCommonWidgets/tests/ErrorView_test.cpp +++ b/gui/libCommonWidgets/tests/ErrorView_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libCommonWidgets/tests/ErrorView_test.h b/gui/libCommonWidgets/tests/ErrorView_test.h index 6c08f7c3..8f86e12c 100644 --- a/gui/libCommonWidgets/tests/ErrorView_test.h +++ b/gui/libCommonWidgets/tests/ErrorView_test.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/CMakeLists.txt b/gui/libObjectTree/CMakeLists.txt index b79fb673..1266a6aa 100644 --- a/gui/libObjectTree/CMakeLists.txt +++ b/gui/libObjectTree/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/include/object_tree_view/ObjectTreeDock.h b/gui/libObjectTree/include/object_tree_view/ObjectTreeDock.h index 41434398..a9a8ae24 100644 --- a/gui/libObjectTree/include/object_tree_view/ObjectTreeDock.h +++ b/gui/libObjectTree/include/object_tree_view/ObjectTreeDock.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/include/object_tree_view/ObjectTreeDockManager.h b/gui/libObjectTree/include/object_tree_view/ObjectTreeDockManager.h index 8b7edf54..1a464003 100644 --- a/gui/libObjectTree/include/object_tree_view/ObjectTreeDockManager.h +++ b/gui/libObjectTree/include/object_tree_view/ObjectTreeDockManager.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/include/object_tree_view/ObjectTreeView.h b/gui/libObjectTree/include/object_tree_view/ObjectTreeView.h index b500d772..437650b2 100644 --- a/gui/libObjectTree/include/object_tree_view/ObjectTreeView.h +++ b/gui/libObjectTree/include/object_tree_view/ObjectTreeView.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeNode.h b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeNode.h index d5c6549c..1d9acc22 100644 --- a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeNode.h +++ b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeNode.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewDefaultModel.h b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewDefaultModel.h index 9d398cd7..25f40362 100644 --- a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewDefaultModel.h +++ b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewDefaultModel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewExternalProjectModel.h b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewExternalProjectModel.h index 4715d481..d92583a4 100644 --- a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewExternalProjectModel.h +++ b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewExternalProjectModel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewPrefabModel.h b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewPrefabModel.h index e7702e6b..95ea3334 100644 --- a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewPrefabModel.h +++ b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewPrefabModel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewResourceModel.h b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewResourceModel.h index 8b897d91..9e7a0506 100644 --- a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewResourceModel.h +++ b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewResourceModel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewTopLevelSortProxyModel.h b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewTopLevelSortProxyModel.h index 16b2740b..8a2577b0 100644 --- a/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewTopLevelSortProxyModel.h +++ b/gui/libObjectTree/include/object_tree_view_model/ObjectTreeViewTopLevelSortProxyModel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/src/object_tree_view/ObjectTreeDock.cpp b/gui/libObjectTree/src/object_tree_view/ObjectTreeDock.cpp index 0d554f41..bd5e6e31 100644 --- a/gui/libObjectTree/src/object_tree_view/ObjectTreeDock.cpp +++ b/gui/libObjectTree/src/object_tree_view/ObjectTreeDock.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/src/object_tree_view/ObjectTreeDockManager.cpp b/gui/libObjectTree/src/object_tree_view/ObjectTreeDockManager.cpp index f3d6d312..b821caa7 100644 --- a/gui/libObjectTree/src/object_tree_view/ObjectTreeDockManager.cpp +++ b/gui/libObjectTree/src/object_tree_view/ObjectTreeDockManager.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/src/object_tree_view/ObjectTreeView.cpp b/gui/libObjectTree/src/object_tree_view/ObjectTreeView.cpp index 893a5340..4457b3ed 100644 --- a/gui/libObjectTree/src/object_tree_view/ObjectTreeView.cpp +++ b/gui/libObjectTree/src/object_tree_view/ObjectTreeView.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -271,7 +271,7 @@ QMenu* ObjectTreeView::createCustomContextMenu(const QPoint &p) { auto actionImport = treeViewMenu->addAction("Import glTF Assets...", [this, insertionTargetIndex]() { auto sceneFolder = raco::core::PathManager::getCachedPath(raco::core::PathManager::FolderTypeKeys::Mesh, treeModel_->project()->currentFolder()); - auto file = QFileDialog::getOpenFileName(this, "Load Asset File", QString::fromStdString(sceneFolder.string()), "glTF files (*.gltf *.glb)"); + auto file = QFileDialog::getOpenFileName(this, "Load Asset File", QString::fromStdString(sceneFolder.string()), "glTF files (*.gltf *.glb);; All files (*.*)"); if (!file.isEmpty()) { treeModel_->importMeshScenegraph(file, insertionTargetIndex); } @@ -356,7 +356,7 @@ QMenu* ObjectTreeView::createCustomContextMenu(const QPoint &p) { if (externalProjectModel) { treeViewMenu->addSeparator(); treeViewMenu->addAction("Add Project...", [this, externalProjectModel]() { - auto projectFile = QFileDialog::getOpenFileName(this, tr("Import Project"), raco::components::RaCoPreferences::instance().userProjectsDirectory, tr("Ramses Composer Assembly (*.rca)")); + auto projectFile = QFileDialog::getOpenFileName(this, tr("Import Project"), raco::components::RaCoPreferences::instance().userProjectsDirectory, tr("Ramses Composer Assembly (*.rca);; All files (*.*)")); if (projectFile.isEmpty()) { return; } diff --git a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeNode.cpp b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeNode.cpp index e881b3f2..6139b78b 100644 --- a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeNode.cpp +++ b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeNode.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewDefaultModel.cpp b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewDefaultModel.cpp index b08f2af4..80f5b060 100644 --- a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewDefaultModel.cpp +++ b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewDefaultModel.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewExternalProjectModel.cpp b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewExternalProjectModel.cpp index 9c52e3e7..96d412c3 100644 --- a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewExternalProjectModel.cpp +++ b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewExternalProjectModel.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewPrefabModel.cpp b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewPrefabModel.cpp index 31535207..c7ceafcc 100644 --- a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewPrefabModel.cpp +++ b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewPrefabModel.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewResourceModel.cpp b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewResourceModel.cpp index 962c320b..a93494da 100644 --- a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewResourceModel.cpp +++ b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewResourceModel.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewTopLevelSortProxyModel.cpp b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewTopLevelSortProxyModel.cpp index 64d16007..bf0fa524 100644 --- a/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewTopLevelSortProxyModel.cpp +++ b/gui/libObjectTree/src/object_tree_view_model/ObjectTreeViewTopLevelSortProxyModel.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/CMakeLists.txt b/gui/libObjectTree/tests/CMakeLists.txt index c6477813..3b6963ec 100644 --- a/gui/libObjectTree/tests/CMakeLists.txt +++ b/gui/libObjectTree/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/ObjectTreeDockManager_test.cpp b/gui/libObjectTree/tests/ObjectTreeDockManager_test.cpp index 7f4265d8..412d973d 100644 --- a/gui/libObjectTree/tests/ObjectTreeDockManager_test.cpp +++ b/gui/libObjectTree/tests/ObjectTreeDockManager_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/ObjectTreeDockManager_test.h b/gui/libObjectTree/tests/ObjectTreeDockManager_test.h index fdc60d79..d9a3dbe7 100644 --- a/gui/libObjectTree/tests/ObjectTreeDockManager_test.h +++ b/gui/libObjectTree/tests/ObjectTreeDockManager_test.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/ObjectTreeNode_test.cpp b/gui/libObjectTree/tests/ObjectTreeNode_test.cpp index f056553f..9bf31821 100644 --- a/gui/libObjectTree/tests/ObjectTreeNode_test.cpp +++ b/gui/libObjectTree/tests/ObjectTreeNode_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/ObjectTreeViewDefaultModel_test.cpp b/gui/libObjectTree/tests/ObjectTreeViewDefaultModel_test.cpp index e998549b..df0e1dfb 100644 --- a/gui/libObjectTree/tests/ObjectTreeViewDefaultModel_test.cpp +++ b/gui/libObjectTree/tests/ObjectTreeViewDefaultModel_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/ObjectTreeViewDefaultModel_test.h b/gui/libObjectTree/tests/ObjectTreeViewDefaultModel_test.h index 30010c9e..8566321b 100644 --- a/gui/libObjectTree/tests/ObjectTreeViewDefaultModel_test.h +++ b/gui/libObjectTree/tests/ObjectTreeViewDefaultModel_test.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/ObjectTreeViewExternalProjectModel_test.cpp b/gui/libObjectTree/tests/ObjectTreeViewExternalProjectModel_test.cpp index cc5e4edc..80ca0fa8 100644 --- a/gui/libObjectTree/tests/ObjectTreeViewExternalProjectModel_test.cpp +++ b/gui/libObjectTree/tests/ObjectTreeViewExternalProjectModel_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/ObjectTreeViewMultipleModels_test.cpp b/gui/libObjectTree/tests/ObjectTreeViewMultipleModels_test.cpp index 8cad85c9..6f60d116 100644 --- a/gui/libObjectTree/tests/ObjectTreeViewMultipleModels_test.cpp +++ b/gui/libObjectTree/tests/ObjectTreeViewMultipleModels_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/ObjectTreeViewMultipleModels_test.h b/gui/libObjectTree/tests/ObjectTreeViewMultipleModels_test.h index 1e5cebf6..fd53bac5 100644 --- a/gui/libObjectTree/tests/ObjectTreeViewMultipleModels_test.h +++ b/gui/libObjectTree/tests/ObjectTreeViewMultipleModels_test.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/ObjectTreeViewPrefabModel_test.cpp b/gui/libObjectTree/tests/ObjectTreeViewPrefabModel_test.cpp index 1423a295..f4d1087a 100644 --- a/gui/libObjectTree/tests/ObjectTreeViewPrefabModel_test.cpp +++ b/gui/libObjectTree/tests/ObjectTreeViewPrefabModel_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libObjectTree/tests/ObjectTreeViewResourceModel_test.cpp b/gui/libObjectTree/tests/ObjectTreeViewResourceModel_test.cpp index 258004aa..307084ec 100644 --- a/gui/libObjectTree/tests/ObjectTreeViewResourceModel_test.cpp +++ b/gui/libObjectTree/tests/ObjectTreeViewResourceModel_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/CMakeLists.txt b/gui/libPropertyBrowser/CMakeLists.txt index 9d890ffa..7624cc97 100644 --- a/gui/libPropertyBrowser/CMakeLists.txt +++ b/gui/libPropertyBrowser/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/PropertyBrowserItem.h b/gui/libPropertyBrowser/include/property_browser/PropertyBrowserItem.h index 9a3a5177..09859b51 100644 --- a/gui/libPropertyBrowser/include/property_browser/PropertyBrowserItem.h +++ b/gui/libPropertyBrowser/include/property_browser/PropertyBrowserItem.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -46,7 +46,7 @@ class PropertyBrowserItem final : public QObject { size_t size() noexcept; raco::core::Queries::LinkState linkState() const noexcept; std::string linkText(bool fullLinkPath = false) const noexcept; - void setLink(const core::ValueHandle& start) noexcept; + void setLink(const core::ValueHandle& start, bool isWeak) noexcept; void removeLink() noexcept; bool editable() noexcept; bool expandable() const noexcept; diff --git a/gui/libPropertyBrowser/include/property_browser/PropertyBrowserLayouts.h b/gui/libPropertyBrowser/include/property_browser/PropertyBrowserLayouts.h index 1276fe54..a0f4e4c3 100644 --- a/gui/libPropertyBrowser/include/property_browser/PropertyBrowserLayouts.h +++ b/gui/libPropertyBrowser/include/property_browser/PropertyBrowserLayouts.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/PropertyBrowserModel.h b/gui/libPropertyBrowser/include/property_browser/PropertyBrowserModel.h index e6226b2d..5d72c164 100644 --- a/gui/libPropertyBrowser/include/property_browser/PropertyBrowserModel.h +++ b/gui/libPropertyBrowser/include/property_browser/PropertyBrowserModel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/PropertyBrowserRef.h b/gui/libPropertyBrowser/include/property_browser/PropertyBrowserRef.h index 0462a074..5520e99e 100644 --- a/gui/libPropertyBrowser/include/property_browser/PropertyBrowserRef.h +++ b/gui/libPropertyBrowser/include/property_browser/PropertyBrowserRef.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/PropertyBrowserWidget.h b/gui/libPropertyBrowser/include/property_browser/PropertyBrowserWidget.h index 758fa929..4e95f00d 100644 --- a/gui/libPropertyBrowser/include/property_browser/PropertyBrowserWidget.h +++ b/gui/libPropertyBrowser/include/property_browser/PropertyBrowserWidget.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/PropertySubtreeChildrenContainer.h b/gui/libPropertyBrowser/include/property_browser/PropertySubtreeChildrenContainer.h index c91d6675..9e48496e 100644 --- a/gui/libPropertyBrowser/include/property_browser/PropertySubtreeChildrenContainer.h +++ b/gui/libPropertyBrowser/include/property_browser/PropertySubtreeChildrenContainer.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/PropertySubtreeView.h b/gui/libPropertyBrowser/include/property_browser/PropertySubtreeView.h index 73a7d8bf..7398c4de 100644 --- a/gui/libPropertyBrowser/include/property_browser/PropertySubtreeView.h +++ b/gui/libPropertyBrowser/include/property_browser/PropertySubtreeView.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/WidgetFactory.h b/gui/libPropertyBrowser/include/property_browser/WidgetFactory.h index d496ca5c..0c2e61e0 100644 --- a/gui/libPropertyBrowser/include/property_browser/WidgetFactory.h +++ b/gui/libPropertyBrowser/include/property_browser/WidgetFactory.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/controls/ExpandButton.h b/gui/libPropertyBrowser/include/property_browser/controls/ExpandButton.h index 394914f1..d9d0c6f4 100644 --- a/gui/libPropertyBrowser/include/property_browser/controls/ExpandButton.h +++ b/gui/libPropertyBrowser/include/property_browser/controls/ExpandButton.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/controls/MouseWheelGuard.h b/gui/libPropertyBrowser/include/property_browser/controls/MouseWheelGuard.h index b719d538..463bd289 100644 --- a/gui/libPropertyBrowser/include/property_browser/controls/MouseWheelGuard.h +++ b/gui/libPropertyBrowser/include/property_browser/controls/MouseWheelGuard.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/controls/ScalarSlider.h b/gui/libPropertyBrowser/include/property_browser/controls/ScalarSlider.h index b6ba48e0..f53be2b8 100644 --- a/gui/libPropertyBrowser/include/property_browser/controls/ScalarSlider.h +++ b/gui/libPropertyBrowser/include/property_browser/controls/ScalarSlider.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/controls/SpinBox.h b/gui/libPropertyBrowser/include/property_browser/controls/SpinBox.h index cd8e8319..3aaf6398 100644 --- a/gui/libPropertyBrowser/include/property_browser/controls/SpinBox.h +++ b/gui/libPropertyBrowser/include/property_browser/controls/SpinBox.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/BoolEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/BoolEditor.h index c5d7cbb5..d6c8bdf1 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/BoolEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/BoolEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/DoubleEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/DoubleEditor.h index 90dfada8..f91e5080 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/DoubleEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/DoubleEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/EnumerationEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/EnumerationEditor.h index 5e6577f5..83e6be1b 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/EnumerationEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/EnumerationEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/Int64Editor.h b/gui/libPropertyBrowser/include/property_browser/editors/Int64Editor.h index a0ce5859..f347d774 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/Int64Editor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/Int64Editor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/IntEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/IntEditor.h index 5326b1ba..891d3dc1 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/IntEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/IntEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/LinkEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/LinkEditor.h index 63bcfd74..4e4d27a6 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/LinkEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/LinkEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/PropertyEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/PropertyEditor.h index 1fe266eb..a8cf45a6 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/PropertyEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/PropertyEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/RefEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/RefEditor.h index 48008222..7a2a1ea8 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/RefEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/RefEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/StringEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/StringEditor.h index 8b2821f3..41ff7c09 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/StringEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/StringEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/TagContainerEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/TagContainerEditor.h index 6f19d288..1e73f3b4 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/TagContainerEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/TagContainerEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/URIEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/URIEditor.h index c259e160..0eeda0c9 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/URIEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/URIEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/include/property_browser/editors/VecNTEditor.h b/gui/libPropertyBrowser/include/property_browser/editors/VecNTEditor.h index 62f1ca0d..08ae6b82 100644 --- a/gui/libPropertyBrowser/include/property_browser/editors/VecNTEditor.h +++ b/gui/libPropertyBrowser/include/property_browser/editors/VecNTEditor.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/ErrorBox.cpp b/gui/libPropertyBrowser/src/ErrorBox.cpp index 6c43988d..d4b6b1f9 100644 --- a/gui/libPropertyBrowser/src/ErrorBox.cpp +++ b/gui/libPropertyBrowser/src/ErrorBox.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/ErrorBox.h b/gui/libPropertyBrowser/src/ErrorBox.h index 5994b945..2d12dba0 100644 --- a/gui/libPropertyBrowser/src/ErrorBox.h +++ b/gui/libPropertyBrowser/src/ErrorBox.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/PropertyBrowserItem.cpp b/gui/libPropertyBrowser/src/PropertyBrowserItem.cpp index f654c8d5..296f4367 100644 --- a/gui/libPropertyBrowser/src/PropertyBrowserItem.cpp +++ b/gui/libPropertyBrowser/src/PropertyBrowserItem.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -252,8 +252,8 @@ raco::core::Queries::LinkState PropertyBrowserItem::linkState() const noexcept { return core::Queries::linkState(*commandInterface_->project(), valueHandle_); } -void PropertyBrowserItem::setLink(const core::ValueHandle& start) noexcept { - commandInterface_->addLink(start, valueHandle_); +void PropertyBrowserItem::setLink(const core::ValueHandle& start, bool isWeak) noexcept { + commandInterface_->addLink(start, valueHandle_, isWeak); } void PropertyBrowserItem::removeLink() noexcept { @@ -264,6 +264,9 @@ std::string PropertyBrowserItem::linkText(bool fullLinkPath) const noexcept { if (auto link{raco::core::Queries::getLink(*commandInterface_->project(), valueHandle_.getDescriptor())}) { auto propertyDesc = link->startProp(); auto propertyPath = (fullLinkPath) ? propertyDesc.getFullPropertyPath() : propertyDesc.getPropertyPath(); + if (*link->isWeak_) { + propertyPath += " (weak)"; + } if (!link->isValid()) { propertyPath += " (broken)"; } diff --git a/gui/libPropertyBrowser/src/PropertyBrowserRef.cpp b/gui/libPropertyBrowser/src/PropertyBrowserRef.cpp index 4f456e67..33873cfc 100644 --- a/gui/libPropertyBrowser/src/PropertyBrowserRef.cpp +++ b/gui/libPropertyBrowser/src/PropertyBrowserRef.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/PropertyBrowserWidget.cpp b/gui/libPropertyBrowser/src/PropertyBrowserWidget.cpp index 304535af..db7e5b2b 100644 --- a/gui/libPropertyBrowser/src/PropertyBrowserWidget.cpp +++ b/gui/libPropertyBrowser/src/PropertyBrowserWidget.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/PropertySubtreeChildrenContainer.cpp b/gui/libPropertyBrowser/src/PropertySubtreeChildrenContainer.cpp index 9026146c..4874c364 100644 --- a/gui/libPropertyBrowser/src/PropertySubtreeChildrenContainer.cpp +++ b/gui/libPropertyBrowser/src/PropertySubtreeChildrenContainer.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/PropertySubtreeView.cpp b/gui/libPropertyBrowser/src/PropertySubtreeView.cpp index 40b5c35e..7bfebdf1 100644 --- a/gui/libPropertyBrowser/src/PropertySubtreeView.cpp +++ b/gui/libPropertyBrowser/src/PropertySubtreeView.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/WidgetFactory.cpp b/gui/libPropertyBrowser/src/WidgetFactory.cpp index 4c3d3753..abe7ee99 100644 --- a/gui/libPropertyBrowser/src/WidgetFactory.cpp +++ b/gui/libPropertyBrowser/src/WidgetFactory.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/controls/ExpandButton.cpp b/gui/libPropertyBrowser/src/controls/ExpandButton.cpp index 65c8e4c2..cb5c2e0c 100644 --- a/gui/libPropertyBrowser/src/controls/ExpandButton.cpp +++ b/gui/libPropertyBrowser/src/controls/ExpandButton.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/controls/MouseWheelGuard.cpp b/gui/libPropertyBrowser/src/controls/MouseWheelGuard.cpp index 02bb811e..d5af9063 100644 --- a/gui/libPropertyBrowser/src/controls/MouseWheelGuard.cpp +++ b/gui/libPropertyBrowser/src/controls/MouseWheelGuard.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/controls/ScalarSlider.cpp b/gui/libPropertyBrowser/src/controls/ScalarSlider.cpp index 7a64452e..bdcf59a0 100644 --- a/gui/libPropertyBrowser/src/controls/ScalarSlider.cpp +++ b/gui/libPropertyBrowser/src/controls/ScalarSlider.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/controls/SpinBox.cpp b/gui/libPropertyBrowser/src/controls/SpinBox.cpp index 38b4e6ec..5eeb9c56 100644 --- a/gui/libPropertyBrowser/src/controls/SpinBox.cpp +++ b/gui/libPropertyBrowser/src/controls/SpinBox.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/BoolEditor.cpp b/gui/libPropertyBrowser/src/editors/BoolEditor.cpp index 8c9e81b4..0bd96e3d 100644 --- a/gui/libPropertyBrowser/src/editors/BoolEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/BoolEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/DoubleEditor.cpp b/gui/libPropertyBrowser/src/editors/DoubleEditor.cpp index b356f854..4f8b7c6f 100644 --- a/gui/libPropertyBrowser/src/editors/DoubleEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/DoubleEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/EnumerationEditor.cpp b/gui/libPropertyBrowser/src/editors/EnumerationEditor.cpp index 4e2768c7..4db68c78 100644 --- a/gui/libPropertyBrowser/src/editors/EnumerationEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/EnumerationEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/Int64Editor.cpp b/gui/libPropertyBrowser/src/editors/Int64Editor.cpp index b8f43a88..322b79b7 100644 --- a/gui/libPropertyBrowser/src/editors/Int64Editor.cpp +++ b/gui/libPropertyBrowser/src/editors/Int64Editor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/IntEditor.cpp b/gui/libPropertyBrowser/src/editors/IntEditor.cpp index 0e4f64ca..a024dead 100644 --- a/gui/libPropertyBrowser/src/editors/IntEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/IntEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/LinkEditor.cpp b/gui/libPropertyBrowser/src/editors/LinkEditor.cpp index 18408505..81c42e0a 100644 --- a/gui/libPropertyBrowser/src/editors/LinkEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/LinkEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -85,9 +85,9 @@ class LinkEditorPopup : public QDialog { QObject::connect(&closeButton_, &QPushButton::clicked, this, &QWidget::close); QObject::connect(&deleteButton_, &QPushButton::clicked, this, [this, item]() { item->removeLink(); close(); }); QObject::connect(&list_, &LinkStartSearchView::selectionChanged, &acceptButton_, &QPushButton::setEnabled); - QObject::connect(&acceptButton_, &QPushButton::clicked, this, [this, item]() { item->setLink(list_.handleFromIndex(list_.selection())); close(); }); - QObject::connect(&list_, &LinkStartSearchView::clicked, this, [this, item](const QModelIndex& index) { item->setLink(list_.handleFromIndex(index)); close(); }); - QObject::connect(&list_, &LinkStartSearchView::activated, this, [this, item](const QModelIndex& index) { item->setLink(list_.handleFromIndex(index)); close(); }); + QObject::connect(&acceptButton_, &QPushButton::clicked, this, &LinkEditorPopup::createLink); + QObject::connect(&list_, &LinkStartSearchView::clicked, this, &LinkEditorPopup::createLink); + QObject::connect(&list_, &LinkStartSearchView::activated, this, &LinkEditorPopup::createLink); // center horizontally on link button and keep on screen search_.setMinimumWidth(500); @@ -102,6 +102,11 @@ class LinkEditorPopup : public QDialog { show(); } + void createLink() { + item_->setLink(list_.handleFromIndex(list_.selection()), !list_.allowedStrong(list_.selection()) && list_.allowedWeak(list_.selection())); + close(); + } + protected: bool eventFilter(QObject* obj, QEvent* event) { if (&search_ == obj) { @@ -123,8 +128,7 @@ class LinkEditorPopup : public QDialog { close(); } else if (key == Qt::Key_Enter || key == Qt::Key_Return) { if (list_.hasValidSelection()) { - item_->setLink(list_.handleFromIndex(list_.selection())); - close(); + createLink(); } else if (search_.text().size() == 0 && item_->linkText().size() > 0) { item_->removeLink(); close(); @@ -240,7 +244,7 @@ void LinkEditor::setLinkState(const LinkState& linkstate) { if (startingLinks.empty()) { goToLinkButton_->setDisabled(false); - goToLinkButton_->setIcon(Icons::instance().goToLeft); + goToLinkButton_->setIcon(*endingLink->isWeak_ ? Icons::instance().singleArrowLeft : Icons::instance().doubleArrowLeft); goToLinkButton_->setToolTip(QString("Go to link start (%1)").arg(QString::fromStdString(linkStartPropName))); QObject::connect(goToLinkButton_, &QPushButton::clicked, [this, linkStartObj]() { @@ -315,7 +319,7 @@ std::map LinkEditor::generateSortedLinkPoints(const st void LinkEditor::dragEnterEvent(QDragEnterEvent* event) { if (event->mimeData()->hasFormat(MimeTypes::VALUE_HANDLE_PATH) && event->mimeData()->hasFormat(MimeTypes::EDITOR_OBJECT_ID)) { if (auto handle{core::Queries::findByIdAndPath(*item_->project(), event->mimeData()->data(MimeTypes::EDITOR_OBJECT_ID).toStdString(), event->mimeData()->data(MimeTypes::VALUE_HANDLE_PATH).toStdString())}) { - if (core::Queries::userCanCreateLink(*item_->project(), handle, item_->valueHandle())) { + if (core::Queries::userCanCreateLink(*item_->project(), handle, item_->valueHandle(), false)) { event->acceptProposedAction(); validDropTarget_ = true; } @@ -329,7 +333,7 @@ void LinkEditor::dragLeaveEvent(QDragLeaveEvent* event) { void LinkEditor::dropEvent(QDropEvent* event) { if (auto handle{core::Queries::findByIdAndPath(*item_->project(), event->mimeData()->data(MimeTypes::EDITOR_OBJECT_ID).toStdString(), event->mimeData()->data(MimeTypes::VALUE_HANDLE_PATH).toStdString())}) { - item_->setLink(handle); + item_->setLink(handle, false); } validDropTarget_ = false; } diff --git a/gui/libPropertyBrowser/src/editors/PropertyEditor.cpp b/gui/libPropertyBrowser/src/editors/PropertyEditor.cpp index e6c9d6f2..b30b8769 100644 --- a/gui/libPropertyBrowser/src/editors/PropertyEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/PropertyEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/RefEditor.cpp b/gui/libPropertyBrowser/src/editors/RefEditor.cpp index e8042b8a..e0cd1c4c 100644 --- a/gui/libPropertyBrowser/src/editors/RefEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/RefEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/StringEditor.cpp b/gui/libPropertyBrowser/src/editors/StringEditor.cpp index 4e53e818..72811a2c 100644 --- a/gui/libPropertyBrowser/src/editors/StringEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/StringEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/TagContainerEditor.cpp b/gui/libPropertyBrowser/src/editors/TagContainerEditor.cpp index 6eee2a9e..01da309d 100644 --- a/gui/libPropertyBrowser/src/editors/TagContainerEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/TagContainerEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AppliedTagModel.cpp b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AppliedTagModel.cpp index 98c98b46..61aa48b3 100644 --- a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AppliedTagModel.cpp +++ b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AppliedTagModel.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AppliedTagModel.h b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AppliedTagModel.h index 62837dcd..828a345d 100644 --- a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AppliedTagModel.h +++ b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AppliedTagModel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AvailableTagsItemModel.cpp b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AvailableTagsItemModel.cpp index d2de55ad..a5feda7b 100644 --- a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AvailableTagsItemModel.cpp +++ b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AvailableTagsItemModel.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AvailableTagsItemModel.h b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AvailableTagsItemModel.h index cdb42e7c..e25b4a79 100644 --- a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AvailableTagsItemModel.h +++ b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_AvailableTagsItemModel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_Popup.cpp b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_Popup.cpp index 5c1c82bd..d99b979f 100644 --- a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_Popup.cpp +++ b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_Popup.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_Popup.h b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_Popup.h index 7fb1ddbc..27f5e1a1 100644 --- a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_Popup.h +++ b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TagContainerEditor_Popup.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TreeViewWithDel.h b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TreeViewWithDel.h index bad39af0..5e2bb998 100644 --- a/gui/libPropertyBrowser/src/editors/TagContainerEditor/TreeViewWithDel.h +++ b/gui/libPropertyBrowser/src/editors/TagContainerEditor/TreeViewWithDel.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/URIEditor.cpp b/gui/libPropertyBrowser/src/editors/URIEditor.cpp index 8d77a949..64a29e47 100644 --- a/gui/libPropertyBrowser/src/editors/URIEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/URIEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/src/editors/VecNTEditor.cpp b/gui/libPropertyBrowser/src/editors/VecNTEditor.cpp index 25b72d7e..afafe856 100644 --- a/gui/libPropertyBrowser/src/editors/VecNTEditor.cpp +++ b/gui/libPropertyBrowser/src/editors/VecNTEditor.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/tests/CMakeLists.txt b/gui/libPropertyBrowser/tests/CMakeLists.txt index c0ea7afa..c62bc42d 100644 --- a/gui/libPropertyBrowser/tests/CMakeLists.txt +++ b/gui/libPropertyBrowser/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/tests/EditorTestFixture.h b/gui/libPropertyBrowser/tests/EditorTestFixture.h index b96e513f..97ba38d7 100644 --- a/gui/libPropertyBrowser/tests/EditorTestFixture.h +++ b/gui/libPropertyBrowser/tests/EditorTestFixture.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/tests/EnumerationEditor_test.cpp b/gui/libPropertyBrowser/tests/EnumerationEditor_test.cpp index 4ff642c9..ebb773fe 100644 --- a/gui/libPropertyBrowser/tests/EnumerationEditor_test.cpp +++ b/gui/libPropertyBrowser/tests/EnumerationEditor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/tests/PrimitiveEditorsDataChange_test.cpp b/gui/libPropertyBrowser/tests/PrimitiveEditorsDataChange_test.cpp index ab3b068b..dc741ddd 100644 --- a/gui/libPropertyBrowser/tests/PrimitiveEditorsDataChange_test.cpp +++ b/gui/libPropertyBrowser/tests/PrimitiveEditorsDataChange_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/tests/PropertyBrowserItemTestHelper.h b/gui/libPropertyBrowser/tests/PropertyBrowserItemTestHelper.h index c6fbfbc4..9085340a 100644 --- a/gui/libPropertyBrowser/tests/PropertyBrowserItemTestHelper.h +++ b/gui/libPropertyBrowser/tests/PropertyBrowserItemTestHelper.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/tests/PropertyBrowserItem_test.cpp b/gui/libPropertyBrowser/tests/PropertyBrowserItem_test.cpp index 5008715f..ae341e4a 100644 --- a/gui/libPropertyBrowser/tests/PropertyBrowserItem_test.cpp +++ b/gui/libPropertyBrowser/tests/PropertyBrowserItem_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/tests/SpinBox_test.cpp b/gui/libPropertyBrowser/tests/SpinBox_test.cpp index 49450664..0ed77ebc 100644 --- a/gui/libPropertyBrowser/tests/SpinBox_test.cpp +++ b/gui/libPropertyBrowser/tests/SpinBox_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libPropertyBrowser/tests/URIEditor_test.cpp b/gui/libPropertyBrowser/tests/URIEditor_test.cpp index c0eb767e..459ca0bf 100644 --- a/gui/libPropertyBrowser/tests/URIEditor_test.cpp +++ b/gui/libPropertyBrowser/tests/URIEditor_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/CMakeLists.txt b/gui/libRamsesWidgets/CMakeLists.txt index 62d31d6c..7bdb78f6 100644 --- a/gui/libRamsesWidgets/CMakeLists.txt +++ b/gui/libRamsesWidgets/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/include/ramses_widgets/BuildOptions.h b/gui/libRamsesWidgets/include/ramses_widgets/BuildOptions.h index 83b0c1c0..5c25816e 100644 --- a/gui/libRamsesWidgets/include/ramses_widgets/BuildOptions.h +++ b/gui/libRamsesWidgets/include/ramses_widgets/BuildOptions.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/include/ramses_widgets/PreviewContentWidget.h b/gui/libRamsesWidgets/include/ramses_widgets/PreviewContentWidget.h index 68c96c74..17b5c15f 100644 --- a/gui/libRamsesWidgets/include/ramses_widgets/PreviewContentWidget.h +++ b/gui/libRamsesWidgets/include/ramses_widgets/PreviewContentWidget.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/include/ramses_widgets/PreviewFramebufferScene.h b/gui/libRamsesWidgets/include/ramses_widgets/PreviewFramebufferScene.h index c5a7e19d..61cef4df 100644 --- a/gui/libRamsesWidgets/include/ramses_widgets/PreviewFramebufferScene.h +++ b/gui/libRamsesWidgets/include/ramses_widgets/PreviewFramebufferScene.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/include/ramses_widgets/PreviewMainWindow.h b/gui/libRamsesWidgets/include/ramses_widgets/PreviewMainWindow.h index e0ef3ee7..d3fdb75e 100644 --- a/gui/libRamsesWidgets/include/ramses_widgets/PreviewMainWindow.h +++ b/gui/libRamsesWidgets/include/ramses_widgets/PreviewMainWindow.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/include/ramses_widgets/PreviewScrollAreaWidget.h b/gui/libRamsesWidgets/include/ramses_widgets/PreviewScrollAreaWidget.h index 4302de19..caa10598 100644 --- a/gui/libRamsesWidgets/include/ramses_widgets/PreviewScrollAreaWidget.h +++ b/gui/libRamsesWidgets/include/ramses_widgets/PreviewScrollAreaWidget.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/include/ramses_widgets/RamsesPreviewWindow.h b/gui/libRamsesWidgets/include/ramses_widgets/RamsesPreviewWindow.h index 74274cc4..23c0c5fd 100644 --- a/gui/libRamsesWidgets/include/ramses_widgets/RamsesPreviewWindow.h +++ b/gui/libRamsesWidgets/include/ramses_widgets/RamsesPreviewWindow.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/include/ramses_widgets/RendererBackend.h b/gui/libRamsesWidgets/include/ramses_widgets/RendererBackend.h index 53b7263b..ee46f982 100644 --- a/gui/libRamsesWidgets/include/ramses_widgets/RendererBackend.h +++ b/gui/libRamsesWidgets/include/ramses_widgets/RendererBackend.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/include/ramses_widgets/SceneStateEventHandler.h b/gui/libRamsesWidgets/include/ramses_widgets/SceneStateEventHandler.h index 97b615ee..119c1cb0 100644 --- a/gui/libRamsesWidgets/include/ramses_widgets/SceneStateEventHandler.h +++ b/gui/libRamsesWidgets/include/ramses_widgets/SceneStateEventHandler.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/src/PreviewContentWidget.cpp b/gui/libRamsesWidgets/src/PreviewContentWidget.cpp index a9c494b6..cf492db6 100644 --- a/gui/libRamsesWidgets/src/PreviewContentWidget.cpp +++ b/gui/libRamsesWidgets/src/PreviewContentWidget.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/src/PreviewFramebufferScene.cpp b/gui/libRamsesWidgets/src/PreviewFramebufferScene.cpp index b2346499..9b8b4f69 100644 --- a/gui/libRamsesWidgets/src/PreviewFramebufferScene.cpp +++ b/gui/libRamsesWidgets/src/PreviewFramebufferScene.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/src/PreviewMainWindow.cpp b/gui/libRamsesWidgets/src/PreviewMainWindow.cpp index 716dd232..9c5576dc 100644 --- a/gui/libRamsesWidgets/src/PreviewMainWindow.cpp +++ b/gui/libRamsesWidgets/src/PreviewMainWindow.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/src/PreviewScrollAreaWidget.cpp b/gui/libRamsesWidgets/src/PreviewScrollAreaWidget.cpp index cffbf5e0..2f59e3b7 100644 --- a/gui/libRamsesWidgets/src/PreviewScrollAreaWidget.cpp +++ b/gui/libRamsesWidgets/src/PreviewScrollAreaWidget.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/src/RamsesPreviewWindow.cpp b/gui/libRamsesWidgets/src/RamsesPreviewWindow.cpp index 71a8df7a..873fff05 100644 --- a/gui/libRamsesWidgets/src/RamsesPreviewWindow.cpp +++ b/gui/libRamsesWidgets/src/RamsesPreviewWindow.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/src/RendererBackend.cpp b/gui/libRamsesWidgets/src/RendererBackend.cpp index d8849aa5..550ecce6 100644 --- a/gui/libRamsesWidgets/src/RendererBackend.cpp +++ b/gui/libRamsesWidgets/src/RendererBackend.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libRamsesWidgets/src/SceneStateEventHandler.cpp b/gui/libRamsesWidgets/src/SceneStateEventHandler.cpp index 788ba1d3..0855dcda 100644 --- a/gui/libRamsesWidgets/src/SceneStateEventHandler.cpp +++ b/gui/libRamsesWidgets/src/SceneStateEventHandler.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libStyle/CMakeLists.txt b/gui/libStyle/CMakeLists.txt index 8085dcb1..d077f9ac 100644 --- a/gui/libStyle/CMakeLists.txt +++ b/gui/libStyle/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libStyle/include/style/Colors.h b/gui/libStyle/include/style/Colors.h index 2548de30..769259ee 100644 --- a/gui/libStyle/include/style/Colors.h +++ b/gui/libStyle/include/style/Colors.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -24,7 +24,6 @@ enum class Colormap { text, grayEditDisabled, textDisabled, - iconDisabled, // additional colors for custom widgets and custom roles/states updatedInBackground, diff --git a/gui/libStyle/include/style/Icons.h b/gui/libStyle/include/style/Icons.h index d733b435..95ccdade 100644 --- a/gui/libStyle/include/style/Icons.h +++ b/gui/libStyle/include/style/Icons.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -55,8 +55,24 @@ class Icons { const QIcon typeAnimationChannel{":typeAnimationChannelIcon"}; const QIcon typeAnimation{":typeAnimationIcon"}; const QIcon typeTimer{":typeTimerIcon"}; + const QIcon browse{":browseIcon"}; + const QIcon info{":infoIcon"}; + const QIcon refresh{":refreshIcon"}; + const QIcon refreshNeeded{":refreshNeededIcon"}; + const QIcon loopingInactive{":loopingInactiveIcon"}; + const QIcon loopingActive{":loopingActiveIcon"}; + const QIcon playInactive{":playInactiveIcon"}; + const QIcon playActive{":playActiveIcon"}; + const QIcon pauseInactive{":pauseInactiveIcon"}; + const QIcon pauseActive{":pauseActiveIcon"}; + const QIcon stopInactive{":stopInactiveIcon"}; + const QIcon stopActive{":stopActiveIcon"}; + const QIcon skipNext{":skipNextIcon"}; + const QIcon skipPrevious{":skipPreviousIcon"}; + const QIcon singleArrowLeft{":singleArrowLeft"}; + const QIcon doubleArrowLeft{":doubleArrowLeft"}; - static const Icons& instance(); + static const Icons &instance(); Icons(const Icons &) = delete; Icons &operator=(const Icons &) = delete; diff --git a/gui/libStyle/include/style/QStyleFormatter.h b/gui/libStyle/include/style/QStyleFormatter.h index 41775cc1..5b5f0f06 100644 --- a/gui/libStyle/include/style/QStyleFormatter.h +++ b/gui/libStyle/include/style/QStyleFormatter.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libStyle/include/style/RaCoStyle.h b/gui/libStyle/include/style/RaCoStyle.h index 137b77a3..e8359da3 100644 --- a/gui/libStyle/include/style/RaCoStyle.h +++ b/gui/libStyle/include/style/RaCoStyle.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -27,6 +27,8 @@ class RaCoStyle : public QProxyStyle { static constexpr int CORNER_RADIUS = 8; // additional indent for text in rounded input fields static constexpr int CORNER_SPACING = 4; + // transparency value for "disabled" icons + static inline constexpr auto DISABLED_ICON_ALPHA = 0.6; public: RaCoStyle(); diff --git a/gui/libStyle/src/Colors.cpp b/gui/libStyle/src/Colors.cpp index e34db703..0541f548 100644 --- a/gui/libStyle/src/Colors.cpp +++ b/gui/libStyle/src/Colors.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -20,7 +20,6 @@ Colors::Colors() noexcept { {Colormap::text, QColor(255, 255, 255)}, {Colormap::grayEditDisabled, QColor(30, 30, 30)}, {Colormap::textDisabled, QColor(200, 200, 200)}, - {Colormap::iconDisabled, QColor(180, 180, 180)}, // additional colors for custom widgets and custom roles/states {Colormap::updatedInBackground, QColor(45, 100, 150)}, diff --git a/gui/libStyle/src/Icons.cpp b/gui/libStyle/src/Icons.cpp index 366a72b1..f01fb23a 100644 --- a/gui/libStyle/src/Icons.cpp +++ b/gui/libStyle/src/Icons.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/gui/libStyle/src/RaCoStyle.cpp b/gui/libStyle/src/RaCoStyle.cpp index 8b817179..751bc673 100644 --- a/gui/libStyle/src/RaCoStyle.cpp +++ b/gui/libStyle/src/RaCoStyle.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -165,12 +165,12 @@ QIcon RaCoStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption *o QPixmap RaCoStyle::generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *opt) const { if (iconMode == QIcon::Mode::Disabled) { - auto darkenedPixmap = pixmap; - QPainter pixMapDarkener(&darkenedPixmap); - pixMapDarkener.setCompositionMode(QPainter::CompositionMode_SourceIn); - pixMapDarkener.fillRect(QRect({0, 0}, pixmap.size()), QBrush(Colors::color(Colormap::iconDisabled))); - - return darkenedPixmap; + QPixmap transparentPixmap(pixmap.size()); + transparentPixmap.fill(Qt::transparent); + QPainter p(&transparentPixmap); + p.setOpacity(DISABLED_ICON_ALPHA); + p.drawPixmap(0, 0, pixmap); + return transparentPixmap; } return QProxyStyle::generatedIconPixmap(iconMode, pixmap, opt); @@ -433,6 +433,10 @@ void RaCoStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *opti bounds.adjust(0, 0, 10, 0); } } + if (widget->parent() && dynamic_cast(widget->parent())) { + // avoid duplicate rounded border drawing when the lineEdit is a combobox child. + bounds.adjust(-5, 0, 5, 0); + } drawRoundedRect(bounds, p, backBrush, &opt->palette.brush(QPalette::Window)); diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt index 4d113aee..27e6a8a2 100644 --- a/resources/CMakeLists.txt +++ b/resources/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/resources/meshes/README.md b/resources/meshes/README.md index a64ab3cd..a4afca80 100644 --- a/resources/meshes/README.md +++ b/resources/meshes/README.md @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/resources/python/demo.py b/resources/python/demo.py index e415fbb8..a88a6cfb 100644 --- a/resources/python/demo.py +++ b/resources/python/demo.py @@ -2,12 +2,13 @@ # SPDX-License-Identifier: MPL-2.0 # # This file is part of Ramses Composer -# (see https://github.com/GENIVI/ramses-composer). +# (see https://github.com/bmwcarit/ramses-composer). # # This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. # If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. # import raco +import os def scenegraphRoots(): return [obj for obj in raco.instances() if obj.parent() == None] @@ -86,11 +87,11 @@ def printObject(obj): lua = raco.create("LuaScript", "lua") -print("Lua withut uri:") +print("Lua without uri:") printObject(lua) print("\n") -lua.uri = R"C:\Users\MarcusWeber\OneDrive - Paradox Cat GmbH\Documents\RamsesComposer\scripts\through.lua" +lua.uri = os.getcwd() + "/scripts/types-scalar.lua" print("Lua with uri:") printObject(lua) @@ -104,15 +105,16 @@ def printObject(obj): print(" -- Create Link -- \n") -link = raco.addLink(lua.outputs.vec, obj.translation) +link = raco.addLink(lua.outputs.ovector3f, obj.translation) print("created Link: ", link) print(" link start = ", link.start) print(" link end = ", link.end) print(" link valid = ", link.valid) +print(" link weak = ", link.weak) print("\n") -raco.addLink(lua.outputs.vec, obj.rotation) +raco.addLink(lua.outputs.ovector3f, obj.rotation, True) raco.removeLink(obj.translation) diff --git a/resources/python/migrate_recursive.py b/resources/python/migrate_recursive.py index a8eaefbd..01bb4479 100644 --- a/resources/python/migrate_recursive.py +++ b/resources/python/migrate_recursive.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 # # This file is part of Ramses Composer -# (see https://github.com/GENIVI/ramses-composer). +# (see https://github.com/bmwcarit/ramses-composer). # # This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. # If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/resources/python/print_objects.py b/resources/python/print_objects.py index fbd12a68..ea5a7c1c 100644 --- a/resources/python/print_objects.py +++ b/resources/python/print_objects.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 # # This file is part of Ramses Composer -# (see https://github.com/GENIVI/ramses-composer). +# (see https://github.com/bmwcarit/ramses-composer). # # This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. # If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/resources/python/print_scenegraph.py b/resources/python/print_scenegraph.py index d853c9f0..94bd9998 100644 --- a/resources/python/print_scenegraph.py +++ b/resources/python/print_scenegraph.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 # # This file is part of Ramses Composer -# (see https://github.com/GENIVI/ramses-composer). +# (see https://github.com/bmwcarit/ramses-composer). # # This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. # If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/resources/python/purge_links.py b/resources/python/purge_links.py index e90537d5..b70d7e1d 100644 --- a/resources/python/purge_links.py +++ b/resources/python/purge_links.py @@ -2,7 +2,7 @@ # SPDX-License-Identifier: MPL-2.0 # # This file is part of Ramses Composer -# (see https://github.com/GENIVI/ramses-composer). +# (see https://github.com/bmwcarit/ramses-composer). # # This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. # If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/styles/_Default/icons/browse.svg b/styles/_Default/icons/browse.svg new file mode 100644 index 00000000..23516572 --- /dev/null +++ b/styles/_Default/icons/browse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/_Default/icons/info.svg b/styles/_Default/icons/info.svg new file mode 100644 index 00000000..6a41e090 --- /dev/null +++ b/styles/_Default/icons/info.svg @@ -0,0 +1 @@ + diff --git a/styles/_Default/icons/keyboard_arrow_left_white_24dp.svg b/styles/_Default/icons/keyboard_arrow_left_white_24dp.svg new file mode 100644 index 00000000..9956492f --- /dev/null +++ b/styles/_Default/icons/keyboard_arrow_left_white_24dp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/_Default/icons/keyboard_double_arrow_left_white_24dp.svg b/styles/_Default/icons/keyboard_double_arrow_left_white_24dp.svg new file mode 100644 index 00000000..0713531d --- /dev/null +++ b/styles/_Default/icons/keyboard_double_arrow_left_white_24dp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/_Default/icons/playerLoopingActive.svg b/styles/_Default/icons/playerLoopingActive.svg new file mode 100644 index 00000000..00fadf42 --- /dev/null +++ b/styles/_Default/icons/playerLoopingActive.svg @@ -0,0 +1 @@ + diff --git a/styles/_Default/icons/playerLoopingInactive.svg b/styles/_Default/icons/playerLoopingInactive.svg new file mode 100644 index 00000000..63790073 --- /dev/null +++ b/styles/_Default/icons/playerLoopingInactive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/_Default/icons/playerPauseActive.svg b/styles/_Default/icons/playerPauseActive.svg new file mode 100644 index 00000000..c01cd1df --- /dev/null +++ b/styles/_Default/icons/playerPauseActive.svg @@ -0,0 +1 @@ + diff --git a/styles/_Default/icons/playerPauseInactive.svg b/styles/_Default/icons/playerPauseInactive.svg new file mode 100644 index 00000000..350e2b84 --- /dev/null +++ b/styles/_Default/icons/playerPauseInactive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/_Default/icons/playerPlayActive.svg b/styles/_Default/icons/playerPlayActive.svg new file mode 100644 index 00000000..6eaba260 --- /dev/null +++ b/styles/_Default/icons/playerPlayActive.svg @@ -0,0 +1 @@ + diff --git a/styles/_Default/icons/playerPlayInactive.svg b/styles/_Default/icons/playerPlayInactive.svg new file mode 100644 index 00000000..94a5453e --- /dev/null +++ b/styles/_Default/icons/playerPlayInactive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/_Default/icons/playerSkipNext.svg b/styles/_Default/icons/playerSkipNext.svg new file mode 100644 index 00000000..600307b2 --- /dev/null +++ b/styles/_Default/icons/playerSkipNext.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/_Default/icons/playerSkipPrevious.svg b/styles/_Default/icons/playerSkipPrevious.svg new file mode 100644 index 00000000..e5d170ee --- /dev/null +++ b/styles/_Default/icons/playerSkipPrevious.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/_Default/icons/playerStopActive.svg b/styles/_Default/icons/playerStopActive.svg new file mode 100644 index 00000000..28c7f025 --- /dev/null +++ b/styles/_Default/icons/playerStopActive.svg @@ -0,0 +1 @@ + diff --git a/styles/_Default/icons/playerStopInctive.svg b/styles/_Default/icons/playerStopInctive.svg new file mode 100644 index 00000000..fe6a4285 --- /dev/null +++ b/styles/_Default/icons/playerStopInctive.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/_Default/icons/refresh.svg b/styles/_Default/icons/refresh.svg new file mode 100644 index 00000000..87a7e9a6 --- /dev/null +++ b/styles/_Default/icons/refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/styles/_Default/icons/refreshNeeded.svg b/styles/_Default/icons/refreshNeeded.svg new file mode 100644 index 00000000..a000ca32 --- /dev/null +++ b/styles/_Default/icons/refreshNeeded.svg @@ -0,0 +1 @@ + diff --git a/styles/icons.qrc b/styles/icons.qrc index 4e561f84..0653616b 100644 --- a/styles/icons.qrc +++ b/styles/icons.qrc @@ -42,5 +42,21 @@ _Default/icons/typeLuaScriptModule.svg _Default/icons/typeLuaInterface.svg _Default/icons/typeTimer.svg + _Default/icons/browse.svg + _Default/icons/refresh.svg + _Default/icons/refreshNeeded.svg + _Default/icons/info.svg + _Default/icons/playerPlayInactive.svg + _Default/icons/playerPlayActive.svg + _Default/icons/playerPauseInactive.svg + _Default/icons/playerPauseActive.svg + _Default/icons/playerStopInctive.svg + _Default/icons/playerStopActive.svg + _Default/icons/playerSkipNext.svg + _Default/icons/playerSkipPrevious.svg + _Default/icons/playerLoopingInactive.svg + _Default/icons/playerLoopingActive.svg + _Default/icons/keyboard_arrow_left_white_24dp.svg + _Default/icons/keyboard_double_arrow_left_white_24dp.svg - \ No newline at end of file + diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt index 01f7fd73..38b90f31 100644 --- a/third_party/CMakeLists.txt +++ b/third_party/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/third_party/python-linux/CMakeLists.txt b/third_party/python-linux/CMakeLists.txt index cea57060..2e2173a3 100644 --- a/third_party/python-linux/CMakeLists.txt +++ b/third_party/python-linux/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/third_party/python-windows/CMakeLists.txt b/third_party/python-windows/CMakeLists.txt index 71f8a32d..a35795a7 100644 --- a/third_party/python-windows/CMakeLists.txt +++ b/third_party/python-windows/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 2e6d4994..b5504071 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libLogSystem/CMakeLists.txt b/utils/libLogSystem/CMakeLists.txt index e87bfa23..3eb47dcd 100644 --- a/utils/libLogSystem/CMakeLists.txt +++ b/utils/libLogSystem/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libLogSystem/include/log_system/log.h b/utils/libLogSystem/include/log_system/log.h index 1f019b6c..94b1be36 100644 --- a/utils/libLogSystem/include/log_system/log.h +++ b/utils/libLogSystem/include/log_system/log.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -33,11 +33,13 @@ constexpr const char* RAMSES_BACKEND {"RAMSES_BACKEND"}; constexpr const char* RAMSES_ADAPTOR {"RAMSES_ADAPTOR"}; constexpr const char* DESERIALIZATION{"DESERIALIZATION"}; constexpr const char* PROJECT{"PROJECT"}; +constexpr const char* PYTHON{"PYTHON"}; constexpr const char* MESH_LOADER{"MESH_LOADER"}; constexpr const char* RAMSES{"RAMSES"}; constexpr const char* RAMSES_LOGIC{"RAMSES_LOGIC"}; constexpr const char* UTILS{"UTILS"}; constexpr const char* DUMP{"DUMP"}; +constexpr const char* TRACE_PLAYER{"TRACE_PLAYER"}; constexpr size_t MAX_LOG_FILE_SIZE_BYTES = 10 * 1024 * 1024; constexpr size_t MAX_LOG_FILE_AMOUNT = 25; diff --git a/utils/libLogSystem/src/log.cpp b/utils/libLogSystem/src/log.cpp index 96a72f3f..c66d6326 100644 --- a/utils/libLogSystem/src/log.cpp +++ b/utils/libLogSystem/src/log.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. @@ -97,10 +97,12 @@ void init(spdlog::filename_t logFileName) { spdlog::register_logger(makeLogger(RAMSES_ADAPTOR)); spdlog::register_logger(makeLogger(DESERIALIZATION)); spdlog::register_logger(makeLogger(PROJECT)); + spdlog::register_logger(makeLogger(PYTHON)); spdlog::register_logger(makeLogger(DEFAULT)); spdlog::register_logger(makeLogger(MESH_LOADER)); spdlog::register_logger(makeLogger(RAMSES)); spdlog::register_logger(makeLogger(RAMSES_LOGIC)); + spdlog::register_logger(makeLogger(TRACE_PLAYER)); spdlog::set_default_logger(spdlog::get(DEFAULT)); spdlog::set_pattern("%^[%L] [%D %T:%f] [%n] [%s:%#] [%!] %v"); diff --git a/utils/libUtils/CMakeLists.txt b/utils/libUtils/CMakeLists.txt index 875dab97..dfc56a8c 100644 --- a/utils/libUtils/CMakeLists.txt +++ b/utils/libUtils/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/include/utils/CrashDump.h b/utils/libUtils/include/utils/CrashDump.h index d11190fe..6ef376d3 100644 --- a/utils/libUtils/include/utils/CrashDump.h +++ b/utils/libUtils/include/utils/CrashDump.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/include/utils/FileUtils.h b/utils/libUtils/include/utils/FileUtils.h index 19b49d71..7a7619dd 100644 --- a/utils/libUtils/include/utils/FileUtils.h +++ b/utils/libUtils/include/utils/FileUtils.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/include/utils/MathUtils.h b/utils/libUtils/include/utils/MathUtils.h index fe3bc07f..3eba57d1 100644 --- a/utils/libUtils/include/utils/MathUtils.h +++ b/utils/libUtils/include/utils/MathUtils.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/include/utils/ZipUtils.h b/utils/libUtils/include/utils/ZipUtils.h index 07c341d9..5d5afd66 100644 --- a/utils/libUtils/include/utils/ZipUtils.h +++ b/utils/libUtils/include/utils/ZipUtils.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/include/utils/stdfilesystem.h b/utils/libUtils/include/utils/stdfilesystem.h index c9d1fdfe..5872720e 100644 --- a/utils/libUtils/include/utils/stdfilesystem.h +++ b/utils/libUtils/include/utils/stdfilesystem.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/include/utils/u8path.h b/utils/libUtils/include/utils/u8path.h index 184a8cfe..29985f92 100644 --- a/utils/libUtils/include/utils/u8path.h +++ b/utils/libUtils/include/utils/u8path.h @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/src/CrashDump.cpp b/utils/libUtils/src/CrashDump.cpp index d5c9ffa1..67493068 100644 --- a/utils/libUtils/src/CrashDump.cpp +++ b/utils/libUtils/src/CrashDump.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/src/FileUtils.cpp b/utils/libUtils/src/FileUtils.cpp index 82e78b0f..1c3fa1db 100644 --- a/utils/libUtils/src/FileUtils.cpp +++ b/utils/libUtils/src/FileUtils.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/src/MathUtils.cpp b/utils/libUtils/src/MathUtils.cpp index a5408519..7f71f05c 100644 --- a/utils/libUtils/src/MathUtils.cpp +++ b/utils/libUtils/src/MathUtils.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/src/ZipUtils.cpp b/utils/libUtils/src/ZipUtils.cpp index 3f39e57c..6b71f1a5 100644 --- a/utils/libUtils/src/ZipUtils.cpp +++ b/utils/libUtils/src/ZipUtils.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/src/u8path.cpp b/utils/libUtils/src/u8path.cpp index f9e192f6..0cae85ff 100644 --- a/utils/libUtils/src/u8path.cpp +++ b/utils/libUtils/src/u8path.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/tests/CMakeLists.txt b/utils/libUtils/tests/CMakeLists.txt index 0c077d27..9130bc92 100644 --- a/utils/libUtils/tests/CMakeLists.txt +++ b/utils/libUtils/tests/CMakeLists.txt @@ -2,7 +2,7 @@ SPDX-License-Identifier: MPL-2.0 This file is part of Ramses Composer -(see https://github.com/GENIVI/ramses-composer). +(see https://github.com/bmwcarit/ramses-composer). This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/tests/FileUtils_test.cpp b/utils/libUtils/tests/FileUtils_test.cpp index 17a1da8f..9ed0eb7f 100644 --- a/utils/libUtils/tests/FileUtils_test.cpp +++ b/utils/libUtils/tests/FileUtils_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. diff --git a/utils/libUtils/tests/u8path_test.cpp b/utils/libUtils/tests/u8path_test.cpp index e4344235..18fff0f3 100644 --- a/utils/libUtils/tests/u8path_test.cpp +++ b/utils/libUtils/tests/u8path_test.cpp @@ -2,7 +2,7 @@ * SPDX-License-Identifier: MPL-2.0 * * This file is part of Ramses Composer - * (see https://github.com/GENIVI/ramses-composer). + * (see https://github.com/bmwcarit/ramses-composer). * * This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. * If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.