@Override
	public void updateBounds(Vector3d position, Matrix3d rotation) {
		boundsMin.set(position);
		boundsMax.set(position);

		Vector3d row0 = new Vector3d();
		Vector3d row1 = new Vector3d();
		Vector3d row2 = new Vector3d();
		rotation.getRow(0, row0);
		rotation.getRow(1, row1);
		rotation.getRow(2, row2);

		for (Iterator<Vector3d> it = ((Mesh) meshAsset.getContent()).vertices
				.iterator(); it.hasNext();) {
			Vector3d vertex = it.next();

			boundsMin.set(Math.min(row0.dot(vertex) + position.x, boundsMin.x),
					Math.min(row1.dot(vertex) + position.y, boundsMin.y),
					Math.min(row2.dot(vertex) + position.z, boundsMin.z));
			boundsMax.set(Math.max(row0.dot(vertex) + position.x, boundsMax.x),
					Math.max(row1.dot(vertex) + position.y, boundsMax.y),
					Math.max(row2.dot(vertex) + position.z, boundsMax.z));
		}
		padBounds();
	}