@Override
    public MathList<BoundingBox> getAllBoundingBoxs(int x, int y) {
        MathList<BoundingBox> list = new MathList<BoundingBox>();
        list.add(this.getBoundingBox(x, y));

        switch (operand) {
            case '/':
                if (c1.length() > c2.length()) {
                    //Čitatel je delší než jmenovatel
                    list.addAll(c1.getAllBoundingBoxs(x, y));
                    list.addAll(c2.getAllBoundingBoxs(x + (int) (c1.length() / 2.0 - c2.length() / 2.0), y + c1.height() + 1));
                } else {
                    //Jmenovatel je delší než čitatel
                    list.addAll(c1.getAllBoundingBoxs(x + (int) (c2.length() / 2.0 - c1.length() / 2.0), y));
                    list.addAll(c2.getAllBoundingBoxs(x, y + c1.height() + 1));
                }
                break;
            case '^':
                //Zápis mocněnce a mocnitele
                list.addAll(c1.getAllBoundingBoxs(x, y + c2.height()));
                list.addAll(c2.getAllBoundingBoxs(x + c1.length(), y));
                break;
            default:
                if (c1.height() > c2.height()) {
                    // První sčítanec je vyšší než druhý
                    list.addAll(c1.getAllBoundingBoxs(x, y));
                    list.addAll(c2.getAllBoundingBoxs(x + c1.length() + 1, y + (int) (c1.height() / 2.0 - c2.height() / 2.0)));
                } else {
                    // Druhý sčítanec je vyšší než druhý
                    list.addAll(c1.getAllBoundingBoxs(x, y + (int) (c2.height() / 2.0 - c1.height() / 2.0)));
                    list.addAll(c2.getAllBoundingBoxs(x + c1.length() + 1, y));
                }
        }
        return list;
    }