gazebo / TODO


- Hand of god
  - Select models and get info
  - Move models
  -Implement in CameraSensor class.
- Allow person to display and change XML parameters through the GUI.
- Better fonts
- Better camera movement. Translate is too slow over long distances

- FSAA: See OgreCreator::CreateWindow
- Shadows draw on multiple surfaces(seem to pass through walls).
- Removing the sky results in a black screen
- Paging heightmaps. 
  - Positioning the current heightmap is a big hack
- BSP loader and worlds
- Fog
- Anti Aliasing
- Better lights
  - GLSL per pixel lighting. Make this user selectable.
- Dynamic textures

- Apply Linear and Angular Damping, see OGREODE sources.
- A static geom which is offset does not actually move the geom, so collision
  detection does not work
- Why order on hinge and hinge2 joints matters? Should we avoid this?
- Add spring force between bodies of a model to keep the together. See ODE example test_joints.cpp
- Slider has to be the first in the XML file, when loading a bunch of joints in a model.
- Merge PAL patch

- Force sensors
- Python/Ruby scripts to models, controllers, sensors, allow dynamic (movable) meshes
- Add note in Controller tutorial about the Controller Factory
- Implement Speech interface
- Add in user adjustment of simple solids texture units
- Fix sicklms200 PutFiducialData. Breaks when using large angles
- Intelligent positioning of nested models
- Pioneer2DX
- Write a tutorial for creating new meshes
- Graphics3d interface
- GPS 
- WiFi
- Google Earth API interface
- Check laser sampling rate
- The bodies set their scenenode based on a global pose. They should set their scenenodes based a pose relative to the model. The model currently doesn't move it's scene node, so it's always at (0,0,0). Basically should make all Body Pose stuff relative to the parent.
- Look into COLLADA, OPAL
- Multilevel map extruder

- Improve build system. Put all the platform checks in on place. 
- Replace our Time class with boost
- Create libraries so that it's easy to include the core of gazebo without linking in Ogre, fltk, etc, etc. 
- run gprof, and valgrind
- Threading. Make use of dual-core machines.
- Implement triggers with callbacks.
- Pick a formatting standard for XML file
- Standardize internal API
- Data Logger
- Rethink media organization 
- Templatize Vector, Quaternion, Pose
- Replace all return int, with throws

- Install for OSX
- Overlays in Gazebo with Mac doesn't work
- Apply patches for OSX from Nathan Michael. Add a OSX howto to the docs.

-Add "Angle" class, will handle ROTD and DTOR.
- Make headless
- Laser and Camera Interfaces
- Pose3d Interface. Thanks Toby
- Lights, and global ambient
- Enable/disable sky box, and set material
- New Coordinate system
- Pause and step simulation
- Set the screen size
- Toggle HUD display using tab
- Help overlay
- Show simTime, realTime, pauseTime
- XML include
- Check for player.
- Trimesh 
- Move Sensors out of Body
- Laser retro and fiducial detection
- Truth
- Factory
- Fix Player include so that libgazebo doesn't link in player
- FLTK interface
- Write install instructions
- Write keyboard mappings
- Write a tutorial for creating custom models
- Write a tutorial for creating new controllers
- Write a tutorial for creating new sensors
- Write a tutorial for using player
- Heightmaps
- Handle GUI resizing

- Implement SimulationProxy. Removed truth controller
- Return the sim time from Gazebo in the simulation proxy
- Add mass property
- When nesting a camera in a pioneer model it cause the pioneer to flip over.
- Libagazebo/Player INterfaces crash when a client and playerv connects, and then one of them disconnects
- Implement Act array
- look into using FL::RUN. Using threads now
- Add in Pioneer blender models
- Add check for libxml2
- Add uninstall (scons -c automatically handles this!)
-- Find something shorter for:
   std::ostringstreaom stream;
   stream << "This is an error message of type[" << type << "]\n";

 Use the Contact information in the Collision Callback. See CVS version of Gazebo.