Introducción
Esta documentación solo abarca a las clases creadas para este proyecto y clases que no cuentan con documentación en sus sitios de origen.
Documentación Externa de Bibliotecas utilizadas
Bullet Collision Detection & Physics Library
http://bulletphysics.com/Bullet/BulletFull/
ASSIMP - Open Asset Import Library
http://assimp.sourceforge.net/lib_html/index.html
OpenFramewarks - Sound Player
http://www.openframeworks.cc/documentation?detail=ofSoundPlayer
Bram Stein - OpenGL GUI library for games
OpenGL GUI API
Consideraciones Generales
- Producto de Matrices:
en las matrices de Maths.h una multiplicación de matrices A*B*C corresponde a hacer primero la transformación A luego la B y por último la C.
En cambio en Bullet una multiplicación A*B*C es hacer primero la C, luego la B y por último la A.
- Uso de GUI:
se le hizo una leve modificación a la parte de UI para poder dibujarla sobre el "mundo".
Se agregó la interfaz ui::WorldPainter que tiene la función paintWorld() para dibujar el mundo detrás de la GUI.
Al dibujar la GUI, llamando a la función paint, se le pasa como parámetro el WorldPainter y hay que hacer que el background del frame en uso sea transparente.
En caso que no se quiera dibujar un mundo de fondo se le pasa NULL como parametro.
Si se usa algún elemento de GUI para que pueda mostrar texto hay que tener el archivo de fuente Vera.ttf en la carpeta de ejecución de la aplicación
Al momento de crear los elementos de la GUI, hay que tener deshabilitados GL_TEXTURE_2D y GL_LIGHTING porque hace la selección haciendo color picking y estas dos opciones alteran el color.
Una vez creada la interfaz se pueden habilitar.
- Ubicación de archivos de sonido
los archivos de sonido que se quieran usar con el ofSoundPlayer tienen que estar en una carpeta "data" ya que por defecto la biblioteca asume que se encuentran ubicados dentro de una carpeta con dicho nombre.
Para ejecutar ofSoundPlayer hay que usar el dll de fmodex (en los ejemplos que usamos esta el dll)
- Portabilidad a Linux
el proyecto se puede abrir en linux con CodeBlocks.
Para que ande hay que instalar las siguientes dependencias para desarrollar:
freetype boost freeimage freeglut sdl.
- Guía de Instalación para Debian
(probado en Debian GNU/Linux 5.0.4 lenny)
Descargar el archivo install_codeblocks
ejecutar en consola donde se descargo el archivo como root:
./install_codeblocks
apt-get install libsdl1.2-dev
apt-get install freeglut3-dev
apt-get install libboost-dev
apt-get install libfreeimage-dev
apt-get install libfreetype6-dev
ln -s /usr/include/freetype2/freetype /usr/include/freetype
abrir con CodeBlocks SolutionCB.workspace
(contiene el proyecto para linux 32bits, en caso de trabajar con 64 bits se debe cambiar en el proyecto TestBullet la ruta en "Build Options->Search directories->Linker" de "../CGALib/fmodex/lib/linux" a "../CGALib/fmodex/lib/linux64")
*(se pueden utilizar versiones posteriores de las bibliotecas utilizadas)