diff --git a/android/build.gradle b/android/build.gradle index dbdff724..5c57eede 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -2,7 +2,7 @@ group 'io.carius.lars.ar_flutter_plugin' version '1.0-SNAPSHOT' buildscript { - ext.kotlin_version = '1.3.50' + ext.kotlin_version = '1.5.20' repositories { google() jcenter() diff --git a/example/lib/examples/cloudanchorexample.dart b/example/lib/examples/cloudanchorexample.dart index f90032df..5734087e 100644 --- a/example/lib/examples/cloudanchorexample.dart +++ b/example/lib/examples/cloudanchorexample.dart @@ -1,5 +1,3 @@ -import 'dart:convert'; - import 'package:ar_flutter_plugin/managers/ar_location_manager.dart'; import 'package:ar_flutter_plugin/managers/ar_session_manager.dart'; import 'package:ar_flutter_plugin/managers/ar_object_manager.dart'; @@ -236,33 +234,31 @@ class _CloudAnchorWidgetState extends State { List hitTestResults) async { var singleHitTestResult = hitTestResults.firstWhere( (hitTestResult) => hitTestResult.type == ARHitTestResultType.plane); - if (singleHitTestResult != null) { - var newAnchor = ARPlaneAnchor( - transformation: singleHitTestResult.worldTransform, ttl: 2); - bool? didAddAnchor = await this.arAnchorManager!.addAnchor(newAnchor); - if (didAddAnchor ?? false) { - this.anchors.add(newAnchor); - // Add note to anchor - var newNode = ARNode( - type: NodeType.webGLB, - uri: "https://github.com/KhronosGroup/glTF-Sample-Models/raw/master/2.0/Duck/glTF-Binary/Duck.glb", - scale: Vector3(0.2, 0.2, 0.2), - position: Vector3(0.0, 0.0, 0.0), - rotation: Vector4(1.0, 0.0, 0.0, 0.0), - data: {"onTapText": "Ouch, that hurt!"}); - bool? didAddNodeToAnchor = - await this.arObjectManager!.addNode(newNode, planeAnchor: newAnchor); - if (didAddNodeToAnchor ?? false) { - this.nodes.add(newNode); - setState(() { - readyToUpload = true; - }); - } else { - this.arSessionManager!.onError("Adding Node to Anchor failed"); - } + var newAnchor = ARPlaneAnchor( + transformation: singleHitTestResult.worldTransform, ttl: 2); + bool? didAddAnchor = await this.arAnchorManager!.addAnchor(newAnchor); + if (didAddAnchor ?? false) { + this.anchors.add(newAnchor); + // Add note to anchor + var newNode = ARNode( + type: NodeType.webGLB, + uri: "https://github.com/KhronosGroup/glTF-Sample-Models/raw/master/2.0/Duck/glTF-Binary/Duck.glb", + scale: Vector3(0.2, 0.2, 0.2), + position: Vector3(0.0, 0.0, 0.0), + rotation: Vector4(1.0, 0.0, 0.0, 0.0), + data: {"onTapText": "Ouch, that hurt!"}); + bool? didAddNodeToAnchor = + await this.arObjectManager!.addNode(newNode, planeAnchor: newAnchor); + if (didAddNodeToAnchor ?? false) { + this.nodes.add(newNode); + setState(() { + readyToUpload = true; + }); } else { - this.arSessionManager!.onError("Adding Anchor failed"); + this.arSessionManager!.onError("Adding Node to Anchor failed"); } + } else { + this.arSessionManager!.onError("Adding Anchor failed"); } } diff --git a/example/lib/examples/externalmodelmanagementexample.dart b/example/lib/examples/externalmodelmanagementexample.dart index 85e8cbe0..5d121120 100644 --- a/example/lib/examples/externalmodelmanagementexample.dart +++ b/example/lib/examples/externalmodelmanagementexample.dart @@ -1,5 +1,3 @@ -import 'dart:convert'; - import 'package:ar_flutter_plugin/managers/ar_location_manager.dart'; import 'package:ar_flutter_plugin/managers/ar_session_manager.dart'; import 'package:ar_flutter_plugin/managers/ar_object_manager.dart'; @@ -266,33 +264,31 @@ class _ExternalModelManagementWidgetState List hitTestResults) async { var singleHitTestResult = hitTestResults.firstWhere( (hitTestResult) => hitTestResult.type == ARHitTestResultType.plane); - if (singleHitTestResult != null) { - var newAnchor = ARPlaneAnchor( - transformation: singleHitTestResult.worldTransform, ttl: 2); - bool? didAddAnchor = await this.arAnchorManager!.addAnchor(newAnchor); - if (didAddAnchor!) { - this.anchors.add(newAnchor); - // Add note to anchor - var newNode = ARNode( - type: NodeType.webGLB, - uri: this.selectedModel.uri, - scale: VectorMath.Vector3(0.2, 0.2, 0.2), - position: VectorMath.Vector3(0.0, 0.0, 0.0), - rotation: VectorMath.Vector4(1.0, 0.0, 0.0, 0.0), - data: {"onTapText": "I am a " + this.selectedModel.name}); - bool? didAddNodeToAnchor = - await this.arObjectManager!.addNode(newNode, planeAnchor: newAnchor); - if (didAddNodeToAnchor!) { - this.nodes.add(newNode); - setState(() { - readyToUpload = true; - }); - } else { - this.arSessionManager!.onError("Adding Node to Anchor failed"); - } + var newAnchor = ARPlaneAnchor( + transformation: singleHitTestResult.worldTransform, ttl: 2); + bool? didAddAnchor = await this.arAnchorManager!.addAnchor(newAnchor); + if (didAddAnchor!) { + this.anchors.add(newAnchor); + // Add note to anchor + var newNode = ARNode( + type: NodeType.webGLB, + uri: this.selectedModel.uri, + scale: VectorMath.Vector3(0.2, 0.2, 0.2), + position: VectorMath.Vector3(0.0, 0.0, 0.0), + rotation: VectorMath.Vector4(1.0, 0.0, 0.0, 0.0), + data: {"onTapText": "I am a " + this.selectedModel.name}); + bool? didAddNodeToAnchor = + await this.arObjectManager!.addNode(newNode, planeAnchor: newAnchor); + if (didAddNodeToAnchor!) { + this.nodes.add(newNode); + setState(() { + readyToUpload = true; + }); } else { - this.arSessionManager!.onError("Adding Anchor failed"); + this.arSessionManager!.onError("Adding Node to Anchor failed"); } + } else { + this.arSessionManager!.onError("Adding Anchor failed"); } } diff --git a/example/lib/examples/objectgesturesexample.dart b/example/lib/examples/objectgesturesexample.dart index 6d9f42ae..15b80b0c 100644 --- a/example/lib/examples/objectgesturesexample.dart +++ b/example/lib/examples/objectgesturesexample.dart @@ -10,9 +10,7 @@ import 'package:ar_flutter_plugin/datatypes/node_types.dart'; import 'package:ar_flutter_plugin/datatypes/hittest_result_types.dart'; import 'package:ar_flutter_plugin/models/ar_node.dart'; import 'package:ar_flutter_plugin/models/ar_hittest_result.dart'; -import 'package:flutter/services.dart'; import 'package:vector_math/vector_math_64.dart'; -import 'dart:math'; class ObjectGesturesWidget extends StatefulWidget { ObjectGesturesWidget({Key? key}) : super(key: key); @@ -101,30 +99,28 @@ class _ObjectGesturesWidgetState extends State { List hitTestResults) async { var singleHitTestResult = hitTestResults.firstWhere( (hitTestResult) => hitTestResult.type == ARHitTestResultType.plane); - if (singleHitTestResult != null) { - var newAnchor = - ARPlaneAnchor(transformation: singleHitTestResult.worldTransform); - bool? didAddAnchor = await this.arAnchorManager!.addAnchor(newAnchor); - if (didAddAnchor!) { - this.anchors.add(newAnchor); - // Add note to anchor - var newNode = ARNode( - type: NodeType.webGLB, - uri: - "https://github.com/KhronosGroup/glTF-Sample-Models/raw/master/2.0/Duck/glTF-Binary/Duck.glb", - scale: Vector3(0.2, 0.2, 0.2), - position: Vector3(0.0, 0.0, 0.0), - rotation: Vector4(1.0, 0.0, 0.0, 0.0)); - bool? didAddNodeToAnchor = - await this.arObjectManager!.addNode(newNode, planeAnchor: newAnchor); - if (didAddNodeToAnchor!) { - this.nodes.add(newNode); - } else { - this.arSessionManager!.onError("Adding Node to Anchor failed"); - } + var newAnchor = + ARPlaneAnchor(transformation: singleHitTestResult.worldTransform); + bool? didAddAnchor = await this.arAnchorManager!.addAnchor(newAnchor); + if (didAddAnchor!) { + this.anchors.add(newAnchor); + // Add note to anchor + var newNode = ARNode( + type: NodeType.webGLB, + uri: + "https://github.com/KhronosGroup/glTF-Sample-Models/raw/master/2.0/Duck/glTF-Binary/Duck.glb", + scale: Vector3(0.2, 0.2, 0.2), + position: Vector3(0.0, 0.0, 0.0), + rotation: Vector4(1.0, 0.0, 0.0, 0.0)); + bool? didAddNodeToAnchor = + await this.arObjectManager!.addNode(newNode, planeAnchor: newAnchor); + if (didAddNodeToAnchor!) { + this.nodes.add(newNode); } else { - this.arSessionManager!.onError("Adding Anchor failed"); + this.arSessionManager!.onError("Adding Node to Anchor failed"); } + } else { + this.arSessionManager!.onError("Adding Anchor failed"); } } diff --git a/example/lib/examples/objectsonplanesexample.dart b/example/lib/examples/objectsonplanesexample.dart index e23e427d..7bdd27e0 100644 --- a/example/lib/examples/objectsonplanesexample.dart +++ b/example/lib/examples/objectsonplanesexample.dart @@ -10,9 +10,7 @@ import 'package:ar_flutter_plugin/datatypes/node_types.dart'; import 'package:ar_flutter_plugin/datatypes/hittest_result_types.dart'; import 'package:ar_flutter_plugin/models/ar_node.dart'; import 'package:ar_flutter_plugin/models/ar_hittest_result.dart'; -import 'package:flutter/services.dart'; import 'package:vector_math/vector_math_64.dart'; -import 'dart:math'; class ObjectsOnPlanesWidget extends StatefulWidget { ObjectsOnPlanesWidget({Key? key}) : super(key: key); @@ -99,41 +97,28 @@ class _ObjectsOnPlanesWidgetState extends State { List hitTestResults) async { var singleHitTestResult = hitTestResults.firstWhere( (hitTestResult) => hitTestResult.type == ARHitTestResultType.plane); - if (singleHitTestResult != null) { - var newAnchor = - ARPlaneAnchor(transformation: singleHitTestResult.worldTransform); - bool? didAddAnchor = await this.arAnchorManager!.addAnchor(newAnchor); - if (didAddAnchor!) { - this.anchors.add(newAnchor); - // Add note to anchor - var newNode = ARNode( - type: NodeType.webGLB, - uri: - "https://github.com/KhronosGroup/glTF-Sample-Models/raw/master/2.0/Duck/glTF-Binary/Duck.glb", - scale: Vector3(0.2, 0.2, 0.2), - position: Vector3(0.0, 0.0, 0.0), - rotation: Vector4(1.0, 0.0, 0.0, 0.0)); - bool? didAddNodeToAnchor = - await this.arObjectManager!.addNode(newNode, planeAnchor: newAnchor); - if (didAddNodeToAnchor!) { - this.nodes.add(newNode); - } else { - this.arSessionManager!.onError("Adding Node to Anchor failed"); - } - } else { - this.arSessionManager!.onError("Adding Anchor failed"); - } - /* - // To add a node to the tapped position without creating an anchor, use the following code (Please mind: the function onRemoveEverything has to be adapted accordingly!): + var newAnchor = + ARPlaneAnchor(transformation: singleHitTestResult.worldTransform); + bool? didAddAnchor = await this.arAnchorManager!.addAnchor(newAnchor); + if (didAddAnchor!) { + this.anchors.add(newAnchor); + // Add note to anchor var newNode = ARNode( - type: NodeType.localGLTF2, - uri: "Models/Chicken_01/Chicken_01.gltf", + type: NodeType.webGLB, + uri: + "https://github.com/KhronosGroup/glTF-Sample-Models/raw/master/2.0/Duck/glTF-Binary/Duck.glb", scale: Vector3(0.2, 0.2, 0.2), - transformation: singleHitTestResult.worldTransform); - bool didAddWebNode = await this.arObjectManager.addNode(newNode); - if (didAddWebNode) { + position: Vector3(0.0, 0.0, 0.0), + rotation: Vector4(1.0, 0.0, 0.0, 0.0)); + bool? didAddNodeToAnchor = + await this.arObjectManager!.addNode(newNode, planeAnchor: newAnchor); + if (didAddNodeToAnchor!) { this.nodes.add(newNode); - }*/ + } else { + this.arSessionManager!.onError("Adding Node to Anchor failed"); + } + } else { + this.arSessionManager!.onError("Adding Anchor failed"); } } } diff --git a/example/lib/examples/screenshotexample.dart b/example/lib/examples/screenshotexample.dart index dd3cfb5a..b7dce73e 100644 --- a/example/lib/examples/screenshotexample.dart +++ b/example/lib/examples/screenshotexample.dart @@ -116,42 +116,29 @@ class _ScreenshotWidgetState extends State { List hitTestResults) async { var singleHitTestResult = hitTestResults.firstWhere( (hitTestResult) => hitTestResult.type == ARHitTestResultType.plane); - if (singleHitTestResult != null) { - var newAnchor = - ARPlaneAnchor(transformation: singleHitTestResult.worldTransform); - bool? didAddAnchor = await arAnchorManager!.addAnchor(newAnchor); - if (didAddAnchor != null && didAddAnchor) { - anchors.add(newAnchor); - // Add note to anchor - var newNode = ARNode( - type: NodeType.webGLB, - uri: - "https://github.com/KhronosGroup/glTF-Sample-Models/raw/master/2.0/Duck/glTF-Binary/Duck.glb", - scale: Vector3(0.2, 0.2, 0.2), - position: Vector3(0.0, 0.0, 0.0), - rotation: Vector4(1.0, 0.0, 0.0, 0.0)); - bool? didAddNodeToAnchor = - await arObjectManager!.addNode(newNode, planeAnchor: newAnchor); - - if (didAddNodeToAnchor != null && didAddNodeToAnchor) { - nodes.add(newNode); - } else { - arSessionManager!.onError("Adding Node to Anchor failed"); - } - } else { - arSessionManager!.onError("Adding Anchor failed"); - } - /* - // To add a node to the tapped position without creating an anchor, use the following code (Please mind: the function onRemoveEverything has to be adapted accordingly!): + var newAnchor = + ARPlaneAnchor(transformation: singleHitTestResult.worldTransform); + bool? didAddAnchor = await arAnchorManager!.addAnchor(newAnchor); + if (didAddAnchor != null && didAddAnchor) { + anchors.add(newAnchor); + // Add note to anchor var newNode = ARNode( - type: NodeType.localGLTF2, - uri: "Models/Chicken_01/Chicken_01.gltf", + type: NodeType.webGLB, + uri: + "https://github.com/KhronosGroup/glTF-Sample-Models/raw/master/2.0/Duck/glTF-Binary/Duck.glb", scale: Vector3(0.2, 0.2, 0.2), - transformation: singleHitTestResult.worldTransform); - bool didAddWebNode = await this.arObjectManager.addNode(newNode); - if (didAddWebNode) { - this.nodes.add(newNode); - }*/ + position: Vector3(0.0, 0.0, 0.0), + rotation: Vector4(1.0, 0.0, 0.0, 0.0)); + bool? didAddNodeToAnchor = + await arObjectManager!.addNode(newNode, planeAnchor: newAnchor); + + if (didAddNodeToAnchor != null && didAddNodeToAnchor) { + nodes.add(newNode); + } else { + arSessionManager!.onError("Adding Node to Anchor failed"); + } + } else { + arSessionManager!.onError("Adding Anchor failed"); } } } \ No newline at end of file