44 #include "visp3/core/vpConfig.h"
46 #ifndef DOXYGEN_SHOULD_SKIP_THIS
47 #include <visp3/robot/vpMy.h>
48 #include <visp3/robot/vpArit.h>
49 #include <visp3/robot/vpToken.h>
50 #include <visp3/robot/vpLex.h>
59 void fprintf_Position (FILE *f, AritPosition *pp)
61 fprintf (f,
"%.3f\t%.3f\t%.3f\n%.3f\t%.3f\t%.3f\n%.3f\t%.3f\t%.3f\n",
62 pp->rotate.x, pp->rotate.y, pp->rotate.z,
63 pp->scale.x, pp->scale.y, pp->scale.z,
64 pp->translate.x, pp->translate.y, pp->translate.z);
72 void fscanf_Point3f (Point3f *pp)
74 static const char *err_tbl[] = {
75 "float expected (coordinate ",
82 if ((t = lex ()) != T_FLOAT && t != T_INT)
83 lexerr (
"start",err_tbl[0],
"X", err_tbl[1], NULL);
84 pp->x = (t == T_INT) ? (
float) myint : myfloat;
88 if ((t= lex ()) != T_FLOAT && t != T_INT)
89 lexerr (
"start",err_tbl[0],
"Y", err_tbl[1], NULL);
90 pp->y = (t == T_INT) ? (
float) myint : myfloat;
94 if ((t= lex ()) != T_FLOAT && t != T_INT)
95 lexerr (
"start",err_tbl[0],
"Z", err_tbl[1], NULL);
96 pp->z = (t == T_INT) ? (
float) myint : myfloat;
104 void fscanf_Vector (Vector *vp)
106 static const char *err_tbl[] = {
107 "float expected (coordinate ",
115 if ((t= lex ()) != T_FLOAT && t != T_INT)
116 lexerr (
"start",err_tbl[0],
"X", err_tbl[1], NULL);
117 vp->x = (t == T_INT) ? (
float) myint : myfloat;
121 if ((t= lex ()) != T_FLOAT && t != T_INT)
122 lexerr (
"start",err_tbl[0],
"Y", err_tbl[1], NULL);
123 vp->y = (t == T_INT) ? (
float) myint : myfloat;
127 if ((t= lex ()) != T_FLOAT && t != T_INT)
128 lexerr (
"start",err_tbl[0],
"Z", err_tbl[1], NULL);
129 vp->z = (t == T_INT) ? (
float) myint : myfloat;
137 void fscanf_Position (AritPosition *pp)
139 pusherr (
"rotate: ");
140 fscanf_Vector (&pp->rotate);
141 popuperr (
"scale: ");
142 fscanf_Vector (&pp->scale);
143 popuperr (
"translate: ");
144 fscanf_Vector (&pp->translate);