Update of /cvsroot/playerstage/code/stage/libstage
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12997

Modified Files:
        Makefile Makefile.manual blockgrid.cc canvas.cc stage.hh 
        world.cc worldgui.cc 
Log Message:
temporarily removed sparse matrix code. non-sparse version works OK in Linux. 
Will fix sparse code ASAP.

Index: worldgui.cc
===================================================================
RCS file: /cvsroot/playerstage/code/stage/libstage/worldgui.cc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** worldgui.cc 15 Jan 2008 01:16:49 -0000      1.2
--- worldgui.cc 19 Jan 2008 01:19:40 -0000      1.3
***************
*** 94,97 ****
--- 94,98 ----
  #include "stage_internal.hh"
  #include <FL/Fl_Image.H>
+ #include <FL/Fl_Shared_Image.H>
  #include <FL/Fl_PNG_Image.H>
                                             //#include <FL/Fl_Text_Display.H>
***************
*** 143,150 ****
  void About_cb(Fl_Widget*, void* v) 
  {
    Fl_Window     win(400,200);                 // make a window
    Fl_Box        box(10,20,400-20,80 );     // widget that will contain image
!   Fl_PNG_Image png("logo.png");      // load jpeg image into ram
!   box.image(png);                             // attach jpg image to box
    
    Fl_Multiline_Output text(  20,120, 400-20, 100 );
--- 144,154 ----
  void About_cb(Fl_Widget*, void* v) 
  {
+   fl_register_images();
    Fl_Window     win(400,200);                 // make a window
    Fl_Box        box(10,20,400-20,80 );     // widget that will contain image
! 
!   // TODO - get image from the install path 
!   Fl_PNG_Image png("logo.png");      // load image into ram
!   box.image(png);                    // attach image to box
    
    Fl_Multiline_Output text(  20,120, 400-20, 100 );
***************
*** 152,166 ****
    char buf[256];
    snprintf( buf, 255, 
!           "Version %s\n" 
            "Part of the Player Project\n"
            "http://playerstage.sourceforge.net\n";
            "Copyright 2000-2008 Richard Vaughan and contributors",
!           VERSION );
    text.value( buf );
- 
- //   Fl_Multiline_Output text2(  10,180,400-20, 60 );
- //   text2.box( FL_NO_BOX );
- 
-   printf( "image size %d %d\n", png.w(), png.h() );
    win.show();
    Fl::run();
--- 156,165 ----
    char buf[256];
    snprintf( buf, 255, 
!           "%s\n" 
            "Part of the Player Project\n"
            "http://playerstage.sourceforge.net\n";
            "Copyright 2000-2008 Richard Vaughan and contributors",
!           PACKAGE_STRING );
    text.value( buf );
    win.show();
    Fl::run();

Index: canvas.cc
===================================================================
RCS file: /cvsroot/playerstage/code/stage/libstage/canvas.cc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** canvas.cc   15 Jan 2008 01:16:49 -0000      1.2
--- canvas.cc   19 Jan 2008 01:19:40 -0000      1.3
***************
*** 15,19 ****
  {
    end();
!   show(); // must do this so that the GL context is created before 
configuring GL
  
    this->world = world;
--- 15,20 ----
  {
    end();
!   //show(); // must do this so that the GL context is created before 
configuring GL
!   // but that line causes a segfault in Linux/X11! TODO: test in OS X
  
    this->world = world;

Index: Makefile
===================================================================
RCS file: /cvsroot/playerstage/code/stage/libstage/Makefile,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Makefile    15 Jan 2008 01:16:49 -0000      1.2
--- Makefile    19 Jan 2008 01:19:40 -0000      1.3
***************
*** 1,7 ****
! # Makefile.in generated by automake 1.10 from Makefile.am.
  # libstage/Makefile.  Generated from Makefile.in by configure.
  
  # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
! # 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
  # This Makefile.in is free software; the Free Software Foundation
  # gives unlimited permission to copy and/or distribute it,
--- 1,7 ----
! # Makefile.in generated by automake 1.9.6 from Makefile.am.
  # libstage/Makefile.  Generated from Makefile.in by configure.
  
  # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
! # 2003, 2004, 2005  Free Software Foundation, Inc.
  # This Makefile.in is free software; the Free Software Foundation
  # gives unlimited permission to copy and/or distribute it,
***************
*** 23,31 ****
--- 23,35 ----
  
  
+ srcdir = .
+ top_srcdir = ..
  
  pkgdatadir = $(datadir)/stage
  pkglibdir = $(libdir)/stage
  pkgincludedir = $(includedir)/stage
+ top_builddir = ..
  am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+ INSTALL = /usr/bin/install -c
  install_sh_DATA = $(install_sh) -c -m 644
  install_sh_PROGRAM = $(install_sh) -c
***************
*** 39,45 ****
  PRE_UNINSTALL = :
  POST_UNINSTALL = :
! build_triplet = i386-apple-darwin9.1.0
! host_triplet = i386-apple-darwin9.1.0
! target_triplet = i386-apple-darwin9.1.0
  bin_PROGRAMS = stest$(EXEEXT)
  subdir = libstage
--- 43,49 ----
  PRE_UNINSTALL = :
  POST_UNINSTALL = :
! build_triplet = i686-pc-linux-gnu
! host_triplet = i686-pc-linux-gnu
! target_triplet = i686-pc-linux-gnu
  bin_PROGRAMS = stest$(EXEEXT)
  subdir = libstage
***************
*** 71,102 ****
        world.lo worldfile.lo worldgui.lo
  libstage_la_OBJECTS = $(am_libstage_la_OBJECTS)
- libstage_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-       $(CXXFLAGS) $(libstage_la_LDFLAGS) $(LDFLAGS) -o $@
  binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
  PROGRAMS = $(bin_PROGRAMS)
  am_stest_OBJECTS = stest.$(OBJEXT)
  stest_OBJECTS = $(am_stest_OBJECTS)
! DEFAULT_INCLUDES = -I. -I$(top_builddir)
  depcomp = $(SHELL) $(top_srcdir)/depcomp
  am__depfiles_maybe = depfiles
  CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
        $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
! LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
!       --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
!       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
  CXXLD = $(CXX)
! CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
!       --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
!       $(LDFLAGS) -o $@
  COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
! LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
!       --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
!       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
  CCLD = $(CC)
! LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
!       --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
!       $(LDFLAGS) -o $@
  SOURCES = $(libstage_la_SOURCES) $(stest_SOURCES)
  DIST_SOURCES = $(libstage_la_SOURCES) $(stest_SOURCES)
--- 75,101 ----
        world.lo worldfile.lo worldgui.lo
  libstage_la_OBJECTS = $(am_libstage_la_OBJECTS)
  binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
  PROGRAMS = $(bin_PROGRAMS)
  am_stest_OBJECTS = stest.$(OBJEXT)
  stest_OBJECTS = $(am_stest_OBJECTS)
! DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
  depcomp = $(SHELL) $(top_srcdir)/depcomp
  am__depfiles_maybe = depfiles
  CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
        $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
! LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
!       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
!       $(AM_CXXFLAGS) $(CXXFLAGS)
  CXXLD = $(CXX)
! CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
!       $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
  COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
!       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
!       $(AM_CFLAGS) $(CFLAGS)
  CCLD = $(CC)
! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
!       $(AM_LDFLAGS) $(LDFLAGS) -o $@
  SOURCES = $(libstage_la_SOURCES) $(stest_SOURCES)
  DIST_SOURCES = $(libstage_la_SOURCES) $(stest_SOURCES)
***************
*** 108,117 ****
  CTAGS = ctags
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
! ACLOCAL = ${SHELL} /Users/vaughan/PS/HEAD/stage/missing --run aclocal-1.10
! AMTAR = ${SHELL} /Users/vaughan/PS/HEAD/stage/missing --run tar
  AR = ar
! AUTOCONF = ${SHELL} /Users/vaughan/PS/HEAD/stage/missing --run autoconf
! AUTOHEADER = ${SHELL} /Users/vaughan/PS/HEAD/stage/missing --run autoheader
! AUTOMAKE = ${SHELL} /Users/vaughan/PS/HEAD/stage/missing --run automake-1.10
  AWK = gawk
  CC = gcc
--- 107,118 ----
  CTAGS = ctags
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
! ACLOCAL = ${SHELL} /home/vaughan/PS/HEAD/stage/missing --run aclocal-1.9
! AMDEP_FALSE = #
! AMDEP_TRUE = 
! AMTAR = ${SHELL} /home/vaughan/PS/HEAD/stage/missing --run tar
  AR = ar
! AUTOCONF = ${SHELL} /home/vaughan/PS/HEAD/stage/missing --run autoconf
! AUTOHEADER = ${SHELL} /home/vaughan/PS/HEAD/stage/missing --run autoheader
! AUTOMAKE = ${SHELL} /home/vaughan/PS/HEAD/stage/missing --run automake-1.9
  AWK = gawk
  CC = gcc
***************
*** 127,147 ****
  DEFS = -DHAVE_CONFIG_H
  DEPDIR = .deps
! ECHO = /bin/echo
! ECHO_C = \c
! ECHO_N = 
  ECHO_T = 
! EGREP = /usr/bin/grep -E
  EXEEXT = 
! F77 = 
! FFLAGS = 
! FLTK_CFLAGS = -I/opt/local/include -I/opt/local/include/FL/images
! FLTK_LIBS = -L/opt/local/lib -lfltk_images -lfltk_png -lz -lfltk_jpeg 
-lfltk_gl -framework AGL -framework OpenGL -lfltk -framework Carbon -framework 
ApplicationServices
! GREP = /usr/bin/grep
  HAVE_FLTK_CONFIG = fltk-config
! INSTALL = /opt/local/bin/ginstall -c
  INSTALL_DATA = ${INSTALL} -m 644
  INSTALL_PROGRAM = ${INSTALL}
  INSTALL_SCRIPT = ${INSTALL}
! INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
  LDFLAGS = 
  LIBOBJS = 
--- 128,151 ----
  DEFS = -DHAVE_CONFIG_H
  DEPDIR = .deps
! ECHO = echo
! ECHO_C = 
! ECHO_N = -n
  ECHO_T = 
! EGREP = /bin/grep -E
  EXEEXT = 
! F77 = gfortran
! FFLAGS = -g -O2
! FLTK_CFLAGS = -I/usr/local/include
! FLTK_LIBS = -L/usr/local/lib -lfltk_images -lpng -lz -ljpeg -lfltk_gl -lGLU 
-lGL -lfltk -lm -lXext -lX11
! GREP = /bin/grep
  HAVE_FLTK_CONFIG = fltk-config
! HAVE_PLAYERC_FALSE = #
! HAVE_PLAYERC_TRUE = 
! HAVE_PLAYER_FALSE = #
! HAVE_PLAYER_TRUE = 
  INSTALL_DATA = ${INSTALL} -m 644
  INSTALL_PROGRAM = ${INSTALL}
  INSTALL_SCRIPT = ${INSTALL}
! INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
  LDFLAGS = 
  LIBOBJS = 
***************
*** 151,156 ****
  LN_S = ln -s
  LTLIBOBJS = 
! MAKEINFO = ${SHELL} /Users/vaughan/PS/HEAD/stage/missing --run makeinfo
! MKDIR_P = /opt/local/bin/gmkdir -p
  OBJEXT = o
  PACKAGE = stage
--- 155,159 ----
  LN_S = ln -s
  LTLIBOBJS = 
! MAKEINFO = ${SHELL} /home/vaughan/PS/HEAD/stage/missing --run makeinfo
  OBJEXT = o
  PACKAGE = stage
***************
*** 161,183 ****
  PACKAGE_VERSION = 3.0.0
  PATH_SEPARATOR = :
! PIXBUF_CFLAGS = -I/opt/local/include/gtk-2.0 -I/opt/local/include/glib-2.0 
-I/opt/local/lib/glib-2.0/include -I/opt/local/include  
! PIXBUF_LIBS = -L/opt/local/lib -lgdk_pixbuf-2.0 -lgobject-2.0 -lgmodule-2.0 
-lglib-2.0 -lintl -liconv  
! PKG_CONFIG = /opt/local/bin/pkg-config
! PLAYERC_CFLAGS = -I/Users/vaughan/PS-2.0/include/player-2.1  
! PLAYERC_LIBS = -L/Users/vaughan/PS-2.0/lib -lplayerc -lm -lplayerxdr 
-lplayererror  
! PLAYER_CFLAGS = -I/Users/vaughan/PS-2.0/include/player-2.1  
! PLAYER_LIBS = -L/Users/vaughan/PS-2.0/lib -lplayercore -lltdl -lpthread 
-lplayererror  
  RANLIB = ranlib
  SET_MAKE = 
  SHELL = /bin/sh
  STRIP = strip
  VERSION = 3.0.0
- abs_builddir = /Users/vaughan/PS/HEAD/stage/libstage
- abs_srcdir = /Users/vaughan/PS/HEAD/stage/libstage
- abs_top_builddir = /Users/vaughan/PS/HEAD/stage
- abs_top_srcdir = /Users/vaughan/PS/HEAD/stage
  ac_ct_CC = gcc
  ac_ct_CXX = g++
! ac_ct_F77 = 
  am__include = include
  am__leading_dot = .
--- 164,187 ----
  PACKAGE_VERSION = 3.0.0
  PATH_SEPARATOR = :
! PIXBUF_CFLAGS = -I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 
-I/usr/lib/glib-2.0/include  
! PIXBUF_LIBS = -lgdk_pixbuf-2.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0  
! PKG_CONFIG = /usr/bin/pkg-config
! PLAYERC_CFLAGS = -I/home/vaughan/PS-2.0/include/player-2.1  
! PLAYERC_LIBS = -L/home/vaughan/PS-2.0/lib -lplayerc -lm -lplayerxdr 
-lplayererror  
! PLAYER_CFLAGS = -I/home/vaughan/PS-2.0/include/player-2.1  
! PLAYER_LIBS = -L/home/vaughan/PS-2.0/lib -lplayercore -lltdl -lpthread 
-lplayererror  
  RANLIB = ranlib
+ SED = /usr/bin/sed
  SET_MAKE = 
  SHELL = /bin/sh
  STRIP = strip
  VERSION = 3.0.0
  ac_ct_CC = gcc
  ac_ct_CXX = g++
! ac_ct_F77 = gfortran
! am__fastdepCC_FALSE = #
! am__fastdepCC_TRUE = 
! am__fastdepCXX_FALSE = #
! am__fastdepCXX_TRUE = 
  am__include = include
  am__leading_dot = .
***************
*** 186,195 ****
  am__untar = tar -xf -
  bindir = ${exec_prefix}/bin
! build = i386-apple-darwin9.1.0
  build_alias = 
! build_cpu = i386
! build_os = darwin9.1.0
! build_vendor = apple
! builddir = .
  datadir = ${datarootdir}
  datarootdir = ${prefix}/share
--- 190,198 ----
  am__untar = tar -xf -
  bindir = ${exec_prefix}/bin
! build = i686-pc-linux-gnu
  build_alias = 
! build_cpu = i686
! build_os = linux-gnu
! build_vendor = pc
  datadir = ${datarootdir}
  datarootdir = ${prefix}/share
***************
*** 198,210 ****
  exec_prefix = ${prefix}
  have_pkg_config = yes
! host = i386-apple-darwin9.1.0
  host_alias = 
! host_cpu = i386
! host_os = darwin9.1.0
! host_vendor = apple
  htmldir = ${docdir}
  includedir = ${prefix}/include
  infodir = ${datarootdir}/info
! install_sh = $(SHELL) /Users/vaughan/PS/HEAD/stage/install-sh
  libdir = ${exec_prefix}/lib
  libexecdir = ${exec_prefix}/libexec
--- 201,213 ----
  exec_prefix = ${prefix}
  have_pkg_config = yes
! host = i686-pc-linux-gnu
  host_alias = 
! host_cpu = i686
! host_os = linux-gnu
! host_vendor = pc
  htmldir = ${docdir}
  includedir = ${prefix}/include
  infodir = ${datarootdir}/info
! install_sh = /home/vaughan/PS/HEAD/stage/install-sh
  libdir = ${exec_prefix}/lib
  libexecdir = ${exec_prefix}/libexec
***************
*** 212,232 ****
  localstatedir = ${prefix}/var
  mandir = ${datarootdir}/man
! mkdir_p = /opt/local/bin/gmkdir -p
  oldincludedir = /usr/include
  pdfdir = ${docdir}
! prefix = /Users/vaughan/PS-2.0
  program_transform_name = s,x,x,
  psdir = ${docdir}
  sbindir = ${exec_prefix}/sbin
  sharedstatedir = ${prefix}/com
- srcdir = .
  sysconfdir = ${prefix}/etc
! target = i386-apple-darwin9.1.0
  target_alias = 
! target_cpu = i386
! target_os = darwin9.1.0
! target_vendor = apple
! top_builddir = ..
! top_srcdir = ..
  
  # install the header file for the Stage library
--- 215,232 ----
  localstatedir = ${prefix}/var
  mandir = ${datarootdir}/man
! mkdir_p = mkdir -p --
  oldincludedir = /usr/include
  pdfdir = ${docdir}
! prefix = /home/vaughan/PS-2.0
  program_transform_name = s,x,x,
  psdir = ${docdir}
  sbindir = ${exec_prefix}/sbin
  sharedstatedir = ${prefix}/com
  sysconfdir = ${prefix}/etc
! target = i686-pc-linux-gnu
  target_alias = 
! target_cpu = i686
! target_os = linux-gnu
! target_vendor = pc
  
  # install the header file for the Stage library
***************
*** 238,242 ****
  
  # system-wide compile flags - target-specific flags are added to each target 
below
! AM_CPPFLAGS = -Wall -I. -I$(top_srcdir)/replace  -I/opt/local/include/gtk-2.0 
-I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include 
-I/opt/local/include   -I/opt/local/include -I/opt/local/include/FL/images 
-DRGBFILE=\"$(RGB)\"
  
  # build the stage library
--- 238,242 ----
  
  # system-wide compile flags - target-specific flags are added to each target 
below
! AM_CPPFLAGS = -Wall -I. -I$(top_srcdir)/replace  -I/usr/include/gtk-2.0 
-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I/usr/local/include 
-DRGBFILE=\"$(RGB)\"
  
  # build the stage library
***************
*** 273,277 ****
  #logo.cc 
  libstage_la_LDFLAGS = -version-info 3:1:0 -rpath $(libdir) 
! libstage_la_LIBADD = -L/opt/local/lib -lgdk_pixbuf-2.0 -lgobject-2.0 
-lgmodule-2.0 -lglib-2.0 -lintl -liconv   -L/opt/local/lib -lfltk_images 
-lfltk_png -lz -lfltk_jpeg -lfltk_gl -framework AGL -framework OpenGL -lfltk 
-framework Carbon -framework ApplicationServices
  stest_DEPENDENCIES = libstage.la
  stest_SOURCES = stest.cc
--- 273,277 ----
  #logo.cc 
  libstage_la_LDFLAGS = -version-info 3:1:0 -rpath $(libdir) 
! libstage_la_LIBADD = -lgdk_pixbuf-2.0 -lgobject-2.0 -lgmodule-2.0 -ldl 
-lglib-2.0   -L/usr/local/lib -lfltk_images -lpng -lz -ljpeg -lfltk_gl -lGLU 
-lGL -lfltk -lm -lXext -lX11
  stest_DEPENDENCIES = libstage.la
  stest_SOURCES = stest.cc
***************
*** 312,316 ****
  install-libLTLIBRARIES: $(lib_LTLIBRARIES)
        @$(NORMAL_INSTALL)
!       test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
        @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
          if test -f $$p; then \
--- 312,316 ----
  install-libLTLIBRARIES: $(lib_LTLIBRARIES)
        @$(NORMAL_INSTALL)
!       test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
        @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
          if test -f $$p; then \
***************
*** 323,327 ****
  uninstall-libLTLIBRARIES:
        @$(NORMAL_UNINSTALL)
!       @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
          p=$(am__strip_dir) \
          echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
--- 323,327 ----
  uninstall-libLTLIBRARIES:
        @$(NORMAL_UNINSTALL)
!       @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \
          p=$(am__strip_dir) \
          echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
***************
*** 338,345 ****
        done
  libstage.la: $(libstage_la_OBJECTS) $(libstage_la_DEPENDENCIES) 
!       $(libstage_la_LINK) -rpath $(libdir) $(libstage_la_OBJECTS) 
$(libstage_la_LIBADD) $(LIBS)
  install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
!       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
        @list='$(bin_PROGRAMS)'; for p in $$list; do \
          p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
--- 338,345 ----
        done
  libstage.la: $(libstage_la_OBJECTS) $(libstage_la_DEPENDENCIES) 
!       $(CXXLINK) -rpath $(libdir) $(libstage_la_LDFLAGS) 
$(libstage_la_OBJECTS) $(libstage_la_LIBADD) $(LIBS)
  install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
!       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
        @list='$(bin_PROGRAMS)'; for p in $$list; do \
          p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
***************
*** 369,373 ****
  stest$(EXEEXT): $(stest_OBJECTS) $(stest_DEPENDENCIES) 
        @rm -f stest$(EXEEXT)
!       $(CXXLINK) $(stest_OBJECTS) $(stest_LDADD) $(LIBS)
  
  mostlyclean-compile:
--- 369,373 ----
  stest$(EXEEXT): $(stest_OBJECTS) $(stest_DEPENDENCIES) 
        @rm -f stest$(EXEEXT)
!       $(CXXLINK) $(stest_LDFLAGS) $(stest_OBJECTS) $(stest_LDADD) $(LIBS)
  
  mostlyclean-compile:
***************
*** 399,404 ****
  
  .cc.o:
!       $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
!       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
  #     source='$<' object='$@' libtool=no \
  #     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
--- 399,404 ----
  
  .cc.o:
!       if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
!       then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f 
"$(DEPDIR)/$*.Tpo"; exit 1; fi
  #     source='$<' object='$@' libtool=no \
  #     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
***************
*** 406,411 ****
  
  .cc.obj:
!       $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ 
`$(CYGPATH_W) '$<'`
!       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
  #     source='$<' object='$@' libtool=no \
  #     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
--- 406,411 ----
  
  .cc.obj:
!       if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ 
`$(CYGPATH_W) '$<'`; \
!       then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f 
"$(DEPDIR)/$*.Tpo"; exit 1; fi
  #     source='$<' object='$@' libtool=no \
  #     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
***************
*** 413,418 ****
  
  .cc.lo:
!       $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
!       mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
  #     source='$<' object='$@' libtool=yes \
  #     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
--- 413,418 ----
  
  .cc.lo:
!       if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
!       then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f 
"$(DEPDIR)/$*.Tpo"; exit 1; fi
  #     source='$<' object='$@' libtool=yes \
  #     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) \
***************
*** 424,430 ****
  clean-libtool:
        -rm -rf .libs _libs
  install-pkgdataDATA: $(pkgdata_DATA)
        @$(NORMAL_INSTALL)
!       test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
        @list='$(pkgdata_DATA)'; for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
--- 424,434 ----
  clean-libtool:
        -rm -rf .libs _libs
+ 
+ distclean-libtool:
+       -rm -f libtool
+ uninstall-info-am:
  install-pkgdataDATA: $(pkgdata_DATA)
        @$(NORMAL_INSTALL)
!       test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)"
        @list='$(pkgdata_DATA)'; for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
***************
*** 443,447 ****
  install-includeHEADERS: $(include_HEADERS)
        @$(NORMAL_INSTALL)
!       test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
        @list='$(include_HEADERS)'; for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
--- 447,451 ----
  install-includeHEADERS: $(include_HEADERS)
        @$(NORMAL_INSTALL)
!       test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
        @list='$(include_HEADERS)'; for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
***************
*** 508,526 ****
  
  distdir: $(DISTFILES)
!       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
!       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
!       list='$(DISTFILES)'; \
!         dist_files=`for file in $$list; do echo $$file; done | \
!         sed -e "s|^$$srcdirstrip/||;t" \
!             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
!       case $$dist_files in \
!         */*) $(MKDIR_P) `echo "$$dist_files" | \
!                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
!                          sort -u` ;; \
!       esac; \
!       for file in $$dist_files; do \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
          if test -d $$d/$$file; then \
-           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
              cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
--- 512,531 ----
  
  distdir: $(DISTFILES)
!       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
!       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
!       list='$(DISTFILES)'; for file in $$list; do \
!         case $$file in \
!           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
!           $(top_srcdir)/*) file=`echo "$$file" | sed 
"s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
!         esac; \
          if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkdir_p) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
          if test -d $$d/$$file; then \
            if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
              cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
***************
*** 540,544 ****
  installdirs:
        for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" 
"$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(includedir)"; do \
!         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
  install: install-am
--- 545,549 ----
  installdirs:
        for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" 
"$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(includedir)"; do \
!         test -z "$$dir" || $(mkdir_p) "$$dir"; \
        done
  install: install-am
***************
*** 575,579 ****
        -rm -f Makefile
  distclean-am: clean-am distclean-compile distclean-generic \
!       distclean-tags
  
  dvi: dvi-am
--- 580,584 ----
        -rm -f Makefile
  distclean-am: clean-am distclean-compile distclean-generic \
!       distclean-libtool distclean-tags
  
  dvi: dvi-am
***************
*** 589,606 ****
  install-data-am: install-includeHEADERS install-pkgdataDATA
  
- install-dvi: install-dvi-am
- 
  install-exec-am: install-binPROGRAMS install-libLTLIBRARIES
  
- install-html: install-html-am
- 
  install-info: install-info-am
  
  install-man:
  
- install-pdf: install-pdf-am
- 
- install-ps: install-ps-am
- 
  installcheck-am:
  
--- 594,603 ----
***************
*** 624,630 ****
  
  uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \
!       uninstall-libLTLIBRARIES uninstall-pkgdataDATA
! 
! .MAKE: install-am install-strip
  
  .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
--- 621,626 ----
  
  uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \
!       uninstall-info-am uninstall-libLTLIBRARIES \
!       uninstall-pkgdataDATA
  
  .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
***************
*** 633,646 ****
        distclean-libtool distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
!       install-data install-data-am install-dvi install-dvi-am \
!       install-exec install-exec-am install-html install-html-am \
        install-includeHEADERS install-info install-info-am \
!       install-libLTLIBRARIES install-man install-pdf install-pdf-am \
!       install-pkgdataDATA install-ps install-ps-am install-strip \
!       installcheck installcheck-am installdirs maintainer-clean \
!       maintainer-clean-generic mostlyclean mostlyclean-compile \
!       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
!       tags uninstall uninstall-am uninstall-binPROGRAMS \
!       uninstall-includeHEADERS uninstall-libLTLIBRARIES \
        uninstall-pkgdataDATA
  
--- 629,641 ----
        distclean-libtool distclean-tags distdir dvi dvi-am html \
        html-am info info-am install install-am install-binPROGRAMS \
!       install-data install-data-am install-exec install-exec-am \
        install-includeHEADERS install-info install-info-am \
!       install-libLTLIBRARIES install-man install-pkgdataDATA \
!       install-strip installcheck installcheck-am installdirs \
!       maintainer-clean maintainer-clean-generic mostlyclean \
!       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
!       pdf pdf-am ps ps-am tags uninstall uninstall-am \
!       uninstall-binPROGRAMS uninstall-includeHEADERS \
!       uninstall-info-am uninstall-libLTLIBRARIES \
        uninstall-pkgdataDATA
  

Index: world.cc
===================================================================
RCS file: /cvsroot/playerstage/code/stage/libstage/world.cc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** world.cc    15 Jan 2008 01:16:49 -0000      1.2
--- world.cc    19 Jan 2008 01:19:40 -0000      1.3
***************
*** 105,109 ****
    
    assert(token);
!   this->token = (char*)malloc(Stg::TOKEN_MAX);
    snprintf( this->token, Stg::TOKEN_MAX, "%s", token );//this->id );
  
--- 105,109 ----
    
    assert(token);
!   this->token = (char*)g_malloc(Stg::TOKEN_MAX);
    snprintf( this->token, Stg::TOKEN_MAX, "%s", token );//this->id );
  
***************
*** 117,122 ****
    this->models_by_name = g_hash_table_new( g_str_hash, g_str_equal );
    this->sim_time = 0;
!   this->interval_sim = 1e3 * interval_sim;
!   this->interval_real = 1e3 * interval_real;
  
    this->real_time_start = RealTimeNow();
--- 117,122 ----
    this->models_by_name = g_hash_table_new( g_str_hash, g_str_equal );
    this->sim_time = 0;
!   this->interval_sim = (stg_usec_t)thousand * interval_sim;
!   this->interval_real = (stg_usec_t)thousand * interval_real;
  
    this->real_time_start = RealTimeNow();
***************
*** 146,156 ****
    PRINT_DEBUG2( "destroying world %d %s", id, token );
    
!   delete wf;
!   delete bgrid;
  
    g_hash_table_destroy( models_by_id );
    g_hash_table_destroy( models_by_name );
    
!   // TODO : finish clean up
  }
  
--- 146,157 ----
    PRINT_DEBUG2( "destroying world %d %s", id, token );
    
!   if( wf ) delete wf;
!   if( bgrid ) delete bgrid;
  
    g_hash_table_destroy( models_by_id );
    g_hash_table_destroy( models_by_name );
    
!   delete bgrid;
!   g_free( token );
  }
  
***************
*** 164,171 ****
  void StgWorld::ClockString( char* str, size_t maxlen )
  {
!   uint32_t hours   = sim_time / 3600000000; 
!   uint32_t minutes = (sim_time % 3600000000) / 60000000; 
!   uint32_t seconds = (sim_time % 60000000) / 1000000; 
!   uint32_t msec    = (sim_time % 1000000) / 1000; 
    
    // find the average length of the last few realtime intervals;
--- 165,177 ----
  void StgWorld::ClockString( char* str, size_t maxlen )
  {
!   const uint32_t usec_per_hour = 360000000;
!   const uint32_t usec_per_minute = 60000000;
!   const uint32_t usec_per_second = 1000000;
!   const uint32_t usec_per_msec = 1000;
! 
!   uint32_t hours   = sim_time / usec_per_hour; 
!   uint32_t minutes = (sim_time % usec_per_hour) / usec_per_minute; 
!   uint32_t seconds = (sim_time % usec_per_minute) / usec_per_second; 
!   uint32_t msec    = (sim_time % usec_per_second) / usec_per_msec; 
    
    // find the average length of the last few realtime intervals;
***************
*** 223,234 ****
      wf->ReadString( entity, "name", token );
    
!   this->interval_real = 1e3 *  
!     wf->ReadInt( entity, "interval_real", this->interval_real/1e3 );
  
!   this->interval_sim = 1e3 * 
!     wf->ReadInt( entity, "interval_sim", this->interval_sim/1e3 );
    
    if( wf->PropertyExists( entity, "quit_time" ) )
!     this->quit_time = 1e6 * 
        wf->ReadInt( entity, "quit_time", 0 );
    
--- 229,240 ----
      wf->ReadString( entity, "name", token );
    
!   this->interval_real = (stg_usec_t)thousand *  
!     wf->ReadInt( entity, "interval_real", this->interval_real/thousand );
  
!   this->interval_sim = (stg_usec_t)thousand * 
!     wf->ReadInt( entity, "interval_sim", this->interval_sim/thousand );
    
    if( wf->PropertyExists( entity, "quit_time" ) )
!     this->quit_time = (stg_usec_t)million * 
        wf->ReadInt( entity, "quit_time", 0 );
    
***************
*** 433,453 ****
  }
  
- // raytrace wrapper that returns the model hit, rather than the block
- // stg_meters_t StgWorld::Raytrace( StgModel* finder,
- //                             stg_pose_t* pose,
- //                             stg_meters_t max_range,
- //                             stg_block_match_func_t func,
- //                             const void* arg,
- //                             StgModel** hit_model )
- // {
- //   StgBlock* block = NULL;
- //   stg_meters_t m = RayTrace( finder, pose, max_range, func, arg, &block );
-   
- //   if( block && hit_model )
- //     *hit_model = block->Model();
-   
- //   return range;
- // }
- 
  
  void StgWorld::Raytrace( stg_pose_t pose, // global pose
--- 439,442 ----
***************
*** 516,521 ****
    uint32_t bby = 0;
    
-   const uint32_t NBITS = bgrid->numbits;
- 
    bool lookup_list = true;
    
--- 505,508 ----
***************
*** 525,542 ****
        // bigblock.
        
!       bbx = x>>NBITS;
!       bby = y>>NBITS;
        
!       // if we just changed grid square
!       if( ! ((bbx == bbx_last) && (bby == bby_last)) )
!       {
!         // if this square has some contents, we need to look it up
!         lookup_list = !(bgrid->BigBlockOccupancy(bbx,bby) < 1 );
! 
!         bbx_last = bbx;
!         bby_last = bby;
!       }
        
!       if( lookup_list )
        {         
          for( GSList* list = bgrid->GetList(x,y);
--- 512,528 ----
        // bigblock.
        
! //       bbx = x>>bgrid->numbits;
! //       bby = y>>bgrid->numbits;
        
! //       //   // if we just changed grid square
! //       if( ! ((bbx == bbx_last) && (bby == bby_last)) )
! //    {
! //      // if this square has some contents, we need to look it up
! //      lookup_list = !(bgrid->BigBlockOccupancy(bbx,bby) < 1 );
! //      bbx_last = bbx;
! //      bby_last = bby;
! //    }
        
! //       if( lookup_list )
        {         
          for( GSList* list = bgrid->GetList(x,y);
***************
*** 554,559 ****
                {
                  // a hit!
-                 //if( hit_model )
-                 //*hit_model = block->Model();              
                  sample->block = block;
                  sample->range = hypot( (x-xstart)/ppm, (y-ystart)/ppm );
--- 540,543 ----
***************
*** 563,566 ****
--- 547,551 ----
        }
          
+       // increment our pixel in the correct direction
        if ( exy < 0 ) {
        if ( exz < 0 ) {

Index: blockgrid.cc
===================================================================
RCS file: /cvsroot/playerstage/code/stage/libstage/blockgrid.cc,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** blockgrid.cc        15 Jan 2008 01:16:49 -0000      1.2
--- blockgrid.cc        19 Jan 2008 01:19:40 -0000      1.3
***************
*** 1,78 ****
  #include "stage_internal.hh"
  
! // todo - get rid of constants in code, so that these are just
! // defaults
! const uint32_t NBITS = 5;
! const uint32_t NSIZE = 1<<NBITS;
! const uint32_t NSQR = NSIZE*NSIZE;
! const uint32_t MASK = NSIZE-1;
  
  StgBlockGrid::StgBlockGrid( uint32_t width, uint32_t height )
  {
-   this->numbits = NBITS;
    this->width = width;
    this->height = height;
!   
!   this->bwidth = width >> NBITS;
!   this->bheight = height >> NBITS;
!   
!   //printf( "Creating StgBlockGrid of [%u,%u](%u,%u) elements\n", 
!   //  width, height, bwidth, bheight );
!   
!   trashstack = NULL;
!   
!   size_t bbs = bwidth * bheight;
!   this->map = new stg_bigblock_t[ bbs ];
!   bzero( map, sizeof(stg_bigblock_t)*bbs );
  }    
  
  StgBlockGrid::~StgBlockGrid()
  {
!   for( uint32_t x=0; x<bwidth; x++ )
!     for( uint32_t y=0; y<bheight; y++ )
        {
!       stg_bigblock_t* bb = &map[ x + y*bwidth ];
!       
!       if( bb && bb->lists )
!         delete[] bb->lists;
        }       
    
!   delete[] map;
  }
  
  void StgBlockGrid::AddBlock( uint32_t x, uint32_t y, StgBlock* block )
  {
    if( x < width && y < height )
      {  
!       uint32_t a = x>>NBITS;
!       uint32_t b = y>>NBITS;
! 
!       stg_bigblock_t* bb = &map[ a + b*bwidth ];
!       assert(bb); // it really should be there
! 
!       if( bb->lists == NULL  )
!       {         
!         assert( bb->counter == 0 );
!         
!         if( g_trash_stack_peek( &trashstack ) )
!           {
!             bb->lists = (GSList**)g_trash_stack_pop( &trashstack );
!             //printf( "recycled %p\n", bb->lists );
!           }
!         else                                  
!           {
!             bb->lists = new GSList*[ NSQR ]; 
!             //printf( "alloced %p\n", bb->lists );
!           }
! 
!         bzero( bb->lists, NSQR * sizeof(GSList*));
!       }
!       
!       bb->counter++;
! 
!       // use only the NBITS least significant bits of the address
!       uint32_t index = (x&MASK) + (y&MASK)*NSIZE;     
!       bb->lists[index] = g_slist_prepend( bb->lists[index], block );
! 
        block->RecordRenderPoint( x, y );
      }
--- 1,40 ----
  #include "stage_internal.hh"
  
! // todo - make these configurable
! 
! static const uint32_t NBITS = 5;
! static const uint32_t NSIZE = 1<<NBITS;
! static const uint32_t NSQR = NSIZE*NSIZE;
! static const uint32_t MASK = NSIZE-1;
  
  StgBlockGrid::StgBlockGrid( uint32_t width, uint32_t height )
  {
    this->width = width;
    this->height = height;
!   this->cells = (GSList**)calloc( sizeof(GList*), width * height );
! 
!   assert(this->cells);
  }    
  
  StgBlockGrid::~StgBlockGrid()
  {
!   for( uint32_t x=0; x<width; x++ )
!     for( uint32_t y=0; y<height; y++ )
        {
!       if( cells[x + y*width] )
!         g_slist_free( cells[x+y*width] );
        }       
    
!   delete[] cells;
!   //delete[] map;
  }
  
  void StgBlockGrid::AddBlock( uint32_t x, uint32_t y, StgBlock* block )
  {
+   //printf( "add block %u %u\n", x, y );
+ 
    if( x < width && y < height )
      {  
!       cells[ x+y*width ] = g_slist_prepend( cells[ x+y*width ], block ); 
        block->RecordRenderPoint( x, y );
      }
***************
*** 85,136 ****
    if( x < width && y < height )
      {
!       uint32_t a = x>>NBITS;
!       uint32_t b = y>>NBITS;
!       
!       stg_bigblock_t* bb = &map[ a + b*bwidth ];      
!       assert( bb ); // it really should be there
! 
!       // remove list entry
!       uint32_t index = (x&MASK) + (y&MASK)*NSIZE;     
!       assert( bb->lists[index] );
!       bb->lists[index] = g_slist_remove( bb->lists[index], block );
! 
!       assert( bb->counter > 0 ); 
!       bb->counter--;
!       
!       if( bb->counter == 0 ) // this was the last entry in this block;
!       {
!         g_trash_stack_push( &trashstack, bb->lists );
!         //printf( "pushed %p\n", bb->lists );
!         bb->lists = NULL;
!       }
      }
  }
  
- uint32_t StgBlockGrid::BigBlockOccupancy( uint32_t bbx, uint32_t bby )
- {
-   //glRecti( bbx<<NBITS, bby<<NBITS,(bbx+1)<<NBITS,(bby+1)<<NBITS );  
-   return map[ bbx + bby*bwidth].counter;
- }
- 
  GSList* StgBlockGrid::GetList( uint32_t x, uint32_t y )
  {
    if( x < width && y < height )
!     {  
!       uint32_t a = x>>NBITS;
!       uint32_t b = y>>NBITS;
!       
!       stg_bigblock_t* bb = &map[ a + b*bwidth ];      
! 
!       if( bb->lists )
!       {      
!         //glRecti( x,y,x+1,y+1 );
! 
!         assert( bb->counter > 0 );
!         uint32_t index = (x&MASK) + (y&MASK)*NSIZE;     
!         return bb->lists[index];
!       }
!     }
!   return NULL;
  }
  
--- 47,60 ----
    if( x < width && y < height )
      {
!       cells[ x+y*width ] = g_slist_remove( cells[ x+y*width ], block ); 
      }
  }
  
  GSList* StgBlockGrid::GetList( uint32_t x, uint32_t y )
  {
    if( x < width && y < height )
!     return cells[ x+y*width ];
!   else
!     return NULL;
  }
  
***************
*** 144,167 ****
  void StgBlockGrid::Draw( bool drawall )
  {
!   for( uint32_t x=0; x<bwidth; x++ )
!     for( uint32_t y=0; y<bheight; y++ )
        {
!       stg_bigblock_t* bb = &map[ x + y*bwidth ];
                
!       if( drawall || bb->lists )
!         {
!           glRecti( x<<NBITS,y<<NBITS,(x+1)<<NBITS,(y+1)<<NBITS );
            
!           if( bb->lists )
!             for( uint32_t a=0; a<NSQR; a++ )
!               {                 
!                 if( drawall || bb->lists[ a ] )                 
!                   glRecti( (x<<NBITS)+a%NSIZE,
!                            (y<<NBITS)+a/NSIZE,
!                            (x<<NBITS)+a%NSIZE+1,
!                            (y<<NBITS)+a/NSIZE+1 );            
                  
!               }
!         }     
        }
  } 
--- 68,95 ----
  void StgBlockGrid::Draw( bool drawall )
  {
!   for( uint32_t x=0; x<width; x++ )
!     for( uint32_t y=0; y<height; y++ )
        {
!       //stg_bigblock_t* bb = &map[ x + y*bwidth ];
                
!       //if( drawall || bb->lists )
! //      {
! //        glRecti( x<<numbits,y<<numbits,(x+1)<<numbits,(y+1)<<numbits );
            
! //        if( bb->lists )
! //          for( uint32_t a=0; a<NSQR; a++ )
! //            {                 
! //              if( drawall || bb->lists[ a ] )                 
! //                glRecti( (x<<numbits)+a%NSIZE,
! //                         (y<<numbits)+a/NSIZE,
! //                         (x<<numbits)+a%NSIZE+1,
! //                         (y<<numbits)+a/NSIZE+1 );          
                  
! //            }
! //      }     
! 
!       if( cells[x+y*width] )
!         glRecti( x,y, x+1, y+ 1 );
!         
        }
  } 

Index: Makefile.manual
===================================================================
RCS file: /cvsroot/playerstage/code/stage/libstage/Makefile.manual,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Makefile.manual     15 Jan 2008 01:16:49 -0000      1.2
--- Makefile.manual     19 Jan 2008 01:19:40 -0000      1.3
***************
*** 32,36 ****
  
  CXXFLAGS+= -g -Wall -I.. -I../replace `fltk-config --use-gl --use-images 
--cflags` `pkg-config --cflags glib-2.0 gdk-pixbuf-2.0`
! LIBS= `fltk-config --use-gl --use-images --ldflags`  `pkg-config --libs 
gdk-pixbuf-2.0` -framework OpenGL
  
  OBJ=$(SRC:.cc=.o)
--- 32,36 ----
  
  CXXFLAGS+= -g -Wall -I.. -I../replace `fltk-config --use-gl --use-images 
--cflags` `pkg-config --cflags glib-2.0 gdk-pixbuf-2.0`
! LIBS= `fltk-config --use-gl --use-images --ldflags`  `pkg-config --libs 
gdk-pixbuf-2.0` 
  
  OBJ=$(SRC:.cc=.o)
***************
*** 42,48 ****
  
  stage: $(OBJ)
!       g++ $(LIBS) $(OBJ) -o $@
  
  clean : 
        rm -f *.o *.lo stage
  
--- 42,50 ----
  
  stage: $(OBJ)
!       g++ $(OBJ) -o $@ $(LIBS) 
  
  clean : 
        rm -f *.o *.lo stage
  
+ demo: gldemo.cc
+       g++ gldemo.cc -o $@ $(LIBS)             
\ No newline at end of file

Index: stage.hh
===================================================================
RCS file: /cvsroot/playerstage/code/stage/libstage/stage.hh,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** stage.hh    15 Jan 2008 01:16:49 -0000      1.2
--- stage.hh    19 Jan 2008 01:19:40 -0000      1.3
***************
*** 68,76 ****
  #include <FL/Fl_Value_Slider.H>
  #include <FL/Fl_Window.H>
- #include <FL/fl_Box.H>
  #include <FL/fl_draw.H>
  #include <FL/gl.h> // FLTK takes care of platform-specific GL stuff
! #include <FL/glut.H>
! #include <FL/glu.H>
  
  /** The Stage library uses its own namespace */
--- 68,80 ----
  #include <FL/Fl_Value_Slider.H>
  #include <FL/Fl_Window.H>
  #include <FL/fl_draw.H>
  #include <FL/gl.h> // FLTK takes care of platform-specific GL stuff
! #include <FL/glut.h>
! //#include <FL/glu.h>
! //#ifdef __APPLE __
! //#include <OpenGL/glu.h>
! //#else
! #include <GL/glu.h>
! //#endif 
  
  /** The Stage library uses its own namespace */
***************
*** 828,838 ****
    {
    private:
!     stg_bigblock_t* map;
!   
!     GTrashStack* trashstack;  
!     uint32_t width, height, bwidth, bheight;
  
    public:
!     uint32_t numbits;
      StgBlockGrid( uint32_t width, uint32_t height );
      ~StgBlockGrid();
--- 832,843 ----
    {
    private:
!     //stg_bigblock_t* map;
!     GSList** cells;
! 
!     //GTrashStack* trashstack;  
!     uint32_t width, height;// bwidth, bheight;
  
    public:
!     //uint32_t numbits;
      StgBlockGrid( uint32_t width, uint32_t height );
      ~StgBlockGrid();
***************
*** 845,849 ****
      /** Returns the number of blocks occupying the big block, specified
        in big block coordinates, NOT in small blocks.*/
!     uint32_t BigBlockOccupancy( uint32_t bbx, uint32_t bby );
    };
    
--- 850,854 ----
      /** Returns the number of blocks occupying the big block, specified
        in big block coordinates, NOT in small blocks.*/
!     //uint32_t BigBlockOccupancy( uint32_t bbx, uint32_t bby );
    };
    
***************
*** 1005,1009 ****
      stg_meters_t Width(){ return width; };
      stg_meters_t Height(){ return height; };
!     uint32_t Resolution(){ return ppm; };
    
      StgModel* GetModel( const stg_id_t id );
--- 1010,1014 ----
      stg_meters_t Width(){ return width; };
      stg_meters_t Height(){ return height; };
!     double Resolution(){ return ppm; };
    
      StgModel* GetModel( const stg_id_t id );


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to