From 7d1a3e09dc596a4bbee968a955949b55b08629cd Mon Sep 17 00:00:00 2001 From: Louise Poubel Date: Mon, 16 Aug 2021 00:34:44 -0700 Subject: [PATCH 1/8] Entity tree: prevent creation of repeated entity items (#974) Signed-off-by: Louise Poubel --- src/gui/plugins/entity_tree/EntityTree.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/gui/plugins/entity_tree/EntityTree.cc b/src/gui/plugins/entity_tree/EntityTree.cc index 8a0ae74152..79de5dfb7f 100644 --- a/src/gui/plugins/entity_tree/EntityTree.cc +++ b/src/gui/plugins/entity_tree/EntityTree.cc @@ -132,6 +132,13 @@ void TreeModel::AddEntity(unsigned int _entity, const QString &_entityName, return; } + if (this->entityItems.find(_entity) != this->entityItems.end()) + { + ignwarn << "Internal error: Trying to create item for entity [" << _entity + << "], but entity already has an item." << std::endl; + return; + } + // New entity item auto entityItem = new QStandardItem(_entityName); entityItem->setData(_entityName, this->roleNames().key("entityName")); From d468c05decf017cabb765f3943559a8bb7db3e14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Hern=C3=A1ndez=20Cordero?= Date: Thu, 19 Aug 2021 19:42:48 +0200 Subject: [PATCH 2/8] Removed unused variable in Shapes plugin (#984) Signed-off-by: ahcorde --- src/gui/plugins/shapes/Shapes.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/gui/plugins/shapes/Shapes.cc b/src/gui/plugins/shapes/Shapes.cc index 3b9165e5e3..dc00229760 100644 --- a/src/gui/plugins/shapes/Shapes.cc +++ b/src/gui/plugins/shapes/Shapes.cc @@ -40,9 +40,6 @@ namespace ignition::gazebo /// \brief Ignition communication node. public: transport::Node node; - /// \brief Mutex to protect mode - public: std::mutex mutex; - /// \brief Transform control service name public: std::string service; }; From 054ff128564ca635b214eaa3e4dc2f34ebeca48a Mon Sep 17 00:00:00 2001 From: Louise Poubel Date: Tue, 24 Aug 2021 01:52:15 -0700 Subject: [PATCH 3/8] =?UTF-8?q?=F0=9F=8E=88=203.9.0=20(#976)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Louise Poubel --- CMakeLists.txt | 2 +- Changelog.md | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ddc65c6fb4..5047ec19a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ find_package(ignition-cmake2 2.8.0 REQUIRED) #============================================================================ # Configure the project #============================================================================ -ign_configure_project(VERSION_SUFFIX pre2) +ign_configure_project(VERSION_SUFFIX) #============================================================================ # Set project-specific options diff --git a/Changelog.md b/Changelog.md index e8d70ce3c7..5ea674b9d8 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,7 +3,13 @@ ### Ignition Gazebo 3.X.X (202X-XX-XX) -### Ignition Gazebo 3.9.0 (2021-08-XX) +### Ignition Gazebo 3.9.0 (2021-08-16) + +1. Entity tree: prevent creation of repeated entity items + * [Pull request #974](https://github.com/ignitionrobotics/ign-gazebo/pull/974) + +1. Don't use $HOME on most tests (InternalFixture) + * [Pull request #971](https://github.com/ignitionrobotics/ign-gazebo/pull/971) 1. Be more specific when looking for physics plugins * [Pull request #965](https://github.com/ignitionrobotics/ign-gazebo/pull/965) From d94d58538a7a6fd2d432638b7a3874a431473198 Mon Sep 17 00:00:00 2001 From: Louise Poubel Date: Tue, 24 Aug 2021 15:29:32 -0700 Subject: [PATCH 4/8] =?UTF-8?q?=F0=9F=91=A9=E2=80=8D=F0=9F=8C=BE=20Remove?= =?UTF-8?q?=20bitbucket-pipelines.yml=20(#991)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Louise Poubel --- bitbucket-pipelines.yml | 100 ---------------------------------------- 1 file changed, 100 deletions(-) delete mode 100644 bitbucket-pipelines.yml diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml deleted file mode 100644 index 30fd50bfea..0000000000 --- a/bitbucket-pipelines.yml +++ /dev/null @@ -1,100 +0,0 @@ -image: ubuntu:bionic - -pipelines: - default: - - step: - script: - - apt-get update - - apt -y install wget lsb-release gnupg sudo curl - # Enable relevant package repositories - - docker/scripts/enable_ign_stable.sh - - docker/scripts/enable_ign_prerelease.sh - # Install base dependencies - - docker/scripts/install_common_deps.sh - - docker/scripts/enable_gcc8.sh - - docker/scripts/install_ign_deps.sh - # There are two methods to install ignition/osrf dependencies. - # The first method uses debians and the second builds dependencies - # from source. For each dependency, please use only one method. - # METHOD 1: Install the following debians - - apt-get install -y - libignition-cmake2-dev - libignition-common3-dev - libignition-gui3-dev - libignition-math6-eigen3-dev - libignition-msgs5-dev - libignition-plugin-dev - libignition-rendering3-dev - libignition-tools-dev - libignition-transport8-dev - libsdformat9-dev - libignition-fuel-tools4-dev - libignition-physics2-dev - libignition-sensors3-dev - # METHOD 2: Build from source - # Build dependencies from source using a given branch - # - docker/scripts/build_ign.sh ignitionrobotics ign-sensors default - # - docker/scripts/build_ign.sh ignitionrobotics ign-physics default - # - docker/scripts/build_ign.sh ignitionrobotics ign-fuel-tools default - # Build Ignition Gazebo - - ./tools/clang_tidy.sh - - mkdir build - - cd build - - cmake .. -DCMAKE_BUILD_TYPE=coverage - - make -j1 install - - export IGN_CONFIG_PATH=/usr/local/share/ignition - - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib - # run codecheck before tests so flaky tests don't obscure codecheck failures - - make codecheck - - export CTEST_OUTPUT_ON_FAILURE=1 - - make test - - make coverage - # Use a special version of codecov for handling gcc8 output. - - bash <(curl -s https://raw.githubusercontent.com/codecov/codecov-bash/4678d212cce2078bbaaf5027af0c0dafaad6a095/codecov) -X gcovout -X gcov - custom: - benchmark: - - step: - script: - - apt-get update - - apt -y install wget lsb-release gnupg sudo curl - # Enable relevant package repositories - - docker/scripts/enable_ign_stable.sh - # Install base dependencies - - docker/scripts/install_common_deps.sh - - docker/scripts/enable_gcc8.sh - - docker/scripts/install_ign_deps.sh - # There are two methods to install ignition/osrf dependencies. - # The first method uses debians and the second builds dependencies - # from source. For each dependency, please use only one method. - # METHOD 1: Install the following debians - - apt-get install -y - libignition-cmake2-dev - libignition-common3-dev - libignition-math6-eigen3-dev - libignition-plugin-dev - libignition-tools-dev - # libignition-fuel-tools4-dev - # libignition-physics2-dev - # libsdformat9-dev - # libignition-gui3-dev - # libignition-msgs5-dev - # libignition-rendering3-dev - # libignition-sensors3-dev - # libignition-transport8-dev - # Build some Ignition libraries from source. - # Build ign-rendering from source using the default branch - - docker/scripts/build_ign.sh osrf sdformat default - - docker/scripts/build_ign.sh ignitionrobotics ign-msgs default - - docker/scripts/build_ign.sh ignitionrobotics ign-transport default - - docker/scripts/build_ign.sh ignitionrobotics ign-rendering default - - docker/scripts/build_ign.sh ignitionrobotics ign-gui default - - docker/scripts/build_ign.sh ignitionrobotics ign-sensors default - - docker/scripts/build_ign.sh ignitionrobotics ign-physics default - - docker/scripts/build_ign.sh ignitionrobotics ign-fuel-tools default - # Build Ignition Gazebo - - mkdir build - - cd build - - cmake .. - - make -j4 install - - ./bin/BENCHMARK_each --benchmark_out_format=json --benchmark_out=each.json - - ../docker/scripts/upload_json_benchmark.sh each.json From c6255868c7f39cc968f05f564aec31e09115641f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Hern=C3=A1ndez=20Cordero?= Date: Thu, 26 Aug 2021 11:42:11 +0200 Subject: [PATCH 5/8] Improved doxygen (#996) * Improved doxygen Signed-off-by: ahcorde * Improved docs Signed-off-by: ahcorde --- CMakeLists.txt | 1 + include/ignition/gazebo/Conversions.hh | 96 ++++++++++++------- .../ignition/gazebo/EntityComponentManager.hh | 29 +++--- include/ignition/gazebo/Events.hh | 2 +- include/ignition/gazebo/Server.hh | 16 ++-- include/ignition/gazebo/ServerConfig.hh | 16 ++-- include/ignition/gazebo/Util.hh | 2 +- .../ignition/gazebo/components/Component.hh | 13 ++- .../gazebo/components/ContactSensor.hh | 2 +- include/ignition/gazebo/components/Factory.hh | 12 +-- .../gazebo/components/LogicalCamera.hh | 2 +- .../gazebo/components/Serialization.hh | 2 +- include/ignition/gazebo/gui/GuiSystem.hh | 9 +- .../ignition/gazebo/rendering/RenderUtil.hh | 4 +- .../ignition/gazebo/rendering/SceneManager.hh | 6 +- src/gui/plugins/align_tool/AlignTool.hh | 2 +- src/gui/plugins/modules/EntityContextMenu.hh | 1 - .../resource_spawner/ResourceSpawner.hh | 4 +- src/gui/plugins/scene3d/Scene3D.hh | 14 +-- .../battery_plugin/LinearBatteryPlugin.hh | 28 +++--- src/systems/breadcrumbs/Breadcrumbs.hh | 50 +++++----- src/systems/buoyancy/Buoyancy.hh | 2 +- .../CameraVideoRecorder.hh | 9 +- .../detachable_joint/DetachableJoint.hh | 10 +- .../log_video_recorder/LogVideoRecorder.hh | 16 ++-- .../LogicalAudioSensorPlugin.hh | 76 ++++++++------- .../MulticopterVelocityControl.hh | 4 +- .../performer_detector/PerformerDetector.hh | 4 +- src/systems/physics/EntityFeatureMap.hh | 4 +- src/systems/touch_plugin/TouchPlugin.hh | 25 ++--- .../triggered_publisher/TriggeredPublisher.hh | 15 +-- src/systems/wind_effects/WindEffects.hh | 20 ++-- tutorials/distributed_simulation.md | 3 +- 33 files changed, 273 insertions(+), 226 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5047ec19a1..9de8c4920b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -178,6 +178,7 @@ if (NOT APPLE) API_MAINPAGE_MD "${CMAKE_BINARY_DIR}/api.md" TUTORIALS_MAINPAGE_MD "${CMAKE_BINARY_DIR}/tutorials.md" ADDITIONAL_INPUT_DIRS "${CMAKE_SOURCE_DIR}/src/systems ${CMAKE_SOURCE_DIR}/src/gui/plugins" + IMAGE_PATH_DIRS "${CMAKE_SOURCE_DIR}/tutorials/files" TAGFILES "${IGNITION-MATH_DOXYGEN_TAGFILE} = ${IGNITION-MATH_API_URL}" "${IGNITION-MSGS_DOXYGEN_TAGFILE} = ${IGNITION-MSGS_API_URL}" diff --git a/include/ignition/gazebo/Conversions.hh b/include/ignition/gazebo/Conversions.hh index 27dda6b76d..13f079bff9 100644 --- a/include/ignition/gazebo/Conversions.hh +++ b/include/ignition/gazebo/Conversions.hh @@ -88,8 +88,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::Geometry &/*_in*/) + Out convert(const sdf::Geometry &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -105,8 +106,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Pose &/*_in*/) + Out convert(const msgs::Pose &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -121,8 +123,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Geometry &/*_in*/) + Out convert(const msgs::Geometry &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -138,8 +141,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::Material &/*_in*/) + Out convert(const sdf::Material &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -155,8 +159,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Material &/*_in*/) + Out convert(const msgs::Material &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -172,8 +177,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::Actor &/*_in*/) + Out convert(const sdf::Actor &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -189,8 +195,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Actor& /*_in*/) + Out convert(const msgs::Actor& _in) { + (void)_in; Out::ConversionNotImplemented; } @@ -206,8 +213,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::Light &/*_in*/) + Out convert(const sdf::Light &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -224,8 +232,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Light& /*_in*/) + Out convert(const msgs::Light& _in) { + (void)_in; Out::ConversionNotImplemented; } @@ -241,8 +250,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::Gui &/*_in*/) + Out convert(const sdf::Gui &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -257,8 +267,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const std::chrono::steady_clock::duration &/*_in*/) + Out convert(const std::chrono::steady_clock::duration &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -274,8 +285,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Time &/*_in*/) + Out convert(const msgs::Time &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -291,8 +303,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const math::Inertiald &/*_in*/) + Out convert(const math::Inertiald &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -308,8 +321,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Inertial &/*_in*/) + Out convert(const msgs::Inertial &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -325,8 +339,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::JointAxis &/*_in*/) + Out convert(const sdf::JointAxis &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -342,8 +357,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Axis &/*_in*/) + Out convert(const msgs::Axis &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -359,8 +375,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::Scene &/*_in*/) + Out convert(const sdf::Scene &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -375,8 +392,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Scene &/*_in*/) + Out convert(const msgs::Scene &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -392,8 +410,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::Atmosphere &/*_in*/) + Out convert(const sdf::Atmosphere &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -409,8 +428,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Atmosphere &/*_in*/) + Out convert(const msgs::Atmosphere &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -427,8 +447,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::Physics &/*_in*/) + Out convert(const sdf::Physics &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -444,8 +465,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Physics &/*_in*/) + Out convert(const msgs::Physics &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -462,8 +484,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::Sensor &/*_in*/) + Out convert(const sdf::Sensor &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -479,8 +502,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Sensor &/*_in*/) + Out convert(const msgs::Sensor &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -496,8 +520,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::SensorNoise &/*_in*/) + Out convert(const msgs::SensorNoise &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -514,8 +539,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::WorldStatistics &/*_in*/) + Out convert(const msgs::WorldStatistics &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -531,8 +557,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const UpdateInfo &/*_in*/) + Out convert(const UpdateInfo &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -548,8 +575,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const sdf::Collision &/*_in*/) + Out convert(const sdf::Collision &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -565,8 +593,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::Collision &/*_in*/) + Out convert(const msgs::Collision &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -582,8 +611,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const std::string &/*_in*/) + Out convert(const std::string &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -598,8 +628,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const math::AxisAlignedBox &/*_in*/) + Out convert(const math::AxisAlignedBox &_in) { + (void)_in; Out::ConversionNotImplemented; } @@ -616,8 +647,9 @@ namespace ignition /// \return Conversion result. /// \tparam Out Output type. template - Out convert(const msgs::AxisAlignedBox &/*_in*/) + Out convert(const msgs::AxisAlignedBox &_in) { + (void)_in; Out::ConversionNotImplemented; } diff --git a/include/ignition/gazebo/EntityComponentManager.hh b/include/ignition/gazebo/EntityComponentManager.hh index 7e9c77b00c..dc5ed1dce8 100644 --- a/include/ignition/gazebo/EntityComponentManager.hh +++ b/include/ignition/gazebo/EntityComponentManager.hh @@ -81,7 +81,7 @@ namespace ignition /// into a queue. The queue is processed toward the end of a simulation /// update step. /// - /// \detail It is recommended that systems don't call this function + /// \details It is recommended that systems don't call this function /// directly, and instead use the `gazebo::SdfEntityCreator` class to /// remove entities. /// @@ -102,7 +102,7 @@ namespace ignition public: bool HasEntity(const Entity _entity) const; /// \brief Get the first parent of the given entity. - /// \detail Entities are not expected to have multiple parents. + /// \details Entities are not expected to have multiple parents. /// TODO(louise) Either prevent multiple parents or provide full support /// for multiple parents. /// \param[in] _entity Entity. @@ -111,11 +111,13 @@ namespace ignition /// \brief Set the parent of an entity. /// - /// \detail It is recommended that systems don't call this function + /// \details It is recommended that systems don't call this function /// directly, and instead use the `gazebo::SdfEntityCreator` class to /// create entities that have the correct parent-child relationship. /// - /// \param[in] _entity Entity or kNullEntity to remove current parent. + /// \param[in] _child Entity to set the parent + /// \param[in] _parent Entity which should be an immediate parent _child + /// entity. /// \return True if successful. Will fail if entities don't exist. public: bool SetParentEntity(const Entity _child, const Entity _parent); @@ -278,7 +280,7 @@ namespace ignition /// auto entity = EntityByComponents(components::Name("name"), /// components::Model()); /// - /// \detail Component type must have inequality operator. + /// \details Component type must have inequality operator. /// /// \param[in] _desiredComponents All the components which must match. /// \return Entity or kNullEntity if no entity has the exact components. @@ -293,7 +295,7 @@ namespace ignition /// auto entities = EntitiesByComponents(components::Name("camera"), /// components::Sensor()); /// - /// \detail Component type must have inequality operator. + /// \details Component type must have inequality operator. /// /// \param[in] _desiredComponents All the components which must match. /// \return All matching entities, or an empty vector if no child entity @@ -310,7 +312,7 @@ namespace ignition /// /// auto entity = ChildrenByComponents(parent, 123, std::string("name")); /// - /// \detail Component type must have inequality operator. + /// \details Component type must have inequality operator. /// /// \param[in] _parent Entity which should be an immediate parent of the /// returned entity. @@ -465,7 +467,7 @@ namespace ignition /// \brief Get a message with the serialized state of the given entities /// and components. - /// \detail The header of the message will not be populated, it is the + /// \details The header of the message will not be populated, it is the /// responsibility of the caller to timestamp it before use. /// \param[in] _entities Entities to be serialized. Leave empty to get /// all entities. @@ -487,7 +489,7 @@ namespace ignition /// * Entities which had a component removed /// * Entities which had a component modified /// - /// \detail The header of the message will not be populated, it is the + /// \details The header of the message will not be populated, it is the /// responsibility of the caller to timestamp it before use. public: msgs::SerializedState ChangedState() const; @@ -515,15 +517,16 @@ namespace ignition /// one will be created. /// Entities / components that are marked as removed will be removed, but /// they won't be removed if they're not present in the state. - /// \detail The header of the message will not be handled, it is the + /// \details The header of the message will not be handled, it is the /// responsibility of the caller to use the timestamp. /// \param[in] _stateMsg Message containing state to be set. public: void SetState(const msgs::SerializedState &_stateMsg); /// \brief Get a message with the serialized state of the given entities /// and components. - /// \detail The header of the message will not be populated, it is the + /// \details The header of the message will not be populated, it is the /// responsibility of the caller to timestamp it before use. + /// \param[in] _state serialized state /// \param[in] _entities Entities to be serialized. Leave empty to get /// all entities. /// \param[in] _types Type ID of components to be serialized. Leave empty @@ -549,7 +552,7 @@ namespace ignition /// * Entities which had a component modified /// /// \param[in] _state New serialized state. - /// \detail The header of the message will not be populated, it is the + /// \details The header of the message will not be populated, it is the /// responsibility of the caller to timestamp it before use. public: void ChangedState(msgs::SerializedStateMap &_state) const; @@ -558,7 +561,7 @@ namespace ignition /// one will be created. /// Entities / components that are marked as removed will be removed, but /// they won't be removed if they're not present in the state. - /// \detail The header of the message will not be handled, it is the + /// \details The header of the message will not be handled, it is the /// responsibility of the caller to use the timestamp. /// \param[in] _stateMsg Message containing state to be set. public: void SetState(const msgs::SerializedStateMap &_stateMsg); diff --git a/include/ignition/gazebo/Events.hh b/include/ignition/gazebo/Events.hh index 92c04c6e5e..672c264c03 100644 --- a/include/ignition/gazebo/Events.hh +++ b/include/ignition/gazebo/Events.hh @@ -55,7 +55,7 @@ namespace ignition /// \brief Event used to load plugins for an entity into simulation. /// Pass in the entity which will own the plugins, and an SDF element for - /// the entity, which may contain multiple tags. + /// the entity, which may contain multiple `` tags. using LoadPlugins = common::EventT; } diff --git a/include/ignition/gazebo/Server.hh b/include/ignition/gazebo/Server.hh index fb2e7a17ef..f67bf6ff1c 100644 --- a/include/ignition/gazebo/Server.hh +++ b/include/ignition/gazebo/Server.hh @@ -75,34 +75,34 @@ namespace ignition /// ## Services /// /// The following are services provided by the Server. - /// The in the service list is the name of the + /// The `` in the service list is the name of the /// simulated world. /// /// List syntax: *service_name(request_msg_type) : response_msg_type* /// - /// 1. /world//scene/info(none) : ignition::msgs::Scene + /// 1. `/world//scene/info(none)` : ignition::msgs::Scene /// + Returns the current scene information. /// - /// 2. /gazebo/resource_paths/get : ignition::msgs::StringMsg_V + /// 2. `/gazebo/resource_paths/get` : ignition::msgs::StringMsg_V /// + Get list of resource paths. /// - /// 3. /gazebo/resource_paths/add : ignition::msgs::Empty + /// 3. `/gazebo/resource_paths/add` : ignition::msgs::Empty /// + Add new resource paths. /// /// ## Topics /// /// The following are topics provided by the Server. - /// The in the service list is the name of the + /// The `` in the service list is the name of the /// simulated world. /// /// List syntax: *topic_name : published_msg_type* /// - /// 1. /world//clock : ignition::msgs::Clock + /// 1. `/world//clock` : ignition::msgs::Clock /// - /// 2. /world//stats : ignition::msgs::WorldStatistics + /// 2. `/world//stats` : ignition::msgs::WorldStatistics /// + This topic is throttled to 5Hz. /// - /// 3. /gazebo/resource_paths : ignition::msgs::StringMsg_V + /// 3. `/gazebo/resource_paths` : ignition::msgs::StringMsg_V /// + Updated list of resource paths. /// class IGNITION_GAZEBO_VISIBLE Server diff --git a/include/ignition/gazebo/ServerConfig.hh b/include/ignition/gazebo/ServerConfig.hh index dc0265d19c..d9b94c039e 100644 --- a/include/ignition/gazebo/ServerConfig.hh +++ b/include/ignition/gazebo/ServerConfig.hh @@ -45,7 +45,7 @@ namespace ignition class PluginInfoPrivate; /// \brief Information about a plugin that should be loaded by the /// server. - /// \detail Currently supports attaching a plugin to an entity given its + /// \details Currently supports attaching a plugin to an entity given its /// type and name, but it can't tell apart multiple entities with the same /// name in different parts of the entity tree. /// \sa const std::list &Plugins() const @@ -114,7 +114,7 @@ namespace ignition /// \brief Set the type of the entity which should receive this /// plugin. The type is used in conjuction with EntityName to /// uniquely identify an entity. - /// \param[in] _entityType Entity type string. + /// \param[in] _filename Entity type string. public: void SetFilename(const std::string &_filename); /// \brief Name of the interface within the plugin library @@ -166,7 +166,7 @@ namespace ignition /// /// Setting the SDF string will override any value set by `SetSdfFile`. /// - /// \param[in] _file Full path to an SDF file. + /// \param[in] _sdfString Full path to an SDF file. /// \return (reserved for future use) public: bool SetSdfString(const std::string &_sdfString); @@ -246,14 +246,14 @@ namespace ignition /// \brief Get whether to ignore the path specified in SDF. /// \return Whether to ignore the path specified in SDF - /// \TODO(anyone) Deprecate on Dome, SDF path will always be ignored. + /// TODO(anyone) Deprecate on Dome, SDF path will always be ignored. public: bool LogIgnoreSdfPath() const; /// \brief Set whether to ignore the path specified in SDF. Path in SDF /// should be ignored if a record path is specified on the command line, /// for example. /// \param[in] _ignore Whether to ignore the path specified in SDF - /// \TODO(anyone) Deprecate on Dome, SDF path will always be ignored. + /// TODO(anyone) Deprecate on Dome, SDF path will always be ignored. public: void SetLogIgnoreSdfPath(bool _ignore); /// \brief Add a topic to record. @@ -338,12 +338,12 @@ namespace ignition public: const std::string &RenderEngineGui() const; /// \brief Set the render engine server plugin library. - /// \param[in] _renderEngine File containing render engine library. + /// \param[in] _renderEngineServer File containing render engine library. public: void SetRenderEngineServer( const std::string &_renderEngineServer); /// \brief Set the render engine gui plugin library. - /// \param[in] _renderEngine File containing render engine library. + /// \param[in] _renderEngineGui File containing render engine library. public: void SetRenderEngineGui(const std::string &_renderEngineGui); /// \brief Instruct simulation to attach a plugin to a specific @@ -352,7 +352,7 @@ namespace ignition public: void AddPlugin(const PluginInfo &_info); /// \brief Add multiple plugins to the simulation - /// \param[in] _info List of Information about the plugin to load. + /// \param[in] _plugins List of Information about the plugin to load. public: void AddPlugins(const std::list &_plugins); /// \brief Generate PluginInfo for Log recording based on the diff --git a/include/ignition/gazebo/Util.hh b/include/ignition/gazebo/Util.hh index d362385172..730b9511a3 100644 --- a/include/ignition/gazebo/Util.hh +++ b/include/ignition/gazebo/Util.hh @@ -210,7 +210,7 @@ namespace ignition /// `` const std::string kSdfPathEnv{"SDF_PATH"}; - /// \breif Environment variable holding server config paths. + /// \brief Environment variable holding server config paths. const std::string kServerConfigPathEnv{"IGN_GAZEBO_SERVER_CONFIG_PATH"}; /// \brief Environment variable holding paths to custom rendering engine diff --git a/include/ignition/gazebo/components/Component.hh b/include/ignition/gazebo/components/Component.hh index 727c2b48be..bbee6d34c5 100644 --- a/include/ignition/gazebo/components/Component.hh +++ b/include/ignition/gazebo/components/Component.hh @@ -240,8 +240,10 @@ namespace components /// override this function to support serialization. /// /// \param[in] _out Out stream. - public: virtual void Serialize(std::ostream &/*_out*/) const + public: virtual void Serialize(std::ostream &_out) const { + // This will avoid a doxygen warning + (void)_out; static bool warned{false}; if (!warned) { @@ -257,8 +259,10 @@ namespace components /// override this function to support deserialization. /// /// \param[in] _in In stream. - public: virtual void Deserialize(std::istream &/*_in*/) + public: virtual void Deserialize(std::istream &_in) { + // This will avoid a doxygen warning + (void)_in; static bool warned{false}; if (!warned) { @@ -358,7 +362,6 @@ namespace components /// \param[in] _data New data for this component. /// \param[in] _eql Equality comparison function. This function should /// return true if two instances of DataType are equal. - /// \param[in} _ecm Pointer to the entity component manager. /// \return True if the _eql function returns false. public: bool SetData(const DataType &_data, const std::function< @@ -396,14 +399,14 @@ namespace components /// \param[in] _component Component to compare to /// \return True. public: bool operator==(const Component &) const; + Serializer> &_component) const; /// \brief Components with no data are always equal to another instance of /// the same type. /// \param[in] _component Component to compare to /// \return False. public: bool operator!=(const Component &) const; + Serializer> &_component) const; // Documentation inherited public: ComponentTypeId TypeId() const override; diff --git a/include/ignition/gazebo/components/ContactSensor.hh b/include/ignition/gazebo/components/ContactSensor.hh index 4df9ef12a6..f772101579 100644 --- a/include/ignition/gazebo/components/ContactSensor.hh +++ b/include/ignition/gazebo/components/ContactSensor.hh @@ -31,7 +31,7 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { namespace components { /// \brief TODO(anyone) Substitute with sdf::Contact once that exists? - /// This is currently the whole element. + /// This is currently the whole `` element. using ContactSensor = Component; IGN_GAZEBO_REGISTER_COMPONENT("ign_gazebo_components.ContactSensor", ContactSensor) diff --git a/include/ignition/gazebo/components/Factory.hh b/include/ignition/gazebo/components/Factory.hh index 490d18e813..01ef49694d 100644 --- a/include/ignition/gazebo/components/Factory.hh +++ b/include/ignition/gazebo/components/Factory.hh @@ -171,9 +171,9 @@ namespace components /// \brief Unregister a component so that the factory can't create instances /// of the component or its storage anymore. - /// \detail This function will not reset the `typeId` static variable within - /// the component type itself. Prefer using the templated `Unregister` - /// function when possible. + /// \details This function will not reset the `typeId` static variable + /// within the component type itself. Prefer using the templated + /// `Unregister` function when possible. /// \param[in] _typeId Type of component to unregister. public: void Unregister(ComponentTypeId _typeId) { @@ -310,12 +310,12 @@ namespace components private: std::map storagesById; /// \brief A list of IDs and their equivalent names. - /// \detail Make it non-static on version 2.0. + /// \details Make it non-static on version 2.0. public: inline static std::map namesById; /// \brief Keep track of the runtime names for types and warn the user if /// they try to register different types with the same typeName. - /// \detail Make it non-static on version 2.0. + /// \details Make it non-static on version 2.0. public: inline static std::map runtimeNamesById; }; @@ -324,7 +324,7 @@ namespace components /// /// Use this macro to register components. /// - /// \detail Each time a plugin which uses a component is loaded, it tries to + /// \details Each time a plugin which uses a component is loaded, it tries to /// register the component again, so we prevent that. /// \param[in] _compType Component type name. /// \param[in] _classname Class name for component. diff --git a/include/ignition/gazebo/components/LogicalCamera.hh b/include/ignition/gazebo/components/LogicalCamera.hh index 8c1daab981..7ed6463163 100644 --- a/include/ignition/gazebo/components/LogicalCamera.hh +++ b/include/ignition/gazebo/components/LogicalCamera.hh @@ -31,7 +31,7 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { namespace components { /// \brief TODO(anyone) Substitute with sdf::LogicalCamera once that exists? - /// This is currently the whole element. + /// This is currently the whole `` element. using LogicalCamera = Component; IGN_GAZEBO_REGISTER_COMPONENT("ign_gazebo_components.LogicalCamera", LogicalCamera) diff --git a/include/ignition/gazebo/components/Serialization.hh b/include/ignition/gazebo/components/Serialization.hh index 5fe9999dce..7fd3ee7765 100644 --- a/include/ignition/gazebo/components/Serialization.hh +++ b/include/ignition/gazebo/components/Serialization.hh @@ -148,7 +148,7 @@ namespace serializers /// \brief Deserialization /// \param[in] _in Input stream. - /// \param[in] _vec Message to populate + /// \param[in] _msg Message to populate /// \return The stream. public: static std::istream &Deserialize(std::istream &_in, google::protobuf::Message &_msg) diff --git a/include/ignition/gazebo/gui/GuiSystem.hh b/include/ignition/gazebo/gui/GuiSystem.hh index c031101042..1de32584eb 100644 --- a/include/ignition/gazebo/gui/GuiSystem.hh +++ b/include/ignition/gazebo/gui/GuiSystem.hh @@ -51,8 +51,13 @@ namespace gazebo /// \param[in] _info Current simulation information, such as time. /// \param[in] _ecm Mutable reference to the ECM, so the system can read /// and write entities and their components. - public: virtual void Update(const UpdateInfo &/*_info*/, - EntityComponentManager &/*_ecm*/){} + public: virtual void Update(const UpdateInfo &_info, + EntityComponentManager &_ecm) + { + // This will avoid many doxygen warnings + (void)_info; + (void)_ecm; + } }; } } diff --git a/include/ignition/gazebo/rendering/RenderUtil.hh b/include/ignition/gazebo/rendering/RenderUtil.hh index 6e8e82f98e..90912f4431 100644 --- a/include/ignition/gazebo/rendering/RenderUtil.hh +++ b/include/ignition/gazebo/rendering/RenderUtil.hh @@ -129,7 +129,7 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { /// \brief Set the entity being selected /// \param[in] _node Node representing the selected entity - /// \TODO(anyone) Make const ref when merging forward + /// TODO(anyone) Make const ref when merging forward // NOLINTNEXTLINE public: void SetSelectedEntity(rendering::NodePtr _node); @@ -142,7 +142,7 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { /// \brief Get the entity being selected. This will only return the /// last entity selected. - /// \TODO(anyone) Deprecate in favour of SelectedEntities + /// TODO(anyone) Deprecate in favour of SelectedEntities public: rendering::NodePtr SelectedEntity() const; /// \brief Get the entities currently selected, in order of selection. diff --git a/include/ignition/gazebo/rendering/SceneManager.hh b/include/ignition/gazebo/rendering/SceneManager.hh index 162a307b96..ca2261a481 100644 --- a/include/ignition/gazebo/rendering/SceneManager.hh +++ b/include/ignition/gazebo/rendering/SceneManager.hh @@ -111,7 +111,7 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { /// \brief Create an actor /// \param[in] _id Unique actor id - /// \param[in] _visual Actor sdf dom + /// \param[in] _actor Actor sdf dom /// \param[in] _parentId Parent id /// \return Actor object created from the sdf dom public: rendering::VisualPtr CreateActor(Entity _id, @@ -130,7 +130,7 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { /// the correct parent. /// \param[in] _gazeboId Entity in Gazebo /// \param[in] _sensorName Name of sensor node in Ignition Rendering. - /// \param[in] _parentId Parent Id on Gazebo. + /// \param[in] _parentGazeboId Parent Id on Gazebo. /// \return True if sensor is successfully handled public: bool AddSensor(Entity _gazeboId, const std::string &_sensorName, Entity _parentGazeboId = 0); @@ -188,7 +188,7 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { /// Usually, this will be a model or a light. /// \param[in] _visual Child visual /// \return Top level visual containining this visual - /// \TODO(anyone) Make it const ref when merging forward + /// TODO(anyone) Make it const ref when merging forward public: rendering::VisualPtr TopLevelVisual( // NOLINTNEXTLINE rendering::VisualPtr _visual) const; diff --git a/src/gui/plugins/align_tool/AlignTool.hh b/src/gui/plugins/align_tool/AlignTool.hh index 41a0d4d726..f72a8ff5a8 100644 --- a/src/gui/plugins/align_tool/AlignTool.hh +++ b/src/gui/plugins/align_tool/AlignTool.hh @@ -123,7 +123,7 @@ namespace gazebo /// \brief Returns the top level node of the passed in node within /// a given scene /// \param[in] _scene The scene to check - /// \param[in] _visual The node to get the top level node for + /// \param[in] _node The node to get the top level node for public: rendering::NodePtr TopLevelNode(rendering::ScenePtr &_scene, rendering::NodePtr &_node) const; diff --git a/src/gui/plugins/modules/EntityContextMenu.hh b/src/gui/plugins/modules/EntityContextMenu.hh index 0dd8f567b6..80de797028 100644 --- a/src/gui/plugins/modules/EntityContextMenu.hh +++ b/src/gui/plugins/modules/EntityContextMenu.hh @@ -54,7 +54,6 @@ namespace gazebo public: ~EntityContextMenu() override; /// \brief Callback when a context menu item is invoked - /// \param[in] _request Request type /// \param[in] _data Request data /// \param[in] _type Entity type public: Q_INVOKABLE void OnRemove( diff --git a/src/gui/plugins/resource_spawner/ResourceSpawner.hh b/src/gui/plugins/resource_spawner/ResourceSpawner.hh index d95e5727cb..377ad95ec5 100644 --- a/src/gui/plugins/resource_spawner/ResourceSpawner.hh +++ b/src/gui/plugins/resource_spawner/ResourceSpawner.hh @@ -212,6 +212,8 @@ namespace gazebo /// \brief Callback when a request is made to download a fuel resource. /// \param[in] _path URI to the fuel resource + /// \param[in] _name Name of the resource + /// \param[in] _owner The name of the owner /// \param[in] index The index of the grid pane to update public slots: void OnDownloadFuelResource(const QString &_path, const QString &_name, const QString &_owner, int index); @@ -231,7 +233,7 @@ namespace gazebo /// sets the model's thumbnail path attribute to it, no action is /// taken if no thumbnail is found. /// \param[in] _thumbnailPath The path to search for a thumbnail - /// \param[in] _model The model to update with the thumbnail information + /// \param[in] _resource The model to update with the thumbnail information public: void SetThumbnail(const std::string &_thumbnailPath, Resource &_resource); diff --git a/src/gui/plugins/scene3d/Scene3D.hh b/src/gui/plugins/scene3d/Scene3D.hh index 89a5dbef26..1f743a4323 100644 --- a/src/gui/plugins/scene3d/Scene3D.hh +++ b/src/gui/plugins/scene3d/Scene3D.hh @@ -243,11 +243,11 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { const std::string &_savePath); /// \brief Set whether to record video using sim time as timestamp - /// \param[in] _true True record video using sim time + /// \param[in] _useSimTime True record video using sim time public: void SetRecordVideoUseSimTime(bool _useSimTime); /// \brief Set whether to record video in lockstep mode - /// \param[in] _true True to record video in lockstep mode + /// \param[in] _lockstep True to record video in lockstep mode public: void SetRecordVideoLockstep(bool _lockstep); /// \brief Set video recorder bitrate in bps @@ -286,7 +286,7 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { /// \brief True to set the camera to follow the target in world frame, /// false to follow in target's local frame - /// \param[in] _gain Camera follow p gain. + /// \param[in] _worldFrame True to use the world frame. public: void SetFollowWorldFrame(bool _worldFrame); /// \brief Set the camera follow offset position @@ -426,7 +426,7 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { /// \brief Retrieve the point on a plane at z = 0 in the 3D scene hit by a /// ray cast from the given 2D screen coordinates. - /// \param[in] _screenPod 2D coordinates on the screen, in pixels. + /// \param[in] _screenPos 2D coordinates on the screen, in pixels. /// \return 3D coordinates of a point in the 3D scene. public: math::Vector3d ScreenToPlane(const math::Vector2i &_screenPos) const; @@ -582,11 +582,11 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { const std::string &_savePath); /// \brief Set whether to record video using sim time as timestamp - /// \param[in] _true True record video using sim time + /// \param[in] _useSimTime True record video using sim time public: void SetRecordVideoUseSimTime(bool _useSimTime); /// \brief Set whether to record video in lockstep mode - /// \param[in] _true True to record video in lockstep mode + /// \param[in] _lockstep True to record video in lockstep mode public: void SetRecordVideoLockstep(bool _lockstep); /// \brief Set video recorder bitrate in bps @@ -625,7 +625,7 @@ inline namespace IGNITION_GAZEBO_VERSION_NAMESPACE { /// \brief True to set the camera to follow the target in world frame, /// false to follow in target's local frame - /// \param[in] _gain Camera follow p gain. + /// \param[in] _worldFrame True to use the world frame. public: void SetFollowWorldFrame(bool _worldFrame); /// \brief Set the camera follow offset position diff --git a/src/systems/battery_plugin/LinearBatteryPlugin.hh b/src/systems/battery_plugin/LinearBatteryPlugin.hh index 9e0f243e37..75149eef0f 100644 --- a/src/systems/battery_plugin/LinearBatteryPlugin.hh +++ b/src/systems/battery_plugin/LinearBatteryPlugin.hh @@ -40,23 +40,23 @@ namespace systems /// \brief A plugin for simulating battery usage /// /// This system processes the following sdf parameters: - /// name of the battery (required) - /// Initial voltage of the battery (required) - /// Voltage at full charge - /// Amount of voltage decrease when no + /// - `` name of the battery (required) + /// - `` Initial voltage of the battery (required) + /// - `` Voltage at full charge + /// - `` Amount of voltage decrease when no /// charge - /// Initial charge of the battery (Ah) - /// Total charge that the battery can hold (Ah) - /// Internal resistance (Ohm) - /// coefficient for smoothing current [0, 1]. - /// power load on battery (required) (Watts) - /// If true, the battery can be recharged - /// If true, the start/stop signals for recharging the + /// - `` Initial charge of the battery (Ah) + /// - `` Total charge that the battery can hold (Ah) + /// - `` Internal resistance (Ohm) + /// - `` coefficient for smoothing current [0, 1]. + /// - `` power load on battery (required) (Watts) + /// - `` If true, the battery can be recharged + /// - `` If true, the start/stop signals for recharging the /// battery will also be available via topics. The /// regular Ignition services will still be available. - /// Hours taken to fully charge the battery. - /// (Required if is set to true) - /// True to change the battery behavior to fix some issues + /// - `` Hours taken to fully charge the battery. + /// (Required if `` is set to true) + /// - `` True to change the battery behavior to fix some issues /// described in https://github.com/ignitionrobotics/ign-gazebo/issues/225. class LinearBatteryPlugin : public System, diff --git a/src/systems/breadcrumbs/Breadcrumbs.hh b/src/systems/breadcrumbs/Breadcrumbs.hh index e57be62402..a0bd9022d6 100644 --- a/src/systems/breadcrumbs/Breadcrumbs.hh +++ b/src/systems/breadcrumbs/Breadcrumbs.hh @@ -46,39 +46,40 @@ namespace systems /// get deployed/spawned at the location of the model to which this system is /// attached. Each breadcrumb is a complete sdf::Model. When deployed, the /// pose of the breadcrumb model is offset from the containing model by the - /// pose specified in the element of the breadcrumb model. A name is + /// pose specified in the `` element of the breadcrumb model. A name is /// generated for the breadcrumb by appending the current count of deployments - /// to the name specified in the breadcrumb element. The model - /// specified in the parameter serves as a template for deploying - /// multiple breadcrumbs of the same type. Including models from Fuel is - /// accomplished by creating a that includes the Fuel model using the - /// tag. See the example in examples/worlds/breadcrumbs.sdf. + /// to the name specified in the breadcrumb `` element. The model + /// specified in the `` parameter serves as a template for + /// deploying multiple breadcrumbs of the same type. Including models from + /// Fuel is accomplished by creating a `` that includes the Fuel + /// model using the `` tag. + /// See the example in examples/worlds/breadcrumbs.sdf. /// /// System Paramters /// - /// ``: Custom topic to be used to deploy breadcrumbs. If topic is not - /// set, the default topic with the following pattern would be used - /// "/model//breadcrumbs//deploy". The topic type - /// is ignition.msgs.Empty - /// ``: The maximum number of times this breadcrumb can be - /// deployed. Once this many are deployed, publishing on the deploy topic will - /// have no effect. If a negative number is set, the maximum deployment will - /// be unbounded. If a value of zero is used, then the breadcrumb system will - /// be disabled. A zero value is useful for situations where SDF files are - /// programmatically created. The remaining deployment count is available on - /// the `/remaining` topic. - /// ``: The time in which the breadcrumb entity's + /// - ``: Custom topic to be used to deploy breadcrumbs. If topic is + /// not set, the default topic with the following pattern would be used + /// `/model//breadcrumbs//deploy`. The topic + /// type is ignition.msgs.Empty + /// - ``: The maximum number of times this breadcrumb can be + /// deployed. Once this many are deployed, publishing on the deploy topic + /// will have no effect. If a negative number is set, the maximum deployment + /// will be unbounded. If a value of zero is used, then the breadcrumb system + /// will be disabled. A zero value is useful for situations where SDF files + /// are programmatically created. The remaining deployment count is available + /// on the `/remaining` topic. + /// - ``: The time in which the breadcrumb entity's /// dynamics remain enabled. After his specified time, the breadcrumb will /// be made static. If this value is <= 0 or the param is not specified, the /// breadcrumb model's dynamics will not be modified. - /// ``: Geometry that represents the bounding volume of + /// - ``: Geometry that represents the bounding volume of /// the performer. Only `` is supported currently. When this /// parameter is present, the deployed models will be performers. - /// ``: If true, the deployed model will be renamed if another - /// model with the same name already exists in the world. If false and there - /// is another model with the same name, the breadcrumb will not be deployed. - /// Defaults to false. - /// ``: This is the model used as a template for deploying + /// - ``: If true, the deployed model will be renamed if + /// another model with the same name already exists in the world. If false + /// and there is another model with the same name, the breadcrumb will not + /// be deployed. Defaults to false. + /// - ``: This is the model used as a template for deploying /// breadcrumbs. class Breadcrumbs : public System, @@ -171,4 +172,3 @@ namespace systems } #endif - diff --git a/src/systems/buoyancy/Buoyancy.hh b/src/systems/buoyancy/Buoyancy.hh index 7d9f1a4ae5..55d040cdb8 100644 --- a/src/systems/buoyancy/Buoyancy.hh +++ b/src/systems/buoyancy/Buoyancy.hh @@ -45,7 +45,7 @@ namespace systems /// /// ## System Parameters /// - /// * sets the density of the fluid that surrounds + /// * `` sets the density of the fluid that surrounds /// the buoyant object. /// /// ## Example diff --git a/src/systems/camera_video_recorder/CameraVideoRecorder.hh b/src/systems/camera_video_recorder/CameraVideoRecorder.hh index a7204e5a80..90c4dfdb06 100644 --- a/src/systems/camera_video_recorder/CameraVideoRecorder.hh +++ b/src/systems/camera_video_recorder/CameraVideoRecorder.hh @@ -36,10 +36,10 @@ namespace systems **/ /// \brief Record video from a camera sensor /// The system takes in the following parameter: - /// Name of topic for the video recorder service. If this is - /// not specified, the topic defaults to: - /// /world//link// - /// sensor//record_video + /// - `` Name of topic for the video recorder service. If this is + /// not specified, the topic defaults to:
+ /// `/world//link//` + /// `sensor//record_video` class CameraVideoRecorder: public System, public ISystemConfigure, @@ -69,4 +69,3 @@ namespace systems } } #endif - diff --git a/src/systems/detachable_joint/DetachableJoint.hh b/src/systems/detachable_joint/DetachableJoint.hh index 5a1089321a..f52dc9d24a 100644 --- a/src/systems/detachable_joint/DetachableJoint.hh +++ b/src/systems/detachable_joint/DetachableJoint.hh @@ -40,17 +40,17 @@ namespace systems /// /// Parameters: /// - /// : Name of the link in the parent model to be used in + /// - ``: Name of the link in the parent model to be used in /// creating a fixed joint with a link in the child model. /// - /// : Name of the model to which this model will be connected + /// - ``: Name of the model to which this model will be connected /// - /// : Name of the link in the child model to be used in + /// - ``: Name of the link in the child model to be used in /// creating a fixed joint with a link in the parent model. /// - /// (optional): Topic name to be used for detaching connections + /// - `` (optional): Topic name to be used for detaching connections /// - /// (optional): If true, the system + /// - `` (optional): If true, the system /// will not print a warning message if a child model does not exist yet. /// Otherwise, a warning message is printed. Defaults to false. diff --git a/src/systems/log_video_recorder/LogVideoRecorder.hh b/src/systems/log_video_recorder/LogVideoRecorder.hh index 7c2a87fc5e..29d61208d7 100644 --- a/src/systems/log_video_recorder/LogVideoRecorder.hh +++ b/src/systems/log_video_recorder/LogVideoRecorder.hh @@ -39,13 +39,14 @@ namespace systems /// There are two ways to specify what entities in the log playback to follow /// and record videos for: 1) by entity name and 2) by region. See the /// following parameters: - /// Name of entity to record. - /// Axis-aligned box where entities are at start of log - /// Min corner position of box region. - /// Max corner position of box region. - /// Sim time when recording should start - /// Sim time when recording should end - /// Exit ign-gazebo when log playback recording ends + /// - `` Name of entity to record. + /// - `` Axis-aligned box where entities are at start of log + /// + `` Min corner position of box region. + /// + `` Max corner position of box region. + /// - `` Sim time when recording should start + /// - `` Sim time when recording should end + /// - `` Exit ign-gazebo when log playback recording ends + /// /// When recording is finished. An `end` string will be published to the /// `/log_video_recorder/status` topic and the videos are saved to a /// timestamped directory @@ -78,4 +79,3 @@ namespace systems } } #endif - diff --git a/src/systems/logical_audio_sensor_plugin/LogicalAudioSensorPlugin.hh b/src/systems/logical_audio_sensor_plugin/LogicalAudioSensorPlugin.hh index 6ec0c390ab..3dcaeb67a2 100644 --- a/src/systems/logical_audio_sensor_plugin/LogicalAudioSensorPlugin.hh +++ b/src/systems/logical_audio_sensor_plugin/LogicalAudioSensorPlugin.hh @@ -34,7 +34,7 @@ namespace systems /// \brief A plugin for logical audio detection. /// - /// Each tag can accept multiple sensors (sound sources + /// Each `` tag can accept multiple sensors (sound sources /// and/or microphones). /// After each simulation step, microphones check if audio /// was detected by any sources in the world. @@ -44,90 +44,92 @@ namespace systems /// /// Secifying an audio source via SDF is done as follows: /// - /// A new audio source in the environment, which has the + /// - `` A new audio source in the environment, which has the /// following child elements: - /// * The source ID, which must be unique and an integer >= 0. + /// + `` The source ID, which must be unique and an integer >= 0. /// An ID < 0 results in undefined behavior. /// The ID must be unique within the scope of all other source IDs /// in the plugin's parent element - so, if a source was created in a - /// with an ID of 1, no other sources in the same model can have - /// an ID of 1 (however, sources that belong to other models can have an - /// ID of 1). - /// * The pose, expressed as "x y z roll pitch yaw". + /// `` with an ID of 1, no other sources in the same model can + /// have an ID of 1 (however, sources that belong to other models can + /// have an ID of 1). + /// + `` The pose, expressed as "x y z roll pitch yaw". /// Each pose coordinate must be separated by whitespace. /// The pose is defined relative to the plugin's parent element. - /// So, if the plugin is used inside of a tag, then the - /// source's is relative to the model's pose. - /// If the plugin is used inside of a tag, then the source's - /// is relative to the world (i.e., specifies an + /// So, if the plugin is used inside of a `` tag, then the + /// source's `` is relative to the model's pose. + /// If the plugin is used inside of a `` tag, then the source's + /// `` is relative to the world (i.e., `` specifies an /// absolute pose). /// If no pose is specified, {0, 0, 0, 0, 0, 0} will be used. - /// * The attenuation function. + /// + `` The attenuation function. /// See logical_audio::AttenuationFunction for a list of valid /// attenuation functions, and logical_audio::SetAttenuationFunction /// for how to specify an attenuation function in SDF. - /// * The attenuation shape. + /// + `` The attenuation shape. /// See logical_audio::AttenuationShape for a list of valid /// attenuation shapes, and logical_audio::SetAttenuationShape for how /// to specify an attenuation shape in SDF. - /// * The inner radius of the attenuation shape. + /// + `` The inner radius of the attenuation shape. /// This value must be >= 0.0. The volume of the source will be - /// at locations that have a distance <= inner + /// `` at locations that have a distance <= inner /// radius from the source. - /// * The falloff distance. This value must be greater - /// than the value of the source's . This defines the - /// distance from the audio source where the volume becomes 0. - /// * The volume level emitted from the source. This must + /// + `` The falloff distance. This value must be + /// greater than the value of the source's ``. This + /// defines the distance from the audio source where the volume + /// becomes 0. + /// + `` The volume level emitted from the source. This must /// be a value between 0.0 and 1.0 (representing 0% to 100%). - /// * Whether the source should play immediately or not. + /// + `` Whether the source should play immediately or not. /// Use true to initiate audio immediately, and false otherwise. - /// * The duration (in seconds) audio is played from the + /// + `` The duration (in seconds) audio is played from the /// source. This value must be an integer >= 0. /// A value of 0 means that the source will play for an infinite amount /// of time. /// /// Specifying a microphone via SDF is done as follows: /// - /// A new microphone in the environment, + /// - `` A new microphone in the environment, /// which has the following child elements: - /// * The microphone ID, which must be unique and an integer >= 0. + /// + `` The microphone ID, which must be unique and an integer >= 0. /// An ID < 0 results in undefined behavior. /// The ID must be unique within the scope of all other microphone IDs /// in the plugin's parent element - so, if a microphone was created in - /// a with an ID of 1, no other microphones in the same model + /// a `` with an ID of 1, no other microphones in the same model /// can have an ID of 1 (however, microphones that belong to other /// models can have an ID of 1). - /// * The pose, expressed as "x y z roll pitch yaw". + /// + `` The pose, expressed as "x y z roll pitch yaw". /// Each pose coordinate must be separated by whitespace. /// The pose is defined relative to the plugin's parent element. - /// So, if the plugin is used inside of a tag, then the - /// source's is relative to the model's pose. - /// If the plugin is used inside of a tag, then the source's - /// is relative to the world (i.e., specifies an + /// So, if the plugin is used inside of a `` tag, then the + /// source's ``is relative to the model's pose. + /// If the plugin is used inside of a `` tag, then the source's + /// `` is relative to the world (i.e., `` specifies an /// absolute pose). /// If no pose is specified, {0, 0, 0, 0, 0, 0} will be used. - /// * The minimum volume level the microphone + /// + `` The minimum volume level the microphone /// can detect. This must be a value between 0.0 and 1.0 /// (representing 0% to 100%). /// If no volume threshold is specified, 0.0 will be used. /// /// Sources can be started and stopped via Ignition service calls. /// If a source is successfully created, the following services will be - /// created for the source ( is the scoped name for the source - see - /// ignition::gazebo::scopedName for more details - and is the value - /// specified in the source's tag from the SDF): - /// * /source_/play + /// created for the source (`` is the scoped name for the source - see + /// ignition::gazebo::scopedName for more details - and `` is the value + /// specified in the source's `` tag from the SDF): + /// * `/source_/play` /// * Starts playing the source with the specified ID. /// If the source is already playing, nothing happens. - /// * /source_/stop + /// * `/source_/stop` /// * Stops playing the source with the specified ID. /// If the source is already stopped, nothing happens. /// /// Microphone detection information can be retrieved via Ignition topics. /// Whenever a microphone detects a source, it publishes a message to the - /// /mic_/detection topic, where is the scoped name + /// `/mic_/detection` topic, where `` is the scoped name /// for the microphone - see ignition::gazebo::scopedName for more details - - /// and is the value specified in the microphone's tag from the SDF. + /// and `` is the value specified in the microphone's `` tag from the + /// SDF. class LogicalAudioSensorPlugin : public System, public ISystemConfigure, diff --git a/src/systems/multicopter_control/MulticopterVelocityControl.hh b/src/systems/multicopter_control/MulticopterVelocityControl.hh index 72b73015f1..0fe9d7ece6 100644 --- a/src/systems/multicopter_control/MulticopterVelocityControl.hh +++ b/src/systems/multicopter_control/MulticopterVelocityControl.hh @@ -126,11 +126,11 @@ namespace systems /// value of 0 implies noise is NOT applied to the component. The default /// value is (0, 0, 0). /// - /// rotorConfiguration: This contains a list of elements for each + /// rotorConfiguration: This contains a list of `` elements for each /// rotor in the vehicle. This is a required parameter. /// /// rotor: Contains information about a rotor in the vehicle. All the - /// elements of are required parameters. + /// elements of `` are required parameters. /// /// jointName: The name of the joint associated with this rotor. /// diff --git a/src/systems/performer_detector/PerformerDetector.hh b/src/systems/performer_detector/PerformerDetector.hh index ebb0bb8f4c..151ad9727e 100644 --- a/src/systems/performer_detector/PerformerDetector.hh +++ b/src/systems/performer_detector/PerformerDetector.hh @@ -53,8 +53,8 @@ namespace systems /// a value set to "1" if the performer is entering the detector's region and /// "0" if the performer is leaving the region. /// - /// The PerformerDetector has to be attached to a and it's region is - /// centered on the containing model's origin. + /// The PerformerDetector has to be attached to a `` and it's region + /// is centered on the containing model's origin. /// /// The system does not assume that levels are enabled, but it does require /// performers to be specified. diff --git a/src/systems/physics/EntityFeatureMap.hh b/src/systems/physics/EntityFeatureMap.hh index f9d8fe52c0..e38375169e 100644 --- a/src/systems/physics/EntityFeatureMap.hh +++ b/src/systems/physics/EntityFeatureMap.hh @@ -141,7 +141,7 @@ namespace systems::physics_system /// to an entity with a different set of features. This overload takes a /// physics entity as input /// \tparam ToFeatureList The list of features of the resulting entity. - /// \param[in] _entity Physics entity with required features. + /// \param[in] _physicsEntity Physics entity with required features. /// \return Physics entity with features in ToFeatureList. nullptr if the /// entity can't be found or the physics engine doesn't support the /// requested feature. @@ -234,7 +234,7 @@ namespace systems::physics_system } /// \brief Remove physics entity from all associated maps - /// \param[in] _entity Gazebo entity. + /// \param[in] _physicsEntity Physics entity. /// \return True if the entity was found and removed. public: bool Remove(const RequiredEntityPtr &_physicsEntity) { diff --git a/src/systems/touch_plugin/TouchPlugin.hh b/src/systems/touch_plugin/TouchPlugin.hh index b74097d751..251fc2e8bf 100644 --- a/src/systems/touch_plugin/TouchPlugin.hh +++ b/src/systems/touch_plugin/TouchPlugin.hh @@ -42,21 +42,22 @@ namespace systems /// /// Parameters: /// - /// Scoped name of the desired collision entity that is checked to - /// see if it's touching this model. This can be a substring of the - /// desired collision name so we match more than one collision. For - /// example, using the name of a model will match all its collisions. + /// - `` Scoped name of the desired collision entity that is checked + /// to see if it's touching this model. This can be a substring + /// of the desired collision name so we match more than one + /// collision. For example, using the name of a model will match + /// all its collisions. /// - ///
diff --git a/examples/worlds/sensors.sdf b/examples/worlds/sensors.sdf index 48af629339..eefd6a8ee8 100644 --- a/examples/worlds/sensors.sdf +++ b/examples/worlds/sensors.sdf @@ -116,6 +116,7 @@ 30 true altimeter + true @@ -136,6 +137,7 @@ 30 true air_pressure + true 123 @@ -152,12 +154,14 @@ 100 true imu + true
1 100 true magnetometer + true diff --git a/examples/worlds/sensors_demo.sdf b/examples/worlds/sensors_demo.sdf index 71a2e973bc..ffc2c2dd19 100644 --- a/examples/worlds/sensors_demo.sdf +++ b/examples/worlds/sensors_demo.sdf @@ -257,10 +257,12 @@ 30 true camera_alone + true 10 depth_camera + true 1.05 @@ -325,6 +327,7 @@ " lidar 10 + true @@ -396,6 +399,7 @@ 30 true rgbd_camera + true From 7b326dcbf1b76576cd543cb59621c130b989bd27 Mon Sep 17 00:00:00 2001 From: Ian Chen Date: Tue, 31 Aug 2021 10:26:42 -0700 Subject: [PATCH 7/8] Remove extra xml version line in pendulum_links example world (#1002) Signed-off-by: Ian Chen --- examples/worlds/pendulum_links.sdf | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/worlds/pendulum_links.sdf b/examples/worlds/pendulum_links.sdf index 2f62bab25c..1927835b7a 100644 --- a/examples/worlds/pendulum_links.sdf +++ b/examples/worlds/pendulum_links.sdf @@ -9,7 +9,6 @@ --> - From 5858ae64bf0061d806d406d137577dec10eb403a Mon Sep 17 00:00:00 2001 From: Ian Chen Date: Wed, 8 Sep 2021 08:49:48 -0700 Subject: [PATCH 8/8] Workaround for setting visual cast shadows without material (#1015) Signed-off-by: Ian Chen --- src/rendering/SceneManager.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/rendering/SceneManager.cc b/src/rendering/SceneManager.cc index 7932c56aee..e791ab8223 100644 --- a/src/rendering/SceneManager.cc +++ b/src/rendering/SceneManager.cc @@ -315,7 +315,14 @@ rendering::VisualPtr SceneManager::CreateVisual(Entity _id, double productAlpha = (1.0-_visual.Transparency()) * (1.0 - submeshMat->Transparency()); submeshMat->SetTransparency(1 - productAlpha); + + // unlike setting transparency above, the parent submesh are not + // notified about the the cast shadows changes. So we need to set + // the material back to the submesh. + // \todo(anyone) find way to propate cast shadows changes tos submesh + // in ign-rendering submeshMat->SetCastShadows(_visual.CastShadows()); + submesh->SetMaterial(submeshMat); } } }