Oct 20, 2001
I finally kicked off the mapper, the start of the simulator

Oct 21, 2001
I think the quad tree works,
I added zoom and pan functionality and it seem to work.
Now drawing functionality will have to be added.

Oct 22, 2001
Lots of good stuff added today
1) lots of commenting in function calls in the UQuadTree class
2) add lines
3) select lines
4) delete lines

Oct 23, 2001
Not much bang for the buck today.
1) adds a brand new algorithm to find all of the quadrants that a line is in.  It is in the
ULinearAlgebra classes, uses intersection of lines to solve the problem.  Took a lot of time, and
probably isn't efficient.
2) Added adding and deleteing references to lines, on all levels of the quad trees, need to add 
the optimized rendering algorithm

Oct 25, 2001
1) Fixed problem with the find line.  I casts the sqr to floats because overflow was happening (ULinearalgerbra get distance)
2) Added the optimized rendering.  Saves a lot of rendering time, pretty cool.
3) Added move line if selected by moving box, however there was a design compremise, see design notes.

Oct 27, 2001
1) Added all of the arc support, took a lot of time

Nov 02, 2001
Big day! lots done
1) Rejigged the architecture and now am using a group pointer methodoly.  Every object has a 
   group pointer, which links to parent group pointers and so forth.  It works!  Multiple 
   higharchical groups could be made
2) Add selected object status, very easy with the new group pointer stuff.
3) Added snap to endpoint, with options on apeture size.
4) Added save and load, binary style, while saving group information

Nov 10, 2001
1) When drawing lines or arcs the line or arc is shown being drawn
2) Added copy, cut paste, move object, Might need a bit of refinement

Nov 13, 2001
1) Added some console elements, a lot more work to do

Nov 14, 2001
1) Finished console commands for line and arc, for normal, polar, and delta coordinates
2) Added Snap to Grid, and to Polar limits,  only limitation is that they don't work both at once
   Of course, having them both work at once, unless both values are small, doesn't really make sense.

Nov 15, 2001
1) Added cancel command
2) Restricted zoom to 100 by 100, should avoid the GDI problems

Nov 17, 2001
for tommorow
fix select/deselect on depth // done sort of
fix initial orientation // done sort of
fix loops
fix thread ends in -1;

Nov 18,2001
1) Some minor bugs with the add depth when having 90 degrees curves other then then working
2) need to add it for arcs, have some helper functions for it already.
3) found bug with saving maps with group heirechy will have to check it out.

Nov 19,2001
1) Got nearly 100% of add depth.  Need to add case of arc starts or ends
2) fixed Nov 18 bug with save file

Nov 20,2001
1) Add select box group
   Limitations -> does not check if the arc is properly in the box, just checks the quad of the arc
2) Added rotate by hacking up the duplicatemove function, pretty easy work.
3) Added pop up menu to make the UI better.

Dec 05,2001
1) Added the bumper object.
2) Added the undo/redo facilities, pretty easy
3) Improved ToolBar and added Save feature (easy)

Dec 06,2001
1) Added some features to the bump sensor, such as properties, also there was some bugs that had to be fixed
2) Added the ability to save current view in a file.


Dec 13,2001
1) Duplicated what I did with the bump sensor and added support for the IR and sonar
   Still need to add Proper IR rendering

Dec 14, 2001
1) Changed the rotate point to round instead of type casting double to long variables.
   Huge improvement with the way things look at 0,90,180,270 degrees etc
2) Added Proper IR rendering.

Dec 20, 2001
1) Added save file with converting the arcs to lines

Dec 24, 2001
1)Added a line clipping function which solves the GDI rendering problem when 
  the lines are big due to scaling

Jan 5, 2002
1) Did a hack job to AddDepth to add triangles for a roof.  Seems to work.  Note that the 
Depth algorithm isn't close to perfect

Jan 8, 2002
1) Fixed the save on the triangle 3D.  When you save you save the parent group ptr of the triangle
   object, because none of the other group members (the lines) are saved, to this is the easy
   way to get around it.
2) Fixed add depth error for boxes.

Jan 9, 2002
1) Totally fixed everything to do with roof and triangle 3D.

Jan 21, 2002
1) Fixed bug in the console with inputing delta coordinates
2) Fixed bug on select endpoint by putting a +1 on the rounding part
3) Changed snap color to blue, to distiguish it from the triangle color (green)
4) Added support for the mouse scroll wheel
5) Added support for robot placement

Feb 02,2002
1) Added a print set of pens (all black) so it doesn't try to print in green on a blank & white printer

Things to add
Figure out why opening the file dialog results in a few -1 threads
Perhaps trim?  Should be easy
Fix Arc bug, but I think it shouldn't be a problem.
Add other snap modes (midpoint etc)?  probably not neccessary, but probably not too difficult
Fix Depth function (I doubt its worthwhile)



Limiations
The arc presents a particular limitation.
The arc group must exist for it to work properly.  The arc group disappears when the lines get to big, and are not valid
This isn't a very realistic case but to prevent this, a maximum radius was imposed in the GetPointsofCirclefunction in the linear algebra class

When selecting a box group it does does not check if the arc is properly in the box, just checks the quad of the arc
I didn't want to do the intersection between an arc and line, too much work for a very rare case.

Since integers are used in a lot of cases, the program will blow up, if there are too many objects and groups combined, 
however the 32k limit on group pointer seems sufficient.
