Как «выровнять» или «индексировать» 3D-array в 1D массиве?

Я пытаюсь распрямить массив 3D 1D массив для системы «chunk» в моей игре. Это 3D-block игра, и в основном я хочу, чтобы система chunk была почти идентична системе Minecraft (однако, это не Minecraft клонировать по какой-либо мере). В моем предыдущем 2D-games я получил доступ к распрямленному массиву со следующим алгоритмом:

Tiles[x + y * WIDTH]

Однако это, очевидно, не работает с 3D, поскольку в нем отсутствует ось Z. Я понятия не имею, как реализовать такой алгоритм в 3D-space. Ширина, высота и глубина - все константы (а ширина равна высоте).

Это просто x + y * ШИРИНА + Z * DEPTH ? Я довольно плохо с математикой и я только начинаю 3D-programming так что я довольно потерян: |

PS. Причина этого в том, что я закольцовываю и получаю вещи по индексу из него довольно много. Я знаю, что 1D массивы быстрее, чем многомерные (по причинам, которые я не могу вспомнить: P). Несмотря на то, что это может быть не нужно, я хочу как можно более высокую производительность:)

-121--771417- Как в Android найти вызывающего метод эффективно Я строю инструмент тестирования/анализа, который требует инструментария классов Android рамки. В этом инструменте классы должны быть инструментализированы, чтобы узнать, кто вызывает метод (т.е. метод...

Я строю инструмент тестирования/анализа, который требует инструментария классов Android рамки. В этом инструменте классы должны быть инструментализированы для определения вызывающего абонента метода (т.е. сигнатуры метода), который в настоящее время выполняется, и на основе вызывающего абонента выполняется некоторая обработка. Мой вопрос в том, какой метод я должен использовать для определения вызывающего абонента?

Я знаю, что один из подходов заключается в использовании java.lang.Throwable и метода getStackTrace. Однако это неэффективно. Существуют ли другие (общедоступные или скрытые) API (подобные sun.reflect.Reflection.getCallerClass стандартного JDK) для платформы Android, которые можно использовать?

6
задан anand 9 September 2011 в 21:42
поделиться