Index: orxonox/trunk/src/lib/Makefile.am
===================================================================
--- orxonox/trunk/src/lib/Makefile.am	(revision 4519)
+++ orxonox/trunk/src/lib/Makefile.am	(revision 4527)
@@ -7,4 +7,5 @@
 	  physics \
 	  particles \
+	  collision_detection \
 	  tinyxml \
 	  $(GTK_PROGS)
Index: orxonox/trunk/src/lib/Makefile.in
===================================================================
--- orxonox/trunk/src/lib/Makefile.in	(revision 4519)
+++ orxonox/trunk/src/lib/Makefile.in	(revision 4527)
@@ -172,4 +172,5 @@
 	  physics \
 	  particles \
+	  collision_detection \
 	  tinyxml \
 	  $(GTK_PROGS)
Index: orxonox/trunk/src/lib/collision_detection/Makefile.am
===================================================================
--- orxonox/trunk/src/lib/collision_detection/Makefile.am	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/Makefile.am	(revision 4527)
@@ -0,0 +1,23 @@
+MAINSRCDIR=../..
+include $(MAINSRCDIR)/defs/include_paths.am
+
+noinst_LIBRARIES = libORXcd.a 
+
+libORXcd_a_SOURCES = cd_engine.cc \
+                     collision.cc \
+		     obb.cc \
+                     obb_tree.cc \
+                     bv_tree.cc \
+		     bounding_volume.cc \
+		     bounding_sphere.cc
+
+
+
+noinst_HEADERS =     cd_engine.h \
+                     collision.h \
+		     obb.h \
+                     obb_tree.h \
+                     bv_tree.h \
+		     bounding_volume.h \
+		     bounding_sphere.h
+
Index: orxonox/trunk/src/lib/collision_detection/Makefile.in
===================================================================
--- orxonox/trunk/src/lib/collision_detection/Makefile.in	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/Makefile.in	(revision 4527)
@@ -0,0 +1,443 @@
+# Makefile.in generated by automake 1.8.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+SOURCES = $(libORXcd_a_SOURCES)
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+host_triplet = @host@
+subdir = src/lib/collision_detection
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LIBRARIES = $(noinst_LIBRARIES)
+AR = ar
+ARFLAGS = cru
+libORXcd_a_AR = $(AR) $(ARFLAGS)
+libORXcd_a_LIBADD =
+am_libORXcd_a_OBJECTS = cd_engine.$(OBJEXT) collision.$(OBJEXT) \
+	obb.$(OBJEXT) obb_tree.$(OBJEXT) bv_tree.$(OBJEXT) \
+	bounding_volume.$(OBJEXT) bounding_sphere.$(OBJEXT)
+libORXcd_a_OBJECTS = $(am_libORXcd_a_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/bounding_sphere.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/bounding_volume.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/bv_tree.Po ./$(DEPDIR)/cd_engine.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/collision.Po ./$(DEPDIR)/obb.Po \
+@AMDEP_TRUE@	./$(DEPDIR)/obb_tree.Po
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+SOURCES = $(libORXcd_a_SOURCES)
+DIST_SOURCES = $(libORXcd_a_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CURL_CFLAGS = @CURL_CFLAGS@
+CURL_LIBS = @CURL_LIBS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEBUG = @DEBUG@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOCUMENTATION_FALSE = @DOCUMENTATION_FALSE@
+DOCUMENTATION_TRUE = @DOCUMENTATION_TRUE@
+DOXYGEN = @DOXYGEN@
+DOXYGEN_FALSE = @DOXYGEN_FALSE@
+DOXYGEN_TRUE = @DOXYGEN_TRUE@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GPROF = @GPROF@
+GTK2_CFLAGS = @GTK2_CFLAGS@
+GTK2_LIBS = @GTK2_LIBS@
+HAVE_CURL_FALSE = @HAVE_CURL_FALSE@
+HAVE_CURL_TRUE = @HAVE_CURL_TRUE@
+HAVE_GTK2_FALSE = @HAVE_GTK2_FALSE@
+HAVE_GTK2_TRUE = @HAVE_GTK2_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MSBITFIELDS = @MSBITFIELDS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SUB_PROJECTS_FALSE = @SUB_PROJECTS_FALSE@
+SUB_PROJECTS_TRUE = @SUB_PROJECTS_TRUE@
+VERSION = @VERSION@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+MAINSRCDIR = ../..
+noinst_LIBRARIES = libORXcd.a 
+libORXcd_a_SOURCES = cd_engine.cc \
+                     collision.cc \
+		     obb.cc \
+                     obb_tree.cc \
+                     bv_tree.cc \
+		     bounding_volume.cc \
+		     bounding_sphere.cc
+
+noinst_HEADERS = cd_engine.h \
+                     collision.h \
+		     obb.h \
+                     obb_tree.h \
+                     bv_tree.h \
+		     bounding_volume.h \
+		     bounding_sphere.h
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cc .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  src/lib/collision_detection/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  src/lib/collision_detection/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLIBRARIES:
+	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+libORXcd.a: $(libORXcd_a_OBJECTS) $(libORXcd_a_DEPENDENCIES) 
+	-rm -f libORXcd.a
+	$(libORXcd_a_AR) libORXcd.a $(libORXcd_a_OBJECTS) $(libORXcd_a_LIBADD)
+	$(RANLIB) libORXcd.a
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bounding_sphere.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bounding_volume.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bv_tree.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cd_engine.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/collision.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obb.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/obb_tree.Po@am__quote@
+
+.cc.o:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+@am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+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; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-noinstLIBRARIES ctags distclean distclean-compile \
+	distclean-generic distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+	uninstall-am uninstall-info-am
+
+include $(MAINSRCDIR)/defs/include_paths.am
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
Index: orxonox/trunk/src/lib/collision_detection/bounding_sphere.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/bounding_sphere.cc	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/bounding_sphere.cc	(revision 4527)
@@ -0,0 +1,39 @@
+/* 
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_COLLISION
+
+#include "bounding_sphere.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+BoundingSphere::BoundingSphere () 
+{
+   this->setClassID(CL_BOUNDING_SPHERE, "BoundingSphere"); 
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+BoundingSphere::~BoundingSphere () 
+{
+  // delete what has to be deleted here
+}
Index: orxonox/trunk/src/lib/collision_detection/bounding_sphere.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/bounding_sphere.h	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/bounding_sphere.h	(revision 4527)
@@ -0,0 +1,27 @@
+/*! 
+    \file bounding_sphere.h
+    \brief Definition of a bounding sphere
+
+*/
+
+#ifndef _BOUNDING_SPHERE_H
+#define _BOUNDING_SPHERE_H
+
+#include "base_object.h"
+#include "bounding_volume.h"
+
+
+//! A class representing an extended bounding volume tree: an sphere
+class BoundingSphere : public BoundingVolume {
+
+ public:
+  BoundingSphere();
+  virtual ~BoundingSphere();
+
+  inline const float getRadius () const { return this->radius; }
+
+ private:
+  float radius;
+};
+
+#endif /* _BOUNDING_SPHERE_H */
Index: orxonox/trunk/src/lib/collision_detection/bounding_volume.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/bounding_volume.cc	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/bounding_volume.cc	(revision 4527)
@@ -0,0 +1,40 @@
+/* 
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_COLLISION
+
+#include "bounding_volume.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+BoundingVolume::BoundingVolume () 
+{
+   this->setClassID(CL_BOUNDING_VOLUME, "BoundingVolume"); 
+
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+BoundingVolume::~BoundingVolume () 
+{
+  // delete what has to be deleted here
+}
Index: orxonox/trunk/src/lib/collision_detection/bounding_volume.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/bounding_volume.h	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/bounding_volume.h	(revision 4527)
@@ -0,0 +1,39 @@
+/*! 
+    \file bounding_volume.h
+    \brief Definition of a bounding volume for collision detection algorithms
+
+*/
+
+#ifndef _BOUNDING_VOLUME_H
+#define _BOUNDING_VOLUME_H
+
+#include "base_object.h"
+
+class sVect3D;
+class Vector;
+
+//! An abstract class representing a bounding volume
+class BoundingVolume : public BaseObject {
+
+ public:
+  BoundingVolume();
+  virtual ~BoundingVolume();
+
+  inline const Vector* getCenter() const { return this->center; }
+  inline const int getIndex() { return this->treeIndex; }
+
+  virtual sVect3D* getVertices() const = NULL;
+  virtual void mergeWith(const BoundingVolume &bv) = NULL;
+
+  virtual void drawBV(int currentDepth, const int depth) const = NULL;
+  virtual void drawBVPolygon(int currentDepth, const int depth) const = NULL;
+  virtual void drawBVBlended(int currentDepth, const int depth) const = NULL;
+
+
+ private:
+  Vector*             center;                     //!< Center point of box
+
+  unsigned int        treeIndex;                  //!< Index number of the BV in the tree
+};
+
+#endif /* _BOUNDING_VOLUME_H */
Index: orxonox/trunk/src/lib/collision_detection/bv_tree.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/bv_tree.cc	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/bv_tree.cc	(revision 4527)
@@ -0,0 +1,40 @@
+/* 
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_COLLISION
+
+#include "bv_tree.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+BVTree::BVTree () 
+{
+   this->setClassID(CL_BV_TREE, "BVTree"); 
+
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+BVTree::~BVTree () 
+{
+  // delete what has to be deleted here
+}
Index: orxonox/trunk/src/lib/collision_detection/bv_tree.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/bv_tree.h	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/bv_tree.h	(revision 4527)
@@ -0,0 +1,39 @@
+/*! 
+    \file bv_tree.h
+    \brief Definition of a bounding volume tree
+
+*/
+
+#ifndef _BV_TREE_H
+#define _BV_TREE_H
+
+#include "base_object.h"
+
+// FORWARD DEFINITION
+class BoundingVolume;
+
+
+//! A class that represents a bounding volume tree
+class BVTree : public BaseObject {
+
+ public:
+  BVTree();
+  virtual ~BVTree();
+
+  void spawnBVTree(int depth);
+  void flushTree();
+
+  BoundingVolume* getBV(int index) const;
+  
+  void collideWith(const BVTree &tree);
+
+  void drawBV(int currentDepth, const int depth) const;
+  void drawBVPolygon(int currentDepth, const int depth) const;
+  void drawBVBlended(int currentDepth, const int depth) const;
+
+ private:
+  BoundingVolume* firstElement;
+
+};
+
+#endif /* _BV_TREE_H */
Index: orxonox/trunk/src/lib/collision_detection/cd_engine.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/cd_engine.cc	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/cd_engine.cc	(revision 4527)
@@ -0,0 +1,45 @@
+/* 
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_COLLISION
+
+#include "cd_engine.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+CDEngine::CDEngine () 
+{
+   this->setClassName("CDEngine");
+   this->setClassID(CL_CD_ENGINE, "CDEngine"); 
+}
+
+/**
+   \brief the singleton reference to this class
+*/
+CDEngine* CDEngine::singletonRef = NULL;
+
+/**
+   \brief standard deconstructor
+
+*/
+CDEngine::~CDEngine () 
+{
+  CDEngine::singletonRef = NULL;
+
+}
Index: orxonox/trunk/src/lib/collision_detection/cd_engine.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/cd_engine.h	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/cd_engine.h	(revision 4527)
@@ -0,0 +1,63 @@
+/*! 
+    \file cd_engine.h
+    \brief Definition of the collision detection engine
+    
+*/
+
+#ifndef _CD_ENGINE_H
+#define _CD_ENGINE_H
+
+#include "base_object.h"
+#include "collision_defs.h"
+
+template<class T> class tList;
+class WorldEntity;
+
+
+//! featured state options, they are all additive
+typedef enum cdState
+  {
+    CD_DEBUG_DRAW_ALL = 1,
+    CD_DEBUG_DRAW_POLYGONS = 1<<1,
+    CD_DEBUG_DRAW_BLENDED = 1<<2,
+    CD_DEBUG_DRAW_HIT_BV = 1<<3,
+    CD_DEBUG_VERBOSE = 1<<4
+  };
+
+
+//! The class representing the collision detection system of orxonox
+class CDEngine : public BaseObject {
+
+ public:
+  virtual ~CDEngine(void);
+  /** \returns a Pointer to the only object of this Class */
+  inline static CDEngine* getInstance(void) { if (!singletonRef) singletonRef = new CDEngine();  return singletonRef; };
+  void init();
+
+  void setState(const int newState) { this->state = newState; }
+  const int getState() const { return this->state; }
+  void enable(const int options) { this->state |= options; }
+  void disable(const int options) { int temp = this->state & options; this->state ^= temp; }
+
+  void drawBV(int currentDepth, const int depth) const;
+  void drawBVPolygon(int currentDepth, const int depth) const;
+  void drawBVBlended(int currentDepth, const int depth) const;
+
+  void checkCollisions();
+
+ private:
+  CDEngine(void);
+  static CDEngine* singletonRef;
+
+  void spawnBVTree(int depth = MAX_BV_TREE_DEPTH);
+
+  void checkCollisionObjects();
+  void checkCollisionGround();
+
+
+ private:
+  int                     state;                            //!< the current state of the cd engine
+  tList<WorldEntity>*     entityList;                       //!< pointer to the world entity list
+};
+
+#endif /* _CD_ENGINE_H */
Index: orxonox/trunk/src/lib/collision_detection/collision.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/collision.cc	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/collision.cc	(revision 4527)
@@ -0,0 +1,40 @@
+/* 
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_COLLISION
+
+#include "collision.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+Collision::Collision () 
+{
+   this->setClassID(CL_COLLISION, "Collision"); 
+
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+Collision::~Collision () 
+{
+  // delete what has to be deleted here
+}
Index: orxonox/trunk/src/lib/collision_detection/collision.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/collision.h	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/collision.h	(revision 4527)
@@ -0,0 +1,31 @@
+/*! 
+    \file collision.h
+    \brief Definition of a collision event
+
+*/
+
+#ifndef _COLLISION_H
+#define _COLLISION_H
+
+#include "base_object.h"
+#include "vector.h"
+
+
+class WorldEntity;
+class sVec3D;
+class BoundingVolume;
+
+//! A class representing a simple collision
+class Collision : public BaseObject {
+
+ public:
+  Collision();
+  virtual ~Collision();
+
+ public:
+  Vector            pointOfImpact;              //!< point of impact, approximated via bounding volumes
+  WorldEntity*      body;                       //!< the collision body
+  BoundingVolume*   boundingVolume;             //!< reference to the bounding volume that fired the collision
+};
+
+#endif /* _COLLISION_H */
Index: orxonox/trunk/src/lib/collision_detection/collision_defs.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/collision_defs.h	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/collision_defs.h	(revision 4527)
@@ -0,0 +1,23 @@
+/*! 
+    \file collision_defs.h
+    \brief Definition of some global collision data
+
+*/
+
+/* 
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define MAX_BV_TREE_DEPTH 10
+#define MIN_VERT_PER_BV 3
Index: orxonox/trunk/src/lib/collision_detection/obb.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb.cc	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/obb.cc	(revision 4527)
@@ -0,0 +1,39 @@
+/* 
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_COLLISION
+
+#include "obb.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+OBB::OBB () 
+{
+   this->setClassID(CL_OBB, "OBB"); 
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+OBB::~OBB () 
+{
+  // delete what has to be deleted here
+}
Index: orxonox/trunk/src/lib/collision_detection/obb.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb.h	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/obb.h	(revision 4527)
@@ -0,0 +1,32 @@
+/*! 
+    \file obb.h
+    \brief Definition of an OBB (object Oriented Bounding Box)
+
+*/
+
+#ifndef _OBB_H
+#define _OBB_H
+
+#include "base_object.h"
+#include "bounding_volume.h"
+
+
+//! A class representing an extended bounding volume tree: an obb tree
+class OBB : public BoundingVolume {
+
+ public:
+  OBB();
+  virtual ~OBB();
+
+  inline const Vector* getAxis () const { return this->axis; }
+  inline const sVect3D* getHalfLength() const { return this->halfLength; } 
+
+ private:
+  Vector*          axis;                       //!< Axes of oriented box [x,y,z]
+  sVect3D*         halfLength;                 //!< Half lengths of the box
+
+  OBB*             leftNode;                   //!< left node of the tree
+  OBB*             rightNode;                  //!< right node of the tree
+};
+
+#endif /* _OBB_H */
Index: orxonox/trunk/src/lib/collision_detection/obb_tree.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb_tree.cc	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/obb_tree.cc	(revision 4527)
@@ -0,0 +1,40 @@
+/* 
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   ### File Specific:
+   main-programmer: Patrick Boenzli
+   co-programmer: ...
+*/
+
+#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_COLLISION
+
+#include "obb_tree.h"
+
+using namespace std;
+
+
+/**
+   \brief standard constructor
+*/
+OBBTree::OBBTree () 
+{
+   this->setClassID(CL_OBB_TREE, "OBBTree"); 
+
+}
+
+
+/**
+   \brief standard deconstructor
+
+*/
+OBBTree::~OBBTree () 
+{
+  // delete what has to be deleted here
+}
Index: orxonox/trunk/src/lib/collision_detection/obb_tree.h
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb_tree.h	(revision 4527)
+++ orxonox/trunk/src/lib/collision_detection/obb_tree.h	(revision 4527)
@@ -0,0 +1,25 @@
+/*! 
+    \file obb_tree.h
+    \brief Definition of an obb tree (object oriented Bounding Box)
+
+*/
+
+#ifndef _OBB_TREE_H
+#define _OBB_TREE_H
+
+#include "base_object.h"
+#include "bv_tree.h"
+
+//! A class for representing an obb tree
+class OBBTree : public BVTree {
+
+ public:
+  OBBTree();
+  virtual ~OBBTree();
+
+
+ private:
+
+};
+
+#endif /* _OBB_TREE_H */
