Как зарегистрировать обработчики изменений преобразования для TransformableNodes, вставленных при обнаружении плоскости? - PullRequest
0 голосов
/ 07 июня 2018

Я добавляю объекты на свою сцену в ARCore.Я использую тот же код (более или менее) из репозитория HelloSceneForm (https://github.com/google-ar/sceneform-android-sdk/blob/master/hellosceneform/app/src/main/java/com/google/ar/sceneform/samples/hellosceneform/HelloSceneformActivity.java)

Anchor anchor = hitResult.createAnchor();
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setParent(arFragment.getArSceneView().getScene());
TransformableNode object = new TransformableNode(arFragment.getTransformationSystem());
ScaleController scaleController = object.getScaleController();
scaleController.setMinScale(0.0F);
object.setParent(anchorNode);
object.setRenderable(loadedRenderable);
object.select();

Как только объект добавлен, я делаю некоторые преобразования на нем. Как я могу зарегистрировать обработчикчто уведомит меня об изменениях объекта (вращение, перемещение, масштабирование)?

Я вижу интерфейс GestureDetector.OnGestureListener(), но не вижу, как его можно подключить к TransformableNode.

И я не вижу, как я мог бы сохранить эти изменения и затем повторно применить их к объекту после того, как он вставлен. Например, я хотел бы записать масштабированный объект, сохранить масштаб как некоторый видзначение, а затем сможет повторно применить это масштабное значение к объекту, чтобы оно вернулось к масштабированному размеру в сцене. Я вижу, что могу получить ScaleController с кодом, подобным этому object.getScaleController(). Но интерфейс, который он предоставляет, кажется,чтобы дать руководство по взаимодействию шкалы, не извлекая фактические значения или устанавливая обработчики, когда происходят события шкалы.

Более конкретно, я хочу ввести сценарийтогда в обработчике setOnTapArPlaneListener, когда плоскость будет обнаружена, я добавлю объект.Затем я преобразую его и получу эти значения преобразования.Затем я покину сцену, сохранив эти значения преобразования.Если я снова войду в сцену, я хочу снова подождать, пока setOnTapArPlaneListener обнаружит плоскость, а затем добавить объект И значения преобразования, полученные ранее.Я понимаю, что могу обнаружить другой самолет, но я в порядке с этим.

...