diff --git a/ios/RCTARKit.h b/ios/RCTARKit.h index ea732b0d..34033e8b 100644 --- a/ios/RCTARKit.h +++ b/ios/RCTARKit.h @@ -53,6 +53,7 @@ typedef void (^RCTARKitReject)(NSString *code, NSString *message, NSError *error #pragma mark - Public Method - (void)pause; - (void)resume; +- (void)reset; - (void)hitTestPlane:(CGPoint)tapPoint types:(ARHitTestResultType)types resolve:(RCTARKitResolve)resolve reject:(RCTARKitReject)reject; - (void)hitTestSceneObjects:(CGPoint)tapPoint resolve:(RCTARKitResolve) resolve reject:(RCTARKitReject)reject; - (SCNVector3)projectPoint:(SCNVector3)point; diff --git a/ios/RCTARKit.m b/ios/RCTARKit.m index 9abc35bf..365c155a 100644 --- a/ios/RCTARKit.m +++ b/ios/RCTARKit.m @@ -98,6 +98,12 @@ - (void)resume { [self.session runWithConfiguration:self.configuration]; } +- (void)reset { + if (ARWorldTrackingConfiguration.isSupported) { + [self.session runWithConfiguration:self.configuration options:ARSessionRunOptionRemoveExistingAnchors | ARSessionRunOptionResetTracking]; + } +} + - (void)focusScene { [self.nodeManager.localOrigin setPosition:self.nodeManager.cameraOrigin.position]; [self.nodeManager.localOrigin setRotation:self.nodeManager.cameraOrigin.rotation]; diff --git a/ios/RCTARKitManager.m b/ios/RCTARKitManager.m index 5c220214..94d83311 100644 --- a/ios/RCTARKitManager.m +++ b/ios/RCTARKitManager.m @@ -63,6 +63,8 @@ - (NSDictionary *)constantsToExport RCT_EXPORT_VIEW_PROPERTY(onPlaneUpdate, RCTBubblingEventBlock) RCT_EXPORT_VIEW_PROPERTY(onTrackingState, RCTBubblingEventBlock) RCT_EXPORT_VIEW_PROPERTY(onFeaturesDetected, RCTBubblingEventBlock) +RCT_EXPORT_VIEW_PROPERTY(onTapOnPlaneUsingExtent, RCTBubblingEventBlock) +RCT_EXPORT_VIEW_PROPERTY(onTapOnPlaneNoExtent, RCTBubblingEventBlock) RCT_EXPORT_VIEW_PROPERTY(onEvent, RCTBubblingEventBlock) RCT_EXPORT_METHOD(pause:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { @@ -75,6 +77,11 @@ - (NSDictionary *)constantsToExport resolve(@{}); } +RCT_EXPORT_METHOD(reset:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) { + [[ARKit sharedInstance] reset]; + resolve(@{}); +} + RCT_EXPORT_METHOD( hitTestPlanes: (NSDictionary *)pointDict