Add a "withwebcams" option to the tracker applet. When turned on, the
mini images from the webcams (240x180) are displayed in the mechanical area in the lower right of the floormap. The frame rate is 2fps to avoid pummeling the node, as its all done with Java, including the jpeg conversion and display (I grabbed most of this code from my tools/webcamapplet that I wrote a while back). My first attempt at this performed really bad cause I was redrawing the entire display whenever a new frame came into any camera. Ack, this was chewing 98% of the CPU. So, I restructured things so that each camera is in its own JPanel and has its own paint callback. However, in order to have overlapped JPanels (since the base image is also a JPanel) I needed to shift to using the LayeredPane instead of the ContentPane of the applet. This meant creating a wrapper JPanel to hold the base image, and then combining everything together on the layered pane. The result is that the repainting system paints only what needs to be painted, and everything runs much much faster (about 15% CPU on my desktop). Also got rid of my inline double buffering; JPanels do that by default for you. I did not realize that at the time I wrote the applet cause I missed the tiny footnote in the Graphics2D tutorial that says Swing components do that for you!
Showing with 362 additions and 22 deletions