private void checkCylindericObstacleBounds(char axis, float delta, Point3f center) {
		positionCorner = originalCorner + delta; // new radius
		if (positionCorner < CylinderObstacle.MIN_RADIUS) {
			positionCorner = CylinderObstacle.MIN_RADIUS;
		}
		else {
			float min = Float.MAX_VALUE;
			float dis;
			switch (axis) {
			case 'x':
				dis = 0.5f * model.getWidth() - center.y;
				if (dis < min)
					min = dis;
				dis = center.y + 0.5f * model.getWidth();
				if (dis < min)
					min = dis;
				dis = 0.5f * model.getHeight() - center.z;
				if (dis < min)
					min = dis;
				dis = center.z + 0.5f * model.getHeight();
				if (dis < min)
					min = dis;
				break;
			case 'y':
				dis = 0.5f * model.getLength() - center.x;
				if (dis < min)
					min = dis;
				dis = center.x + 0.5f * model.getLength();
				if (dis < min)
					min = dis;
				dis = 0.5f * model.getHeight() - center.z;
				if (dis < min)
					min = dis;
				dis = center.z + 0.5f * model.getHeight();
				if (dis < min)
					min = dis;
				break;
			case 'z':
				dis = 0.5f * model.getLength() - center.x;
				if (dis < min)
					min = dis;
				dis = center.x + 0.5f * model.getLength();
				if (dis < min)
					min = dis;
				dis = 0.5f * model.getWidth() - center.y;
				if (dis < min)
					min = dis;
				dis = center.y + 0.5f * model.getWidth();
				if (dis < min)
					min = dis;
				break;
			}
			if (positionCorner > min)
				positionCorner = min;
		}
	}