Compilació de TuioDump (tenint prèviament el TuioDump.o):

primer generem TuioDump.o:

$ g++ -Wall -O3 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I./TUIO -I./oscpack -DOSC_HOST_LITTLE_ENDIAN -c -o TuioDump.o TuioDump.cpp

i ara ja podem generar TuioDump:

$ g++ -o TuioDump TUIO/TuioClient.o TUIO/TuioServer.o TUIO/TuioTime.o oscpack/osc/OscTypes.o oscpack/osc/OscOutboundPacketStream.o oscpack/osc/OscReceivedElements.o oscpack/osc/OscPrintReceivedElements.o oscpack/ip/posix/NetworkingUtils.o oscpack/ip/posix/UdpSocket.o TuioDump.o -lpthread

a) Compilació de LlegirAmbFiducials1 (basat en TuioDump, no té interfície gràfica) -> veure b)
primer de tot, agafem TuioDump i canviem el nom:
$ g++ -Wall -O3 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I./TUIO -I./oscpack -DOSC_HOST_LITTLE_ENDIAN -c -o LlegirAmbFiducials1.o LlegirAmbFiducials1.cpp
$ g++ -o LlegirAmbFiducials1 TUIO/TuioClient.o TUIO/TuioServer.o TUIO/TuioTime.o oscpack/osc/OscTypes.o oscpack/osc/OscOutboundPacketStream.o oscpack/osc/OscReceivedElements.o oscpack/osc/OscPrintReceivedElements.o oscpack/ip/posix/NetworkingUtils.o oscpack/ip/posix/UdpSocket.o LlegirAmbFiducials1.o -lpthread

b) ara afegim les llibreries SDL i SDL_ttf de la meva collita. Afegeixo ''-lGL -lGLU -lSDL_ttf''
$ g++ -Wall -O3 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I./TUIO -I./oscpack -DOSC_HOST_LITTLE_ENDIAN -c -o LlegirAmbFiducials1.o LlegirAmbFiducials1.cpp
$ g++ -o LlegirAmbFiducials1 TUIO/TuioClient.o TUIO/TuioServer.o TUIO/TuioTime.o oscpack/osc/OscTypes.o oscpack/osc/OscOutboundPacketStream.o oscpack/osc/OscReceivedElements.o oscpack/osc/OscPrintReceivedElements.o oscpack/ip/posix/NetworkingUtils.o oscpack/ip/posix/UdpSocket.o LlegirAmbFiducials1.o -lpthread -lGL -lGLU -lSDL_ttf

c) Compilació de LlegirAmbFiducials2 (basat en TuioDemo.cpp i TuioDemo.h)
$ g++ -Wall -O3 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I./TUIO -I./oscpack -DOSC_HOST_LITTLE_ENDIAN -c -o LlegirAmbFiducials2.o LlegirAmbFiducials2.cpp
$ g++ -o LlegirAmbFiducials2 TUIO/TuioClient.o TUIO/TuioServer.o TUIO/TuioTime.o oscpack/osc/OscTypes.o oscpack/osc/OscOutboundPacketStream.o oscpack/osc/OscReceivedElements.o oscpack/osc/OscPrintReceivedElements.o oscpack/ip/posix/NetworkingUtils.o oscpack/ip/posix/UdpSocket.o LlegirAmbFiducials2.o -L/usr/lib -lSDL -lGL -lGLU -lglut


d) Compilació de LlegirAmbFiducials3 (basat en TuioDemo.cpp i TuioDemo.h), però ara adapto tota la part de SDL i OpenGL al codi que jo conec, basat en SDL_TTF
Objectiu: eliminar tota la part de glut en el codi i en la compilació
$ g++ -Wall -O3 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I./TUIO -I./oscpack -DOSC_HOST_LITTLE_ENDIAN -c -o LlegirAmbFiducials3.o LlegirAmbFiducials3.cpp
$ g++ -o LlegirAmbFiducials3 TUIO/TuioClient.o TUIO/TuioServer.o TUIO/TuioTime.o oscpack/osc/OscTypes.o oscpack/osc/OscOutboundPacketStream.o oscpack/osc/OscReceivedElements.o oscpack/osc/OscPrintReceivedElements.o oscpack/ip/posix/NetworkingUtils.o oscpack/ip/posix/UdpSocket.o LlegirAmbFiducials3.o -L/usr/lib -lSDL_ttf

e) Finalment: Compilació de LlegirAmbFiducials (versió 4 que passa a definitiva):
Objectiu: programar tota la part dels arrays multidimensionals
$ g++ -Wall -O3 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I./TUIO -I./oscpack -DOSC_HOST_LITTLE_ENDIAN -c -o LlegirAmbFiducials.o LlegirAmbFiducials.cpp
$ g++ -o LlegirAmbFiducials TUIO/TuioClient.o TUIO/TuioServer.o TUIO/TuioTime.o oscpack/osc/OscTypes.o oscpack/osc/OscOutboundPacketStream.o oscpack/osc/OscReceivedElements.o oscpack/osc/OscPrintReceivedElements.o oscpack/ip/posix/NetworkingUtils.o oscpack/ip/posix/UdpSocket.o LlegirAmbFiducials.o -L/usr/lib -lSDL_ttf

Finalment, automatitzem amb un script engegar el servidor i el client, i l'associem a una llençadora:

LlegirAmbFiducials.sh:

#!/bin/bash
/home/joan/Baixades/reacTIVision-1.4-src/linux/reacTIVision &
sleep 6
/home/joan/Baixades/TUIO_CPP/LlegirAmbFiducials

	//xuleta
	/*
	0: NENA
	1: COTXE
	2: ARBRE
	3: OCELL

	0-1 0
	0-2 1
	0-3 2
	1-2 3
	1-3 4
	2-3 5
	*/

	array3D[0][0][0] = (char *)"EL PARE DE LA NENA";
	array3D[0][0][1] = (char *)"TÉ UN COTXE DE COLOR VERMELL";
	array3D[0][1][0] = (char *)"A LA NENA LI AGRADA POSAR-SE AL";
	array3D[0][1][1] = (char *)"VOLANT DEL COTXE AMB EL SEU PARE";
	array3D[0][2][0] = (char *)"PER L'ANIVERSARI LA NENA HA";
	array3D[0][2][1] = (char *)"DEMANAT UN COTXE DE BOMBERS";
	array3D[1][0][0] = (char *)"LA NENA TÉ GANES DE PUJAR A L'ARBRE";
	array3D[1][0][1] = (char *)"PERÒ EL SEU PARE NO LI DEIXA";
	array3D[1][1][0] = (char *)"A DALT DE L'ARBRE LA NENA HI VOL";
	array3D[1][1][1] = (char *)"CONSTRUIR UNA CASETA DE FUSTA";
	array3D[1][2][0] = (char *)"A L'ESCOLA ESTEM APRENENT ELS NOMS";
	array3D[1][2][1] = (char *)"DELS ARBRES. AQUELLA NENA SAP EL PI";
	array3D[2][0][0] = (char *)"LA NENA PASSEJAVA PER LA RAMBLA I";
	array3D[2][0][1] = (char *)"ES VA ATURAR EN UNA PARADA D'OCELLS";
	array3D[2][1][0] = (char *)"LA NENA SAP QUE LA MERLA, LA GRALLA"; //no passar d'aquesta longitud
	array3D[2][1][1] = (char *)"I EL CORB SÓN OCELLS DE COLOR NEGRE"; //no passar d'aquesta longitud
	array3D[2][2][0] = (char *)"L'OCELL VOLAVA TAN BAIX QUE VA";
	array3D[2][2][1] = (char *)"FREGAR LA CAPUTXA DE LA NENA";
	array3D[3][0][0] = (char *)"AQUELL COTXE ANAVA TAN RÀPID QUE ES";
	array3D[3][0][1] = (char *)"VA ESCLAFAR CONTRA UN ARBRE";
	array3D[3][1][0] = (char *)"VA FER TANT I TANT DE VENT QUE VA";
	array3D[3][1][1] = (char *)"CAURE UN ARBRE SOBRE UN COTXE";
	array3D[3][2][0] = (char *)"NO TROBAVA LLOC PER APARCAR EL COTXE.";
	array3D[3][2][1] = (char *)"AL FINAL HO VA FER ENTRE DOS ARBRES";
	array3D[4][0][0] = (char *)"TENIA LES FINESTRES DEL COTXE MIG";
	array3D[4][0][1] = (char *)"OBERTES I VA ENTRAR UN OCELL!!";
	array3D[4][1][0] = (char *)"L'OCELL VA FER UNA CACA SOBRE EL";
	array3D[4][1][1] = (char *)"COTXE I L'AMO LA VA NETEJAR";
	array3D[4][2][0] = (char *)"EL SÍMBOL DEL COTXE DEL MEU PARE";
	array3D[4][2][1] = (char *)"ÉS UN OCELL AMB LES ALES OBERTES";
	array3D[5][0][0] = (char *)"JA ÉS PRIMAVERA I ELS OCELLS PASSEN";
	array3D[5][0][1] = (char *)"L'ESTONA EN LA BRANCA DELS ARBRES";
	array3D[5][1][0] = (char *)"AQUELL OCELL VA FER UN NIU EN";
	array3D[5][1][1] = (char *)"UN ARBRE DEL MEU JARDÍ";
	array3D[5][2][0] = (char *)"ELS PICA-SOQUES SÓN OCELLS QUE FAN EL";
	array3D[5][2][1] = (char *)"NIU A DINS DEL TRONC DE L'ARBRE";
