У меня есть std::list типа Foo* и другой тип Bar* разного размера. Оба типа реализуют систему позиционирования, которая позволяет сортировать список по z-координате для порядка отрисовки (на самом деле просто точка со значениями x, y, z, при этом они сортируются с помощью функции меньше, чем Predicate, по значению z).
Помимо вышеперечисленного, они совершенно разные. Есть ли способ объединить списки, чтобы я мог сравнивать ВСЕ значения z друг с другом, а не только их собственные типы?
Прямо сейчас, например, либо все Foos отсортированы, либо все Bars отсортированы; затем рисуются либо все Foos, либо все Bars. Это приводит к тому, что даже если у Bar z меньше, чем у Foo, он будет нарисован сверху. Явно не ожидаемые последствия.
Пока я печатал это, у меня было прозрение, будет ли работать параллельная обработка? Отсортируйте каждый список отдельно, но затем поочередно рисуйте их, Foo, Bar, Foo, Bar и т. д., или это приведет к той же проблеме? Некоторые рисунки выше других независимо от значения z?
Спасибо.