/*
 * RCCL Version 1.0           Author :  Vincent Hayward
 *                                      School of Electrical Engineering
 *                                      Purdue University
 *      Dir     : lint
 *      File    : llib-rccl
 *      Remarks : Lint file
 *      Usage   : made available to the user
 */

/*LINTLIBRARY*/
#include "../h/rccl.h"
	/* VARARGS */
POS_PTR makeposition(sp, a) char *sp; TRSF_PTR a; {static POS p; return(&p);}
	freepos(p) POS_PTR p; {}
	giveup(m, user) char *m; bool user;{}
	startup() {}
	release(s) char *s; {}
	setime(ta, ts) int ta, ts; {}
	setvel(tv, rv) int tv, rv; {}
	setmod(m) int m; {}
	evalfn(fn) TRFN fn; {}
	setconf(s) char *s; {}
	update(u, p) TRSF_PTR u; POS_PTR p; {}
	sample(s) int s; {}
	/* VARARGS */
	limit(f, l) char *f; double l; {}
	/* VARARGS */
	comply(f, l) char *f; double l; {}
	/* VARARGS */
	lock(f) char *f; {}
	/* VARARGS */
	distance(f, l) char *f; double l; {}
	move(p) POS_PTR p; {}
	stop(t) int t; {}
	optimize(p) POS_PTR p; {}
	const() {}
	hold() {}
	varb() {}
TRSF_PTR newtrans(s, fct) char *s; TRFN fct; {static TRSF t; return(&t);}
TRSF_PTR gentr_rot(n, tx, ty, tz, k, h)
		char *n; real tx, ty, tz, h; VECT_PTR k;
		{static TRSF t; return(&t);}
TRSF_PTR gentr_eul(n, tx, ty, tz, phi, the, psi)
		char *n; real tx, ty, tz; real phi, the, psi;
		{static TRSF t; return(&t);}
TRSF_PTR gentr_rpy(n, tx, ty, tz, phi, the, psi)
		char *n; real tx, ty, tz; real phi, the, psi;
		{static TRSF t; return(&t);}
TRSF_PTR gentr_pao(n, px, py, pz, ax, ay, az, ox, oy, oz)
		char *n; real px, py, pz, ax, ay, az, ox, oy, oz;
		{static TRSF t; return(&t);}
TRSF_PTR gentr_trsl(n, px, py, pz) char *n; real px, py, pz;
		{static TRSF t; return(&t);}
char *  gensym() {return("");}
char *  strsave(s) char *s; {return("");}
char *  strcpy(s1, s2) char *s1, *s2; {return("");}
char *  strcat(s1, s2) char *s1, *s2; {return("");}
VECT_PTR assignvect(v, u) VECT_PTR v, u; {static VECT w; return(&w);}
real    dot(u, v) VECT_PTR u, v; {return(0.);}
VECT_PTR cross(r, u, v) VECT_PTR r, u, v; {static VECT w; return(&w);}
VECT_PTR unit(v, u) VECT_PTR v, u; {static VECT w; return(&w);}
TRSF_PTR assigntr(r, t) TRSF_PTR r, t; {static TRSF y; return(&y);}
TRSF_PTR trmult(r, t, u) TRSF_PTR r, t, u; {static TRSF y; return(&y);}
TRSF_PTR trmultinp(r, m) TRSF_PTR r, m; {static TRSF y; return(&y);}
TRSF_PTR trmultinv(r, m) TRSF_PTR r, m; {static TRSF y; return(&y);}
TRSF_PTR invert(i, t)  TRSF_PTR i, t; {static TRSF y; return(&y);}
TRSF_PTR invertinp(i)  TRSF_PTR i; {static TRSF y; return(&y);}
TRSF_PTR trsl(t, x, y, z) TRSF_PTR t; real x, y, z;
		{static TRSF y; return(&y);}
TRSF_PTR trslm(t, x, y, z) TRSF_PTR t; real x, y, z;
		{static TRSF y; return(&y);}
TRSF_PTR vao(t, ax, ay, az, ox, oy, oz)
		TRSF_PTR t; real ax, ay, az, ox, oy, oz;
		{static TRSF y; return(&y);}
TRSF_PTR vaom(t, ax, ay, az, ox, oy, oz)
		TRSF_PTR t; real ax, ay, az, ox, oy, oz;
		{static TRSF y; return(&y);}
TRSF_PTR rot(t, k, h) TRSF_PTR t; VECT_PTR k; real h;
		{static TRSF y; return(&y);}
TRSF_PTR rotm(t, k, h) TRSF_PTR t; VECT_PTR k; real h;
		{static TRSF y; return(&y);}
TRSF_PTR eul(t, phi, the, psi) TRSF_PTR t; real phi, the, psi;
		{static TRSF y; return(&y);}
TRSF_PTR eulm(t, phi, the, psi) TRSF_PTR t; real phi, the, psi;
		{static TRSF y; return(&y);}
	noatoeul(phi, the, psi, t) real *phi, *the, *psi; TRSF_PTR t; {}
TRSF_PTR rpy(t, phi, the, psi) TRSF_PTR t; real phi, the, psi;
		{static TRSF y; return(&y);}
TRSF_PTR rpym(t, phi, the, psi) TRSF_PTR t; real phi, the, psi;
		{static TRSF y; return(&y);}
	noatorpy(phi, the, psi, t) real *phi, *the, *psi; TRSF_PTR t; {}
TRSF_PTR taketrsl(r, t) TRSF_PTR r, t; {static TRSF y; return(&y);}
TRSF_PTR takerot(r, t) TRSF_PTR r, t; {static TRSF y; return(&y);}


	printr(t, fp) TRSF_PTR t; FILE *fp; {}
	printrn(t, fp) TRSF_PTR t; FILE *fp; {}
	printe(e, fp) TRSF_PTR e; FILE *fp; {}
	printy(e, fp) TRSF_PTR e; FILE *fp; {}
FORCE_PTR assignforce(t, o) FORCE_PTR t, o;
		{static FORCE x; return(&x);}
FORCE_PTR forcetr(fc, ff, tr) FORCE_PTR fc, ff; TRSF_PTR tr;
		{static FORCE x; return(&x);}
DIFF_PTR tr_to_df(d, t) DIFF_PTR d; TRSF_PTR t;
		{static DIFF z; return(&z);}
TRSF_PTR df_to_tr(t, d) TRSF_PTR t; DIFF_PTR d;
		{static TRSF y; return(&y);}
DIFF_PTR difftr(dc, dd, tr) DIFF_PTR dc, dd; TRSF_PTR tr;
		{static DIFF z; return(&z);}
DIFF_PTR assigndiff(t, o) DIFF_PTR t, o;
		{static DIFF z; return(&z);}
	printd(d, fp) DIFF_PTR d; FILE *fp; {}
	printm(f, fp) FORCE_PTR f; FILE *fp; {}

	teach(t, p) TRSF_PTR t; POS_PTR p; {return(0);}

	main() {pumatask();stantask();}

JNTS_PTR j6, jd;
TRSF_PTR t6, here, rest, unitr;
VECT_PTR xunit, yunit, zunit;
POS_PTR lastpos, goalpos, there, park;
event completed;
FILE *fpi;
bool prints_out, force_ctl;
int rtime, timeincrement, requestnb, nextmove, terminate;
real pi_m, pib2_m, pit2_m, dgtord_m, rdtodg_m;
short hdpos;
