@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,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroBox
|
|
3
|
+
*
|
|
4
|
+
* A 3D box component with customizable dimensions and materials.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React, { useContext } from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroContext,
|
|
10
|
+
ViroCommonProps,
|
|
11
|
+
useViroNode,
|
|
12
|
+
useViroEventListeners,
|
|
13
|
+
convertCommonProps,
|
|
14
|
+
} from "./ViroUtils";
|
|
15
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
16
|
+
|
|
17
|
+
export interface ViroBoxProps extends ViroCommonProps {
|
|
18
|
+
// Box-specific props
|
|
19
|
+
width?: number;
|
|
20
|
+
height?: number;
|
|
21
|
+
length?: number;
|
|
22
|
+
materials?: string | string[];
|
|
23
|
+
|
|
24
|
+
// Lighting props
|
|
25
|
+
lightReceivingBitMask?: number;
|
|
26
|
+
shadowCastingBitMask?: number;
|
|
27
|
+
|
|
28
|
+
// Physics props
|
|
29
|
+
highAccuracyEvents?: boolean;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* ViroBox is a 3D box component with customizable dimensions and materials.
|
|
34
|
+
*/
|
|
35
|
+
export const ViroBox: React.FC<ViroBoxProps> = (props) => {
|
|
36
|
+
// Convert common props to the format expected by the native code
|
|
37
|
+
const nativeProps = {
|
|
38
|
+
...convertCommonProps(props),
|
|
39
|
+
width: props.width ?? 1,
|
|
40
|
+
height: props.height ?? 1,
|
|
41
|
+
length: props.length ?? 1,
|
|
42
|
+
materials: props.materials,
|
|
43
|
+
lightReceivingBitMask: props.lightReceivingBitMask,
|
|
44
|
+
shadowCastingBitMask: props.shadowCastingBitMask,
|
|
45
|
+
highAccuracyEvents: props.highAccuracyEvents,
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
// Create the node (parent will be determined by context)
|
|
49
|
+
const nodeId = useViroNode("box", nativeProps);
|
|
50
|
+
|
|
51
|
+
// Register event handlers using our new event system
|
|
52
|
+
useViroEventListeners(nodeId, {
|
|
53
|
+
onHover: props.onHover,
|
|
54
|
+
onClick: props.onClick,
|
|
55
|
+
onClickState: props.onClickState,
|
|
56
|
+
onTouch: props.onTouch,
|
|
57
|
+
onScroll: props.onScroll,
|
|
58
|
+
onSwipe: props.onSwipe,
|
|
59
|
+
onDrag: props.onDrag,
|
|
60
|
+
onPinch: props.onPinch,
|
|
61
|
+
onRotate: props.onRotate,
|
|
62
|
+
onFuse:
|
|
63
|
+
typeof props.onFuse === "function"
|
|
64
|
+
? props.onFuse
|
|
65
|
+
: props.onFuse?.callback,
|
|
66
|
+
onCollision: props.onCollision,
|
|
67
|
+
onTransformUpdate: props.onTransformUpdate,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
// Box doesn't have children, so just return null
|
|
71
|
+
return null;
|
|
72
|
+
};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroButton
|
|
3
|
+
*
|
|
4
|
+
* A component for creating interactive buttons in 3D space.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroCommonProps,
|
|
10
|
+
useViroNode,
|
|
11
|
+
convertCommonProps,
|
|
12
|
+
ViroContextProvider,
|
|
13
|
+
useViroEventListeners,
|
|
14
|
+
} from "./ViroUtils";
|
|
15
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
16
|
+
|
|
17
|
+
export interface ViroButtonProps extends ViroCommonProps {
|
|
18
|
+
// Button properties
|
|
19
|
+
source: { uri: string } | number;
|
|
20
|
+
hoverSource?: { uri: string } | number;
|
|
21
|
+
clickSource?: { uri: string } | number;
|
|
22
|
+
gazeSource?: { uri: string } | number;
|
|
23
|
+
|
|
24
|
+
// Button dimensions
|
|
25
|
+
width?: number;
|
|
26
|
+
height?: number;
|
|
27
|
+
|
|
28
|
+
// Materials
|
|
29
|
+
materials?: string | string[];
|
|
30
|
+
|
|
31
|
+
// Lighting props
|
|
32
|
+
lightReceivingBitMask?: number;
|
|
33
|
+
shadowCastingBitMask?: number;
|
|
34
|
+
|
|
35
|
+
// Children components
|
|
36
|
+
children?: React.ReactNode;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* ViroButton is a component for creating interactive buttons in 3D space.
|
|
41
|
+
* It provides visual feedback for different interaction states.
|
|
42
|
+
*/
|
|
43
|
+
export const ViroButton: React.FC<ViroButtonProps> = (props) => {
|
|
44
|
+
// Convert common props to the format expected by the native code
|
|
45
|
+
const nativeProps = {
|
|
46
|
+
...convertCommonProps(props),
|
|
47
|
+
source: props.source,
|
|
48
|
+
hoverSource: props.hoverSource,
|
|
49
|
+
clickSource: props.clickSource,
|
|
50
|
+
gazeSource: props.gazeSource,
|
|
51
|
+
width: props.width,
|
|
52
|
+
height: props.height,
|
|
53
|
+
materials: props.materials,
|
|
54
|
+
lightReceivingBitMask: props.lightReceivingBitMask,
|
|
55
|
+
shadowCastingBitMask: props.shadowCastingBitMask,
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// Create the node (parent will be determined by context)
|
|
59
|
+
const nodeId = useViroNode("button", nativeProps);
|
|
60
|
+
|
|
61
|
+
// Register event handlers
|
|
62
|
+
React.useEffect(() => {
|
|
63
|
+
const nativeViro = getNativeViro();
|
|
64
|
+
if (!nativeViro) return;
|
|
65
|
+
|
|
66
|
+
const eventHandlers = [
|
|
67
|
+
{ name: "onHover", handler: props.onHover },
|
|
68
|
+
{ name: "onClick", handler: props.onClick },
|
|
69
|
+
{ name: "onClickState", handler: props.onClickState },
|
|
70
|
+
{ name: "onTouch", handler: props.onTouch },
|
|
71
|
+
{ name: "onDrag", handler: props.onDrag },
|
|
72
|
+
{ name: "onPinch", handler: props.onPinch },
|
|
73
|
+
{ name: "onRotate", handler: props.onRotate },
|
|
74
|
+
{
|
|
75
|
+
name: "onFuse",
|
|
76
|
+
handler:
|
|
77
|
+
typeof props.onFuse === "function"
|
|
78
|
+
? props.onFuse
|
|
79
|
+
: props.onFuse?.callback,
|
|
80
|
+
},
|
|
81
|
+
];
|
|
82
|
+
|
|
83
|
+
// Register all event handlers and store callback IDs for cleanup
|
|
84
|
+
const registeredCallbacks = eventHandlers
|
|
85
|
+
.filter(({ handler }) => !!handler)
|
|
86
|
+
.map(({ name, handler }) => {
|
|
87
|
+
const callbackId = `${nodeId}_${name}`;
|
|
88
|
+
|
|
89
|
+
// Register the callback in the global registry
|
|
90
|
+
if (typeof global !== "undefined" && global.registerViroEventCallback) {
|
|
91
|
+
global.registerViroEventCallback(callbackId, handler);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Register with native code
|
|
95
|
+
nativeViro.registerEventCallback(nodeId, name, callbackId);
|
|
96
|
+
return { name, callbackId };
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
// Cleanup when unmounting
|
|
100
|
+
return () => {
|
|
101
|
+
const nativeViro = getNativeViro();
|
|
102
|
+
if (!nativeViro) return;
|
|
103
|
+
|
|
104
|
+
// Unregister all event handlers
|
|
105
|
+
registeredCallbacks.forEach(({ name, callbackId }) => {
|
|
106
|
+
nativeViro.unregisterEventCallback(nodeId, name, callbackId);
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
}, [
|
|
110
|
+
nodeId,
|
|
111
|
+
props.onHover,
|
|
112
|
+
props.onClick,
|
|
113
|
+
props.onClickState,
|
|
114
|
+
props.onTouch,
|
|
115
|
+
props.onDrag,
|
|
116
|
+
props.onPinch,
|
|
117
|
+
props.onRotate,
|
|
118
|
+
props.onFuse,
|
|
119
|
+
]);
|
|
120
|
+
|
|
121
|
+
// Render children with this button as their parent
|
|
122
|
+
return (
|
|
123
|
+
<ViroContextProvider value={nodeId}>{props.children}</ViroContextProvider>
|
|
124
|
+
);
|
|
125
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroCamera
|
|
3
|
+
*
|
|
4
|
+
* A component for controlling the scene camera.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroCommonProps,
|
|
10
|
+
useViroNode,
|
|
11
|
+
convertCommonProps,
|
|
12
|
+
ViroContextProvider,
|
|
13
|
+
useViroEventListeners,
|
|
14
|
+
} from "./ViroUtils";
|
|
15
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
16
|
+
|
|
17
|
+
export interface ViroCameraProps extends ViroCommonProps {
|
|
18
|
+
// Camera properties
|
|
19
|
+
fieldOfView?: number;
|
|
20
|
+
focalPoint?: [number, number, number];
|
|
21
|
+
|
|
22
|
+
// Children components
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* ViroCamera is a component for controlling the scene camera.
|
|
28
|
+
* It allows customization of camera properties and behavior.
|
|
29
|
+
*/
|
|
30
|
+
export const ViroCamera: React.FC<ViroCameraProps> = (props) => {
|
|
31
|
+
// Convert common props to the format expected by the native code
|
|
32
|
+
const nativeProps = {
|
|
33
|
+
...convertCommonProps(props),
|
|
34
|
+
fieldOfView: props.fieldOfView,
|
|
35
|
+
focalPoint: props.focalPoint,
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// Create the node (parent will be determined by context)
|
|
39
|
+
const nodeId = useViroNode("camera", nativeProps);
|
|
40
|
+
|
|
41
|
+
// Render children with this camera as their parent
|
|
42
|
+
return (
|
|
43
|
+
<ViroContextProvider value={nodeId}>{props.children}</ViroContextProvider>
|
|
44
|
+
);
|
|
45
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroController
|
|
3
|
+
*
|
|
4
|
+
* A component for VR controller interaction.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroCommonProps,
|
|
10
|
+
useViroNode,
|
|
11
|
+
convertCommonProps,
|
|
12
|
+
ViroContextProvider,
|
|
13
|
+
useViroEventListeners,
|
|
14
|
+
} from "./ViroUtils";
|
|
15
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
16
|
+
|
|
17
|
+
export interface ViroControllerProps extends ViroCommonProps {
|
|
18
|
+
// Controller properties
|
|
19
|
+
controllerVisibility?: boolean;
|
|
20
|
+
reticleVisibility?: boolean;
|
|
21
|
+
|
|
22
|
+
// Events
|
|
23
|
+
onControllerUpdate?: (event: any) => void;
|
|
24
|
+
onMove?: (event: any) => void;
|
|
25
|
+
|
|
26
|
+
// Children components
|
|
27
|
+
children?: React.ReactNode;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* ViroController is a component for VR controller interaction.
|
|
32
|
+
* It provides controller tracking and interaction capabilities.
|
|
33
|
+
*/
|
|
34
|
+
export const ViroController: React.FC<ViroControllerProps> = (props) => {
|
|
35
|
+
// Convert common props to the format expected by the native code
|
|
36
|
+
const nativeProps = {
|
|
37
|
+
...convertCommonProps(props),
|
|
38
|
+
controllerVisibility: props.controllerVisibility,
|
|
39
|
+
reticleVisibility: props.reticleVisibility,
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// Create the node (parent will be determined by context)
|
|
43
|
+
const nodeId = useViroNode("controller", nativeProps);
|
|
44
|
+
|
|
45
|
+
// Register event handlers
|
|
46
|
+
React.useEffect(() => {
|
|
47
|
+
const nativeViro = getNativeViro();
|
|
48
|
+
if (!nativeViro) return;
|
|
49
|
+
|
|
50
|
+
const eventHandlers = [
|
|
51
|
+
{ name: "onControllerUpdate", handler: props.onControllerUpdate },
|
|
52
|
+
{ name: "onMove", handler: props.onMove },
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
// Register all event handlers and store callback IDs for cleanup
|
|
56
|
+
const registeredCallbacks = eventHandlers
|
|
57
|
+
.filter(({ handler }) => !!handler)
|
|
58
|
+
.map(({ name, handler }) => {
|
|
59
|
+
const callbackId = `${nodeId}_${name}`;
|
|
60
|
+
|
|
61
|
+
// Register the callback in the global registry
|
|
62
|
+
if (typeof global !== "undefined" && global.registerViroEventCallback) {
|
|
63
|
+
global.registerViroEventCallback(callbackId, handler);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// Register with native code
|
|
67
|
+
nativeViro.registerEventCallback(nodeId, name, callbackId);
|
|
68
|
+
return { name, callbackId };
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Cleanup when unmounting
|
|
72
|
+
return () => {
|
|
73
|
+
const nativeViro = getNativeViro();
|
|
74
|
+
if (!nativeViro) return;
|
|
75
|
+
|
|
76
|
+
// Unregister all event handlers
|
|
77
|
+
registeredCallbacks.forEach(({ name, callbackId }) => {
|
|
78
|
+
nativeViro.unregisterEventCallback(nodeId, name, callbackId);
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
}, [nodeId, props.onControllerUpdate, props.onMove]);
|
|
82
|
+
|
|
83
|
+
// Render children with this controller as their parent
|
|
84
|
+
return (
|
|
85
|
+
<ViroContextProvider value={nodeId}>{props.children}</ViroContextProvider>
|
|
86
|
+
);
|
|
87
|
+
};
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroDirectionalLight
|
|
3
|
+
*
|
|
4
|
+
* A component for adding directional 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 ViroDirectionalLightProps extends ViroCommonProps {
|
|
17
|
+
// Light properties
|
|
18
|
+
color?: string;
|
|
19
|
+
intensity?: number;
|
|
20
|
+
temperature?: number;
|
|
21
|
+
direction?: [number, number, number];
|
|
22
|
+
influenceBitMask?: number;
|
|
23
|
+
|
|
24
|
+
// Shadow properties
|
|
25
|
+
castsShadow?: boolean;
|
|
26
|
+
shadowOpacity?: number;
|
|
27
|
+
shadowOrthographicSize?: number;
|
|
28
|
+
shadowOrthographicPosition?: [number, number, number];
|
|
29
|
+
shadowMapSize?: number;
|
|
30
|
+
shadowBias?: number;
|
|
31
|
+
shadowNearZ?: number;
|
|
32
|
+
shadowFarZ?: number;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* ViroDirectionalLight is a component for adding directional lighting to a scene.
|
|
37
|
+
* Directional light is a type of light that illuminates all objects in the scene
|
|
38
|
+
* from a specific direction, similar to sunlight.
|
|
39
|
+
*/
|
|
40
|
+
export const ViroDirectionalLight: React.FC<ViroDirectionalLightProps> = (
|
|
41
|
+
props
|
|
42
|
+
) => {
|
|
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
|
+
influenceBitMask: props.influenceBitMask,
|
|
51
|
+
castsShadow: props.castsShadow,
|
|
52
|
+
shadowOpacity: props.shadowOpacity,
|
|
53
|
+
shadowOrthographicSize: props.shadowOrthographicSize,
|
|
54
|
+
shadowOrthographicPosition: props.shadowOrthographicPosition,
|
|
55
|
+
shadowMapSize: props.shadowMapSize,
|
|
56
|
+
shadowBias: props.shadowBias,
|
|
57
|
+
shadowNearZ: props.shadowNearZ,
|
|
58
|
+
shadowFarZ: props.shadowFarZ,
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
// Create the node (parent will be determined by context)
|
|
62
|
+
const nodeId = useViroNode("directionalLight", nativeProps);
|
|
63
|
+
// Register event handlers using our new event system
|
|
64
|
+
useViroEventListeners(nodeId, {
|
|
65
|
+
onHover: props.onHover,
|
|
66
|
+
onClick: props.onClick,
|
|
67
|
+
onClickState: props.onClickState,
|
|
68
|
+
onTouch: props.onTouch,
|
|
69
|
+
onScroll: props.onScroll,
|
|
70
|
+
onSwipe: props.onSwipe,
|
|
71
|
+
onDrag: props.onDrag,
|
|
72
|
+
onPinch: props.onPinch,
|
|
73
|
+
onRotate: props.onRotate,
|
|
74
|
+
onFuse:
|
|
75
|
+
typeof props.onFuse === "function"
|
|
76
|
+
? props.onFuse
|
|
77
|
+
: props.onFuse?.callback,
|
|
78
|
+
onCollision: props.onCollision,
|
|
79
|
+
onTransformUpdate: props.onTransformUpdate,
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
// Component doesn't have children, so just return null
|
|
83
|
+
return null;
|
|
84
|
+
};
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroFlexView
|
|
3
|
+
*
|
|
4
|
+
* A component for creating flexible layouts in 3D space.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import React from "react";
|
|
8
|
+
import {
|
|
9
|
+
ViroCommonProps,
|
|
10
|
+
useViroNode,
|
|
11
|
+
convertCommonProps,
|
|
12
|
+
ViroContextProvider,
|
|
13
|
+
useViroEventListeners,
|
|
14
|
+
} from "./ViroUtils";
|
|
15
|
+
import { getNativeViro } from "./ViroGlobal";
|
|
16
|
+
|
|
17
|
+
export interface ViroFlexViewProps extends ViroCommonProps {
|
|
18
|
+
// Layout properties
|
|
19
|
+
width?: number;
|
|
20
|
+
height?: number;
|
|
21
|
+
|
|
22
|
+
// Flex properties
|
|
23
|
+
flex?: number;
|
|
24
|
+
flexDirection?: "row" | "column";
|
|
25
|
+
justifyContent?:
|
|
26
|
+
| "flex-start"
|
|
27
|
+
| "flex-end"
|
|
28
|
+
| "center"
|
|
29
|
+
| "space-between"
|
|
30
|
+
| "space-around";
|
|
31
|
+
alignItems?: "flex-start" | "flex-end" | "center" | "stretch";
|
|
32
|
+
padding?: number;
|
|
33
|
+
paddingTop?: number;
|
|
34
|
+
paddingBottom?: number;
|
|
35
|
+
paddingLeft?: number;
|
|
36
|
+
paddingRight?: number;
|
|
37
|
+
margin?: number;
|
|
38
|
+
marginTop?: number;
|
|
39
|
+
marginBottom?: number;
|
|
40
|
+
marginLeft?: number;
|
|
41
|
+
marginRight?: number;
|
|
42
|
+
|
|
43
|
+
// Visual properties
|
|
44
|
+
backgroundColor?: string;
|
|
45
|
+
borderRadius?: number;
|
|
46
|
+
borderWidth?: number;
|
|
47
|
+
borderColor?: string;
|
|
48
|
+
|
|
49
|
+
// Materials
|
|
50
|
+
materials?: string | string[];
|
|
51
|
+
|
|
52
|
+
// Children components
|
|
53
|
+
children?: React.ReactNode;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* ViroFlexView is a component for creating flexible layouts in 3D space.
|
|
58
|
+
* It allows you to arrange child components using flexbox-like layout rules.
|
|
59
|
+
*/
|
|
60
|
+
export const ViroFlexView: React.FC<ViroFlexViewProps> = (props) => {
|
|
61
|
+
// Convert common props to the format expected by the native code
|
|
62
|
+
const nativeProps = {
|
|
63
|
+
...convertCommonProps(props),
|
|
64
|
+
width: props.width,
|
|
65
|
+
height: props.height,
|
|
66
|
+
flex: props.flex,
|
|
67
|
+
flexDirection: props.flexDirection,
|
|
68
|
+
justifyContent: props.justifyContent,
|
|
69
|
+
alignItems: props.alignItems,
|
|
70
|
+
padding: props.padding,
|
|
71
|
+
paddingTop: props.paddingTop,
|
|
72
|
+
paddingBottom: props.paddingBottom,
|
|
73
|
+
paddingLeft: props.paddingLeft,
|
|
74
|
+
paddingRight: props.paddingRight,
|
|
75
|
+
margin: props.margin,
|
|
76
|
+
marginTop: props.marginTop,
|
|
77
|
+
marginBottom: props.marginBottom,
|
|
78
|
+
marginLeft: props.marginLeft,
|
|
79
|
+
marginRight: props.marginRight,
|
|
80
|
+
backgroundColor: props.backgroundColor,
|
|
81
|
+
borderRadius: props.borderRadius,
|
|
82
|
+
borderWidth: props.borderWidth,
|
|
83
|
+
borderColor: props.borderColor,
|
|
84
|
+
materials: props.materials,
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
// Create the node (parent will be determined by context)
|
|
88
|
+
const nodeId = useViroNode("flexView", nativeProps);
|
|
89
|
+
|
|
90
|
+
// Register event handlers
|
|
91
|
+
React.useEffect(() => {
|
|
92
|
+
const nativeViro = getNativeViro();
|
|
93
|
+
if (!nativeViro) return;
|
|
94
|
+
|
|
95
|
+
const eventHandlers = [
|
|
96
|
+
{ name: "onHover", handler: props.onHover },
|
|
97
|
+
{ name: "onClick", handler: props.onClick },
|
|
98
|
+
{ name: "onClickState", handler: props.onClickState },
|
|
99
|
+
{ name: "onTouch", handler: props.onTouch },
|
|
100
|
+
{ name: "onDrag", handler: props.onDrag },
|
|
101
|
+
{ name: "onPinch", handler: props.onPinch },
|
|
102
|
+
{ name: "onRotate", handler: props.onRotate },
|
|
103
|
+
];
|
|
104
|
+
|
|
105
|
+
// Register all event handlers and store callback IDs for cleanup
|
|
106
|
+
const registeredCallbacks = eventHandlers
|
|
107
|
+
.filter(({ handler }) => !!handler)
|
|
108
|
+
.map(({ name, handler }) => {
|
|
109
|
+
const callbackId = `${nodeId}_${name}`;
|
|
110
|
+
|
|
111
|
+
// Register the callback in the global registry
|
|
112
|
+
if (typeof global !== "undefined" && global.registerViroEventCallback) {
|
|
113
|
+
global.registerViroEventCallback(callbackId, handler);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Register with native code
|
|
117
|
+
nativeViro.registerEventCallback(nodeId, name, callbackId);
|
|
118
|
+
return { name, callbackId };
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
// Cleanup when unmounting
|
|
122
|
+
return () => {
|
|
123
|
+
const nativeViro = getNativeViro();
|
|
124
|
+
if (!nativeViro) return;
|
|
125
|
+
|
|
126
|
+
// Unregister all event handlers
|
|
127
|
+
registeredCallbacks.forEach(({ name, callbackId }) => {
|
|
128
|
+
nativeViro.unregisterEventCallback(nodeId, name, callbackId);
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
}, [
|
|
132
|
+
nodeId,
|
|
133
|
+
props.onHover,
|
|
134
|
+
props.onClick,
|
|
135
|
+
props.onClickState,
|
|
136
|
+
props.onTouch,
|
|
137
|
+
props.onDrag,
|
|
138
|
+
props.onPinch,
|
|
139
|
+
props.onRotate,
|
|
140
|
+
]);
|
|
141
|
+
|
|
142
|
+
// Render children with this flex view as their parent
|
|
143
|
+
return (
|
|
144
|
+
<ViroContextProvider value={nodeId}>{props.children}</ViroContextProvider>
|
|
145
|
+
);
|
|
146
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ViroGeometry
|
|
3
|
+
*
|
|
4
|
+
* A component for rendering custom 3D geometry.
|
|
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 ViroGeometryProps extends ViroCommonProps {
|
|
17
|
+
// Geometry data
|
|
18
|
+
vertices: [number, number, number][];
|
|
19
|
+
normals?: [number, number, number][];
|
|
20
|
+
texcoords?: [number, number][];
|
|
21
|
+
triangleIndices: number[][];
|
|
22
|
+
|
|
23
|
+
// Materials
|
|
24
|
+
materials?: string | string[];
|
|
25
|
+
|
|
26
|
+
// Lighting props
|
|
27
|
+
lightReceivingBitMask?: number;
|
|
28
|
+
shadowCastingBitMask?: number;
|
|
29
|
+
|
|
30
|
+
// Physics props
|
|
31
|
+
type?: "Dynamic" | "Kinematic" | "Static";
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* ViroGeometry is a component for rendering custom 3D geometry.
|
|
36
|
+
* It allows you to create custom 3D shapes by specifying vertices, normals,
|
|
37
|
+
* texture coordinates, and triangle indices.
|
|
38
|
+
*/
|
|
39
|
+
export const ViroGeometry: React.FC<ViroGeometryProps> = (props) => {
|
|
40
|
+
// Convert common props to the format expected by the native code
|
|
41
|
+
const nativeProps = {
|
|
42
|
+
...convertCommonProps(props),
|
|
43
|
+
vertices: props.vertices,
|
|
44
|
+
normals: props.normals,
|
|
45
|
+
texcoords: props.texcoords,
|
|
46
|
+
triangleIndices: props.triangleIndices,
|
|
47
|
+
materials: props.materials,
|
|
48
|
+
lightReceivingBitMask: props.lightReceivingBitMask,
|
|
49
|
+
shadowCastingBitMask: props.shadowCastingBitMask,
|
|
50
|
+
type: props.type,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
// Create the node (parent will be determined by context)
|
|
54
|
+
const nodeId = useViroNode("geometry", nativeProps);
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
// Register event handlers using our new event system
|
|
58
|
+
useViroEventListeners(nodeId, {
|
|
59
|
+
onHover: props.onHover,
|
|
60
|
+
onClick: props.onClick,
|
|
61
|
+
onClickState: props.onClickState,
|
|
62
|
+
onTouch: props.onTouch,
|
|
63
|
+
onScroll: props.onScroll,
|
|
64
|
+
onSwipe: props.onSwipe,
|
|
65
|
+
onDrag: props.onDrag,
|
|
66
|
+
onPinch: props.onPinch,
|
|
67
|
+
onRotate: props.onRotate,
|
|
68
|
+
onFuse:
|
|
69
|
+
typeof props.onFuse === "function"
|
|
70
|
+
? props.onFuse
|
|
71
|
+
: props.onFuse?.callback,
|
|
72
|
+
onCollision: props.onCollision,
|
|
73
|
+
onTransformUpdate: props.onTransformUpdate,
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// Component doesn't have children, so just return null
|
|
77
|
+
return null;
|
|
78
|
+
};
|