Как сделать клики по части модели в Vuforia (без Unity)?

Я хочу сделать интерактивную ячейку палитры в Vuforia (без Unity), нажав на экране: введите описание изображения здесь

Я нашел пример Dominoes с аналогичной функциональностью и сделаю это:

  • создать один объект пластины и умножить объекты ячеек

  • вызывать функцию isTapOnSetColor с параметром x, y (координаты щелчка) при нажатии и получить координаты,

  • правильные, но неверное имя/имя части объектов

Я думаю, проблема с этой строкой:

boolean bool = checkIntersectionLine(matrix44F, lineStart, lineEnd);

В примере с Dominoes это было:

bool intersection = checkIntersectionLine(domino->pickingTransform, lineStart, lineEnd);

Но я не знаю, что делает domino->pickingTransform и вставляет вместо этой строки modelViewMatrix (Tool.convertPose2GLMatrix (trackableResult.getPose()). getData())

Полный код моей сенсорной функции: http://pastebin.com/My4CkxHa

Можете ли вы помочь мне сделать клики или может быть другим способом (не Unity) для этого?

Ответ 1

В принципе, domino->pickingTransform - это в значительной степени конечная матрица, которая рисуется для каждого объекта домино. Образец домино работает так, что для каждого объекта (домино) приложение проверяет проецируемую точку касания экрана и видит, пересекает ли она матрицу объекта. Маска выбора не совсем то же самое, поскольку вы хотите сделать ее более отзывчивой, поэтому вы делаете ее немного шире, чем матрица рисования.

Вы сказали, что получаете неправильный идентификатор, но вопрос в том, всегда ли он одинаковый идентификатор для разных ячеек? Если нет, это, вероятно, небольшая ошибка вычисления, которую вы сделали в своих матричных преобразованиях. Я бы предложил сделать визуальную отладку - добавьте графическую индикацию для обнаруженного идентификатора, чтобы вы могли видеть, в какой ячейке приложение, по вашему мнению, нажало. Это должно помочь вам перейти к решению.