[TeamTalk 229]: [765] vendor: Initial import of liveMaps from integration repository.

tk@edam.speech.cs.cmu.edu tk at edam.speech.cs.cmu.edu
Sat Sep 22 01:34:13 EDT 2007


An HTML attachment was scrubbed...
URL: http://mailman.srv.cs.cmu.edu/pipermail/teamtalk-developers/attachments/20070922/4e22a0b3/attachment-0001.html
-------------- next part --------------
Added: vendor/liveMaps/current/Makefile
===================================================================
--- vendor/liveMaps/current/Makefile	                        (rev 0)
+++ vendor/liveMaps/current/Makefile	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,98 @@
+# High Level Make file
+
+BASEDIR = ./
+BUILDDIR = $(BASEDIR)/build
+
+include $(BUILDDIR)/Makefile.head
+
+help:
+	$(ECHO) $(PROJECT_STRING)
+	$(ECHO) $(CONTACT_STRING)
+	$(SILENT) cat $(BUILDDIR)/helptext
+	$(ECHO) $(COPYRIGHT_STRING)
+
+all: include lib libshared test example targets cgfile
+
+ifdef INSTALLDIRINC
+ifdef INSTALLDIRLIB
+install: include libexport
+	@echo Installing include files to $(INSTALLDIRINC)
+	$(SILENT) cp include/*.h $(INSTALLDIRINC)
+	@echo Installing library files to $(INSTALLDIRLIB)
+	$(SILENT) cp lib/lib$(FULLARNAME).a $(INSTALLDIRLIB)
+else
+install:
+	@echo Error: INSTALLDIRLIB not defined : Edit makefile.config to set target
+endif
+else
+install:
+	@echo Error: INSTALLDIRINC not defined : Edit makefile.config to set target
+endif
+						
+
+lib: libexport force
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+libexport:
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+libshared: force
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+include: force
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+test: force
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+example: force
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+targets: force
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+cgfile: force
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+depend: force
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+clean: force
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+
+# Files are deleted if and only if they exisits
+
+LS01 = $(shell ls include/*.h 2> /dev/null)
+ifneq ($(LS01), )
+cleaninclude:
+	@echo "Removing files from include/"
+	$(SILENT) -$(RM) $(RMFLAGS) $(LS01)
+else
+cleaninclude:
+endif
+
+
+LS02 = $(shell ls lib/*.a lib/*.so 2> /dev/null)
+ifneq ($(LS02), )
+cleanlib:
+	@echo "Removing files from lib/"
+	$(SILENT) -$(RM) $(RMFLAGS) $(LS02)
+else
+cleanlib:
+endif
+
+LS03 = $(filter-out EMPTY, $(filter-out bin/CVS, $(shell ls -d bin/* 2> /dev/null)))
+ifneq ($(LS03), )
+cleanbin:
+	@echo "Removing files from bin/"
+	$(SILENT) -$(RM) $(RMFLAGS) $(LS03)
+else
+cleanbin:
+endif
+
+
+distclean: force cleaninclude cleanlib cleanbin
+	$(SILENT) $(MAKE) $(MFLAGS) -C src $@
+
+force:

Added: vendor/liveMaps/current/Makefile.base
===================================================================
--- vendor/liveMaps/current/Makefile.base	                        (rev 0)
+++ vendor/liveMaps/current/Makefile.base	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1 @@
+BASEDIR := $(BASEDIR)

Added: vendor/liveMaps/current/Makefile.config
===================================================================
--- vendor/liveMaps/current/Makefile.config	                        (rev 0)
+++ vendor/liveMaps/current/Makefile.config	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,26 @@
+PROJECT_STRING = "rCommerce Lab Software: Boeing Release Branch"
+CONTACT_STRING = "Contact: Marc Benjamin Zinck mbz at cmu.edu www.cs.cmu.edu/~mbz"
+COPYRIGHT_STRING = "Copyright 2005-2007 Carnegie Mellon University"
+
+#EXPORTLIBTARGET = rCommerce
+#FULLARNAME = rCommerce
+
+# Specifies the destination for library and header files
+# when make install is used
+INSTALLDIRINC = 
+INSTALLDIRLIB =
+
+# Global Include and Library Paths
+GLOBALINCLUDEPATH += 
+
+GLOBALLIBPATH +=
+
+FLUID = $(BASEDIR)/external/fltk/bin/fluid
+
+#CC  = gcc-3.3
+#CXX = g++-3.3
+#LD  = g++-3.3
+
+CC  = gcc-4.1
+CXX = g++-4.1
+LD  = g++-4.1

Added: vendor/liveMaps/current/README
===================================================================
--- vendor/liveMaps/current/README	                        (rev 0)
+++ vendor/liveMaps/current/README	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,39 @@
+LiveMaps Release v1320
+
+1) Demo Instructions
+
+  a) Build the source tree
+    % make all
+
+  b) Run the server in demo mode
+    % cd bin
+    % ./liveMapsServer -c 1
+
+  c) Run Viewer in a separate xterm
+    Launch xterm
+    % cd bin
+    % ./liveMapsViewer -P 300:0
+
+  liveMapsServer launches 3 windows with balls bouncing around a map 
+  representing map data from from three robots. The three maps 
+  are combined in the mapIntegrationServer which exposes a 
+  boeing_map_server.  A boeing_map_client compatible application 
+  can connect to the liveMapsServer and access the aggregate map.
+
+  liveMapsViewer implements a boeing_map_client and displays the
+  aggregate map.
+
+  run liveMapsServer -h and liveMapsViewer -h for more options.
+
+2) Integrating other input into liveMapsServer.
+
+  Source code for liveMaps Server is located /src/modules/liveMaps/liveMapsServer
+
+  Access to external data is provided through the liveMapsClient class.
+  Data from robots or other sources can be included by inheriting
+  from liveMapsClient and implementing the functions init() and processEvents().
+
+  See the liveMapsDemo class for an example.
+
+EOF
+

Added: vendor/liveMaps/current/README.bak
===================================================================
--- vendor/liveMaps/current/README.bak	                        (rev 0)
+++ vendor/liveMaps/current/README.bak	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,39 @@
+LiveMaps Release v1320
+
+1) Demo Instructions
+
+  a) Build the source tree
+    % make all
+
+  b) Run the server in demo mode
+    % cd bin
+    % ./liveMapsServer -c 1
+
+  c) Run Viewer in a separate xterm
+    Launch xterm
+    % cd bin
+    % ./liveMapsViewer -P 300:0
+
+  liveMapsServer launches 3 windows with balls bouncing around a map 
+  representing map data from from three robots. The three maps 
+  are combined in the mapIntegrationServer which exposes a 
+  boeing_map_server.  A boeing_map_client compatible application 
+  can connect to the liveMapsServer and access the aggregate map.
+
+  liveMapsViewer implements a boeing_map_client and displays the
+  aggregate map.
+
+  run liveMapsServer -h and liveMapsViewer -h for more options.
+
+2) Integrating other input into liveMapsServer.
+
+  Source code for liveMaps Server is located /src/modules/liveMaps/liveMapsServer
+
+  Access to external data is provided through the liveMapsClient class.
+  Data from robots or other sources can be included by inheriting
+  from liveMapsClient and implimenting the functions init() and processEvents().
+
+  See the liveMapsDemo class for an example.
+
+EOF
+

Added: vendor/liveMaps/current/build/Makefile.compile
===================================================================
--- vendor/liveMaps/current/build/Makefile.compile	                        (rev 0)
+++ vendor/liveMaps/current/build/Makefile.compile	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,44 @@
+# Makefile.compile
+
+#.SUFFIXES: .cc .cpp .cxx .c .fl
+
+%$(SUF).o : %.cc
+	@echo "$(NAME): Compiling $@"
+	$(SILENT) $(CXX) -c $(CXXFLAGS) $< -o $@
+
+%.o : %.cc
+	@echo "$(NAME): Compiling $@"
+	$(SILENT) $(CXX) -c $(CXXFLAGS) $< -o $@
+
+%$(SUF).o : %.cpp
+	@echo "$(NAME): Compiling $@"
+	$(SILENT) $(CXX) -c $(CXXFLAGS) $< -o $@
+
+%.o : %.cpp
+	@echo "$(NAME): Compiling $@"
+	$(SILENT) $(CXX) -c $(CXXFLAGS) $< -o $@
+
+%$(SUF).o : %.cxx
+	@echo "$(NAME): Compiling $@"
+	$(SILENT) $(CXX) -c $(CXXFLAGS) $< -o $@
+
+%.o : %.cxx
+	@echo "$(NAME): Compiling $@"
+	$(SILENT) $(CXX) -c $(CXXFLAGS) $< -o $@
+
+%$(SUF).o : %.c
+	@echo "$(NAME): Compiling $@"
+	$(SILENT) $(CC) -c $(CFLAGS) $< -o $@
+
+%.o : %.c
+	@echo "$(NAME): Compiling $@"
+	$(SILENT) $(CC) -c $(CFLAGS) $< -o $@
+
+%.cc : %.fl
+	@echo "$(NAME): Creating $@"
+	$(SILENT) $(FLUID) -c $< 
+
+%.h : %.fl
+	@echo "$(NAME): Creating $@"
+	$(SILENT) $(FLUID) -c $< 
+

Added: vendor/liveMaps/current/build/Makefile.head
===================================================================
--- vendor/liveMaps/current/build/Makefile.head	                        (rev 0)
+++ vendor/liveMaps/current/build/Makefile.head	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,107 @@
+# Makefile.head
+# Defines Variables
+
+CXX = g++
+CC = gcc
+
+DSUFFIX = _dbg
+STATICSUFFIX = _static
+
+SVNCMD := svnversion
+SVNCMDCHECK := $(findstring $(SVNCMD), $(shell which $(SVNCMD) ) )
+ifeq ($(SVNCMDCHECK),$(SVNCMD))
+SVNDEF := -D'SVN_REV="$(shell $(SVNCMD) -n .)"'
+else
+SVNDEF := -D'SVN_REV=""'
+endif
+
+# this is used for shared library targets
+ifdef DEBUG
+	LIBS2 := $(DBGLIBS)
+else
+	LIBS2 := $(LIBS)
+endif
+
+
+OS  := $(shell uname -s)
+ifeq ($(findstring Linux,$(OS)), Linux)
+  OS_DEF = -DLINUX
+  LIBS += $(LIBS_LINUX)
+  DBGLIBS += $(DBGLIBS_LINUX)
+endif
+ifeq ($(findstring Darwin,$(OS)), Darwin)
+  OS_DEF = -DDARWIN
+  LIBS += $(LIBS_DARWIN)
+  DBGLIBS += $(DBGLIBS_DARWIN)
+endif
+ifeq ($(findstring CYGWIN,$(OS)), CYGWIN)
+  OS_DEF = -DCYGWIN
+  LIBS += $(LIBS_CYGWIN)
+  DBGLIBS += $(DBGLIBS_CYGWIN)
+endif
+ifeq ($(findstring QNX,$(OS)), QNX)
+  OS_DEF = -DQNX
+  LIBS += $(LIBS_QNX)
+  DBGLIBS += $(DBGLIBS_QNX)
+endif
+
+LD = g++
+LDFLAGS=
+
+ifdef DEBUG
+	CXXFLAGS += -Wall -g -DDEBUG $(OS_DEF) $(SVNDEF)
+	CFLAGS += -Wall -g -DDEBUG $(OS_DEF) $(SVNDEF)
+	SUF = $(DSUFFIX)
+	SUF_T = $(SUF)
+else
+	CXXFLAGS += -Wall -O3 $(OS_DEF) $(SVNDEF)
+	CFLAGS += -Wall -O3 $(OS_DEF) $(SVNDEF)
+	LDFLAGS =
+	SUF =
+	SUF_T = $(SUF)
+endif
+
+ifdef PROFILE
+	CXXFLAGS += -pg
+	CFLAGS += -pg
+	LDFLAGS += -pg
+else
+
+endif
+
+ifdef STATIC
+	LDFLAGS += -static
+	SUF_T := $(STATICSUFFIX)$(SUF_T)
+else
+
+endif
+
+
+
+FLUID = fluid
+
+CGC = cgc
+CGCFLAGS = -profile fp40 -nocode
+
+RM = rm
+RMFLAGS = -f
+
+ECHO = @echo
+
+PROJECTINCLUDEPATH = -I$(BASEDIR)/include
+PROJECTLIBPATH = -L$(BASEDIR)/lib
+
+ifdef VERBOSE
+	SILENT =
+	SENDTODEVNULL =
+else
+	MAKEFLAGS += -s
+	MAKE = make -s
+	SILENT = @
+	SENDTODEVNULL = &> /dev/null
+endif
+
+STATSCALC=$(BASEDIR)/tools/misc/srcStats 1
+
+
+include $(BASEDIR)/Makefile.config

Added: vendor/liveMaps/current/build/Makefile.module
===================================================================
--- vendor/liveMaps/current/build/Makefile.module	                        (rev 0)
+++ vendor/liveMaps/current/build/Makefile.module	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,290 @@
+# Module makefile
+
+include $(BASEDIR)/build/Makefile.recurse
+
+LIBINSTALLPATH = $(BASEDIR)/lib
+INCLUDEINSTALLPATH = $(BASEDIR)/include
+TARGETDIR = $(BASEDIR)/bin/
+
+INCLUDEPATH2 = $(INCLUDEPATH) $(GLOBALINCLUDEPATH) $(PROJECTINCLUDEPATH)
+
+CFLAGS += $(INCLUDEPATH2)
+CXXFLAGS += $(INCLUDEPATH2) 
+
+NAME = $(subst $(shell cd $(BASEDIR);pwd)/,,$(shell cd .;pwd))
+
+ifndef NAME
+ $(warning Warning: NAME not defined in $(shell pwd)/Makefile)
+endif 
+
+ifdef DEBUG
+TARGETLIBS_0 = $(DBGLIBS)
+else
+TARGETLIBS_0 = $(LIBS)
+endif
+
+TARGETLIBS = $(GLOBALLIBPATH) $(PROJECTLIBPATH) $(TARGETLIBS_0)
+
+OBJFILES:=$(OBJFILES:.o=$(SUF).o)
+TARGETSFULL:=$(foreach i,$(TARGETS),$(TARGETDIR)$(i)$(SUF_T))
+EXAMPLETARGETSFULL:=$(foreach i,$(EXAMPLETARGETS),$(i)$(SUF_T))
+TESTTARGETSFULL:=$(foreach i,$(TESTTARGETS),$(i)$(SUF_T))
+
+ifdef LIBTARGET
+LIBTARGET:=$(LIBTARGET)$(SUF)
+FULLARNAME:=$(FULLARNAME)$(SUF)
+endif
+
+ifdef LIBSHAREDTARGET
+LIBSHAREDTARGET:=$(LIBSHAREDTARGET)$(SUF)
+endif
+
+include $(BASEDIR)/build/Makefile.compile
+
+help:
+	@echo "Module $(NAME)"
+	$(ECHO) $(PROJECT_STRING)
+	$(ECHO) $(CONTACT_STRING)
+	$(SILENT) cat $(BASEDIR)/build/helptext
+	$(ECHO) $(COPYRIGHT_STRING)
+
+all: include lib libshared test example targets cgfile
+	$(RECURSE)
+
+makefiletest:
+	@echo $(TARGETSFULL)
+	@echo $(addsuffix .o,$(TARGETS))
+	@echo $(subst $(TARGETDIR),,$(TARGETS))
+
+ifdef HEADERFILES
+#include: $(HEADERFILES)
+#	@echo "$(NAME): Copying $(HEADERFILES)"
+#	$(SILENT) cp $(HEADERFILES) $(INCLUDEINSTALLPATH)/
+
+include: $(foreach header,$(HEADERFILES),$(INCLUDEINSTALLPATH)/$(header))
+	$(RECURSE)
+else
+include:
+	$(RECURSE)
+endif
+
+$(INCLUDEINSTALLPATH)/%.h: %.h
+	@echo "$(NAME): Copying: $<"
+	$(SILENT) cp $< $(INCLUDEINSTALLPATH)/
+
+
+ifdef LIBTARGET
+ifdef OBJFILES 
+lib: $(LIBINSTALLPATH)/lib$(LIBTARGET).a libexport
+	$(RECURSE)
+ifndef SURPRESSEXPORTLIBTARGET
+ifdef EXPORTLIBTARGET
+libexport: $(LIBINSTALLPATH)/lib$(FULLARNAME).a 
+	$(RECURSE)
+else
+libexport:
+	$(RECURSE)
+endif
+else
+libexport:
+	$(RECURSE)
+endif
+else
+lib:
+	$(RECURSE)
+libexport:
+	$(RECURSE)
+endif
+else
+lib:
+	$(RECURSE)
+libexport:
+	$(RECURSE)
+endif
+
+
+ifdef LIBTARGET
+ifdef EXPORTLIBTARGET
+$(LIBINSTALLPATH)/lib$(FULLARNAME).a: $(OBJFILES)
+	@echo "$(NAME): Building library (lib$(FULLARNAME).a)"
+	$(SILENT) $(AR) $(ARFLAGS) $@ $^
+endif
+
+$(LIBINSTALLPATH)/lib$(LIBTARGET).a: $(OBJFILES)
+	@echo "$(NAME): Building library (lib$(LIBTARGET).a)"
+	$(SILENT) $(AR) $(ARFLAGS) $@ $^ $(SENDTODEVNULL)
+endif
+	
+
+# Shared libraries
+	
+ifdef LIBSHAREDTARGET
+ifdef OBJFILES 
+libshared: $(LIBINSTALLPATH)/lib$(LIBSHAREDTARGET).so
+	$(RECURSE)
+else
+libshared:
+	$(RECURSE)
+endif
+else
+libshared:
+	$(RECURSE)
+endif
+
+ifdef LIBSHAREDTARGET
+$(LIBINSTALLPATH)/lib$(LIBSHAREDTARGET).so: $(OBJFILES)
+	@echo "$(NAME): Building shared library (lib$(LIBSHAREDTARGET).so)"
+	$(SILENT) $(CC) $^ $(LDFLAGS) $(TARGETLIBS) -shared -o $@ $(addsuffix .a,$(subst -l,$(LIBINSTALLPATH)/lib,$(LIBS2)))
+endif
+
+
+
+	
+example: $(EXAMPLETARGETSFULL)
+	$(RECURSE)
+
+test: $(TESTTARGETSFULL)
+	$(RECURSE)
+
+targets : $(TARGETSFULL)
+	$(RECURSE)
+
+cgfile: 
+	-for cgf in $(CGFILES) ; do \
+		$(CGC) $(CGCFLAGS) $$cgf ;  \
+	done 
+	$(RECURSE)
+
+stats:
+	echo $(NAME) `$(STATSCALC)` 
+	$(RECURSE)
+
+$(TARGETSFULL): $(OBJFILES) $(addsuffix $(SUF).o,$(TARGETS))
+	$(ECHO) "$(NAME): Linking $@"
+	$(SILENT) $(LD) $(OBJFILES) $(subst $(TARGETDIR),, $(subst $(STATICSUFFIX),,$@.o)) $(LDFLAGS) $(TARGETLIBS) -o $@
+  
+$(TESTTARGETSFULL): $(OBJFILES) $(addsuffix $(SUF).o,$(TESTTARGETS))
+	$(ECHO) "$(NAME): Linking Test $@"
+	$(SILENT) $(LD) $(OBJFILES) $(subst $(STATICSUFFIX),,$@.o) $(LDFLAGS) $(TARGETLIBS) -o $@
+
+$(EXAMPLETARGETSFULL): $(OBJFILES) $(addsuffix $(SUF).o,$(EXAMPLETARGETS))
+	$(ECHO) "$(NAME): Linking Example $@"
+	$(SILENT) $(LD) $(OBJFILES) $(subst $(STATICSUFFIX),,$@.o) $(LDFLAGS) $(TARGETLIBS) -o $@
+
+
+LSDEPEND =  $(shell ls *.c *.cpp *.cc *.cxx 2> /dev/null)
+ifneq ($(LSDEPEND), )
+depend:
+	@echo "$(NAME) Creating Dependency File"
+	$(SILENT) -$(CC) -M $(CFLAGS) $(LSDEPEND) > makedepend
+	$(RECURSE)
+else
+depend:
+	$(RECURSE)
+endif
+
+
+
+ifdef TEMPFILES
+
+LS00 =  $(shell ls $(TEMPFILES) 2> /dev/null)
+ifneq ($(LS00), )
+clean00:
+	@echo "$(NAME): Removing Temporary Files"
+	$(SILENT) $(RM) $(RMFLAGS) $(LS00)
+else
+clean00:
+endif
+
+else
+clean00:
+endif
+
+LS01 =  $(shell ls *.o *.a core 2> /dev/null)
+ifneq ($(LS01), )
+clean01:
+	@echo "$(NAME): Removing .o .a and core"
+	$(SILENT) $(RM) $(RMFLAGS) $(LS01) 
+else
+clean01:
+endif
+
+ifdef TESTTARGETSFULL
+LS02 =  $(shell ls $(TESTTARGETS) $(addsuffix $(DSUFFIX),$(TESTTARGETS)) $(addsuffix $(STATICSUFFIX),$(TESTTARGETS))  $(addsuffix $(STATICSUFFIX)$(DSUFFIX),$(TESTTARGETS)) 2> /dev/null)
+ifneq ($(LS02), )
+clean02:
+	@echo "$(NAME): Removing Test Targets"
+	$(SILENT) $(RM) $(RMFLAGS) $(LS02)
+else
+clean02:
+endif
+else
+clean02:
+endif
+
+ifdef EXAMPLETARGETSFULL
+#LS03 =  $(shell ls $(EXAMPLETARGETSFULL) $(EXAMPLETARGETSFULL:=$(DSUFFIX)) 2> /dev/null)
+LS03 =  $(shell ls $(EXAMPLETARGETS) $(addsuffix $(DSUFFIX),$(EXAMPLETARGETS)) $(addsuffix $(STATICSUFFIX),$(EXAMPLETARGETS))  $(addsuffix $(STATICSUFFIX)$(DSUFFIX),$(EXAMPLETARGETS)) 2> /dev/null)
+ifneq ($(LS03), )
+clean03:
+	@echo "$(NAME): Removing Example Targets"
+	$(SILENT) $(RM) $(RMFLAGS) $(LS03)
+else
+clean03:
+endif
+else
+clean03:
+endif
+
+LS04 =  $(shell ls makedepend 2> /dev/null)
+ifneq ($(LS04), )
+clean04:
+	@echo "$(NAME): Removing makedepend file"
+	$(SILENT) $(RM) $(RMFLAGS) $(LS04)
+else
+clean04:
+endif
+
+LS05 =  $(shell ls *_fl.cc *_fl.h 2> /dev/null)
+ifneq ($(LS05), )
+clean05:
+	@echo "$(NAME): Removing fluid created files"
+	#$(SILENT) $(RM) $(RMFLAGS) $(LS05)
+	$(RM) $(RMFLAGS) $(LS05)
+else
+clean05:
+endif
+
+ifdef TARGETS
+LS06 =  $(shell ls $(TARGETS) $(TARGETS:=$(DSUFFIX)) 2> /dev/null)
+ifneq ($(LS06), )
+clean06:
+	@echo "$(NAME): Removing Targets"
+	$(SILENT) $(RM) $(RMFLAGS) $(LS06)
+else
+clean06:
+endif
+else
+clean06:
+endif
+
+LS07 =  $(shell ls gmon.out 2> /dev/null)
+ifneq ($(LS07), )
+clean07:
+	@echo "$(NAME): Removing profile files (gmon.out)"
+	#$(SILENT) $(RM) $(RMFLAGS) $(LS07)
+	$(RM) $(RMFLAGS) $(LS07)
+else
+clean07:
+endif
+
+
+clean: clean00 clean01 clean04 clean05
+	$(RECURSE)
+
+distclean: clean clean02 clean03 clean06 clean07
+	$(RECURSE)
+
+force:
+
+-include makedepend

Added: vendor/liveMaps/current/build/Makefile.recurse
===================================================================
--- vendor/liveMaps/current/build/Makefile.recurse	                        (rev 0)
+++ vendor/liveMaps/current/build/Makefile.recurse	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,15 @@
+MODULES = $(patsubst %/, %, $(filter-out CVS%, $(filter %/, $(shell ls -dF * 2> /dev/null)) ) )
+
+RECURSE = \
+	@for d in $(MODULES) ; do \
+		if [ -d $$d ] ; then \
+		  if [ -f $$d/Makefile ] ; then \
+				if [ !  -f $$d/Makefile.donotbuild  ] ; then \
+					if ! $(MAKE) $(MFLAGS) -C $$d $@ ; then \
+			  		echo "Error building $$d"; \
+						exit -1;\
+					fi; \
+				fi; \
+			fi; \
+		fi \
+	done

Added: vendor/liveMaps/current/build/helptext
===================================================================
--- vendor/liveMaps/current/build/helptext	                        (rev 0)
+++ vendor/liveMaps/current/build/helptext	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,30 @@
+  Commands:
+    make <OPTIONS> all         include, lib, test, example, target
+
+    make <OPTIONS> include     Place include files include/
+    make <OPTIONS> lib         compile and create libraries 
+    make <OPTIONS> libshared   compile and create shared libraries 
+    make <OPTIONS> test        compile and run tests
+    make <OPTIONS> examples    compile examples
+    make <OPTIONS> targets     compile target programs
+    make <OPTIONS> depend      create dependency files
+
+    make <OPTIONS> clean       remove intermediate files
+    make <OPTIONS> distclean   returns source tree to distribution state
+
+  Options:
+    VERBOSE=1                  display more output
+
+    DEBUG=1                    Compiles with debugging options 
+                                 CFLAGS/CXXFLAGS = -g -Wall -Werror -DDEBUG
+                                 normally compiles with
+                                 CFLAGS/CXXFLAGS = -Wall -O2
+                                 
+                                 Object files and executables build with this option
+                                 have the suffix _dbg (i.e. foo.c -> foo_dbg.o)
+                                 
+    PROFILE=1                  Compile with support for profiling (gprof)
+                                 CFLAGS/CXXFLAGS/LDFLAGS += -pg
+                                 
+    STATIC=1                   Prevents linking with shared libraries.
+                                 LDFLAGS += -static

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_converter.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_converter.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_converter.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,30 @@
+#ifndef __BOEING_CONVERTER_H__
+#define __BOEING_CONVERTER_H__
+
+#include <stdio.h>
+#include <string>
+#include <vector>
+#include "boeing_robot_packet.h"
+
+using std::string;
+using std::vector;
+
+namespace Boeing {
+
+  //==== Conversion methods ===============================
+
+  /** convert from an action message into one of the predefined
+      command message packets. Returns the type of the message,
+      or -1 on failure to match a message. The result is put in the
+      union msgcmd
+  */
+  int convert(Boeing::MsgCmdAction *mcpa,Boeing::MsgCmd &result);
+
+  /**
+   * strip off the brackets so that we are compatable with the language
+   * syntax. We just replace them with spaces
+   */
+  string stripBraces(char const *msg);
+};
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_map_client.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_map_client.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_map_client.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,61 @@
+/**
+   Boeing Map client ==
+*/
+
+#ifndef __BOEING_MAP_CLIENT_H__
+#define __BOEING_MAP_CLIENT_H__
+
+#include <vector>
+#include <string>
+using std::vector;
+using std::string;
+
+#include "boeing_map_packet.h"
+
+class UDPSocket;
+
+// client class to manage UDP connections to robots
+namespace Boeing {
+
+  class MapClient {
+  private:
+    UDPSocket *sock;
+    MsgMapClient rxdata;
+
+  public:
+    //=== Initiialization ===================================
+
+    // fill out any constructor/destructor info you need
+    MapClient();
+    ~MapClient();
+
+    /// returns the target client number
+    int open(char const *h, int p = MAP_PORT);
+    void close();
+
+    //=== Sending ==========================================
+
+    bool sendSubscribe(short invoice);
+    bool sendUnsubscribe(short invoice);
+    bool sendKeepAlive(short invoice);
+    bool sendAck(short invoice, int seq);
+
+    //=== Receiving ======================================
+
+    /** returns a pointer to the next received message.
+        REturns NULL on failure. Sets the client to be 
+        the id of the sending client */
+    const MsgMapClient *getNextMessage();
+
+    int isConnected();
+    int getFD();
+
+  private:
+    //=== Local methods ==========================
+    // private method to actually send stuff out the socket
+    bool sendPacket(MsgHeader *msg);
+
+  };
+};
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_map_packet.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_map_packet.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_map_packet.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,139 @@
+/**
+   Boeing Map Packet. This file contains all of the packet structures
+   for sending using the Boeing server/clients
+ */
+#ifndef __BOEING_MAP_PACKET_H__
+#define __BOEING_MAP_PACKET_H__
+
+#include <string.h>
+
+#include "boeing_net.h"
+
+#ifdef __cplusplus
+namespace Boeing {
+#endif
+
+#ifdef WIN32
+#pragma pack(1)
+#endif
+#ifndef PACKED
+#ifdef WIN32
+#define PACKED
+#else
+#define PACKED __attribute__((packed))
+#endif
+#endif
+
+  //===================================================-
+  // Message ID's
+
+  // we combine all of them into one
+  enum MapMsgID { MAP_SUBSCRIBE=0,
+		              MAP_KEEPALIVE,
+                  MAP_UNSUBSCRIBE,
+                  MAP_ACK,
+                  MAP_FULL,
+		              MAP_DIFF
+  };
+               
+  enum MapMsgEncoding { MAP_RAW=0, // a raster of bytes
+                        MAP_RLE, // a run-length enoding
+                        MAP_JPEG // a jpeg
+  };
+
+  //=== Commands for Map ===========================
+  // these are the commands received by the server, 
+  // and sent by the client
+
+  struct MsgMapReq : public MsgHeader {
+    short invoice;
+    int seq;
+    static MsgMapReq factory(short invoice=0, int seq=0) {
+      MsgMapReq m;
+      m.MsgHeaderFill(MAP_SUBSCRIBE, sizeof(MsgMapReq));
+      m.invoice = invoice; m.seq = seq;
+      return m;
+    }
+  } PACKED;
+
+  // all the command messages. Note that action messages
+  // are variable length so this union is inappropriate
+  // to use as the receive buffer
+  union MsgMapServer {
+    MsgHeader hdr;
+    MsgMapReq msg_req;
+    char      buff[1];
+  } PACKED;
+
+  //===================================================
+  // Map to client messages
+  // 
+
+  // map messages: Note these are variable length!!!
+  struct MsgMap : public MsgHeader {
+    short invoice;
+    short encoding;
+    int seq;
+    int resolution; //cell size in centimenters
+    int x, y; //# of cells in x and y dimention
+    float x_origin, y_origin; //vector to the origin from map's ul corner (in meters)
+    int array_length; //size of compressed map array
+    int map[1];
+
+    static const int MAX_RUNLENGTH = 1<<23;
+
+    //puts a MsgMap into the buf
+    //interpretation of raw_map cell chars
+    //   0x00 -> unchanged
+    //   0x20 -> clear
+    //   0x40 -> unseen/unknown
+    //   0xff -> occupied
+    //raw map is interpreted to be left-handed and height-major
+    static void MsgMapFactory(MapMsgEncoding encodingType, 
+			      MsgMap *buf, const void* raw_map, int raw_map_size,
+			      short invoice, int seq, 
+			      int x_in, int y_in, float x_o, float y_o,
+			      int resolution_in = 10);
+
+    static void MsgMapFactory(MapMsgEncoding encodingType, 
+			      MsgMap *buf, const void* raw_map, int raw_map_size,
+			      short invoice, int seq, 
+			      int x_in, int y_in,
+			      int resolution_in = 10);
+
+    int getSize() const; //returns actual size of struct given the array_length (in bytes)
+    int getBuffSize() const; //returns the minimum size of the required decode buf (in bytes)
+
+    //decode
+    static void unencodeMap(MapMsgEncoding encoding, 
+      unsigned char *raw_map, const unsigned char* compressed_map, int compressed_map_size);
+    static void unencodeMap_RLE(unsigned char *raw_map, 
+			    unsigned const char* compressed_map, 
+			    int compressed_map_size);
+    static void unencodeMap_JPEG(unsigned char *raw_map,
+      unsigned const char *compressed_map, int compressed_map_size);
+    void decode(unsigned char *raw_map) const;
+
+    //encode
+    static int encodeMap(MapMsgEncoding encoding, unsigned char *buf, const unsigned char* rawmap, unsigned int j);
+    static int encodeMap_RLE(unsigned char *buf, const unsigned char* rawmap, unsigned int j);
+    static int encodeMap_JPEG(unsigned char *buf, const unsigned char* rawmap, unsigned int j);
+
+  } PACKED;
+
+  union MsgMapClient {
+    MsgHeader  hdr;
+    MsgMap     map;
+    unsigned char       buff[sizeof(MsgMap)+sizeof(int)*2000*2000];
+  } PACKED;
+
+#ifdef WIN32
+  // reset packing....
+#pragma pack()
+#endif
+
+#ifdef __cplusplus
+}; // namespace Boeing
+#endif
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_map_server.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_map_server.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_map_server.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,51 @@
+/**
+   Boeing Map Server ==
+*/
+
+#ifndef __BOEING_MAP_SERVER_H__
+#define __BOEING_MAP_SERVER_H__
+
+#include "boeing_map_packet.h"
+
+class UDPSocket;
+
+namespace Boeing {
+
+  class MapServer {
+  public:
+    //=== Initialization ==================================
+    MapServer();
+    ~MapServer();
+    
+    bool open(int p = MAP_PORT);
+    void close();
+
+    //=== Rx Methods ======================================
+
+    /// get the next message (if there is one). Returns NULL if there is none
+    const MsgMapServer* getNextMessage();
+    
+    //=== Send Methods ====================================
+   
+    // sending operations
+    bool sendFullMap(MsgMap *msg);
+    bool sendDiffMap(MsgMap *msg);
+
+    //=== Accessors ========================================
+    int getFD();
+    bool isConnected();
+
+  private:
+    // raw send methods...use wisely
+    bool doSend(MsgHeader *msg);
+
+  private:
+    // socket controls
+    UDPSocket *sock;
+    MsgMapServer rxdata;
+
+  };
+  
+}
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_net.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_net.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_net.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,91 @@
+/**
+   Boeing Net. This file contains all of the shared packet information
+   for sending using the Boeing server/clients
+ */
+#ifndef __BOEING_NET_H__
+#define __BOEING_NET_H__
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+namespace Boeing {
+#endif
+
+#ifdef WIN32
+#pragma pack(1)
+#endif
+#ifndef PACKED
+#ifdef WIN32
+#define PACKED
+#else
+#define PACKED __attribute__((packed))
+#endif
+#endif
+
+#ifndef SOCKET
+#ifndef WIN32
+#define SOCKET int
+#endif
+#endif
+
+  //==== PORTS =======================================
+  // socket port
+  static const int ROBOT_PORT  = 32788;
+  static const int TRADER_PORT = 5001;
+  static const int MAP_PORT    = 5002;
+
+  //===================================================-
+  // header packet used by all messages. Std TLV
+
+  // number of bytes defining a senders hostname
+  static const int SADDR_LENGTH=64;
+
+  //   len       - length in bytes of whole packet (including header)
+  //   type      - msg id
+  //   tstamp    - time of transmission in secs since Jan 1, 1970
+  //   sender    - senders hostname
+  struct MsgHeader {
+    uint16_t type;
+    uint16_t len;
+    double tstamp;
+
+    static MsgHeader factory(uint16_t _type, uint16_t _len, double _tstamp=0) {
+      MsgHeader m;
+      return m.MsgHeaderFill(_type, _len, _tstamp);
+    }
+
+    MsgHeader MsgHeaderFill(uint16_t _type, uint16_t _len, double _tstamp=0) {
+      type = _type;
+      len = _len;
+      tstamp = _tstamp;
+      return *this;
+    }
+  } PACKED;
+
+  // standard types
+  typedef uint16_t TaskID;
+  typedef uint16_t Priority;
+
+  // max string length
+  static const int MAX_STRING_LENGTH=1024;
+   
+
+  // standard status returns
+  static const int16_t ABORTED    = -2;
+  static const int16_t FAILED     = -1;
+  static const int16_t INPROGRESS = 0;
+  static const int16_t SUCCEEDED  = 1;
+
+  inline int hasFailed(int v) { return v<=FAILED; }
+
+#ifdef WIN32
+  // reset packing....
+#pragma pack()
+#endif
+#undef PACKED
+
+#ifdef __cplusplus
+}; // namespace Boeing
+#endif
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_robot_client.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_robot_client.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_robot_client.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,100 @@
+/**
+   Boeing robot client ==
+*/
+#ifndef __BOEING_ROBOT_CLIENT_H__
+#define __BOEING_ROBOT_CLIENT_H__
+
+#include <vector>
+#include <string>
+
+#include "boeing_robot_packet.h"
+#include "boeing_map_packet.h"
+
+using std::vector;
+using std::string;
+
+class UDPSocket;
+
+// client class to manage UDP connections to robots
+namespace Boeing {
+
+  class RobotClient {
+  private:
+    // put your sock data here
+    // put list of robot servers here too
+    UDPSocket* sock;
+    int port;
+    string host;
+
+    // our host name
+    string our_host;
+    bool set_host;
+
+    MsgRobot rxdata;
+  public:
+    //=== Initiialization ===================================
+
+    // fill out any constructor/destructor info you need
+    RobotClient(); 
+    RobotClient(const RobotClient& x);
+    ~RobotClient();
+
+    /// returns the target client number
+    int open(char const *h, int p = ROBOT_PORT);
+    int reopen();
+    void close();
+
+    //=== Sending ==========================================
+
+    bool sendAction(Priority p,TaskID tid,char const *action);
+
+    bool sendEval(Priority p,TaskID tid,char const *eval);
+
+    /// halt all robots
+    bool sendHalt(Priority p,TaskID tid,bool ignore_play_stop=false);
+
+    /// send goto command
+    bool sendGoToCmd(Priority p,TaskID tid, float x, float y, float a, 
+                     bool use_angle = false, bool rel = false);
+  
+    bool sendSetPos(Priority p, TaskID tid, float x, float y, float a);
+
+    /// passing return to absolute 0,0
+    bool sendHome(Priority p,TaskID tid);
+
+    /// passing pause command
+    bool sendPause(Priority p,TaskID tid);
+
+    /// passing resume command
+    bool sendResume(Priority p,TaskID tid);
+
+    /// passing follow command
+    bool sendFollow(Priority p,TaskID tid);
+
+    /// request the location of the robot
+    bool sendReqLocation();
+
+    /// request an image from the bot's camera
+    bool sendReqImage();
+
+    //=== Receiving ======================================
+
+    /** returns a pointer to the next received message.
+        REturns NULL on failure. Sets the client to be 
+        the id of the sending client */
+    MsgRobot const *getNextMessage();
+
+    int isConnected() const;
+    int getFD();
+
+    bool sendPacket(MsgHeader *msg);
+
+	//=== Exposed attributes =============================
+
+	int getPort() const {return port;}
+	string getHost() const {return host;}
+
+  };
+};
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_robot_packet.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_robot_packet.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_robot_packet.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,314 @@
+/**
+   Boeing Robot Packet. This file contains all of the packet structures
+   for sending using the Boeing server/clients
+ */
+#ifndef __BOEING_ROBOT_PACKET_H__
+#define __BOEING_ROBOT_PACKET_H__
+
+#include <string.h>
+
+#include "boeing_net.h"
+#include "boeing_map_packet.h"
+
+#ifdef __cplusplus
+namespace Boeing {
+#endif
+
+  /// required for compilation under Win32 and linux
+#ifdef WIN32
+#pragma pack(1)
+#endif
+#ifndef PACKED
+#ifdef WIN32
+#define PACKED
+#else
+#define PACKED __attribute__((packed))
+#endif
+#endif
+
+  //===================================================-
+  // Message ID's
+
+  /// These are IDs for messages being sent to the server (ie commands)
+  enum CmdMsgID { 
+    CMD_ACTION=0, 
+    CMD_HALT,CMD_GOTO,CMD_HOME,CMD_FOLLOW,
+    CMD_COVER,CMD_SETPOS,CMD_PAUSE,CMD_RESUME,
+    REQ_LOCATION,REQ_IMAGE,
+    CMD_EVAL 
+  };
+
+  /// these are the IDs for messages being sent from the robot
+  enum RobotMsgID { 
+    ROB_ACK=0x0100,ROB_DONE,ROB_LOCATION,
+    ROB_ACTION_ACK,ROB_ACTION_ECHO,
+    ROB_IMAGE,ROB_PLAY_HALT,
+    ROB_EVAL
+  };
+               
+  static const uint16_t CmdMsgIdMask = 0x00FF;
+  static const uint16_t RobMsgIdMask = 0xFF00;
+
+  //=== Commands for Robot ================================================-
+  /// Task Requests
+  struct MsgCmdTask : public MsgHeader {
+    Priority priority;
+    TaskID taskid;
+
+    static MsgCmdTask factory(Priority _priority, TaskID _taskid, 
+      uint16_t _type, uint16_t _len) {
+      MsgCmdTask m;
+      return m.MsgCmdTaskFill(_priority, _taskid, _type, _len);
+    }
+
+    MsgCmdTask MsgCmdTaskFill(Priority _priority, TaskID _taskid, uint16_t _type, 
+      uint16_t _len) {
+      MsgHeaderFill(_type, _len);
+      priority = _priority;
+      taskid = _taskid;
+      return *this;
+    }
+  } PACKED;
+
+  /** message packets
+      Halt message -> for stopping robots _now_
+  */
+  struct MsgCmdHalt : public MsgCmdTask {
+    int16_t ignore_play_stop;
+  } PACKED;
+
+  /** Go to an x,y location in absolute/relative coord frame
+      default is in global frame
+      (x,y)    - point in meters
+      angle    - orientation in radians
+      attr     - attributes, default - no angle, global frame
+  */
+  struct MsgCmdGoTo : public MsgCmdTask {
+    static const uint16_t UseAngle = 0x0100;
+    static const uint16_t Relative = 0x0001;
+
+    uint16_t attr;
+    float x, y;
+    float angle;
+
+    bool useAngle() const {    return ((attr & UseAngle) != 0); }
+    bool useRelative() const { return ((attr & Relative) != 0); }
+    bool useGlobal() const {   return (!useRelative()); }
+  } PACKED;
+
+  struct MsgCmdSetPos : public MsgCmdTask {
+    float x, y;
+    float angle;
+  } PACKED;
+
+
+  /// execute the follow command
+  struct MsgCmdFollow : public MsgCmdTask {
+    char ip[MAX_STRING_LENGTH];
+    char search[MAX_STRING_LENGTH];
+  } PACKED;
+
+  /// Request robot location in absolute absolute frame
+  struct MsgReqLocation : public MsgCmdTask {
+    static MsgReqLocation factory(Priority priority, TaskID taskid) {
+      MsgReqLocation m;
+      m.MsgHeaderFill(REQ_LOCATION, sizeof(MsgReqLocation));
+      m.priority = priority;
+      m.taskid = taskid;
+      return m;
+    }
+  } PACKED;
+
+  /// Note req image is actually defined in boeing_map_packet.h
+
+  typedef MsgCmdTask MsgCmdHome;
+  typedef MsgCmdTask MsgCmdPause;
+  typedef MsgCmdTask MsgCmdResume;
+
+  /// N-sided polygon
+  struct RP_Polygon {
+    static const int MAX_POLYGON=6;
+
+    int n; //number of vertices
+    float xpoint[MAX_POLYGON+1];
+    float ypoint[MAX_POLYGON+1];
+    int taskIDs[MAX_POLYGON+1];
+  } PACKED;
+
+  ///only axis-aligned rectangles -a type of polygon- are currently supported
+  struct MsgCmdCover : public MsgCmdTask{
+    RP_Polygon cover_shape;
+  } PACKED;
+
+  /** play manager messages. Note these are variable length!!!
+      action will be a null terminated string. It will be no longer
+      than max_action
+  */
+  struct MsgCmdAction : public MsgCmdTask {
+    char action[MAX_STRING_LENGTH];
+
+    static MsgCmdAction factory(const char* _action, 
+      Priority _priority, TaskID _taskid) {
+        MsgCmdAction m;
+        return m.MsgCmdActionFill(_action, _priority, _taskid);
+    }
+
+    MsgCmdAction MsgCmdActionFill(const char* _action, Priority _priority, 
+      TaskID _taskid) {
+        MsgCmdTaskFill(_priority, _taskid, CMD_ACTION, 0);
+        strncpy(action, _action, MAX_STRING_LENGTH-1);
+        len = getSize();
+        return *this;
+    }
+
+    int getSize() const { 
+      return (int) strnlen(action,MAX_STRING_LENGTH-1)+1+sizeof(MsgCmdTask);
+    }
+  } PACKED;
+
+  struct MsgCmdEval : public MsgCmdTask {
+    char eval[MAX_STRING_LENGTH];
+    
+    int getSize() const { 
+      return (int) strnlen(eval,MAX_STRING_LENGTH-1)+1+sizeof(MsgCmdTask);
+    }
+  } PACKED;
+  
+
+  /** all the command messages. Note that action messages
+      are variable length so this union is inappropriate
+      to use as the receive buffer
+  */
+  //eval messages also variable length
+
+  union MsgCmd {
+    MsgHeader      hdr;
+    MsgCmdTask     msg_cmdtask;
+    MsgCmdHalt     msg_halt;
+    MsgCmdGoTo     msg_goto;
+    MsgCmdSetPos   msg_setpos;
+    MsgCmdHome     msg_home;
+    MsgCmdPause    msg_pause;
+    MsgCmdResume   msg_resume;
+    MsgCmdFollow   msg_follow;
+    MsgCmdCover    msg_cover;
+    MsgCmdAction   msg_action;
+    MsgCmdEval     msg_eval;
+
+    MsgMapReq      msg_image;
+    MsgReqLocation req_location;
+
+    char           buff[1000];
+  } PACKED;
+   
+
+  //===================================================
+  /// Robot to Human messages
+
+  /// acknowledgement messages
+  /// responding task id
+  struct MsgRobAck : public MsgHeader {
+    TaskID taskid; 
+    static MsgRobAck factory(TaskID taskID) {
+      MsgRobAck m;
+      m.MsgHeaderFill(ROB_ACK, sizeof(MsgRobAck));
+      m.taskid = taskID;
+      return m;
+    };
+  } PACKED;
+
+  /** Message to indicate that the play the robot is participating in
+      should halt */
+  typedef MsgHeader MsgRobPlayHalt;
+
+  /// the echo message...
+  typedef MsgCmdAction MsgActionEcho;
+
+  /// acknowledgement message for play manager
+  struct MsgActionAck : public MsgHeader {
+    TaskID taskid;
+    int16_t status;
+    static MsgActionAck factory(TaskID taskID, int16_t status) {
+      MsgActionAck m;
+      m.MsgHeaderFill(ROB_ACTION_ACK, sizeof(MsgActionAck));
+      m.taskid = taskID; m.status = status;
+      return m;
+    };
+  } PACKED;
+
+  
+  /// evaluation message for play manager
+  //this should eventually be multiple data types, not just int16_t
+  struct MsgEvalResult : public MsgHeader {
+    TaskID taskid;
+    int16_t eresult;
+  } PACKED;
+ 
+
+  /** robot done status message
+      status   - task status [Succeeded,Failed]
+  */
+  struct MsgRobDone : public MsgHeader {  
+    
+    TaskID taskid; //task that has been completed
+    int16_t status;
+    static MsgRobDone factory(TaskID taskID, int16_t status) {
+      MsgRobDone m;
+      m.MsgHeaderFill(ROB_DONE, sizeof(MsgRobDone));
+      m.taskid = taskID; m.status = status;
+      return m;
+    };
+  } PACKED;
+
+  /** robot location status message
+      (x,y) - location in global frame in meters
+      angle - angle in global frame in radians
+      moving - flag to indicate robot is in motion
+  */
+  struct MsgRobLocation : public MsgHeader {
+    float x, y;
+    float angle;
+    int16_t moving;
+    static MsgRobLocation factory(float x, float y, float angle, int16_t moving) {
+      MsgRobLocation m;
+      m.x = x; m.y = y; m.angle = angle; m.moving = moving;
+      return m;
+    }
+	  bool operator!=(const MsgRobLocation& rhs) {
+		  return x != rhs.x || y != rhs.y || angle != rhs.angle;
+	  }
+	  bool operator==(const MsgRobLocation& rhs) {
+		  return !this->operator!=(rhs);
+	  }
+  } PACKED;
+
+  /// Handshaking...why is this so large???
+  struct MsgPing : public MsgHeader {
+    char handle[0xff];
+  } PACKED;
+
+  union MsgRobot {
+    MsgHeader      hdr;
+    MsgRobAck      ack;
+    MsgRobDone     done;
+    MsgRobLocation location;
+    MsgActionEcho  echo;
+    MsgActionAck   action_ack;
+    MsgEvalResult  eval_result;
+
+    MsgRobPlayHalt play_halt;
+    MsgMap         image;
+    char           buff[50000];
+  } PACKED;
+
+#ifdef WIN32
+  // reset packing....
+#pragma pack()
+#endif
+#undef PACKED
+
+#ifdef __cplusplus
+}; // namespace Boeing
+#endif
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_robot_server.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_robot_server.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_robot_server.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,92 @@
+/**
+   Boeing robot server ==
+*/
+
+#ifndef __BOEING_ROBOT_SERVER_H__
+#define __BOEING_ROBOT_SERVER_H__
+
+#include <stdint.h>
+
+#ifdef WIN32
+
+#else
+//#include "geometry.h"
+#endif
+#include "boeing_robot_packet.h"
+
+class UDPSocket;
+
+namespace Boeing {
+
+  class RobotServer {
+  private:
+    // socket controls
+    UDPSocket* socket_s;
+    int socket_port;
+    char host[SADDR_LENGTH];
+    
+    // raw send methods...use wisely
+    bool doSend(MsgHeader *msg);
+
+    double tlast_cmd,timeout;
+    MsgCmd rxdata;
+    Priority priority;
+  public:
+    //=== Initialization ==================================
+    RobotServer();
+    ~RobotServer();
+    
+    bool open(int port = ROBOT_PORT);
+    void close();
+
+    //=== Rx Methods ======================================
+
+    /// get the next message (if there is one). Returns NULL if there is none
+    MsgCmd const *getNextMessage();
+    
+    //=== Send Methods ====================================
+   
+    /// send a task acknowledgement
+    bool sendTaskAck(int taskid);
+
+    /// send an action acknowledgement and the current status
+    bool sendActionAck(int taskid,int status);
+
+    // send robot result of evaluation (robot world model information)
+    bool sendEvalResult(int taskid,int eval_result);
+
+    /** inform the playmanager that we need to halt the play
+        (Generally called internally in the server code */
+    bool sendPlayHalt();
+
+    /// send a task done
+    bool sendDone(int taskid,bool ok);
+    bool sendAborted(int taskid);
+
+    /// send the updated robot pose
+    bool sendLocation(float x, float y, float a, bool moving);
+
+    /** Send a compressed image to the server 
+        the image is a pointer to a jpeg image file
+        the image size is the size of the image file in bytes
+    */
+    bool sendJPEGImage(const void *image, int image_size,
+      int width, int height, int invoice);
+
+    //=== Accessors ========================================
+
+    /// get the file descriptor for the socket
+    int getFD();
+
+    /// return true if connected
+    bool isConnected();
+
+    /// set various timeouts
+    void setTimeout(double t) { timeout=t; }
+    double getTimeout() const { return timeout; }
+    double getLastCmdTime() const { return tlast_cmd; }
+  };
+  
+}
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_trader_client.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_trader_client.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_trader_client.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,60 @@
+/**
+   Boeing Trader client ==
+*/
+
+#ifndef __BOEING_TRADER_CLIENT_H__
+#define __BOEING_TRADER_CLIENT_H__
+
+#include <vector>
+#include <string>
+using std::vector;
+using std::string;
+
+#include "boeing_trader_packet.h"
+
+class UDPSocket;
+
+// client class to manage UDP connections to robots
+namespace Boeing {
+
+  class TraderClient {
+  private:
+    UDPSocket* sock;
+    MsgTraderClient rxdata;
+
+  public:
+    //=== Initiialization ===================================
+
+    // fill out any constructor/destructor info you need
+    TraderClient();
+    ~TraderClient();
+
+    /// returns the target client number
+    int open(char const *h, int p = ROBOT_PORT);
+    void close();
+
+    //=== Sending ==========================================
+
+    bool sendTask(TaskID tid,char const *task);
+
+    bool sendCancel(TaskID tid);
+    
+    //=== Receiving ======================================
+
+    /** returns a pointer to the next received message.
+        REturns NULL on failure. Sets the client to be 
+        the id of the sending client */
+    MsgTraderClient const *getNextMessage();
+
+    int isConnected();
+    int getFD();
+
+  private:
+    //=== Local methods ==========================
+    // private method to actually send stuff out the socket
+    bool sendPacket(MsgHeader *msg);
+
+  };
+};
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_trader_packet.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_trader_packet.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_trader_packet.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,100 @@
+/**
+   Boeing Trader Packet. This file contains all of the packet structures
+   for sending using the Boeing server/clients
+ */
+#ifndef __BOEING_TRADER_PACKET_H__
+#define __BOEING_TRADER_PACKET_H__
+
+#include <string.h>
+
+#include "boeing_net.h"
+
+#ifdef __cplusplus
+namespace Boeing {
+#endif
+
+#ifndef PACKED
+#ifdef WIN32
+#pragma pack(1)
+#define PACKED
+#else
+#define PACKED __attribute__((packed))
+#endif
+#endif
+
+
+  //===================================================-
+  // Message ID's
+
+  // we combine all of them into one
+  enum TraderMsgID { TRADER_TASK=0,
+                     TASK_ACK=0x100,
+		     TASK_CANCEL,
+		     TASK_DONE,
+		     INFO};
+               
+  //=== Commands for Trader ===========================
+  // these are the commands received by the server, 
+  // and sent by the client
+
+  // trader messages: Note these are variable length!!!
+  // action will be a null terminated string. It will be no longer
+  // than max_string
+  struct MsgTask : public MsgHeader {
+    TaskID taskid;
+    char task[MAX_STRING_LENGTH];
+
+    int getSize() const { 
+      return (int) strnlen(task,MAX_STRING_LENGTH-1)+1+sizeof(MsgTask)-MAX_STRING_LENGTH;
+    }
+  } PACKED;
+
+  struct MsgTraderCancel : public MsgHeader {
+    TaskID taskid;
+  } PACKED;
+
+  // task string syntax: ({IP}: )?object [0-9a-ZA-Z]+ at "("{FLOAT} {FLOAT}")"
+  typedef MsgTask MsgInform;
+
+  // all the command messages. Note that action messages
+  // are variable length so this union is inappropriate
+  // to use as the receive buffer
+  union MsgTraderServer {
+    MsgHeader hdr;
+    MsgTask   msg_task;
+    MsgTraderCancel cancel;
+    char      buff[1];
+  } PACKED;
+
+  //===================================================
+  // Trader to client messages
+
+  // responding task id
+  struct MsgTraderAck : public MsgHeader {
+    TaskID taskid; 
+  } PACKED;
+
+  // responding task id
+  struct MsgTraderDone : public MsgHeader {
+    TaskID taskid;
+    int16_t status;
+  } PACKED;
+
+  union MsgTraderClient {
+    MsgHeader     hdr;
+    MsgTraderAck  ack;
+    MsgTraderDone done;
+    MsgInform     info;
+    char          buff[1];
+  } PACKED;
+
+#ifdef WIN32
+  // reset packing....
+#pragma pack()
+#endif
+
+#ifdef __cplusplus
+}; // namespace Boeing
+#endif
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_trader_server.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_trader_server.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/boeing/boeing_trader_server.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,53 @@
+/**
+   Boeing Trader Server ==
+*/
+
+#ifndef __BOEING_TRADER_SERVER_H__
+#define __BOEING_TRADER_SERVER_H__
+
+#include <stdint.h>
+
+#include "boeing_trader_packet.h"
+
+class UDPSocket;
+
+namespace Boeing {
+
+  class TraderServer {
+  private:
+    // socket controls
+    UDPSocket* sock;
+    MsgTraderServer rxdata;
+  public:
+    //=== Initialization ==================================
+    TraderServer();
+    ~TraderServer();
+    
+    bool open(int p = TRADER_PORT);
+    void close();
+
+    //=== Rx Methods ======================================
+
+    /// get the next message (if there is one). Returns NULL if there is none
+    MsgTraderServer const *getNextMessage();
+    
+    //=== Send Methods ====================================
+   
+    // sending operations
+    bool sendTaskAck(int taskid);
+    bool sendDone(int taskid,int status);
+    bool sendInfo(TaskID tid, char const *info);
+
+    //=== Accessors ========================================
+    int getFD();
+    bool isConnected();
+
+  private:
+    // raw send methods...use wisely
+    bool doSend(MsgHeader *msg);
+
+  };
+  
+}
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/coralshared/ansicolor.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/coralshared/ansicolor.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/coralshared/ansicolor.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,41 @@
+#ifndef __ANSI_COLOR_H__
+#define __ANSI_COLOR_H__
+
+#include <stdio.h>
+
+namespace AnsiColor{
+  enum Color{
+    Black   = 0,
+    Red     = 1,
+    Green   = 2,
+    Yellow  = 3,
+    Blue    = 4,
+    Magenta = 5,
+    Cyan    = 6,
+    White   = 7,
+    Default = 9,
+  };
+
+  static inline void emit(FILE *out,int code) {fprintf(out,"%c[%dm",27,code);}
+
+  static inline void Reset(FILE *out) {emit(out,0);}
+
+  static inline void Bold(FILE *out)      {emit(out,1);}
+  static inline void Italics(FILE *out)   {emit(out,3);}
+  static inline void Underline(FILE *out) {emit(out,4);}
+  static inline void Inverse(FILE *out)   {emit(out,7);}
+  static inline void Strike(FILE *out)    {emit(out,9);}
+
+  static inline void BoldOff(FILE *out)      {emit(out,22);}
+  static inline void ItalicsOff(FILE *out)   {emit(out,23);}
+  static inline void UnderlineOff(FILE *out) {emit(out,24);}
+  static inline void InverseOff(FILE *out)   {emit(out,27);}
+  static inline void StrikeOff(FILE *out)    {emit(out,29);}
+
+  static inline void SetFgColor(FILE *out,Color fg) {emit(out,30+fg);}
+  static inline void SetBgColor(FILE *out,Color bg) {emit(out,40+bg);}
+  static inline void SetColor(FILE *out,Color fg,Color bg)
+    {emit(out,30+fg); emit(out,30+bg);}
+};
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/coralshared/battery.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/coralshared/battery.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/coralshared/battery.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,71 @@
+// reads the apm to fidn out battery stats
+
+#ifndef __BATTERY_H__
+#define __BATTERY_H__
+
+
+class Battery {
+public:
+  double charge; // [0, 1]
+  double time_left; // in seconds
+private:
+  bool has_apm;
+  static const double warning_level = 15.0 * 60.0;
+
+public:
+  Battery() { 
+    charge = 1.0;
+    time_left = HUGE_VAL;
+    has_apm = true;
+
+    struct stat s;
+    if (stat("/proc/apm", &s) != 0)
+      has_apm = false;
+  }
+
+  bool reachedWarningLevel() {
+    if (has_apm) 
+      return (time_left < warning_level);
+    else
+      return (false);
+  }
+
+  double minutesToDischarge() {
+    if (has_apm)
+      return (time_left / 60.0);
+    else
+      return (10000.0);
+  }
+
+  // returns true if APM works okay
+  bool readStats() {
+    if (has_apm) {
+      FILE *f;
+      if ((f = fopen("/proc/apm", "r")) == NULL) {
+        has_apm = false;
+        return (false);
+      }
+      
+      float ignore1, ignore2;
+      int ignore3, ignore4, ignore5, ignore6;
+      int val, t;
+      fscanf(f, "%f %f %i %i %i %i %i%% %i", 
+             &ignore1, &ignore2, &ignore3, &ignore4,
+             &ignore5, &ignore6, &val, &t);
+      fclose(f);
+      
+      charge = (double) val / 100.0;
+      time_left = (double) t * 60.0;
+    } 
+      
+    return (true);
+  }
+
+  void print(FILE *f = stdout) {
+   fprintf(f, "charge = %f\%, time left = %ih:%im\n",
+           charge * 100.0, (int) time_left / 60.0 / 60.0,
+           (int) fmod(time_left / 60.0, 60.0));
+  }
+};
+
+#endif

Added: vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/coralshared/colors.h
===================================================================
--- vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/coralshared/colors.h	                        (rev 0)
+++ vendor/liveMaps/current/external/boeingLib.gcc-4.1/include/coralshared/colors.h	2007-09-22 05:34:12 UTC (rev 765)
@@ -0,0 +1,397 @@
+/*========================================================================
+    colors.h : Color definitions for CMVision2 and the Simple Image class
+  ------------------------------------------------------------------------
+    Copyright (C) 1999-2002  James R. Bruce
+    School of Computer Science, Carnegie Mellon University
+  ------------------------------------------------------------------------
+    This software is distributed under the GNU General Public License,
+    version 2.  If you do not have a copy of this licence, visit
+    www.gnu.org, or write: Free Software Foundation, 59 Temple Place,
+    Suite 330 Boston, MA 02111-1307 USA.  This program is distributed
+    in the hope that it will be useful, but WITHOUT ANY WARRANTY,
+    including MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  ========================================================================*/
+
+/** Modified by Brett Browning */
+
+#ifndef __COLORS_H__
+#define __COLORS_H__
+
+#include "util.h"
+
+// this is not always defined for some reason
+typedef unsigned char uchar;
+
+namespace Colors {
+
+
+  //==== Color Classes =================================================//
+
+  //== Non-Planar representations ===/
+
+  // Details on these can be found 
+  // from http://www.fourcc.org/
+
+  struct rgb {
+    uchar r,g,b;
+  };
+
+  struct bgr {
+    uchar b,g,r;
+  };
+
+  struct rgba {
+    uchar r,g,b,a;
+  };
+
+  struct bgra {
+    uchar b,g,r,a;
+  };
+
+  struct yuv {
+    uchar y,u,v;
+  };
+
+  struct uyv {
+    uchar u,y,v;
+  };
+
+  struct yuvi{
+    int y,u,v;
+  };
+  
+  struct yuyv{
+    uchar y1,u,y2,v;
+  };
+
+  struct uyvy {
+    uchar u,y1,v,y2;
+  };
+
+  static const int uyvy_offset[4]={1,3};
+
+  // a macro pixel consisting of 4*Y, 1*U,1*v
+  // the u,v are probably at position 3...but it is not clear
+  struct uyyvyy {
+    uchar u,y1,y2,v,y3,y4;
+  };
+
+  typedef uyyvyy yuv411;
+  typedef uyyvyy uy2vy2;
+
+  static const int uyyvyy_offset[4]={1,2,4,5};
+
+
+  // Pixel sizes 
+  inline int nrPixels(rgb c) { return 1; }
+  inline int nrPixels(bgr c) { return 1; }
+  inline int nrPixels(rgba c) { return 1; }
+  inline int nrPixels(bgra c) { return 1; }
+  inline int nrPixels(yuv c) { return 1; }
+  inline int nrPixels(uyv c) { return 1; }
+  inline int nrPixels(yuvi c) { return 1; }
+  inline int nrPixels(yuyv c) { return 2; }
+  inline int nrPixels(uyvy c) { return 2; }
+
+  // a macro pixel consisting of 4*Y, 1*U,1*v
+  // the u,v are probably at position 3...but it is not clear
+  inline int nrPixels(uyyvyy  c) { return 4; }
+
+  //=== Predefined color values ========================================//
+
+  // RGB:
+
+  // standardized colors
+  const rgb Black  = {  0,   0,   0};
+  const rgb Brown  = {128,  64,   0};
+  const rgb Red    = {255,   0,   0};
+  const rgb Orange = {255, 128,   0};
+  const rgb Yellow = {255, 255,   0};
+  const rgb Green  = {  0, 255,   0};
+  const rgb Blue   = {  0,   0, 255};
+  const rgb Purple = {255,   0, 255};
+  const rgb Cyan   = {0  , 255, 255};
+  const rgb Gray   = {128, 128, 128};
+  const rgb Pink   = {255,   0, 128};
+  const rgb White  = {255, 255, 255};
+
+  const uchar dark = 160;
+  const rgb DarkBlue   = {   0,   0,dark};
+  const rgb DarkGreen  = {   0,dark,   0};
+  const rgb DarkRed    = {dark,   0,   0};
+  const rgb DarkYellow = {dark,dark,   0};
+  const rgb DarkCyan   = {   0,dark,dark};
+  const rgb DarkPurple = {dark,   0,dark};
+  const rgb DarkGray   = {  32,  32,  48};
+  const rgb DarkPink   = {dark,   0,  dark/2};
+
+
+  // standardized colors
+  const uchar uvo = 128;
+  const yuv yuvBlack  = {  0, uvo, uvo};
+  const yuv yuvGray   = {128, uvo, uvo};
+  const yuv yuvWhite  = {255, uvo, uvo};
+
+  const yuv yuvBlue   = { 29, 107, 256};
+  const yuv yuvGreen  = {150,  21,  44};
+  const yuv yuvRed    = { 76, 255,  85};
+
+  const yuv yuvYellow = {226, 149,   0};
+  const yuv yuvCyan   = {179,   0, 171};
+  const yuv yuvPurple = {105, 235, 212};
+  const yuv yuvPink   = { 91, 245, 149};
+
+
+  //=== Initializers ================================//
+
+  inline rgb mkrgb(uchar r,uchar g,uchar b) {
+    return (rgb) {r,g,b};
+  }
+
+  inline bgr mkbgr(uchar r,uchar g,uchar b) {
+    return (bgr) {b,g,r};
+  }
+
+  // Logical operations. Note on floating point == and != don't
+  // make sense
+#define RGB_LOGIC_OP(opr,comb,type)                              \
+  inline bool operator opr (const type a, const type b) {        \
+    return ((a.r opr b.r) comb (a.g opr b.g)                     \
+            comb (a.b opr b.b));                                 \
+  }
+
+  RGB_LOGIC_OP(==,&&,rgb);
+  RGB_LOGIC_OP(!=,||,rgb);
+  RGB_LOGIC_OP(> ,&&,rgb);
+  RGB_LOGIC_OP(>=,&&,rgb);
+  RGB_LOGIC_OP(< ,&&,rgb);
+  RGB_LOGIC_OP(<=,&&,rgb);
+
+  RGB_LOGIC_OP(==,&&,bgr);
+  RGB_LOGIC_OP(!=,||,bgr);
+  RGB_LOGIC_OP(> ,&&,bgr);
+  RGB_LOGIC_OP(>=,&&,bgr);
+  RGB_LOGIC_OP(< ,&&,bgr);
+  RGB_LOGIC_OP(<=,&&,bgr);
+
+
+  // Arithmetic operations. Note on RGB +- can wrap
+#define RGB_ARITHM_OP(opr,type)                                  \
+  inline type operator opr (const type a, const type b) {        \
+    type r;                                                      \
+    r.r = a.r opr b.r;                                           \
+    r.g = a.g opr b.g;                                           \
+    r.b = a.b opr b.b;                                           \
+    return (r);                                                  \
+  }
+
+  // note these may wrap
+  //  rgb operators
+  RGB_ARITHM_OP(+,rgb);
+  RGB_ARITHM_OP(-,rgb);
+  RGB_ARITHM_OP(&,rgb);
+  RGB_ARITHM_OP(|,rgb);
+  RGB_ARITHM_OP(^,rgb);
+
+  RGB_ARITHM_OP(+,bgr);
+  RGB_ARITHM_OP(-,bgr);
+  RGB_ARITHM_OP(&,bgr);
+  RGB_ARITHM_OP(|,bgr);
+  RGB_ARITHM_OP(^,bgr);
+
+  // scalar arithmetic
+#define RGB_SCALAR_OP(opr,type,stype)                        \
+  inline type operator opr (const type a, const stype s) {   \
+    type r;                                                  \
+    r.r = a.r opr s;                                         \
+    r.g = a.g opr s;                                         \
+    r.b = a.b opr s;                                         \
+    return r;                                                \
+  }
+
+  // note these may (and probably will) wrap
+  RGB_SCALAR_OP(*,rgb,int);
+  RGB_SCALAR_OP(/,rgb,int);
+
+  RGB_SCALAR_OP(*,bgr,int);
+  RGB_SCALAR_OP(/,bgr,int);
+
+  // Color Arithmetic
+  inline rgb blend(const rgb a,const rgb b,const float t) {
+    rgb r;
+    r.r = (int)((a.r * (1.0 - t)) + (b.r * t));
+    r.g = (int)((a.g * (1.0 - t)) + (b.g * t));
+    r.b = (int)((a.b * (1.0 - t)) + (b.b * t));
+    return(r);
+  }
+
+  inline int sum(const rgb a) {
+    return (((int)a.r+(int)a.g+(int)a.b));
+  }
+  inline int getGray(const rgb a) {

@@ Diff output truncated at 60000 characters. @@


More information about the TeamTalk-developers mailing list