Source

ars / TODO.txt

TODO

Packaging and distribution
-Add to README.txt a "Contributors" section and/or a "Thanks also to" section to list the names of people who’ve helped.

"Correctness"
-what is 'time' for in ScreenshotRecorder.write?
-rename demos modules in CamelCase
-replace access to world._inner_object with its property (world.inner_object)
-rename Simulation.get_joint as get_sim_joint
-IROS/example4_sinusoidal_terrain: rename 'get_arm_compensation' to 'calc_arm_compensation'
-IROS/example4_sinusoidal_terrain: extract the *_heightfield funtions

Code structure (modules and packages)
-convert sensors module into a package
-make JointSensor.__init__ be able to receive a Joint OR a SimulatedJoint, which
wraps a Joint. The idea is to avoid confusing calls such as "x.get_joint().get_joint()"

General
-dBodySetFiniteRotationMode
-dBodySetFiniteRotationAxis. is it necessary to set this if dBodySetFiniteRotationMode = true?
-rename package "model" to "core"?

Tests
-split 'tests' and what are examples of how to use external libs
-move tests in utils.mathematical to a test file
-extract functions from trimesh_collision: '*_heightfield', 'get_faces', 'swap_faces_indices'

Documentation
-document that 'Queue' is a wrapper of 'deque', one of the high performance
container datatypes in built-in 'collections' module

Visualization
-create a subclass of vtkInteractorStyleTrackball (http://www.vtk.org/doc/nightly/html/classvtkInteractorStyleTrackball.html)
-remove the event bindings for this class which interfere with the desired behavior
	http://vtk.org/doc/nightly/html/classvtkRenderWindowInteractor.html
-see VTK/Tutorials/InteractorStyleSubclass (http://www.vtk.org/Wiki/VTK/Tutorials/InteractorStyleSubclass) for ideas
-for a plane use a PlaneSource instead of a slim box
	http://www.vtk.org/Wiki/VTK/Examples/Python/GeometricObjects/Display/Plane
-add shadows
-draw joints: use a point for the anchor, and an arrow for each axis
-use the position argument to create Axes object

Joints
-store joint rotation limits and resistive force factors

GUI
-Qt integration
	from PyQt4 import QtCore, QtGui, uic
	# Create a PyQt window using a .ui file generated with Qt Designer ...
	application = QtGui.QApplication(sys.argv)
	window = uic.loadUi("gui.ui")
	vertex_slider = window.findChild(QtGui.QSlider, "vertexCount")
	edge_slider = window.findChild(QtGui.QSlider, "edgeCount")
	
	window.show()
	application.exec_()