/***************************************************************
 * PrTreeRobotIntf.h
 *
 * This abstract class provides the tree-like robot interface.
 *
 ****************************************************************/

/*
 * modification history
 *----------------------
 *
 * 11/16/98: K.C. Chang: created.
 */

#ifndef _PrTreeRobotIntf_h
#define _PrTreeRobotIntf_h

#include "PrGlobalDefn.h"

class PrVector;
class PrVector6;
class PrRobot;

class PrTreeRobotIntf
{
public:
	virtual ~PrTreeRobotIntf() {}

	virtual int noj() const = 0;

	virtual int mode() const = 0;
	virtual void mode(int m) = 0;
	
	virtual int modeGripper() const = 0;
	virtual void modeGripper(int m) = 0;
	
	virtual void jointVel(const PrVector &dq) = 0;

	virtual PrVector &jointPos() = 0;
	virtual PrVector &jointVel() = 0;

	virtual PrVector &computedTorque(const PrVector &tau_prime) = 0;
	virtual void torque(const PrVector &tau) = 0;

	virtual Float gripperPos() = 0;
	virtual Float gripperVel() = 0;
	virtual void gripperTorque(Float t) = 0;
	virtual PrVector6 &fsValue() = 0;
	virtual void fsZero() = 0;

	virtual PrRobot *robot() = 0;
};

#endif // _PrTreeRobotIntf_h



