Как распознать жест вращения с помощью сцены ARcore (не AR)? - PullRequest
1 голос
/ 04 апреля 2019

Я хочу вращать визуализированные объекты в не AR сцене.TransformableNode позволяет мне вращать узлы только по горизонтали, но я хочу повернуть их по осям Y и Z.

У меня есть SceneView в моем макете, и я установил onTouchListener на его сцене для управления жестом.

Как мне управлять этими жестами?

private fun addNode(model: ModelRenderable?){
    val ts = TransformationSystem(resources.displayMetrics, FootprintSelectionVisualizer())

    model.let {
        node = TransformableNode(ts)
        node.setParent(scene)
        node.localPosition = Vector3(0f, -2f, -7f)
        node.localScale = Vector3(3f, 3f, 3f)
        node.worldScale = Vector3(5f, 5f, 5f)
        node.renderable=it
        node.rotationController.isEnabled = true
        node.scaleController.maxScale = 2f
        node.scaleController.minScale = 0.1f
        node.translationController.isEnabled = true
        scene.addChild(node)

        scene.setOnTouchListener { hitTestResult, motionEvent ->
            Log.d("ontouchScene", motionEvent.toString())

            ts.onTouch(hitTestResult, motionEvent )
            true
        }
    }
}

1 Ответ

1 голос
/ 05 апреля 2019

Представьте себе жест вращения.Вы кладете два пальца на экран и перемещаете их противоположными способами.Таким образом, чтобы сделать похожую функцию, вам нужно получить обе точки касания и проверить, круговое ли это движение и в противоположном ли направлении.

Хороший пример того, как это сделать, вы найдете здесь Android Вращение двумя пальцами

...