message: added a relative object adding function as a proof of concept for advantages from using matrices for position tracking
diff: @@ -14,6 +14,11 @@ class Pose(object):
  def __repr__(self):
  return repr(self._pose)
  + # Is there another intuitive matrix mult that
  + # I just don't know about which would make this confusing?
  + def __mul__(self, other):
  + return self._pose.dot(other)
  +
  @property
  def x(self):
  return self._pose[0][2]
  @@ -47,19 +52,31 @@ class PositionTracker(object):
  return repr(self._position_dict)
  def track_object(self, obj, x, y, z):
  + '''
  + Adds an object to the dict of object positions
  +
  + :param obj: Object to add to the position dict
  + :param x, y, z: global object position
  + :return: None
  + '''
  pose = Pose(x, y, z)
  self[obj] = pose
  + def track_relative_object(self, new_obj, tracked_obj, x, y, z):
  + '''
  + Adds an object to the dict of object positions
  + given another object and relative positioning
  +
  + :param new_obj: object to be added to position dict
  + :param tracked_obj: already tracked object that this object is position relative to
  + :param x, y, z: relative translation between the two objects
  + :return: None
  + '''
  + glb_x, glb_y, dummy = self[tracked_obj] * [x, y, 1]
  + self.track_object(new_obj, glb_x, glb_y, dummy)
  +
  def remove_object(self, obj):
  del self[obj]
  def get_object_position(self, obj):
  return self[obj]
  -
  -
  -
  -
  - # Only if we'll need to do special parsing
  - # like building the POS object in track_object
  - def add_object_to_track(self, object, position):
  - pass
  