sceneform-android-sdk icon indicating copy to clipboard operation
sceneform-android-sdk copied to clipboard

Unable to Update Line after dragging TransformableNode

Open sanidhya09 opened this issue 7 years ago • 1 comments

Hi, I have successfully drawn line between two TransformableNode. But when i drag the Node i am unable to update the drawn line. Below is my code .

`

arFragment.setOnTapArPlaneListener(

            (HitResult hitResult, Plane plane, MotionEvent motionEvent) -> {

                if (andyRenderable == null) {
                    return;
                }

                Anchor anchor = hitResult.createAnchor();
                AnchorNode lastAnchorNode = new AnchorNode(anchor);
                lastAnchorNode.setParent(arFragment.getArSceneView().getScene());

                TransformableNode transformableNode = new TransformableNode(arFragment.getTransformationSystem());
                transformableNode.setParent(lastAnchorNode);
                transformableNode.setRenderable(andyRenderable);
                transformableNode.select();
                transformableNode.addTransformChangedListener(new Node.TransformChangedListener() {
                    @Override
                    public void onTransformChanged(Node node, Node node1) {
                    }
                });
                addLineBetweenHits(transformableNode);
            });`

Below is my code to draw the lines.

` private void addLineBetweenHits(TransformableNode transformableNode) {

    if (this.transformableNode != null) {

        Vector3 point1, point2;
        point1 = this.transformableNode.getWorldPosition();
        point2 = transformableNode.getWorldPosition();
        final Vector3 difference = Vector3.subtract(point1, point2);
        final Vector3 directionFromTopToBottom = difference.normalized();
        final Quaternion rotationFromAToB = Quaternion.lookRotation(directionFromTopToBottom, Vector3.up());
        MaterialFactory.makeOpaqueWithColor(getApplicationContext(), new Color(0, 255, 244))
                .thenAccept(
                        material -> {
                            ModelRenderable model = ShapeFactory.makeCube(
                                    new Vector3(.01f, .01f, difference.length()),
                                    Vector3.zero(), material);
                            Node node = new Node();
                            node.setParent(this.transformableNode);
                            node.setRenderable(model);
                            node.setWorldPosition(Vector3.add(point1, point2).scaled(.5f));
                            node.setWorldRotation(rotationFromAToB);
                        }
                );
        this.transformableNode = transformableNode;
    } else {
        this.transformableNode = transformableNode;
    }
}`

sanidhya09 avatar Dec 12 '18 12:12 sanidhya09

@sanidhya09 any action on this?

chnouman avatar Apr 30 '20 08:04 chnouman