Выравнивание модели на стене - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть hitResult относительно обнаруженной плоскости:

arFragment.setOnTapArPlaneListener(
    (HitResult hitResult, Plane plane, MotionEvent motionEvent) -> {...})

Я хочу привязать модель к плоскости, чтобы она всегда была обращена вверх (потолок):

Anchor anchor = plane.createAnchor(plane.getCenterPose());
AnchorNode anchorNode = new AnchorNode(anchor);
anchorNode.setRenderable(model);

Проблема в том, что модель иногда поворачивается случайным образом. Иногда он не указывает на потолок: он поворачивается на 180 градусов, на 90 градусов или случайно.

(по крайней мере, все это в эмуляторе).

1 Ответ

0 голосов
/ 27 сентября 2018

Вы можете использовать что-то вроде

boolean isVerticalPlane = plane.getType() == Plane.Type.VERTICAL;

внутри вашего setOnTapArPlaneListener из вашего ArFragment.

Финальный код будет:

ArFragment arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.ux_fragment);

arFragment.setOnTapArPlaneListener(new BaseArFragment.OnTapArPlaneListener() {
            @Override
            public void onTapPlane(HitResult hitResult, Plane plane, MotionEvent motionEvent) {
                boolean isVerticalPlane = plane.getType() == Plane.Type.VERTICAL;
            }
        });
...