В статье Расширенные октодеревья 2: представления узлов заявлено:
AABB узла может храниться явно, как и раньше, или его можно вычислить из глубины дерева узла, хранящейся неявно внутри кода местоположения. Чтобы получить глубину дерева в узле из его кода местоположения, требуется флаговый бит, указывающий на конец кода местоположения. Без такого флага было бы невозможно отличить, например, между 001 и 000 001. Используя бит 1 для обозначения конца последовательности, 1 001 можно легко отличить от 1 000 001. Использование такого флага эквивалентно установке кода местоположения корня октодерева в 1.
Код местоположения представляет собой 32-битное слово. То есть ... 001
и ... 000 001
могут быть равны, как говорит автор, если и только если все биты, следующие за первым примером, равны битам во втором примере.
Как маркировка конца последовательности помогает нам определить глубину узла в дереве?
Автор использует пример ... 1 001
и ... 1 000 001
. Имеет ли первый узел глубину 1, а второй — 2? Если да, то откуда мне знать? Код местоположения представляет собой 32-битное слово, поэтому биты, следующие за «флагом конца», могут следовать как ... 001 001
, что также является допустимым узлом.
Так что я действительно не понимаю, как сохранить в 32-битном слове как код местоположения, так и глубину узла в дереве.