Николай: габаритный контейнер (самый примитивный) выровнен по глобальным осям координат. Благодаря этому принципиально упрощается поиск пересечений. Меш может быть не выровнен по осям и там уже придётся просчитывать пересечения для каждого полигона в меше.
Если хочется прям вообще супер-супер просто и эффективно, то вместо габаритного куба используй габаритную сферу. Там вообще все расчёты сводятся к расстоянию от точки до плоскости. Проще просто некуда.
Михаил: Я писал по адресу, который был в уведомлении. Но меня заблокировали за то, что была ссылка на вторую версию моего же приложения. И мне дали обратно доступ, чтобы я новую версию выложил. Писать им на английском, разумеется.
И я сразу не подумал, у вас приложение это агрегатор новостей? Вроде бы по правилам маркета такие запрещены. И приложения, которые только доступ к сайту обеспечивают, тоже запрещены.
Михаил: Аккаунт сразу не заблокируют. Могут заблокировать приложение, пока не исправите проблему (у меня так было). После исправления приложение разблокировали.
Если по скриншотам будет явно видно, что вы не выдаёте своё приложение за чужое, то не должны заблокировать.
Не подскажите, есть ключик у ffmpeg, чтобы в начале не выводилась информация о самом ffmpeg, а сразу о видео статистика была? Чтобы парсить поменьше.
Запускаю командой "ffmpeg -i video.avi" и сперва выдаётся вот эта лапша, которая вообще не нужна:
Антон Жилин: Я говорю не про MoveAssignable. Например, есть два объекта, ссылающиехся друг на друга по указателям. Их можно сперва разместить в векторе, затем уже связать друг с другом. Но, после этого уже нельзя изменить размер вектора, потому что указатели могут перестать указывать друг на друга.
Xano: move ничем не поможет, если есть ссылки на адреса элементов, например. Если, при изменении размера вектора, невозможно выделить память там же, где она была до этого (типа realloc), то ни emplace, ни move-семантика не поможет. Нетривиальный конструктор копирования как бы намекает, что вектор скорее всего не подойдёт. За исключением случаев, когда копируемый объект может быть разрушен и это не нарушит связи между объектами.
fshp: reserve выделяет память, но не разрешает её использовать, пока не будут добавлены элементы. reserve и resize вообще абсолютно разные проблемы решают. Если вызов конструктора копирования неприемлем, то вектор вообще лучше не использовать, а выбрать list,queue,set.
Антон Жилин: Не reserve, а resize. После reserve нельзя обращаться по индексу, только пушбэками.
Проверки доступа будут, если использовать at, вместо []. Лучше использовать at, чтобы потом меньше страдать.)
Из кодеков, которые есть на конкретной системе. Если есть видео, то пользователь его как-то смотрит, т.е. кодек в системе есть.
ffmpeg можно собрать без кодеков, чтобы использовал установленные в системе, как делают всякие media player'ы?
BaryhaLASH: (занудствующе повторяю) GA ставится за 15 секунд + перезагрузка. Не ленись.) И сразу в защищённом режиме загружайся, чтобы драйвер DirectX поставить.
Игорь Николаевич: В зависимости от того, как представлены уровни "ячейки" могут подразумевать совершенно разную реализацию.
Самое банальное, делишь всю карту на одинаковые квадраты и в каждом "квадрате" хранишь список объектов, которые в него частично или полностью попадают (сравнивая габариты объекта с габаритами "квадрата"). Так же можешь погуглить про BSP деревья и многое другое... Но банальное разделение на квадраты проще всего реализовать. При условии, что у тебя карта полностью сформирована и сразу вся подгружается, то нужный "квадрат" получается из координат объекта, даже искать ничего не нужно. Если уровень динамически подгружается, то чуть сложнее реализовать.
BaryhaLASH: Есть образы, оптимизированные для установки с флешки/диска. В виртуалке их невозможно загрузить, потому что нужны физические адреса файлов, а их нет. Если в описании образа написано, что он только для флэшек, то он только для флэшек.
Ульрих: После установки Guest Additional и DirectX (через защищённый режим), работает вполне сносно. Как раз на уровне тех компьютеров, которые были в год выпуска игры.) Главное не жадничать с оперативкой и процессорами для виртуалки.
Torvald3d: Тут блокирование в смысле разделения на блоки, для локализации данных в кэше. Например, картинка 1000*1000 пикселей разрезается на квадраты по 100*100. И для пяти слоёв берутся соответствующие квадратики, лежащие друг над другом. Почти все стандартные алгоритмы основаны на разделении цельной картинки на фрагменты, чтобы оптимизировать их размещение в памяти. Кстати, это хорошо видно на сложных фильтрах, когда картинка по кусочкам обновляется.
Я изучал SDK для Photoshop CS2. Сейчас может и поменялось что-то, но вряд ли существенно.
Если хочется прям вообще супер-супер просто и эффективно, то вместо габаритного куба используй габаритную сферу. Там вообще все расчёты сводятся к расстоянию от точки до плоскости. Проще просто некуда.