class RandomKinematicAlgorithm implements RandomMotionAlgorithm, Serializable, Cloneable {

	@Override
	public AgentMotion calculate(Point2D<?, ?> position, Vector2D<?, ?> orientation, double linearSpeed,
			double maxLinearSpeed, double angularSpeed, double maxAngularSpeed) {
		final Vector2D<?, ?> v = orientation.toColinearVector(maxLinearSpeed);
		final double rotation = this.random.nextGaussian() * maxAngularSpeed;
		return new AgentMotion(v, rotation);
	}

}