Перемудрили. Скорее всего, достаточно получить bounding box-ы элементов и сдвинуть второй элемент по направлению вектора от центра второго к центру первого box-а. Ну на край, так же, но с solid-ами с использованием метода ComputeCentroid. Двигать сам 2 solid не нужно. ElementTransformUtils Вам в помощь