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,243 @@
1
+ ///
2
+ /// HybridARViewSpecSwift.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include "HybridARViewSpec.hpp"
11
+
12
+ // Forward declaration of `HybridARViewSpec_cxx` to properly resolve imports.
13
+ namespace NitroAR { class HybridARViewSpec_cxx; }
14
+
15
+ // Forward declaration of `SceneReconstructionMode` to properly resolve imports.
16
+ namespace margelo::nitro::ar { enum class SceneReconstructionMode; }
17
+ // Forward declaration of `ARViewHitResult` to properly resolve imports.
18
+ namespace margelo::nitro::ar { struct ARViewHitResult; }
19
+
20
+ #include <optional>
21
+ #include "SceneReconstructionMode.hpp"
22
+ #include <string>
23
+ #include "ARViewHitResult.hpp"
24
+
25
+ #include "NitroAR-Swift-Cxx-Umbrella.hpp"
26
+
27
+ namespace margelo::nitro::ar {
28
+
29
+ /**
30
+ * The C++ part of HybridARViewSpec_cxx.swift.
31
+ *
32
+ * HybridARViewSpecSwift (C++) accesses HybridARViewSpec_cxx (Swift), and might
33
+ * contain some additional bridging code for C++ <> Swift interop.
34
+ *
35
+ * Since this obviously introduces an overhead, I hope at some point in
36
+ * the future, HybridARViewSpec_cxx can directly inherit from the C++ class HybridARViewSpec
37
+ * to simplify the whole structure and memory management.
38
+ */
39
+ class HybridARViewSpecSwift: public virtual HybridARViewSpec {
40
+ public:
41
+ // Constructor from a Swift instance
42
+ explicit HybridARViewSpecSwift(const NitroAR::HybridARViewSpec_cxx& swiftPart):
43
+ HybridObject(HybridARViewSpec::TAG),
44
+ _swiftPart(swiftPart) { }
45
+
46
+ public:
47
+ // Get the Swift part
48
+ inline NitroAR::HybridARViewSpec_cxx& getSwiftPart() noexcept {
49
+ return _swiftPart;
50
+ }
51
+
52
+ public:
53
+ inline size_t getExternalMemorySize() noexcept override {
54
+ return _swiftPart.getMemorySize();
55
+ }
56
+ bool equals(const std::shared_ptr<HybridObject>& other) override {
57
+ if (auto otherCast = std::dynamic_pointer_cast<HybridARViewSpecSwift>(other)) {
58
+ return _swiftPart.equals(otherCast->_swiftPart);
59
+ }
60
+ return false;
61
+ }
62
+ void dispose() noexcept override {
63
+ _swiftPart.dispose();
64
+ }
65
+ std::string toString() override {
66
+ return _swiftPart.toString();
67
+ }
68
+
69
+ public:
70
+ // Properties
71
+ inline std::optional<bool> getShowDebugOptions() noexcept override {
72
+ auto __result = _swiftPart.getShowDebugOptions();
73
+ return __result;
74
+ }
75
+ inline void setShowDebugOptions(std::optional<bool> showDebugOptions) noexcept override {
76
+ _swiftPart.setShowDebugOptions(showDebugOptions);
77
+ }
78
+ inline std::optional<bool> getShowPlanes() noexcept override {
79
+ auto __result = _swiftPart.getShowPlanes();
80
+ return __result;
81
+ }
82
+ inline void setShowPlanes(std::optional<bool> showPlanes) noexcept override {
83
+ _swiftPart.setShowPlanes(showPlanes);
84
+ }
85
+ inline std::optional<bool> getShowFeaturePoints() noexcept override {
86
+ auto __result = _swiftPart.getShowFeaturePoints();
87
+ return __result;
88
+ }
89
+ inline void setShowFeaturePoints(std::optional<bool> showFeaturePoints) noexcept override {
90
+ _swiftPart.setShowFeaturePoints(showFeaturePoints);
91
+ }
92
+ inline std::optional<bool> getShowWorldOrigin() noexcept override {
93
+ auto __result = _swiftPart.getShowWorldOrigin();
94
+ return __result;
95
+ }
96
+ inline void setShowWorldOrigin(std::optional<bool> showWorldOrigin) noexcept override {
97
+ _swiftPart.setShowWorldOrigin(showWorldOrigin);
98
+ }
99
+ inline std::optional<bool> getAutoenablesDefaultLighting() noexcept override {
100
+ auto __result = _swiftPart.getAutoenablesDefaultLighting();
101
+ return __result;
102
+ }
103
+ inline void setAutoenablesDefaultLighting(std::optional<bool> autoenablesDefaultLighting) noexcept override {
104
+ _swiftPart.setAutoenablesDefaultLighting(autoenablesDefaultLighting);
105
+ }
106
+ inline std::optional<SceneReconstructionMode> getSceneReconstruction() noexcept override {
107
+ auto __result = _swiftPart.getSceneReconstruction();
108
+ return __result;
109
+ }
110
+ inline void setSceneReconstruction(std::optional<SceneReconstructionMode> sceneReconstruction) noexcept override {
111
+ _swiftPart.setSceneReconstruction(sceneReconstruction);
112
+ }
113
+ inline std::optional<bool> getShowSceneMesh() noexcept override {
114
+ auto __result = _swiftPart.getShowSceneMesh();
115
+ return __result;
116
+ }
117
+ inline void setShowSceneMesh(std::optional<bool> showSceneMesh) noexcept override {
118
+ _swiftPart.setShowSceneMesh(showSceneMesh);
119
+ }
120
+ inline std::optional<bool> getSceneDepth() noexcept override {
121
+ auto __result = _swiftPart.getSceneDepth();
122
+ return __result;
123
+ }
124
+ inline void setSceneDepth(std::optional<bool> sceneDepth) noexcept override {
125
+ _swiftPart.setSceneDepth(sceneDepth);
126
+ }
127
+ inline std::optional<bool> getObjectOcclusion() noexcept override {
128
+ auto __result = _swiftPart.getObjectOcclusion();
129
+ return __result;
130
+ }
131
+ inline void setObjectOcclusion(std::optional<bool> objectOcclusion) noexcept override {
132
+ _swiftPart.setObjectOcclusion(objectOcclusion);
133
+ }
134
+ inline std::optional<bool> getPeopleOcclusion() noexcept override {
135
+ auto __result = _swiftPart.getPeopleOcclusion();
136
+ return __result;
137
+ }
138
+ inline void setPeopleOcclusion(std::optional<bool> peopleOcclusion) noexcept override {
139
+ _swiftPart.setPeopleOcclusion(peopleOcclusion);
140
+ }
141
+
142
+ public:
143
+ // Methods
144
+ inline void addMeasurementPoint(const std::string& id, double x, double y, double z, const std::optional<std::string>& color) override {
145
+ auto __result = _swiftPart.addMeasurementPoint(id, std::forward<decltype(x)>(x), std::forward<decltype(y)>(y), std::forward<decltype(z)>(z), color);
146
+ if (__result.hasError()) [[unlikely]] {
147
+ std::rethrow_exception(__result.error());
148
+ }
149
+ }
150
+ inline void removeMeasurementPoint(const std::string& id) override {
151
+ auto __result = _swiftPart.removeMeasurementPoint(id);
152
+ if (__result.hasError()) [[unlikely]] {
153
+ std::rethrow_exception(__result.error());
154
+ }
155
+ }
156
+ inline void updateMeasurementPoint(const std::string& id, double x, double y, double z) override {
157
+ auto __result = _swiftPart.updateMeasurementPoint(id, std::forward<decltype(x)>(x), std::forward<decltype(y)>(y), std::forward<decltype(z)>(z));
158
+ if (__result.hasError()) [[unlikely]] {
159
+ std::rethrow_exception(__result.error());
160
+ }
161
+ }
162
+ inline void addLine(const std::string& id, double fromX, double fromY, double fromZ, double toX, double toY, double toZ, const std::optional<std::string>& color) override {
163
+ auto __result = _swiftPart.addLine(id, std::forward<decltype(fromX)>(fromX), std::forward<decltype(fromY)>(fromY), std::forward<decltype(fromZ)>(fromZ), std::forward<decltype(toX)>(toX), std::forward<decltype(toY)>(toY), std::forward<decltype(toZ)>(toZ), color);
164
+ if (__result.hasError()) [[unlikely]] {
165
+ std::rethrow_exception(__result.error());
166
+ }
167
+ }
168
+ inline void updateLine(const std::string& id, double fromX, double fromY, double fromZ, double toX, double toY, double toZ) override {
169
+ auto __result = _swiftPart.updateLine(id, std::forward<decltype(fromX)>(fromX), std::forward<decltype(fromY)>(fromY), std::forward<decltype(fromZ)>(fromZ), std::forward<decltype(toX)>(toX), std::forward<decltype(toY)>(toY), std::forward<decltype(toZ)>(toZ));
170
+ if (__result.hasError()) [[unlikely]] {
171
+ std::rethrow_exception(__result.error());
172
+ }
173
+ }
174
+ inline void removeLine(const std::string& id) override {
175
+ auto __result = _swiftPart.removeLine(id);
176
+ if (__result.hasError()) [[unlikely]] {
177
+ std::rethrow_exception(__result.error());
178
+ }
179
+ }
180
+ inline void addDistanceLabel(const std::string& id, double x, double y, double z, double distance) override {
181
+ auto __result = _swiftPart.addDistanceLabel(id, std::forward<decltype(x)>(x), std::forward<decltype(y)>(y), std::forward<decltype(z)>(z), std::forward<decltype(distance)>(distance));
182
+ if (__result.hasError()) [[unlikely]] {
183
+ std::rethrow_exception(__result.error());
184
+ }
185
+ }
186
+ inline void updateDistanceLabel(const std::string& id, double x, double y, double z, double distance) override {
187
+ auto __result = _swiftPart.updateDistanceLabel(id, std::forward<decltype(x)>(x), std::forward<decltype(y)>(y), std::forward<decltype(z)>(z), std::forward<decltype(distance)>(distance));
188
+ if (__result.hasError()) [[unlikely]] {
189
+ std::rethrow_exception(__result.error());
190
+ }
191
+ }
192
+ inline void removeDistanceLabel(const std::string& id) override {
193
+ auto __result = _swiftPart.removeDistanceLabel(id);
194
+ if (__result.hasError()) [[unlikely]] {
195
+ std::rethrow_exception(__result.error());
196
+ }
197
+ }
198
+ inline void clearAllVisuals() override {
199
+ auto __result = _swiftPart.clearAllVisuals();
200
+ if (__result.hasError()) [[unlikely]] {
201
+ std::rethrow_exception(__result.error());
202
+ }
203
+ }
204
+ inline std::optional<ARViewHitResult> raycast(double x, double y) override {
205
+ auto __result = _swiftPart.raycast(std::forward<decltype(x)>(x), std::forward<decltype(y)>(y));
206
+ if (__result.hasError()) [[unlikely]] {
207
+ std::rethrow_exception(__result.error());
208
+ }
209
+ auto __value = std::move(__result.value());
210
+ return __value;
211
+ }
212
+ inline void startSession() override {
213
+ auto __result = _swiftPart.startSession();
214
+ if (__result.hasError()) [[unlikely]] {
215
+ std::rethrow_exception(__result.error());
216
+ }
217
+ }
218
+ inline void pauseSession() override {
219
+ auto __result = _swiftPart.pauseSession();
220
+ if (__result.hasError()) [[unlikely]] {
221
+ std::rethrow_exception(__result.error());
222
+ }
223
+ }
224
+ inline void resetSession() override {
225
+ auto __result = _swiftPart.resetSession();
226
+ if (__result.hasError()) [[unlikely]] {
227
+ std::rethrow_exception(__result.error());
228
+ }
229
+ }
230
+ inline bool isLiDARAvailable() override {
231
+ auto __result = _swiftPart.isLiDARAvailable();
232
+ if (__result.hasError()) [[unlikely]] {
233
+ std::rethrow_exception(__result.error());
234
+ }
235
+ auto __value = std::move(__result.value());
236
+ return __value;
237
+ }
238
+
239
+ private:
240
+ NitroAR::HybridARViewSpec_cxx _swiftPart;
241
+ };
242
+
243
+ } // namespace margelo::nitro::ar
@@ -0,0 +1,11 @@
1
+ ///
2
+ /// HybridARVolumeSpecSwift.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridARVolumeSpecSwift.hpp"
9
+
10
+ namespace margelo::nitro::ar {
11
+ } // namespace margelo::nitro::ar
@@ -0,0 +1,94 @@
1
+ ///
2
+ /// HybridARVolumeSpecSwift.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include "HybridARVolumeSpec.hpp"
11
+
12
+ // Forward declaration of `HybridARVolumeSpec_cxx` to properly resolve imports.
13
+ namespace NitroAR { class HybridARVolumeSpec_cxx; }
14
+
15
+
16
+
17
+ #include <vector>
18
+
19
+ #include "NitroAR-Swift-Cxx-Umbrella.hpp"
20
+
21
+ namespace margelo::nitro::ar {
22
+
23
+ /**
24
+ * The C++ part of HybridARVolumeSpec_cxx.swift.
25
+ *
26
+ * HybridARVolumeSpecSwift (C++) accesses HybridARVolumeSpec_cxx (Swift), and might
27
+ * contain some additional bridging code for C++ <> Swift interop.
28
+ *
29
+ * Since this obviously introduces an overhead, I hope at some point in
30
+ * the future, HybridARVolumeSpec_cxx can directly inherit from the C++ class HybridARVolumeSpec
31
+ * to simplify the whole structure and memory management.
32
+ */
33
+ class HybridARVolumeSpecSwift: public virtual HybridARVolumeSpec {
34
+ public:
35
+ // Constructor from a Swift instance
36
+ explicit HybridARVolumeSpecSwift(const NitroAR::HybridARVolumeSpec_cxx& swiftPart):
37
+ HybridObject(HybridARVolumeSpec::TAG),
38
+ _swiftPart(swiftPart) { }
39
+
40
+ public:
41
+ // Get the Swift part
42
+ inline NitroAR::HybridARVolumeSpec_cxx& getSwiftPart() noexcept {
43
+ return _swiftPart;
44
+ }
45
+
46
+ public:
47
+ inline size_t getExternalMemorySize() noexcept override {
48
+ return _swiftPart.getMemorySize();
49
+ }
50
+ bool equals(const std::shared_ptr<HybridObject>& other) override {
51
+ if (auto otherCast = std::dynamic_pointer_cast<HybridARVolumeSpecSwift>(other)) {
52
+ return _swiftPart.equals(otherCast->_swiftPart);
53
+ }
54
+ return false;
55
+ }
56
+ void dispose() noexcept override {
57
+ _swiftPart.dispose();
58
+ }
59
+ std::string toString() override {
60
+ return _swiftPart.toString();
61
+ }
62
+
63
+ public:
64
+ // Properties
65
+ inline std::vector<double> getCenter() noexcept override {
66
+ auto __result = _swiftPart.getCenter();
67
+ return __result;
68
+ }
69
+ inline double getWidth() noexcept override {
70
+ return _swiftPart.getWidth();
71
+ }
72
+ inline double getHeight() noexcept override {
73
+ return _swiftPart.getHeight();
74
+ }
75
+ inline double getDepth() noexcept override {
76
+ return _swiftPart.getDepth();
77
+ }
78
+ inline std::vector<double> getRotation() noexcept override {
79
+ auto __result = _swiftPart.getRotation();
80
+ return __result;
81
+ }
82
+ inline bool getIsStable() noexcept override {
83
+ return _swiftPart.isStable();
84
+ }
85
+
86
+ public:
87
+ // Methods
88
+
89
+
90
+ private:
91
+ NitroAR::HybridARVolumeSpec_cxx _swiftPart;
92
+ };
93
+
94
+ } // namespace margelo::nitro::ar
@@ -0,0 +1,11 @@
1
+ ///
2
+ /// HybridARWorldMapSpecSwift.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include "HybridARWorldMapSpecSwift.hpp"
9
+
10
+ namespace margelo::nitro::ar {
11
+ } // namespace margelo::nitro::ar
@@ -0,0 +1,97 @@
1
+ ///
2
+ /// HybridARWorldMapSpecSwift.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include "HybridARWorldMapSpec.hpp"
11
+
12
+ // Forward declaration of `HybridARWorldMapSpec_cxx` to properly resolve imports.
13
+ namespace NitroAR { class HybridARWorldMapSpec_cxx; }
14
+
15
+
16
+
17
+ #include <string>
18
+ #include <vector>
19
+
20
+ #include "NitroAR-Swift-Cxx-Umbrella.hpp"
21
+
22
+ namespace margelo::nitro::ar {
23
+
24
+ /**
25
+ * The C++ part of HybridARWorldMapSpec_cxx.swift.
26
+ *
27
+ * HybridARWorldMapSpecSwift (C++) accesses HybridARWorldMapSpec_cxx (Swift), and might
28
+ * contain some additional bridging code for C++ <> Swift interop.
29
+ *
30
+ * Since this obviously introduces an overhead, I hope at some point in
31
+ * the future, HybridARWorldMapSpec_cxx can directly inherit from the C++ class HybridARWorldMapSpec
32
+ * to simplify the whole structure and memory management.
33
+ */
34
+ class HybridARWorldMapSpecSwift: public virtual HybridARWorldMapSpec {
35
+ public:
36
+ // Constructor from a Swift instance
37
+ explicit HybridARWorldMapSpecSwift(const NitroAR::HybridARWorldMapSpec_cxx& swiftPart):
38
+ HybridObject(HybridARWorldMapSpec::TAG),
39
+ _swiftPart(swiftPart) { }
40
+
41
+ public:
42
+ // Get the Swift part
43
+ inline NitroAR::HybridARWorldMapSpec_cxx& getSwiftPart() noexcept {
44
+ return _swiftPart;
45
+ }
46
+
47
+ public:
48
+ inline size_t getExternalMemorySize() noexcept override {
49
+ return _swiftPart.getMemorySize();
50
+ }
51
+ bool equals(const std::shared_ptr<HybridObject>& other) override {
52
+ if (auto otherCast = std::dynamic_pointer_cast<HybridARWorldMapSpecSwift>(other)) {
53
+ return _swiftPart.equals(otherCast->_swiftPart);
54
+ }
55
+ return false;
56
+ }
57
+ void dispose() noexcept override {
58
+ _swiftPart.dispose();
59
+ }
60
+ std::string toString() override {
61
+ return _swiftPart.toString();
62
+ }
63
+
64
+ public:
65
+ // Properties
66
+ inline std::string getIdentifier() noexcept override {
67
+ auto __result = _swiftPart.getIdentifier();
68
+ return __result;
69
+ }
70
+ inline std::vector<double> getCenter() noexcept override {
71
+ auto __result = _swiftPart.getCenter();
72
+ return __result;
73
+ }
74
+ inline std::vector<double> getExtent() noexcept override {
75
+ auto __result = _swiftPart.getExtent();
76
+ return __result;
77
+ }
78
+ inline double getAnchorCount() noexcept override {
79
+ return _swiftPart.getAnchorCount();
80
+ }
81
+
82
+ public:
83
+ // Methods
84
+ inline std::string getData() override {
85
+ auto __result = _swiftPart.getData();
86
+ if (__result.hasError()) [[unlikely]] {
87
+ std::rethrow_exception(__result.error());
88
+ }
89
+ auto __value = std::move(__result.value());
90
+ return __value;
91
+ }
92
+
93
+ private:
94
+ NitroAR::HybridARWorldMapSpec_cxx _swiftPart;
95
+ };
96
+
97
+ } // namespace margelo::nitro::ar
@@ -0,0 +1,152 @@
1
+ ///
2
+ /// HybridARViewComponent.mm
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #import "HybridARViewComponent.hpp"
9
+ #import <memory>
10
+ #import <react/renderer/componentregistry/ComponentDescriptorProvider.h>
11
+ #import <React/RCTViewComponentView.h>
12
+ #import <React/RCTComponentViewFactory.h>
13
+ #import <React/UIView+ComponentViewProtocol.h>
14
+ #import <NitroModules/NitroDefines.hpp>
15
+ #import <UIKit/UIKit.h>
16
+
17
+ #import "HybridARViewSpecSwift.hpp"
18
+ #import "NitroAR-Swift-Cxx-Umbrella.hpp"
19
+
20
+ using namespace facebook;
21
+ using namespace margelo::nitro::ar;
22
+ using namespace margelo::nitro::ar::views;
23
+
24
+ /**
25
+ * Represents the React Native View holder for the Nitro "ARView" HybridView.
26
+ */
27
+ @interface HybridARViewComponent: RCTViewComponentView
28
+ + (BOOL)shouldBeRecycled;
29
+ @end
30
+
31
+ @implementation HybridARViewComponent {
32
+ std::shared_ptr<HybridARViewSpecSwift> _hybridView;
33
+ }
34
+
35
+ + (void) load {
36
+ [super load];
37
+ [RCTComponentViewFactory.currentComponentViewFactory registerComponentViewClass:[HybridARViewComponent class]];
38
+ }
39
+
40
+ + (react::ComponentDescriptorProvider) componentDescriptorProvider {
41
+ return react::concreteComponentDescriptorProvider<HybridARViewComponentDescriptor>();
42
+ }
43
+
44
+ - (instancetype) init {
45
+ if (self = [super init]) {
46
+ std::shared_ptr<HybridARViewSpec> hybridView = NitroAR::NitroARAutolinking::createARView();
47
+ _hybridView = std::dynamic_pointer_cast<HybridARViewSpecSwift>(hybridView);
48
+ [self updateView];
49
+ }
50
+ return self;
51
+ }
52
+
53
+ - (void) updateView {
54
+ // 1. Get Swift part
55
+ NitroAR::HybridARViewSpec_cxx& swiftPart = _hybridView->getSwiftPart();
56
+
57
+ // 2. Get UIView*
58
+ void* viewUnsafe = swiftPart.getView();
59
+ UIView* view = (__bridge_transfer UIView*) viewUnsafe;
60
+
61
+ // 3. Update RCTViewComponentView's [contentView]
62
+ [self setContentView:view];
63
+ }
64
+
65
+ - (void) updateProps:(const std::shared_ptr<const react::Props>&)props
66
+ oldProps:(const std::shared_ptr<const react::Props>&)oldProps {
67
+ // 1. Downcast props
68
+ const auto& newViewPropsConst = *std::static_pointer_cast<HybridARViewProps const>(props);
69
+ auto& newViewProps = const_cast<HybridARViewProps&>(newViewPropsConst);
70
+ NitroAR::HybridARViewSpec_cxx& swiftPart = _hybridView->getSwiftPart();
71
+
72
+ // 2. Update each prop individually
73
+ swiftPart.beforeUpdate();
74
+
75
+ // showDebugOptions: optional
76
+ if (newViewProps.showDebugOptions.isDirty) {
77
+ swiftPart.setShowDebugOptions(newViewProps.showDebugOptions.value);
78
+ newViewProps.showDebugOptions.isDirty = false;
79
+ }
80
+ // showPlanes: optional
81
+ if (newViewProps.showPlanes.isDirty) {
82
+ swiftPart.setShowPlanes(newViewProps.showPlanes.value);
83
+ newViewProps.showPlanes.isDirty = false;
84
+ }
85
+ // showFeaturePoints: optional
86
+ if (newViewProps.showFeaturePoints.isDirty) {
87
+ swiftPart.setShowFeaturePoints(newViewProps.showFeaturePoints.value);
88
+ newViewProps.showFeaturePoints.isDirty = false;
89
+ }
90
+ // showWorldOrigin: optional
91
+ if (newViewProps.showWorldOrigin.isDirty) {
92
+ swiftPart.setShowWorldOrigin(newViewProps.showWorldOrigin.value);
93
+ newViewProps.showWorldOrigin.isDirty = false;
94
+ }
95
+ // autoenablesDefaultLighting: optional
96
+ if (newViewProps.autoenablesDefaultLighting.isDirty) {
97
+ swiftPart.setAutoenablesDefaultLighting(newViewProps.autoenablesDefaultLighting.value);
98
+ newViewProps.autoenablesDefaultLighting.isDirty = false;
99
+ }
100
+ // sceneReconstruction: optional
101
+ if (newViewProps.sceneReconstruction.isDirty) {
102
+ swiftPart.setSceneReconstruction(newViewProps.sceneReconstruction.value);
103
+ newViewProps.sceneReconstruction.isDirty = false;
104
+ }
105
+ // showSceneMesh: optional
106
+ if (newViewProps.showSceneMesh.isDirty) {
107
+ swiftPart.setShowSceneMesh(newViewProps.showSceneMesh.value);
108
+ newViewProps.showSceneMesh.isDirty = false;
109
+ }
110
+ // sceneDepth: optional
111
+ if (newViewProps.sceneDepth.isDirty) {
112
+ swiftPart.setSceneDepth(newViewProps.sceneDepth.value);
113
+ newViewProps.sceneDepth.isDirty = false;
114
+ }
115
+ // objectOcclusion: optional
116
+ if (newViewProps.objectOcclusion.isDirty) {
117
+ swiftPart.setObjectOcclusion(newViewProps.objectOcclusion.value);
118
+ newViewProps.objectOcclusion.isDirty = false;
119
+ }
120
+ // peopleOcclusion: optional
121
+ if (newViewProps.peopleOcclusion.isDirty) {
122
+ swiftPart.setPeopleOcclusion(newViewProps.peopleOcclusion.value);
123
+ newViewProps.peopleOcclusion.isDirty = false;
124
+ }
125
+
126
+ swiftPart.afterUpdate();
127
+
128
+ // 3. Update hybridRef if it changed
129
+ if (newViewProps.hybridRef.isDirty) {
130
+ // hybridRef changed - call it with new this
131
+ const auto& maybeFunc = newViewProps.hybridRef.value;
132
+ if (maybeFunc.has_value()) {
133
+ maybeFunc.value()(_hybridView);
134
+ }
135
+ newViewProps.hybridRef.isDirty = false;
136
+ }
137
+
138
+ // 4. Continue in base class
139
+ [super updateProps:props oldProps:oldProps];
140
+ }
141
+
142
+ + (BOOL)shouldBeRecycled {
143
+ return NitroAR::NitroARAutolinking::isARViewRecyclable();
144
+ }
145
+
146
+ - (void)prepareForRecycle {
147
+ [super prepareForRecycle];
148
+ NitroAR::HybridARViewSpec_cxx& swiftPart = _hybridView->getSwiftPart();
149
+ swiftPart.maybePrepareForRecycle();
150
+ }
151
+
152
+ @end