#ifndef ODELIB_IJOINT_H
#define ODELIB_IJOINT_H

#include <k3dsdk/iunknown.h>
#include <ode/ode.h>

namespace libk3dode
{

class ijoint :
	public virtual k3d::iunknown
{
public:
	virtual const dJointID create(const dWorldID World, dJointGroupID JointGroup) = 0;
	virtual void reset() = 0;
	virtual void pre_step() = 0;
	virtual void post_step() = 0;
	virtual void destroy() = 0;
	
protected:
	ijoint() {}
	ijoint(const ijoint&) {}
	ijoint& operator=(const ijoint&) { return *this; }
	virtual ~ijoint() {}
};

} // namespace libk3dode

#endif // !ODELIB_IJOINT_H

