react-native-nitro-ar 2026.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/README.md +347 -0
  2. package/app.plugin.js +24 -0
  3. package/ios/Bridge.h +8 -0
  4. package/ios/HybridARAnchor.swift +58 -0
  5. package/ios/HybridARBoundingBoxBuilder.swift +142 -0
  6. package/ios/HybridARDepthData.swift +138 -0
  7. package/ios/HybridARFrame.swift +121 -0
  8. package/ios/HybridARLightEstimate.swift +58 -0
  9. package/ios/HybridARMeasurement.swift +33 -0
  10. package/ios/HybridARMeshAnchor.swift +108 -0
  11. package/ios/HybridARPlaneAnchor.swift +114 -0
  12. package/ios/HybridARRaycastResult.swift +53 -0
  13. package/ios/HybridARSession.swift +505 -0
  14. package/ios/HybridARView.swift +725 -0
  15. package/ios/HybridARVolume.swift +52 -0
  16. package/ios/HybridARWorldMap.swift +55 -0
  17. package/lib/commonjs/index.js +24 -0
  18. package/lib/commonjs/index.js.map +1 -0
  19. package/lib/commonjs/package.json +3 -0
  20. package/lib/commonjs/specs/ARAnchor.nitro.js +6 -0
  21. package/lib/commonjs/specs/ARAnchor.nitro.js.map +1 -0
  22. package/lib/commonjs/specs/ARBoundingBoxBuilder.nitro.js +6 -0
  23. package/lib/commonjs/specs/ARBoundingBoxBuilder.nitro.js.map +1 -0
  24. package/lib/commonjs/specs/ARDepthData.nitro.js +6 -0
  25. package/lib/commonjs/specs/ARDepthData.nitro.js.map +1 -0
  26. package/lib/commonjs/specs/ARFrame.nitro.js +6 -0
  27. package/lib/commonjs/specs/ARFrame.nitro.js.map +1 -0
  28. package/lib/commonjs/specs/ARLightEstimate.nitro.js +6 -0
  29. package/lib/commonjs/specs/ARLightEstimate.nitro.js.map +1 -0
  30. package/lib/commonjs/specs/ARMeasurement.nitro.js +6 -0
  31. package/lib/commonjs/specs/ARMeasurement.nitro.js.map +1 -0
  32. package/lib/commonjs/specs/ARPlaneAnchor.nitro.js +6 -0
  33. package/lib/commonjs/specs/ARPlaneAnchor.nitro.js.map +1 -0
  34. package/lib/commonjs/specs/ARRaycastResult.nitro.js +6 -0
  35. package/lib/commonjs/specs/ARRaycastResult.nitro.js.map +1 -0
  36. package/lib/commonjs/specs/ARSceneMesh.nitro.js +6 -0
  37. package/lib/commonjs/specs/ARSceneMesh.nitro.js.map +1 -0
  38. package/lib/commonjs/specs/ARSession.nitro.js +6 -0
  39. package/lib/commonjs/specs/ARSession.nitro.js.map +1 -0
  40. package/lib/commonjs/specs/ARView.nitro.js +6 -0
  41. package/lib/commonjs/specs/ARView.nitro.js.map +1 -0
  42. package/lib/commonjs/specs/ARVolume.nitro.js +6 -0
  43. package/lib/commonjs/specs/ARVolume.nitro.js.map +1 -0
  44. package/lib/commonjs/specs/ARWorldMap.nitro.js +6 -0
  45. package/lib/commonjs/specs/ARWorldMap.nitro.js.map +1 -0
  46. package/lib/module/index.js +18 -0
  47. package/lib/module/index.js.map +1 -0
  48. package/lib/module/specs/ARAnchor.nitro.js +4 -0
  49. package/lib/module/specs/ARAnchor.nitro.js.map +1 -0
  50. package/lib/module/specs/ARBoundingBoxBuilder.nitro.js +4 -0
  51. package/lib/module/specs/ARBoundingBoxBuilder.nitro.js.map +1 -0
  52. package/lib/module/specs/ARDepthData.nitro.js +4 -0
  53. package/lib/module/specs/ARDepthData.nitro.js.map +1 -0
  54. package/lib/module/specs/ARFrame.nitro.js +4 -0
  55. package/lib/module/specs/ARFrame.nitro.js.map +1 -0
  56. package/lib/module/specs/ARLightEstimate.nitro.js +4 -0
  57. package/lib/module/specs/ARLightEstimate.nitro.js.map +1 -0
  58. package/lib/module/specs/ARMeasurement.nitro.js +4 -0
  59. package/lib/module/specs/ARMeasurement.nitro.js.map +1 -0
  60. package/lib/module/specs/ARPlaneAnchor.nitro.js +4 -0
  61. package/lib/module/specs/ARPlaneAnchor.nitro.js.map +1 -0
  62. package/lib/module/specs/ARRaycastResult.nitro.js +4 -0
  63. package/lib/module/specs/ARRaycastResult.nitro.js.map +1 -0
  64. package/lib/module/specs/ARSceneMesh.nitro.js +4 -0
  65. package/lib/module/specs/ARSceneMesh.nitro.js.map +1 -0
  66. package/lib/module/specs/ARSession.nitro.js +4 -0
  67. package/lib/module/specs/ARSession.nitro.js.map +1 -0
  68. package/lib/module/specs/ARView.nitro.js +4 -0
  69. package/lib/module/specs/ARView.nitro.js.map +1 -0
  70. package/lib/module/specs/ARVolume.nitro.js +4 -0
  71. package/lib/module/specs/ARVolume.nitro.js.map +1 -0
  72. package/lib/module/specs/ARWorldMap.nitro.js +4 -0
  73. package/lib/module/specs/ARWorldMap.nitro.js.map +1 -0
  74. package/lib/typescript/src/index.d.ts +20 -0
  75. package/lib/typescript/src/index.d.ts.map +1 -0
  76. package/lib/typescript/src/specs/ARAnchor.nitro.d.ts +18 -0
  77. package/lib/typescript/src/specs/ARAnchor.nitro.d.ts.map +1 -0
  78. package/lib/typescript/src/specs/ARBoundingBoxBuilder.nitro.d.ts +11 -0
  79. package/lib/typescript/src/specs/ARBoundingBoxBuilder.nitro.d.ts.map +1 -0
  80. package/lib/typescript/src/specs/ARDepthData.nitro.d.ts +26 -0
  81. package/lib/typescript/src/specs/ARDepthData.nitro.d.ts.map +1 -0
  82. package/lib/typescript/src/specs/ARFrame.nitro.d.ts +32 -0
  83. package/lib/typescript/src/specs/ARFrame.nitro.d.ts.map +1 -0
  84. package/lib/typescript/src/specs/ARLightEstimate.nitro.d.ts +18 -0
  85. package/lib/typescript/src/specs/ARLightEstimate.nitro.d.ts.map +1 -0
  86. package/lib/typescript/src/specs/ARMeasurement.nitro.d.ts +11 -0
  87. package/lib/typescript/src/specs/ARMeasurement.nitro.d.ts.map +1 -0
  88. package/lib/typescript/src/specs/ARPlaneAnchor.nitro.d.ts +32 -0
  89. package/lib/typescript/src/specs/ARPlaneAnchor.nitro.d.ts.map +1 -0
  90. package/lib/typescript/src/specs/ARRaycastResult.nitro.d.ts +26 -0
  91. package/lib/typescript/src/specs/ARRaycastResult.nitro.d.ts.map +1 -0
  92. package/lib/typescript/src/specs/ARSceneMesh.nitro.d.ts +47 -0
  93. package/lib/typescript/src/specs/ARSceneMesh.nitro.d.ts.map +1 -0
  94. package/lib/typescript/src/specs/ARSession.nitro.d.ts +75 -0
  95. package/lib/typescript/src/specs/ARSession.nitro.d.ts.map +1 -0
  96. package/lib/typescript/src/specs/ARView.nitro.d.ts +51 -0
  97. package/lib/typescript/src/specs/ARView.nitro.d.ts.map +1 -0
  98. package/lib/typescript/src/specs/ARVolume.nitro.d.ts +14 -0
  99. package/lib/typescript/src/specs/ARVolume.nitro.d.ts.map +1 -0
  100. package/lib/typescript/src/specs/ARWorldMap.nitro.d.ts +17 -0
  101. package/lib/typescript/src/specs/ARWorldMap.nitro.d.ts.map +1 -0
  102. package/nitro.json +23 -0
  103. package/nitrogen/generated/.gitattributes +1 -0
  104. package/nitrogen/generated/ios/NitroAR+autolinking.rb +60 -0
  105. package/nitrogen/generated/ios/NitroAR-Swift-Cxx-Bridge.cpp +335 -0
  106. package/nitrogen/generated/ios/NitroAR-Swift-Cxx-Bridge.hpp +934 -0
  107. package/nitrogen/generated/ios/NitroAR-Swift-Cxx-Umbrella.hpp +169 -0
  108. package/nitrogen/generated/ios/NitroARAutolinking.mm +49 -0
  109. package/nitrogen/generated/ios/NitroARAutolinking.swift +50 -0
  110. package/nitrogen/generated/ios/c++/HybridARAnchorSpecSwift.cpp +11 -0
  111. package/nitrogen/generated/ios/c++/HybridARAnchorSpecSwift.hpp +99 -0
  112. package/nitrogen/generated/ios/c++/HybridARBoundingBoxBuilderSpecSwift.cpp +11 -0
  113. package/nitrogen/generated/ios/c++/HybridARBoundingBoxBuilderSpecSwift.hpp +95 -0
  114. package/nitrogen/generated/ios/c++/HybridARDepthDataSpecSwift.cpp +11 -0
  115. package/nitrogen/generated/ios/c++/HybridARDepthDataSpecSwift.hpp +103 -0
  116. package/nitrogen/generated/ios/c++/HybridARDirectionalLightEstimateSpecSwift.cpp +11 -0
  117. package/nitrogen/generated/ios/c++/HybridARDirectionalLightEstimateSpecSwift.hpp +88 -0
  118. package/nitrogen/generated/ios/c++/HybridARFrameSpecSwift.cpp +11 -0
  119. package/nitrogen/generated/ios/c++/HybridARFrameSpecSwift.hpp +135 -0
  120. package/nitrogen/generated/ios/c++/HybridARLightEstimateSpecSwift.cpp +11 -0
  121. package/nitrogen/generated/ios/c++/HybridARLightEstimateSpecSwift.hpp +80 -0
  122. package/nitrogen/generated/ios/c++/HybridARMeasurementSpecSwift.cpp +11 -0
  123. package/nitrogen/generated/ios/c++/HybridARMeasurementSpecSwift.hpp +90 -0
  124. package/nitrogen/generated/ios/c++/HybridARMeshAnchorSpecSwift.cpp +11 -0
  125. package/nitrogen/generated/ios/c++/HybridARMeshAnchorSpecSwift.hpp +107 -0
  126. package/nitrogen/generated/ios/c++/HybridARPlaneAnchorSpecSwift.cpp +11 -0
  127. package/nitrogen/generated/ios/c++/HybridARPlaneAnchorSpecSwift.hpp +116 -0
  128. package/nitrogen/generated/ios/c++/HybridARPlaneGeometrySpecSwift.cpp +11 -0
  129. package/nitrogen/generated/ios/c++/HybridARPlaneGeometrySpecSwift.hpp +90 -0
  130. package/nitrogen/generated/ios/c++/HybridARRaycastResultSpecSwift.cpp +11 -0
  131. package/nitrogen/generated/ios/c++/HybridARRaycastResultSpecSwift.hpp +97 -0
  132. package/nitrogen/generated/ios/c++/HybridARSessionSpecSwift.cpp +11 -0
  133. package/nitrogen/generated/ios/c++/HybridARSessionSpecSwift.hpp +296 -0
  134. package/nitrogen/generated/ios/c++/HybridARViewSpecSwift.cpp +11 -0
  135. package/nitrogen/generated/ios/c++/HybridARViewSpecSwift.hpp +243 -0
  136. package/nitrogen/generated/ios/c++/HybridARVolumeSpecSwift.cpp +11 -0
  137. package/nitrogen/generated/ios/c++/HybridARVolumeSpecSwift.hpp +94 -0
  138. package/nitrogen/generated/ios/c++/HybridARWorldMapSpecSwift.cpp +11 -0
  139. package/nitrogen/generated/ios/c++/HybridARWorldMapSpecSwift.hpp +97 -0
  140. package/nitrogen/generated/ios/c++/views/HybridARViewComponent.mm +152 -0
  141. package/nitrogen/generated/ios/swift/ARSessionConfiguration.swift +189 -0
  142. package/nitrogen/generated/ios/swift/ARViewHitResult.swift +39 -0
  143. package/nitrogen/generated/ios/swift/CameraPose.swift +46 -0
  144. package/nitrogen/generated/ios/swift/EnvironmentTexturing.swift +44 -0
  145. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  146. package/nitrogen/generated/ios/swift/Func_void_TrackingState_TrackingStateReason.swift +46 -0
  147. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  148. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridARFrameSpec_.swift +50 -0
  149. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_HybridARWorldMapSpec_.swift +50 -0
  150. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__shared_ptr_HybridARAnchorSpec___std__vector_std__shared_ptr_HybridARAnchorSpec___std__vector_std__string_.swift +54 -0
  151. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__shared_ptr_HybridARMeshAnchorSpec___std__vector_std__shared_ptr_HybridARMeshAnchorSpec___std__vector_std__string_.swift +54 -0
  152. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__shared_ptr_HybridARPlaneAnchorSpec___std__vector_std__shared_ptr_HybridARPlaneAnchorSpec___std__vector_std__string_.swift +54 -0
  153. package/nitrogen/generated/ios/swift/HybridARAnchorSpec.swift +60 -0
  154. package/nitrogen/generated/ios/swift/HybridARAnchorSpec_cxx.swift +192 -0
  155. package/nitrogen/generated/ios/swift/HybridARBoundingBoxBuilderSpec.swift +56 -0
  156. package/nitrogen/generated/ios/swift/HybridARBoundingBoxBuilderSpec_cxx.swift +161 -0
  157. package/nitrogen/generated/ios/swift/HybridARDepthDataSpec.swift +59 -0
  158. package/nitrogen/generated/ios/swift/HybridARDepthDataSpec_cxx.swift +188 -0
  159. package/nitrogen/generated/ios/swift/HybridARDirectionalLightEstimateSpec.swift +57 -0
  160. package/nitrogen/generated/ios/swift/HybridARDirectionalLightEstimateSpec_cxx.swift +162 -0
  161. package/nitrogen/generated/ios/swift/HybridARFrameSpec.swift +65 -0
  162. package/nitrogen/generated/ios/swift/HybridARFrameSpec_cxx.swift +285 -0
  163. package/nitrogen/generated/ios/swift/HybridARLightEstimateSpec.swift +56 -0
  164. package/nitrogen/generated/ios/swift/HybridARLightEstimateSpec_cxx.swift +140 -0
  165. package/nitrogen/generated/ios/swift/HybridARMeasurementSpec.swift +58 -0
  166. package/nitrogen/generated/ios/swift/HybridARMeasurementSpec_cxx.swift +160 -0
  167. package/nitrogen/generated/ios/swift/HybridARMeshAnchorSpec.swift +62 -0
  168. package/nitrogen/generated/ios/swift/HybridARMeshAnchorSpec_cxx.swift +212 -0
  169. package/nitrogen/generated/ios/swift/HybridARPlaneAnchorSpec.swift +62 -0
  170. package/nitrogen/generated/ios/swift/HybridARPlaneAnchorSpec_cxx.swift +209 -0
  171. package/nitrogen/generated/ios/swift/HybridARPlaneGeometrySpec.swift +58 -0
  172. package/nitrogen/generated/ios/swift/HybridARPlaneGeometrySpec_cxx.swift +178 -0
  173. package/nitrogen/generated/ios/swift/HybridARRaycastResultSpec.swift +59 -0
  174. package/nitrogen/generated/ios/swift/HybridARRaycastResultSpec_cxx.swift +179 -0
  175. package/nitrogen/generated/ios/swift/HybridARSessionSpec.swift +78 -0
  176. package/nitrogen/generated/ios/swift/HybridARSessionSpec_cxx.swift +591 -0
  177. package/nitrogen/generated/ios/swift/HybridARViewSpec.swift +78 -0
  178. package/nitrogen/generated/ios/swift/HybridARViewSpec_cxx.swift +561 -0
  179. package/nitrogen/generated/ios/swift/HybridARVolumeSpec.swift +60 -0
  180. package/nitrogen/generated/ios/swift/HybridARVolumeSpec_cxx.swift +180 -0
  181. package/nitrogen/generated/ios/swift/HybridARWorldMapSpec.swift +58 -0
  182. package/nitrogen/generated/ios/swift/HybridARWorldMapSpec_cxx.swift +176 -0
  183. package/nitrogen/generated/ios/swift/LiDARCapabilities.swift +39 -0
  184. package/nitrogen/generated/ios/swift/MeshClassification.swift +64 -0
  185. package/nitrogen/generated/ios/swift/PlaneAlignment.swift +40 -0
  186. package/nitrogen/generated/ios/swift/PlaneClassification.swift +64 -0
  187. package/nitrogen/generated/ios/swift/PlaneDetectionMode.swift +40 -0
  188. package/nitrogen/generated/ios/swift/RaycastAlignment.swift +44 -0
  189. package/nitrogen/generated/ios/swift/RaycastQuery.swift +44 -0
  190. package/nitrogen/generated/ios/swift/RaycastTarget.swift +48 -0
  191. package/nitrogen/generated/ios/swift/SceneReconstructionMode.swift +44 -0
  192. package/nitrogen/generated/ios/swift/TrackingState.swift +44 -0
  193. package/nitrogen/generated/ios/swift/TrackingStateReason.swift +52 -0
  194. package/nitrogen/generated/ios/swift/WorldAlignment.swift +44 -0
  195. package/nitrogen/generated/ios/swift/WorldMappingStatus.swift +48 -0
  196. package/nitrogen/generated/shared/c++/ARSessionConfiguration.hpp +132 -0
  197. package/nitrogen/generated/shared/c++/ARViewHitResult.hpp +91 -0
  198. package/nitrogen/generated/shared/c++/CameraPose.hpp +87 -0
  199. package/nitrogen/generated/shared/c++/EnvironmentTexturing.hpp +80 -0
  200. package/nitrogen/generated/shared/c++/HybridARAnchorSpec.cpp +26 -0
  201. package/nitrogen/generated/shared/c++/HybridARAnchorSpec.hpp +69 -0
  202. package/nitrogen/generated/shared/c++/HybridARBoundingBoxBuilderSpec.cpp +23 -0
  203. package/nitrogen/generated/shared/c++/HybridARBoundingBoxBuilderSpec.hpp +68 -0
  204. package/nitrogen/generated/shared/c++/HybridARDepthDataSpec.cpp +26 -0
  205. package/nitrogen/generated/shared/c++/HybridARDepthDataSpec.hpp +66 -0
  206. package/nitrogen/generated/shared/c++/HybridARDirectionalLightEstimateSpec.cpp +24 -0
  207. package/nitrogen/generated/shared/c++/HybridARDirectionalLightEstimateSpec.hpp +67 -0
  208. package/nitrogen/generated/shared/c++/HybridARFrameSpec.cpp +32 -0
  209. package/nitrogen/generated/shared/c++/HybridARFrameSpec.hpp +83 -0
  210. package/nitrogen/generated/shared/c++/HybridARLightEstimateSpec.cpp +22 -0
  211. package/nitrogen/generated/shared/c++/HybridARLightEstimateSpec.hpp +63 -0
  212. package/nitrogen/generated/shared/c++/HybridARMeasurementSpec.cpp +24 -0
  213. package/nitrogen/generated/shared/c++/HybridARMeasurementSpec.hpp +67 -0
  214. package/nitrogen/generated/shared/c++/HybridARMeshAnchorSpec.cpp +28 -0
  215. package/nitrogen/generated/shared/c++/HybridARMeshAnchorSpec.hpp +72 -0
  216. package/nitrogen/generated/shared/c++/HybridARPlaneAnchorSpec.cpp +28 -0
  217. package/nitrogen/generated/shared/c++/HybridARPlaneAnchorSpec.hpp +79 -0
  218. package/nitrogen/generated/shared/c++/HybridARPlaneGeometrySpec.cpp +24 -0
  219. package/nitrogen/generated/shared/c++/HybridARPlaneGeometrySpec.hpp +65 -0
  220. package/nitrogen/generated/shared/c++/HybridARRaycastResultSpec.cpp +25 -0
  221. package/nitrogen/generated/shared/c++/HybridARRaycastResultSpec.hpp +70 -0
  222. package/nitrogen/generated/shared/c++/HybridARSessionSpec.cpp +45 -0
  223. package/nitrogen/generated/shared/c++/HybridARSessionSpec.hpp +131 -0
  224. package/nitrogen/generated/shared/c++/HybridARViewSpec.cpp +55 -0
  225. package/nitrogen/generated/shared/c++/HybridARViewSpec.hpp +101 -0
  226. package/nitrogen/generated/shared/c++/HybridARVolumeSpec.cpp +26 -0
  227. package/nitrogen/generated/shared/c++/HybridARVolumeSpec.hpp +67 -0
  228. package/nitrogen/generated/shared/c++/HybridARWorldMapSpec.cpp +25 -0
  229. package/nitrogen/generated/shared/c++/HybridARWorldMapSpec.hpp +66 -0
  230. package/nitrogen/generated/shared/c++/LiDARCapabilities.hpp +91 -0
  231. package/nitrogen/generated/shared/c++/MeshClassification.hpp +100 -0
  232. package/nitrogen/generated/shared/c++/PlaneAlignment.hpp +76 -0
  233. package/nitrogen/generated/shared/c++/PlaneClassification.hpp +100 -0
  234. package/nitrogen/generated/shared/c++/PlaneDetectionMode.hpp +76 -0
  235. package/nitrogen/generated/shared/c++/RaycastAlignment.hpp +80 -0
  236. package/nitrogen/generated/shared/c++/RaycastQuery.hpp +99 -0
  237. package/nitrogen/generated/shared/c++/RaycastTarget.hpp +84 -0
  238. package/nitrogen/generated/shared/c++/SceneReconstructionMode.hpp +80 -0
  239. package/nitrogen/generated/shared/c++/TrackingState.hpp +80 -0
  240. package/nitrogen/generated/shared/c++/TrackingStateReason.hpp +88 -0
  241. package/nitrogen/generated/shared/c++/WorldAlignment.hpp +80 -0
  242. package/nitrogen/generated/shared/c++/WorldMappingStatus.hpp +84 -0
  243. package/nitrogen/generated/shared/c++/views/HybridARViewComponent.cpp +182 -0
  244. package/nitrogen/generated/shared/c++/views/HybridARViewComponent.hpp +120 -0
  245. package/nitrogen/generated/shared/json/ARViewConfig.json +19 -0
  246. package/package.json +98 -0
  247. package/react-native-nitro-ar.podspec +40 -0
  248. package/src/index.ts +60 -0
  249. package/src/specs/ARAnchor.nitro.ts +21 -0
  250. package/src/specs/ARBoundingBoxBuilder.nitro.ts +11 -0
  251. package/src/specs/ARDepthData.nitro.ts +29 -0
  252. package/src/specs/ARFrame.nitro.ts +41 -0
  253. package/src/specs/ARLightEstimate.nitro.ts +20 -0
  254. package/src/specs/ARMeasurement.nitro.ts +10 -0
  255. package/src/specs/ARPlaneAnchor.nitro.ts +46 -0
  256. package/src/specs/ARRaycastResult.nitro.ts +32 -0
  257. package/src/specs/ARSceneMesh.nitro.ts +63 -0
  258. package/src/specs/ARSession.nitro.ts +112 -0
  259. package/src/specs/ARView.nitro.ts +84 -0
  260. package/src/specs/ARVolume.nitro.ts +15 -0
  261. package/src/specs/ARWorldMap.nitro.ts +20 -0
@@ -0,0 +1,138 @@
1
+ import ARKit
2
+ import NitroModules
3
+
4
+ @available(iOS 14.0, *)
5
+ final class HybridARDepthData: HybridARDepthDataSpec {
6
+ private let depthData: ARDepthData
7
+
8
+ init(depthData: ARDepthData) {
9
+ self.depthData = depthData
10
+ }
11
+
12
+ var width: Double {
13
+ Double(CVPixelBufferGetWidth(depthData.depthMap))
14
+ }
15
+
16
+ var height: Double {
17
+ Double(CVPixelBufferGetHeight(depthData.depthMap))
18
+ }
19
+
20
+ var depthMap: [Double] {
21
+ extractFloatBuffer(depthData.depthMap)
22
+ }
23
+
24
+ var confidenceMap: [Double] {
25
+ guard let confidence = depthData.confidenceMap else {
26
+ return []
27
+ }
28
+ return extractUInt8Buffer(confidence)
29
+ }
30
+
31
+ func getDepthAt(x: Double, y: Double) -> Double {
32
+ let buffer = depthData.depthMap
33
+ let w = CVPixelBufferGetWidth(buffer)
34
+ let h = CVPixelBufferGetHeight(buffer)
35
+
36
+ let px = Int(x * Double(w - 1))
37
+ let py = Int(y * Double(h - 1))
38
+
39
+ guard px >= 0, px < w, py >= 0, py < h else {
40
+ return 0
41
+ }
42
+
43
+ CVPixelBufferLockBaseAddress(buffer, .readOnly)
44
+ defer { CVPixelBufferUnlockBaseAddress(buffer, .readOnly) }
45
+
46
+ guard let baseAddress = CVPixelBufferGetBaseAddress(buffer) else {
47
+ return 0
48
+ }
49
+
50
+ let bytesPerRow = CVPixelBufferGetBytesPerRow(buffer)
51
+ let floatBuffer = baseAddress.assumingMemoryBound(to: Float32.self)
52
+ let index = py * (bytesPerRow / MemoryLayout<Float32>.size) + px
53
+
54
+ return Double(floatBuffer[index])
55
+ }
56
+
57
+ func getConfidenceAt(x: Double, y: Double) -> Double {
58
+ guard let confidence = depthData.confidenceMap else {
59
+ return 0
60
+ }
61
+
62
+ let w = CVPixelBufferGetWidth(confidence)
63
+ let h = CVPixelBufferGetHeight(confidence)
64
+
65
+ let px = Int(x * Double(w - 1))
66
+ let py = Int(y * Double(h - 1))
67
+
68
+ guard px >= 0, px < w, py >= 0, py < h else {
69
+ return 0
70
+ }
71
+
72
+ CVPixelBufferLockBaseAddress(confidence, .readOnly)
73
+ defer { CVPixelBufferUnlockBaseAddress(confidence, .readOnly) }
74
+
75
+ guard let baseAddress = CVPixelBufferGetBaseAddress(confidence) else {
76
+ return 0
77
+ }
78
+
79
+ let bytesPerRow = CVPixelBufferGetBytesPerRow(confidence)
80
+ let uint8Buffer = baseAddress.assumingMemoryBound(to: UInt8.self)
81
+ let index = py * bytesPerRow + px
82
+
83
+ return Double(uint8Buffer[index])
84
+ }
85
+
86
+ private func extractFloatBuffer(_ buffer: CVPixelBuffer) -> [Double] {
87
+ CVPixelBufferLockBaseAddress(buffer, .readOnly)
88
+ defer { CVPixelBufferUnlockBaseAddress(buffer, .readOnly) }
89
+
90
+ let w = CVPixelBufferGetWidth(buffer)
91
+ let h = CVPixelBufferGetHeight(buffer)
92
+ let bytesPerRow = CVPixelBufferGetBytesPerRow(buffer)
93
+
94
+ guard let baseAddress = CVPixelBufferGetBaseAddress(buffer) else {
95
+ return []
96
+ }
97
+
98
+ var result: [Double] = []
99
+ result.reserveCapacity(w * h)
100
+
101
+ let floatBuffer = baseAddress.assumingMemoryBound(to: Float32.self)
102
+ let stride = bytesPerRow / MemoryLayout<Float32>.size
103
+
104
+ for y in 0..<h {
105
+ for x in 0..<w {
106
+ result.append(Double(floatBuffer[y * stride + x]))
107
+ }
108
+ }
109
+
110
+ return result
111
+ }
112
+
113
+ private func extractUInt8Buffer(_ buffer: CVPixelBuffer) -> [Double] {
114
+ CVPixelBufferLockBaseAddress(buffer, .readOnly)
115
+ defer { CVPixelBufferUnlockBaseAddress(buffer, .readOnly) }
116
+
117
+ let w = CVPixelBufferGetWidth(buffer)
118
+ let h = CVPixelBufferGetHeight(buffer)
119
+ let bytesPerRow = CVPixelBufferGetBytesPerRow(buffer)
120
+
121
+ guard let baseAddress = CVPixelBufferGetBaseAddress(buffer) else {
122
+ return []
123
+ }
124
+
125
+ var result: [Double] = []
126
+ result.reserveCapacity(w * h)
127
+
128
+ let uint8Buffer = baseAddress.assumingMemoryBound(to: UInt8.self)
129
+
130
+ for y in 0..<h {
131
+ for x in 0..<w {
132
+ result.append(Double(uint8Buffer[y * bytesPerRow + x]))
133
+ }
134
+ }
135
+
136
+ return result
137
+ }
138
+ }
@@ -0,0 +1,121 @@
1
+ import ARKit
2
+ import NitroModules
3
+ import simd
4
+
5
+ final class HybridARFrame: HybridARFrameSpec {
6
+ private let frame: ARFrame
7
+
8
+ init(frame: ARFrame) {
9
+ self.frame = frame
10
+ }
11
+
12
+ var timestamp: Double {
13
+ frame.timestamp
14
+ }
15
+
16
+ var cameraPosition: [Double] {
17
+ let t = frame.camera.transform
18
+ return [
19
+ Double(t.columns.3.x),
20
+ Double(t.columns.3.y),
21
+ Double(t.columns.3.z)
22
+ ]
23
+ }
24
+
25
+ var cameraRotation: [Double] {
26
+ let q = simd_quatf(frame.camera.transform)
27
+ return [
28
+ Double(q.vector.x),
29
+ Double(q.vector.y),
30
+ Double(q.vector.z),
31
+ Double(q.vector.w)
32
+ ]
33
+ }
34
+
35
+ var projectionMatrix: [Double] {
36
+ matrixToArray(frame.camera.projectionMatrix)
37
+ }
38
+
39
+ var viewMatrix: [Double] {
40
+ matrixToArray(frame.camera.viewMatrix(for: .portrait))
41
+ }
42
+
43
+ var cameraIntrinsics: [Double] {
44
+ let i = frame.camera.intrinsics
45
+ return [
46
+ Double(i.columns.0.x), // fx
47
+ Double(i.columns.1.y), // fy
48
+ Double(i.columns.2.x), // cx
49
+ Double(i.columns.2.y) // cy
50
+ ]
51
+ }
52
+
53
+ var imageResolution: [Double] {
54
+ let size = frame.camera.imageResolution
55
+ return [Double(size.width), Double(size.height)]
56
+ }
57
+
58
+ var lightEstimate: HybridARLightEstimateSpec? {
59
+ guard let estimate = frame.lightEstimate else {
60
+ return nil
61
+ }
62
+ return HybridARLightEstimate(estimate: estimate)
63
+ }
64
+
65
+ var directionalLightEstimate: HybridARDirectionalLightEstimateSpec? {
66
+ guard let estimate = frame.lightEstimate as? ARDirectionalLightEstimate else {
67
+ return nil
68
+ }
69
+ return HybridARDirectionalLightEstimate(estimate: estimate)
70
+ }
71
+
72
+ var sceneDepth: HybridARDepthDataSpec? {
73
+ if #available(iOS 14.0, *) {
74
+ guard let depth = frame.sceneDepth else {
75
+ return nil
76
+ }
77
+ return HybridARDepthData(depthData: depth)
78
+ }
79
+ return nil
80
+ }
81
+
82
+ var smoothedSceneDepth: HybridARDepthDataSpec? {
83
+ if #available(iOS 14.0, *) {
84
+ guard let depth = frame.smoothedSceneDepth else {
85
+ return nil
86
+ }
87
+ return HybridARDepthData(depthData: depth)
88
+ }
89
+ return nil
90
+ }
91
+
92
+ func getCapturedImage(quality: Double) -> String {
93
+ let pixelBuffer = frame.capturedImage
94
+ let ciImage = CIImage(cvPixelBuffer: pixelBuffer)
95
+ let context = CIContext()
96
+
97
+ guard let cgImage = context.createCGImage(ciImage, from: ciImage.extent) else {
98
+ return ""
99
+ }
100
+
101
+ let uiImage = UIImage(cgImage: cgImage)
102
+ guard let jpegData = uiImage.jpegData(compressionQuality: CGFloat(quality)) else {
103
+ return ""
104
+ }
105
+
106
+ return jpegData.base64EncodedString()
107
+ }
108
+
109
+ private func matrixToArray(_ matrix: simd_float4x4) -> [Double] {
110
+ [
111
+ Double(matrix.columns.0.x), Double(matrix.columns.0.y),
112
+ Double(matrix.columns.0.z), Double(matrix.columns.0.w),
113
+ Double(matrix.columns.1.x), Double(matrix.columns.1.y),
114
+ Double(matrix.columns.1.z), Double(matrix.columns.1.w),
115
+ Double(matrix.columns.2.x), Double(matrix.columns.2.y),
116
+ Double(matrix.columns.2.z), Double(matrix.columns.2.w),
117
+ Double(matrix.columns.3.x), Double(matrix.columns.3.y),
118
+ Double(matrix.columns.3.z), Double(matrix.columns.3.w)
119
+ ]
120
+ }
121
+ }
@@ -0,0 +1,58 @@
1
+ import ARKit
2
+ import NitroModules
3
+
4
+ final class HybridARLightEstimate: HybridARLightEstimateSpec {
5
+ private let estimate: ARLightEstimate
6
+
7
+ init(estimate: ARLightEstimate) {
8
+ self.estimate = estimate
9
+ }
10
+
11
+ var ambientIntensity: Double {
12
+ Double(estimate.ambientIntensity)
13
+ }
14
+
15
+ var ambientColorTemperature: Double {
16
+ Double(estimate.ambientColorTemperature)
17
+ }
18
+ }
19
+
20
+ final class HybridARDirectionalLightEstimate: HybridARDirectionalLightEstimateSpec {
21
+ private let estimate: ARDirectionalLightEstimate
22
+
23
+ init(estimate: ARDirectionalLightEstimate) {
24
+ self.estimate = estimate
25
+ }
26
+
27
+ var ambientIntensity: Double {
28
+ Double(estimate.ambientIntensity)
29
+ }
30
+
31
+ var ambientColorTemperature: Double {
32
+ Double(estimate.ambientColorTemperature)
33
+ }
34
+
35
+ var primaryLightDirection: [Double] {
36
+ let dir = estimate.primaryLightDirection
37
+ return [Double(dir.x), Double(dir.y), Double(dir.z)]
38
+ }
39
+
40
+ var primaryLightIntensity: Double {
41
+ Double(estimate.primaryLightIntensity)
42
+ }
43
+
44
+ var sphericalHarmonicsCoefficients: [Double] {
45
+ let data = estimate.sphericalHarmonicsCoefficients
46
+ var result: [Double] = []
47
+ result.reserveCapacity(27)
48
+
49
+ data.withUnsafeBytes { buffer in
50
+ let floats = buffer.bindMemory(to: Float.self)
51
+ for i in 0..<min(27, floats.count) {
52
+ result.append(Double(floats[i]))
53
+ }
54
+ }
55
+
56
+ return result
57
+ }
58
+ }
@@ -0,0 +1,33 @@
1
+ import NitroModules
2
+ import simd
3
+
4
+ final class HybridARMeasurement: HybridARMeasurementSpec {
5
+ let startAnchor: HybridARAnchor
6
+ let endAnchor: HybridARAnchor
7
+
8
+ init(
9
+ start: HybridARAnchor,
10
+ end: HybridARAnchor
11
+ ) {
12
+ self.startAnchor = start
13
+ self.endAnchor = end
14
+ }
15
+
16
+ var start: HybridARAnchorSpec {
17
+ startAnchor
18
+ }
19
+
20
+ var end: HybridARAnchorSpec {
21
+ endAnchor
22
+ }
23
+
24
+ var length: Double {
25
+ let a = startAnchor.anchor.transform.columns.3
26
+ let b = endAnchor.anchor.transform.columns.3
27
+ return Double(simd_distance(a, b))
28
+ }
29
+
30
+ var isValid: Bool {
31
+ startAnchor.isTracked && endAnchor.isTracked
32
+ }
33
+ }
@@ -0,0 +1,108 @@
1
+ import ARKit
2
+ import NitroModules
3
+
4
+ @available(iOS 13.4, *)
5
+ final class HybridARMeshAnchor: HybridARMeshAnchorSpec {
6
+ let anchor: ARMeshAnchor
7
+
8
+ init(anchor: ARMeshAnchor) {
9
+ self.anchor = anchor
10
+ super.init()
11
+ }
12
+
13
+ var identifier: String {
14
+ anchor.identifier.uuidString
15
+ }
16
+
17
+ var transform: [Double] {
18
+ let t = anchor.transform
19
+ return [
20
+ Double(t.columns.0.x), Double(t.columns.0.y), Double(t.columns.0.z), Double(t.columns.0.w),
21
+ Double(t.columns.1.x), Double(t.columns.1.y), Double(t.columns.1.z), Double(t.columns.1.w),
22
+ Double(t.columns.2.x), Double(t.columns.2.y), Double(t.columns.2.z), Double(t.columns.2.w),
23
+ Double(t.columns.3.x), Double(t.columns.3.y), Double(t.columns.3.z), Double(t.columns.3.w)
24
+ ]
25
+ }
26
+
27
+ var vertexCount: Double {
28
+ Double(anchor.geometry.vertices.count)
29
+ }
30
+
31
+ var faceCount: Double {
32
+ Double(anchor.geometry.faces.count)
33
+ }
34
+
35
+ var vertices: [Double] {
36
+ let geo = anchor.geometry
37
+ let vertexBuffer = geo.vertices
38
+ var result: [Double] = []
39
+ result.reserveCapacity(vertexBuffer.count * 3)
40
+
41
+ for i in 0..<vertexBuffer.count {
42
+ let vertex = vertexBuffer[i]
43
+ result.append(Double(vertex.x))
44
+ result.append(Double(vertex.y))
45
+ result.append(Double(vertex.z))
46
+ }
47
+ return result
48
+ }
49
+
50
+ var faces: [Double] {
51
+ let geo = anchor.geometry
52
+ let faceBuffer = geo.faces
53
+ var result: [Double] = []
54
+ result.reserveCapacity(faceBuffer.count * 3)
55
+
56
+ for i in 0..<faceBuffer.count {
57
+ let indices = faceBuffer.vertexIndicesOf(faceWithIndex: i)
58
+ result.append(Double(indices[0]))
59
+ result.append(Double(indices[1]))
60
+ result.append(Double(indices[2]))
61
+ }
62
+ return result
63
+ }
64
+
65
+ var normals: [Double] {
66
+ let geo = anchor.geometry
67
+ let normalBuffer = geo.normals
68
+ var result: [Double] = []
69
+ result.reserveCapacity(normalBuffer.count * 3)
70
+
71
+ for i in 0..<normalBuffer.count {
72
+ let normal = normalBuffer[i]
73
+ result.append(Double(normal.x))
74
+ result.append(Double(normal.y))
75
+ result.append(Double(normal.z))
76
+ }
77
+ return result
78
+ }
79
+
80
+ var classifications: [MeshClassification] {
81
+ let geo = anchor.geometry
82
+ guard let classBuffer = geo.classification else {
83
+ return []
84
+ }
85
+
86
+ var result: [MeshClassification] = []
87
+ result.reserveCapacity(classBuffer.count)
88
+
89
+ for i in 0..<classBuffer.count {
90
+ let arClass = classBuffer[i]
91
+ result.append(mapClassification(arClass))
92
+ }
93
+ return result
94
+ }
95
+
96
+ private func mapClassification(_ arClass: ARMeshClassification) -> MeshClassification {
97
+ switch arClass {
98
+ case .wall: return .wall
99
+ case .floor: return .floor
100
+ case .ceiling: return .ceiling
101
+ case .table: return .table
102
+ case .seat: return .seat
103
+ case .window: return .window
104
+ case .door: return .door
105
+ default: return .none
106
+ }
107
+ }
108
+ }
@@ -0,0 +1,114 @@
1
+ import ARKit
2
+ import NitroModules
3
+ import simd
4
+
5
+ final class HybridARPlaneGeometry: HybridARPlaneGeometrySpec {
6
+ private let geometry: ARPlaneGeometry
7
+
8
+ init(geometry: ARPlaneGeometry) {
9
+ self.geometry = geometry
10
+ }
11
+
12
+ var vertices: [Double] {
13
+ var result: [Double] = []
14
+ result.reserveCapacity(geometry.vertices.count * 3)
15
+ for vertex in geometry.vertices {
16
+ result.append(Double(vertex.x))
17
+ result.append(Double(vertex.y))
18
+ result.append(Double(vertex.z))
19
+ }
20
+ return result
21
+ }
22
+
23
+ var textureCoordinates: [Double] {
24
+ var result: [Double] = []
25
+ result.reserveCapacity(geometry.textureCoordinates.count * 2)
26
+ for coord in geometry.textureCoordinates {
27
+ result.append(Double(coord.x))
28
+ result.append(Double(coord.y))
29
+ }
30
+ return result
31
+ }
32
+
33
+ var triangleIndices: [Double] {
34
+ geometry.triangleIndices.map { Double($0) }
35
+ }
36
+
37
+ var boundaryVertices: [Double] {
38
+ var result: [Double] = []
39
+ result.reserveCapacity(geometry.boundaryVertices.count * 2)
40
+ for vertex in geometry.boundaryVertices {
41
+ result.append(Double(vertex.x))
42
+ result.append(Double(vertex.z))
43
+ }
44
+ return result
45
+ }
46
+ }
47
+
48
+ final class HybridARPlaneAnchor: HybridARPlaneAnchorSpec {
49
+ private let anchor: ARPlaneAnchor
50
+
51
+ init(anchor: ARPlaneAnchor) {
52
+ self.anchor = anchor
53
+ }
54
+
55
+ var identifier: String {
56
+ anchor.identifier.uuidString
57
+ }
58
+
59
+ var position: [Double] {
60
+ let t = anchor.transform
61
+ return [
62
+ Double(t.columns.3.x),
63
+ Double(t.columns.3.y),
64
+ Double(t.columns.3.z)
65
+ ]
66
+ }
67
+
68
+ var rotation: [Double] {
69
+ let q = simd_quatf(anchor.transform)
70
+ return [
71
+ Double(q.vector.x),
72
+ Double(q.vector.y),
73
+ Double(q.vector.z),
74
+ Double(q.vector.w)
75
+ ]
76
+ }
77
+
78
+ var alignment: PlaneAlignment {
79
+ switch anchor.alignment {
80
+ case .horizontal: return .horizontal
81
+ case .vertical: return .vertical
82
+ @unknown default: return .horizontal
83
+ }
84
+ }
85
+
86
+ var classification: PlaneClassification {
87
+ switch anchor.classification {
88
+ case .wall: return .wall
89
+ case .floor: return .floor
90
+ case .ceiling: return .ceiling
91
+ case .table: return .table
92
+ case .seat: return .seat
93
+ case .window: return .window
94
+ case .door: return .door
95
+ default: return .none
96
+ }
97
+ }
98
+
99
+ var extent: [Double] {
100
+ [Double(anchor.planeExtent.width), Double(anchor.planeExtent.height)]
101
+ }
102
+
103
+ var center: [Double] {
104
+ [
105
+ Double(anchor.center.x),
106
+ Double(anchor.center.y),
107
+ Double(anchor.center.z)
108
+ ]
109
+ }
110
+
111
+ var geometry: HybridARPlaneGeometrySpec {
112
+ HybridARPlaneGeometry(geometry: anchor.geometry)
113
+ }
114
+ }
@@ -0,0 +1,53 @@
1
+ import ARKit
2
+ import NitroModules
3
+ import simd
4
+
5
+ final class HybridARRaycastResult: HybridARRaycastResultSpec {
6
+ let result: ARRaycastResult
7
+
8
+ init(result: ARRaycastResult) {
9
+ self.result = result
10
+ }
11
+
12
+ var position: [Double] {
13
+ let t = result.worldTransform
14
+ return [
15
+ Double(t.columns.3.x),
16
+ Double(t.columns.3.y),
17
+ Double(t.columns.3.z)
18
+ ]
19
+ }
20
+
21
+ var rotation: [Double] {
22
+ let q = simd_quatf(result.worldTransform)
23
+ return [
24
+ Double(q.vector.x),
25
+ Double(q.vector.y),
26
+ Double(q.vector.z),
27
+ Double(q.vector.w)
28
+ ]
29
+ }
30
+
31
+ var distance: Double {
32
+ // Calculate distance from camera (origin) to hit point
33
+ let pos = result.worldTransform.columns.3
34
+ return Double(sqrt(pos.x * pos.x + pos.y * pos.y + pos.z * pos.z))
35
+ }
36
+
37
+ var target: RaycastTarget {
38
+ switch result.target {
39
+ case .existingPlaneGeometry:
40
+ return .existingplanegeometry
41
+ case .existingPlaneInfinite:
42
+ return .existingplaneinfinite
43
+ case .estimatedPlane:
44
+ return .estimatedplane
45
+ @unknown default:
46
+ return .any
47
+ }
48
+ }
49
+
50
+ var anchorId: String? {
51
+ result.anchor?.identifier.uuidString
52
+ }
53
+ }