Pixel maps
----------

Should the pixel represent things other than solidness? (eg, surface properties)

Each pixel could hold a reference to an object type, so: look at pixel, get
code, look up object type with this code, get its list of properties.

A bitmap can be easily created in X. (eg. use Xfig and save as file)
Pixmaps in X are for its own use (I think?)
But can also just store commands and whip up the pixmap in no time.

ABOUT PIXEL MAP OF ENVIRONMENT
==============================

Thoughts
--------

2 arrays per robot may use too much space if multiple robots?
    so:
        1)  use smaller arrays with offset relative to global
    or  2)  use one array for everything
            - collision checking slightly faster
            - would need to calculate new outline as list of coords, check
              for collision, update if no collision

Why not store the robot outline as a list of coordinates instead of an array


Displaying if only one robot
----------------------------

the robot has 
1) a shape = sequential list of corner coordinates (ie. a poly line)
             in a local frame 
2) position and rotation in global frame (x,y,r)
3) intended velocity (xv,yv,rv)

there is an array recording static objects

calculate the new corner positions and save as a list called new corners

start to calculate the pixels along the lines between these corners
check to see if each pixel is empty in the array of static objects

if one is not empty then end

if all are empty then 
  remove the old drawing from the array (using old corners)
  display the new robot (ie. pass the list of new corners as a polyline to graphics)
  rename the list of new corners as the list of old corners
  update x,y,r

For multiple robots
-------------------

would need robots on static array - would need to erase yoursef before checking
collision or have each robot on a different array

2 arrays per robot allows you to keep the old version if the new has collision
BUT if collision happend do you have to erase the partially drawn robot? Yes 
and even if no hits then have to erase the old version!


ANSWER
------

Since you have to erase the old position if the new position is valid 
(or erase the partially drawn new position if it is invalid) why not use 
one array for both static objects and robots? The robot would have to be erased
before collision checking (using a saved outline pixels list?). Collision 
checking would be slightly faster because you only need check one array instead 
of one for each other robot + one for static objects.
