#define PROG_NAME "DirectionEyes" #define PROG_DESC "???" #define PROG_VERS "1.0" #define DirectionEyes_C_COPYRIGHT \ "" #define PROG_INFO \ "" \ " " #include #include #define _GNU_SOURCE #include #include #define _GNU_SOURCE #include CONST up == (frgb_t){0.0,1.0,0.0}; VAR obs3,int3: frgb_t; double x; REAL ReadLong() { return Scan.Real(Rd.GetLine(Stdio.stdin)); } /* END ReadLong */ { x = Math.pow(2.0,1.0/3.0); fprintf(stderr,"Input the look_at vector (one component by line)\n\n"); fprintf(stderr,"look_at\n"); for (i = 0; i < 3; i++) { obs3[i] = ReadLong(); } fprintf(stderr, "raiz cubica de 2 " & Fmt.LongReal(x) & "\n"); fprintf(stderr, "Input the location camera vector\n\n"); fprintf(stderr, "location\n"); for (i = 0; i < 3; i++) { int3[i] = ReadLong(); } ??? view = R3.Sub(int3; with (obs3), cross == R3Extras.Cross(view,up), norm == R3.Norm(cross), dirR == R3.Scale(1.0/norm,cross), dirL == R3.Scale(-1.0/norm,cross) ){ fprintf(stderr, "Direction left eye\n"); for (i = 0; i < 3; i++) { fprintf(stderr,Fmt.Real(dirL[i]) & " "); } fprintf(stderr,"\n"); fprintf(stderr, "Direction right eye\n"); for (i = 0; i < 3; i++) { fprintf(stderr,Fmt.Real(dirR[i]) & " "); } fprintf(stderr,"\n"); } } DirectionEyes.