[gazebo] 01/04: Fix merge conflicts

Jose Luis Rivero jrivero-guest at moszumanska.debian.org
Mon Feb 2 16:45:42 UTC 2015


This is an automated email from the git hooks/post-receive script.

jrivero-guest pushed a commit to branch dfsg_clean
in repository gazebo.

commit 963b70ee0cb67d801f8b4246e19530ab72e901a0
Merge: b724815 4b24607
Author: Jose Luis Rivero <jrivero at osrfoundation.org>
Date:   Mon Feb 2 17:22:13 2015 +0100

    Fix merge conflicts

 .hg_archival.txt                                   |    8 +-
 CMakeLists.txt                                     |   96 +-
 Changelog.md                                       |  424 ++++-
 LICENSE                                            |    2 +-
 Migration.md                                       |  207 ++-
 README                                             |   25 +-
 cmake/CodeCoverage.cmake                           |   53 +
 cmake/DefaultCFlags.cmake                          |   46 +-
 cmake/FindFreeimage.cmake                          |    6 +-
 cmake/SearchForStuff.cmake                         |  112 +-
 cmake/gazebo-config.cmake.in                       |   28 +-
 cmake/gazebo_config.h.in                           |   13 +-
 cmake/pkgconfig/gazebo.in                          |    6 +-
 cmake/setup.sh.in                                  |    1 +
 deps/CMakeLists.txt                                |    2 +-
 deps/opende/CMakeLists.txt                         |    2 +-
 deps/opende/include/ode/objects.h                  |   16 +
 deps/opende/include/ode/odecpp.h                   |  160 +-
 deps/opende/src/joints/screw.cpp                   |  121 +-
 deps/opende/src/quickstep.cpp                      |  549 +++---
 deps/opende/src/util.h                             |   18 +-
 doc/CMakeLists.txt                                 |    6 -
 doc/gazebo.in                                      |    9 +-
 doc/gazebo_messages.in                             |    2 +-
 doc/header.html                                    |    6 +-
 doc/mainpage.html                                  |    6 +-
 examples/player/camera/camera.cfg                  |   15 +-
 examples/player/camera/camera.world                |   25 -
 examples/player/camera/readme.txt                  |   18 +-
 examples/player/laser/laser.cfg                    |   13 +-
 examples/player/laser/laser.world                  |   25 -
 examples/player/laser/readme.txt                   |   18 +-
 examples/player/position2d/position2d.cfg          |    2 +-
 examples/player/position2d/position2d.world        |   13 -
 examples/player/position2d/readme.txt              |   18 +-
 examples/player/readme.txt                         |    2 +
 examples/plugins/animate_joints/CMakeLists.txt     |   14 +-
 examples/plugins/animate_joints/animate_joints.cc  |    2 +-
 .../plugins/animate_joints/animate_joints.world    |  113 +-
 examples/plugins/animate_pose/CMakeLists.txt       |    2 +-
 examples/plugins/animate_pose/animate_pose.cc      |    2 +-
 examples/plugins/animate_pose/animate_pose.world   |   62 +-
 examples/plugins/camera/camera_dump.cc             |    2 +-
 examples/plugins/camera/camera_move.cc             |    2 +-
 .../plugins/custom_messages/custom_messages.cc     |    2 +-
 examples/plugins/factory/CMakeLists.txt            |    2 -
 examples/plugins/factory/factory.cc                |    2 +-
 .../gui_overlay_plugin_spawn/CMakeLists.txt        |   31 +
 .../GUIExampleSpawnWidget.cc                       |  112 ++
 .../GUIExampleSpawnWidget.hh                       |   53 +
 .../spawn_widget_example.world                     |   18 +
 .../plugins/gui_overlay_plugin_time/CMakeLists.txt |   31 +
 .../GUIExampleTimeWidget.cc                        |  117 ++
 .../GUIExampleTimeWidget.hh                        |   62 +
 examples/plugins/hello_world/CMakeLists.txt        |    2 +-
 examples/plugins/hello_world/hello_world.cc        |    2 +-
 examples/plugins/mainwindow_example/CMakeLists.txt |   31 +
 .../mainwindow_example/MainWindowExampleWidget.cc  |  131 ++
 .../mainwindow_example/MainWindowExampleWidget.hh  |   67 +
 examples/plugins/model_push/CMakeLists.txt         |    2 +-
 examples/plugins/model_push/model_push.cc          |    4 +-
 examples/plugins/model_visuals/model_visuals.cc    |    2 +-
 examples/plugins/parameters/CMakeLists.txt         |   11 +-
 examples/plugins/parameters/parameters.cc          |    2 +-
 examples/plugins/pr2_pose_test.cc                  |    2 +-
 examples/plugins/presentation.cc                   |    2 +-
 examples/plugins/projector/CMakeLists.txt          |   10 +-
 examples/plugins/projector/projector.cc            |    2 +-
 examples/plugins/ray_test.cc                       |    2 +-
 examples/plugins/system_gui_plugin/CMakeLists.txt  |   19 +-
 examples/plugins/system_gui_plugin/system_gui.cc   |   25 +-
 .../plugins/system_gui_plugin/system_gui.world     |   44 -
 examples/plugins/world_edit/CMakeLists.txt         |    2 +-
 examples/plugins/world_edit/world_edit.cc          |    2 +-
 examples/stand_alone/animated_box/CMakeLists.txt   |   34 +
 examples/stand_alone/animated_box/animated_box.cc  |   84 +
 .../stand_alone/animated_box/animated_box.world    |   37 +
 .../animated_box/independent_listener.cc           |   72 +
 .../stand_alone/animated_box/integrated_main.cc    |   86 +
 examples/stand_alone/arrange/CMakeLists.txt        |   14 +
 .../stand_alone/arrange/arrange_plugin_test.cc     |   56 +
 examples/stand_alone/arrange/arrange_test.world    |   84 +
 .../stand_alone/clone_simulation/CMakeLists.txt    |   17 +
 examples/stand_alone/clone_simulation/README       |   25 +
 examples/stand_alone/clone_simulation/cloner.cc    |  101 ++
 examples/stand_alone/custom_main/CMakeLists.txt    |    3 +
 examples/stand_alone/custom_main/custom_main.cc    |    2 +-
 .../stand_alone/custom_main/custom_main_vector.cc  |   46 +
 examples/stand_alone/listener/listener.cc          |    2 +-
 examples/stand_alone/publisher/publisher.cc        |    2 +-
 gazebo/CMakeLists.txt                              |    4 +-
 gazebo/Master.cc                                   |    2 +-
 gazebo/Master.hh                                   |    2 +-
 gazebo/Server.cc                                   |   92 +-
 gazebo/Server.hh                                   |    2 +-
 gazebo/common/Animation.cc                         |    2 +-
 gazebo/common/Animation.hh                         |    2 +-
 gazebo/common/Animation_TEST.cc                    |    2 +-
 gazebo/common/Assert.cc                            |    2 +-
 gazebo/common/Assert.hh                            |    2 +-
 gazebo/common/AudioDecoder.cc                      |    2 +-
 gazebo/common/AudioDecoder.hh                      |    2 +-
 gazebo/common/AudioDecoder_TEST.cc                 |    7 +-
 gazebo/common/BVHLoader.cc                         |    2 +-
 gazebo/common/BVHLoader.hh                         |    2 +-
 gazebo/common/Base64.cc                            |    2 +-
 gazebo/common/Base64.hh                            |    2 +-
 gazebo/common/CMakeLists.txt                       |   15 +-
 gazebo/common/ColladaExporter.cc                   |  634 +++++++
 gazebo/common/ColladaExporter.hh                   |  112 ++
 gazebo/common/ColladaExporterPrivate.hh            |   58 +
 gazebo/common/ColladaExporter_TEST.cc              |  191 ++
 gazebo/common/ColladaLoader.cc                     |  731 ++++++--
 gazebo/common/ColladaLoader.hh                     |   64 +-
 gazebo/common/ColladaLoaderPrivate.hh              |   99 +
 gazebo/common/ColladaLoader_TEST.cc                |   93 +-
 gazebo/common/Color.cc                             |    2 +-
 gazebo/common/Color.hh                             |    2 +-
 gazebo/common/Color_TEST.cc                        |    2 +-
 gazebo/common/CommonIface.cc                       |    2 +-
 gazebo/common/CommonIface.hh                       |    2 +-
 gazebo/common/CommonIface_TEST.cc                  |    2 +-
 gazebo/common/CommonTypes.hh                       |    4 +-
 gazebo/common/Console.cc                           |   55 +-
 gazebo/common/Console.hh                           |   33 +-
 gazebo/common/Console_TEST.cc                      |    2 +-
 gazebo/common/Dem.cc                               |    2 +-
 gazebo/common/Dem.hh                               |    6 +-
 gazebo/common/DemPrivate.hh                        |    2 +-
 gazebo/common/Dem_TEST.cc                          |    2 +-
 gazebo/common/Event.cc                             |    2 +-
 gazebo/common/Event.hh                             |    2 +-
 gazebo/common/Event_TEST.cc                        |    2 +-
 gazebo/common/Events.cc                            |    3 +-
 gazebo/common/Events.hh                            |   18 +-
 gazebo/common/Exception.cc                         |    5 +-
 gazebo/common/Exception.hh                         |    2 +-
 gazebo/common/Exception_TEST.cc                    |    2 +-
 gazebo/common/GTSMeshUtils.cc                      |  191 ++
 gazebo/common/GTSMeshUtils.hh                      |   51 +
 gazebo/common/HeightmapData.hh                     |    2 +-
 gazebo/common/Image.cc                             |    2 +-
 gazebo/common/Image.hh                             |    2 +-
 gazebo/common/ImageHeightmap.cc                    |    2 +-
 gazebo/common/ImageHeightmap.hh                    |    2 +-
 gazebo/common/ImageHeightmap_TEST.cc               |    2 +-
 gazebo/common/Image_TEST.cc                        |    2 +-
 gazebo/common/KeyEvent.hh                          |   25 +-
 gazebo/common/KeyFrame.cc                          |    2 +-
 gazebo/common/KeyFrame.hh                          |    2 +-
 gazebo/common/Material.cc                          |    2 +-
 gazebo/common/Material.hh                          |    2 +-
 gazebo/common/Material_TEST.cc                     |    2 +-
 gazebo/common/Mesh.cc                              |   14 +-
 gazebo/common/Mesh.hh                              |   11 +-
 gazebo/common/MeshCSG.cc                           |    2 +-
 gazebo/common/MeshCSG.hh                           |    2 +-
 gazebo/common/MeshExporter.cc                      |   30 +
 gazebo/common/MeshExporter.hh                      |   53 +
 gazebo/common/MeshLoader.cc                        |    2 +-
 gazebo/common/MeshLoader.hh                        |    2 +-
 gazebo/common/MeshManager.cc                       |  145 +-
 gazebo/common/MeshManager.hh                       |   29 +-
 gazebo/common/Mesh_TEST.cc                         |    2 +-
 gazebo/common/ModelDatabase.cc                     |   12 +-
 gazebo/common/ModelDatabase.hh                     |    2 +-
 gazebo/common/ModelDatabasePrivate.hh              |    5 +-
 gazebo/common/MouseEvent.hh                        |    2 +-
 gazebo/common/MovingWindowFilter.hh                |    2 +-
 gazebo/common/MovingWindowFilter_TEST.cc           |    2 +-
 gazebo/common/PID.cc                               |    2 +-
 gazebo/common/PID.hh                               |    2 +-
 gazebo/common/Plugin.cc                            |    2 +-
 gazebo/common/Plugin.hh                            |   37 +-
 gazebo/common/STLLoader.cc                         |    2 +-
 gazebo/common/STLLoader.hh                         |    2 +-
 gazebo/common/SingletonT.hh                        |    2 +-
 gazebo/common/Skeleton.cc                          |    2 +-
 gazebo/common/Skeleton.hh                          |    2 +-
 gazebo/common/SkeletonAnimation.cc                 |    2 +-
 gazebo/common/SkeletonAnimation.hh                 |    2 +-
 gazebo/common/SphericalCoordinates.cc              |    2 +-
 gazebo/common/SphericalCoordinates.hh              |    2 +-
 gazebo/common/SphericalCoordinatesPrivate.hh       |    2 +-
 gazebo/common/SphericalCoordinates_TEST.cc         |    2 +-
 gazebo/common/SystemPaths.cc                       |   19 +-
 gazebo/common/SystemPaths.hh                       |   18 +-
 gazebo/common/SystemPaths_TEST.cc                  |    2 +-
 gazebo/common/Time.cc                              |    2 +-
 gazebo/common/Time.hh                              |    2 +-
 gazebo/common/Time_TEST.cc                         |    2 +-
 gazebo/common/Timer.cc                             |   20 +-
 gazebo/common/Timer.hh                             |   14 +-
 gazebo/common/UpdateInfo.hh                        |    2 +-
 gazebo/common/Video.cc                             |    2 +-
 gazebo/common/Video.hh                             |    2 +-
 gazebo/common/ffmpeg_inc.h                         |    2 +-
 gazebo/common/template_TEST.cc                     |    2 +-
 gazebo/gazebo.1.ronn                               |   10 +-
 gazebo/gazebo.cc                                   |  188 +-
 gazebo/gazebo.hh                                   |   74 +-
 gazebo/gazebo_core.hh                              |    2 +-
 gazebo/gazebo_main.cc                              |   28 +-
 gazebo/gui/Actions.cc                              |   25 +-
 gazebo/gui/Actions.hh                              |   14 +-
 gazebo/gui/AlignWidget.cc                          |  170 ++
 gazebo/gui/AlignWidget.hh                          |  102 ++
 gazebo/gui/AlignWidgetPrivate.hh                   |   47 +
 gazebo/gui/BoxMaker.cc                             |    2 +-
 gazebo/gui/BoxMaker.hh                             |    2 +-
 gazebo/gui/BuildingEditor_TEST.cc                  |   85 +
 gazebo/gui/BuildingEditor_TEST.hh                  |   32 +
 gazebo/gui/CMakeLists.txt                          |   43 +-
 gazebo/gui/CloneWindow.cc                          |  112 ++
 gazebo/gui/CloneWindow.hh                          |   78 +
 gazebo/gui/ConfigWidget.cc                         | 1884 ++++++++++++++++++++
 gazebo/gui/ConfigWidget.hh                         |  434 +++++
 gazebo/gui/ConfigWidget_TEST.cc                    |  521 ++++++
 gazebo/gui/ConfigWidget_TEST.hh                    |   41 +
 gazebo/gui/CylinderMaker.cc                        |    2 +-
 gazebo/gui/CylinderMaker.hh                        |    2 +-
 gazebo/gui/DataLogger.cc                           |    2 +-
 gazebo/gui/DataLogger.hh                           |    2 +-
 gazebo/gui/DataLogger_TEST.cc                      |    2 +-
 gazebo/gui/DataLogger_TEST.hh                      |    2 +-
 gazebo/gui/Diagnostics.cc                          |    2 +-
 gazebo/gui/Diagnostics.hh                          |    2 +-
 gazebo/gui/Editor.cc                               |    9 +-
 gazebo/gui/Editor.hh                               |    7 +-
 gazebo/gui/EntityMaker.cc                          |    2 +-
 gazebo/gui/EntityMaker.hh                          |    2 +-
 gazebo/gui/GLWidget.cc                             |  351 +++-
 gazebo/gui/GLWidget.hh                             |   54 +-
 gazebo/gui/GLWidget_TEST.cc                        |   93 +
 gazebo/gui/GLWidget_TEST.hh                        |   32 +
 gazebo/gui/GLWidget_TEST2.cc                       |  128 ++
 gazebo/gui/GLWidget_TEST2.hh                       |   32 +
 gazebo/gui/GuiEvents.cc                            |    7 +-
 gazebo/gui/GuiEvents.hh                            |  114 +-
 gazebo/gui/GuiIface.cc                             |   76 +-
 gazebo/gui/GuiIface.hh                             |   23 +-
 gazebo/gui/GuiIface_TEST.cc                        |   45 +-
 gazebo/gui/GuiIface_TEST.hh                        |    5 +-
 gazebo/gui/GuiPlugin.hh                            |   55 +
 gazebo/gui/GuiTypes.hh                             |    2 +-
 gazebo/gui/IncrementalPlot.cc                      |    2 +-
 gazebo/gui/IncrementalPlot.hh                      |    2 +-
 gazebo/gui/InsertModelWidget.cc                    |  127 +-
 gazebo/gui/InsertModelWidget.hh                    |   23 +-
 gazebo/gui/InsertModelWidgetPrivate.hh             |    6 +-
 gazebo/gui/JointControlWidget.cc                   |   44 +-
 gazebo/gui/JointControlWidget.hh                   |    2 +-
 gazebo/gui/KeyEventHandler.cc                      |   28 +-
 gazebo/gui/KeyEventHandler.hh                      |   23 +-
 gazebo/gui/LightMaker.cc                           |   73 +-
 gazebo/gui/LightMaker.hh                           |   19 +-
 gazebo/gui/MainWindow.cc                           |  497 +++++-
 gazebo/gui/MainWindow.hh                           |   64 +-
 gazebo/gui/MainWindow_TEST.cc                      |  278 ++-
 gazebo/gui/MainWindow_TEST.hh                      |    8 +-
 gazebo/gui/MeshMaker.cc                            |    2 +-
 gazebo/gui/MeshMaker.hh                            |    2 +-
 gazebo/gui/ModelAlign.cc                           |  292 +++
 gazebo/gui/ModelAlign.hh                           |   87 +
 gazebo/gui/ModelAlignPrivate.hh                    |   78 +
 gazebo/gui/ModelAlign_TEST.cc                      |  793 ++++++++
 gazebo/gui/ModelAlign_TEST.hh                      |   59 +
 gazebo/gui/ModelBuilderWidget.cc                   |    2 +-
 gazebo/gui/ModelBuilderWidget.hh                   |    2 +-
 gazebo/gui/ModelEditWidget.cc                      |    2 +-
 gazebo/gui/ModelEditWidget.hh                      |    2 +-
 gazebo/gui/ModelListWidget.cc                      |  263 ++-
 gazebo/gui/ModelListWidget.hh                      |   25 +-
 gazebo/gui/ModelListWidget_TEST.cc                 |   12 +-
 gazebo/gui/ModelListWidget_TEST.hh                 |    2 +-
 gazebo/gui/ModelMaker.cc                           |   56 +-
 gazebo/gui/ModelMaker.hh                           |    8 +-
 gazebo/gui/ModelManipulator.cc                     |   26 +-
 gazebo/gui/ModelManipulator.hh                     |    5 +-
 gazebo/gui/ModelManipulatorPrivate.hh              |    2 +-
 gazebo/gui/ModelRightMenu.cc                       |   10 +-
 gazebo/gui/ModelRightMenu.hh                       |    2 +-
 gazebo/gui/ModelSnap.cc                            |  445 +++++
 gazebo/gui/ModelSnap.hh                            |  109 ++
 gazebo/gui/ModelSnapPrivate.hh                     |  100 ++
 gazebo/gui/ModelSnap_TEST.cc                       |  167 ++
 gazebo/gui/ModelSnap_TEST.hh                       |   32 +
 gazebo/gui/MouseEventHandler.cc                    |    2 +-
 gazebo/gui/MouseEventHandler.hh                    |    2 +-
 gazebo/gui/OculusWindow.cc                         |  202 +++
 gazebo/gui/OculusWindow.hh                         |   99 +
 gazebo/gui/QTestFixture.cc                         |   32 +-
 gazebo/gui/QTestFixture.hh                         |    8 +-
 gazebo/gui/RenderWidget.cc                         |  139 +-
 gazebo/gui/RenderWidget.hh                         |   24 +-
 gazebo/gui/SaveDialog.cc                           |    2 +-
 gazebo/gui/SaveDialog.hh                           |    2 +-
 gazebo/gui/SpaceNav.cc                             |  189 ++
 gazebo/gui/SpaceNav.hh                             |   80 +
 gazebo/gui/SpaceNavPrivate.hh                      |   69 +
 gazebo/gui/SphereMaker.cc                          |    2 +-
 gazebo/gui/SphereMaker.hh                          |    2 +-
 gazebo/gui/TimePanel.cc                            |    2 +-
 gazebo/gui/TimePanel.hh                            |    2 +-
 gazebo/gui/TimePanel_TEST.cc                       |    2 +-
 gazebo/gui/TimePanel_TEST.hh                       |    2 +-
 gazebo/gui/ToolsWidget.cc                          |    2 +-
 gazebo/gui/ToolsWidget.hh                          |    2 +-
 gazebo/gui/TopicSelector.cc                        |    2 +-
 gazebo/gui/TopicSelector.hh                        |    2 +-
 gazebo/gui/building/BuildingEditor.cc              |   63 +-
 gazebo/gui/building/BuildingEditor.hh              |   14 +-
 gazebo/gui/building/BuildingEditorEvents.cc        |   23 +-
 gazebo/gui/building/BuildingEditorEvents.hh        |  254 ---
 gazebo/gui/building/BuildingEditorPalette.cc       |  406 +++--
 gazebo/gui/building/BuildingEditorPalette.hh       |   65 +-
 .../gui/building/BuildingEditorPalettePrivate.hh   |   58 +
 gazebo/gui/building/BuildingEditorWidget.cc        |   10 +-
 gazebo/gui/building/BuildingEditorWidget.hh        |    2 +-
 gazebo/gui/building/BuildingItem.cc                |   28 +-
 gazebo/gui/building/BuildingItem.hh                |   24 +-
 gazebo/gui/building/BuildingMaker.cc               | 1074 +++++++++--
 gazebo/gui/building/BuildingMaker.hh               |  150 +-
 gazebo/gui/building/BuildingModelManip.cc          |  139 +-
 gazebo/gui/building/BuildingModelManip.hh          |   93 +-
 gazebo/gui/building/CMakeLists.txt                 |   16 +-
 gazebo/gui/building/DoorItem.cc                    |   37 +-
 gazebo/gui/building/DoorItem.hh                    |    7 +-
 gazebo/gui/building/EditorItem.cc                  |   80 +-
 gazebo/gui/building/EditorItem.hh                  |   98 +-
 gazebo/gui/building/EditorView.cc                  | 1029 +++++++----
 gazebo/gui/building/EditorView.hh                  |  102 +-
 gazebo/gui/building/FinishBuildingDialog.cc        |  151 +-
 gazebo/gui/building/FinishBuildingDialog.hh        |   39 +-
 gazebo/gui/building/FloorItem.cc                   |   73 +-
 gazebo/gui/building/FloorItem.hh                   |   14 +-
 gazebo/gui/building/GrabberHandle.cc               |    8 +-
 gazebo/gui/building/GrabberHandle.hh               |    6 +-
 gazebo/gui/building/GridLines.cc                   |    2 +-
 gazebo/gui/building/GridLines.hh                   |    2 +-
 gazebo/gui/building/ImportImageDialog.cc           |  251 +++
 gazebo/gui/building/ImportImageDialog.hh           |  109 ++
 gazebo/gui/building/ImportImageView.cc             |  292 +++
 gazebo/gui/building/ImportImageView.hh             |  139 ++
 gazebo/gui/building/LevelInspectorDialog.cc        |  120 +-
 gazebo/gui/building/LevelInspectorDialog.hh        |   35 +-
 gazebo/gui/building/LevelWidget.cc                 |  106 +-
 gazebo/gui/building/LevelWidget.hh                 |   33 +-
 gazebo/gui/building/LineSegmentItem.cc             |  238 ---
 gazebo/gui/building/LineSegmentItem.hh             |  168 --
 gazebo/gui/building/MeasureItem.cc                 |  130 ++
 gazebo/gui/building/MeasureItem.hh                 |   68 +
 gazebo/gui/building/PolylineItem.cc                |  552 ------
 gazebo/gui/building/PolylineItem.hh                |  219 ---
 gazebo/gui/building/RectItem.cc                    |  212 ++-
 gazebo/gui/building/RectItem.hh                    |   45 +-
 gazebo/gui/building/RotateHandle.cc                |    2 +-
 gazebo/gui/building/RotateHandle.hh                |    2 +-
 gazebo/gui/building/ScaleWidget.cc                 |    4 +-
 gazebo/gui/building/ScaleWidget.hh                 |    2 +-
 gazebo/gui/building/SegmentItem.cc                 |  408 +++++
 gazebo/gui/building/SegmentItem.hh                 |  191 ++
 gazebo/gui/building/StairsInspectorDialog.cc       |  100 +-
 gazebo/gui/building/StairsInspectorDialog.hh       |   31 +-
 gazebo/gui/building/StairsItem.cc                  |   32 +-
 gazebo/gui/building/StairsItem.hh                  |    7 +-
 gazebo/gui/building/WallInspectorDialog.cc         |  107 +-
 gazebo/gui/building/WallInspectorDialog.hh         |   36 +-
 gazebo/gui/building/WallItem.cc                    |  438 -----
 gazebo/gui/building/WallItem.hh                    |  128 --
 gazebo/gui/building/WallSegmentItem.cc             |  282 +++
 gazebo/gui/building/WallSegmentItem.hh             |  128 ++
 gazebo/gui/building/WindowDoorInspectorDialog.cc   |    4 +-
 gazebo/gui/building/WindowDoorInspectorDialog.hh   |    2 +-
 gazebo/gui/building/WindowItem.cc                  |   34 +-
 gazebo/gui/building/WindowItem.hh                  |    7 +-
 gazebo/gui/gzclient.1.ronn                         |    2 +-
 gazebo/gui/images/align.png                        |  Bin 0 -> 577 bytes
 gazebo/gui/images/copy_object.png                  |  Bin 1165 -> 537 bytes
 gazebo/gui/images/door.png                         |  Bin 35190 -> 0 bytes
 gazebo/gui/images/door.svg                         |   68 +
 gazebo/gui/images/draw_link.svg                    |   82 +
 gazebo/gui/images/magnet.png                       |  Bin 0 -> 5898 bytes
 gazebo/gui/images/paste_object.png                 |  Bin 1588 -> 927 bytes
 gazebo/gui/images/screenshot.png                   |  Bin 1875 -> 1297 bytes
 gazebo/gui/images/stairs.png                       |  Bin 220657 -> 0 bytes
 gazebo/gui/images/stairs.svg                       |   21 +
 gazebo/gui/images/wall.png                         |  Bin 580086 -> 0 bytes
 gazebo/gui/images/wall.svg                         |   87 +
 gazebo/gui/images/window.png                       |  Bin 33657 -> 0 bytes
 gazebo/gui/images/window.svg                       |   68 +
 gazebo/gui/images/x_center.png                     |  Bin 0 -> 2202 bytes
 gazebo/gui/images/x_max.png                        |  Bin 0 -> 3249 bytes
 gazebo/gui/images/x_min.png                        |  Bin 0 -> 3296 bytes
 gazebo/gui/images/y_center.png                     |  Bin 0 -> 731 bytes
 gazebo/gui/images/y_max.png                        |  Bin 0 -> 610 bytes
 gazebo/gui/images/y_min.png                        |  Bin 0 -> 602 bytes
 gazebo/gui/images/z_center.png                     |  Bin 0 -> 724 bytes
 gazebo/gui/images/z_max.png                        |  Bin 0 -> 598 bytes
 gazebo/gui/images/z_min.png                        |  Bin 0 -> 597 bytes
 gazebo/gui/main.cc                                 |    2 +-
 gazebo/gui/model/CMakeLists.txt                    |    9 +
 gazebo/gui/model/ImportDialog.cc                   |    4 +-
 gazebo/gui/model/ImportDialog.hh                   |    2 +-
 gazebo/gui/model/JointInspector.cc                 |  210 ++-
 gazebo/gui/model/JointInspector.hh                 |   68 +-
 gazebo/gui/model/JointMaker.cc                     |  533 ++++--
 gazebo/gui/model/JointMaker.hh                     |   79 +-
 gazebo/gui/model/JointMaker_TEST.cc                |  140 ++
 gazebo/gui/model/JointMaker_TEST.hh                |   35 +
 gazebo/gui/model/ModelCreator.cc                   |  599 +++++--
 gazebo/gui/model/ModelCreator.hh                   |  146 +-
 gazebo/gui/model/ModelData.hh                      |   62 +
 gazebo/gui/model/ModelEditor.cc                    |  185 +-
 gazebo/gui/model/ModelEditor.hh                    |   42 +-
 gazebo/gui/model/ModelEditorEvents.cc              |    2 +-
 gazebo/gui/model/ModelEditorEvents.hh              |    2 +-
 gazebo/gui/model/ModelEditorPalette.cc             |  299 ++--
 gazebo/gui/model/ModelEditorPalette.hh             |   43 +-
 gazebo/gui/qt.h                                    |    2 +-
 gazebo/gui/qt_test.h                               |    2 +-
 gazebo/gui/resources.qrc                           |   27 +-
 gazebo/gui/style.qss                               |   18 +
 gazebo/gui/terrain/TerrainEditor.cc                |    2 +-
 gazebo/gui/terrain/TerrainEditor.hh                |    2 +-
 gazebo/gui/terrain/TerrainEditorPalette.cc         |    2 +-
 gazebo/gui/terrain/TerrainEditorPalette.hh         |    2 +-
 gazebo/gui/viewers/ImageFrame.cc                   |    2 +-
 gazebo/gui/viewers/ImageFrame.hh                   |    2 +-
 gazebo/gui/viewers/ImageFramePrivate.hh            |    2 +-
 gazebo/gui/viewers/ImageView.cc                    |    2 +-
 gazebo/gui/viewers/ImageView.hh                    |    2 +-
 gazebo/gui/viewers/ImageViewPrivate.hh             |    2 +-
 gazebo/gui/viewers/ImagesView.cc                   |    2 +-
 gazebo/gui/viewers/ImagesView.hh                   |    2 +-
 gazebo/gui/viewers/ImagesViewPrivate.hh            |    2 +-
 gazebo/gui/viewers/ImagesView_TEST.cc              |    2 +-
 gazebo/gui/viewers/ImagesView_TEST.hh              |    2 +-
 gazebo/gui/viewers/LaserView.cc                    |    2 +-
 gazebo/gui/viewers/LaserView.hh                    |    2 +-
 gazebo/gui/viewers/TextView.cc                     |    2 +-
 gazebo/gui/viewers/TextView.hh                     |    2 +-
 gazebo/gui/viewers/TopicView.cc                    |    2 +-
 gazebo/gui/viewers/TopicView.hh                    |    2 +-
 gazebo/gui/viewers/ViewFactory.cc                  |    2 +-
 gazebo/gui/viewers/ViewFactory.hh                  |    2 +-
 gazebo/gzserver.1.ronn                             |    2 +-
 gazebo/math/Angle.cc                               |    2 +-
 gazebo/math/Angle.hh                               |    2 +-
 gazebo/math/Angle_TEST.cc                          |    2 +-
 gazebo/math/Box.cc                                 |   15 +-
 gazebo/math/Box.hh                                 |   11 +-
 gazebo/math/Box_TEST.cc                            |   12 +-
 gazebo/math/CMakeLists.txt                         |   10 +
 gazebo/math/Filter.hh                              |  248 +++
 gazebo/math/Helpers.cc                             |    2 +-
 gazebo/math/Helpers.hh                             |    2 +-
 gazebo/math/Helpers_TEST.cc                        |    2 +-
 gazebo/math/Kmeans.cc                              |  168 ++
 gazebo/math/Kmeans.hh                              |  101 ++
 gazebo/math/Kmeans_TEST.cc                         |  131 ++
 gazebo/math/MathTypes.hh                           |    2 +-
 gazebo/math/Matrix3.cc                             |    2 +-
 gazebo/math/Matrix3.hh                             |    2 +-
 gazebo/math/Matrix3_TEST.cc                        |    2 +-
 gazebo/math/Matrix4.cc                             |    2 +-
 gazebo/math/Matrix4.hh                             |    2 +-
 gazebo/math/Plane.cc                               |    2 +-
 gazebo/math/Plane.hh                               |    2 +-
 gazebo/math/Plane_TEST.cc                          |    2 +-
 gazebo/math/Pose.cc                                |    2 +-
 gazebo/math/Pose.hh                                |    2 +-
 gazebo/math/Pose_TEST.cc                           |    2 +-
 gazebo/math/Quaternion.cc                          |   30 +-
 gazebo/math/Quaternion.hh                          |   18 +-
 gazebo/math/Quaternion_TEST.cc                     |   42 +-
 gazebo/math/Rand.cc                                |    2 +-
 gazebo/math/Rand.hh                                |    2 +-
 gazebo/math/Rand_TEST.cc                           |    2 +-
 gazebo/math/RotationSpline.cc                      |    2 +-
 gazebo/math/RotationSpline.hh                      |    2 +-
 gazebo/math/RotationSpline_TEST.cc                 |    2 +-
 gazebo/math/SignalStats.cc                         |  240 +++
 gazebo/math/SignalStats.hh                         |  179 ++
 gazebo/math/SignalStatsPrivate.hh                  |   56 +
 gazebo/math/SignalStats_TEST.cc                    |  340 ++++
 gazebo/math/Spline.cc                              |    2 +-
 gazebo/math/Spline.hh                              |    2 +-
 gazebo/math/Spline_TEST.cc                         |    2 +-
 gazebo/math/Vector2d.cc                            |    8 +-
 gazebo/math/Vector2d.hh                            |    8 +-
 gazebo/math/Vector2d_TEST.cc                       |   12 +-
 gazebo/math/Vector2i.cc                            |    2 +-
 gazebo/math/Vector2i.hh                            |    2 +-
 gazebo/math/Vector2i_TEST.cc                       |    2 +-
 gazebo/math/Vector3.cc                             |    2 +-
 gazebo/math/Vector3.hh                             |    2 +-
 gazebo/math/Vector3Stats.cc                        |  121 ++
 gazebo/math/Vector3Stats.hh                        |  111 ++
 gazebo/math/Vector3StatsPrivate.hh                 |   44 +
 gazebo/math/Vector3Stats_TEST.cc                   |  183 ++
 gazebo/math/Vector3_TEST.cc                        |    2 +-
 gazebo/math/Vector4.cc                             |    2 +-
 gazebo/math/Vector4.hh                             |    2 +-
 gazebo/math/Vector4_TEST.cc                        |    2 +-
 gazebo/msgs/CMakeLists.txt                         |    7 +-
 gazebo/msgs/MessageTypes.hh.in                     |    5 +
 gazebo/msgs/MsgFactory.cc                          |    2 +-
 gazebo/msgs/MsgFactory.hh                          |    2 +-
 gazebo/msgs/MsgFactory_TEST.cc                     |    2 +-
 gazebo/msgs/axis.proto                             |   15 +-
 gazebo/msgs/camera_cmd.proto                       |    2 -
 gazebo/msgs/camerasensor.proto                     |    7 +-
 gazebo/msgs/collision.proto                        |    1 -
 gazebo/msgs/distortion.proto                       |   17 +
 gazebo/msgs/factory.proto                          |    1 -
 gazebo/msgs/fluid.proto                            |   17 +
 gazebo/msgs/generator/GazeboGenerator.cc           |    2 +-
 gazebo/msgs/generator/GazeboGenerator.hh           |    2 +-
 gazebo/msgs/generator/gazebo_generator.cc          |    2 +-
 gazebo/msgs/geometry.proto                         |    5 +-
 gazebo/msgs/gui.proto                              |    3 +-
 gazebo/msgs/gui_overlay_config.proto               |   13 -
 gazebo/msgs/hydra.proto                            |   52 +
 gazebo/msgs/joint.proto                            |    1 -
 gazebo/msgs/joint_animation.proto                  |    1 -
 gazebo/msgs/joint_cmd.proto                        |    3 -
 gazebo/msgs/joystick.proto                         |   23 +
 gazebo/msgs/light.proto                            |    1 -
 gazebo/msgs/link.proto                             |    1 -
 gazebo/msgs/msgs.cc                                |  698 +++++++-
 gazebo/msgs/msgs.hh                                |  110 +-
 gazebo/msgs/msgs_TEST.cc                           |  367 +++-
 gazebo/msgs/physics.proto                          |    1 -
 gazebo/msgs/plugin.proto                           |    3 -
 gazebo/msgs/polylinegeom.proto                     |   13 +
 gazebo/msgs/road.proto                             |   10 +-
 gazebo/msgs/scene.proto                            |    4 -
 gazebo/msgs/selection.proto                        |    4 -
 gazebo/msgs/server_control.proto                   |    4 +-
 gazebo/msgs/sim_event.proto                        |   15 +
 gazebo/msgs/vector2d.proto                         |    2 -
 gazebo/msgs/vector3d.proto                         |    2 -
 gazebo/msgs/world_modify.proto                     |    2 +
 gazebo/msgs/world_reset.proto                      |    2 -
 gazebo/msgs/world_stats.proto                      |    1 -
 gazebo/physics/Actor.cc                            |   37 +-
 gazebo/physics/Actor.hh                            |    2 +-
 gazebo/physics/BallJoint.hh                        |    2 +-
 gazebo/physics/Base.cc                             |   19 +-
 gazebo/physics/Base.hh                             |   14 +-
 gazebo/physics/BoxShape.cc                         |    2 +-
 gazebo/physics/BoxShape.hh                         |    2 +-
 gazebo/physics/BoxShape_TEST.cc                    |   14 +-
 gazebo/physics/CMakeLists.txt                      |    9 +-
 gazebo/physics/Collision.cc                        |   48 +-
 gazebo/physics/Collision.hh                        |   31 +-
 gazebo/physics/CollisionState.cc                   |    2 +-
 gazebo/physics/CollisionState.hh                   |    2 +-
 gazebo/physics/Contact.cc                          |    2 +-
 gazebo/physics/Contact.hh                          |    2 +-
 gazebo/physics/ContactManager.cc                   |    2 +-
 gazebo/physics/ContactManager.hh                   |    2 +-
 gazebo/physics/ContactManager_TEST.cc              |    2 +-
 gazebo/physics/CylinderShape.cc                    |    2 +-
 gazebo/physics/CylinderShape.hh                    |    2 +-
 gazebo/physics/CylinderShape_TEST.cc               |   14 +-
 gazebo/physics/Entity.cc                           |   28 +-
 gazebo/physics/Entity.hh                           |   44 +-
 gazebo/physics/GearboxJoint.hh                     |    2 +-
 gazebo/physics/Gripper.cc                          |    2 +-
 gazebo/physics/Gripper.hh                          |    2 +-
 gazebo/physics/HeightmapShape.cc                   |    3 +-
 gazebo/physics/HeightmapShape.hh                   |    2 +-
 gazebo/physics/Hinge2Joint.hh                      |    2 +-
 gazebo/physics/HingeJoint.hh                       |    2 +-
 gazebo/physics/Inertial.cc                         |    2 +-
 gazebo/physics/Inertial.hh                         |    2 +-
 gazebo/physics/Inertial_TEST.cc                    |    2 +-
 gazebo/physics/Joint.cc                            |  550 +++++-
 gazebo/physics/Joint.hh                            |  155 +-
 gazebo/physics/JointController.cc                  |  345 +---
 gazebo/physics/JointController.hh                  |   54 +-
 gazebo/physics/JointControllerPrivate.hh           |    2 +-
 gazebo/physics/JointController_TEST.cc             |   46 +-
 gazebo/physics/JointState.cc                       |    2 +-
 gazebo/physics/JointState.hh                       |    2 +-
 gazebo/physics/JointWrench.hh                      |    2 +-
 gazebo/physics/Link.cc                             |  206 ++-
 gazebo/physics/Link.hh                             |   47 +-
 gazebo/physics/LinkState.cc                        |    2 +-
 gazebo/physics/LinkState.hh                        |    2 +-
 gazebo/physics/MapShape.cc                         |    2 +-
 gazebo/physics/MapShape.hh                         |    2 +-
 gazebo/physics/MeshShape.cc                        |    6 +-
 gazebo/physics/MeshShape.hh                        |    2 +-
 gazebo/physics/Model.cc                            |  107 +-
 gazebo/physics/Model.hh                            |    8 +-
 gazebo/physics/ModelState.cc                       |    2 +-
 gazebo/physics/ModelState.hh                       |    2 +-
 gazebo/physics/MultiRayShape.cc                    |    2 +-
 gazebo/physics/MultiRayShape.hh                    |    2 +-
 gazebo/physics/PhysicsEngine.cc                    |   21 +-
 gazebo/physics/PhysicsEngine.hh                    |   48 +-
 gazebo/physics/PhysicsEngine_TEST.cc               |   14 +-
 gazebo/physics/PhysicsFactory.cc                   |    2 +-
 gazebo/physics/PhysicsFactory.hh                   |    2 +-
 gazebo/physics/PhysicsIface.cc                     |    2 +-
 gazebo/physics/PhysicsIface.hh                     |    2 +-
 gazebo/physics/PhysicsTypes.hh                     |   19 +-
 gazebo/physics/PlaneShape.cc                       |    2 +-
 gazebo/physics/PlaneShape.hh                       |    2 +-
 gazebo/physics/PolylineShape.cc                    |  161 ++
 gazebo/physics/PolylineShape.hh                    |   91 +
 gazebo/physics/Population.cc                       |  551 ++++++
 gazebo/physics/Population.hh                       |  246 +++
 gazebo/physics/PopulationPrivate.hh                |   40 +
 gazebo/physics/RayShape.cc                         |    2 +-
 gazebo/physics/RayShape.hh                         |    2 +-
 gazebo/physics/Road.cc                             |   46 +-
 gazebo/physics/Road.hh                             |   13 +-
 gazebo/physics/Road_TEST.cc                        |   71 +
 gazebo/physics/ScrewJoint.hh                       |   27 +-
 gazebo/physics/Shape.cc                            |    2 +-
 gazebo/physics/Shape.hh                            |    2 +-
 gazebo/physics/SliderJoint.hh                      |    2 +-
 gazebo/physics/SphereShape.cc                      |    2 +-
 gazebo/physics/SphereShape.hh                      |    2 +-
 gazebo/physics/SphereShape_TEST.cc                 |   14 +-
 gazebo/physics/State.cc                            |    2 +-
 gazebo/physics/State.hh                            |    2 +-
 gazebo/physics/SurfaceParams.cc                    |    2 +-
 gazebo/physics/SurfaceParams.hh                    |    2 +-
 gazebo/physics/UniversalJoint.hh                   |    2 +-
 gazebo/physics/World.cc                            | 1150 ++++++------
 gazebo/physics/World.hh                            |  305 +---
 gazebo/physics/WorldPrivate.hh                     |  292 +++
 gazebo/physics/WorldState.cc                       |    2 +-
 gazebo/physics/WorldState.hh                       |    2 +-
 gazebo/physics/bullet/BulletBallJoint.cc           |    2 +-
 gazebo/physics/bullet/BulletBallJoint.hh           |    2 +-
 gazebo/physics/bullet/BulletBoxShape.hh            |    2 +-
 gazebo/physics/bullet/BulletCollision.cc           |   20 +-
 gazebo/physics/bullet/BulletCollision.hh           |    2 +-
 gazebo/physics/bullet/BulletCylinderShape.hh       |    2 +-
 gazebo/physics/bullet/BulletHeightmapShape.cc      |    2 +-
 gazebo/physics/bullet/BulletHeightmapShape.hh      |    2 +-
 gazebo/physics/bullet/BulletHinge2Joint.cc         |    2 +-
 gazebo/physics/bullet/BulletHinge2Joint.hh         |   10 +-
 gazebo/physics/bullet/BulletHingeJoint.cc          |  101 +-
 gazebo/physics/bullet/BulletHingeJoint.hh          |   16 +-
 gazebo/physics/bullet/BulletJoint.cc               |   56 +-
 gazebo/physics/bullet/BulletJoint.hh               |   19 +-
 gazebo/physics/bullet/BulletLink.cc                |    2 +-
 gazebo/physics/bullet/BulletLink.hh                |    2 +-
 gazebo/physics/bullet/BulletMesh.cc                |  118 ++
 gazebo/physics/bullet/BulletMesh.hh                |   71 +
 gazebo/physics/bullet/BulletMeshShape.cc           |  112 --
 gazebo/physics/bullet/BulletMeshShape.hh           |   19 +-
 gazebo/physics/bullet/BulletMotionState.cc         |   22 +-
 gazebo/physics/bullet/BulletMotionState.hh         |    2 +-
 gazebo/physics/bullet/BulletMultiRayShape.cc       |    2 +-
 gazebo/physics/bullet/BulletMultiRayShape.hh       |    2 +-
 gazebo/physics/bullet/BulletPhysics.cc             |  120 +-
 gazebo/physics/bullet/BulletPhysics.hh             |   17 +-
 gazebo/physics/bullet/BulletPhysics_TEST.cc        |    6 +-
 gazebo/physics/bullet/BulletPlaneShape.hh          |    2 +-
 gazebo/physics/bullet/BulletPolylineShape.cc       |   60 +
 gazebo/physics/bullet/BulletPolylineShape.hh       |   50 +
 gazebo/physics/bullet/BulletRaySensor.cc           |    2 +-
 gazebo/physics/bullet/BulletRaySensor.hh           |    2 +-
 gazebo/physics/bullet/BulletRayShape.cc            |    2 +-
 gazebo/physics/bullet/BulletRayShape.hh            |    2 +-
 gazebo/physics/bullet/BulletScrewJoint.cc          |    9 +-
 gazebo/physics/bullet/BulletScrewJoint.hh          |    6 +-
 gazebo/physics/bullet/BulletSliderJoint.cc         |  122 +-
 gazebo/physics/bullet/BulletSliderJoint.hh         |   17 +-
 gazebo/physics/bullet/BulletSphereShape.hh         |    2 +-
 gazebo/physics/bullet/BulletSurfaceParams.cc       |    2 +-
 gazebo/physics/bullet/BulletSurfaceParams.hh       |    2 +-
 gazebo/physics/bullet/BulletTypes.hh               |    2 +-
 gazebo/physics/bullet/BulletTypes_TEST.cc          |    2 +-
 gazebo/physics/bullet/BulletUniversalJoint.cc      |   48 +-
 gazebo/physics/bullet/BulletUniversalJoint.hh      |   12 +-
 gazebo/physics/bullet/CMakeLists.txt               |    5 +
 gazebo/physics/bullet/bullet_inc.h                 |    2 +-
 gazebo/physics/bullet/bullet_math_inc.h            |    2 +-
 gazebo/physics/bullet/gzBtUniversalConstraint.cc   |    2 +-
 gazebo/physics/bullet/gzBtUniversalConstraint.hh   |    2 +-
 gazebo/physics/dart/CMakeLists.txt                 |    5 +
 gazebo/physics/dart/DARTBallJoint.cc               |    4 +-
 gazebo/physics/dart/DARTBallJoint.hh               |    2 +-
 gazebo/physics/dart/DARTBoxShape.hh                |    4 +-
 gazebo/physics/dart/DARTCollision.cc               |   17 +-
 gazebo/physics/dart/DARTCollision.hh               |    2 +-
 gazebo/physics/dart/DARTCylinderShape.hh           |    2 +-
 gazebo/physics/dart/DARTHeightmapShape.cc          |    2 +-
 gazebo/physics/dart/DARTHeightmapShape.hh          |    2 +-
 gazebo/physics/dart/DARTHinge2Joint.cc             |   50 +-
 gazebo/physics/dart/DARTHinge2Joint.hh             |    2 +-
 gazebo/physics/dart/DARTHingeJoint.cc              |   42 +-
 gazebo/physics/dart/DARTHingeJoint.hh              |    2 +-
 gazebo/physics/dart/DARTJoint.cc                   |  105 +-
 gazebo/physics/dart/DARTJoint.hh                   |   12 +-
 gazebo/physics/dart/DARTLink.cc                    |  355 +++-
 gazebo/physics/dart/DARTLink.hh                    |    7 +-
 gazebo/physics/dart/DARTMesh.cc                    |  146 ++
 gazebo/physics/dart/DARTMesh.hh                    |   71 +
 gazebo/physics/dart/DARTMeshShape.cc               |   30 +-
 gazebo/physics/dart/DARTMeshShape.hh               |   64 -
 .../physics/dart/DARTMeshShape.hh~upstream_5.0.1   |   54 +
 gazebo/physics/dart/DARTModel.cc                   |   23 +-
 gazebo/physics/dart/DARTModel.hh                   |    2 +-
 gazebo/physics/dart/DARTMultiRayShape.cc           |    2 +-
 gazebo/physics/dart/DARTMultiRayShape.hh           |    2 +-
 gazebo/physics/dart/DARTPhysics.cc                 |   69 +-
 gazebo/physics/dart/DARTPhysics.hh                 |    9 +-
 gazebo/physics/dart/DARTPlaneShape.hh              |    2 +-
 gazebo/physics/dart/DARTPolylineShape.cc           |   60 +
 gazebo/physics/dart/DARTPolylineShape.hh           |   50 +
 gazebo/physics/dart/DARTRayShape.cc                |    2 +-
 gazebo/physics/dart/DARTRayShape.hh                |    2 +-
 gazebo/physics/dart/DARTScrewJoint.cc              |  100 +-
 gazebo/physics/dart/DARTScrewJoint.hh              |   16 +-
 gazebo/physics/dart/DARTSliderJoint.cc             |   41 +-
 gazebo/physics/dart/DARTSliderJoint.hh             |    2 +-
 gazebo/physics/dart/DARTSphereShape.hh             |    8 +-
 gazebo/physics/dart/DARTTypes.hh                   |    2 +-
 gazebo/physics/dart/DARTUniversalJoint.cc          |   78 +-
 gazebo/physics/dart/DARTUniversalJoint.hh          |    2 +-
 gazebo/physics/dart/dart_inc.h                     |   13 +-
 gazebo/physics/ode/CMakeLists.txt                  |    7 +-
 gazebo/physics/ode/ODEBallJoint.cc                 |    2 +-
 gazebo/physics/ode/ODEBallJoint.hh                 |    2 +-
 gazebo/physics/ode/ODEBoxShape.hh                  |    2 +-
 gazebo/physics/ode/ODECollision.cc                 |    2 +-
 gazebo/physics/ode/ODECollision.hh                 |    2 +-
 gazebo/physics/ode/ODECylinderShape.hh             |    2 +-
 gazebo/physics/ode/ODEGearboxJoint.cc              |    2 +-
 gazebo/physics/ode/ODEGearboxJoint.hh              |    2 +-
 gazebo/physics/ode/ODEHeightmapShape.cc            |    2 +-
 gazebo/physics/ode/ODEHeightmapShape.hh            |    2 +-
 gazebo/physics/ode/ODEHinge2Joint.cc               |    2 +-
 gazebo/physics/ode/ODEHinge2Joint.hh               |    2 +-
 gazebo/physics/ode/ODEHingeJoint.cc                |    8 +-
 gazebo/physics/ode/ODEHingeJoint.hh                |    2 +-
 gazebo/physics/ode/ODEJoint.cc                     |  590 ++----
 gazebo/physics/ode/ODEJoint.hh                     |   32 +-
 gazebo/physics/ode/ODEJoint_TEST.cc                |   23 +-
 gazebo/physics/ode/ODELink.cc                      |   62 +-
 gazebo/physics/ode/ODELink.hh                      |    8 +-
 gazebo/physics/ode/ODEMesh.cc                      |  157 ++
 gazebo/physics/ode/ODEMesh.hh                      |   85 +
 gazebo/physics/ode/ODEMeshShape.cc                 |  107 +-
 gazebo/physics/ode/ODEMeshShape.cc~upstream_5.0.1  |   72 +
 gazebo/physics/ode/ODEMeshShape.hh                 |   24 +-
 gazebo/physics/ode/ODEMultiRayShape.cc             |    2 +-
 gazebo/physics/ode/ODEMultiRayShape.hh             |    2 +-
 gazebo/physics/ode/ODEPhysics.cc                   |  149 +-
 gazebo/physics/ode/ODEPhysics.hh                   |   29 +-
 gazebo/physics/ode/ODEPhysics_TEST.cc              |    6 +-
 gazebo/physics/ode/ODEPlaneShape.hh                |    2 +-
 gazebo/physics/ode/ODEPolylineShape.cc             |   66 +
 gazebo/physics/ode/ODEPolylineShape.hh             |   53 +
 gazebo/physics/ode/ODERayShape.cc                  |    2 +-
 gazebo/physics/ode/ODERayShape.hh                  |    2 +-
 gazebo/physics/ode/ODEScrewJoint.cc                |   33 +-
 gazebo/physics/ode/ODEScrewJoint.hh                |   17 +-
 gazebo/physics/ode/ODESliderJoint.cc               |    6 +-
 gazebo/physics/ode/ODESliderJoint.hh               |    2 +-
 gazebo/physics/ode/ODESphereShape.hh               |    2 +-
 gazebo/physics/ode/ODESurfaceParams.cc             |    2 +-
 gazebo/physics/ode/ODESurfaceParams.hh             |    2 +-
 gazebo/physics/ode/ODETypes.hh                     |    2 +-
 gazebo/physics/ode/ODEUniversalJoint.cc            |  228 +--
 gazebo/physics/ode/ODEUniversalJoint.hh            |   24 +-
 gazebo/physics/ode/ode_inc.h                       |    2 +-
 gazebo/physics/simbody/CMakeLists.txt              |   30 +-
 gazebo/physics/simbody/SimbodyBallJoint.cc         |    2 +-
 gazebo/physics/simbody/SimbodyBallJoint.hh         |    2 +-
 gazebo/physics/simbody/SimbodyBoxShape.hh          |    2 +-
 gazebo/physics/simbody/SimbodyCollision.cc         |    2 +-
 gazebo/physics/simbody/SimbodyCollision.hh         |    2 +-
 gazebo/physics/simbody/SimbodyCylinderShape.hh     |    2 +-
 gazebo/physics/simbody/SimbodyHeightmapShape.cc    |    2 +-
 gazebo/physics/simbody/SimbodyHeightmapShape.hh    |    2 +-
 gazebo/physics/simbody/SimbodyHinge2Joint.cc       |    2 +-
 gazebo/physics/simbody/SimbodyHinge2Joint.hh       |    2 +-
 gazebo/physics/simbody/SimbodyHingeJoint.cc        |   61 +-
 gazebo/physics/simbody/SimbodyHingeJoint.hh        |    2 +-
 gazebo/physics/simbody/SimbodyJoint.cc             |   92 +-
 gazebo/physics/simbody/SimbodyJoint.hh             |   16 +-
 gazebo/physics/simbody/SimbodyLink.cc              |   17 +-
 gazebo/physics/simbody/SimbodyLink.hh              |    2 +-
 gazebo/physics/simbody/SimbodyMesh.cc              |   61 +
 gazebo/physics/simbody/SimbodyMesh.hh              |   71 +
 gazebo/physics/simbody/SimbodyMeshShape.cc         |   20 +-
 gazebo/physics/simbody/SimbodyMeshShape.hh         |    7 +-
 gazebo/physics/simbody/SimbodyModel.cc             |    2 +-
 gazebo/physics/simbody/SimbodyModel.hh             |    2 +-
 gazebo/physics/simbody/SimbodyMultiRayShape.cc     |    2 +-
 gazebo/physics/simbody/SimbodyMultiRayShape.hh     |    2 +-
 gazebo/physics/simbody/SimbodyPhysics.cc           |   46 +-
 gazebo/physics/simbody/SimbodyPhysics.hh           |    2 +-
 gazebo/physics/simbody/SimbodyPlaneShape.cc        |    2 +-
 gazebo/physics/simbody/SimbodyPlaneShape.hh        |    2 +-
 gazebo/physics/simbody/SimbodyPolylineShape.cc     |   63 +
 gazebo/physics/simbody/SimbodyPolylineShape.hh     |   50 +
 gazebo/physics/simbody/SimbodyRayShape.cc          |    2 +-
 gazebo/physics/simbody/SimbodyRayShape.hh          |    2 +-
 gazebo/physics/simbody/SimbodyScrewJoint.cc        |   80 +-
 gazebo/physics/simbody/SimbodyScrewJoint.hh        |   12 +-
 gazebo/physics/simbody/SimbodySliderJoint.cc       |   60 +-
 gazebo/physics/simbody/SimbodySliderJoint.hh       |    2 +-
 gazebo/physics/simbody/SimbodySphereShape.hh       |    2 +-
 gazebo/physics/simbody/SimbodyTypes.hh             |    2 +-
 gazebo/physics/simbody/SimbodyUniversalJoint.cc    |   95 +-
 gazebo/physics/simbody/SimbodyUniversalJoint.hh    |    2 +-
 gazebo/physics/simbody/simbody_inc.h               |    2 +-
 gazebo/rendering/ArrowVisual.cc                    |   73 +-
 gazebo/rendering/ArrowVisual.hh                    |   15 +-
 gazebo/rendering/ArrowVisualPrivate.hh             |    2 +-
 gazebo/rendering/AxisVisual.cc                     |   96 +-
 gazebo/rendering/AxisVisual.hh                     |   23 +-
 gazebo/rendering/AxisVisualPrivate.hh              |    2 +-
 gazebo/rendering/CMakeLists.txt                    |   30 +-
 gazebo/rendering/COMVisual.cc                      |    2 +-
 gazebo/rendering/COMVisual.hh                      |    2 +-
 gazebo/rendering/COMVisualPrivate.hh               |    2 +-
 gazebo/rendering/Camera.cc                         |  103 +-
 gazebo/rendering/Camera.hh                         |   54 +-
 gazebo/rendering/CameraPrivate.hh                  |    5 +-
 gazebo/rendering/CameraVisual.cc                   |   12 +-
 gazebo/rendering/CameraVisual.hh                   |    7 +-
 gazebo/rendering/CameraVisualPrivate.hh            |    2 +-
 gazebo/rendering/ContactVisual.cc                  |    2 +-
 gazebo/rendering/ContactVisual.hh                  |    2 +-
 gazebo/rendering/ContactVisualPrivate.hh           |    2 +-
 gazebo/rendering/Conversions.cc                    |    2 +-
 gazebo/rendering/Conversions.hh                    |    2 +-
 gazebo/rendering/DepthCamera.cc                    |    2 +-
 gazebo/rendering/DepthCamera.hh                    |    2 +-
 gazebo/rendering/Distortion.cc                     |  329 ++++
 gazebo/rendering/Distortion.hh                     |  107 ++
 gazebo/rendering/DistortionPrivate.hh              |   67 +
 gazebo/rendering/DynamicLines.cc                   |    2 +-
 gazebo/rendering/DynamicLines.hh                   |    2 +-
 gazebo/rendering/DynamicRenderable.cc              |    2 +-
 gazebo/rendering/DynamicRenderable.hh              |    2 +-
 gazebo/rendering/FPSViewController.cc              |   81 +-
 gazebo/rendering/FPSViewController.hh              |   17 +-
 gazebo/rendering/GUIOverlay.cc                     |  525 ------
 gazebo/rendering/GUIOverlay.hh                     |  199 ---
 gazebo/rendering/GpuLaser.cc                       |   11 +-
 gazebo/rendering/GpuLaser.hh                       |    2 +-
 gazebo/rendering/GpuLaser_TEST.cc                  |    2 +-
 gazebo/rendering/Grid.cc                           |    4 +-
 gazebo/rendering/Grid.hh                           |    2 +-
 gazebo/rendering/Heightmap.cc                      |    2 +-
 gazebo/rendering/Heightmap.hh                      |    2 +-
 gazebo/rendering/Heightmap_TEST.cc                 |   34 +-
 gazebo/rendering/JointVisual.cc                    |  157 +-
 gazebo/rendering/JointVisual.hh                    |   23 +-
 gazebo/rendering/JointVisualPrivate.hh             |    5 +-
 gazebo/rendering/JointVisual_TEST.cc               |   95 +
 gazebo/rendering/LaserVisual.cc                    |    2 +-
 gazebo/rendering/LaserVisual.hh                    |    2 +-
 gazebo/rendering/LaserVisualPrivate.hh             |    2 +-
 gazebo/rendering/Light.cc                          |  140 +-
 gazebo/rendering/Light.hh                          |   18 +-
 gazebo/rendering/Material.cc                       |    5 +-
 gazebo/rendering/Material.hh                       |    2 +-
 gazebo/rendering/MovableText.cc                    |    2 +-
 gazebo/rendering/MovableText.hh                    |    2 +-
 gazebo/rendering/OculusCamera.cc                   |  540 ++++++
 gazebo/rendering/OculusCamera.hh                   |  212 +++
 gazebo/rendering/OrbitViewController.cc            |    2 +-
 gazebo/rendering/OrbitViewController.hh            |    2 +-
 gazebo/rendering/Projector.cc                      |    2 +-
 gazebo/rendering/Projector.hh                      |    2 +-
 gazebo/rendering/RFIDTagVisual.cc                  |    2 +-
 gazebo/rendering/RFIDTagVisual.hh                  |    2 +-
 gazebo/rendering/RFIDTagVisualPrivate.hh           |    2 +-
 gazebo/rendering/RFIDVisual.cc                     |    2 +-
 gazebo/rendering/RFIDVisual.hh                     |    2 +-
 gazebo/rendering/RFIDVisualPrivate.hh              |    2 +-
 gazebo/rendering/RTShaderSystem.cc                 |    2 +-
 gazebo/rendering/RTShaderSystem.hh                 |    2 +-
 gazebo/rendering/RayQuery.cc                       |  137 ++
 gazebo/rendering/RayQuery.hh                       |   73 +
 gazebo/rendering/RayQueryPrivate.hh                |   38 +
 gazebo/rendering/RenderEngine.cc                   |   31 +-
 gazebo/rendering/RenderEngine.hh                   |    2 +-
 gazebo/rendering/RenderEvents.cc                   |    2 +-
 gazebo/rendering/RenderEvents.hh                   |    2 +-
 gazebo/rendering/RenderTypes.hh                    |   25 +-
 gazebo/rendering/RenderingIface.cc                 |    2 +-
 gazebo/rendering/RenderingIface.hh                 |    2 +-
 gazebo/rendering/Road2d.cc                         |   28 +-
 gazebo/rendering/Road2d.hh                         |    6 +-
 gazebo/rendering/Scene.cc                          | 1139 ++++++------
 gazebo/rendering/Scene.hh                          |  297 +--
 gazebo/rendering/ScenePrivate.hh                   |  321 ++++
 gazebo/rendering/SelectionObj.cc                   |   49 +-
 gazebo/rendering/SelectionObj.hh                   |    2 +-
 gazebo/rendering/SelectionObjPrivate.hh            |    2 +-
 gazebo/rendering/SonarVisual.cc                    |   40 +-
 gazebo/rendering/SonarVisual.hh                    |    2 +-
 gazebo/rendering/SonarVisualPrivate.hh             |    2 +-
 gazebo/rendering/SonarVisual_TEST.cc               |   54 +
 gazebo/rendering/TransmitterVisual.cc              |   12 +-
 gazebo/rendering/TransmitterVisual.hh              |    2 +-
 gazebo/rendering/TransmitterVisualPrivate.hh       |    2 +-
 gazebo/rendering/TransmitterVisual_TEST.cc         |   54 +
 gazebo/rendering/UserCamera.cc                     |  169 +-
 gazebo/rendering/UserCamera.hh                     |   43 +-
 gazebo/rendering/UserCameraPrivate.hh              |   23 +-
 gazebo/rendering/VideoVisual.cc                    |    2 +-
 gazebo/rendering/VideoVisual.hh                    |    2 +-
 gazebo/rendering/VideoVisualPrivate.hh             |    2 +-
 gazebo/rendering/ViewController.cc                 |    2 +-
 gazebo/rendering/ViewController.hh                 |    2 +-
 gazebo/rendering/Visual.cc                         |  217 ++-
 gazebo/rendering/Visual.hh                         |   11 +-
 gazebo/rendering/VisualPrivate.hh                  |    2 +-
 gazebo/rendering/Visual_TEST.cc                    |   97 +
 gazebo/rendering/WindowManager.cc                  |    2 +-
 gazebo/rendering/WindowManager.hh                  |    2 +-
 gazebo/rendering/WireBox.cc                        |   10 +-
 gazebo/rendering/WireBox.hh                        |    2 +-
 gazebo/rendering/WireBoxPrivate.hh                 |    6 +-
 gazebo/rendering/WrenchVisual.cc                   |    2 +-
 gazebo/rendering/WrenchVisual.hh                   |    2 +-
 gazebo/rendering/WrenchVisualPrivate.hh            |    2 +-
 gazebo/rendering/cegui.h                           |   31 -
 gazebo/rendering/deferred_shading/AmbientLight.hh  |    2 +-
 gazebo/rendering/deferred_shading/DeferredLight.cc |    2 +-
 gazebo/rendering/deferred_shading/DeferredLight.hh |    2 +-
 .../rendering/deferred_shading/DeferredLightCP.hh  |    2 +-
 .../deferred_shading/GBufferMaterialGenerator.cc   |    2 +-
 .../deferred_shading/GBufferMaterialGenerator.hh   |    2 +-
 .../deferred_shading/GBufferSchemeHandler.cc       |    2 +-
 .../deferred_shading/GBufferSchemeHandler.hh       |    2 +-
 gazebo/rendering/deferred_shading/GeomUtils.cc     |    2 +-
 gazebo/rendering/deferred_shading/GeomUtils.hh     |    2 +-
 .../deferred_shading/LightMaterialGenerator.hh     |    2 +-
 .../deferred_shading/ListenerFactoryLogic.hh       |    2 +-
 .../deferred_shading/MaterialGenerator.cc          |    2 +-
 .../deferred_shading/MaterialGenerator.hh          |    2 +-
 gazebo/rendering/deferred_shading/MergeCP.hh       |    2 +-
 .../deferred_shading/MergeMaterialGenerator.cc     |    2 +-
 .../deferred_shading/MergeMaterialGenerator.hh     |    2 +-
 .../deferred_shading/MergeSchemeHandler.cc         |    2 +-
 .../deferred_shading/MergeSchemeHandler.hh         |    2 +-
 .../deferred_shading/NullSchemeHandler.hh          |    2 +-
 gazebo/rendering/deferred_shading/SSAOLogic.cc     |    2 +-
 gazebo/rendering/deferred_shading/SSAOLogic.hh     |    2 +-
 .../deferred_shading/TechniqueDefinitions.hh       |    2 +-
 gazebo/rendering/ogre_gazebo.h                     |    2 +-
 .../rendering/selection_buffer/MaterialSwitcher.cc |    2 +-
 .../rendering/selection_buffer/MaterialSwitcher.hh |    2 +-
 .../rendering/selection_buffer/SelectionBuffer.cc  |    2 +-
 .../rendering/selection_buffer/SelectionBuffer.hh  |    2 +-
 .../selection_buffer/SelectionRenderListener.cc    |    2 +-
 .../selection_buffer/SelectionRenderListener.hh    |    2 +-
 gazebo/rendering/skyx/CMakeLists.txt               |    3 -
 gazebo/rendering/skyx/include/Prerequisites.h      |    6 +-
 gazebo/sensors/CameraSensor.cc                     |    2 +-
 gazebo/sensors/CameraSensor.hh                     |    2 +-
 gazebo/sensors/ContactSensor.cc                    |    2 +-
 gazebo/sensors/ContactSensor.hh                    |    2 +-
 gazebo/sensors/DepthCameraSensor.cc                |    2 +-
 gazebo/sensors/DepthCameraSensor.hh                |    2 +-
 gazebo/sensors/ForceTorqueSensor.cc                |  135 +-
 gazebo/sensors/ForceTorqueSensor.hh                |   26 +-
 gazebo/sensors/ForceTorqueSensor_TEST.cc           |   22 +-
 gazebo/sensors/GaussianNoiseModel.cc               |    2 +-
 gazebo/sensors/GaussianNoiseModel.hh               |    2 +-
 gazebo/sensors/GpsSensor.cc                        |    2 +-
 gazebo/sensors/GpsSensor.hh                        |    2 +-
 gazebo/sensors/GpsSensor_TEST.cc                   |    2 +-
 gazebo/sensors/GpuRaySensor.cc                     |    2 +-
 gazebo/sensors/GpuRaySensor.hh                     |    2 +-
 gazebo/sensors/GpuRaySensor_TEST.cc                |    2 +-
 gazebo/sensors/ImuSensor.cc                        |    2 +-
 gazebo/sensors/ImuSensor.hh                        |    2 +-
 gazebo/sensors/ImuSensor_TEST.cc                   |   57 +-
 gazebo/sensors/MultiCameraSensor.cc                |    2 +-
 gazebo/sensors/MultiCameraSensor.hh                |    2 +-
 gazebo/sensors/Noise.cc                            |    2 +-
 gazebo/sensors/Noise.hh                            |    2 +-
 gazebo/sensors/Noise_TEST.cc                       |    6 +-
 gazebo/sensors/RFIDSensor.cc                       |    2 +-
 gazebo/sensors/RFIDSensor.hh                       |    2 +-
 gazebo/sensors/RFIDTag.cc                          |    2 +-
 gazebo/sensors/RFIDTag.hh                          |    2 +-
 gazebo/sensors/RaySensor.cc                        |    2 +-
 gazebo/sensors/RaySensor.hh                        |    2 +-
 gazebo/sensors/RaySensor_TEST.cc                   |    2 +-
 gazebo/sensors/Sensor.cc                           |   22 +-
 gazebo/sensors/Sensor.hh                           |   12 +-
 gazebo/sensors/SensorFactory.cc                    |    2 +-
 gazebo/sensors/SensorFactory.hh                    |    2 +-
 gazebo/sensors/SensorManager.cc                    |   18 +-
 gazebo/sensors/SensorManager.hh                    |    8 +-
 gazebo/sensors/SensorManager_TEST.cc               |    2 +-
 gazebo/sensors/SensorTypes.hh                      |    2 +-
 gazebo/sensors/Sensor_TEST.cc                      |    2 +-
 gazebo/sensors/SensorsIface.cc                     |   21 +-
 gazebo/sensors/SensorsIface.hh                     |    2 +-
 gazebo/sensors/SonarSensor.cc                      |    2 +-
 gazebo/sensors/SonarSensor.hh                      |    2 +-
 gazebo/sensors/SonarSensor_TEST.cc                 |    4 +-
 gazebo/sensors/WirelessReceiver.cc                 |    2 +-
 gazebo/sensors/WirelessReceiver.hh                 |    2 +-
 gazebo/sensors/WirelessReceiver_TEST.cc            |    2 +-
 gazebo/sensors/WirelessTransceiver.cc              |    2 +-
 gazebo/sensors/WirelessTransceiver.hh              |    2 +-
 gazebo/sensors/WirelessTransmitter.cc              |    2 +-
 gazebo/sensors/WirelessTransmitter.hh              |    2 +-
 gazebo/sensors/WirelessTransmitter_TEST.cc         |    2 +-
 gazebo/server_main.cc                              |    5 +-
 gazebo/transport/CallbackHelper.cc                 |    2 +-
 gazebo/transport/CallbackHelper.hh                 |    2 +-
 gazebo/transport/Connection.cc                     |    2 +-
 gazebo/transport/Connection.hh                     |    2 +-
 gazebo/transport/ConnectionManager.cc              |    2 +-
 gazebo/transport/ConnectionManager.hh              |    2 +-
 gazebo/transport/Connection_TEST.cc                |    2 +-
 gazebo/transport/IOManager.cc                      |    2 +-
 gazebo/transport/IOManager.hh                      |    2 +-
 gazebo/transport/Node.cc                           |   10 +-
 gazebo/transport/Node.hh                           |    2 +-
 gazebo/transport/Publication.cc                    |    2 +-
 gazebo/transport/Publication.hh                    |    2 +-
 gazebo/transport/PublicationTransport.cc           |    2 +-
 gazebo/transport/PublicationTransport.hh           |    2 +-
 gazebo/transport/Publisher.cc                      |    2 +-
 gazebo/transport/Publisher.hh                      |    2 +-
 gazebo/transport/SubscribeOptions.hh               |    2 +-
 gazebo/transport/Subscriber.cc                     |    2 +-
 gazebo/transport/Subscriber.hh                     |    2 +-
 gazebo/transport/SubscriptionTransport.cc          |    2 +-
 gazebo/transport/SubscriptionTransport.hh          |    2 +-
 gazebo/transport/TopicManager.cc                   |   15 +-
 gazebo/transport/TopicManager.hh                   |    2 +-
 gazebo/transport/TransportIface.cc                 |   18 +-
 gazebo/transport/TransportIface.hh                 |    2 +-
 gazebo/transport/TransportTypes.hh                 |    7 +-
 gazebo/util/Diagnostics.cc                         |    2 +-
 gazebo/util/Diagnostics.hh                         |    2 +-
 gazebo/util/Diagnostics_TEST.cc                    |    2 +-
 gazebo/util/LogPlay.cc                             |    2 +-
 gazebo/util/LogPlay.hh                             |    2 +-
 gazebo/util/LogRecord.cc                           |    2 +-
 gazebo/util/LogRecord.hh                           |    2 +-
 gazebo/util/LogRecord_TEST.cc                      |    2 +-
 gazebo/util/OpenAL.cc                              |    2 +-
 gazebo/util/OpenAL.hh                              |    2 +-
 gazebo/util/OpenAL_TEST.cc                         |    6 +-
 gazebo/util/UtilTypes.hh                           |    2 +-
 gazebo/util/system.hh                              |    2 +-
 interfaces/player/ActarrayInterface.cc             |    2 +-
 interfaces/player/ActarrayInterface.hh             |    2 +-
 interfaces/player/BumperInterface.cc               |    2 +-
 interfaces/player/BumperInterface.hh               |    2 +-
 interfaces/player/CMakeLists.txt                   |    5 +-
 interfaces/player/CameraInterface.cc               |    3 +-
 interfaces/player/CameraInterface.hh               |    2 +-
 interfaces/player/FiducialInterface.cc             |    2 +-
 interfaces/player/FiducialInterface.hh             |    2 +-
 interfaces/player/GazeboClient.cc                  |    2 +-
 interfaces/player/GazeboClient.hh                  |    2 +-
 interfaces/player/GazeboDriver.cc                  |    6 +-
 interfaces/player/GazeboDriver.hh                  |    7 +-
 interfaces/player/GazeboInterface.cc               |    2 +-
 interfaces/player/GazeboInterface.hh               |    2 +-
 interfaces/player/GazeboTime.cc                    |    2 +-
 interfaces/player/GazeboTime.hh                    |    2 +-
 interfaces/player/GpsInterface.cc                  |    2 +-
 interfaces/player/GpsInterface.hh                  |    2 +-
 interfaces/player/Graphics3dInterface.cc           |    2 +-
 interfaces/player/Graphics3dInterface.hh           |    2 +-
 interfaces/player/GripperInterface.cc              |    2 +-
 interfaces/player/GripperInterface.hh              |    2 +-
 interfaces/player/IRInterface.cc                   |    2 +-
 interfaces/player/IRInterface.hh                   |    2 +-
 interfaces/player/LaserInterface.cc                |   31 +-
 interfaces/player/LaserInterface.hh                |    4 +-
 interfaces/player/OpaqueInterface.cc               |    2 +-
 interfaces/player/OpaqueInterface.hh               |    2 +-
 interfaces/player/PTZInterface.cc                  |    2 +-
 interfaces/player/PTZInterface.hh                  |    2 +-
 interfaces/player/Position2dInterface.cc           |   26 +-
 interfaces/player/Position2dInterface.hh           |    4 +-
 interfaces/player/Position3dInterface.cc           |    2 +-
 interfaces/player/Position3dInterface.hh           |    2 +-
 interfaces/player/PowerInterface.cc                |    2 +-
 interfaces/player/PowerInterface.hh                |    2 +-
 interfaces/player/SimulationInterface.cc           |    2 +-
 interfaces/player/SimulationInterface.hh           |    2 +-
 interfaces/player/SonarInterface.cc                |    2 +-
 interfaces/player/SonarInterface.hh                |    2 +-
 interfaces/player/player.h                         |    2 +-
 interfaces/player/player_cfgs/CMakeLists.txt       |   11 +-
 interfaces/player/player_cfgs/epuck.cfg            |  236 ---
 interfaces/player/player_cfgs/epuck_single.cfg     |   33 -
 interfaces/player/player_cfgs/gazebo.cfg           |  105 --
 interfaces/player/player_cfgs/pioneer2dx.cfg       |   17 +-
 interfaces/player/player_cfgs/pioneerarm.cfg       |   34 -
 media/CMakeLists.txt                               |    7 +-
 media/materials/programs/CMakeLists.txt            |    8 +-
 .../programs/camera_distortion_map_fs.glsl         |   20 +
 .../programs/camera_distortion_map_vs.glsl         |    7 +
 media/materials/programs/oculus.cg                 |   47 +
 media/materials/programs/warp.vert                 |    9 +
 media/materials/programs/warpWithChromeAb.frag     |   40 +
 media/materials/scripts/CMakeLists.txt             |    4 +
 media/materials/scripts/distortion.compositor      |   26 +
 media/materials/scripts/gazebo.material            |  350 +++-
 media/materials/scripts/glsl120.program            |   20 +
 media/materials/scripts/noise.compositor           |   43 +-
 media/materials/scripts/oculus.compositor          |   43 +
 media/materials/scripts/warp.material              |   21 +
 media/materials/textures/CMakeLists.txt            |    9 +
 media/materials/textures/bricks.png                |  Bin 0 -> 2816159 bytes
 media/materials/textures/building_frame.png        |  Bin 0 -> 411 bytes
 media/materials/textures/motorway.jpg              |  Bin 0 -> 955050 bytes
 media/materials/textures/primary.jpg               |  Bin 0 -> 430769 bytes
 media/materials/textures/residential.jpg           |  Bin 0 -> 22256 bytes
 media/materials/textures/secondary.jpg             |  Bin 0 -> 23884 bytes
 media/materials/textures/sidewalk.jpg              |  Bin 0 -> 33596 bytes
 media/materials/textures/steps.jpeg                |  Bin 0 -> 39345 bytes
 media/materials/textures/texture_information.txt   |    1 +
 media/materials/textures/trunk.jpg                 |  Bin 0 -> 47018 bytes
 media/models/CMakeLists.txt                        |   14 +
 media/rtshaderlib150/CMakeLists.txt                |   16 +
 media/rtshaderlib150/FFPLib_Common.glsl            |  253 +++
 media/rtshaderlib150/FFPLib_Fog.glsl               |  151 ++
 media/rtshaderlib150/FFPLib_Lighting.glsl          |  225 +++
 media/rtshaderlib150/FFPLib_Texturing.glsl         |  335 ++++
 media/rtshaderlib150/FFPLib_Transform.glsl         |   70 +
 media/rtshaderlib150/SGXLib_IntegratedPSSM.glsl    |  144 ++
 media/rtshaderlib150/SGXLib_NormalMapLighting.glsl |  288 +++
 media/rtshaderlib150/SGXLib_PerPixelLighting.glsl  |  227 +++
 media/rtshaderlib150/SampleLib_ReflectionMap.glsl  |   64 +
 media/rtshaderlib150/materials/CMakeLists.txt      |    4 +
 .../materials/RTShaderSystem.material              |  220 +++
 models/CMakeLists.txt                              |   12 +
 models/ground_plane/model.config                   |   16 +
 models/ground_plane/model.sdf                      |   39 +
 models/sun/model.config                            |   16 +
 models/sun/model.sdf                               |   16 +
 plugins/ArrangePlugin.cc                           |  210 +++
 plugins/ArrangePlugin.hh                           |  112 ++
 plugins/BreakableJointPlugin.cc                    |    2 +-
 plugins/BreakableJointPlugin.hh                    |    2 +-
 plugins/CMakeLists.txt                             |   32 +-
 plugins/CameraPlugin.cc                            |    2 +-
 plugins/CameraPlugin.hh                            |    3 +-
 plugins/CartDemoPlugin.cc                          |    2 +-
 plugins/CartDemoPlugin.hh                          |    5 +-
 plugins/ContactPlugin.cc                           |    2 +-
 plugins/ContactPlugin.hh                           |    4 +-
 plugins/DepthCameraPlugin.cc                       |    2 +-
 plugins/DepthCameraPlugin.hh                       |    3 +-
 plugins/DiffDrivePlugin.cc                         |   13 +-
 plugins/DiffDrivePlugin.hh                         |    4 +-
 plugins/ForceTorquePlugin.cc                       |    2 +-
 plugins/ForceTorquePlugin.hh                       |    2 +-
 plugins/GpuRayPlugin.cc                            |    2 +-
 plugins/GpuRayPlugin.hh                            |    3 +-
 plugins/HydraDemoPlugin.cc                         |   82 +
 plugins/HydraDemoPlugin.hh                         |   71 +
 plugins/HydraPlugin.cc                             |  376 ++++
 plugins/HydraPlugin.hh                             |  108 ++
 plugins/ImuSensorPlugin.cc                         |   69 +
 plugins/ImuSensorPlugin.hh                         |   58 +
 plugins/InitialVelocityPlugin.cc                   |   59 +
 plugins/InitialVelocityPlugin.hh                   |   51 +
 plugins/JointTrajectoryPlugin.cc                   |    4 +-
 plugins/JointTrajectoryPlugin.hh                   |    2 +-
 plugins/LiftDragPlugin.cc                          |    2 +-
 plugins/LiftDragPlugin.hh                          |    5 +-
 plugins/ModelPropShop.cc                           |    2 +-
 plugins/ModelPropShop.hh                           |    4 +-
 plugins/MudPlugin.cc                               |    2 +-
 plugins/MudPlugin.hh                               |    5 +-
 plugins/PressurePlugin.cc                          |    2 +-
 plugins/PressurePlugin.hh                          |    4 +-
 plugins/RayPlugin.cc                               |    2 +-
 plugins/RayPlugin.hh                               |    3 +-
 plugins/RaySensorNoisePlugin.cc                    |    2 +-
 plugins/RaySensorNoisePlugin.hh                    |    2 +-
 plugins/RubblePlugin.cc                            |    5 +-
 plugins/RubblePlugin.hh                            |    4 +-
 plugins/SkidSteerDrivePlugin.cc                    |   11 +-
 plugins/SkidSteerDrivePlugin.hh                    |    5 +-
 plugins/SonarPlugin.cc                             |    2 +-
 plugins/SonarPlugin.hh                             |    3 +-
 plugins/SphereAtlasDemoPlugin.cc                   |    2 +-
 plugins/SphereAtlasDemoPlugin.hh                   |    5 +-
 plugins/TimerGUIPlugin.cc                          |  210 +++
 plugins/TimerGUIPlugin.hh                          |   96 +
 plugins/VehiclePlugin.cc                           |   18 +-
 plugins/VehiclePlugin.hh                           |    5 +-
 plugins/events/CMakeLists.txt                      |   30 +
 plugins/events/EventSource.cc                      |   84 +
 plugins/events/EventSource.hh                      |  104 ++
 plugins/events/ExistenceEventSource.cc             |   65 +
 plugins/events/ExistenceEventSource.hh             |   56 +
 plugins/events/InRegionEventSource.cc              |  158 ++
 plugins/events/InRegionEventSource.hh              |  119 ++
 plugins/events/SimEventsException.hh               |   31 +
 plugins/events/SimEventsPlugin.cc                  |  153 ++
 plugins/events/SimEventsPlugin.hh                  |   83 +
 plugins/events/SimStateEventSource.cc              |   58 +
 plugins/events/SimStateEventSource.hh              |   54 +
 test/CMakeLists.txt                                |    5 +-
 test/ServerFixture.cc                              |  101 +-
 test/ServerFixture.hh                              |   46 +-
 test/cmake/CMakeLists.txt                          |    5 +-
 test/cmake/config-cmake.cc                         |    5 +-
 test/cmake/plugin/CMakeLists.txt                   |    4 +-
 .../materials/textures/cordless_drill.png          |  Bin 0 -> 40661 bytes
 test/data/cordless_drill/meshes/cordless_drill.dae |  138 ++
 test/data/pr2_state_log_expected.h                 |    2 +-
 test/data/zero_count.dae                           |  168 ++
 test/examples/example_plugins.cc                   |   15 +-
 test/gtest/src/gtest-all.cc                        |    2 +-
 test/gtest/src/gtest-death-test.cc                 |    2 +-
 test/gtest/src/gtest-filepath.cc                   |    2 +-
 test/gtest/src/gtest-port.cc                       |    2 +-
 test/gtest/src/gtest-printers.cc                   |    2 +-
 test/gtest/src/gtest-test-part.cc                  |    2 +-
 test/gtest/src/gtest-typed-test.cc                 |    2 +-
 test/gtest/src/gtest.cc                            |    2 +-
 test/gtest/src/gtest_main.cc                       |    2 +-
 test/integration/CMakeLists.txt                    |   29 +-
 test/integration/SimplePendulumIntegrator.hh       |    2 +-
 test/integration/aero_plugin.cc                    |    2 +-
 test/integration/bandwidth.cc                      |    2 +-
 test/integration/camera.cc                         |   22 +-
 test/integration/camera_sensor.cc                  |  112 +-
 test/integration/concave_mesh.cc                   |    2 +-
 test/integration/contact_sensor.cc                 |   24 +-
 test/integration/dem.cc                            |    2 +-
 test/integration/factory.cc                        |  194 --
 test/integration/file_handling.cc                  |    2 +-
 test/integration/gpu_laser.cc                      |   83 +-
 test/integration/gripper.cc                        |   22 +-
 test/integration/gz_camera.cc                      |    8 +-
 test/integration/gz_joint.cc                       |   20 +-
 test/integration/gz_log.cc                         |    6 +-
 test/integration/gz_model.cc                       |   14 +-
 test/integration/gz_physics.cc                     |   18 +-
 test/integration/gz_world.cc                       |    6 +-
 test/integration/heightmap.cc                      |   14 +-
 test/integration/heights_cmp.h                     |    2 +-
 test/integration/helper_physics_generator.hh       |    4 +-
 test/integration/images_cmp.h                      |    2 +-
 test/integration/imu.cc                            |  318 ----
 test/integration/insert_model.cc                   |  142 ++
 test/integration/insert_model.hh                   |   32 +
 test/integration/joint_controller.cc               |    4 +-
 test/integration/joint_force_torque.cc             |    2 +-
 test/integration/joint_gearbox.cc                  |    2 +-
 test/integration/joint_revolute.cc                 |   20 +-
 test/integration/joint_screw.cc                    |  163 +-
 test/integration/joint_set_position_test.cc        |  593 ++++++
 test/integration/joint_spawn.cc                    |   99 +-
 test/integration/joint_test.cc                     |   96 +-
 test/integration/joint_test.hh                     |    2 +-
 test/integration/joint_universal.cc                |   86 +-
 test/integration/laser.cc                          |    6 +-
 test/integration/manpages.cc                       |    2 +-
 test/integration/model.cc                          |   62 +
 test/integration/model_database.cc                 |    2 +-
 test/integration/multicamera_sensor.cc             |  248 ++-
 test/integration/noise.cc                          |    2 +-
 test/integration/nondefault_world.cc               |    4 +-
 test/integration/ogre_log.cc                       |    2 +-
 test/integration/physics.cc                        |   44 +-
 .../physics_basic_controller_response.cc           |  151 ++
 test/integration/physics_collision.cc              |   80 +
 test/integration/physics_friction.cc               |    2 +-
 test/integration/physics_inertia_ratio.cc          |   97 +
 test/integration/physics_link.cc                   |   28 +-
 test/integration/physics_msgs.cc                   |   12 +-
 test/integration/physics_thread_safe.cc            |    2 +-
 test/integration/pioneer2dx.cc                     |    2 +-
 test/integration/player/CMakeLists.txt             |    8 +-
 test/integration/player/player.cc                  |    2 +-
 test/integration/plugin.cc                         |  136 ++
 test/integration/polyline.cc                       |  113 ++
 test/integration/pr2.cc                            |    6 +-
 test/integration/projector.cc                      |    2 +-
 test/integration/rendering_sensor.cc               |    2 +-
 test/integration/road.cc                           |   67 +
 test/integration/scans_cmp.h                       |    2 +-
 test/integration/sdf.cc                            |    2 +-
 test/integration/sensor.cc                         |   41 +
 test/integration/server_fixture.cc                 |    2 +-
 test/integration/set_joint.cc                      |  691 -------
 test/integration/set_pose.cc                       |  635 -------
 test/integration/set_pose_loop.cc                  |  835 ---------
 test/integration/sim_events.cc                     |  228 +++
 test/integration/speed.cc                          |    2 +-
 test/integration/speed_pr2.cc                      |    2 +-
 test/integration/state_log.cc                      |    2 +-
 test/integration/stress_spawn_models.cc            |    4 +-
 test/integration/surface_properties.cc             |    4 +-
 test/integration/transceiver.cc                    |   18 +-
 test/integration/transport.cc                      |    2 +-
 test/integration/transport_stress_nodes.cc         |    2 +-
 test/integration/world.cc                          |  181 +-
 test/integration/world_clone.cc                    |  219 +++
 test/integration/world_entity_below_point.cc       |    2 +-
 test/integration/world_population.cc               |  195 ++
 test/integration/world_reset.cc                    |    2 +-
 test/integration/worlds_installed.cc               |   11 +-
 test/performance/CMakeLists.txt                    |    4 +-
 test/performance/RAMLibrary.hh                     |    2 +-
 test/performance/RAMLibrary_TEST.cc                |    2 +-
 test/performance/factory_stress.cc                 |    2 +-
 test/performance/gz_stress.cc                      |    2 +-
 test/performance/image_convert_stress.cc           |   70 +
 test/performance/sensor_stress.cc                  |    2 +-
 test/performance/set_world_pose.cc                 |   55 +
 test/performance/transport_stress.cc               |    2 +-
 test/pkgconfig/config-pkgconfig.cc                 |   15 +-
 test/plugins/CMakeLists.txt                        |    8 +-
 test/plugins/ExceptionModelPluginConstructor.cc    |   38 +
 test/plugins/ExceptionModelPluginConstructor.hh    |   39 +
 test/plugins/ExceptionModelPluginInit.cc           |   42 +
 test/plugins/ExceptionModelPluginInit.hh           |   42 +
 test/plugins/ExceptionModelPluginLoad.cc           |   37 +
 test/plugins/ExceptionModelPluginLoad.hh           |   39 +
 test/plugins/ForceTorqueModelRemovalTestPlugin.cc  |    2 +-
 test/plugins/ForceTorqueModelRemovalTestPlugin.hh  |    5 +-
 test/plugins/Issue1208Plugin.cc                    |   17 +
 test/plugins/Issue1208Plugin.hh                    |   45 +
 test/plugins/ModelTrajectoryTestPlugin.cc          |    2 +-
 test/plugins/ModelTrajectoryTestPlugin.hh          |    5 +-
 test/plugins/SpringTestPlugin.cc                   |    2 +-
 test/plugins/SpringTestPlugin.hh                   |    5 +-
 test/regression/1082_pid_limits.cc                 |    2 +-
 test/regression/1112_force_torque_model_removal.cc |    4 +-
 test/regression/1124_collision_pose.cc             |  124 ++
 test/regression/1146_collision_bounding_box.cc     |   10 +-
 test/regression/1208_world_plugin_init.cc          |   54 +
 test/regression/1375_world_reset.cc                |   58 +
 test/regression/346_save_lights.cc                 |   93 +
 test/regression/494_joint_axis_frame.cc            |   93 +-
 test/regression/624_collision_world_pose.cc        |    2 +-
 test/regression/846_typo_in_camera.cc              |    2 +-
 test/regression/876_random_number_generator.cc     |    4 +-
 test/regression/940_force_torque_sensor_frame.cc   |  171 ++
 test/regression/978_joint_anchor.cc                |    2 +-
 test/regression/CMakeLists.txt                     |   15 +-
 test/testfiles/hello_world.cc                      |    2 +-
 test/util.hh                                       |   17 +-
 test/worlds/align.world                            |   29 +
 test/worlds/box_plane_gravity.world                |  113 --
 test/worlds/camera_rotation_test.world             |    2 +-
 test/worlds/empty_population.world                 |   80 +
 .../exception_model_plugin_constructor_test.world  |   28 +
 test/worlds/exception_model_plugin_init_test.world |   28 +
 test/worlds/exception_model_plugin_load_test.world |   28 +
 test/worlds/force_torque_frame_test.world          |  245 +++
 test/worlds/force_torque_test2.world               |    2 +-
 test/worlds/imu_sensor_test.world                  |  326 ++++
 test/worlds/inertia_ratio_pendulum.world           |  126 ++
 test/worlds/inertia_ratio_reduction_test.world     |  336 ++++
 test/worlds/inertia_ratio_reduction_test2.world    |  308 ++++
 test/worlds/issue_1208.world                       |    6 +
 test/worlds/set_joint_position.world               |  539 ++++++
 test/worlds/sim_events.world                       |  119 ++
 test/worlds/spring_damper_test.world               |  102 ++
 test/worlds/universal_joint_test.world             |    8 +-
 tools/CMakeLists.txt                               |   49 +-
 tools/api_checker.bash                             |    2 +-
 tools/bitbucket_pullrequests                       |   69 +-
 tools/check_test_ran.py                            |   18 +
 tools/code_check.sh                                |   15 +-
 tools/cpplint_to_cppcheckxml.py                    |    4 +-
 tools/gz.1.roff                                    |   10 +-
 tools/gz.cc                                        |   29 +-
 tools/gz.hh                                        |    2 +-
 tools/gz_TEST.cc                                   |   59 +-
 tools/gz_log.cc                                    |    8 +-
 tools/gz_log.hh                                    |    2 +-
 tools/gz_log_TEST.cc                               |   30 +-
 tools/gz_roff.py                                   |    2 +-
 tools/gz_topic.cc                                  |    2 +-
 tools/gz_topic.hh                                  |    2 +-
 tools/gzfactory.cc                                 |  239 ---
 tools/gzlog.cc                                     | 1084 -----------
 tools/gzmodel_create                               |   27 -
 tools/gzprop                                       |   58 +-
 tools/gzprop.1.ronn                                |    2 +-
 tools/gzsdf.cc                                     |  203 ---
 tools/gzstats.cc                                   |  189 --
 tools/gztopic.cc                                   |  568 ------
 tools/sdf2pov.cc                                   |    2 +-
 tools/website/backup.rb                            |    2 +-
 tools/website/gazebo_install.run                   |    4 +-
 worlds/CMakeLists.txt                              |   11 +
 worlds/actor.world                                 |  159 ++
 worlds/arat.world                                  |  184 ++
 worlds/deprecated_worlds/actor_circle.world        |    6 +-
 worlds/deprecated_worlds/actor_demo.world          |    3 +-
 worlds/deprecated_worlds/two_actors.world          |    6 +-
 worlds/hydra_demo.world                            |   44 +
 worlds/initial_velocity.world                      |   60 +
 worlds/joint_friction_demo.rworld                  |  227 +++
 worlds/joint_friction_demo.world                   |  701 ++++++++
 worlds/pioneer2dx_camera.world                     |   38 +
 worlds/pioneer2dx_laser.world                      |   38 +
 worlds/pioneer2dx_laser_camera.world               |   56 +
 worlds/polyline.world                              |  137 ++
 worlds/population.world                            |  145 ++
 worlds/road_textures.world                         |  164 ++
 worlds/timer_gui.world                             |   22 +
 1424 files changed, 51745 insertions(+), 17800 deletions(-)

diff --cc README
index 3839a7c,ed0392c..5a9d400
--- a/README
+++ b/README
@@@ -10,25 -10,32 +10,46 @@@ Installatio
  ------------
  Instructions are located at
  
-   http://gazebosim.org/documentation.html
+   http://gazebosim.org/install
+ 
+ Gazebo cmake parameters available at configuring time:
+ 
+  - USE_HOST_CFLAGS (bool) [default True]
+    Check the building machine for supported compiler optimizations and use 
+    them to build the software.
+  - USE_UPSTREAM_CFLAGS (bool) [default True]
+    Use the recommend gazebo developers compiler optimizations flags
+  - ENABLE_TESTS_COMPILATION (bool) [default True]
+    Enabled or disable the test suite compilation. 
+  - USE_LOW_MEMORY_TEST (bool) [default False]
+    Use reduced version of tests which need less quantity of RAM memory
+    available.
+  - FORCE_GRAPHIC_TESTS_COMPILATION (bool) [default False]
+    Ignore system checks to look for graphic and acceleration support and
+    compile all the test suite.
+  - ENABLE_SCREEN_TESTS (bool) [default True]
+    Enable or disable tests that need screen rendering to run properly.
+    Headless machines or machines with the screen turned off should set this to
+    False 
  
 +Gazebo cmake parameters available at configuring time:
 + - USE_LOW_MEMORY_TEST (bool) [default False]
 +   Use reduced version of tests which need less quantity of RAM memory
 +   available.
 + - FORCE_GRAPHIC_TESTS_COMPILATION (bool) [default False]
 +   Ignore system checks to look for graphic and acceleration support and
 +   compile all the test suite.
 + - ENABLE_TESTS_COMPILATION (bool) [default True]
 +   Enabled or disable the test suite compilation. 
 + - ENABLE_SCREEN_TESTS (bool) [default True]
 +   Enable or disable tests that need screen rendering to run properly.
 +   Headless machines or machines with the screen turned off should set this to
 +   False 
 +
  Uninstallation
  --------------
- Read the installation instructions (http://gazebosim.org/documentation.html) in the online manual for generic instructions.  For most people, the following sequence will suffice:
+ Read the uninstallation instructions (http://gazebosim.org/uninstall)
+ in the online manual for generic instructions.  For most people, the following sequence will suffice:
  
    $ make uninstall (inside the gazebo-trunk/build directory)
  
diff --cc gazebo/Server.cc
index 34cfed6,4c12d7a..2f31ecf
--- a/gazebo/Server.cc
+++ b/gazebo/Server.cc
@@@ -18,9 -18,10 +18,12 @@@
  #include <signal.h>
  #include <boost/lexical_cast.hpp>
  #include <boost/algorithm/string.hpp>
+ #include <boost/filesystem.hpp>
+ 
+ #include <sdf/sdf.hh>
  
 +#include <sdf/sdf.hh>
 +
  #include "gazebo/gazebo.hh"
  #include "gazebo/transport/transport.hh"
  
diff --cc gazebo/gazebo.cc
index 37d669d,c6269a0..91f5c6c
--- a/gazebo/gazebo.cc
+++ b/gazebo/gazebo.cc
@@@ -88,14 -91,8 +91,14 @@@ void gazebo::printVersion(
  }
  
  /////////////////////////////////////////////////
- void gazebo::add_plugin(const std::string &_filename)
+ void gazebo::addPlugin(const std::string &_filename)
  {
 +  gazebo::addPlugin(_filename);
 +}
 +
 +/////////////////////////////////////////////////
 +void gazebo::addPlugin(const std::string &_filename)
 +{
    if (_filename.empty())
      return;
    gazebo::SystemPluginPtr plugin =
@@@ -153,109 -229,21 +235,167 @@@ bool gazebo::shutdown(
    util::LogRecord::Instance()->Fini();
    g_plugins.clear();
    gazebo::transport::fini();
+ 
+   gazebo::physics::fini();
+ 
+   gazebo::sensors::fini();
+ 
+   delete g_master;
+   g_master = NULL;
+ 
+   // Cleanup model database.
+   common::ModelDatabase::Instance()->Fini();
+ 
+   return true;
+ }
+ 
+ /////////////////////////////////////////////////
++gazebo::physics::WorldPtr gazebo::loadWorld(const std::string &_worldFile)
++{
++  gazebo::physics::WorldPtr world;
++
++  // Load the world file
++  sdf::SDFPtr sdf(new sdf::SDF);
++  if (!sdf::init(sdf))
++  {
++    gzerr << "Unable to initialize sdf\n";
++    return world;
++  }
++
++  // Find the file.
++  std::string fullFile = gazebo::common::find_file(_worldFile);
++
++  if (fullFile.empty())
++  {
++    gzerr << "Unable to find file[" << _worldFile << "]\n";
++    return world;
++  }
++
++  if (!sdf::readFile(fullFile, sdf))
++  {
++    gzerr << "Unable to read sdf file[" << "empty.world" << "]\n";
++    return world;
++  }
++
++  world = gazebo::physics::create_world();
++  gazebo::physics::load_world(world, sdf->root->GetElement("world"));
++
++  gazebo::physics::init_world(world);
++
++  return world;
++}
++
++/////////////////////////////////////////////////
++void gazebo::runWorld(gazebo::physics::WorldPtr _world,
++                      unsigned int _iterations)
++{
++  if (!_world)
++    gzerr << "World pointer is NULL\n";
++  else
++    _world->RunBlocking(_iterations);
 +}
 +
 +/////////////////////////////////////////////////
 +bool gazebo::setupServer(int _argc, char **_argv)
 +{
 +  std::string host = "";
 +  unsigned int port = 0;
 +
 +  gazebo::transport::get_master_uri(host, port);
 +
 +  g_master = new gazebo::Master();
 +  g_master->Init(port);
 +  g_master->RunThread();
 +
 +  if (!setup(_argc, _argv))
 +  {
 +    gzerr << "Unable to setup Gazebo\n";
 +    return false;
 +  }
 +
 +  if (!sensors::load())
 +  {
 +    gzerr << "Unable to load sensors\n";
 +    return false;
 +  }
 +
 +  if (!gazebo::physics::load())
 +  {
 +    gzerr << "Unable to initialize physics.\n";
 +    return false;
 +  }
 +
 +  if (!sensors::init())
 +  {
 +    gzerr << "Unable to initialize sensors\n";
 +    return false;
 +  }
 +
 +  return true;
 +}
 +
 +/////////////////////////////////////////////////
 +bool gazebo::setupClient(int _argc, char **_argv)
 +{
 +  if (!setup(_argc, _argv))
 +  {
 +    gzerr << "Unable to setup Gazebo\n";
 +    return false;
 +  }
 +
 +  common::Time waitTime(1, 0);
 +  int waitCount = 0;
 +  int maxWaitCount = 10;
 +
 +  // Wait for namespaces.
 +  while (!gazebo::transport::waitForNamespaces(waitTime) &&
 +      (waitCount++) < maxWaitCount)
 +  {
 +    gzwarn << "Waited " << waitTime.Double() << "seconds for namespaces.\n";
 +  }
 +
 +  if (waitCount >= maxWaitCount)
 +  {
 +    gzerr << "Waited " << (waitTime * waitCount).Double()
 +      << " seconds for namespaces. Giving up.\n";
 +  }
 +
 +  return true;
 +}
 +
 +/////////////////////////////////////////////////
 +bool gazebo::shutdown()
 +{
 +  gazebo::physics::stop_worlds();
 +
 +  gazebo::sensors::stop();
 +
 +  // Stop log recording
 +  util::LogRecord::Instance()->Stop();
 +
 +  // Stop transport
 +  gazebo::transport::stop();
 +
 +  // Make sure to shut everything down.
 +  boost::mutex::scoped_lock lock(fini_mutex);
 +  util::LogRecord::Instance()->Fini();
 +  g_plugins.clear();
 +  gazebo::transport::fini();
 +
 +  gazebo::physics::fini();
 +
 +  gazebo::sensors::fini();
 +
 +  delete g_master;
 +  g_master = NULL;
 +
 +  // Cleanup model database.
 +  common::ModelDatabase::Instance()->Fini();
 +
 +  return true;
 +}
 +
 +/////////////////////////////////////////////////
  gazebo::physics::WorldPtr gazebo::loadWorld(const std::string &_worldFile)
  {
    gazebo::physics::WorldPtr world;
diff --cc gazebo/gui/ModelListWidget.cc
index b194b37,c10c6bb..bd043a2
--- a/gazebo/gui/ModelListWidget.cc
+++ b/gazebo/gui/ModelListWidget.cc
@@@ -1564,15 -1558,12 +1558,16 @@@ void ModelListWidget::FillPropertyTree(
    // Inertial
    inertialItem = this->variantManager->addProperty(
        QtVariantPropertyManager::groupTypeId(), tr("inertial"));
-   if (_parent)
-     _parent->addSubProperty(inertialItem);
-   else
-     this->propTreeBrowser->addProperty(inertialItem);
+   this->AddProperty(inertialItem, _parent);
+ 
+   // TODO: disable setting inertial properties until there are tests
+   // in place to verify the functionality
+   inertialItem->setEnabled(false);
  
 +  // TODO: disable setting inertial properties until there are tests
 +  // in place to verify the functionality
 +  inertialItem->setEnabled(false);
 +
    // Inertial::Mass
    item = this->variantManager->addProperty(QVariant::Double, tr("mass"));
    if (_msg.inertial().has_mass())
diff --cc gazebo/gui/building/BuildingEditorEvents.hh
index eb058dc,0ba2977..0000000
deleted file mode 100644,100644
--- a/gazebo/gui/building/BuildingEditorEvents.hh
+++ /dev/null
@@@ -1,254 -1,394 +1,0 @@@
--/*
-  * Copyright 2013 Open Source Robotics Foundation
 - * Copyright (C) 2015 Open Source Robotics Foundation
-- *
-- * Licensed under the Apache License, Version 2.0 (the "License");
-- * you may not use this file except in compliance with the License.
-- * You may obtain a copy of the License at
-- *
-- *     http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- *
--*/
--#ifndef _BUILDING_EDITOR_EVENTS_HH_
--#define _BUILDING_EDITOR_EVENTS_HH_
--
--#include <string>
 -#include "gazebo/gui/qt.h"
--#include "gazebo/common/Event.hh"
--#include "gazebo/util/system.hh"
--
--namespace gazebo
--{
--  namespace gui
--  {
--    namespace editor
--    {
--      class GAZEBO_VISIBLE Events
--      {
-         /// \brief Connect a boost::slot to the create editor item signal
 -        /// \brief Connect a Gazebo event to the toggle edit mode signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        /// \return a connection
 -        public: template<typename T>
 -            static event::ConnectionPtr
 -                ConnectToggleEditMode(T _subscriber)
 -          { return toggleEditMode.Connect(_subscriber); }
 -
 -        /// \brief Disconnect a Gazebo event from the toggle edit mode signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        public: static void DisconnectToggleEditMode(
 -            event::ConnectionPtr _subscriber)
 -          { toggleEditMode.Disconnect(_subscriber); }
 -
 -        /// \brief Connect a Gazebo event to the create editor item signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr
--                ConnectCreateBuildingEditorItem(T _subscriber)
--          { return createBuildingEditorItem.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the create editor item signal
 -        /// \brief Disconnect a Gazebo event from the create editor item signal
--        /// \param[in] _subscriber the subscriber to this event
--        public: static void DisconnectCreateBuildingEditorItem(
--            event::ConnectionPtr _subscriber)
--          { createBuildingEditorItem.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the save model signal
 -        /// \brief Connect a Gazebo event to the color selected signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        /// \return a connection
 -        public: template<typename T>
 -            static event::ConnectionPtr
 -                ConnectColorSelected(T _subscriber)
 -          { return colorSelected.Connect(_subscriber); }
 -
 -        /// \brief Disconnect a Gazebo event from the color selected signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        public: static void DisconnectColorSelected(
 -            event::ConnectionPtr _subscriber)
 -          { colorSelected.Disconnect(_subscriber); }
 -
 -        /// \brief Connect a Gazebo event to the texture selected signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        /// \return a connection
 -        public: template<typename T>
 -            static event::ConnectionPtr
 -                ConnectTextureSelected(T _subscriber)
 -          { return textureSelected.Connect(_subscriber); }
 -
 -        /// \brief Disconnect a Gazebo event from the texture selected signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        public: static void DisconnectTextureSelected(
 -            event::ConnectionPtr _subscriber)
 -          { textureSelected.Disconnect(_subscriber); }
 -
 -        /// \brief Connect a Gazebo event to the save model signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr ConnectSaveBuildingModel(T _subscriber)
--          { return saveBuildingModel.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the save model signal
 -        /// \brief Disconnect a Gazebo event from the save model signal
--        /// \param[in] _subscriber the subscriber to this event
--        public: static void DisconnectSaveBuildingModel(
--            event::ConnectionPtr _subscriber)
--          { saveBuildingModel.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the finish model signal
 -        /// \brief Connect a Gazebo event to the finish model signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr
--            ConnectFinishBuildingModel(T _subscriber)
--          { return finishBuildingModel.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the finish model signal
 -        /// \brief Disconnect a Gazebo event from the finish model signal
--        /// \param[in] _subscriber the subscriber to this event
--        public: static void DisconnectFinishBuildingModel(
--            event::ConnectionPtr _subscriber)
--          { finishBuildingModel.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the discard model signal
 -        /// \brief Connect a Gazebo event to the new model signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr
-                 ConnectDiscardBuildingModel(T _subscriber)
-           { return discardBuildingModel.Connect(_subscriber); }
 -                ConnectNewBuildingModel(T _subscriber)
 -          { return newBuildingModel.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the discard model signal
 -        /// \brief Disconnect a Gazebo event from the new model signal
--        /// \param[in] _subscriber the subscriber to this event
-         public: static void DisconnectDiscardBuildingModel(
 -        public: static void DisconnectNewBuildingModel(
--            event::ConnectionPtr _subscriber)
-           { discardBuildingModel.Disconnect(_subscriber); }
 -          { newBuildingModel.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the change model signal
 -        /// \brief Connect a Gazebo event to the change model signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr
--                ConnectChangeBuildingLevel(T _subscriber)
--          { return changeBuildingLevel.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the change level signal
 -        /// \brief Disconnect a Gazebo event from the change level signal
--        /// \param[in] _subscriber the subscriber to this event
--        public: static void DisconnectChangeBuildingLevel(
--            event::ConnectionPtr _subscriber)
--          { changeBuildingLevel.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the add level signal
 -        /// \brief Connect a Gazebo event to the add level signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr ConnectAddBuildingLevel(T _subscriber)
--          { return addBuildingLevel.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the add level signal
 -        /// \brief Disconnect a Gazebo event from the add level signal
--        /// \param[in] _subscriber the subscriber to this event
--        public: static void DisconnectAddBuildingLevel(
--            event::ConnectionPtr _subscriber)
--          { addBuildingLevel.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the delete level signal
 -        /// \brief Connect a Gazebo event to the delete level signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr
--            ConnectDeleteBuildingLevel(T _subscriber)
--          { return deleteBuildingLevel.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the delete level signal
 -        /// \brief Disconnect a Gazebo event from the delete level signal
--        /// \param[in] _subscriber the subscriber to this event
--        public: static void DisconnectDeleteBuildingLevel(
--              event::ConnectionPtr _subscriber)
--          { deleteBuildingLevel.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the change level name signal
 -        /// \brief Connect a Gazebo event to the show floorplan signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        /// \return a connection
 -        public: template<typename T>
 -            static event::ConnectionPtr ConnectShowFloorplan(T _subscriber)
 -          { return showFloorplan.Connect(_subscriber); }
 -
 -        /// \brief Disconnect a Gazebo event from the show floorplan signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        public: static void DisconnectShowFloorplan(
 -              event::ConnectionPtr _subscriber)
 -          { showFloorplan.Disconnect(_subscriber); }
 -
 -        /// \brief Connect a Gazebo event to the trigger show floorplan
 -        /// signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr
-                 ConnectChangeBuildingLevelName(T _subscriber)
-           { return changeBuildingLevelName.Connect(_subscriber); }
 -            ConnectTriggerShowFloorplan(T _subscriber)
 -          { return triggerShowFloorplan.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the change level name signal
 -        /// \brief Disconnect a Gazebo event from the trigger show floorplan
 -        /// signal
--        /// \param[in] _subscriber the subscriber to this event
-         public: static void DisconnectChangeBuildingLevelName(
 -        public: static void DisconnectTriggerShowFloorplan(
--              event::ConnectionPtr _subscriber)
-           { changeBuildingLevelName.Disconnect(_subscriber); }
 -          { triggerShowFloorplan.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the change zoom signal
 -        /// \brief Connect a Gazebo event to the show elements signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        /// \return a connection
 -        public: template<typename T>
 -            static event::ConnectionPtr ConnectShowElements(T _subscriber)
 -          { return showElements.Connect(_subscriber); }
 -
 -        /// \brief Disconnect a Gazebo event from the show elements signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        public: static void DisconnectShowElements(
 -              event::ConnectionPtr _subscriber)
 -          { showElements.Disconnect(_subscriber); }
 -
 -        /// \brief Connect a Gazebo event to the trigger show elements
 -        /// signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        /// \return a connection
 -        public: template<typename T>
 -            static event::ConnectionPtr
 -            ConnectTriggerShowElements(T _subscriber)
 -          { return triggerShowElements.Connect(_subscriber); }
 -
 -        /// \brief Disconnect a Gazebo event from the trigger show elements
 -        /// signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        public: static void DisconnectTriggerShowElements(
 -              event::ConnectionPtr _subscriber)
 -          { triggerShowElements.Disconnect(_subscriber); }
 -
 -        /// \brief Connect a Gazebo event to the update level widget signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        /// \return a connection
 -        public: template<typename T>
 -            static event::ConnectionPtr
 -                ConnectUpdateLevelWidget(T _subscriber)
 -          { return updateLevelWidget.Connect(_subscriber); }
 -
 -        /// \brief Disconnect a Gazebo event from the update level widget signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        public: static void DisconnectUpdateLevelWidget(
 -              event::ConnectionPtr _subscriber)
 -          { updateLevelWidget.Disconnect(_subscriber); }
 -
 -        /// \brief Connect a Gazebo event to the change zoom signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--          static event::ConnectionPtr
--              ConnectChangeBuildingEditorZoom(T _subscriber)
--        { return changeBuildingEditorZoom.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the change zoom level signal
 -        /// \brief Disconnect a Gazebo event from the change zoom level signal
--        /// \param[in] _subscriber the subscriber to this event
--        public: static void DisconnectChangeBuildingEditorZoom(
--            event::ConnectionPtr _subscriber)
--          { changeBuildingEditorZoom.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the save signal
 -        /// \brief Connect a Gazebo event to the save signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr ConnectSaveBuildingEditor(T _subscriber)
--          { return saveBuildingEditor.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the save signal
 -        /// \brief Connect a Gazebo event to the save signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        /// \return a connection
 -        public: template<typename T>
 -            static event::ConnectionPtr ConnectSaveAsBuildingEditor
 -              (T _subscriber)
 -          { return saveAsBuildingEditor.Connect(_subscriber); }
 -
 -        /// \brief Disconnect a Gazebo event from the save signal
--        /// \param[in] _subscriber the subscriber to this event
--        public: static void DisconnectSaveBuildingEditor(
--            event::ConnectionPtr _subscriber)
--          { saveBuildingEditor.Disconnect(_subscriber); }
- 
-         /// \brief Connect a boost::slot to the done signal
-         /// \param[in] _subscriber the subscriber to this event
-         /// \return a connection
-         public: template<typename T>
-             static event::ConnectionPtr ConnectDoneBuildingEditor(T _subscriber)
-           { return doneBuildingEditor.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the done signal
 -        /// \brief Disconnect a Gazebo event from the save as signal
--        /// \param[in] _subscriber the subscriber to this event
-         public: static void DisconnectDoneBuildingEditor(
-                     event::ConnectionPtr _subscriber)
-                 { doneBuildingEditor.Disconnect(_subscriber); }
 -        public: static void DisconnectSaveAsBuildingEditor(
 -            event::ConnectionPtr _subscriber)
 -          { saveAsBuildingEditor.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the discard signal
 -        /// \brief Connect a Gazebo event to the new signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr
-             ConnectDiscardBuildingEditor(T _subscriber)
-           { return discardBuildingEditor.Connect(_subscriber); }
 -            ConnectNewBuildingEditor(T _subscriber)
 -          { return newBuildingEditor.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the discard signal
 -        /// \brief Disconnect a Gazebo event from the new signal
--        /// \param[in] _subscriber the subscriber to this event
-         public: static void DisconnectDiscardBuildingEditor(
 -        public: static void DisconnectNewBuildingEditor(
--              event::ConnectionPtr _subscriber)
-           { discardBuildingEditor.Disconnect(_subscriber); }
 -          { newBuildingEditor.Disconnect(_subscriber); }
--
-         /// \brief Connect a boost::slot to the exit signal
 -        /// \brief Connect a Gazebo event to the exit signal
--        /// \param[in] _subscriber the subscriber to this event
--        /// \return a connection
--        public: template<typename T>
--            static event::ConnectionPtr ConnectExitBuildingEditor(T _subscriber)
--          { return exitBuildingEditor.Connect(_subscriber); }
--
-         /// \brief Disconnect a boost::slot to the exit signal
 -        /// \brief Disconnect a Gazebo event from the exit signal
--        /// \param[in] _subscriber the subscriber to this event
--        public: static void DisconnectExitBuildingEditor(
--            event::ConnectionPtr _subscriber)
--          { exitBuildingEditor.Disconnect(_subscriber); }
 -
 -        /// \brief Toggle if the edit mode was checked or not.
 -        public: static event::EventT<void (bool)> toggleEditMode;
 -
 -        /// \brief Connect a Gazebo event to the name changed signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        /// \return a connection
 -        public: template<typename T>
 -            static event::ConnectionPtr ConnectBuildingNameChanged
 -              (T _subscriber)
 -          { return buildingNameChanged.Connect(_subscriber); }
 -
 -        /// \brief Disconnect a Gazebo event from the exit signal
 -        /// \param[in] _subscriber the subscriber to this event
 -        public: static void ConnectBuildingNameChanged(
 -            event::ConnectionPtr _subscriber)
 -          { buildingNameChanged.Disconnect(_subscriber); }
--
--        /// \brief An editor item is to be created
--        public: static event::EventT<void (std::string)>
--            createBuildingEditorItem;
 -
 -        /// \brief A color has been selected.
 -        public: static event::EventT<void (QColor)> colorSelected;
 -
 -        /// \brief A texture has been selected.
 -        public: static event::EventT<void (QString)> textureSelected;
--
--        /// \brief A model has been saved with a name and a location
--        public: static event::EventT<void (std::string, std::string)>
--            saveBuildingModel;
--
--        /// \brief A model has been completed and uploaded onto the server.
--        public: static event::EventT<void ()> finishBuildingModel;
--
-         /// \brief A model has been discarded
-         public: static event::EventT<void ()> discardBuildingModel;
 -        /// \brief A new model has been started
 -        public: static event::EventT<void ()> newBuildingModel;
--
--        /// \brief The current level has been changed
--        public: static event::EventT<void (int)> changeBuildingLevel;
--
--        /// \brief A new level has been added
--        public: static event::EventT<void ()> addBuildingLevel;
--
-         /// \brief A new level has been deleted
-         public: static event::EventT<void (int)> deleteBuildingLevel;
 -        /// \brief A level has been deleted
 -        public: static event::EventT<void ()> deleteBuildingLevel;
--
-         /// \brief The current level name has been changed
 -        /// \brief Show or hide floorplan
 -        public: static event::EventT<void ()> showFloorplan;
 -
 -        /// \brief Trigger show floorplan
 -        public: static event::EventT<void ()> triggerShowFloorplan;
 -
 -        /// \brief Show or hide building elements
 -        public: static event::EventT<void ()> showElements;
 -
 -        /// \brief Trigger show elements
 -        public: static event::EventT<void ()> triggerShowElements;
 -
 -        /// \brief The levels have been changed
--        public: static event::EventT<void (int, std::string)>
-             changeBuildingLevelName;
 -            updateLevelWidget;
--
--        /// \brief The current zoom level has been changed
--        public: static event::EventT<void (double)> changeBuildingEditorZoom;
--
--        /// \brief Save the model
-         public: static event::EventT<void ()> saveBuildingEditor;
 -        public: static event::EventT<bool (std::string)> saveBuildingEditor;
--
-         /// \brief Discard the model
-         public: static event::EventT<void ()> discardBuildingEditor;
 -        /// \brief Save the model as
 -        public: static event::EventT<bool (std::string)> saveAsBuildingEditor;
--
-         /// \brief Finish creating the model, save, and exit
-         public: static event::EventT<void ()> doneBuildingEditor;
 -        /// \brief Make a new model
 -        public: static event::EventT<void ()> newBuildingEditor;
--
--        /// \brief Exit the editor mode with the option to save
--        public: static event::EventT<void ()> exitBuildingEditor;
 -
 -        /// \brief Name was changed in the editor palette
 -        public: static event::EventT<void (std::string)> buildingNameChanged;
--      };
--    }
--  }
--}
--#endif
diff --cc gazebo/gui/building/BuildingEditorPalette.cc
index 1a79160,9143cb8..34f9a30
--- a/gazebo/gui/building/BuildingEditorPalette.cc
+++ b/gazebo/gui/building/BuildingEditorPalette.cc
@@@ -197,23 -329,71 +329,85 @@@ void BuildingEditorPalette::OnCreateEdi
  }
  
  /////////////////////////////////////////////////
- void BuildingEditorPalette::OnSaveModel(const std::string &_saveName,
-     const std::string &/*_saveLocation*/)
+ void BuildingEditorPalette::OnBrush(int _buttonId)
+ {
+   if (_buttonId < static_cast<int>(this->dataPtr->colorList.size()))
+   {
+     this->OnColor(_buttonId);
+   }
+   else if (_buttonId < static_cast<int>(this->dataPtr->colorList.size()) +
+                        static_cast<int>(this->dataPtr->textureList.size()))
+   {
+     this->OnTexture(_buttonId -
+         static_cast<int>(this->dataPtr->colorList.size()));
+   }
+   else
+   {
+     gzwarn << "Brushes other than color and texture are handled elsewhere."
+            << std::endl;
+   }
+ }
+ 
+ /////////////////////////////////////////////////
+ void BuildingEditorPalette::OnColor(int _buttonId)
+ {
+   std::ostringstream colorStr;
+   colorStr << "color_" << _buttonId;
+   QColor color = this->dataPtr->colorList[_buttonId];
+   if (this->dataPtr->currentMode != colorStr.str())
+   {
+     gui::editor::Events::colorSelected(color);
+     this->dataPtr->currentMode = colorStr.str();
+ 
+     QPixmap colorCursor(30, 30);
+     colorCursor.fill(color);
+     QApplication::setOverrideCursor(QCursor(colorCursor));
+   }
+   else
+   {
+     gui::editor::Events::createBuildingEditorItem(std::string());
+   }
+ }
+ 
+ /////////////////////////////////////////////////
+ void BuildingEditorPalette::OnTexture(int _buttonId)
+ {
+   std::ostringstream textureStr;
+   textureStr << "texture_" << _buttonId;
+   QString texture = this->dataPtr->textureList[_buttonId];
+   if (this->dataPtr->currentMode != textureStr.str())
+   {
+     gui::editor::Events::textureSelected(texture);
+     this->dataPtr->currentMode = textureStr.str();
+ 
+     QPixmap textureCursor(this->dataPtr->textureList[_buttonId]);
+     textureCursor = textureCursor.scaled(QSize(30, 30), Qt::IgnoreAspectRatio,
+         Qt::SmoothTransformation);
+     QApplication::setOverrideCursor(textureCursor);
+   }
+   else
+   {
+     gui::editor::Events::createBuildingEditorItem(std::string());
+   }
+ }
+ 
+ /////////////////////////////////////////////////
+ void BuildingEditorPalette::mousePressEvent(QMouseEvent * /*_event*/)
  {
-   this->saveButton->setText("Save");
-   this->modelNameLabel->setText(tr(_saveName.c_str()));
+   // Cancel draw mode
+   gui::editor::Events::createBuildingEditorItem(std::string());
  }
 +
 +/////////////////////////////////////////////////
 +void BuildingEditorPalette::OnCreateEditorItem(const std::string &_type)
 +{
 +  if (_type.empty())
 +  {
 +    // Uncheck all the buttons
 +    for (std::list<QPushButton *>::iterator iter = this->brushes.begin();
 +        iter != this->brushes.end(); ++iter)
 +    {
 +      (*iter)->setChecked(false);
 +    }
 +  }
 +}
diff --cc gazebo/physics/Actor.cc
index 138e6da,fa68b07..2a3fe01
--- a/gazebo/physics/Actor.cc
+++ b/gazebo/physics/Actor.cc
@@@ -109,16 -109,14 +109,16 @@@ void Actor::Load(sdf::ElementPtr _sdf
  //    this->AddSphereInertia(linkSdf, math::Pose(), 1.0, 0.01);
  //    this->AddSphereCollision(linkSdf, actorName + "_pose_col",
  //                                             math::Pose(), 0.02);
-     this->AddBoxVisual(linkSdf, actorName + "_pose_vis", math::Pose(),
-                        math::Vector3(0.05, 0.05, 0.05), "Gazebo/White",
-                        Color::White);
+     // this->AddBoxVisual(linkSdf, actorName + "_pose_vis", math::Pose(),
+     //                   math::Vector3(0.05, 0.05, 0.05), "Gazebo/White",
+     //                   Color::White);
      this->AddActorVisual(linkSdf, actorName + "_visual", math::Pose());
- 
-     this->visualName = actorName + "::" + actorName + "_pose::"
+     std::string actorLinkName = actorName + "::" + actorName + "_pose";
+     this->visualName = actorLinkName + "::"
                               + actorName + "_visual";
  
 +    this->visualId = gazebo::physics::getUniqueId();
 +
      for (NodeMapIter iter = nodes.begin(); iter != nodes.end(); ++iter)
      {
        SkeletonNode* bone = iter->second;
diff --cc gazebo/physics/Base.cc
index 44cb453,736bd82..10ed015
--- a/gazebo/physics/Base.cc
+++ b/gazebo/physics/Base.cc
@@@ -298,14 -292,17 +292,23 @@@ BasePtr Base::GetByName(const std::stri
  }
  
  //////////////////////////////////////////////////
- std::string Base::GetScopedName() const
+ std::string Base::GetScopedName(bool _prependWorldName) const
+ {
+   if (_prependWorldName)
+     return this->world->GetName() + "::" + this->scopedName;
+   else
+     return this->scopedName;
+ }
+ 
+ //////////////////////////////////////////////////
+ void Base::ComputeScopedName()
  {
 +  return this->scopedName;
 +}
 +
 +//////////////////////////////////////////////////
 +void Base::ComputeScopedName()
 +{
    BasePtr p = this->parent;
    this->scopedName = this->GetName();
  
diff --cc gazebo/physics/Joint.cc
index 54723e3,7fe37b3..7439c9e
--- a/gazebo/physics/Joint.cc
+++ b/gazebo/physics/Joint.cc
@@@ -958,3 -1246,127 +1246,129 @@@ double Joint::GetWorldEnergyPotentialSp
      this->springReferencePosition[_index];
    return 0.5 * k * x * x;
  }
+ 
+ //////////////////////////////////////////////////
+ void Joint::CacheForceTorque()
+ {
+ }
+ 
+ //////////////////////////////////////////////////
+ bool Joint::FindAllConnectedLinks(const LinkPtr &_originalParentLink,
+   Link_V &_connectedLinks)
+ {
+   // debug
+   // std::string pn;
+   // if (_originalParentLink) pn = _originalParentLink->GetName();
+   // gzerr << "first call to find connected links: "
+   //       << " parent " << pn
+   //       << " this joint " << this->GetName() << "\n";
+ 
+   // unlikely, but check anyways to make sure we don't have a 0-height tree
+   if (this->childLink.get() == _originalParentLink.get())
+   {
+     // if parent is a child
+     gzerr << "we have a zero length loop.\n";
+     _connectedLinks.clear();
+     return false;
+   }
 -  else
++
++  // Legacy support for specifying axis in parent model frame (#494)
++  if (this->axisParentModelFrame[_index])
+   {
+     // add this->childLink to the list of descendent child links (should be
+     // the very first one added).
+     _connectedLinks.push_back(this->childLink);
+ 
+     // START RECURSIVE SEARCH, start adding child links of this->childLink
+     // to the collection of _connectedLinks.
+     return this->childLink->FindAllConnectedLinksHelper(_originalParentLink,
+       _connectedLinks, true);
+   }
+ }
+ 
+ //////////////////////////////////////////////////
+ math::Pose Joint::ComputeChildLinkPose(unsigned int _index,
+           double _position)
+ {
+   // child link pose
+   math::Pose childLinkPose = this->childLink->GetWorldPose();
+ 
+   // default return to current pose
+   math::Pose newRelativePose;
+   math::Pose newWorldPose = childLinkPose;
+ 
+   // get anchor and axis of the joint
+   math::Vector3 anchor;
+   math::Vector3 axis;
+ 
+   if (this->model->IsStatic())
+   {
+     /// \TODO: we want to get axis in global frame, but GetGlobalAxis
+     /// not implemented for static models yet.
+     axis = childLinkPose.rot.RotateVector(this->GetLocalAxis(_index));
+     anchor = childLinkPose.pos;
+   }
+   else
+   {
+     anchor = this->GetAnchor(_index);
+     axis = this->GetGlobalAxis(_index);
+   }
+ 
+   // delta-position along an axis
+   double dposition = _position - this->GetAngle(_index).Radian();
+ 
+   if (this->HasType(Base::HINGE_JOINT) ||
+       this->HasType(Base::UNIVERSAL_JOINT))
+   {
+     // relative to anchor point
+     math::Pose relativePose(childLinkPose.pos - anchor,
+                             childLinkPose.rot);
+ 
+     // take axis rotation and turn it into a quaternion
+     math::Quaternion rotation(axis, dposition);
+ 
+     // rotate relative pose by rotation
+ 
+     newRelativePose.pos = rotation.RotateVector(relativePose.pos);
+     newRelativePose.rot = rotation * relativePose.rot;
+ 
+     newWorldPose =
+       math::Pose(newRelativePose.pos + anchor, newRelativePose.rot);
+ 
+     // \TODO: ideally we want to set this according to
+     // Joint Trajectory velocity and use time step since last update.
+     /*
+     double dt =
+       this->dataPtr->model->GetWorld()->GetPhysicsEngine()->GetMaxStepTime();
+     this->ComputeAndSetLinkTwist(_link, newWorldPose, newWorldPose, dt);
+     */
+   }
+   else if (this->HasType(Base::SLIDER_JOINT))
+   {
+     // relative to anchor point
+     math::Pose relativePose(childLinkPose.pos - anchor,
+                             childLinkPose.rot);
+ 
+     // slide relative pose by dposition along axis
+     newRelativePose.pos = relativePose.pos + axis * dposition;
+     newRelativePose.rot = relativePose.rot;
+ 
+     newWorldPose =
+       math::Pose(newRelativePose.pos + anchor, newRelativePose.rot);
+ 
+     /// \TODO: ideally we want to set this according to Joint Trajectory
+     /// velocity and use time step since last update.
+     /*
+     double dt =
+       this->dataPtr->model->GetWorld()->GetPhysicsEngine()->GetMaxStepTime();
+     this->ComputeAndSetLinkTwist(_link, newWorldPose, newWorldPose, dt);
+     */
+   }
+   else
+   {
+     gzerr << "Setting joint position is only supported for"
+           << " hinge, universal and slider joints right now.\n";
+   }
+ 
+   return newWorldPose;
+ }
diff --cc gazebo/physics/JointController.cc
index 48f6e3a,d676509..f9b6851
--- a/gazebo/physics/JointController.cc
+++ b/gazebo/physics/JointController.cc
@@@ -300,32 -298,29 +298,32 @@@ void JointController::SetJointPosition(
  
  //////////////////////////////////////////////////
  void JointController::SetJointPositions(
-     const std::map<std::string, double> & /*_jointPositions*/)
+     const std::map<std::string, double> & _jointPositions)
  {
 +  gzwarn << "Setting joint positions is disabled, see issue #1138\n";
 +  return;
 +
    // go through all joints in this model and update each one
    //   for each joint update, recursively update all children
-   // std::map<std::string, JointPtr>::iterator iter;
-   // std::map<std::string, double>::const_iterator jiter;
- 
-   // for (iter = this->dataPtr->joints.begin();
-   //     iter != this->dataPtr->joints.end(); ++iter)
-   // {
-   //   // First try name without scope, i.e. joint_name
-   //   jiter = _jointPositions.find(iter->second->GetName());
- 
-   //   if (jiter == _jointPositions.end())
-   //   {
-   //     // Second try name with scope, i.e. model_name::joint_name
-   //     jiter = _jointPositions.find(iter->second->GetScopedName());
-   //     if (jiter == _jointPositions.end())
-   //       continue;
-   //   }
- 
-   //   this->SetJointPosition(iter->second, jiter->second);
-   // }
+   std::map<std::string, JointPtr>::iterator iter;
+   std::map<std::string, double>::const_iterator jiter;
+ 
+   for (iter = this->dataPtr->joints.begin();
+       iter != this->dataPtr->joints.end(); ++iter)
+   {
+     // First try name without scope, i.e. joint_name
+     jiter = _jointPositions.find(iter->second->GetName());
+ 
+     if (jiter == _jointPositions.end())
+     {
+       // Second try name with scope, i.e. model_name::joint_name
+       jiter = _jointPositions.find(iter->second->GetScopedName());
+       if (jiter == _jointPositions.end())
+         continue;
+     }
+ 
+     this->SetJointPosition(iter->second, jiter->second);
+   }
  }
  
  //////////////////////////////////////////////////
diff --cc gazebo/physics/World.cc
index 3cf6c79,fd32e05..feca0ec
--- a/gazebo/physics/World.cc
+++ b/gazebo/physics/World.cc
@@@ -585,14 -630,8 +630,14 @@@ void World::Step(
  }
  
  //////////////////////////////////////////////////
- void World::StepWorld(int _steps)
+ void World::Step(unsigned int _steps)
  {
 +  this->Step(_steps);
 +}
 +
 +//////////////////////////////////////////////////
 +void World::Step(unsigned int _steps)
 +{
    if (!this->IsPaused())
    {
      gzwarn << "Calling World::Step(steps) while world is not paused\n";
@@@ -770,16 -822,10 +828,16 @@@ common::SphericalCoordinatesPtr World::
  }
  
  //////////////////////////////////////////////////
 +common::SphericalCoordinatesPtr World::GetSphericalCoordinates() const
 +{
 +  return this->sphericalCoordinates;
 +}
 +
 +//////////////////////////////////////////////////
  BasePtr World::GetByName(const std::string &_name)
  {
-   if (this->rootElement)
-     return this->rootElement->GetByName(_name);
+   if (this->dataPtr->rootElement)
+     return this->dataPtr->rootElement->GetByName(_name);
    else
      return BasePtr();
  }
@@@ -959,61 -1006,26 +1018,29 @@@ void World::Reset(
    this->SetPaused(true);
  
    {
-     boost::recursive_mutex::scoped_lock(*this->worldUpdateMutex);
+     boost::recursive_mutex::scoped_lock(*this->dataPtr->worldUpdateMutex);
+ 
+     math::Rand::SetSeed(math::Rand::GetSeed());
+     this->dataPtr->physicsEngine->SetSeed(math::Rand::GetSeed());
  
 +    math::Rand::SetSeed(math::Rand::GetSeed());
 +    this->physicsEngine->SetSeed(math::Rand::GetSeed());
 +
      this->ResetTime();
      this->ResetEntities(Base::BASE);
-     for (std::vector<WorldPluginPtr>::iterator iter = this->plugins.begin();
-         iter != this->plugins.end(); ++iter)
+     for (std::vector<WorldPluginPtr>::iterator iter =
+         this->dataPtr->plugins.begin();
+         iter != this->dataPtr->plugins.end(); ++iter)
+     {
        (*iter)->Reset();
-     this->physicsEngine->Reset();
-   }
- 
-   this->SetPaused(currently_paused);
- }
- 
- //////////////////////////////////////////////////
- void World::OnStep()
- {
-   this->stepInc = 1;
- }
- 
- //////////////////////////////////////////////////
- void World::SetSelectedEntityCB(const std::string &_name)
- {
-   msgs::Selection msg;
-   BasePtr base = this->GetByName(_name);
-   EntityPtr ent = boost::dynamic_pointer_cast<Entity>(base);
- 
-   // unselect selectedEntity
-   if (this->selectedEntity)
-   {
-     msg.set_id(this->selectedEntity->GetId());
-     msg.set_name(this->selectedEntity->GetScopedName());
-     msg.set_selected(false);
-     this->selectionPub->Publish(msg);
+     }
+     this->dataPtr->physicsEngine->Reset();
  
-     this->selectedEntity->SetSelected(false);
+     // Signal a reset has occurred
+     event::Events::worldReset();
    }
  
-   // if a different entity is selected, show bounding box and SetSelected(true)
-   if (ent && this->selectedEntity != ent)
-   {
-     // set selected entity to ent
-     this->selectedEntity = ent;
-     this->selectedEntity->SetSelected(true);
- 
-     msg.set_id(this->selectedEntity->GetId());
-     msg.set_name(this->selectedEntity->GetScopedName());
-     msg.set_selected(true);
- 
-     this->selectionPub->Publish(msg);
-   }
-   else
-     this->selectedEntity.reset();
+   this->SetPaused(currentlyPaused);
  }
  
  //////////////////////////////////////////////////
@@@ -1452,22 -1446,22 +1461,31 @@@ void World::ProcessRequestMsgs(
      }
      else if ((*iter).request() == "scene_info")
      {
-       this->sceneMsg.clear_model();
-       this->BuildSceneMsg(this->sceneMsg, this->rootElement);
+       this->dataPtr->sceneMsg.clear_model();
+       this->BuildSceneMsg(this->dataPtr->sceneMsg, this->dataPtr->rootElement);
  
        std::string *serializedData = response.mutable_serialized_data();
-       this->sceneMsg.SerializeToString(serializedData);
-       response.set_type(sceneMsg.GetTypeName());
+       this->dataPtr->sceneMsg.SerializeToString(serializedData);
+       response.set_type(this->dataPtr->sceneMsg.GetTypeName());
+     }
+     else if ((*iter).request() == "spherical_coordinates_info")
+     {
+       msgs::SphericalCoordinates sphereCoordMsg;
+       msgs::Set(&sphereCoordMsg, *(this->dataPtr->sphericalCoordinates));
+ 
+       std::string *serializedData = response.mutable_serialized_data();
+       sphereCoordMsg.SerializeToString(serializedData);
+       response.set_type(sphereCoordMsg.GetTypeName());
      }
 +    else if ((*iter).request() == "spherical_coordinates_info")
 +    {
 +      msgs::SphericalCoordinates sphereCoordMsg;
 +      msgs::Set(&sphereCoordMsg, *(this->sphericalCoordinates));
 +
 +      std::string *serializedData = response.mutable_serialized_data();
 +      sphereCoordMsg.SerializeToString(serializedData);
 +      response.set_type(sphereCoordMsg.GetTypeName());
 +    }
      else
        send = false;
  
@@@ -2014,13 -2029,83 +2053,84 @@@ uint32_t World::GetIterations() cons
  //////////////////////////////////////////////////
  void World::RemoveModel(const std::string &_name)
  {
-   for (Model_V::iterator iter = this->models.begin();
-        iter != this->models.end(); ++iter)
+   boost::mutex::scoped_lock flock(this->dataPtr->factoryDeleteMutex);
+ 
+   // Remove all the dirty poses from the delete entity.
    {
-     if ((*iter)->GetName() == _name || (*iter)->GetScopedName() == _name)
+     for (std::list<Entity*>::iterator iter2 = this->dataPtr->dirtyPoses.begin();
+         iter2 != this->dataPtr->dirtyPoses.end();)
      {
-       this->models.erase(iter);
-       break;
+       if ((*iter2)->GetName() == _name ||
+           ((*iter2)->GetParent() && (*iter2)->GetParent()->GetName() == _name))
+       {
+         this->dataPtr->dirtyPoses.erase(iter2++);
+       }
+       else
+         ++iter2;
+     }
+   }
+ 
+   if (this->dataPtr->sdf->HasElement("model"))
+   {
+     sdf::ElementPtr childElem = this->dataPtr->sdf->GetElement("model");
+     while (childElem && childElem->Get<std::string>("name") != _name)
+       childElem = childElem->GetNextElement("model");
+     if (childElem)
+       this->dataPtr->sdf->RemoveChild(childElem);
+   }
+ 
+   if (this->dataPtr->sdf->HasElement("light"))
+   {
+     sdf::ElementPtr childElem = this->dataPtr->sdf->GetElement("light");
+     while (childElem && childElem->Get<std::string>("name") != _name)
+       childElem = childElem->GetNextElement("light");
+     if (childElem)
+     {
+       this->dataPtr->sdf->RemoveChild(childElem);
+       // Find the light by name in the scene msg, and remove it.
+       for (int i = 0; i < this->dataPtr->sceneMsg.light_size(); ++i)
+       {
+         if (this->dataPtr->sceneMsg.light(i).name() == _name)
+         {
+           this->dataPtr->sceneMsg.mutable_light()->SwapElements(i,
+               this->dataPtr->sceneMsg.light_size()-1);
+           this->dataPtr->sceneMsg.mutable_light()->RemoveLast();
+           break;
+         }
+       }
+     }
+   }
++}
+ 
+   {
+     boost::recursive_mutex::scoped_lock lock(
+         *this->GetPhysicsEngine()->GetPhysicsUpdateMutex());
+ 
+     this->dataPtr->rootElement->RemoveChild(_name);
+ 
+     for (Model_V::iterator iter = this->dataPtr->models.begin();
+         iter != this->dataPtr->models.end(); ++iter)
+     {
+       if ((*iter)->GetName() == _name || (*iter)->GetScopedName() == _name)
+       {
+         this->dataPtr->models.erase(iter);
+         break;
+       }
+     }
+   }
+ 
+   // Cleanup the publishModelPoses list.
+   {
+     boost::recursive_mutex::scoped_lock lock2(*this->dataPtr->receiveMutex);
+     for (std::set<ModelPtr>::iterator iter =
+          this->dataPtr->publishModelPoses.begin();
+          iter != this->dataPtr->publishModelPoses.end(); ++iter)
+     {
+       if ((*iter)->GetName() == _name || (*iter)->GetScopedName() == _name)
+       {
+         this->dataPtr->publishModelPoses.erase(iter);
+         break;
+       }
      }
    }
  }
diff --cc gazebo/physics/bullet/BulletJoint.cc
index 16aac89,6ca150f..7192a4e
--- a/gazebo/physics/bullet/BulletJoint.cc
+++ b/gazebo/physics/bullet/BulletJoint.cc
@@@ -534,53 -526,47 +526,99 @@@ math::Vector3 BulletJoint::GetLinkTorqu
  }
  
  //////////////////////////////////////////////////
+ bool BulletJoint::SetParam(const std::string &/*_key*/,
+     unsigned int /*_index*/,
+     const boost::any &/*_value*/)
+ {
+   gzdbg << "Not implement in Bullet\n";
+   return false;
+ }
+ 
+ //////////////////////////////////////////////////
+ double BulletJoint::GetParam(const std::string &_key,
+     unsigned int _index)
+ {
+   if (_key == "hi_stop")
+   {
+     return this->GetHighStop(_index).Radian();
+   }
+   else if (_key == "lo_stop")
+   {
+     return this->GetLowStop(_index).Radian();
+   }
+   gzerr << "GetParam unrecognized parameter ["
+         << _key
+         << "]"
+         << std::endl;
+   return 0;
+ }
+ 
+ //////////////////////////////////////////////////
+ math::Angle BulletJoint::GetHighStop(unsigned int _index)
+ {
+   return this->GetUpperLimit(_index);
+ }
+ 
+ //////////////////////////////////////////////////
+ math::Angle BulletJoint::GetLowStop(unsigned int _index)
+ {
+   return this->GetLowerLimit(_index);
+ }
+ 
+ //////////////////////////////////////////////////
+ bool BulletJoint::SetPosition(unsigned int _index, double _position)
+ {
+   return Joint::SetPositionMaximal(_index, _position);
+ }
++
++//////////////////////////////////////////////////
 +void BulletJoint::SetAttribute(Attribute, unsigned int /*_index*/,
 +    double /*_value*/)
 +{
 +  gzdbg << "Not implement in Bullet\n";
 +}
 +
 +//////////////////////////////////////////////////
 +void BulletJoint::SetAttribute(const std::string &_key,
 +    unsigned int _index,
 +    const boost::any &_value)
 +{
 +  this->SetParam(_key, _index, _value);
 +}
 +
 +//////////////////////////////////////////////////
 +bool BulletJoint::SetParam(const std::string &/*_key*/,
 +    unsigned int /*_index*/,
 +    const boost::any &/*_value*/)
 +{
 +  gzdbg << "Not implement in Bullet\n";
 +  return false;
 +}
 +
 +//////////////////////////////////////////////////
 +double BulletJoint::GetParam(const std::string &/*_key*/,
 +    unsigned int /*_index*/)
 +{
 +  gzdbg << "Not implement in Bullet\n";
 +  return 0;
 +}
 +
 +//////////////////////////////////////////////////
 +double BulletJoint::GetAttribute(const std::string &_key,
 +    unsigned int _index)
 +{
 +  return this->GetParam(_key, _index);
 +}
 +
 +//////////////////////////////////////////////////
 +math::Angle BulletJoint::GetHighStop(unsigned int _index)
 +{
 +  return this->GetUpperLimit(_index);
 +}
 +
 +//////////////////////////////////////////////////
 +math::Angle BulletJoint::GetLowStop(unsigned int _index)
 +{
 +  return this->GetLowerLimit(_index);
 +}
 +
diff --cc gazebo/physics/dart/DARTMeshShape.hh~upstream_5.0.1
index 0000000,b555408..b555408
mode 000000,100644..100644
--- a/gazebo/physics/dart/DARTMeshShape.hh~upstream_5.0.1
+++ b/gazebo/physics/dart/DARTMeshShape.hh~upstream_5.0.1
diff --cc gazebo/physics/ode/ODEJoint.cc
index 5e264d6,a3b9521..11cc0ae
--- a/gazebo/physics/ode/ODEJoint.cc
+++ b/gazebo/physics/ode/ODEJoint.cc
@@@ -1120,20 -828,20 +834,32 @@@ JointWrench ODEJoint::GetForceTorque(un
  }
  
  //////////////////////////////////////////////////
- void ODEJoint::CFMDamping()
+ bool ODEJoint::UsesImplicitSpringDamper()
+ {
+   return this->useImplicitSpringDamper;
+ }
+ 
+ //////////////////////////////////////////////////
+ void ODEJoint::UseImplicitSpringDamper(const bool _implicit)
+ {
+   this->useImplicitSpringDamper = _implicit;
+ }
+ 
+ //////////////////////////////////////////////////
+ void ODEJoint::ApplyImplicitStiffnessDamping()
  {
 +  this->ApplyImplicitStiffnessDamping();
 +}
 +
 +//////////////////////////////////////////////////
 +bool ODEJoint::UsesImplicitSpringDamper()
 +{
 +  return this->useImplicitSpringDamper;
 +}
 +
 +//////////////////////////////////////////////////
 +void ODEJoint::ApplyImplicitStiffnessDamping()
 +{
    // check if we are violating joint limits
    if (this->GetAngleCount() > 2)
    {
diff --cc gazebo/physics/ode/ODEJoint_TEST.cc
index 93c93d9,e53953b..ba11d28
--- a/gazebo/physics/ode/ODEJoint_TEST.cc
+++ b/gazebo/physics/ode/ODEJoint_TEST.cc
@@@ -71,6 -71,19 +71,24 @@@ TEST_F(ODEJoint_TEST, ImplicitDamping
    EXPECT_TRUE(boost::dynamic_pointer_cast<physics::ODEJoint>(joint_1)->
        UsesImplicitSpringDamper());
  
+   // Test for UseImplicitSpringDamper setting method
+   // toggle flag to false then back to true
+   {
+     physics::ODEJointPtr joint =
+       boost::dynamic_pointer_cast<physics::ODEJoint>(joint_0);
+ 
+     joint->UseImplicitSpringDamper(false);
+     EXPECT_FALSE(joint->UsesImplicitSpringDamper());
+ 
+     joint->UseImplicitSpringDamper(true);
+     EXPECT_TRUE(joint->UsesImplicitSpringDamper());
+   }
+ 
++  EXPECT_TRUE(boost::dynamic_pointer_cast<physics::ODEJoint>(joint_0)->
++      UsesImplicitSpringDamper());
++  EXPECT_TRUE(boost::dynamic_pointer_cast<physics::ODEJoint>(joint_1)->
++      UsesImplicitSpringDamper());
++
    gzdbg << "-------------------Test 1 (y)-------------------\n";
    physics->SetGravity(math::Vector3(0, 10, 0));
    world->Step(100);
diff --cc gazebo/physics/ode/ODEMeshShape.cc~upstream_5.0.1
index 0000000,88524c6..01cb50b
mode 000000,100644..100644
--- a/gazebo/physics/ode/ODEMeshShape.cc~upstream_5.0.1
+++ b/gazebo/physics/ode/ODEMeshShape.cc~upstream_5.0.1
@@@ -1,0 -1,66 +1,72 @@@
+ /*
+  * Copyright (C) 2012-2015 Open Source Robotics Foundation
+  *
+  * Licensed under the Apache License, Version 2.0 (the "License");
+  * you may not use this file except in compliance with the License.
+  * You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  *
+ */
 -
+ #include "gazebo/common/Mesh.hh"
++#include "gazebo/common/Assert.hh"
++#include "gazebo/common/Console.hh"
+ 
 -#include "gazebo/physics/bullet/BulletMesh.hh"
 -#include "gazebo/physics/bullet/BulletTypes.hh"
 -#include "gazebo/physics/bullet/BulletCollision.hh"
 -#include "gazebo/physics/bullet/BulletPhysics.hh"
 -#include "gazebo/physics/bullet/BulletMeshShape.hh"
++#include "gazebo/physics/ode/ODEMesh.hh"
++#include "gazebo/physics/ode/ODECollision.hh"
++#include "gazebo/physics/ode/ODEPhysics.hh"
++#include "gazebo/physics/ode/ODEMeshShape.hh"
+ 
+ using namespace gazebo;
+ using namespace physics;
+ 
+ //////////////////////////////////////////////////
 -BulletMeshShape::BulletMeshShape(CollisionPtr _parent)
 -  : MeshShape(_parent)
++ODEMeshShape::ODEMeshShape(CollisionPtr _parent) : MeshShape(_parent)
++{
++  this->odeMesh = new ODEMesh();
++}
++
++//////////////////////////////////////////////////
++ODEMeshShape::~ODEMeshShape()
+ {
 -  this->bulletMesh = new BulletMesh();
++  delete this->odeMesh;
+ }
+ 
+ //////////////////////////////////////////////////
 -BulletMeshShape::~BulletMeshShape()
++void ODEMeshShape::Update()
+ {
 -  delete this->bulletMesh;
++  this->odeMesh->Update();
+ }
+ 
+ //////////////////////////////////////////////////
 -void BulletMeshShape::Load(sdf::ElementPtr _sdf)
++void ODEMeshShape::Load(sdf::ElementPtr _sdf)
+ {
+   MeshShape::Load(_sdf);
+ }
+ 
+ //////////////////////////////////////////////////
 -void BulletMeshShape::Init()
++void ODEMeshShape::Init()
+ {
+   MeshShape::Init();
 -
 -  BulletCollisionPtr bParent =
 -    boost::static_pointer_cast<BulletCollision>(this->collisionParent);
++  if (!this->mesh)
++    return;
+ 
+   if (this->submesh)
+   {
 -    this->bulletMesh->Init(this->submesh, bParent,
++    this->odeMesh->Init(this->submesh,
++        boost::static_pointer_cast<ODECollision>(this->collisionParent),
+         this->sdf->Get<math::Vector3>("scale"));
+   }
+   else
+   {
 -    this->bulletMesh->Init(this->mesh, bParent,
++    this->odeMesh->Init(this->mesh,
++        boost::static_pointer_cast<ODECollision>(this->collisionParent),
+         this->sdf->Get<math::Vector3>("scale"));
+   }
+ }
diff --cc gazebo/rendering/Camera.hh
index b23e33f,560ad6e..48f9837
--- a/gazebo/rendering/Camera.hh
+++ b/gazebo/rendering/Camera.hh
@@@ -107,17 -108,10 +108,17 @@@ namespace gazeb
        /// \brief Render the camera.
        /// Called after the pre-render signal. This function will generate
        /// camera images.
-       // \todo Deprecated in Gazebo 2.1. In Gazebo 3.0 remove this function,
-       // and change Render(bool _force) to have a default value of false.
-       public: void Render();
+       /// \param[in] _force Force camera to render. Ignore camera update
+       /// rate.
+       public: void Render(bool _force = false);
  
 +      /// \brief Render the camera.
 +      /// Called after the pre-render signal. This function will generate
 +      /// camera images.
 +      /// \param[in] _force Force camera to render. Ignore camera update
 +      /// rate.
 +      public: void Render(bool _force);
 +
        /// \brief Post render
        ///
        /// Called afer the render signal.
diff --cc gazebo/rendering/JointVisual.cc
index 3c1ca7f,1509da6..6c541c5
--- a/gazebo/rendering/JointVisual.cc
+++ b/gazebo/rendering/JointVisual.cc
@@@ -65,15 -54,144 +54,145 @@@ void JointVisual::Load(ConstJointPtr &_
    dPtr->axisVisual->Load();
  
    this->SetPosition(msgs::Convert(_msg->pose().position()));
 -  this->SetRotation(msgs::Convert(_msg->pose().orientation()));
 +  this->SetRotation(this->GetRotation() *
 +      msgs::Convert(_msg->pose().orientation()));
  
-   if (math::equal(_msg->axis1().xyz().x(), 1.0))
-     dPtr->axisVisual->ShowRotation(0);
+   if (_msg->has_axis2())
+   {
+     // for hinge2 and universal joints:
+     // axis1 is attached to parent link and axis2 is attached to child link
+ 
+     // create extra joint visual for axis1
+     VisualPtr parentVis;
+     if (_msg->has_parent() && _msg->parent() == "world")
+       parentVis = this->GetScene()->GetWorldVisual();
+     else if (_msg->has_parent_id())
+       parentVis = this->GetScene()->GetVisual(_msg->parent_id());
+ 
+     JointVisualPtr jointVis;
+     jointVis.reset(new JointVisual(this->GetName() + "_parent_", parentVis));
+     jointVis->Load(_msg,
+         msgs::Convert(_msg->pose()) + this->GetParent()->GetWorldPose());
+ 
+     // attach axis2 to this visual
+     msgs::Axis axis2Msg = _msg->axis2();
+     this->CreateAxis(msgs::Convert(axis2Msg.xyz()),
+         axis2Msg.use_parent_model_frame(), _msg->type());
+ 
+     dPtr->parentAxisVis = jointVis;
+   }
+   else if (_msg->has_axis1())
+   {
+     // for all other joint types:
+     // axis1 is attached to child link
+     msgs::Axis axis1Msg = _msg->axis1();
+     this->CreateAxis(msgs::Convert(axis1Msg.xyz()),
+         axis1Msg.use_parent_model_frame(), _msg->type());
+   }
+ 
+   this->GetSceneNode()->setInheritScale(false);
+   this->SetVisibilityFlags(GZ_VISIBILITY_GUI);
+ }
+ 
+ /////////////////////////////////////////////////
+ void JointVisual::Load(ConstJointPtr &_msg, const math::Pose &_worldPose)
+ {
+   Visual::Load();
+ 
+   msgs::Axis axis1Msg = _msg->axis1();
+   this->CreateAxis(msgs::Convert(axis1Msg.xyz()),
+       axis1Msg.use_parent_model_frame(), _msg->type());
+ 
+   // joint pose is always relative to the child link so update axis pose
+   this->SetWorldPose(_worldPose);
+ 
+   this->GetSceneNode()->setInheritScale(false);
+   this->SetVisibilityFlags(GZ_VISIBILITY_GUI);
+ }
+ 
+ /////////////////////////////////////////////////
+ void JointVisual::CreateAxis(const math::Vector3 &_axis, bool _useParentFrame,
+     msgs::Joint::Type _type)
+ {
+   JointVisualPrivate *dPtr =
+       reinterpret_cast<JointVisualPrivate *>(this->dataPtr);
+ 
+   ArrowVisualPtr axis;
+ 
+   std::stringstream nameStr;
+   nameStr << this->GetName() << "_axis_" << this->GetChildCount() << "_AXIS";
+ 
+   axis.reset(new ArrowVisual(nameStr.str(), shared_from_this()));
+   axis->Load();
+   axis->SetMaterial("Gazebo/YellowTransparent");
+ 
+   // Get rotation to axis vector
+   math::Vector3 axisDir = _axis;
+   math::Vector3 u = axisDir.Normalize();
+   math::Vector3 v = math::Vector3::UnitZ;
+   double cosTheta = v.Dot(u);
+   double angle = acos(cosTheta);
+   math::Quaternion quat;
+   // check the parallel case
+   if (math::equal(angle, M_PI))
+     quat.SetFromAxis(u.GetPerpendicular(), angle);
+   else
+     quat.SetFromAxis((v.Cross(u)).Normalize(), angle);
+   axis->SetRotation(quat);
+ 
+   if (_useParentFrame)
+   {
+     // if set to use parent model frame
+     // rotate the arrow visual relative to the model
+     VisualPtr model = this->GetRootVisual();
+     math::Quaternion quatFromModel =
+         model->GetWorldPose().rot.GetInverse()*this->GetWorldPose().rot;
+     axis->SetRotation(quatFromModel.GetInverse()*axis->GetRotation());
+   }
+   if (_type == msgs::Joint::REVOLUTE || _type == msgs::Joint::REVOLUTE2
+       || _type == msgs::Joint::UNIVERSAL || _type == msgs::Joint::GEARBOX)
+     axis->ShowRotation(true);
+ 
+   math::Quaternion axisWorldRotation = axis->GetWorldPose().rot;
+   math::Quaternion jointWorldRotation = this->GetWorldPose().rot;
+ 
+   // hide the existing axis's arrow head if it overlaps with the one we are
+   // creating
+   math::Vector3 axisWorld = axisWorldRotation*math::Vector3::UnitZ;
+   if (axisWorld == jointWorldRotation*math::Vector3::UnitX)
+   {
+     if (dPtr->axisVisual)
+     {
+       dPtr->axisVisual->ShowAxisHead(0, false);
+       axis->ShowShaft(false);
+     }
+   }
+   else if (axisWorld == jointWorldRotation*math::Vector3::UnitY)
+   {
+     if (dPtr->axisVisual)
+     {
+       dPtr->axisVisual->ShowAxisHead(1, false);
+       axis->ShowShaft(false);
+     }
+   }
+   else if (axisWorld == jointWorldRotation*math::Vector3::UnitZ)
+   {
+     if (dPtr->axisVisual)
+     {
+       dPtr->axisVisual->ShowAxisHead(2, false);
+       axis->ShowShaft(false);
+     }
+   }
+ }
+ 
+ /////////////////////////////////////////////////
+ void JointVisual::SetVisible(bool _visible, bool _cascade)
+ {
+   JointVisualPrivate *dPtr =
+       reinterpret_cast<JointVisualPrivate *>(this->dataPtr);
  
-   if (math::equal(_msg->axis1().xyz().y(), 1.0))
-     dPtr->axisVisual->ShowRotation(1);
+   Visual::SetVisible(_visible, _cascade);
  
-   if (math::equal(_msg->axis1().xyz().z(), 1.0))
-     dPtr->axisVisual->ShowRotation(2);
+   if (dPtr->parentAxisVis)
+     dPtr->parentAxisVis->SetVisible(_visible, _cascade);
  }
diff --cc gazebo/rendering/Scene.cc
index 9e5ba81,7a2d538..fae929b
--- a/gazebo/rendering/Scene.cc
+++ b/gazebo/rendering/Scene.cc
@@@ -1460,24 -1525,24 +1525,39 @@@ bool Scene::ProcessModelMsg(const msgs:
    {
      boost::shared_ptr<msgs::Visual> vm(new msgs::Visual(
            _msg.visual(j)));
-     this->visualMsgs.push_back(vm);
+     this->dataPtr->visualMsgs.push_back(vm);
+   }
+ 
+   // Set the scale of the model visual
+   if (_msg.has_scale())
+   {
+     // update scale using a visual msg
+     boost::shared_ptr<msgs::Visual> vm(new msgs::Visual);
+     if (_msg.has_id())
+       vm->set_id(_msg.id());
+     if (_msg.has_name())
+       vm->set_name(_msg.name());
+     vm->mutable_scale()->set_x(_msg.scale().x());
+     vm->mutable_scale()->set_y(_msg.scale().y());
+     vm->mutable_scale()->set_z(_msg.scale().z());
+     this->dataPtr->visualMsgs.push_back(vm);
    }
  
 +  // Set the scale of the model visual
 +  if (_msg.has_scale())
 +  {
 +    // update scale using a visual msg
 +    boost::shared_ptr<msgs::Visual> vm(new msgs::Visual);
 +    if (_msg.has_id())
 +      vm->set_id(_msg.id());
 +    if (_msg.has_name())
 +      vm->set_name(_msg.name());
 +    vm->mutable_scale()->set_x(_msg.scale().x());
 +    vm->mutable_scale()->set_y(_msg.scale().y());
 +    vm->mutable_scale()->set_z(_msg.scale().z());
 +    this->visualMsgs.push_back(vm);
 +  }
 +
    for (int j = 0; j < _msg.joint_size(); j++)
    {
      boost::shared_ptr<msgs::Joint> jm(new msgs::Joint(
diff --cc gazebo/rendering/Scene.hh
index 8b3b963,9e700ad..0e68998
--- a/gazebo/rendering/Scene.hh
+++ b/gazebo/rendering/Scene.hh
@@@ -17,14 -18,10 +18,12 @@@
  #ifndef _SCENE_HH_
  #define _SCENE_HH_
  
- #include <vector>
- #include <map>
  #include <string>
- #include <list>
+ #include <vector>
  #include <boost/enable_shared_from_this.hpp>
  #include <boost/shared_ptr.hpp>
 +#include <boost/unordered/unordered_map.hpp>
 +#include <boost/thread/recursive_mutex.hpp>
  
  #include <sdf/sdf.hh>
  
diff --cc gazebo/rendering/Visual.cc
index f949571,e3e3bc3..0c9c753
--- a/gazebo/rendering/Visual.cc
+++ b/gazebo/rendering/Visual.cc
@@@ -1412,6 -1421,6 +1421,7 @@@ void Visual::SetHighlighted(bool _highl
    {
      this->dataPtr->boundingBox->SetVisible(false);
    }
++  return false;
  }
  
  //////////////////////////////////////////////////
diff --cc gazebo/sensors/SensorsIface.cc
index c381202,470d31f..30b3508
--- a/gazebo/sensors/SensorsIface.cc
+++ b/gazebo/sensors/SensorsIface.cc
@@@ -100,7 -86,7 +86,10 @@@ std::string sensors::create_sensor(sdf:
  }
  
  /////////////////////////////////////////////////
--void sensors::remove_sensor(const std::string &_sensorName)
++std::string sensors::create_sensor(sdf::ElementPtr _elem,
++                                   const std::string &_worldName,
++                                   const std::string &_parentName,
++                                   uint32_t _parentId)
  {
    if (g_disable)
      return;
diff --cc gazebo/transport/TopicManager.cc
index 0b229cb,f3ca8d4..090739a
--- a/gazebo/transport/TopicManager.cc
+++ b/gazebo/transport/TopicManager.cc
@@@ -180,17 -180,17 +180,18 @@@ void TopicManager::ProcessNodes(bool _o
  
    if (!this->pauseIncoming && !_onlyOut)
    {
 +    int s = 0;
      {
+       int s = 0;
        boost::recursive_mutex::scoped_lock lock(this->nodeMutex);
        s = this->nodes.size();
-     }
  
-     for (int i = 0; i < s; ++i)
-     {
-       this->nodes[i]->ProcessIncoming();
-       if (this->pauseIncoming)
-         break;
+       for (int i = 0; i < s; ++i)
+       {
+         this->nodes[i]->ProcessIncoming();
+         if (this->pauseIncoming)
+           break;
+       }
      }
    }
  }
diff --cc test/integration/factory.cc
index afaff98,02bc637..0000000
deleted file mode 100644,100644
--- a/test/integration/factory.cc
+++ /dev/null
@@@ -1,194 -1,314 +1,0 @@@
--/*
-  * Copyright (C) 2012-2014 Open Source Robotics Foundation
 - * Copyright (C) 2012-2015 Open Source Robotics Foundation
-- *
-- * Licensed under the Apache License, Version 2.0 (the "License");
-- * you may not use this file except in compliance with the License.
-- * You may obtain a copy of the License at
-- *
-- *     http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- *
--*/
--#include <string.h>
--#include "gazebo/math/Helpers.hh"
--#include "gazebo/transport/TransportTypes.hh"
--#include "gazebo/transport/Node.hh"
--
--#include "gazebo/rendering/RenderEngine.hh"
--#include "gazebo/rendering/Camera.hh"
--#include "gazebo/sensors/SensorsIface.hh"
--#include "gazebo/sensors/CameraSensor.hh"
--#include "ServerFixture.hh"
--#include "images_cmp.h"
--#include "helper_physics_generator.hh"
--
--using namespace gazebo;
--class FactoryTest : public ServerFixture,
--                    public testing::WithParamInterface<const char*>
--{
--  public: void BoxSdf(const std::string &_physicsEngine);
--  public: void Box(const std::string &_physicsEngine);
--  public: void Sphere(const std::string &_physicsEngine);
--  public: void Cylinder(const std::string &_physicsEngine);
 -  public: void Clone(const std::string &_physicsEngine);
--};
--
--///////////////////////////////////////////////////
--// Verify that sdf is retained by entities spawned
--// via factory messages. A change between 1.6, 1.7
--// caused entities to lose their sdf data
--// (see issue #651)
--void FactoryTest::BoxSdf(const std::string &_physicsEngine)
--{
--  math::Pose setPose, testPose;
--  Load("worlds/empty.world", true, _physicsEngine);
--  physics::WorldPtr world = physics::get_world("default");
--  ASSERT_TRUE(world != NULL);
--
--  unsigned int entityCount = 6;
--
--  for (unsigned int i = 0; i < entityCount; ++i)
--  {
--    std::ostringstream name;
--    name << "test_box_" << i;
--    setPose.Set(math::Vector3(0, 0, i+0.5), math::Quaternion(0, 0, 0));
--    SpawnBox(name.str(), math::Vector3(1, 1, 1), setPose.pos,
--        setPose.rot.GetAsEuler());
--  }
--
--  // This loop must be separate from the previous loop to cause
--  // the failure.
--  for (unsigned int i = 0; i < entityCount; ++i)
--  {
--    std::ostringstream name;
--    name << "test_box_" << i;
--
--    physics::ModelPtr model = world->GetModel(name.str());
--    ASSERT_TRUE(model != NULL);
--    msgs::Model msg;
--    model->FillMsg(msg);
--    EXPECT_TRUE(msg.has_pose());
--    // gzerr << msg.DebugString() << '\n';
--  }
--}
--
 -/////////////////////////////////////////////////
--TEST_P(FactoryTest, BoxSdf)
--{
--  BoxSdf(GetParam());
--}
--
 -/////////////////////////////////////////////////
--void FactoryTest::Box(const std::string &_physicsEngine)
--{
--  math::Pose setPose, testPose;
--  Load("worlds/empty.world", true, _physicsEngine);
--
--  for (unsigned int i = 0; i < 100; i++)
--  {
--    std::ostringstream name;
--    name << "test_box_" << i;
--    setPose.Set(math::Vector3(0, 0, i+0.5), math::Quaternion(0, 0, 0));
--    SpawnBox(name.str(), math::Vector3(1, 1, 1), setPose.pos,
--        setPose.rot.GetAsEuler());
--    testPose = GetEntityPose(name.str());
--    EXPECT_TRUE(math::equal(testPose.pos.x, setPose.pos.x, 0.1));
--    EXPECT_TRUE(math::equal(testPose.pos.y, setPose.pos.y, 0.1));
--    EXPECT_TRUE(math::equal(testPose.pos.z, setPose.pos.z, 0.1));
--  }
--}
--
 -/////////////////////////////////////////////////
--TEST_P(FactoryTest, Box)
--{
--  Box(GetParam());
--}
--
 -/////////////////////////////////////////////////
--void FactoryTest::Sphere(const std::string &_physicsEngine)
--{
--  math::Pose setPose, testPose;
--  Load("worlds/empty.world", true, _physicsEngine);
--
--  for (unsigned int i = 0; i < 100; i++)
--  {
--    std::ostringstream name;
--    name << "test_sphere_" << i;
--    setPose.Set(math::Vector3(0, 0, i+0.5), math::Quaternion(0, 0, 0));
--    SpawnSphere(name.str(), setPose.pos, setPose.rot.GetAsEuler());
--    testPose = GetEntityPose(name.str());
--    EXPECT_TRUE(math::equal(testPose.pos.x, setPose.pos.x, 0.1));
--    EXPECT_TRUE(math::equal(testPose.pos.y, setPose.pos.y, 0.1));
--    EXPECT_TRUE(math::equal(testPose.pos.z, setPose.pos.z, 0.1));
--  }
--}
--
 -/////////////////////////////////////////////////
--TEST_P(FactoryTest, Sphere)
--{
--  Sphere(GetParam());
--}
--
 -/////////////////////////////////////////////////
--void FactoryTest::Cylinder(const std::string &_physicsEngine)
--{
--  math::Pose setPose, testPose;
--  Load("worlds/empty.world", true, _physicsEngine);
--
--  for (unsigned int i = 0; i < 100; i++)
--  {
--    std::ostringstream name;
--    name << "test_cylinder_" << i;
--    setPose.Set(math::Vector3(0, 0, i+0.5), math::Quaternion(0, 0, 0));
--    SpawnCylinder(name.str(), setPose.pos, setPose.rot.GetAsEuler());
--    testPose = GetEntityPose(name.str());
--    EXPECT_TRUE(math::equal(testPose.pos.x, setPose.pos.x, 0.1));
--    EXPECT_TRUE(math::equal(testPose.pos.y, setPose.pos.y, 0.1));
--    EXPECT_TRUE(math::equal(testPose.pos.z, setPose.pos.z, 0.1));
--  }
--}
--
 -/////////////////////////////////////////////////
--TEST_P(FactoryTest, Cylinder)
--{
--  Cylinder(GetParam());
 -}
 -
 -/////////////////////////////////////////////////
 -void FactoryTest::Clone(const std::string &_physicsEngine)
 -{
 -  math::Pose setPose, testPose;
 -  Load("worlds/pr2.world", true, _physicsEngine);
 -
 -  // clone the pr2
 -  std::string name = "pr2";
 -  msgs::Factory msg;
 -  math::Pose clonePose;
 -  clonePose.Set(math::Vector3(2, 3, 0.5), math::Quaternion(0, 0, 0));
 -  msgs::Set(msg.mutable_pose(), clonePose);
 -  msg.set_clone_model_name(name);
 -  this->factoryPub->Publish(msg);
 -
 -  // Wait for the pr2 clone to spawn
 -  std::string cloneName = name + "_clone";
 -  this->WaitUntilEntitySpawn(cloneName, 100, 100);
 -
 -  EXPECT_TRUE(this->HasEntity(cloneName));
 -  testPose = GetEntityPose(cloneName);
 -  EXPECT_TRUE(math::equal(testPose.pos.x, clonePose.pos.x, 0.1));
 -  EXPECT_TRUE(math::equal(testPose.pos.y, clonePose.pos.y, 0.1));
 -  EXPECT_TRUE(math::equal(testPose.pos.z, clonePose.pos.z, 0.1));
 -
 -  // Verify properties of the pr2 clone with the original model.
 -  physics::WorldPtr world = physics::get_world("default");
 -  ASSERT_TRUE(world != NULL);
 -
 -  // Check model
 -  physics::ModelPtr model = world->GetModel(name);
 -  ASSERT_TRUE(model != NULL);
 -  physics::ModelPtr modelClone = world->GetModel(cloneName);
 -  ASSERT_TRUE(modelClone != NULL);
 -  EXPECT_EQ(model->GetJointCount(), modelClone->GetJointCount());
 -  EXPECT_EQ(model->GetLinks().size(), modelClone->GetLinks().size());
 -  EXPECT_EQ(model->GetSensorCount(), modelClone->GetSensorCount());
 -  EXPECT_EQ(model->GetPluginCount(), modelClone->GetPluginCount());
 -  EXPECT_EQ(model->GetAutoDisable(), modelClone->GetAutoDisable());
 -
 -  // Check links
 -  physics::Link_V links = model->GetLinks();
 -  physics::Link_V linkClones = modelClone->GetLinks();
 -  for (unsigned int i = 0; i < links.size(); ++i)
 -  {
 -    physics::LinkPtr link = links[i];
 -    physics::LinkPtr linkClone = linkClones[i];
 -
 -    EXPECT_EQ(link->GetSensorCount(), linkClone->GetSensorCount());
 -    EXPECT_EQ(link->GetKinematic(), linkClone->GetKinematic());
 -
 -    // Check collisions
 -    physics::Collision_V collisions = link->GetCollisions();
 -    physics::Collision_V collisionClones = linkClone->GetCollisions();
 -    EXPECT_EQ(collisions.size(), collisionClones.size());
 -    for (unsigned int j = 0; j < collisions.size(); ++j)
 -    {
 -      physics::CollisionPtr collision = collisions[j];
 -      physics::CollisionPtr collisionClone = collisionClones[j];
 -      EXPECT_EQ(collision->GetShapeType(), collisionClone->GetShapeType());
 -      EXPECT_EQ(collision->GetMaxContacts(), collisionClone->GetMaxContacts());
 -
 -      // Check surface
 -      physics::SurfaceParamsPtr surface = collision->GetSurface();
 -      physics::SurfaceParamsPtr cloneSurface = collisionClone->GetSurface();
 -      EXPECT_EQ(surface->collideWithoutContact,
 -          cloneSurface->collideWithoutContact);
 -      EXPECT_EQ(surface->collideWithoutContactBitmask,
 -          cloneSurface->collideWithoutContactBitmask);
 -    }
 -
 -    // Check inertial
 -    physics::InertialPtr inertial = link->GetInertial();
 -    physics::InertialPtr inertialClone = linkClone->GetInertial();
 -    EXPECT_EQ(inertial->GetMass(), inertialClone->GetMass());
 -    EXPECT_EQ(inertial->GetCoG(), inertialClone->GetCoG());
 -    EXPECT_EQ(inertial->GetPrincipalMoments(),
 -        inertialClone->GetPrincipalMoments());
 -    EXPECT_EQ(inertial->GetProductsofInertia(),
 -        inertialClone->GetProductsofInertia());
 -  }
 -
 -  // Check joints
 -  physics::Joint_V joints = model->GetJoints();
 -  physics::Joint_V jointClones = modelClone->GetJoints();
 -  for (unsigned int i = 0; i < joints.size(); ++i)
 -  {
 -    physics::JointPtr joint = joints[i];
 -    physics::JointPtr jointClone = jointClones[i];
 -    EXPECT_EQ(joint->GetAngleCount(), jointClone->GetAngleCount());
 -    for (unsigned j = 0; j < joint->GetAngleCount(); ++j)
 -    {
 -      EXPECT_EQ(joint->GetUpperLimit(j), jointClone->GetUpperLimit(j));
 -      EXPECT_EQ(joint->GetLowerLimit(j), jointClone->GetLowerLimit(j));
 -      EXPECT_EQ(joint->GetEffortLimit(j), jointClone->GetEffortLimit(j));
 -      EXPECT_EQ(joint->GetVelocityLimit(j), jointClone->GetVelocityLimit(j));
 -      EXPECT_EQ(joint->GetStopStiffness(j), jointClone->GetStopStiffness(j));
 -      EXPECT_EQ(joint->GetStopDissipation(j),
 -          jointClone->GetStopDissipation(j));
 -      EXPECT_EQ(joint->GetLocalAxis(j), jointClone->GetLocalAxis(j));
 -      EXPECT_EQ(joint->GetDamping(j), jointClone->GetDamping(j));
 -    }
 -  }
 -}
 -
 -/////////////////////////////////////////////////
 -TEST_P(FactoryTest, Clone)
 -{
 -  Clone(GetParam());
--}
--
--// Disabling this test for now. Different machines return different
--// camera images. Need a better way to evaluate rendered content.
--// TEST_F(FactoryTest, Camera)
--// {
--/*
--  if (rendering::RenderEngine::Instance()->GetRenderPathType() ==
--      rendering::RenderEngine::NONE)
--    return;
--
--  math::Pose setPose, testPose;
--  Load("worlds/empty.world");
--  setPose.Set(math::Vector3(-5, 0, 5), math::Quaternion(0, GZ_DTOR(15), 0));
--  SpawnCamera("camera_model", "camera_sensor2", setPose.pos,
--      setPose.rot.GetAsEuler());
--
--  unsigned char *img = NULL;
--  unsigned int width;
--  unsigned int height;
--  GetFrame("camera_sensor2", &img, width, height);
--  ASSERT_EQ(width, static_cast<unsigned int>(320));
--  ASSERT_EQ(height, static_cast<unsigned int>(240));
--
--  unsigned int diffMax = 0;
--  unsigned int diffSum = 0;
--  double diffAvg = 0;
--  ImageCompare(&img, &empty_world_camera1,
--      width, height, 3, diffMax, diffSum, diffAvg);
--  // PrintImage("empty_world_camera1", &img, width, height, 3);
--  ASSERT_LT(diffSum, static_cast<unsigned int>(100));
--  ASSERT_EQ(static_cast<unsigned int>(0), diffMax);
--  ASSERT_EQ(0.0, diffAvg);
--  */
--// }
--
--INSTANTIATE_TEST_CASE_P(PhysicsEngines, FactoryTest, PHYSICS_ENGINE_VALUES);
--
 -/////////////////////////////////////////////////
--int main(int argc, char **argv)
--{
--  ::testing::InitGoogleTest(&argc, argv);
--  return RUN_ALL_TESTS();
--}
diff --cc test/integration/imu.cc
index d3ea933,d8620ae..0000000
deleted file mode 100644,100644
--- a/test/integration/imu.cc
+++ /dev/null
@@@ -1,318 -1,581 +1,0 @@@
--/*
-  * Copyright (C) 2012-2014 Open Source Robotics Foundation
 - * Copyright (C) 2012-2015 Open Source Robotics Foundation
-- *
-- * Licensed under the Apache License, Version 2.0 (the "License");
-- * you may not use this file except in compliance with the License.
-- * You may obtain a copy of the License at
-- *
-- *     http://www.apache.org/licenses/LICENSE-2.0
-- *
-- * Unless required by applicable law or agreed to in writing, software
-- * distributed under the License is distributed on an "AS IS" BASIS,
-- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- * See the License for the specific language governing permissions and
-- * limitations under the License.
-- *
--*/
--
--#include "ServerFixture.hh"
--#include "gazebo/sensors/sensors.hh"
--#include "gazebo/common/common.hh"
--#include "helper_physics_generator.hh"
--
--// How tightly to compare for deterministic values
--#define IMU_TOL 1e-5
--
--using namespace gazebo;
--class ImuTest : public ServerFixture,
--                public testing::WithParamInterface<const char*>
--{
 -  /// \brief start imu_sensor_test.world, which contains a pendulum,
 -  /// a sphere with frictional contact, a sphere with frictionless
 -  /// contact and a ramp.  Each model has an IMU attached.
 -  /// This test check results to make sure the readings adhere to
 -  /// each simple model under gravity.
 -  public: void ImuSensorTestWorld(const std::string &_physicsEngine);
 -
 -  /// \brief Spawn a static model with an ImuSensor attached
 -  /// in the empty world.  Test basic IMU outputs.
--  public: void Stationary_EmptyWorld(const std::string &_physicsEngine);
 -
 -  /// \brief Spawn a static model with an ImuSensor attached
 -  /// in the empty world.  Test basic IMU outputs with noise enabled.
--  public: void Stationary_EmptyWorld_Noise(const std::string &_physicsEngine);
 -
 -  /// \brief Spawn a static model with an ImuSensor attached
 -  /// in the empty world.  Test basic IMU outputs with bias enabled.
--  public: void Stationary_EmptyWorld_Bias(const std::string &_physicsEngine);
 -
 -  /// \breif Return gravity rotated by some orientation
 -  /// \param[in] _rot User specified rotation
 -  /// \param[out] _g gravity in user specified orientation
--  private: void GetGravity(const math::Quaternion& _rot, math::Vector3 &_g);
 -
 -  /// \breif Collect a number of samples and return the average
 -  /// rate and accel values
 -  /// \param[in] _imu Pointer to sensor
 -  /// \param[in] _cnt number of samples to tak
 -  /// \param[out] _rateMean average angular rates over samples
 -  /// \param[out] _accelMean average accelerations over samples
 -  /// \param[out] _orientation orientation of the imu at the end of sample
 -  /// period
--  private: void GetImuData(sensors::ImuSensorPtr _imu, unsigned int _cnt,
--                           math::Vector3 &_rateMean,
--                           math::Vector3 &_accelMean,
--                           math::Quaternion &_orientation);
--};
--
--void ImuTest::GetGravity(const math::Quaternion &_rot, math::Vector3 &_g)
--{
--  physics::WorldPtr world = physics::get_world("default");
-   ASSERT_TRUE(world);
 -  ASSERT_TRUE(world != NULL);
--  physics::PhysicsEnginePtr physics = world->GetPhysicsEngine();
-   ASSERT_TRUE(physics);
 -  ASSERT_TRUE(physics != NULL);
--  // Rotate into IMU's frame
--  _g = _rot.GetInverse().RotateVector(physics->GetGravity());
--}
--
--void ImuTest::GetImuData(sensors::ImuSensorPtr _imu,
--                         unsigned int _cnt,
--                         math::Vector3 &_rateMean,
--                         math::Vector3 &_accelMean,
--                         math::Quaternion& _orientation)
--{
--  physics::WorldPtr world = physics::get_world("default");
-   ASSERT_TRUE(world);
 -  ASSERT_TRUE(world != NULL);
--  // Collect a number of samples and return the average rate and accel values
--  math::Vector3 rateSum, accelSum;
--  for (unsigned int i = 0; i < _cnt; ++i)
--  {
--    world->Step(1);
--
--    int j = 0;
--    while (_imu->GetLastMeasurementTime() == gazebo::common::Time::Zero &&
--        j < 100)
--    {
--      _imu->Update(true);
--      gazebo::common::Time::MSleep(100);
--      ++j;
--    }
--
--    EXPECT_LT(j, 100);
--
--    rateSum += _imu->GetAngularVelocity();
--    accelSum += _imu->GetLinearAcceleration();
--  }
--  _rateMean = rateSum / _cnt;
--  _accelMean = accelSum / _cnt;
--  _orientation = _imu->GetOrientation();
 -}
 -
 -void ImuTest::ImuSensorTestWorld(const std::string &_physicsEngine)
 -{
 -  if (_physicsEngine != "ode")
 -  {
 -    gzerr << "not working yet for anything other than ode. see issue #9999.\n";
 -    return;
 -  }
 -
 -  Load("worlds/imu_sensor_test.world", true, _physicsEngine);
 -
 -  // get world
 -  physics::WorldPtr world = physics::get_world("default");
 -  ASSERT_TRUE(world != NULL);
 -
 -  // get physics engine
 -  physics::PhysicsEnginePtr physics = world->GetPhysicsEngine();
 -  ASSERT_TRUE(physics != NULL);
 -
 -  // get pendulum
 -  std::string pendulumName = "model_pendulum";
 -  physics::ModelPtr pendulumModel = world->GetModel(pendulumName);
 -  ASSERT_TRUE(pendulumModel != NULL);
 -
 -  std::string pendulumSensorName = "pendulum_imu_sensor";
 -  sensors::ImuSensorPtr pendulumImu =
 -    boost::static_pointer_cast<sensors::ImuSensor>(
 -        sensors::SensorManager::Instance()->GetSensor(pendulumSensorName));
 -  ASSERT_TRUE(pendulumImu != NULL);
 -  pendulumImu->Init();
 -
 -  // get friction ball
 -  std::string ballFrictionName = "model_ball";
 -  physics::ModelPtr ballFrictionModel = world->GetModel(ballFrictionName);
 -  ASSERT_TRUE(ballFrictionModel != NULL);
 -
 -  std::string ballFrictionSensorName = "ball_imu_sensor";
 -  sensors::ImuSensorPtr ballFrictionImu =
 -    boost::static_pointer_cast<sensors::ImuSensor>(
 -    sensors::SensorManager::Instance()->GetSensor(ballFrictionSensorName));
 -  ASSERT_TRUE(ballFrictionImu != NULL);
 -  ballFrictionImu->Init();
 -
 -  // get frictionless ball
 -  std::string ballNoFrictionName = "model_ball_no_friction";
 -  physics::ModelPtr ballNoFrictionModel = world->GetModel(ballNoFrictionName);
 -  ASSERT_TRUE(ballNoFrictionModel != NULL);
 -
 -  std::string ballNoFrictionSensorName = "ball_no_friction_imu_sensor";
 -  sensors::ImuSensorPtr ballNoFrictionImu =
 -    boost::static_pointer_cast<sensors::ImuSensor>(
 -    sensors::SensorManager::Instance()->GetSensor(ballNoFrictionSensorName));
 -  ASSERT_TRUE(ballNoFrictionImu != NULL);
 -  ballNoFrictionImu->Init();
 -
 -  // get gravity
 -  math::Vector3 g = physics->GetGravity();
 -
 -  // run for 1900 steps (Step(1) each time), or 1.9 seconds, enough
 -  // to capture what we need from this experiment.
 -  for (unsigned n = 0; n < 1900; ++n)
 -  {
 -    world->Step(1);
 -    // gzdbg << "time: " << world->GetSimTime().Double() << "\n";
 -
 -    // pendulum
 -    // on startup
 -    //   sensor linear accel [0 0 0]
 -    //   Link::GetRelativeLinearAccel() [0 0 -9.81]
 -    //   Link::GetWorldLinearAccel() [0 0 -9.81]
 -    // @T=1.872 sec, at max lowest position
 -    //   sensor linear accel [-0 -0.041216 29.4258]
 -    //   Link::GetRelativeLinearAccel() [-0 -0.008923 19.6159]
 -    //   Link::GetWorldLinearAccel() [-0 0.055649 19.6158]
 -    {
 -      // get states from imu sensor
 -      math::Vector3 imuLinearAccel = pendulumImu->GetLinearAcceleration();
 -      // get states from link
 -      math::Vector3 relativeLinearAccel =
 -        pendulumModel->GetRelativeLinearAccel();
 -      math::Vector3 worldLinearAccel =
 -        pendulumModel->GetWorldLinearAccel();
 -
 -      if (world->GetSimTime().Double() == 1.872)
 -      {
 -        // initial values
 -        EXPECT_NEAR(imuLinearAccel.x, 0, IMU_TOL);
 -        EXPECT_NEAR(imuLinearAccel.y, -0.041216, IMU_TOL);
 -        EXPECT_NEAR(imuLinearAccel.z, 29.42581726, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.x, 0, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.y, -0.036397, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.z, 19.6158848, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.x, 0, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.y, -0.0267709, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.z, 19.6159003, IMU_TOL);
 -      }
 -      else
 -      {
 -        // initial values
 -        EXPECT_LE(imuLinearAccel.z, 29.4259);
 -        EXPECT_LE(relativeLinearAccel.z, 19.616);
 -        EXPECT_LE(worldLinearAccel.z, 19.616);
 -      }
 -    }
 -
 -    // friction ball
 -    // before contact
 -    //   sensor linear accel [0 0 0]
 -    //   Link::GetRelativeLinearAccel() [0 0 -9.81]
 -    //   Link::GetWorldLinearAccel() [0 0 -9.81]
 -    //
 -    // @T=1.2 sec, on ramp - varies, e.g.
 -    //   sensor linear accel [-7.81558 0 3.71003]
 -    //   Link::GetRelativeLinearAccel() [1.98569 0 3.29613]
 -    //   Link::GetWorldLinearAccel() [3.37698 0 -1.84485]
 -    //
 -    // @T=1.849 sec, on ground - sensor vector rotates
 -    //   sensor linear accel [-2.93844 0 9.35958]
 -    //   Link::GetRelativeLinearAccel() [0 0 0]
 -    //   Link::GetWorldLinearAccel() [0 0 0]
 -    {
 -      // get states from imu sensor
 -      math::Vector3 imuLinearAccel = ballFrictionImu->GetLinearAcceleration();
 -      // get states from link
 -      math::Vector3 relativeLinearAccel =
 -        ballFrictionModel->GetRelativeLinearAccel();
 -      math::Vector3 worldLinearAccel =
 -        ballFrictionModel->GetWorldLinearAccel();
 -
 -      if (world->GetSimTime().Double() <= 1.0)
 -      {
 -        // freefall
 -        EXPECT_NEAR(imuLinearAccel.x, 0, IMU_TOL);
 -        EXPECT_NEAR(imuLinearAccel.y, 0, IMU_TOL);
 -        EXPECT_NEAR(imuLinearAccel.z, 0, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.x, g.x, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.y, g.y, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.z, g.z, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.x, g.x, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.y, g.y, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.z, g.z, IMU_TOL);
 -      }
 -      // should use contact detector for these timing stuff
 -      else if (world->GetSimTime().Double() >= 1.2 &&
 -               world->GetSimTime().Double() <= 1.84)
 -      {
 -        // on ramp
 -        // ...hm, not much can be said in simple terms, leave out for now.
 -      }
 -      else if (world->GetSimTime().Double() >= 1.85)
 -      {
 -        // on the ground
 -        double imuMag = imuLinearAccel.GetLength();
 -        double gMag = g.GetLength();
 -        EXPECT_NEAR(imuMag, gMag, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.x, 0, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.y, 0, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.z, 0, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.x, 0, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.y, 0, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.z, 0, IMU_TOL);
 -      }
 -    }
 -
 -    // frictionless ball
 -    // before contact
 -    //   sensor linear accel [0 0 0]
 -    //   Link::GetRelativeLinearAccel() [0 0 -9.81]
 -    //   Link::GetWorldLinearAccel() [0 0 -9.81]
 -    // @T=1.2 sec, on ramp - constant
 -    //   sensor linear accel [4.12742 0 7.55518]
 -    //   Link::GetRelativeLinearAccel() [4.12742 0 -2.25482]
 -    //   Link::GetWorldLinearAccel() [4.12742 0 -2.25482]
 -    // @T=1.8 sec, on ground - constant
 -    //   sensor linear accel [0 0 9.81]
 -    //   Link::GetRelativeLinearAccel() [0 0 0]
 -    //   Link::GetWorldLinearAccel() [0 0 0]
 -    {
 -      // get states from imu sensor
 -      math::Vector3 imuLinearAccel =
 -        ballNoFrictionImu->GetLinearAcceleration();
 -      // get states from link
 -      math::Vector3 relativeLinearAccel =
 -        ballNoFrictionModel->GetRelativeLinearAccel();
 -      math::Vector3 worldLinearAccel =
 -        ballNoFrictionModel->GetWorldLinearAccel();
 -
 -      if (world->GetSimTime().Double() <= 1.0)
 -      {
 -        // freefall
 -        EXPECT_NEAR(imuLinearAccel.x, 0, IMU_TOL);
 -        EXPECT_NEAR(imuLinearAccel.y, 0, IMU_TOL);
 -        EXPECT_NEAR(imuLinearAccel.z, 0, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.x, g.x, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.y, g.y, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.z, g.z, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.x, g.x, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.y, g.y, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.z, g.z, IMU_TOL);
 -      }
 -      else if (world->GetSimTime().Double() >= 1.3 &&
 -               world->GetSimTime().Double() <= 1.751)
 -      {
 -        // on the ramp
 -        const double rampAngle = 0.5;
 -        double gMag = g.GetLength();
 -        double imuMag = imuLinearAccel.GetLength();
 -        EXPECT_NEAR(imuMag, gMag*cos(rampAngle), IMU_TOL);
 -
 -        double relMag = relativeLinearAccel.GetLength();
 -        EXPECT_NEAR(relMag, gMag*sin(rampAngle), IMU_TOL);
 -        double worMag = worldLinearAccel.GetLength();
 -        EXPECT_NEAR(worMag, gMag*sin(rampAngle), IMU_TOL);
 -      }
 -      else if (world->GetSimTime().Double() >= 1.8)
 -      {
 -        // on the ground
 -        double imuMag = imuLinearAccel.GetLength();
 -        double gMag = g.GetLength();
 -        EXPECT_NEAR(imuMag, gMag, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.x, 0, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.y, 0, IMU_TOL);
 -        EXPECT_NEAR(relativeLinearAccel.z, 0, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.x, 0, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.y, 0, IMU_TOL);
 -        EXPECT_NEAR(worldLinearAccel.z, 0, IMU_TOL);
 -      }
 -    }
 -  }
 -}
 -
 -TEST_P(ImuTest, ImuSensorTestWorld)
 -{
 -  ImuSensorTestWorld(GetParam());
--}
--
--void ImuTest::Stationary_EmptyWorld(const std::string &_physicsEngine)
--{
--  // static models not fully working in simbody yet
--  if (_physicsEngine == "simbody")
--  {
--    gzerr << "Aborting test for Simbody, see issue #860.\n";
--    return;
--  }
--
--  Load("worlds/empty.world", true, _physicsEngine);
--
--  std::string modelName = "imu_model";
--  std::string imuSensorName = "imu_sensor";
--  math::Pose testPose(math::Vector3(0, 0, 0.05),
--      math::Quaternion(0.5, -1.0, 0.2));
--
--  SpawnImuSensor(modelName, imuSensorName, testPose.pos,
--      testPose.rot.GetAsEuler());
--
--  sensors::ImuSensorPtr imu =
--    boost::static_pointer_cast<sensors::ImuSensor>(
--        sensors::SensorManager::Instance()->GetSensor(imuSensorName));
--
-   ASSERT_TRUE(imu);
 -  ASSERT_TRUE(imu != NULL);
--  imu->Init();
--  math::Vector3 rateMean, accelMean;
--  math::Quaternion orientation;
--  this->GetImuData(imu, 1, rateMean, accelMean, orientation);
--
--  EXPECT_NEAR(rateMean.x, 0.0, IMU_TOL);
--  EXPECT_NEAR(rateMean.y, 0.0, IMU_TOL);
--  EXPECT_NEAR(rateMean.z, 0.0, IMU_TOL);
--
--  math::Vector3 g;
--  this->GetGravity(testPose.rot, g);
--  EXPECT_NEAR(accelMean.x, -g.x, IMU_TOL);
--  EXPECT_NEAR(accelMean.y, -g.y, IMU_TOL);
--  EXPECT_NEAR(accelMean.z, -g.z, IMU_TOL);
--
--  // Orientation should be identity, since it is reported relative
--  // to reference pose.
--  EXPECT_NEAR(orientation.x, 0, IMU_TOL);
--  EXPECT_NEAR(orientation.y, 0, IMU_TOL);
--  EXPECT_NEAR(orientation.z, 0, IMU_TOL);
--  EXPECT_NEAR(orientation.w, 1, IMU_TOL);
--}
--
--TEST_P(ImuTest, EmptyWorld)
--{
--  Stationary_EmptyWorld(GetParam());
--}
--
--void ImuTest::Stationary_EmptyWorld_Noise(const std::string &_physicsEngine)
--{
--  // static models not fully working in simbody yet
--  if (_physicsEngine == "simbody")
--  {
--    gzerr << "Aborting test for Simbody, see issue #860.\n";
--    return;
--  }
--
--  Load("worlds/empty.world", true, _physicsEngine);
--
--  std::string modelName = "imu_model";
--  std::string imuSensorName = "imu_sensor";
--  math::Pose testPose(math::Vector3(0, 0, 0.05),
--      math::Quaternion(0.3, -1.4, 2.0));
--
--  double rateNoiseMean = 1.0;
--  double rateNoiseStddev = 0.1;
--  double rateBiasMean = 0.0;
--  double rateBiasStddev = 0.0;
--  double accelNoiseMean = -10.0;
--  double accelNoiseStddev = 0.1;
--  double accelBiasMean = 0.0;
--  double accelBiasStddev = 0.0;
--  SpawnImuSensor(modelName, imuSensorName, testPose.pos,
--      testPose.rot.GetAsEuler(), "gaussian",
--      rateNoiseMean, rateNoiseStddev,
--      rateBiasMean, rateBiasStddev,
--      accelNoiseMean, accelNoiseStddev,
--      accelBiasMean, accelBiasStddev);
--
--  sensors::ImuSensorPtr imu =
--    boost::static_pointer_cast<sensors::ImuSensor>(
--        sensors::SensorManager::Instance()->GetSensor(imuSensorName));
--
-   ASSERT_TRUE(imu);
 -  ASSERT_TRUE(imu != NULL);
--  imu->Init();
--  math::Vector3 rateMean, accelMean;
--  math::Quaternion orientation;
--  this->GetImuData(imu, 1000, rateMean, accelMean, orientation);
--
--  double d1, d2;
--  // Have to account for the fact that the bias might be sampled as positive
--  // or negative
--  d1 = fabs(rateMean.x - (rateNoiseMean + rateBiasMean));
--  d2 = fabs(rateMean.x - (rateNoiseMean - rateBiasMean));
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*rateNoiseStddev + 3*rateBiasStddev);
--  d1 = fabs(rateMean.y - (rateNoiseMean + rateBiasMean));
--  d2 = fabs(rateMean.y - (rateNoiseMean - rateBiasMean));
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*rateNoiseStddev + 3*rateBiasStddev);
--  d1 = fabs(rateMean.z - (rateNoiseMean + rateBiasMean));
--  d2 = fabs(rateMean.z - (rateNoiseMean - rateBiasMean));
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*rateNoiseStddev + 3*rateBiasStddev);
--
--  math::Vector3 g;
--  this->GetGravity(testPose.rot, g);
--  // Have to account for the fact that the bias might be sampled as positive
--  // or negative
--  d1 = fabs(accelMean.x - (accelNoiseMean + accelBiasMean) + g.x);
--  d2 = fabs(accelMean.x - (accelNoiseMean - accelBiasMean) + g.x);
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*accelNoiseStddev + 3*accelBiasStddev);
--  d1 = fabs(accelMean.y - (accelNoiseMean + accelBiasMean) + g.y);
--  d2 = fabs(accelMean.y - (accelNoiseMean - accelBiasMean) + g.y);
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*accelNoiseStddev + 3*accelBiasStddev);
--  d1 = fabs(accelMean.z - (accelNoiseMean + accelBiasMean) + g.z);
--  d2 = fabs(accelMean.z - (accelNoiseMean - accelBiasMean) + g.z);
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*accelNoiseStddev + 3*accelBiasStddev);
--
--  // Orientation should be identity, since it is reported relative
--  // to reference pose.
--  EXPECT_NEAR(orientation.x, 0, IMU_TOL);
--  EXPECT_NEAR(orientation.y, 0, IMU_TOL);
--  EXPECT_NEAR(orientation.z, 0, IMU_TOL);
--  EXPECT_NEAR(orientation.w, 1, IMU_TOL);
--}
--
--TEST_P(ImuTest, EmptyWorldNoise)
--{
--  Stationary_EmptyWorld_Noise(GetParam());
--}
--
--void ImuTest::Stationary_EmptyWorld_Bias(const std::string &_physicsEngine)
--{
--  // static models not fully working in simbody yet
--  if (_physicsEngine == "simbody")
--  {
--    gzerr << "Aborting test for Simbody, see issue #860.\n";
--    return;
--  }
--
--  Load("worlds/empty.world", true, _physicsEngine);
--
--  std::string modelName = "imu_model";
--  std::string imuSensorName = "imu_sensor";
--  math::Pose testPose(math::Vector3(0, 0, 0.05),
--      math::Quaternion(-0.3, 0.5, 1.0));
--
--  double rateNoiseMean = 0.0;
--  double rateNoiseStddev = 0.0;
--  double rateBiasMean = 1.0;
--  double rateBiasStddev = 0.1;
--  double accelNoiseMean = 0.0;
--  double accelNoiseStddev = 0.0;
--  double accelBiasMean = 5.0;
--  double accelBiasStddev = 0.1;
--  SpawnImuSensor(modelName, imuSensorName, testPose.pos,
--      testPose.rot.GetAsEuler(), "gaussian",
--      rateNoiseMean, rateNoiseStddev,
--      rateBiasMean, rateBiasStddev,
--      accelNoiseMean, accelNoiseStddev,
--      accelBiasMean, accelBiasStddev);
--
--  sensors::ImuSensorPtr imu =
--    boost::static_pointer_cast<sensors::ImuSensor>(
--        sensors::SensorManager::Instance()->GetSensor(imuSensorName));
--
-   ASSERT_TRUE(imu);
 -  ASSERT_TRUE(imu != NULL);
--  imu->Init();
--  math::Vector3 rateMean, accelMean;
--  math::Quaternion orientation;
--  this->GetImuData(imu, 1000, rateMean, accelMean, orientation);
--
--  double d1, d2;
--  // Have to account for the fact that the bias might be sampled as positive
--  // or negative
--  d1 = fabs(rateMean.x - (rateNoiseMean + rateBiasMean));
--  d2 = fabs(rateMean.x - (rateNoiseMean - rateBiasMean));
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*rateNoiseStddev + 3*rateBiasStddev);
--  d1 = fabs(rateMean.y - (rateNoiseMean + rateBiasMean));
--  d2 = fabs(rateMean.y - (rateNoiseMean - rateBiasMean));
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*rateNoiseStddev + 3*rateBiasStddev);
--  d1 = fabs(rateMean.z - (rateNoiseMean + rateBiasMean));
--  d2 = fabs(rateMean.z - (rateNoiseMean - rateBiasMean));
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*rateNoiseStddev + 3*rateBiasStddev);
--
--  math::Vector3 g;
--  this->GetGravity(testPose.rot, g);
--  // Have to account for the fact that the bias might be sampled as positive
--  // or negative
--  d1 = fabs(accelMean.x - (accelNoiseMean + accelBiasMean) + g.x);
--  d2 = fabs(accelMean.x - (accelNoiseMean - accelBiasMean) + g.x);
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*accelNoiseStddev + 3*accelBiasStddev);
--  d1 = fabs(accelMean.y - (accelNoiseMean + accelBiasMean) + g.y);
--  d2 = fabs(accelMean.y - (accelNoiseMean - accelBiasMean) + g.y);
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*accelNoiseStddev + 3*accelBiasStddev);
--  d1 = fabs(accelMean.z - (accelNoiseMean + accelBiasMean) + g.z);
--  d2 = fabs(accelMean.z - (accelNoiseMean - accelBiasMean) + g.z);
--  EXPECT_NEAR(0.0, std::min(d1, d2),
--              3*accelNoiseStddev + 3*accelBiasStddev);
--
--  // Orientation should be identity, since it is reported relative
--  // to reference pose.
--  EXPECT_NEAR(orientation.x, 0, IMU_TOL);
--  EXPECT_NEAR(orientation.y, 0, IMU_TOL);
--  EXPECT_NEAR(orientation.z, 0, IMU_TOL);
--  EXPECT_NEAR(orientation.w, 1, IMU_TOL);
--}
--
--TEST_P(ImuTest, EmptyWorldBias)
--{
--  Stationary_EmptyWorld_Bias(GetParam());
--}
--
--INSTANTIATE_TEST_CASE_P(PhysicsEngines, ImuTest, PHYSICS_ENGINE_VALUES);
--
--int main(int argc, char **argv)
--{
--  // Set a specific seed to avoid occasional test failures due to
--  // statistically unlikely, but possible results.
--  math::Rand::SetSeed(42);
--  ::testing::InitGoogleTest(&argc, argv);
--  return RUN_ALL_TESTS();
--}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/gazebo.git



More information about the debian-science-commits mailing list