@sceneview-sdk/react-native 4.27.0 → 4.28.0
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.
- package/README.md +73 -26
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +16 -4
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-sceneview.podspec +26 -8
- package/src/index.tsx +16 -4
package/README.md
CHANGED
|
@@ -50,30 +50,59 @@ Requires iOS 18+ and Xcode 16+ — `SceneViewSwift`'s own floor is iOS 18.0
|
|
|
50
50
|
`platform :ios, '18.0'` rather than React Native's `min_ios_version_supported`
|
|
51
51
|
(13.4), or `pod install` fails to resolve this module.
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
>
|
|
72
|
-
> `SceneViewSwift`
|
|
73
|
-
>
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
53
|
+
**`SceneViewSwift` must arrive as a pod, and your `Podfile` must give it a
|
|
54
|
+
coordinate.** This module's podspec declares `s.dependency "SceneViewSwift",
|
|
55
|
+
"~> 4.27"`, but `SceneViewSwift` is **not published on the CocoaPods trunk**,
|
|
56
|
+
so CocoaPods cannot resolve that name on its own. Add one of these lines to
|
|
57
|
+
your `Podfile`:
|
|
58
|
+
|
|
59
|
+
```ruby
|
|
60
|
+
# Released consumers — no monorepo clone
|
|
61
|
+
pod 'SceneViewSwift',
|
|
62
|
+
:podspec => 'https://raw.githubusercontent.com/sceneview/sceneview/main/SceneViewSwift.podspec'
|
|
63
|
+
|
|
64
|
+
# In-repo consumers — resolve from a local checkout
|
|
65
|
+
pod 'SceneViewSwift', :path => '<repo-root>'
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`samples/react-native-demo/ios/Podfile` takes the `:path` route, exactly as
|
|
69
|
+
`samples/flutter-demo/ios/Podfile` does.
|
|
70
|
+
|
|
71
|
+
> **`main`, not a tag — for now.** A tagged coordinate would be the
|
|
72
|
+
> reproducible one, but `SceneViewSwift.podspec` lives at the repo *root* and
|
|
73
|
+
> landed after `v4.26.0` was cut, so no tag that currently exists carries it:
|
|
74
|
+
> `pod install` against `.../v4.27.0/SceneViewSwift.podspec` is a 404, verified
|
|
75
|
+
> with `git cat-file -e v4.27.0:SceneViewSwift.podspec`. The Flutter plugin
|
|
76
|
+
> documents `main` for the same reason. Both move to
|
|
77
|
+
> `:git => …, :tag => 'vX.Y.Z'` the first time a release is cut with that file
|
|
78
|
+
> in it.
|
|
79
|
+
|
|
80
|
+
> **Always supply the coordinate.** The `SceneViewSwift` name is unclaimed on
|
|
81
|
+
> the CocoaPods trunk, so a `Podfile` that omits the line does not fail closed
|
|
82
|
+
> forever — it would resolve to whatever someone else publishes under that
|
|
83
|
+
> name. The explicit `:podspec` / `:path` line is what makes the source
|
|
84
|
+
> unambiguous.
|
|
85
|
+
|
|
86
|
+
> **Swift Package Manager does not work for this module.** Adding
|
|
87
|
+
> `SceneViewSwift` to the host *project* in Xcode (*File ▸ Add Package
|
|
88
|
+
> Dependencies…*) leaves it invisible here: this module's `ios/*.swift`
|
|
89
|
+
> compiles inside the generated `Pods.xcodeproj`, which does not see the host
|
|
90
|
+
> project's SwiftPM packages, and `import SceneViewSwift` fails with *"Unable
|
|
91
|
+
> to find module dependency: 'SceneViewSwift'"*. The README used to document
|
|
92
|
+
> the SwiftPM route as the supported one; it had never been built, and the
|
|
93
|
+
> first real `xcodebuild` against it failed exactly that way. This closes the
|
|
94
|
+
> React Native half of
|
|
95
|
+
> [#3072](https://github.com/sceneview/sceneview/issues/3072).
|
|
96
|
+
|
|
97
|
+
> **Keep the two versions in step.** npm `4.27.0`'s Swift requires
|
|
98
|
+
> `SceneViewSwift` at tag `v4.27.0` or newer: this module's `ios/*.swift`
|
|
99
|
+
> builds on `SceneViewerHostView` — which landed *after* `v4.26.0`, so no
|
|
100
|
+
> `SceneViewer*` type exists at that tag or any earlier one — and it calls the
|
|
101
|
+
> two-parameter `onTapEntity` (the tapped model root is the second parameter).
|
|
102
|
+
> A mismatch is a loud Swift compile error at build time, not a runtime
|
|
103
|
+
> surprise, but no CI job here will catch it for you: `rn-ios-compile.yml`
|
|
104
|
+
> type-checks against the `SceneViewSwift` sources *in this repo*, not against
|
|
105
|
+
> the tag your app resolves.
|
|
77
106
|
|
|
78
107
|
### Android
|
|
79
108
|
|
|
@@ -220,9 +249,27 @@ coverage map (tracked in [#909](https://github.com/sceneview/sceneview/issues/90
|
|
|
220
249
|
configured natively** on either platform. Setting them has no effect today.
|
|
221
250
|
- **`onPlaneDetected`** — dispatched on **Android** only; SceneViewSwift's
|
|
222
251
|
`ARSceneView` exposes no plane-detection callback, so it never fires on iOS.
|
|
223
|
-
- **`onTap`** — dispatched on
|
|
252
|
+
- **`onTap`** — dispatched on **Android and iOS** on both views. On `SceneView`
|
|
224
253
|
(3D) it carries the tapped model's world position and its file base name
|
|
225
|
-
without extension as `nodeName
|
|
254
|
+
without extension as `nodeName`.
|
|
255
|
+
> **Measured, not inferred ([#3086](https://github.com/sceneview/sceneview/issues/3086)).**
|
|
256
|
+
> The iOS 3D tap was run on an iPhone 17 Pro Max simulator with the Fox USDZ
|
|
257
|
+
> rendering: 5 taps on the model, 5 dispatches, `nodeName` `khronos_fox` every
|
|
258
|
+
> time; a tap on empty space dispatched nothing, as documented below. The path
|
|
259
|
+
> was instrumented at all four stages — gesture arrival, entity resolution,
|
|
260
|
+
> `SceneViewerHostView.reportTap`, and this module's `onTapEntity` block — and
|
|
261
|
+
> every stage fired.
|
|
262
|
+
>
|
|
263
|
+
> This does **not** clear the sibling bridge: Flutter's 3D `onTap` still never
|
|
264
|
+
> fires on iOS ([#3045](https://github.com/sceneview/sceneview/issues/3045)).
|
|
265
|
+
> The same run measured both hosts back to back against the *same*
|
|
266
|
+
> SceneViewSwift build and the same entity graph (11 entities, 1 collision
|
|
267
|
+
> shape, 9 input targets in each): 6 taps on the model under Flutter resolved
|
|
268
|
+
> no entity at all, while the plain, untargeted gesture arrived every time. So
|
|
269
|
+
> #3045 is a property of Flutter's platform-view touch delivery, not of
|
|
270
|
+
> RealityKit's entity-targeted hit test — which is what its write-up claims.
|
|
271
|
+
|
|
272
|
+
On
|
|
226
273
|
`ARSceneView` *what a hit reports* differs: **Android** hit-tests the AR
|
|
227
274
|
scene, so a tap on a model reports that model's file base name just as
|
|
228
275
|
`SceneView` does and a plane hit or a miss reports `null`; **iOS** always
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","isNativeAvailable","Platform","OS","NativeSceneView","requireNativeComponent","NativeARSceneView","UnsupportedView","name","createElement","View","style","fallbackStyles","container","Text","text","StyleSheet","create","flex","justifyContent","alignItems","backgroundColor","color","fontSize","SceneView","props","exports","ARSceneView","NativeARRecorder","NativeModules","RNARRecorder","ARRecorder","isSupported","rejectUnsupported","Promise","reject","Error","start","stop","outputPath","saveToPhotoLibrary","movPath"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AASsB,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAhBtB;AACA;AACA;AACA;AACA;AACA;;AAaA;AACA;AACA;;AAEA;;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","isNativeAvailable","Platform","OS","NativeSceneView","requireNativeComponent","NativeARSceneView","UnsupportedView","name","createElement","View","style","fallbackStyles","container","Text","text","StyleSheet","create","flex","justifyContent","alignItems","backgroundColor","color","fontSize","SceneView","props","exports","ARSceneView","NativeARRecorder","NativeModules","RNARRecorder","ARRecorder","isSupported","rejectUnsupported","Promise","reject","Error","start","stop","outputPath","saveToPhotoLibrary","movPath"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NativeModules","Platform","requireNativeComponent","StyleSheet","Text","View","isNativeAvailable","OS","NativeSceneView","NativeARSceneView","UnsupportedView","name","createElement","style","fallbackStyles","container","text","create","flex","justifyContent","alignItems","backgroundColor","color","fontSize","SceneView","props","ARSceneView","NativeARRecorder","RNARRecorder","ARRecorder","isSupported","rejectUnsupported","Promise","reject","Error","start","stop","outputPath","saveToPhotoLibrary","movPath"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,aAAa,EAEbC,QAAQ,EACRC,sBAAsB,EACtBC,UAAU,EACVC,IAAI,EACJC,IAAI,QAEC,cAAc;;AAErB;AACA;AACA;;AAEA;;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["React","NativeModules","Platform","requireNativeComponent","StyleSheet","Text","View","isNativeAvailable","OS","NativeSceneView","NativeARSceneView","UnsupportedView","name","createElement","style","fallbackStyles","container","text","create","flex","justifyContent","alignItems","backgroundColor","color","fontSize","SceneView","props","ARSceneView","NativeARRecorder","RNARRecorder","ARRecorder","isSupported","rejectUnsupported","Promise","reject","Error","start","stop","outputPath","saveToPhotoLibrary","movPath"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -65,8 +65,11 @@ export interface TapEvent {
|
|
|
65
65
|
z: number;
|
|
66
66
|
/**
|
|
67
67
|
* Name of the tapped model: its file's base name without extension
|
|
68
|
-
* (`models/robot.glb` → `robot`)
|
|
69
|
-
*
|
|
68
|
+
* (`models/robot.glb` → `robot`). Never an asset-internal mesh name — a tap
|
|
69
|
+
* inside a model always reports the model.
|
|
70
|
+
*
|
|
71
|
+
* **Measured on Android and iOS** (#3086) — the iOS run named the
|
|
72
|
+
* tapped model on every dispatch; see {@link SceneViewProps.onTap | `onTap`}.
|
|
70
73
|
*
|
|
71
74
|
* `null` — never `undefined` — when the tap hit no model: an untitled
|
|
72
75
|
* geometry node or nothing at all on Android, a plane or a miss in Android
|
|
@@ -141,9 +144,18 @@ export interface SceneViewProps {
|
|
|
141
144
|
/**
|
|
142
145
|
* Called when the user taps inside the scene.
|
|
143
146
|
*
|
|
147
|
+
* Dispatched on **Android and iOS**. The iOS half was measured on an iPhone
|
|
148
|
+
* 17 Pro Max simulator — 5 taps on a rendering model, 5 dispatches, the
|
|
149
|
+
* model's name every time
|
|
150
|
+
* ({@link https://github.com/sceneview/sceneview/issues/3086 | #3086}).
|
|
151
|
+
* The sibling Flutter bridge still never fires its 3D `onTap` on iOS
|
|
152
|
+
* ({@link https://github.com/sceneview/sceneview/issues/3045 | #3045}); the
|
|
153
|
+
* same run showed that is Flutter's platform-view touch delivery, not this
|
|
154
|
+
* shared RealityKit path, so it does not apply here.
|
|
155
|
+
*
|
|
144
156
|
* The event payload carries the world-space position of the tapped model and
|
|
145
|
-
* its `nodeName` (the model file's base name without extension)
|
|
146
|
-
*
|
|
157
|
+
* its `nodeName` (the model file's base name without extension). A tap that
|
|
158
|
+
* hits no model reports `nodeName: null` — with
|
|
147
159
|
* the tapped node's real world position on Android when it landed on an
|
|
148
160
|
* (unnamed) geometry node, and `0, 0, 0` when it hit nothing at all. That
|
|
149
161
|
* `0, 0, 0` miss is **in practice Android-only**: iOS resolves the tap
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,KAAK,oBAAoB,EAMzB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAMtB,kDAAkD;AAClD,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACvD,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAMD,MAAM,WAAW,QAAQ;IACvB,0CAA0C;IAC1C,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sceneview-sdk/react-native",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.28.0",
|
|
4
4
|
"description": "React Native bindings for SceneView — 3D and AR scenes powered by Filament (Android) and RealityKit (iOS)",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -23,14 +23,32 @@ Pod::Spec.new do |s|
|
|
|
23
23
|
|
|
24
24
|
s.dependency "React-Core"
|
|
25
25
|
|
|
26
|
-
# `
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
#
|
|
32
|
-
#
|
|
33
|
-
#
|
|
26
|
+
# This module's `ios/*.swift` files `import SceneViewSwift`, so the module has
|
|
27
|
+
# to arrive as a POD, not as a Swift package on the host app's project: this
|
|
28
|
+
# source compiles inside the generated `Pods.xcodeproj`, which does not see
|
|
29
|
+
# the host project's SwiftPM packages ("Unable to find module dependency:
|
|
30
|
+
# 'SceneViewSwift'"). The SwiftPM route this spec used to document was never
|
|
31
|
+
# measured — the demo app was scaffolded and never built — and the first real
|
|
32
|
+
# `xcodebuild` against it failed exactly that way. Closes the RN half of #3072.
|
|
33
|
+
#
|
|
34
|
+
# `SceneViewSwift` is NOT on the CocoaPods trunk, so a host app must give the
|
|
35
|
+
# dependency a coordinate of its own — one of:
|
|
36
|
+
# pod 'SceneViewSwift',
|
|
37
|
+
# :podspec => 'https://raw.githubusercontent.com/sceneview/sceneview/main/SceneViewSwift.podspec'
|
|
38
|
+
# pod 'SceneViewSwift', :path => '<repo-root>' # in-repo consumers
|
|
39
|
+
# `main`, not a tag, and not `:git =>, :tag =>`: the root podspec landed after
|
|
40
|
+
# v4.26.0 was cut, so no existing tag carries it and a tagged coordinate 404s
|
|
41
|
+
# (`git cat-file -e v4.27.0:SceneViewSwift.podspec`). `flutter_sceneview.podspec`
|
|
42
|
+
# says `main` for the same reason; both move to a tag once a release carries
|
|
43
|
+
# the file. Supply the coordinate always — the name is unclaimed on the trunk,
|
|
44
|
+
# so a Podfile that leaves it out does not fail closed, it resolves to
|
|
45
|
+
# whatever someone else publishes under that name.
|
|
46
|
+
# `samples/react-native-demo/ios/Podfile` takes the `:path` route, exactly as
|
|
47
|
+
# `samples/flutter-demo/ios/Podfile` does. See this module's README "iOS".
|
|
48
|
+
#
|
|
49
|
+
# Loose `~> 4.27` rather than `= s.version`: an app pinned to an older
|
|
50
|
+
# SceneViewSwift still resolves, mirroring `flutter_sceneview.podspec`.
|
|
51
|
+
s.dependency "SceneViewSwift", "~> 4.28"
|
|
34
52
|
|
|
35
53
|
s.swift_version = "5.9"
|
|
36
54
|
end
|
package/src/index.tsx
CHANGED
|
@@ -92,8 +92,11 @@ export interface TapEvent {
|
|
|
92
92
|
z: number;
|
|
93
93
|
/**
|
|
94
94
|
* Name of the tapped model: its file's base name without extension
|
|
95
|
-
* (`models/robot.glb` → `robot`)
|
|
96
|
-
*
|
|
95
|
+
* (`models/robot.glb` → `robot`). Never an asset-internal mesh name — a tap
|
|
96
|
+
* inside a model always reports the model.
|
|
97
|
+
*
|
|
98
|
+
* **Measured on Android and iOS** (#3086) — the iOS run named the
|
|
99
|
+
* tapped model on every dispatch; see {@link SceneViewProps.onTap | `onTap`}.
|
|
97
100
|
*
|
|
98
101
|
* `null` — never `undefined` — when the tap hit no model: an untitled
|
|
99
102
|
* geometry node or nothing at all on Android, a plane or a miss in Android
|
|
@@ -181,9 +184,18 @@ export interface SceneViewProps {
|
|
|
181
184
|
/**
|
|
182
185
|
* Called when the user taps inside the scene.
|
|
183
186
|
*
|
|
187
|
+
* Dispatched on **Android and iOS**. The iOS half was measured on an iPhone
|
|
188
|
+
* 17 Pro Max simulator — 5 taps on a rendering model, 5 dispatches, the
|
|
189
|
+
* model's name every time
|
|
190
|
+
* ({@link https://github.com/sceneview/sceneview/issues/3086 | #3086}).
|
|
191
|
+
* The sibling Flutter bridge still never fires its 3D `onTap` on iOS
|
|
192
|
+
* ({@link https://github.com/sceneview/sceneview/issues/3045 | #3045}); the
|
|
193
|
+
* same run showed that is Flutter's platform-view touch delivery, not this
|
|
194
|
+
* shared RealityKit path, so it does not apply here.
|
|
195
|
+
*
|
|
184
196
|
* The event payload carries the world-space position of the tapped model and
|
|
185
|
-
* its `nodeName` (the model file's base name without extension)
|
|
186
|
-
*
|
|
197
|
+
* its `nodeName` (the model file's base name without extension). A tap that
|
|
198
|
+
* hits no model reports `nodeName: null` — with
|
|
187
199
|
* the tapped node's real world position on Android when it landed on an
|
|
188
200
|
* (unnamed) geometry node, and `0, 0, 0` when it hit nothing at all. That
|
|
189
201
|
* `0, 0, 0` miss is **in practice Android-only**: iOS resolves the tap
|