changeset 27:72194bf15970

Swap angle vars, to make things make senses
author Josef "Jeff" Sipek <jeffpc@optonline.net>
date Sat, 03 Dec 2005 03:01:28 -0500
parents 769ee152b271
children 91ad0fe957de
files .hgignore rotate.c tg.sh
diffstat 3 files changed, 79 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Sat Dec 03 03:00:41 2005 -0500
+++ b/.hgignore	Sat Dec 03 03:01:28 2005 -0500
@@ -5,3 +5,4 @@
 ^normalize$
 ^getline$
 ^cross$
+_thumb\.jpg$
--- a/rotate.c	Sat Dec 03 03:00:41 2005 -0500
+++ b/rotate.c	Sat Dec 03 03:01:28 2005 -0500
@@ -17,7 +17,7 @@
 	float omega, phi, rho;
 	char c;
 
-	scanf("%f %f %f", &omega, &phi, &rho);
+	scanf("%f %f %f", &rho, &phi, &omega);
 	rotate_header(omega, phi, rho);
 
 	while((c = getc(stdin)) != EOF)
--- a/tg.sh	Sat Dec 03 03:00:41 2005 -0500
+++ b/tg.sh	Sat Dec 03 03:01:28 2005 -0500
@@ -4,32 +4,104 @@
 IPIPE="/tmp/3de.in"
 OPIPE="/tmp/3de.out"
 
+ROT_ANGLE_DELTA="0.667"
+TRANS_DELTA="1.0"
+
+CAM_X="1.0"
+CAM_Y="1.0"
+CAM_Z="0.0"
+CAM_AX="0.0"
+CAM_AY="0.0"
+CAM_AZ="0.0"
+
+echo "TRANSCAM 0 0 1" > $IPIPE
+echo "TRANSCAM $CAM_X $CAM_Y $CAM_Z" > $IPIPE
+
 while /bin/true; do
 	echo "CLEAR" > $IPIPE
 
 	# the 4 walls
 	cat tg/walls.scn > $IPIPE
 
+	CDX=`echo "$CAM_AX*180/3.14159263" | bc`
+	CDY=`echo "$CAM_AY*180/3.14159263" | bc`
+	CDZ=`echo "$CAM_AZ*180/3.14159263" | bc`
+	echo "TEXT 1 1 1 30 30 0 $CDX $CDY $CDZ" > $IPIPE
+	echo "TEXT 1 1 1 30 50 0 $CAM_X $CAM_Y $CAM_Z" > $IPIPE
+
 	KEY=`./getline $OPIPE`
 
 	if [ -n "$KEY" ]; then
 		case $KEY in
 			left)
-				echo "got left"
+				CAM_AZ=`echo "$CAM_AZ+$ROT_ANGLE_DELTA" | bc`
+				echo "ROTCAM 0 0 $ROT_ANGLE_DELTA" > $IPIPE
+				echo "got rotate left"
 				;;
 			right)
-				echo "got right"
+				CAM_AZ=`echo "$CAM_AZ-$ROT_ANGLE_DELTA" | bc`
+				echo "ROTCAM 0 0 -$ROT_ANGLE_DELTA" > $IPIPE
+				echo "got rotate right"
 				;;
 			up)
-				echo "got up"
+				echo "ROTCAM -$ROT_ANGLE_DELTA 0 0" > $IPIPE
+				echo "got rotate up"
 				;;
 			down)
-				echo "got down"
+				echo "ROTCAM $ROT_ANGLE_DELTA 0 0" > $IPIPE
+				echo "got rotate down"
+				;;
+			a)
+				echo "got move left"
+				;;
+			d)
+				V2_HAT=`echo -e "0 0 $CAM_AZ\n0 0 0 1 0 0" | ./rotate | ./transform`
+				V2_HAT=`echo "$V2_HAT 0 0 0 0 0 1" | ./cross`
+
+				D_X=`echo $V2_HAT|awk '{print $1}'`
+				D_X=`echo "$TRANS_DELTA*$D_X" | bc`
+				D_Y=`echo $V2_HAT|awk '{print $2}'`
+				D_Y=`echo "$TRANS_DELTA*$D_Y" | bc`
+				
+				CAM_X=`echo "$CAM_X+$D_X" | bc`
+				CAM_Y=`echo "$CAM_Y+$D_Y" | bc`
+				
+				echo "got move right"
+				echo "TRANSCAM $D_X $D_Y 0" > $IPIPE
+				;;
+			w)
+				V2_HAT=`echo -e "0 0 $CAM_AZ\n0 0 0 1 0 0" | ./rotate | ./transform`
+
+				D_X=`echo $V2_HAT|awk '{print $4}'`
+				D_X=`echo "$TRANS_DELTA*$D_X" | bc`
+				D_Y=`echo $V2_HAT|awk '{print $5}'`
+				D_Y=`echo "$TRANS_DELTA*$D_Y" | bc`
+
+				CAM_X=`echo "$CAM_X+$D_X" | bc`
+				CAM_Y=`echo "$CAM_Y+$D_Y" | bc`
+				
+				echo "got move forward"
+				echo "TRANSCAM $D_X $D_Y 0" > $IPIPE
+				;;
+			s)
+				V2_HAT=`echo -e "0 0 $CAM_AZ\n0 0 0 1 0 0" | ./rotate | ./transform`
+
+				D_X=`echo $V2_HAT|awk '{print $4}'`
+				D_X=`echo "$TRANS_DELTA*$D_X*-1" | bc`
+				D_Y=`echo $V2_HAT|awk '{print $5}'`
+				D_Y=`echo "$TRANS_DELTA*$D_Y*-1" | bc`
+
+				CAM_X=`echo "$CAM_X+$D_X" | bc`
+				CAM_Y=`echo "$CAM_Y+$D_Y" | bc`
+				
+				echo "got move backward"
+				echo "TRANSCAM $D_X $D_Y 0" > $IPIPE
 				;;
 		esac
 
 	fi
 
 	echo "FLUSH" > $IPIPE
-	sleep 0.01
+	sleep 0.1
 done
+