public void locate(float lx, float ly, float lz, Vec3d bx, Collection<Location> locations) {
        StringBuilder b = new StringBuilder();

        for (int i = 0; i < cornerOffset.length; ++i) {
            float cx = lx + bx.x() * cornerOffset[i][0];
            float cy = ly + bx.y() * cornerOffset[i][1];
            float cz = lz + bx.z() * cornerOffset[i][2];

            b.append(String.format(Locale.ENGLISH, " (%.2f, %.2f, %.2f)", cx, cy, cz));
        }

        locations.add(new Location(id, b.toString()));
    }