@reactvision/react-viro 2.42.0 → 2.43.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.
- package/README.md +12 -6
- package/android/react_viro/react_viro-release.aar +0 -0
- package/components/AR/ViroARPlaneSelector.tsx +76 -37
- package/components/Utilities/ViroVersion.ts +1 -1
- package/dist/components/AR/ViroARPlaneSelector.d.ts +1 -1
- package/dist/components/AR/ViroARPlaneSelector.js +46 -18
- package/dist/components/Utilities/ViroVersion.d.ts +1 -1
- package/dist/components/Utilities/ViroVersion.js +1 -1
- package/dist/dynamic-index.d.ts +11 -0
- package/dist/dynamic-index.js +28 -0
- package/dist/examples/AutoDetectionExample.d.ts +10 -0
- package/dist/examples/AutoDetectionExample.js +91 -0
- package/dist/fabric-interop/NativeViro.d.ts +42 -0
- package/dist/fabric-interop/NativeViro.js +262 -0
- package/dist/fabric-interop/ViroEventsManager.d.ts +83 -0
- package/dist/fabric-interop/ViroEventsManager.js +222 -0
- package/dist/fabric-interop/ViroFabricContainer.d.ts +34 -0
- package/dist/fabric-interop/ViroFabricContainer.js +200 -0
- package/dist/fabric-interop/android/src/main/js/specs/ViroFabricContainerViewNativeComponent.d.ts +35 -0
- package/dist/fabric-interop/android/src/main/js/specs/ViroFabricContainerViewNativeComponent.js +20 -0
- package/dist/fabric-interop/components/AR/ViroARPlane.d.ts +22 -0
- package/dist/fabric-interop/components/AR/ViroARPlane.js +95 -0
- package/dist/fabric-interop/components/AR/ViroARPlaneSelector.d.ts +43 -0
- package/dist/fabric-interop/components/AR/ViroARPlaneSelector.js +152 -0
- package/dist/fabric-interop/components/AR/ViroARTrackingTargets.d.ts +55 -0
- package/dist/fabric-interop/components/AR/ViroARTrackingTargets.js +85 -0
- package/dist/fabric-interop/components/AR/ViroCommonProps.d.ts +91 -0
- package/dist/fabric-interop/components/AR/ViroCommonProps.js +7 -0
- package/dist/fabric-interop/components/Animation/ViroAnimations.d.ts +48 -0
- package/dist/fabric-interop/components/Animation/ViroAnimations.js +64 -0
- package/dist/fabric-interop/components/Material/ViroMaterials.d.ts +66 -0
- package/dist/fabric-interop/components/Material/ViroMaterials.js +85 -0
- package/dist/fabric-interop/components/Types/ViroEvents.d.ts +202 -0
- package/dist/fabric-interop/components/Types/ViroEvents.js +53 -0
- package/dist/fabric-interop/components/Types/ViroUtils.d.ts +137 -0
- package/dist/fabric-interop/components/Types/ViroUtils.js +7 -0
- package/dist/fabric-interop/components/Viro360Image.d.ts +23 -0
- package/dist/fabric-interop/components/Viro360Image.js +45 -0
- package/dist/fabric-interop/components/Viro360Video.d.ts +29 -0
- package/dist/fabric-interop/components/Viro360Video.js +47 -0
- package/dist/fabric-interop/components/Viro3DObject.d.ts +60 -0
- package/dist/fabric-interop/components/Viro3DObject.js +49 -0
- package/dist/fabric-interop/components/Viro3DSceneNavigator.d.ts +49 -0
- package/dist/fabric-interop/components/Viro3DSceneNavigator.js +388 -0
- package/dist/fabric-interop/components/ViroARCamera.d.ts +29 -0
- package/dist/fabric-interop/components/ViroARCamera.js +64 -0
- package/dist/fabric-interop/components/ViroARImageMarker.d.ts +21 -0
- package/dist/fabric-interop/components/ViroARImageMarker.js +71 -0
- package/dist/fabric-interop/components/ViroARObjectMarker.d.ts +21 -0
- package/dist/fabric-interop/components/ViroARObjectMarker.js +71 -0
- package/dist/fabric-interop/components/ViroARPlane.d.ts +24 -0
- package/dist/fabric-interop/components/ViroARPlane.js +88 -0
- package/dist/fabric-interop/components/ViroARScene.d.ts +29 -0
- package/dist/fabric-interop/components/ViroARScene.js +89 -0
- package/dist/fabric-interop/components/ViroARSceneNavigator.d.ts +29 -0
- package/dist/fabric-interop/components/ViroARSceneNavigator.js +76 -0
- package/dist/fabric-interop/components/ViroAmbientLight.d.ts +19 -0
- package/dist/fabric-interop/components/ViroAmbientLight.js +46 -0
- package/dist/fabric-interop/components/ViroAnimatedComponent.d.ts +24 -0
- package/dist/fabric-interop/components/ViroAnimatedComponent.js +63 -0
- package/dist/fabric-interop/components/ViroAnimatedImage.d.ts +28 -0
- package/dist/fabric-interop/components/ViroAnimatedImage.js +49 -0
- package/dist/fabric-interop/components/ViroBox.d.ts +20 -0
- package/dist/fabric-interop/components/ViroBox.js +47 -0
- package/dist/fabric-interop/components/ViroButton.d.ts +32 -0
- package/dist/fabric-interop/components/ViroButton.js +92 -0
- package/dist/fabric-interop/components/ViroCamera.d.ts +17 -0
- package/dist/fabric-interop/components/ViroCamera.js +30 -0
- package/dist/fabric-interop/components/ViroController.d.ts +19 -0
- package/dist/fabric-interop/components/ViroController.js +64 -0
- package/dist/fabric-interop/components/ViroDirectionalLight.d.ts +28 -0
- package/dist/fabric-interop/components/ViroDirectionalLight.js +55 -0
- package/dist/fabric-interop/components/ViroFlexView.d.ts +36 -0
- package/dist/fabric-interop/components/ViroFlexView.js +97 -0
- package/dist/fabric-interop/components/ViroGeometry.d.ts +23 -0
- package/dist/fabric-interop/components/ViroGeometry.js +50 -0
- package/dist/fabric-interop/components/ViroGlobal.d.ts +45 -0
- package/dist/fabric-interop/components/ViroGlobal.js +20 -0
- package/dist/fabric-interop/components/ViroImage.d.ts +29 -0
- package/dist/fabric-interop/components/ViroImage.js +52 -0
- package/dist/fabric-interop/components/ViroLightingEnvironment.d.ts +19 -0
- package/dist/fabric-interop/components/ViroLightingEnvironment.js +44 -0
- package/dist/fabric-interop/components/ViroMaterialVideo.d.ts +30 -0
- package/dist/fabric-interop/components/ViroMaterialVideo.js +48 -0
- package/dist/fabric-interop/components/ViroNode.d.ts +36 -0
- package/dist/fabric-interop/components/ViroNode.js +28 -0
- package/dist/fabric-interop/components/ViroOmniLight.d.ts +21 -0
- package/dist/fabric-interop/components/ViroOmniLight.js +48 -0
- package/dist/fabric-interop/components/ViroOrbitCamera.d.ts +17 -0
- package/dist/fabric-interop/components/ViroOrbitCamera.js +30 -0
- package/dist/fabric-interop/components/ViroParticleEmitter.d.ts +51 -0
- package/dist/fabric-interop/components/ViroParticleEmitter.js +50 -0
- package/dist/fabric-interop/components/ViroPolygon.d.ts +20 -0
- package/dist/fabric-interop/components/ViroPolygon.js +47 -0
- package/dist/fabric-interop/components/ViroPolyline.d.ts +19 -0
- package/dist/fabric-interop/components/ViroPolyline.js +46 -0
- package/dist/fabric-interop/components/ViroPortal.d.ts +16 -0
- package/dist/fabric-interop/components/ViroPortal.js +73 -0
- package/dist/fabric-interop/components/ViroPortalScene.d.ts +16 -0
- package/dist/fabric-interop/components/ViroPortalScene.js +29 -0
- package/dist/fabric-interop/components/ViroQuad.d.ts +39 -0
- package/dist/fabric-interop/components/ViroQuad.js +49 -0
- package/dist/fabric-interop/components/ViroScene.d.ts +29 -0
- package/dist/fabric-interop/components/ViroScene.js +103 -0
- package/dist/fabric-interop/components/ViroSceneNavigator.d.ts +23 -0
- package/dist/fabric-interop/components/ViroSceneNavigator.js +73 -0
- package/dist/fabric-interop/components/ViroSkyBox.d.ts +39 -0
- package/dist/fabric-interop/components/ViroSkyBox.js +44 -0
- package/dist/fabric-interop/components/ViroSound.d.ts +23 -0
- package/dist/fabric-interop/components/ViroSound.js +46 -0
- package/dist/fabric-interop/components/ViroSoundField.d.ts +24 -0
- package/dist/fabric-interop/components/ViroSoundField.js +47 -0
- package/dist/fabric-interop/components/ViroSpatialSound.d.ts +27 -0
- package/dist/fabric-interop/components/ViroSpatialSound.js +50 -0
- package/dist/fabric-interop/components/ViroSphere.d.ts +22 -0
- package/dist/fabric-interop/components/ViroSphere.js +49 -0
- package/dist/fabric-interop/components/ViroSpinner.d.ts +18 -0
- package/dist/fabric-interop/components/ViroSpinner.js +45 -0
- package/dist/fabric-interop/components/ViroSpotLight.d.ts +30 -0
- package/dist/fabric-interop/components/ViroSpotLight.js +57 -0
- package/dist/fabric-interop/components/ViroSurface.d.ts +38 -0
- package/dist/fabric-interop/components/ViroSurface.js +48 -0
- package/dist/fabric-interop/components/ViroText.d.ts +36 -0
- package/dist/fabric-interop/components/ViroText.js +59 -0
- package/dist/fabric-interop/components/ViroUtils.d.ts +63 -0
- package/dist/fabric-interop/components/ViroUtils.js +140 -0
- package/dist/fabric-interop/components/ViroVRSceneNavigator.d.ts +25 -0
- package/dist/fabric-interop/components/ViroVRSceneNavigator.js +73 -0
- package/dist/fabric-interop/components/ViroVideo.d.ts +32 -0
- package/dist/fabric-interop/components/ViroVideo.js +52 -0
- package/dist/fabric-interop/components/index.d.ts +62 -0
- package/dist/fabric-interop/components/index.js +144 -0
- package/dist/fabric-interop/examples/BasicSceneExample.d.ts +11 -0
- package/dist/fabric-interop/examples/BasicSceneExample.js +244 -0
- package/dist/fabric-interop/examples/ComprehensiveExample.d.ts +13 -0
- package/dist/fabric-interop/examples/ComprehensiveExample.js +327 -0
- package/dist/fabric-interop/examples/SimpleARExample.d.ts +8 -0
- package/dist/fabric-interop/examples/SimpleARExample.js +62 -0
- package/dist/fabric-interop/index.d.ts +14 -0
- package/dist/fabric-interop/index.js +117 -0
- package/dist/fabric-interop/specs/ViroEventsTurboModule.d.ts +19 -0
- package/dist/fabric-interop/specs/ViroEventsTurboModule.js +11 -0
- package/dist/fabric-interop/test/BasicFunctionalityTest.d.ts +9 -0
- package/dist/fabric-interop/test/BasicFunctionalityTest.js +222 -0
- package/dist/fabric.d.ts +13 -0
- package/dist/fabric.js +29 -0
- package/dist/plugins/withViro.d.ts +3 -0
- package/dist/plugins/withViro.js +19 -0
- package/dist/plugins/withViroAndroid.js +24 -20
- package/dist/plugins/withViroIos.js +20 -2
- package/dynamic-index-source.d.ts +77 -0
- package/dynamic-index.ts +41 -0
- package/fabric-interop/NativeViro.ts +335 -0
- package/fabric-interop/README.md +282 -0
- package/fabric-interop/ViroEventsManager.js +257 -0
- package/fabric-interop/ViroFabricContainer.tsx +273 -0
- package/fabric-interop/components/AR/ViroARPlane.tsx +108 -0
- package/fabric-interop/components/AR/ViroARPlaneSelector.tsx +185 -0
- package/fabric-interop/components/AR/ViroARTrackingTargets.ts +108 -0
- package/fabric-interop/components/AR/ViroCommonProps.ts +140 -0
- package/fabric-interop/components/Animation/ViroAnimations.ts +96 -0
- package/fabric-interop/components/Material/ViroMaterials.ts +127 -0
- package/fabric-interop/components/Resources/viro_spinner_1.png +0 -0
- package/fabric-interop/components/Resources/viro_spinner_1_w.png +0 -0
- package/fabric-interop/components/Resources/viro_spinner_1a.png +0 -0
- package/fabric-interop/components/Resources/viro_spinner_1a_w.png +0 -0
- package/fabric-interop/components/Types/ViroEvents.ts +285 -0
- package/fabric-interop/components/Types/ViroUtils.ts +160 -0
- package/fabric-interop/components/Viro360Image.tsx +70 -0
- package/fabric-interop/components/Viro360Video.tsx +78 -0
- package/fabric-interop/components/Viro3DObject.tsx +122 -0
- package/fabric-interop/components/Viro3DSceneNavigator.tsx +503 -0
- package/fabric-interop/components/ViroARCamera.tsx +105 -0
- package/fabric-interop/components/ViroARImageMarker.tsx +98 -0
- package/fabric-interop/components/ViroARObjectMarker.tsx +100 -0
- package/fabric-interop/components/ViroARPlane.tsx +120 -0
- package/fabric-interop/components/ViroARScene.tsx +127 -0
- package/fabric-interop/components/ViroARSceneNavigator.tsx +82 -0
- package/fabric-interop/components/ViroAmbientLight.tsx +62 -0
- package/fabric-interop/components/ViroAnimatedComponent.tsx +91 -0
- package/fabric-interop/components/ViroAnimatedImage.tsx +81 -0
- package/fabric-interop/components/ViroBox.tsx +72 -0
- package/fabric-interop/components/ViroButton.tsx +125 -0
- package/fabric-interop/components/ViroCamera.tsx +45 -0
- package/fabric-interop/components/ViroController.tsx +87 -0
- package/fabric-interop/components/ViroDirectionalLight.tsx +84 -0
- package/fabric-interop/components/ViroFlexView.tsx +146 -0
- package/fabric-interop/components/ViroGeometry.tsx +78 -0
- package/fabric-interop/components/ViroGlobal.ts +114 -0
- package/fabric-interop/components/ViroImage.tsx +85 -0
- package/fabric-interop/components/ViroLightingEnvironment.tsx +63 -0
- package/fabric-interop/components/ViroMaterialVideo.tsx +82 -0
- package/fabric-interop/components/ViroNode.tsx +62 -0
- package/fabric-interop/components/ViroOmniLight.tsx +66 -0
- package/fabric-interop/components/ViroOrbitCamera.tsx +45 -0
- package/fabric-interop/components/ViroParticleEmitter.tsx +111 -0
- package/fabric-interop/components/ViroPolygon.tsx +72 -0
- package/fabric-interop/components/ViroPolyline.tsx +71 -0
- package/fabric-interop/components/ViroPortal.tsx +91 -0
- package/fabric-interop/components/ViroPortalScene.tsx +43 -0
- package/fabric-interop/components/ViroQuad.tsx +82 -0
- package/fabric-interop/components/ViroScene.tsx +117 -0
- package/fabric-interop/components/ViroSceneNavigator.tsx +71 -0
- package/fabric-interop/components/ViroSkyBox.tsx +75 -0
- package/fabric-interop/components/ViroSound.tsx +71 -0
- package/fabric-interop/components/ViroSoundField.tsx +75 -0
- package/fabric-interop/components/ViroSpatialSound.tsx +81 -0
- package/fabric-interop/components/ViroSphere.tsx +75 -0
- package/fabric-interop/components/ViroSpinner.tsx +63 -0
- package/fabric-interop/components/ViroSpotLight.tsx +86 -0
- package/fabric-interop/components/ViroSurface.tsx +80 -0
- package/fabric-interop/components/ViroText.tsx +114 -0
- package/fabric-interop/components/ViroUtils.ts +208 -0
- package/fabric-interop/components/ViroVRSceneNavigator.tsx +75 -0
- package/fabric-interop/components/ViroVideo.tsx +91 -0
- package/fabric-interop/components/index.ts +94 -0
- package/fabric-interop/dist/NativeViro.d.ts +43 -0
- package/fabric-interop/dist/NativeViro.d.ts.map +1 -0
- package/fabric-interop/dist/NativeViro.js +263 -0
- package/fabric-interop/dist/NativeViro.js.map +1 -0
- package/fabric-interop/dist/ViroFabricContainer.d.ts +35 -0
- package/fabric-interop/dist/ViroFabricContainer.d.ts.map +1 -0
- package/fabric-interop/dist/ViroFabricContainer.js +201 -0
- package/fabric-interop/dist/ViroFabricContainer.js.map +1 -0
- package/fabric-interop/dist/components/AR/ViroARPlane.d.ts +23 -0
- package/fabric-interop/dist/components/AR/ViroARPlane.d.ts.map +1 -0
- package/fabric-interop/dist/components/AR/ViroARPlane.js +96 -0
- package/fabric-interop/dist/components/AR/ViroARPlane.js.map +1 -0
- package/fabric-interop/dist/components/AR/ViroARPlaneSelector.d.ts +44 -0
- package/fabric-interop/dist/components/AR/ViroARPlaneSelector.d.ts.map +1 -0
- package/fabric-interop/dist/components/AR/ViroARPlaneSelector.js +156 -0
- package/fabric-interop/dist/components/AR/ViroARPlaneSelector.js.map +1 -0
- package/fabric-interop/dist/components/AR/ViroARTrackingTargets.d.ts +56 -0
- package/fabric-interop/dist/components/AR/ViroARTrackingTargets.d.ts.map +1 -0
- package/fabric-interop/dist/components/AR/ViroARTrackingTargets.js +86 -0
- package/fabric-interop/dist/components/AR/ViroARTrackingTargets.js.map +1 -0
- package/fabric-interop/dist/components/AR/ViroCommonProps.d.ts +92 -0
- package/fabric-interop/dist/components/AR/ViroCommonProps.d.ts.map +1 -0
- package/fabric-interop/dist/components/AR/ViroCommonProps.js +8 -0
- package/fabric-interop/dist/components/AR/ViroCommonProps.js.map +1 -0
- package/fabric-interop/dist/components/Animation/ViroAnimations.d.ts +49 -0
- package/fabric-interop/dist/components/Animation/ViroAnimations.d.ts.map +1 -0
- package/fabric-interop/dist/components/Animation/ViroAnimations.js +65 -0
- package/fabric-interop/dist/components/Animation/ViroAnimations.js.map +1 -0
- package/fabric-interop/dist/components/Material/ViroMaterials.d.ts +67 -0
- package/fabric-interop/dist/components/Material/ViroMaterials.d.ts.map +1 -0
- package/fabric-interop/dist/components/Material/ViroMaterials.js +86 -0
- package/fabric-interop/dist/components/Material/ViroMaterials.js.map +1 -0
- package/fabric-interop/dist/components/Types/ViroEvents.d.ts +203 -0
- package/fabric-interop/dist/components/Types/ViroEvents.d.ts.map +1 -0
- package/fabric-interop/dist/components/Types/ViroEvents.js +54 -0
- package/fabric-interop/dist/components/Types/ViroEvents.js.map +1 -0
- package/fabric-interop/dist/components/Types/ViroUtils.d.ts +138 -0
- package/fabric-interop/dist/components/Types/ViroUtils.d.ts.map +1 -0
- package/fabric-interop/dist/components/Types/ViroUtils.js +8 -0
- package/fabric-interop/dist/components/Types/ViroUtils.js.map +1 -0
- package/fabric-interop/dist/components/Viro360Image.d.ts +24 -0
- package/fabric-interop/dist/components/Viro360Image.d.ts.map +1 -0
- package/fabric-interop/dist/components/Viro360Image.js +47 -0
- package/fabric-interop/dist/components/Viro360Image.js.map +1 -0
- package/fabric-interop/dist/components/Viro360Video.d.ts +30 -0
- package/fabric-interop/dist/components/Viro360Video.d.ts.map +1 -0
- package/fabric-interop/dist/components/Viro360Video.js +49 -0
- package/fabric-interop/dist/components/Viro360Video.js.map +1 -0
- package/fabric-interop/dist/components/Viro3DObject.d.ts +61 -0
- package/fabric-interop/dist/components/Viro3DObject.d.ts.map +1 -0
- package/fabric-interop/dist/components/Viro3DObject.js +51 -0
- package/fabric-interop/dist/components/Viro3DObject.js.map +1 -0
- package/fabric-interop/dist/components/Viro3DSceneNavigator.d.ts +50 -0
- package/fabric-interop/dist/components/Viro3DSceneNavigator.d.ts.map +1 -0
- package/fabric-interop/dist/components/Viro3DSceneNavigator.js +389 -0
- package/fabric-interop/dist/components/Viro3DSceneNavigator.js.map +1 -0
- package/fabric-interop/dist/components/ViroARCamera.d.ts +30 -0
- package/fabric-interop/dist/components/ViroARCamera.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroARCamera.js +65 -0
- package/fabric-interop/dist/components/ViroARCamera.js.map +1 -0
- package/fabric-interop/dist/components/ViroARImageMarker.d.ts +22 -0
- package/fabric-interop/dist/components/ViroARImageMarker.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroARImageMarker.js +72 -0
- package/fabric-interop/dist/components/ViroARImageMarker.js.map +1 -0
- package/fabric-interop/dist/components/ViroARObjectMarker.d.ts +22 -0
- package/fabric-interop/dist/components/ViroARObjectMarker.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroARObjectMarker.js +72 -0
- package/fabric-interop/dist/components/ViroARObjectMarker.js.map +1 -0
- package/fabric-interop/dist/components/ViroARPlane.d.ts +25 -0
- package/fabric-interop/dist/components/ViroARPlane.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroARPlane.js +89 -0
- package/fabric-interop/dist/components/ViroARPlane.js.map +1 -0
- package/fabric-interop/dist/components/ViroARScene.d.ts +30 -0
- package/fabric-interop/dist/components/ViroARScene.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroARScene.js +90 -0
- package/fabric-interop/dist/components/ViroARScene.js.map +1 -0
- package/fabric-interop/dist/components/ViroARSceneNavigator.d.ts +30 -0
- package/fabric-interop/dist/components/ViroARSceneNavigator.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroARSceneNavigator.js +78 -0
- package/fabric-interop/dist/components/ViroARSceneNavigator.js.map +1 -0
- package/fabric-interop/dist/components/ViroAmbientLight.d.ts +20 -0
- package/fabric-interop/dist/components/ViroAmbientLight.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroAmbientLight.js +48 -0
- package/fabric-interop/dist/components/ViroAmbientLight.js.map +1 -0
- package/fabric-interop/dist/components/ViroAnimatedComponent.d.ts +25 -0
- package/fabric-interop/dist/components/ViroAnimatedComponent.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroAnimatedComponent.js +65 -0
- package/fabric-interop/dist/components/ViroAnimatedComponent.js.map +1 -0
- package/fabric-interop/dist/components/ViroAnimatedImage.d.ts +29 -0
- package/fabric-interop/dist/components/ViroAnimatedImage.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroAnimatedImage.js +51 -0
- package/fabric-interop/dist/components/ViroAnimatedImage.js.map +1 -0
- package/fabric-interop/dist/components/ViroBox.d.ts +21 -0
- package/fabric-interop/dist/components/ViroBox.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroBox.js +49 -0
- package/fabric-interop/dist/components/ViroBox.js.map +1 -0
- package/fabric-interop/dist/components/ViroButton.d.ts +33 -0
- package/fabric-interop/dist/components/ViroButton.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroButton.js +94 -0
- package/fabric-interop/dist/components/ViroButton.js.map +1 -0
- package/fabric-interop/dist/components/ViroCamera.d.ts +18 -0
- package/fabric-interop/dist/components/ViroCamera.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroCamera.js +31 -0
- package/fabric-interop/dist/components/ViroCamera.js.map +1 -0
- package/fabric-interop/dist/components/ViroController.d.ts +20 -0
- package/fabric-interop/dist/components/ViroController.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroController.js +65 -0
- package/fabric-interop/dist/components/ViroController.js.map +1 -0
- package/fabric-interop/dist/components/ViroDirectionalLight.d.ts +29 -0
- package/fabric-interop/dist/components/ViroDirectionalLight.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroDirectionalLight.js +57 -0
- package/fabric-interop/dist/components/ViroDirectionalLight.js.map +1 -0
- package/fabric-interop/dist/components/ViroFlexView.d.ts +37 -0
- package/fabric-interop/dist/components/ViroFlexView.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroFlexView.js +98 -0
- package/fabric-interop/dist/components/ViroFlexView.js.map +1 -0
- package/fabric-interop/dist/components/ViroGeometry.d.ts +24 -0
- package/fabric-interop/dist/components/ViroGeometry.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroGeometry.js +52 -0
- package/fabric-interop/dist/components/ViroGeometry.js.map +1 -0
- package/fabric-interop/dist/components/ViroGlobal.d.ts +46 -0
- package/fabric-interop/dist/components/ViroGlobal.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroGlobal.js +21 -0
- package/fabric-interop/dist/components/ViroGlobal.js.map +1 -0
- package/fabric-interop/dist/components/ViroImage.d.ts +30 -0
- package/fabric-interop/dist/components/ViroImage.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroImage.js +54 -0
- package/fabric-interop/dist/components/ViroImage.js.map +1 -0
- package/fabric-interop/dist/components/ViroLightingEnvironment.d.ts +20 -0
- package/fabric-interop/dist/components/ViroLightingEnvironment.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroLightingEnvironment.js +46 -0
- package/fabric-interop/dist/components/ViroLightingEnvironment.js.map +1 -0
- package/fabric-interop/dist/components/ViroMaterialVideo.d.ts +31 -0
- package/fabric-interop/dist/components/ViroMaterialVideo.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroMaterialVideo.js +50 -0
- package/fabric-interop/dist/components/ViroMaterialVideo.js.map +1 -0
- package/fabric-interop/dist/components/ViroNode.d.ts +37 -0
- package/fabric-interop/dist/components/ViroNode.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroNode.js +29 -0
- package/fabric-interop/dist/components/ViroNode.js.map +1 -0
- package/fabric-interop/dist/components/ViroOmniLight.d.ts +22 -0
- package/fabric-interop/dist/components/ViroOmniLight.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroOmniLight.js +50 -0
- package/fabric-interop/dist/components/ViroOmniLight.js.map +1 -0
- package/fabric-interop/dist/components/ViroOrbitCamera.d.ts +18 -0
- package/fabric-interop/dist/components/ViroOrbitCamera.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroOrbitCamera.js +31 -0
- package/fabric-interop/dist/components/ViroOrbitCamera.js.map +1 -0
- package/fabric-interop/dist/components/ViroParticleEmitter.d.ts +52 -0
- package/fabric-interop/dist/components/ViroParticleEmitter.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroParticleEmitter.js +52 -0
- package/fabric-interop/dist/components/ViroParticleEmitter.js.map +1 -0
- package/fabric-interop/dist/components/ViroPolygon.d.ts +21 -0
- package/fabric-interop/dist/components/ViroPolygon.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroPolygon.js +49 -0
- package/fabric-interop/dist/components/ViroPolygon.js.map +1 -0
- package/fabric-interop/dist/components/ViroPolyline.d.ts +20 -0
- package/fabric-interop/dist/components/ViroPolyline.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroPolyline.js +48 -0
- package/fabric-interop/dist/components/ViroPolyline.js.map +1 -0
- package/fabric-interop/dist/components/ViroPortal.d.ts +17 -0
- package/fabric-interop/dist/components/ViroPortal.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroPortal.js +74 -0
- package/fabric-interop/dist/components/ViroPortal.js.map +1 -0
- package/fabric-interop/dist/components/ViroPortalScene.d.ts +17 -0
- package/fabric-interop/dist/components/ViroPortalScene.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroPortalScene.js +30 -0
- package/fabric-interop/dist/components/ViroPortalScene.js.map +1 -0
- package/fabric-interop/dist/components/ViroQuad.d.ts +40 -0
- package/fabric-interop/dist/components/ViroQuad.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroQuad.js +51 -0
- package/fabric-interop/dist/components/ViroQuad.js.map +1 -0
- package/fabric-interop/dist/components/ViroScene.d.ts +30 -0
- package/fabric-interop/dist/components/ViroScene.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroScene.js +105 -0
- package/fabric-interop/dist/components/ViroScene.js.map +1 -0
- package/fabric-interop/dist/components/ViroSceneNavigator.d.ts +24 -0
- package/fabric-interop/dist/components/ViroSceneNavigator.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroSceneNavigator.js +74 -0
- package/fabric-interop/dist/components/ViroSceneNavigator.js.map +1 -0
- package/fabric-interop/dist/components/ViroSkyBox.d.ts +40 -0
- package/fabric-interop/dist/components/ViroSkyBox.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroSkyBox.js +46 -0
- package/fabric-interop/dist/components/ViroSkyBox.js.map +1 -0
- package/fabric-interop/dist/components/ViroSound.d.ts +24 -0
- package/fabric-interop/dist/components/ViroSound.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroSound.js +48 -0
- package/fabric-interop/dist/components/ViroSound.js.map +1 -0
- package/fabric-interop/dist/components/ViroSoundField.d.ts +25 -0
- package/fabric-interop/dist/components/ViroSoundField.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroSoundField.js +49 -0
- package/fabric-interop/dist/components/ViroSoundField.js.map +1 -0
- package/fabric-interop/dist/components/ViroSpatialSound.d.ts +28 -0
- package/fabric-interop/dist/components/ViroSpatialSound.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroSpatialSound.js +52 -0
- package/fabric-interop/dist/components/ViroSpatialSound.js.map +1 -0
- package/fabric-interop/dist/components/ViroSphere.d.ts +23 -0
- package/fabric-interop/dist/components/ViroSphere.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroSphere.js +51 -0
- package/fabric-interop/dist/components/ViroSphere.js.map +1 -0
- package/fabric-interop/dist/components/ViroSpinner.d.ts +19 -0
- package/fabric-interop/dist/components/ViroSpinner.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroSpinner.js +47 -0
- package/fabric-interop/dist/components/ViroSpinner.js.map +1 -0
- package/fabric-interop/dist/components/ViroSpotLight.d.ts +31 -0
- package/fabric-interop/dist/components/ViroSpotLight.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroSpotLight.js +59 -0
- package/fabric-interop/dist/components/ViroSpotLight.js.map +1 -0
- package/fabric-interop/dist/components/ViroSurface.d.ts +39 -0
- package/fabric-interop/dist/components/ViroSurface.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroSurface.js +50 -0
- package/fabric-interop/dist/components/ViroSurface.js.map +1 -0
- package/fabric-interop/dist/components/ViroText.d.ts +37 -0
- package/fabric-interop/dist/components/ViroText.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroText.js +61 -0
- package/fabric-interop/dist/components/ViroText.js.map +1 -0
- package/fabric-interop/dist/components/ViroUtils.d.ts +64 -0
- package/fabric-interop/dist/components/ViroUtils.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroUtils.js +141 -0
- package/fabric-interop/dist/components/ViroUtils.js.map +1 -0
- package/fabric-interop/dist/components/ViroVRSceneNavigator.d.ts +26 -0
- package/fabric-interop/dist/components/ViroVRSceneNavigator.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroVRSceneNavigator.js +74 -0
- package/fabric-interop/dist/components/ViroVRSceneNavigator.js.map +1 -0
- package/fabric-interop/dist/components/ViroVideo.d.ts +33 -0
- package/fabric-interop/dist/components/ViroVideo.d.ts.map +1 -0
- package/fabric-interop/dist/components/ViroVideo.js +54 -0
- package/fabric-interop/dist/components/ViroVideo.js.map +1 -0
- package/fabric-interop/dist/components/index.d.ts +63 -0
- package/fabric-interop/dist/components/index.d.ts.map +1 -0
- package/fabric-interop/dist/components/index.js +145 -0
- package/fabric-interop/dist/components/index.js.map +1 -0
- package/fabric-interop/dist/index.d.ts +15 -0
- package/fabric-interop/dist/index.d.ts.map +1 -0
- package/fabric-interop/dist/index.js +118 -0
- package/fabric-interop/dist/index.js.map +1 -0
- package/fabric-interop/dist/specs/ViroEventsTurboModule.d.ts +20 -0
- package/fabric-interop/dist/specs/ViroEventsTurboModule.d.ts.map +1 -0
- package/fabric-interop/dist/specs/ViroEventsTurboModule.js +12 -0
- package/fabric-interop/dist/specs/ViroEventsTurboModule.js.map +1 -0
- package/fabric-interop/examples/BasicSceneExample.tsx +287 -0
- package/fabric-interop/examples/ComprehensiveExample.tsx +441 -0
- package/fabric-interop/examples/SimpleARExample.tsx +95 -0
- package/fabric-interop/global.d.ts +14 -0
- package/fabric-interop/index.ts +107 -0
- package/fabric-interop/metro.config.js +12 -0
- package/fabric-interop/package.json +40 -0
- package/fabric-interop/react-native.config.js +22 -0
- package/fabric-interop/scripts/validate-build.js +393 -0
- package/fabric-interop/scripts/validate-implementation.js +272 -0
- package/fabric-interop/specs/README.md +22 -0
- package/fabric-interop/specs/ViroEventsTurboModule.ts +27 -0
- package/fabric-interop/test/BasicFunctionalityTest.tsx +243 -0
- package/fabric-interop/tsconfig.json +38 -0
- package/fabric.d.ts +5 -0
- package/fabric.ts +14 -0
- package/ios/ViroReact.podspec +51 -11
- package/package.json +33 -20
- package/scripts/copy-types.js +46 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroSpatialSound
|
|
3
|
+
*
|
|
4
|
+
* A component for playing 3D positioned audio in the scene.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroCommonProps,
|
|
10
|
+
useViroNode,
|
|
11
|
+
convertCommonProps,
|
|
12
|
+
useViroEventListeners,
|
|
13
|
+
} from "./ViroUtils";
|
|
14
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
15
|
+
|
|
16
|
+
export interface ViroSpatialSoundProps extends ViroCommonProps {
|
|
17
|
+
// Audio source
|
|
18
|
+
source: { uri: string } | number;
|
|
19
|
+
|
|
20
|
+
// Audio properties
|
|
21
|
+
paused?: boolean;
|
|
22
|
+
volume?: number;
|
|
23
|
+
muted?: boolean;
|
|
24
|
+
loop?: boolean;
|
|
25
|
+
|
|
26
|
+
// Spatial properties
|
|
27
|
+
minDistance?: number;
|
|
28
|
+
maxDistance?: number;
|
|
29
|
+
rolloffModel?: "linear" | "exponential" | "logarithmic";
|
|
30
|
+
distanceRolloffFactor?: number;
|
|
31
|
+
|
|
32
|
+
// Events
|
|
33
|
+
onFinish?: () => void;
|
|
34
|
+
onError?: (error: string) => void;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* ViroSpatialSound is a component for playing 3D positioned audio in the scene.
|
|
39
|
+
* It provides spatial audio that changes based on the listener's position relative to the sound source.
|
|
40
|
+
*/
|
|
41
|
+
export const ViroSpatialSound: React.FC<ViroSpatialSoundProps> = (props) => {
|
|
42
|
+
// Convert common props to the format expected by the native code
|
|
43
|
+
const nativeProps = {
|
|
44
|
+
...convertCommonProps(props),
|
|
45
|
+
source: props.source,
|
|
46
|
+
paused: props.paused,
|
|
47
|
+
volume: props.volume,
|
|
48
|
+
muted: props.muted,
|
|
49
|
+
loop: props.loop,
|
|
50
|
+
minDistance: props.minDistance,
|
|
51
|
+
maxDistance: props.maxDistance,
|
|
52
|
+
rolloffModel: props.rolloffModel,
|
|
53
|
+
distanceRolloffFactor: props.distanceRolloffFactor,
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// Create the node (parent will be determined by context)
|
|
57
|
+
const nodeId = useViroNode("spatialSound", nativeProps);
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
// Register event handlers using our new event system
|
|
61
|
+
useViroEventListeners(nodeId, {
|
|
62
|
+
onHover: props.onHover,
|
|
63
|
+
onClick: props.onClick,
|
|
64
|
+
onClickState: props.onClickState,
|
|
65
|
+
onTouch: props.onTouch,
|
|
66
|
+
onScroll: props.onScroll,
|
|
67
|
+
onSwipe: props.onSwipe,
|
|
68
|
+
onDrag: props.onDrag,
|
|
69
|
+
onPinch: props.onPinch,
|
|
70
|
+
onRotate: props.onRotate,
|
|
71
|
+
onFuse:
|
|
72
|
+
typeof props.onFuse === "function"
|
|
73
|
+
? props.onFuse
|
|
74
|
+
: props.onFuse?.callback,
|
|
75
|
+
onCollision: props.onCollision,
|
|
76
|
+
onTransformUpdate: props.onTransformUpdate,
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// Component doesn't have children, so just return null
|
|
80
|
+
return null;
|
|
81
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroSphere
|
|
3
|
+
*
|
|
4
|
+
* A 3D sphere component with customizable radius and materials.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroCommonProps,
|
|
10
|
+
useViroNode,
|
|
11
|
+
useViroEventListeners,
|
|
12
|
+
convertCommonProps,
|
|
13
|
+
} from "./ViroUtils";
|
|
14
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
15
|
+
|
|
16
|
+
export interface ViroSphereProps extends ViroCommonProps {
|
|
17
|
+
// Sphere-specific props
|
|
18
|
+
radius?: number;
|
|
19
|
+
facesCount?: number;
|
|
20
|
+
segmentCount?: number;
|
|
21
|
+
widthSegmentCount?: number;
|
|
22
|
+
heightSegmentCount?: number;
|
|
23
|
+
materials?: string | string[];
|
|
24
|
+
|
|
25
|
+
// Lighting props
|
|
26
|
+
lightReceivingBitMask?: number;
|
|
27
|
+
shadowCastingBitMask?: number;
|
|
28
|
+
|
|
29
|
+
// Physics props
|
|
30
|
+
highAccuracyEvents?: boolean;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* ViroSphere is a 3D sphere component with customizable radius and materials.
|
|
35
|
+
*/
|
|
36
|
+
export const ViroSphere: React.FC<ViroSphereProps> = (props) => {
|
|
37
|
+
// Convert common props to the format expected by the native code
|
|
38
|
+
const nativeProps = {
|
|
39
|
+
...convertCommonProps(props),
|
|
40
|
+
radius: props.radius ?? 1,
|
|
41
|
+
facesCount: props.facesCount,
|
|
42
|
+
segmentCount: props.segmentCount,
|
|
43
|
+
widthSegmentCount: props.widthSegmentCount,
|
|
44
|
+
heightSegmentCount: props.heightSegmentCount,
|
|
45
|
+
materials: props.materials,
|
|
46
|
+
lightReceivingBitMask: props.lightReceivingBitMask,
|
|
47
|
+
shadowCastingBitMask: props.shadowCastingBitMask,
|
|
48
|
+
highAccuracyEvents: props.highAccuracyEvents,
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// Create the node (parent will be determined by context)
|
|
52
|
+
const nodeId = useViroNode("sphere", nativeProps);
|
|
53
|
+
|
|
54
|
+
// Register event handlers using our new event system
|
|
55
|
+
useViroEventListeners(nodeId, {
|
|
56
|
+
onHover: props.onHover,
|
|
57
|
+
onClick: props.onClick,
|
|
58
|
+
onClickState: props.onClickState,
|
|
59
|
+
onTouch: props.onTouch,
|
|
60
|
+
onScroll: props.onScroll,
|
|
61
|
+
onSwipe: props.onSwipe,
|
|
62
|
+
onDrag: props.onDrag,
|
|
63
|
+
onPinch: props.onPinch,
|
|
64
|
+
onRotate: props.onRotate,
|
|
65
|
+
onFuse:
|
|
66
|
+
typeof props.onFuse === "function"
|
|
67
|
+
? props.onFuse
|
|
68
|
+
: props.onFuse?.callback,
|
|
69
|
+
onCollision: props.onCollision,
|
|
70
|
+
onTransformUpdate: props.onTransformUpdate,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
// Sphere doesn't have children, so just return null
|
|
74
|
+
return null;
|
|
75
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroSpinner
|
|
3
|
+
*
|
|
4
|
+
* A component for displaying loading spinners in 3D space.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroCommonProps,
|
|
10
|
+
useViroNode,
|
|
11
|
+
convertCommonProps,
|
|
12
|
+
useViroEventListeners,
|
|
13
|
+
} from "./ViroUtils";
|
|
14
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
15
|
+
|
|
16
|
+
export interface ViroSpinnerProps extends ViroCommonProps {
|
|
17
|
+
// Spinner properties
|
|
18
|
+
type?: "light" | "dark";
|
|
19
|
+
size?: "small" | "large";
|
|
20
|
+
|
|
21
|
+
// Lighting props
|
|
22
|
+
lightReceivingBitMask?: number;
|
|
23
|
+
shadowCastingBitMask?: number;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* ViroSpinner is a component for displaying loading spinners in 3D space.
|
|
28
|
+
* It provides visual feedback during loading operations.
|
|
29
|
+
*/
|
|
30
|
+
export const ViroSpinner: React.FC<ViroSpinnerProps> = (props) => {
|
|
31
|
+
// Convert common props to the format expected by the native code
|
|
32
|
+
const nativeProps = {
|
|
33
|
+
...convertCommonProps(props),
|
|
34
|
+
type: props.type,
|
|
35
|
+
size: props.size,
|
|
36
|
+
lightReceivingBitMask: props.lightReceivingBitMask,
|
|
37
|
+
shadowCastingBitMask: props.shadowCastingBitMask,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// Create the node (parent will be determined by context)
|
|
41
|
+
const nodeId = useViroNode("image", nativeProps);
|
|
42
|
+
// Register event handlers using our new event system
|
|
43
|
+
useViroEventListeners(nodeId, {
|
|
44
|
+
onHover: props.onHover,
|
|
45
|
+
onClick: props.onClick,
|
|
46
|
+
onClickState: props.onClickState,
|
|
47
|
+
onTouch: props.onTouch,
|
|
48
|
+
onScroll: props.onScroll,
|
|
49
|
+
onSwipe: props.onSwipe,
|
|
50
|
+
onDrag: props.onDrag,
|
|
51
|
+
onPinch: props.onPinch,
|
|
52
|
+
onRotate: props.onRotate,
|
|
53
|
+
onFuse:
|
|
54
|
+
typeof props.onFuse === "function"
|
|
55
|
+
? props.onFuse
|
|
56
|
+
: props.onFuse?.callback,
|
|
57
|
+
onCollision: props.onCollision,
|
|
58
|
+
onTransformUpdate: props.onTransformUpdate,
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Component doesn't have children, so just return null
|
|
62
|
+
return null;
|
|
63
|
+
};
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroSpotLight
|
|
3
|
+
*
|
|
4
|
+
* A component for adding spot lighting to a scene.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroCommonProps,
|
|
10
|
+
useViroNode,
|
|
11
|
+
convertCommonProps,
|
|
12
|
+
useViroEventListeners,
|
|
13
|
+
} from "./ViroUtils";
|
|
14
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
15
|
+
|
|
16
|
+
export interface ViroSpotLightProps extends ViroCommonProps {
|
|
17
|
+
// Light properties
|
|
18
|
+
color?: string;
|
|
19
|
+
intensity?: number;
|
|
20
|
+
temperature?: number;
|
|
21
|
+
direction?: [number, number, number];
|
|
22
|
+
innerAngle?: number;
|
|
23
|
+
outerAngle?: number;
|
|
24
|
+
attenuationStartDistance?: number;
|
|
25
|
+
attenuationEndDistance?: number;
|
|
26
|
+
influenceBitMask?: number;
|
|
27
|
+
|
|
28
|
+
// Shadow properties
|
|
29
|
+
castsShadow?: boolean;
|
|
30
|
+
shadowOpacity?: number;
|
|
31
|
+
shadowMapSize?: number;
|
|
32
|
+
shadowBias?: number;
|
|
33
|
+
shadowNearZ?: number;
|
|
34
|
+
shadowFarZ?: number;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* ViroSpotLight is a component for adding spot lighting to a scene.
|
|
39
|
+
* Spot light is a type of light that illuminates objects in a cone-shaped area,
|
|
40
|
+
* similar to a flashlight or stage spotlight.
|
|
41
|
+
*/
|
|
42
|
+
export const ViroSpotLight: React.FC<ViroSpotLightProps> = (props) => {
|
|
43
|
+
// Convert common props to the format expected by the native code
|
|
44
|
+
const nativeProps = {
|
|
45
|
+
...convertCommonProps(props),
|
|
46
|
+
color: props.color,
|
|
47
|
+
intensity: props.intensity,
|
|
48
|
+
temperature: props.temperature,
|
|
49
|
+
direction: props.direction,
|
|
50
|
+
innerAngle: props.innerAngle,
|
|
51
|
+
outerAngle: props.outerAngle,
|
|
52
|
+
attenuationStartDistance: props.attenuationStartDistance,
|
|
53
|
+
attenuationEndDistance: props.attenuationEndDistance,
|
|
54
|
+
influenceBitMask: props.influenceBitMask,
|
|
55
|
+
castsShadow: props.castsShadow,
|
|
56
|
+
shadowOpacity: props.shadowOpacity,
|
|
57
|
+
shadowMapSize: props.shadowMapSize,
|
|
58
|
+
shadowBias: props.shadowBias,
|
|
59
|
+
shadowNearZ: props.shadowNearZ,
|
|
60
|
+
shadowFarZ: props.shadowFarZ,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// Create the node (parent will be determined by context)
|
|
64
|
+
const nodeId = useViroNode("spotLight", nativeProps);
|
|
65
|
+
// Register event handlers using our new event system
|
|
66
|
+
useViroEventListeners(nodeId, {
|
|
67
|
+
onHover: props.onHover,
|
|
68
|
+
onClick: props.onClick,
|
|
69
|
+
onClickState: props.onClickState,
|
|
70
|
+
onTouch: props.onTouch,
|
|
71
|
+
onScroll: props.onScroll,
|
|
72
|
+
onSwipe: props.onSwipe,
|
|
73
|
+
onDrag: props.onDrag,
|
|
74
|
+
onPinch: props.onPinch,
|
|
75
|
+
onRotate: props.onRotate,
|
|
76
|
+
onFuse:
|
|
77
|
+
typeof props.onFuse === "function"
|
|
78
|
+
? props.onFuse
|
|
79
|
+
: props.onFuse?.callback,
|
|
80
|
+
onCollision: props.onCollision,
|
|
81
|
+
onTransformUpdate: props.onTransformUpdate,
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
// Component doesn't have children, so just return null
|
|
85
|
+
return null;
|
|
86
|
+
};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroSurface
|
|
3
|
+
*
|
|
4
|
+
* A component for rendering a flat surface in 3D space.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroCommonProps,
|
|
10
|
+
useViroNode,
|
|
11
|
+
convertCommonProps,
|
|
12
|
+
useViroEventListeners,
|
|
13
|
+
} from "./ViroUtils";
|
|
14
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
15
|
+
|
|
16
|
+
export interface ViroSurfaceProps extends ViroCommonProps {
|
|
17
|
+
// Surface properties
|
|
18
|
+
width?: number;
|
|
19
|
+
height?: number;
|
|
20
|
+
uvCoordinates?: [
|
|
21
|
+
[number, number],
|
|
22
|
+
[number, number],
|
|
23
|
+
[number, number],
|
|
24
|
+
[number, number],
|
|
25
|
+
];
|
|
26
|
+
|
|
27
|
+
// Visual properties
|
|
28
|
+
materials?: string | string[];
|
|
29
|
+
|
|
30
|
+
// Lighting props
|
|
31
|
+
lightReceivingBitMask?: number;
|
|
32
|
+
shadowCastingBitMask?: number;
|
|
33
|
+
|
|
34
|
+
// Physics props
|
|
35
|
+
arShadowReceiver?: boolean;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* ViroSurface is a component for rendering a flat surface in 3D space.
|
|
40
|
+
* It's similar to ViroQuad but with additional properties for more flexibility.
|
|
41
|
+
*/
|
|
42
|
+
export const ViroSurface: React.FC<ViroSurfaceProps> = (props) => {
|
|
43
|
+
// Convert common props to the format expected by the native code
|
|
44
|
+
const nativeProps = {
|
|
45
|
+
...convertCommonProps(props),
|
|
46
|
+
width: props.width ?? 1,
|
|
47
|
+
height: props.height ?? 1,
|
|
48
|
+
uvCoordinates: props.uvCoordinates,
|
|
49
|
+
materials: props.materials,
|
|
50
|
+
lightReceivingBitMask: props.lightReceivingBitMask,
|
|
51
|
+
shadowCastingBitMask: props.shadowCastingBitMask,
|
|
52
|
+
arShadowReceiver: props.arShadowReceiver,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// Create the node (parent will be determined by context)
|
|
56
|
+
const nodeId = useViroNode("surface", nativeProps);
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
// Register event handlers using our new event system
|
|
60
|
+
useViroEventListeners(nodeId, {
|
|
61
|
+
onHover: props.onHover,
|
|
62
|
+
onClick: props.onClick,
|
|
63
|
+
onClickState: props.onClickState,
|
|
64
|
+
onTouch: props.onTouch,
|
|
65
|
+
onScroll: props.onScroll,
|
|
66
|
+
onSwipe: props.onSwipe,
|
|
67
|
+
onDrag: props.onDrag,
|
|
68
|
+
onPinch: props.onPinch,
|
|
69
|
+
onRotate: props.onRotate,
|
|
70
|
+
onFuse:
|
|
71
|
+
typeof props.onFuse === "function"
|
|
72
|
+
? props.onFuse
|
|
73
|
+
: props.onFuse?.callback,
|
|
74
|
+
onCollision: props.onCollision,
|
|
75
|
+
onTransformUpdate: props.onTransformUpdate,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// Component doesn't have children, so just return null
|
|
79
|
+
return null;
|
|
80
|
+
};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroText
|
|
3
|
+
*
|
|
4
|
+
* A component for rendering 3D text in the Viro scene.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroCommonProps,
|
|
10
|
+
useViroNode,
|
|
11
|
+
useViroEventListeners,
|
|
12
|
+
convertCommonProps,
|
|
13
|
+
} from "./ViroUtils";
|
|
14
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
15
|
+
|
|
16
|
+
export interface ViroTextProps extends ViroCommonProps {
|
|
17
|
+
// Text content
|
|
18
|
+
text: string;
|
|
19
|
+
|
|
20
|
+
// Text style props
|
|
21
|
+
color?: string;
|
|
22
|
+
fontFamily?: string;
|
|
23
|
+
fontSize?: number;
|
|
24
|
+
fontWeight?:
|
|
25
|
+
| "100"
|
|
26
|
+
| "200"
|
|
27
|
+
| "300"
|
|
28
|
+
| "400"
|
|
29
|
+
| "500"
|
|
30
|
+
| "600"
|
|
31
|
+
| "700"
|
|
32
|
+
| "800"
|
|
33
|
+
| "900"
|
|
34
|
+
| "normal"
|
|
35
|
+
| "bold";
|
|
36
|
+
fontStyle?: "normal" | "italic";
|
|
37
|
+
textAlign?: "left" | "center" | "right";
|
|
38
|
+
textAlignVertical?: "top" | "center" | "bottom";
|
|
39
|
+
textLineBreakMode?: "wordwrap" | "charwrap" | "justify" | "none";
|
|
40
|
+
textClipMode?: "none" | "clipToBounds";
|
|
41
|
+
|
|
42
|
+
// Layout props
|
|
43
|
+
width?: number;
|
|
44
|
+
height?: number;
|
|
45
|
+
maxWidth?: number;
|
|
46
|
+
maxHeight?: number;
|
|
47
|
+
|
|
48
|
+
// Material props
|
|
49
|
+
materials?: string | string[];
|
|
50
|
+
extrusionDepth?: number;
|
|
51
|
+
outerStroke?: {
|
|
52
|
+
type?: string;
|
|
53
|
+
width?: number;
|
|
54
|
+
color?: string;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// Lighting props
|
|
58
|
+
lightReceivingBitMask?: number;
|
|
59
|
+
shadowCastingBitMask?: number;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* ViroText is a component for rendering 3D text in the Viro scene.
|
|
64
|
+
*/
|
|
65
|
+
export const ViroText: React.FC<ViroTextProps> = (props) => {
|
|
66
|
+
// Convert common props to the format expected by the native code
|
|
67
|
+
const nativeProps = {
|
|
68
|
+
...convertCommonProps(props),
|
|
69
|
+
text: props.text,
|
|
70
|
+
color: props.color,
|
|
71
|
+
fontFamily: props.fontFamily,
|
|
72
|
+
fontSize: props.fontSize,
|
|
73
|
+
fontWeight: props.fontWeight,
|
|
74
|
+
fontStyle: props.fontStyle,
|
|
75
|
+
textAlign: props.textAlign,
|
|
76
|
+
textAlignVertical: props.textAlignVertical,
|
|
77
|
+
textLineBreakMode: props.textLineBreakMode,
|
|
78
|
+
textClipMode: props.textClipMode,
|
|
79
|
+
width: props.width,
|
|
80
|
+
height: props.height,
|
|
81
|
+
maxWidth: props.maxWidth,
|
|
82
|
+
maxHeight: props.maxHeight,
|
|
83
|
+
materials: props.materials,
|
|
84
|
+
extrusionDepth: props.extrusionDepth,
|
|
85
|
+
outerStroke: props.outerStroke,
|
|
86
|
+
lightReceivingBitMask: props.lightReceivingBitMask,
|
|
87
|
+
shadowCastingBitMask: props.shadowCastingBitMask,
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
// Create the node (parent will be determined by context)
|
|
91
|
+
const nodeId = useViroNode("text", nativeProps);
|
|
92
|
+
|
|
93
|
+
// Register event handlers using our new event system
|
|
94
|
+
useViroEventListeners(nodeId, {
|
|
95
|
+
onHover: props.onHover,
|
|
96
|
+
onClick: props.onClick,
|
|
97
|
+
onClickState: props.onClickState,
|
|
98
|
+
onTouch: props.onTouch,
|
|
99
|
+
onScroll: props.onScroll,
|
|
100
|
+
onSwipe: props.onSwipe,
|
|
101
|
+
onDrag: props.onDrag,
|
|
102
|
+
onPinch: props.onPinch,
|
|
103
|
+
onRotate: props.onRotate,
|
|
104
|
+
onFuse:
|
|
105
|
+
typeof props.onFuse === "function"
|
|
106
|
+
? props.onFuse
|
|
107
|
+
: props.onFuse?.callback,
|
|
108
|
+
onCollision: props.onCollision,
|
|
109
|
+
onTransformUpdate: props.onTransformUpdate,
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// Text doesn't have children, so just return null
|
|
113
|
+
return null;
|
|
114
|
+
};
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroUtils
|
|
3
|
+
*
|
|
4
|
+
* Common utility functions and hooks for Viro components.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React, { useEffect, useRef } from "react";
|
|
8
|
+
import {
|
|
9
|
+
generateNodeId,
|
|
10
|
+
generateCallbackId,
|
|
11
|
+
ViroNodeProps,
|
|
12
|
+
ViroNodeType,
|
|
13
|
+
createNode,
|
|
14
|
+
updateNode,
|
|
15
|
+
deleteNode,
|
|
16
|
+
addChild,
|
|
17
|
+
removeChild,
|
|
18
|
+
registerEventListener,
|
|
19
|
+
unregisterEventListener,
|
|
20
|
+
} from "../NativeViro";
|
|
21
|
+
|
|
22
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
23
|
+
|
|
24
|
+
// Create a proper React Context to pass parent node IDs down the component tree
|
|
25
|
+
export const ViroContext = React.createContext("viro_root_scene");
|
|
26
|
+
|
|
27
|
+
// Hook to get the current parent node ID
|
|
28
|
+
export const useViroParent = () => {
|
|
29
|
+
return React.useContext(ViroContext);
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// Hook to manage a node's lifecycle
|
|
33
|
+
export function useViroNode(
|
|
34
|
+
nodeType: ViroNodeType,
|
|
35
|
+
props: ViroNodeProps,
|
|
36
|
+
explicitParentId?: string
|
|
37
|
+
): string {
|
|
38
|
+
const nodeId = useRef<string>(generateNodeId());
|
|
39
|
+
const contextParentId = useViroParent();
|
|
40
|
+
|
|
41
|
+
// Use explicit parent ID if provided, otherwise use context
|
|
42
|
+
const parentId = explicitParentId || contextParentId;
|
|
43
|
+
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
// Create the node when the component mounts using our enhanced functions
|
|
46
|
+
createNode(nodeId.current, nodeType, props);
|
|
47
|
+
|
|
48
|
+
// Add to parent if specified
|
|
49
|
+
if (parentId) {
|
|
50
|
+
addChild(parentId, nodeId.current);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Clean up when the component unmounts
|
|
54
|
+
return () => {
|
|
55
|
+
// Remove from parent if specified
|
|
56
|
+
if (parentId) {
|
|
57
|
+
removeChild(parentId, nodeId.current);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Delete the node
|
|
61
|
+
deleteNode(nodeId.current);
|
|
62
|
+
};
|
|
63
|
+
}, [nodeType, parentId]);
|
|
64
|
+
|
|
65
|
+
// Update props when they change
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
updateNode(nodeId.current, props);
|
|
68
|
+
}, [props]);
|
|
69
|
+
|
|
70
|
+
return nodeId.current;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Hook to manage a node's children
|
|
74
|
+
export function useViroChildren(
|
|
75
|
+
nodeId: string,
|
|
76
|
+
children: React.ReactNode
|
|
77
|
+
): React.ReactNode {
|
|
78
|
+
// Create a context provider to pass the parent ID to children
|
|
79
|
+
return children;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Common event handler types
|
|
83
|
+
export type ViroEventHandler = (event: any, ...args: any[]) => void;
|
|
84
|
+
|
|
85
|
+
// Common position and transform types
|
|
86
|
+
export type ViroPosition = [number, number, number];
|
|
87
|
+
export type ViroRotation = [number, number, number];
|
|
88
|
+
export type ViroScale = [number, number, number] | number;
|
|
89
|
+
|
|
90
|
+
// Common prop types shared across components
|
|
91
|
+
export interface ViroCommonProps {
|
|
92
|
+
position?: ViroPosition;
|
|
93
|
+
rotation?: ViroRotation;
|
|
94
|
+
scale?: ViroScale;
|
|
95
|
+
transformBehaviors?: string[];
|
|
96
|
+
opacity?: number;
|
|
97
|
+
visible?: boolean;
|
|
98
|
+
animation?: {
|
|
99
|
+
name?: string;
|
|
100
|
+
delay?: number;
|
|
101
|
+
loop?: boolean;
|
|
102
|
+
onStart?: () => void;
|
|
103
|
+
onFinish?: () => void;
|
|
104
|
+
run?: boolean;
|
|
105
|
+
interruptible?: boolean;
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
// Interaction capabilities
|
|
109
|
+
canClick?: boolean;
|
|
110
|
+
canHover?: boolean;
|
|
111
|
+
canTouch?: boolean;
|
|
112
|
+
canScroll?: boolean;
|
|
113
|
+
canSwipe?: boolean;
|
|
114
|
+
canDrag?: boolean;
|
|
115
|
+
canFuse?: boolean;
|
|
116
|
+
canPinch?: boolean;
|
|
117
|
+
canRotate?: boolean;
|
|
118
|
+
timeToFuse?: number;
|
|
119
|
+
|
|
120
|
+
// Event handlers
|
|
121
|
+
onHover?: ViroEventHandler;
|
|
122
|
+
onClick?: ViroEventHandler;
|
|
123
|
+
onClickState?: ViroEventHandler;
|
|
124
|
+
onTouch?: ViroEventHandler;
|
|
125
|
+
onScroll?: ViroEventHandler;
|
|
126
|
+
onSwipe?: ViroEventHandler;
|
|
127
|
+
onDrag?: ViroEventHandler;
|
|
128
|
+
onPinch?: ViroEventHandler;
|
|
129
|
+
onRotate?: ViroEventHandler;
|
|
130
|
+
onFuse?:
|
|
131
|
+
| ViroEventHandler
|
|
132
|
+
| { callback: ViroEventHandler; timeToFuse?: number };
|
|
133
|
+
onCollision?: ViroEventHandler;
|
|
134
|
+
onTransformUpdate?: ViroEventHandler;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Helper to convert common props to the format expected by the native code
|
|
138
|
+
export function convertCommonProps(props: ViroCommonProps): ViroNodeProps {
|
|
139
|
+
const {
|
|
140
|
+
position,
|
|
141
|
+
rotation,
|
|
142
|
+
scale,
|
|
143
|
+
transformBehaviors,
|
|
144
|
+
opacity,
|
|
145
|
+
visible,
|
|
146
|
+
animation,
|
|
147
|
+
...rest
|
|
148
|
+
} = props;
|
|
149
|
+
|
|
150
|
+
const convertedProps: ViroNodeProps = {
|
|
151
|
+
...rest,
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
if (position) convertedProps.position = position;
|
|
155
|
+
if (rotation) convertedProps.rotation = rotation;
|
|
156
|
+
|
|
157
|
+
if (scale !== undefined) {
|
|
158
|
+
if (typeof scale === "number") {
|
|
159
|
+
convertedProps.scale = [scale, scale, scale];
|
|
160
|
+
} else {
|
|
161
|
+
convertedProps.scale = scale;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (transformBehaviors)
|
|
166
|
+
convertedProps.transformBehaviors = transformBehaviors;
|
|
167
|
+
if (opacity !== undefined) convertedProps.opacity = opacity;
|
|
168
|
+
if (visible !== undefined) convertedProps.visible = visible;
|
|
169
|
+
if (animation) convertedProps.animation = animation;
|
|
170
|
+
|
|
171
|
+
return convertedProps;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// Hook to manage event listeners for a node
|
|
175
|
+
export function useViroEventListeners(
|
|
176
|
+
nodeId: string,
|
|
177
|
+
eventHandlers: Record<string, ViroEventHandler | undefined>
|
|
178
|
+
): void {
|
|
179
|
+
useEffect(() => {
|
|
180
|
+
// Register all event handlers and store callback IDs for cleanup
|
|
181
|
+
const registeredCallbacks: Array<{ name: string; callbackId: string }> = [];
|
|
182
|
+
|
|
183
|
+
Object.entries(eventHandlers).forEach(([eventName, handler]) => {
|
|
184
|
+
if (handler) {
|
|
185
|
+
const callbackId = registerEventListener(nodeId, eventName, handler);
|
|
186
|
+
registeredCallbacks.push({ name: eventName, callbackId });
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
// Cleanup when unmounting or dependencies change
|
|
191
|
+
return () => {
|
|
192
|
+
registeredCallbacks.forEach(({ name, callbackId }) => {
|
|
193
|
+
unregisterEventListener(nodeId, name, callbackId);
|
|
194
|
+
});
|
|
195
|
+
};
|
|
196
|
+
}, [nodeId, ...Object.values(eventHandlers)]);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Provider component for ViroContext
|
|
200
|
+
export const ViroContextProvider = ({
|
|
201
|
+
value,
|
|
202
|
+
children,
|
|
203
|
+
}: {
|
|
204
|
+
value: string;
|
|
205
|
+
children: React.ReactNode;
|
|
206
|
+
}) => {
|
|
207
|
+
return React.createElement(ViroContext.Provider, { value }, children);
|
|
208
|
+
};
|