@vincentt-xr/sdk 2.0.0-alpha.1 → 2.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/GROUNDING.md +1614 -21
  2. package/dist/{DebuggerUI-CatYc-RG.cjs → DebuggerUI-B45_Gb9d.cjs} +1 -1
  3. package/dist/{DebuggerUI-gLMKiVwJ.js → DebuggerUI-xp4bg3gH.js} +1 -1
  4. package/dist/FaceMeshRenderer-CALA4k49.js +1195 -0
  5. package/dist/FaceMeshRenderer-D4PFqsb3.cjs +155 -0
  6. package/dist/FaceRetouch-Bq2rtPlV.cjs +134 -0
  7. package/dist/FaceRetouch-DF5UsOsZ.js +551 -0
  8. package/dist/audio/AudioEngine.d.ts +3 -1
  9. package/dist/audio/AudioPlayer.d.ts +29 -0
  10. package/dist/audio/AudioPlayerLogic.d.ts +4 -0
  11. package/dist/audio/index.d.ts +2 -0
  12. package/dist/components/Axes/index.d.ts +6 -0
  13. package/dist/components/FaceMesh/FaceMeshRenderer.d.ts +17 -0
  14. package/dist/components/FaceMesh/canonical/CanonicalFaceMeshRenderer.d.ts +17 -1
  15. package/dist/components/FaceMesh/canonical/FaceMeshMaterial.d.ts +25 -0
  16. package/dist/components/FaceMesh/canonical/assets.d.ts +3 -0
  17. package/dist/components/FaceMesh/canonical/geometryGroups.d.ts +9 -0
  18. package/dist/components/FaceMesh/canonical/parseCanonicalFaceModel.d.ts +2 -0
  19. package/dist/components/FaceMesh/canonical/shaders.d.ts +2 -0
  20. package/dist/components/FaceMesh/deform.d.ts +3 -0
  21. package/dist/components/FaceMesh/index.d.ts +5 -0
  22. package/dist/components/FaceMesh/material/defaults.d.ts +70 -0
  23. package/dist/components/FaceMesh/material/index.d.ts +1 -0
  24. package/dist/components/FaceMesh/material/options.d.ts +5 -1
  25. package/dist/components/FaceMesh/material/support.d.ts +7 -2
  26. package/dist/components/FaceMesh/material/textures.d.ts +4 -0
  27. package/dist/components/FaceMesh/material/types.d.ts +2 -2
  28. package/dist/components/FaceRetouch/Background.d.ts +5 -6
  29. package/dist/components/FaceRetouch/FaceRetouch.d.ts +47 -0
  30. package/dist/components/FaceRetouch/index.d.ts +2 -8
  31. package/dist/components/FaceRetouch/landmarkMask.d.ts +0 -5
  32. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +3 -7
  33. package/dist/components/FaceTracker/index.d.ts +5 -3
  34. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +1 -1
  35. package/dist/components/HandJoints2D/index.d.ts +1 -1
  36. package/dist/components/HandTracking2D/HandVisual.d.ts +1 -1
  37. package/dist/components/HandTracking2D/index.d.ts +1 -1
  38. package/dist/components/HandTracking2DController/index.d.ts +1 -1
  39. package/dist/components/HandTracking3D/index.d.ts +1 -1
  40. package/dist/components/LightObject/index.d.ts +20 -0
  41. package/dist/components/LookAt/index.d.ts +23 -0
  42. package/dist/components/MeshRenderer/index.d.ts +59 -0
  43. package/dist/components/PerspectiveCamera/index.d.ts +2 -8
  44. package/dist/components/PinToMesh/index.d.ts +47 -0
  45. package/dist/components/RenderGroupLayer/index.d.ts +6 -0
  46. package/dist/components/SceneObjectRenderer/index.d.ts +16 -0
  47. package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
  48. package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
  49. package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
  50. package/dist/components/Screen2D/index.d.ts +5 -0
  51. package/dist/components/ScreenGlass/defaults.d.ts +3 -0
  52. package/dist/components/ScreenGlass/index.d.ts +5 -0
  53. package/dist/components/ScreenGlass/shaders.d.ts +2 -0
  54. package/dist/components/ScreenGlass/types.d.ts +10 -0
  55. package/dist/components/ScreenGradient/defaults.d.ts +5 -0
  56. package/dist/components/ScreenGradient/index.d.ts +5 -0
  57. package/dist/components/ScreenGradient/shaders.d.ts +2 -0
  58. package/dist/components/ScreenGradient/types.d.ts +19 -0
  59. package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
  60. package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
  61. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
  62. package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
  63. package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
  64. package/dist/components/ScreenImage/fit.d.ts +52 -0
  65. package/dist/components/ScreenImage/index.d.ts +8 -87
  66. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
  67. package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
  68. package/dist/components/ScreenImage/source.d.ts +19 -0
  69. package/dist/components/ScreenImage/types.d.ts +37 -0
  70. package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
  71. package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
  72. package/dist/components/ScreenShape/geometry.d.ts +5 -0
  73. package/dist/components/ScreenShape/index.d.ts +5 -0
  74. package/dist/components/ScreenShape/types.d.ts +41 -0
  75. package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
  76. package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
  77. package/dist/components/ScreenSpaceUI/index.d.ts +2 -0
  78. package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
  79. package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
  80. package/dist/components/ScreenText/constants.d.ts +5 -0
  81. package/dist/components/ScreenText/index.d.ts +6 -20
  82. package/dist/components/ScreenText/types.d.ts +31 -0
  83. package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
  84. package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
  85. package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
  86. package/dist/components/TextLabel/TextLabel.d.ts +5 -0
  87. package/dist/components/TextLabel/alignment.d.ts +4 -0
  88. package/dist/components/TextLabel/bend.d.ts +9 -0
  89. package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
  90. package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
  91. package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
  92. package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
  93. package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
  94. package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
  95. package/dist/components/TextLabel/constants.d.ts +2 -0
  96. package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
  97. package/dist/components/TextLabel/index.d.ts +2 -161
  98. package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
  99. package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
  100. package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
  101. package/dist/components/TextLabel/types.d.ts +227 -0
  102. package/dist/components/TrackingAnchor/index.d.ts +18 -2
  103. package/dist/components/Transform3D/index.d.ts +30 -0
  104. package/dist/components/XRMediaSurface/index.d.ts +6 -6
  105. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  106. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  107. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  108. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  109. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  110. package/dist/components/XRViewport/constants.d.ts +24 -0
  111. package/dist/components/XRViewport/contexts.d.ts +6 -0
  112. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  113. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  114. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  115. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  116. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  117. package/dist/components/XRViewport/index.d.ts +3 -118
  118. package/dist/components/XRViewport/layout.d.ts +16 -0
  119. package/dist/components/XRViewport/slots.d.ts +16 -0
  120. package/dist/components/XRViewport/types.d.ts +89 -0
  121. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  122. package/dist/components/index.d.ts +12 -0
  123. package/dist/contexts-D5TQcwmv.js +660 -0
  124. package/dist/contexts-Dv1SA0bS.cjs +1 -0
  125. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  126. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  127. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  128. package/dist/debug-ui/hand-joints-2d/index.d.ts +1 -1
  129. package/dist/debug-ui/hand-tracking-2d/index.d.ts +1 -1
  130. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +1 -1
  131. package/dist/debug-ui/hand-tracking-3d/index.d.ts +1 -1
  132. package/dist/debug-ui/hierarchy-panel/index.d.ts +29 -0
  133. package/dist/debug-ui/index.d.ts +25 -2
  134. package/dist/debug-ui/layer-panel/index.d.ts +3 -2
  135. package/dist/debug-ui/media-source/index.d.ts +2 -0
  136. package/dist/debug-ui/media-source/session.d.ts +12 -0
  137. package/dist/debug-ui/media-source.cjs +1 -1
  138. package/dist/debug-ui/media-source.js +6 -4
  139. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  140. package/dist/debug-ui/object-inspector-panel/index.d.ts +25 -0
  141. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  142. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  143. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +9 -0
  144. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  145. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +7 -0
  146. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  147. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  148. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  149. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  150. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  151. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  152. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  153. package/dist/debug-ui/screen-image-settings/index.d.ts +4 -2
  154. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  155. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  156. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  157. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  158. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  159. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  160. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -122
  161. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  162. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  163. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  164. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  165. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  166. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  167. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  168. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  169. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  170. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  171. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  172. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  173. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  174. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  175. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  176. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  177. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  178. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  179. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  180. package/dist/debug-ui/screen-text-settings/types.d.ts +9 -0
  181. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +6 -3
  182. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  183. package/dist/debug-ui.cjs +3 -13
  184. package/dist/debug-ui.js +7735 -4896
  185. package/dist/drawNormalizedCrop-B-7zU-Xw.cjs +1 -0
  186. package/dist/drawNormalizedCrop-CRdIDyl1.js +44 -0
  187. package/dist/entries/all.d.ts +1 -0
  188. package/dist/entries/core.d.ts +53 -6
  189. package/dist/entries/face-effects.d.ts +10 -8
  190. package/dist/entries/internal.d.ts +1 -1
  191. package/dist/entries/low-level.d.ts +21 -4
  192. package/dist/entries/scene-object.d.ts +10 -0
  193. package/dist/entries/tracking.d.ts +25 -2
  194. package/dist/face-action/index.d.ts +34 -0
  195. package/dist/face-attribute-expression/index.d.ts +10 -0
  196. package/dist/face-effects.cjs +1 -342
  197. package/dist/face-effects.js +1391 -2767
  198. package/dist/face-info/blendshapes.d.ts +3 -0
  199. package/dist/face-info/derive.d.ts +8 -0
  200. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  201. package/dist/face-info/getFaceInfo.d.ts +8 -0
  202. package/dist/face-info/index.d.ts +8 -0
  203. package/dist/face-info/landmarks.d.ts +21 -0
  204. package/dist/face-info/types.d.ts +52 -0
  205. package/dist/getFaceInfo-Cjcgcc4w.js +118 -0
  206. package/dist/getFaceInfo-oQcP40Ha.cjs +1 -0
  207. package/dist/{handJoints2d.d.ts → hand/handJoints2d.d.ts} +1 -1
  208. package/dist/{handTracking2d.d.ts → hand/handTracking2d.d.ts} +1 -1
  209. package/dist/{handTracking2dController.d.ts → hand/handTracking2dController.d.ts} +1 -1
  210. package/dist/{handTracking3d.d.ts → hand/handTracking3d.d.ts} +1 -1
  211. package/dist/hooks/faceResults.d.ts +1 -1
  212. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  213. package/dist/hooks/useFaceAction.d.ts +3 -0
  214. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  215. package/dist/hooks/useFaceDetection.d.ts +18 -0
  216. package/dist/hooks/useFaceInfo.d.ts +7 -0
  217. package/dist/hooks/useFaceInfos.d.ts +15 -0
  218. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  219. package/dist/hooks/useFrameCapture.d.ts +18 -0
  220. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  221. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  222. package/dist/hooks/useTrackerContext.d.ts +2 -2
  223. package/dist/hooks/useXRModel.d.ts +5 -0
  224. package/dist/hooks/useXRSession/facade.d.ts +3 -0
  225. package/dist/hooks/useXRSession/registry.d.ts +9 -0
  226. package/dist/index-Be-S7uSm.cjs +1 -0
  227. package/dist/index-D4bLzBr6.cjs +1 -0
  228. package/dist/index-DdWBnI7A.cjs +17 -0
  229. package/dist/index-DpVIEBHw.js +2068 -0
  230. package/dist/index-DqhqBi7O.cjs +1 -0
  231. package/dist/index-HxT9XEuh.js +111 -0
  232. package/dist/{index-safCs_af.js → index-JygePOwo.js} +565 -508
  233. package/dist/index-N7C6fNah.js +214 -0
  234. package/dist/index-UU5ODHGU.cjs +1 -0
  235. package/dist/{index-BGNbrc4C.js → index-YMUaJU7U.js} +217 -126
  236. package/dist/{internal-Cae1ps15.js → internal-D7NxAsc6.js} +86 -80
  237. package/dist/internal-i2JkM85N.cjs +1 -0
  238. package/dist/internal.cjs +1 -1
  239. package/dist/internal.js +2 -2
  240. package/dist/low-level.cjs +1 -1
  241. package/dist/low-level.js +1138 -86
  242. package/dist/main.cjs +1 -73
  243. package/dist/main.js +545 -1693
  244. package/dist/material/MaterialFill.d.ts +20 -0
  245. package/dist/material/MeshMaterial.d.ts +14 -0
  246. package/dist/material/index.d.ts +2 -0
  247. package/dist/models/Body/index.d.ts +1 -1
  248. package/dist/models/Face/index.d.ts +1 -0
  249. package/dist/models/Face/rotation.d.ts +3 -0
  250. package/dist/render/renderGroups.d.ts +47 -0
  251. package/dist/render/renderPasses.d.ts +18 -0
  252. package/dist/renderGroups-JEXqSACh.js +152 -0
  253. package/dist/renderGroups-uXXsFpvw.cjs +1 -0
  254. package/dist/renderLayers-lDtL0_43.cjs +1 -0
  255. package/dist/renderLayers-zrK2pv5O.js +13 -0
  256. package/dist/renderPasses-CVWt0t8m.cjs +21 -0
  257. package/dist/renderPasses-CdGZeHHL.js +1500 -0
  258. package/dist/scene-object/index.d.ts +146 -0
  259. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  260. package/dist/scene-object.cjs +1 -0
  261. package/dist/scene-object.js +40 -0
  262. package/dist/{screenImageSettings.d.ts → screen-image/screenImageSettings.d.ts} +9 -2
  263. package/dist/{screenTextSettings.d.ts → screen-text/screenTextSettings.d.ts} +18 -2
  264. package/dist/screen2d/coordinates.d.ts +87 -0
  265. package/dist/screen2d/index.d.ts +3 -0
  266. package/dist/screen2d/screenTransform.d.ts +47 -0
  267. package/dist/screen2d/smoothing.d.ts +5 -0
  268. package/dist/{selectors-BLl2JUWW.cjs → selectors-2QvO5RYY.cjs} +1 -1
  269. package/dist/{selectors-CXd_x-6t.js → selectors-twqYByYZ.js} +6 -6
  270. package/dist/services/MetricsCollector/index.d.ts +7 -1
  271. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  272. package/dist/session-BChR4TgK.cjs +31 -0
  273. package/dist/session-C1StwN0f.js +363 -0
  274. package/dist/texture/animatedTexture.d.ts +63 -0
  275. package/dist/texture/animationMath.d.ts +8 -0
  276. package/dist/texture/gifReader.d.ts +17 -0
  277. package/dist/texture/gifTextureSource.d.ts +16 -0
  278. package/dist/texture/sourceResolver.d.ts +30 -0
  279. package/dist/tracking.cjs +1 -1
  280. package/dist/tracking.js +580 -321
  281. package/dist/types/face.d.ts +1 -13
  282. package/dist/types/index.d.ts +0 -1
  283. package/dist/types/nodes.d.ts +2 -1
  284. package/dist/types/session.d.ts +2 -0
  285. package/dist/types/tracking.d.ts +8 -2
  286. package/dist/types/util-types.d.ts +1 -1
  287. package/dist/useFaceInfo-DOJCGlDG.js +62 -0
  288. package/dist/useFaceInfo-DSUmuzzO.cjs +1 -0
  289. package/dist/useFaceResults-B1BSGUAW.cjs +1 -0
  290. package/dist/useFaceResults-CBmhT5E8.js +19 -0
  291. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  292. package/dist/utils/integrity.d.ts +4 -25
  293. package/dist/utils/landmarkBounds.d.ts +1 -1
  294. package/dist/utils/logger.d.ts +2 -2
  295. package/docs/MIGRATION_GUIDE.md +589 -0
  296. package/docs/SDK_DOCUMENTATION.md +1155 -0
  297. package/docs/api/audio.mdx +36 -0
  298. package/docs/api/behavior-components.mdx +164 -0
  299. package/docs/api/capture-recording.mdx +103 -0
  300. package/docs/api/debug-ui-scene-editor.mdx +249 -0
  301. package/docs/api/face-actions.mdx +104 -0
  302. package/docs/api/face-attribute-expression.mdx +87 -0
  303. package/docs/api/face-binding-anchors.mdx +53 -0
  304. package/docs/api/face-effects.mdx +19 -0
  305. package/docs/api/face-info.mdx +112 -0
  306. package/docs/api/face-mesh.mdx +98 -0
  307. package/docs/api/face-painting.mdx +33 -0
  308. package/docs/api/face-retouching.mdx +73 -0
  309. package/docs/api/material-render-state.mdx +132 -0
  310. package/docs/api/runtime-3d.mdx +311 -0
  311. package/docs/api/scene-object-store.mdx +213 -0
  312. package/docs/api/screen-image.mdx +65 -0
  313. package/docs/api/screen-shape.mdx +64 -0
  314. package/docs/api/screen-space-coordinates.mdx +41 -0
  315. package/docs/api/screen-text.mdx +39 -0
  316. package/docs/api/texture-sources.mdx +74 -0
  317. package/docs/api/trackers.mdx +46 -0
  318. package/docs/docs.json +70 -0
  319. package/docs/examples/scene-object-recipes.mdx +194 -0
  320. package/docs/guides/harness-debug-ui.mdx +139 -0
  321. package/docs/inspector/hierarchy-panel.mdx +51 -0
  322. package/docs/inspector/object-inspector-panel.mdx +51 -0
  323. package/docs/introduction.mdx +121 -0
  324. package/docs/scene-objects/overview.mdx +127 -0
  325. package/docs/scene-objects/render-groups.mdx +77 -0
  326. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  327. package/docs/texture-api-consumer.md +84 -0
  328. package/package.json +38 -8
  329. package/dist/MediaSourceSwitcher-C-xYg0nQ.js +0 -317
  330. package/dist/MediaSourceSwitcher-Cq3g4IKw.cjs +0 -31
  331. package/dist/components/FaceRetouch/defaults.d.ts +0 -13
  332. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  333. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  334. package/dist/defaults-BLpcN3pG.cjs +0 -1
  335. package/dist/defaults-LtY4M7dg.js +0 -55
  336. package/dist/index-BXyObVHF.cjs +0 -1
  337. package/dist/index-CY3bUAcW.js +0 -12
  338. package/dist/index-C_Duh13c.cjs +0 -1
  339. package/dist/index-D8fpPQkC.cjs +0 -1
  340. package/dist/index-DxshgBu0.cjs +0 -1
  341. package/dist/index-O-2crZ3M.js +0 -1102
  342. package/dist/internal-BjyhBP8i.cjs +0 -1
  343. package/dist/modules/XRClient/index.d.ts +0 -9
  344. package/dist/modules/index.d.ts +0 -1
  345. package/dist/screenImageSettings-6NRg4cx9.js +0 -39
  346. package/dist/screenImageSettings-y_B4_767.cjs +0 -1
  347. package/dist/services/ApiService.d.ts +0 -12
  348. package/dist/types/client.d.ts +0 -3
  349. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  350. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
  351. package/dist/useXRModel-3DcUa28n.cjs +0 -1
  352. package/dist/useXRModel-BMJE1hrk.js +0 -28
  353. /package/dist/{layerStack.d.ts → render/layerStack.d.ts} +0 -0
  354. /package/dist/{screenImagePresets.d.ts → screen-image/screenImagePresets.d.ts} +0 -0
  355. /package/dist/{screenTextPresets.d.ts → screen-text/screenTextPresets.d.ts} +0 -0
@@ -0,0 +1,214 @@
1
+ import { createContext as A, useContext as _, Suspense as B, useRef as T, useMemo as v, useEffect as R } from "react";
2
+ import { jsx as p, jsxs as L } from "react/jsx-runtime";
3
+ import { useGLTF as P } from "@react-three/drei";
4
+ import { useFrame as U } from "@react-three/fiber";
5
+ import { AdditiveBlending as W, SubtractiveBlending as q, MultiplyBlending as K, NoBlending as N, NormalBlending as G, NeverDepth as F, LessDepth as I, EqualDepth as z, GreaterDepth as H, NotEqualDepth as Y, GreaterEqualDepth as V, AlwaysDepth as $, LessEqualDepth as J, BackSide as Q, DoubleSide as X, FrontSide as Z, AnimationMixer as j, LoopRepeat as ee } from "three";
6
+ import { M as re } from "./index-YMUaJU7U.js";
7
+ const te = A(null), ke = () => {
8
+ const e = _(te);
9
+ if (!e)
10
+ throw new Error("useScreenSpace must be used within ScreenSpaceUI");
11
+ return e;
12
+ }, oe = A(null), Re = () => _(oe) ?? 1;
13
+ function ne(e) {
14
+ const r = /* @__PURE__ */ new Map(), t = /* @__PURE__ */ new Map(), i = e.clone();
15
+ return S(e, i, function(a, n) {
16
+ r.set(n, a), t.set(a, n);
17
+ }), i.traverse(function(a) {
18
+ if (!a.isSkinnedMesh) return;
19
+ const n = a, u = r.get(a), c = u.skeleton.bones;
20
+ n.skeleton = u.skeleton.clone(), n.bindMatrix.copy(u.bindMatrix), n.skeleton.bones = c.map(function(f) {
21
+ return t.get(f);
22
+ }), n.bind(n.skeleton, n.bindMatrix);
23
+ }), i;
24
+ }
25
+ function S(e, r, t) {
26
+ t(e, r);
27
+ for (let i = 0; i < e.children.length; i++)
28
+ S(e.children[i], r.children[i], t);
29
+ }
30
+ const ye = {
31
+ enabled: !0,
32
+ mesh: "cube",
33
+ material: {
34
+ type: "standard",
35
+ color: "#ffffff",
36
+ opacity: 1,
37
+ wireframe: !1,
38
+ roughness: 0.42,
39
+ metalness: 0.08
40
+ },
41
+ shadowMode: "off",
42
+ visible: !0
43
+ }, k = {
44
+ depthTest: !0,
45
+ depthWrite: !0,
46
+ depthFunc: "lessEqual",
47
+ colorWrite: !0,
48
+ colorMask: {
49
+ r: !0,
50
+ g: !0,
51
+ b: !0,
52
+ a: !0
53
+ },
54
+ cullMode: "back",
55
+ blendMode: "normal",
56
+ polygonOffset: {
57
+ enabled: !1,
58
+ factor: 0,
59
+ units: 0
60
+ }
61
+ }, h = (e) => ({
62
+ ...k,
63
+ ...e,
64
+ colorMask: {
65
+ ...k.colorMask,
66
+ ...e == null ? void 0 : e.colorMask
67
+ },
68
+ polygonOffset: {
69
+ ...k.polygonOffset,
70
+ ...e == null ? void 0 : e.polygonOffset
71
+ }
72
+ }), se = (e) => e === "never" ? F : e === "less" ? I : e === "equal" ? z : e === "greater" ? H : e === "notEqual" ? Y : e === "greaterEqual" ? V : e === "always" ? $ : J, ae = (e) => e === "front" ? Q : e === "off" ? X : Z, ie = (e) => e === "additive" ? W : e === "subtractive" ? q : e === "multiply" ? K : e === "none" ? N : G, O = (e) => {
73
+ const r = h(e), t = r.colorWrite && (r.colorMask.r || r.colorMask.g || r.colorMask.b || r.colorMask.a);
74
+ return {
75
+ depthTest: r.depthTest,
76
+ depthWrite: r.depthWrite,
77
+ depthFunc: se(r.depthFunc),
78
+ colorWrite: t,
79
+ side: ae(r.cullMode),
80
+ blending: ie(r.blendMode),
81
+ polygonOffset: r.polygonOffset.enabled,
82
+ polygonOffsetFactor: r.polygonOffset.factor,
83
+ polygonOffsetUnits: r.polygonOffset.units
84
+ };
85
+ }, w = (e, r) => {
86
+ const t = h(r);
87
+ return e < 1 || t.blendMode !== "normal" && t.blendMode !== "none";
88
+ }, D = (e) => e.colorWrite && (!e.colorMask.r || !e.colorMask.g || !e.colorMask.b || !e.colorMask.a), d = "__vincenttPreviousColorMask", y = "__vincenttColorMaskBaseBefore", E = "__vincenttColorMaskBaseAfter", ce = (e, r) => {
89
+ const t = e.userData, i = t[y] ?? e.onBeforeRender.bind(e), a = t[E] ?? e.onAfterRender.bind(e);
90
+ if (t[y] = i, t[E] = a, !D(r)) {
91
+ e.onBeforeRender = i, e.onAfterRender = a;
92
+ return;
93
+ }
94
+ e.onBeforeRender = (n, u, c, f, o, l) => {
95
+ i(n, u, c, f, o, l);
96
+ const s = n.getContext();
97
+ e.userData[d] = s.getParameter(s.COLOR_WRITEMASK), s.colorMask(
98
+ r.colorMask.r,
99
+ r.colorMask.g,
100
+ r.colorMask.b,
101
+ r.colorMask.a
102
+ );
103
+ }, e.onAfterRender = (n, u, c, f, o, l) => {
104
+ const s = e.userData[d];
105
+ s && (n.getContext().colorMask(...s), delete e.userData[d]), a(n, u, c, f, o, l);
106
+ };
107
+ }, C = (e) => ({
108
+ castShadow: e === "cast" || e === "castReceive",
109
+ receiveShadow: e === "receive" || e === "castReceive"
110
+ }), le = ({ mesh: e }) => e === "sphere" ? /* @__PURE__ */ p("sphereGeometry", { args: [0.85, 48, 32] }) : e === "plane" ? /* @__PURE__ */ p("planeGeometry", { args: [1.6, 1.6] }) : /* @__PURE__ */ p("boxGeometry", { args: [1.4, 1.4, 1.4] }), ue = ({
111
+ url: e,
112
+ nodeName: r,
113
+ settings: t,
114
+ renderOrder: i
115
+ }) => {
116
+ const { scene: a, animations: n } = P(e), u = T(null), c = v(() => {
117
+ const o = n.length ? ne(a) : a.clone(!0);
118
+ return o.traverse((l) => {
119
+ const s = l;
120
+ !s.isMesh || !s.material || (s.material = Array.isArray(s.material) ? s.material.map((g) => g.clone()) : s.material.clone());
121
+ }), o;
122
+ }, [a, n.length]);
123
+ R(() => {
124
+ const o = C(t.shadowMode), l = Math.min(1, Math.max(0, t.material.opacity)), s = O(t.material.renderState), g = w(l, t.material.renderState);
125
+ c.traverse((x) => {
126
+ const m = x;
127
+ if (!m.isMesh || !m.material) return;
128
+ m.castShadow = o.castShadow, m.receiveShadow = o.receiveShadow, (Array.isArray(m.material) ? m.material : [m.material]).forEach((M) => {
129
+ if (!M) return;
130
+ const b = M;
131
+ b.wireframe = t.material.wireframe, M.opacity = l, M.transparent = g, Object.assign(M, s), M.needsUpdate = !0;
132
+ }), ce(m, h(t.material.renderState));
133
+ });
134
+ }, [
135
+ c,
136
+ t.material.opacity,
137
+ t.material.renderState,
138
+ t.material.wireframe,
139
+ t.shadowMode
140
+ ]);
141
+ const f = r ? c.getObjectByName(r) : c;
142
+ return R(() => {
143
+ if (!n.length) return;
144
+ const o = new j(c);
145
+ return n.filter(
146
+ (s) => t.assetAnimation === "all" || s.name === t.assetAnimation
147
+ ).forEach((s) => o.clipAction(s).setLoop(ee, 1 / 0).play()), u.current = o, () => {
148
+ o.stopAllAction(), o.uncacheRoot(c), u.current = null;
149
+ };
150
+ }, [n, c, t.assetAnimation]), U((o, l) => {
151
+ var s;
152
+ return (s = u.current) == null ? void 0 : s.update(l);
153
+ }), /* @__PURE__ */ p("group", { renderOrder: i, children: /* @__PURE__ */ p("primitive", { object: f ?? c }) });
154
+ }, Ee = ({ renderOrder: e, value: r }) => {
155
+ if (!r.enabled || !r.visible) return null;
156
+ if (r.assetUrl)
157
+ return /* @__PURE__ */ p(B, { fallback: null, children: /* @__PURE__ */ p(
158
+ ue,
159
+ {
160
+ url: r.assetUrl,
161
+ nodeName: r.assetNodeName,
162
+ settings: r,
163
+ renderOrder: e
164
+ }
165
+ ) });
166
+ const t = Math.min(1, Math.max(0, r.material.opacity)), i = {
167
+ color: r.material.color,
168
+ transparent: w(t, r.material.renderState),
169
+ opacity: t,
170
+ wireframe: r.material.wireframe,
171
+ ...O(r.material.renderState)
172
+ };
173
+ return /* @__PURE__ */ L(
174
+ "mesh",
175
+ {
176
+ ...C(r.shadowMode),
177
+ onBeforeRender: (a, n, u, c, f) => {
178
+ const o = h(r.material.renderState);
179
+ if (!D(o)) return;
180
+ const l = a.getContext();
181
+ f.userData[d] = l.getParameter(
182
+ l.COLOR_WRITEMASK
183
+ ), l.colorMask(
184
+ o.colorMask.r,
185
+ o.colorMask.g,
186
+ o.colorMask.b,
187
+ o.colorMask.a
188
+ );
189
+ },
190
+ onAfterRender: (a, n, u, c, f) => {
191
+ const o = f.userData[d];
192
+ o && (a.getContext().colorMask(...o), delete f.userData[d]);
193
+ },
194
+ renderOrder: e,
195
+ children: [
196
+ /* @__PURE__ */ p(le, { mesh: r.mesh }),
197
+ /* @__PURE__ */ p(re, { settings: r.material, materialProps: i })
198
+ ]
199
+ }
200
+ );
201
+ };
202
+ export {
203
+ ye as D,
204
+ Ee as M,
205
+ oe as S,
206
+ Re as a,
207
+ k as b,
208
+ se as c,
209
+ ae as d,
210
+ te as e,
211
+ ie as g,
212
+ h as n,
213
+ ke as u
214
+ };
@@ -0,0 +1 @@
1
+ "use strict";const M=require("react"),m=require("react/jsx-runtime"),v=require("@react-three/drei"),N=require("@react-three/fiber"),c=require("three"),U=require("./index-DqhqBi7O.cjs"),y=M.createContext(null),F=()=>{const e=M.useContext(y);if(!e)throw new Error("useScreenSpace must be used within ScreenSpaceUI");return e},_=M.createContext(null),P=()=>M.useContext(_)??1;function W(e){const r=new Map,t=new Map,i=e.clone();return x(e,i,function(a,o){r.set(o,a),t.set(a,o)}),i.traverse(function(a){if(!a.isSkinnedMesh)return;const o=a,f=r.get(a),l=f.skeleton.bones;o.skeleton=f.skeleton.clone(),o.bindMatrix.copy(f.bindMatrix),o.skeleton.bones=l.map(function(p){return t.get(p)}),o.bind(o.skeleton,o.bindMatrix)}),i}function x(e,r,t){t(e,r);for(let i=0;i<e.children.length;i++)x(e.children[i],r.children[i],t)}const K={enabled:!0,mesh:"cube",material:{type:"standard",color:"#ffffff",opacity:1,wireframe:!1,roughness:.42,metalness:.08},shadowMode:"off",visible:!0},g={depthTest:!0,depthWrite:!0,depthFunc:"lessEqual",colorWrite:!0,colorMask:{r:!0,g:!0,b:!0,a:!0},cullMode:"back",blendMode:"normal",polygonOffset:{enabled:!1,factor:0,units:0}},E=e=>({...g,...e,colorMask:{...g.colorMask,...e==null?void 0:e.colorMask},polygonOffset:{...g.polygonOffset,...e==null?void 0:e.polygonOffset}}),D=e=>e==="never"?c.NeverDepth:e==="less"?c.LessDepth:e==="equal"?c.EqualDepth:e==="greater"?c.GreaterDepth:e==="notEqual"?c.NotEqualDepth:e==="greaterEqual"?c.GreaterEqualDepth:e==="always"?c.AlwaysDepth:c.LessEqualDepth,C=e=>e==="front"?c.BackSide:e==="off"?c.DoubleSide:c.FrontSide,O=e=>e==="additive"?c.AdditiveBlending:e==="subtractive"?c.SubtractiveBlending:e==="multiply"?c.MultiplyBlending:e==="none"?c.NoBlending:c.NormalBlending,w=e=>{const r=E(e),t=r.colorWrite&&(r.colorMask.r||r.colorMask.g||r.colorMask.b||r.colorMask.a);return{depthTest:r.depthTest,depthWrite:r.depthWrite,depthFunc:D(r.depthFunc),colorWrite:t,side:C(r.cullMode),blending:O(r.blendMode),polygonOffset:r.polygonOffset.enabled,polygonOffsetFactor:r.polygonOffset.factor,polygonOffsetUnits:r.polygonOffset.units}},T=(e,r)=>{const t=E(r);return e<1||t.blendMode!=="normal"&&t.blendMode!=="none"},b=e=>e.colorWrite&&(!e.colorMask.r||!e.colorMask.g||!e.colorMask.b||!e.colorMask.a),R="__vincenttPreviousColorMask",A="__vincenttColorMaskBaseBefore",S="__vincenttColorMaskBaseAfter",G=(e,r)=>{const t=e.userData,i=t[A]??e.onBeforeRender.bind(e),a=t[S]??e.onAfterRender.bind(e);if(t[A]=i,t[S]=a,!b(r)){e.onBeforeRender=i,e.onAfterRender=a;return}e.onBeforeRender=(o,f,l,p,n,u)=>{i(o,f,l,p,n,u);const s=o.getContext();e.userData[R]=s.getParameter(s.COLOR_WRITEMASK),s.colorMask(r.colorMask.r,r.colorMask.g,r.colorMask.b,r.colorMask.a)},e.onAfterRender=(o,f,l,p,n,u)=>{const s=e.userData[R];s&&(o.getContext().colorMask(...s),delete e.userData[R]),a(o,f,l,p,n,u)}},B=e=>({castShadow:e==="cast"||e==="castReceive",receiveShadow:e==="receive"||e==="castReceive"}),H=({mesh:e})=>e==="sphere"?m.jsx("sphereGeometry",{args:[.85,48,32]}):e==="plane"?m.jsx("planeGeometry",{args:[1.6,1.6]}):m.jsx("boxGeometry",{args:[1.4,1.4,1.4]}),I=({url:e,nodeName:r,settings:t,renderOrder:i})=>{const{scene:a,animations:o}=v.useGLTF(e),f=M.useRef(null),l=M.useMemo(()=>{const n=o.length?W(a):a.clone(!0);return n.traverse(u=>{const s=u;!s.isMesh||!s.material||(s.material=Array.isArray(s.material)?s.material.map(k=>k.clone()):s.material.clone())}),n},[a,o.length]);M.useEffect(()=>{const n=B(t.shadowMode),u=Math.min(1,Math.max(0,t.material.opacity)),s=w(t.material.renderState),k=T(u,t.material.renderState);l.traverse(L=>{const d=L;if(!d.isMesh||!d.material)return;d.castShadow=n.castShadow,d.receiveShadow=n.receiveShadow,(Array.isArray(d.material)?d.material:[d.material]).forEach(h=>{if(!h)return;const q=h;q.wireframe=t.material.wireframe,h.opacity=u,h.transparent=k,Object.assign(h,s),h.needsUpdate=!0}),G(d,E(t.material.renderState))})},[l,t.material.opacity,t.material.renderState,t.material.wireframe,t.shadowMode]);const p=r?l.getObjectByName(r):l;return M.useEffect(()=>{if(!o.length)return;const n=new c.AnimationMixer(l);return o.filter(s=>t.assetAnimation==="all"||s.name===t.assetAnimation).forEach(s=>n.clipAction(s).setLoop(c.LoopRepeat,1/0).play()),f.current=n,()=>{n.stopAllAction(),n.uncacheRoot(l),f.current=null}},[o,l,t.assetAnimation]),N.useFrame((n,u)=>{var s;return(s=f.current)==null?void 0:s.update(u)}),m.jsx("group",{renderOrder:i,children:m.jsx("primitive",{object:p??l})})},z=({renderOrder:e,value:r})=>{if(!r.enabled||!r.visible)return null;if(r.assetUrl)return m.jsx(M.Suspense,{fallback:null,children:m.jsx(I,{url:r.assetUrl,nodeName:r.assetNodeName,settings:r,renderOrder:e})});const t=Math.min(1,Math.max(0,r.material.opacity)),i={color:r.material.color,transparent:T(t,r.material.renderState),opacity:t,wireframe:r.material.wireframe,...w(r.material.renderState)};return m.jsxs("mesh",{...B(r.shadowMode),onBeforeRender:(a,o,f,l,p)=>{const n=E(r.material.renderState);if(!b(n))return;const u=a.getContext();p.userData[R]=u.getParameter(u.COLOR_WRITEMASK),u.colorMask(n.colorMask.r,n.colorMask.g,n.colorMask.b,n.colorMask.a)},onAfterRender:(a,o,f,l,p)=>{const n=p.userData[R];n&&(a.getContext().colorMask(...n),delete p.userData[R])},renderOrder:e,children:[m.jsx(H,{mesh:r.mesh}),m.jsx(U.MeshMaterial,{settings:r.material,materialProps:i})]})};exports.DEFAULT_MESH_RENDERER=K;exports.DEFAULT_MESH_RENDERER_RENDER_STATE=g;exports.MeshRenderer=z;exports.ScreenRectAspectContext=_;exports.ScreenSpaceContext=y;exports.getThreeBlending=O;exports.getThreeDepthFunction=D;exports.getThreeSide=C;exports.normalizeMeshRendererRenderState=E;exports.useScreenRectAspect=P;exports.useScreenSpace=F;
@@ -1,21 +1,61 @@
1
- import { jsxs as F, jsx as g } from "react/jsx-runtime";
2
- import { useThree as w, useFrame as D } from "@react-three/fiber";
3
- import k, { useContext as V, createContext as Z, useRef as A, useMemo as x, useEffect as z, useCallback as I } from "react";
4
- import { a as K, X as L, b as X, R as B } from "./index-safCs_af.js";
5
- import { u as S } from "./useXRModel-BMJE1hrk.js";
6
- import * as y from "three";
7
- const U = Z(null), c0 = () => V(U), G = (t, s, c) => K(t, s, c), a0 = (t, s, c) => {
8
- const l = (t.x - 0.5) * 2, f = (0.5 - t.y) * 2, d = y.MathUtils.clamp(t.z * 2, -1, 1);
9
- return c.set(l, f, d).unproject(s);
10
- }, W = (t, s, c, l, f, d) => {
11
- const h = Math.min(s, t.length);
12
- for (let n = 0; n < h; n++) {
13
- f(t[n], l, d);
14
- const m = n * 3;
15
- c[m] = d.x, c[m + 1] = d.y, c[m + 2] = d.z;
1
+ import { jsx as _, jsxs as w } from "react/jsx-runtime";
2
+ import { useThree as k, useFrame as U } from "@react-three/fiber";
3
+ import z, { useId as B, useState as W, useRef as A, useEffect as F, useSyncExternalStore as q, useMemo as v, useContext as G, createContext as J, useCallback as Q } from "react";
4
+ import { u as $, a as e0, X as P, b as t0 } from "./index-JygePOwo.js";
5
+ import { R as n0 } from "./renderLayers-zrK2pv5O.js";
6
+ import * as T from "three";
7
+ function r0(e) {
8
+ return JSON.stringify(e ?? {});
9
+ }
10
+ function j(e, t, r = !0) {
11
+ const { session: n } = $(), s = B(), [i, f] = W(null), u = r0(t), o = A(t);
12
+ o.current = t, F(() => {
13
+ let c = !1;
14
+ return f(null), n.registry.acquire(e, s, o.current).catch((l) => {
15
+ c || f(l instanceof Error ? l : new Error(String(l)));
16
+ }), () => {
17
+ c = !0, n.registry.release(e, s);
18
+ };
19
+ }, [n, e, s, u]), F(() => {
20
+ n.registry.setActive(e, s, r);
21
+ }, [n, e, s, r]);
22
+ const d = n.store, h = q(
23
+ (c) => d.subscribe(c),
24
+ () => d.getSnapshot().pipeline.get(e) ?? null,
25
+ () => null
26
+ ), p = v(() => h ? h.getModelNode() : null, [h]);
27
+ return {
28
+ ready: h !== null && i === null,
29
+ node: p,
30
+ error: i
31
+ };
32
+ }
33
+ const s0 = ({ materialProps: e, settings: t }) => t.type === "basic" ? /* @__PURE__ */ _("meshBasicMaterial", { ...e }) : /* @__PURE__ */ _(
34
+ "meshStandardMaterial",
35
+ {
36
+ ...e,
37
+ roughness: t.roughness,
38
+ metalness: t.metalness
39
+ }
40
+ ), g = 1e-6, o0 = (e) => {
41
+ const { x: t, y: r, z: n } = e.scale;
42
+ return Math.abs(t - r) <= g && Math.abs(t - n) <= g ? t : 1;
43
+ }, R0 = (e, t, r, n) => {
44
+ if (!r.enabled) return e;
45
+ const s = o0(r);
46
+ return n.x = t.x + (e.x - t.x) * s + r.position.x, n.y = t.y + (e.y - t.y) * s - r.position.y, n.z = t.z + (e.z - t.z) * s + r.position.z, n;
47
+ }, c0 = (e, t, r) => e0(e, t, r), b0 = (e, t, r) => {
48
+ const n = (e.x - 0.5) * 2, s = (0.5 - e.y) * 2, i = T.MathUtils.clamp(e.z * 2, -1, 1);
49
+ return r.set(n, s, i).unproject(t);
50
+ }, i0 = (e, t, r, n, s, i) => {
51
+ const f = Math.min(t, e.length);
52
+ for (let u = 0; u < f; u++) {
53
+ s(e[u], n, i);
54
+ const o = u * 3;
55
+ r[o] = i.x, r[o + 1] = i.y, r[o + 2] = i.z;
16
56
  }
17
- return h;
18
- }, Y = [
57
+ return f;
58
+ }, a0 = [
19
59
  [127, 34, 139],
20
60
  [11, 0, 37],
21
61
  [232, 231, 120],
@@ -869,7 +909,7 @@ const U = Z(null), c0 = () => V(U), G = (t, s, c) => K(t, s, c), a0 = (t, s, c)
869
909
  [390, 339, 249],
870
910
  [339, 448, 255],
871
911
  [255, 339, 448]
872
- ].flat(), q = [
912
+ ].flat(), u0 = [
873
913
  0.5104879319667817,
874
914
  0.33515610277652746,
875
915
  0.5174233198165894,
@@ -1826,65 +1866,75 @@ const U = Z(null), c0 = () => V(U), G = (t, s, c) => K(t, s, c), a0 = (t, s, c)
1826
1866
  0.618020570576191,
1827
1867
  0.33353258967399596,
1828
1868
  0.5936576622724534
1829
- ], j = 468, J = j * 3, O = ({
1830
- material: t,
1831
- faceIndex: s = 0,
1832
- numFaces: c,
1833
- visible: l = !0,
1834
- children: f
1869
+ ], H = 468, l0 = H * 3, f0 = {
1870
+ type: "standard",
1871
+ color: "#ffffff",
1872
+ opacity: 1,
1873
+ wireframe: !1,
1874
+ roughness: 1,
1875
+ metalness: 0
1876
+ }, K = ({
1877
+ material: e,
1878
+ faceIndex: t = 0,
1879
+ numFaces: r,
1880
+ visible: n = !0,
1881
+ children: s
1835
1882
  }) => {
1836
- const { ready: d, node: h } = S(
1837
- L.FACE_TRACKER,
1838
- c === void 0 ? void 0 : { numFaces: c }
1839
- ), { camera: n } = w(), m = A(null), T = A(null), C = A(null), E = A(null), R = A(null), v = A(new y.Vector3()), u = x(() => {
1840
- const i = new Uint16Array(Y), a = new y.BufferAttribute(i, 1), e = new y.Float32BufferAttribute(q, 2), o = new Float32Array(J), r = new y.Float32BufferAttribute(o, 3);
1841
- return r.setUsage(y.DynamicDrawUsage), { indexAttr: a, uvAttr: e, positionAttr: r, positions: o };
1883
+ const { ready: i, node: f } = j(
1884
+ P.FACE_TRACKER,
1885
+ r === void 0 ? void 0 : { numFaces: r }
1886
+ ), { camera: u } = k(), o = A(null), d = A(null), h = A(null), p = A(null), c = A(null), l = A(new T.Vector3()), E = v(() => {
1887
+ const m = new Uint16Array(a0), x = new T.BufferAttribute(m, 1), y = new T.Float32BufferAttribute(u0, 2), R = new Float32Array(l0), a = new T.Float32BufferAttribute(R, 3);
1888
+ return a.setUsage(T.DynamicDrawUsage), { indexAttr: x, uvAttr: y, positionAttr: a, positions: R };
1842
1889
  }, []);
1843
- z(() => {
1844
- E.current = u.indexAttr, R.current = u.uvAttr, C.current = u.positionAttr, T.current = u.positions;
1845
- const i = m.current;
1846
- if (i) {
1847
- const a = i.geometry;
1848
- a.setAttribute("position", u.positionAttr), a.setAttribute("uv", u.uvAttr), a.setIndex(u.indexAttr);
1890
+ F(() => {
1891
+ p.current = E.indexAttr, c.current = E.uvAttr, h.current = E.positionAttr, d.current = E.positions;
1892
+ const m = o.current;
1893
+ if (m) {
1894
+ const x = m.geometry;
1895
+ x.setAttribute("position", E.positionAttr), x.setAttribute("uv", E.uvAttr), x.setIndex(E.indexAttr);
1849
1896
  }
1850
1897
  return () => {
1851
- E.current = null, R.current = null, C.current = null, T.current = null;
1898
+ p.current = null, c.current = null, h.current = null, d.current = null;
1852
1899
  };
1853
- }, [u]), D(() => {
1854
- var p;
1855
- if (!d || !h || !m.current) return;
1856
- const { detectionResults: i } = h, a = (p = i == null ? void 0 : i.faceLandmarks) == null ? void 0 : p[s], e = m.current.geometry, o = T.current, r = C.current;
1857
- if (!a || a.length === 0 || !o || !r) {
1858
- e.drawRange.count !== 0 && e.setDrawRange(0, 0);
1900
+ }, [E]), U(() => {
1901
+ var M;
1902
+ if (!i || !f || !o.current) return;
1903
+ const { detectionResults: m } = f, x = (M = m == null ? void 0 : m.faceLandmarks) == null ? void 0 : M[t], y = o.current.geometry, R = d.current, a = h.current;
1904
+ if (!x || x.length === 0 || !R || !a) {
1905
+ y.drawRange.count !== 0 && y.setDrawRange(0, 0);
1859
1906
  return;
1860
1907
  }
1861
- e.getAttribute("position") !== r && (e.setAttribute("position", r), e.setAttribute("uv", R.current), e.setIndex(E.current)), e.drawRange.count === 0 && e.setDrawRange(0, 1 / 0), W(
1862
- a,
1863
- j,
1864
- o,
1865
- n,
1866
- G,
1867
- v.current
1868
- ), r.needsUpdate = !0, e.computeVertexNormals();
1908
+ y.getAttribute("position") !== a && (y.setAttribute("position", a), y.setAttribute("uv", c.current), y.setIndex(p.current)), y.drawRange.count === 0 && y.setDrawRange(0, 1 / 0), i0(
1909
+ x,
1910
+ H,
1911
+ R,
1912
+ u,
1913
+ c0,
1914
+ l.current
1915
+ ), a.needsUpdate = !0, y.computeVertexNormals();
1869
1916
  });
1870
- const M = f != null && f !== !1;
1871
- return /* @__PURE__ */ F("mesh", { material: t, ref: m, visible: l, children: [
1872
- /* @__PURE__ */ g("bufferGeometry", {}),
1873
- !t && !M && /* @__PURE__ */ g(
1874
- "meshStandardMaterial",
1917
+ const S = s != null && s !== !1;
1918
+ return /* @__PURE__ */ w("mesh", { material: e, ref: o, visible: n, children: [
1919
+ /* @__PURE__ */ _("bufferGeometry", {}),
1920
+ !e && !S && /* @__PURE__ */ _(
1921
+ s0,
1875
1922
  {
1876
- attach: "material",
1877
- transparent: !0,
1878
- depthWrite: !1,
1879
- side: y.DoubleSide,
1880
- needsUpdate: !0
1923
+ settings: f0,
1924
+ materialProps: {
1925
+ attach: "material",
1926
+ transparent: !0,
1927
+ depthWrite: !1,
1928
+ side: T.DoubleSide,
1929
+ needsUpdate: !0
1930
+ }
1881
1931
  }
1882
1932
  ),
1883
- !t && M ? f : null
1933
+ !e && S ? s : null
1884
1934
  ] });
1885
1935
  };
1886
- O.displayName = "FaceMesh";
1887
- const Q = {
1936
+ K.displayName = "FaceMesh";
1937
+ const L = {
1888
1938
  "face.forehead": 10,
1889
1939
  "face.noseTip": 1,
1890
1940
  "face.chin": 152,
@@ -1892,76 +1942,117 @@ const Q = {
1892
1942
  "face.rightEyeOuter": 33,
1893
1943
  "face.leftCheek": 425,
1894
1944
  "face.rightCheek": 205,
1895
- "face.mouthCenter": 13
1896
- }, $ = ({
1897
- faceIndex: t = 0,
1898
- numFaces: s,
1899
- scaleWithFace: c = !1,
1900
- targetFps: l,
1901
- active: f = !0,
1902
- children: d
1945
+ "face.mouthCenter": 13,
1946
+ "face.leftEarlobe": 454,
1947
+ "face.rightEarlobe": 234
1948
+ }, y0 = {
1949
+ "face.center": [10, 152, 234, 454],
1950
+ "face.leftEye": [263, 362, 387, 373],
1951
+ "face.rightEye": [33, 133, 158, 145]
1952
+ }, V = (e, t = 0) => Number.isFinite(e) ? e : t, D = (e) => Math.max(-1, Math.min(1, V(e))), d0 = { x: 0, y: 0, z: 0 }, h0 = (e, t, r = d0, n = { x: 0, y: 0, z: 0, visibility: 0 }) => {
1953
+ const s = L[e];
1954
+ if (s !== void 0) {
1955
+ const c = t[s];
1956
+ return c ? Object.assign(n, c) : null;
1957
+ }
1958
+ const i = y0[e];
1959
+ if (i) {
1960
+ n.x = 0, n.y = 0, n.z = 0;
1961
+ for (const c of i) {
1962
+ const l = t[c];
1963
+ if (!l) return null;
1964
+ n.x += l.x, n.y += l.y, n.z += l.z;
1965
+ }
1966
+ return n.x /= i.length, n.y /= i.length, n.z /= i.length, n.visibility = 1, n;
1967
+ }
1968
+ if (e !== "face.custom" || t.length === 0) return null;
1969
+ let f = 1 / 0, u = 1 / 0, o = -1 / 0, d = -1 / 0, h = 0;
1970
+ for (const c of t)
1971
+ f = Math.min(f, c.x), u = Math.min(u, c.y), o = Math.max(o, c.x), d = Math.max(d, c.y), h += c.z;
1972
+ const p = o - f;
1973
+ return n.x = (f + o) * 0.5 - D(r.x) * p * 0.5, n.y = (u + d) * 0.5 - D(r.y) * (d - u) * 0.5, n.z = h / t.length - V(r.z) * p, n.visibility = 1, n;
1974
+ }, T0 = {
1975
+ left: L["face.leftEyeOuter"],
1976
+ right: L["face.rightEyeOuter"]
1977
+ }, X = J(null), _0 = () => G(X), p0 = ({
1978
+ faceIndex: e = 0,
1979
+ numFaces: t,
1980
+ scaleWithFace: r = !1,
1981
+ followFaceRoll: n = !0,
1982
+ targetFps: s,
1983
+ active: i = !0,
1984
+ children: f
1903
1985
  }) => {
1904
- const h = A(!1), n = A(null), m = x(() => {
1905
- if (!(s === void 0 && l === void 0))
1986
+ const u = A(!1), o = A(null), d = v(() => {
1987
+ if (!(t === void 0 && s === void 0))
1906
1988
  return {
1907
- ...s === void 0 ? {} : { numFaces: s },
1908
- ...l === void 0 ? {} : { targetFps: l }
1989
+ ...t === void 0 ? {} : { numFaces: t },
1990
+ ...s === void 0 ? {} : { targetFps: s }
1909
1991
  };
1910
- }, [s, l]), { ready: T, node: C } = S(
1911
- L.FACE_TRACKER,
1912
- m,
1913
- f
1914
- ), { camera: E } = w(), R = A(E);
1915
- R.current !== E && (R.current = E, h.current = !1);
1916
- const v = A(null);
1917
- D(() => {
1918
- if (!T || !C || !n.current) return;
1919
- v.current = C, !h.current && R.current && (C._setCamera(R.current, t), h.current = !0);
1920
- const e = C.getFace(t);
1921
- if (!e) {
1922
- n.current.visible = !1;
1992
+ }, [t, s]), { ready: h, node: p } = j(
1993
+ P.FACE_TRACKER,
1994
+ d,
1995
+ i
1996
+ ), { camera: c } = k(), l = A(c);
1997
+ l.current !== c && (l.current = c, u.current = !1);
1998
+ const E = A(null), S = A({ x: 0, y: 0, z: 0, visibility: 0 });
1999
+ U(() => {
2000
+ if (!h || !p || !o.current) return;
2001
+ E.current = p, !u.current && l.current && (p.setCamera(l.current, e), u.current = !0);
2002
+ const a = p.getFace(e);
2003
+ if (!a) {
2004
+ o.current.visible = !1;
1923
2005
  return;
1924
2006
  }
1925
- n.current.visible = !0;
1926
- const { position: o, rotation: r, scale: p } = e.transform;
1927
- n.current.position.set(o.x, o.y, o.z), n.current.rotation.set(r.x, r.y, r.z), c ? n.current.scale.set(p.x, p.y, p.z) : n.current.scale.set(1, 1, 1);
2007
+ o.current.visible = !0;
2008
+ const { position: M, rotation: C, scale: b } = a.transform;
2009
+ o.current.position.set(M.x, M.y, M.z), o.current.rotation.set(C.x, C.y, n ? C.z : 0), r ? o.current.scale.set(b.x, b.y, b.z) : o.current.scale.set(1, 1, 1);
1928
2010
  });
1929
- const u = I(
1930
- (e) => {
1931
- var b, _;
1932
- const o = Q[e];
1933
- if (o === void 0) return null;
1934
- const r = v.current, p = (_ = (b = r == null ? void 0 : r.detectionResults) == null ? void 0 : b.faceLandmarks) == null ? void 0 : _[t];
1935
- if (!p || p.length === 0) return null;
1936
- const N = p[o];
1937
- return N ? { position: X(N, R.current) } : null;
2011
+ const m = Q(
2012
+ (a, M) => {
2013
+ var O, I;
2014
+ const C = E.current, b = (I = (O = C == null ? void 0 : C.detectionResults) == null ? void 0 : O.faceLandmarks) == null ? void 0 : I[e];
2015
+ if (!b || b.length === 0) return null;
2016
+ const N = h0(
2017
+ a,
2018
+ b,
2019
+ M,
2020
+ S.current
2021
+ );
2022
+ return N ? { position: t0(N, l.current) } : null;
1938
2023
  },
1939
- [t]
1940
- ), M = x(
1941
- () => ({ type: "face", resolveLandmark: u }),
1942
- [u]
2024
+ [e]
2025
+ ), x = v(
2026
+ () => ({ type: "face", resolveLandmark: m }),
2027
+ [m]
1943
2028
  );
1944
- let i;
1945
- const a = [];
1946
- return k.Children.forEach(d, (e) => {
1947
- var o, r;
1948
- k.isValidElement(e) && // eslint-disable-next-line @typescript-eslint/no-explicit-any
1949
- (((o = e.type) == null ? void 0 : o.displayName) === "FaceTracker.Mesh" || // eslint-disable-next-line @typescript-eslint/no-explicit-any
1950
- ((r = e.type) == null ? void 0 : r.displayName) === "FaceMesh") ? i = k.cloneElement(e, { faceIndex: t, numFaces: s }) : a.push(e);
1951
- }), /* @__PURE__ */ F(U.Provider, { value: M, children: [
1952
- /* @__PURE__ */ g("group", { ref: n, renderOrder: B.TRACKED, children: a }),
1953
- i
2029
+ let y;
2030
+ const R = [];
2031
+ return z.Children.forEach(f, (a) => {
2032
+ var M, C;
2033
+ z.isValidElement(a) && // eslint-disable-next-line @typescript-eslint/no-explicit-any
2034
+ (((M = a.type) == null ? void 0 : M.displayName) === "FaceTracker.Mesh" || // eslint-disable-next-line @typescript-eslint/no-explicit-any
2035
+ ((C = a.type) == null ? void 0 : C.displayName) === "FaceMesh") ? y = z.cloneElement(a, { faceIndex: e, numFaces: t }) : R.push(a);
2036
+ }), /* @__PURE__ */ w(X.Provider, { value: x, children: [
2037
+ /* @__PURE__ */ _("group", { ref: o, renderOrder: n0.TRACKED, children: R }),
2038
+ y
1954
2039
  ] });
1955
- }, H = (t) => /* @__PURE__ */ g(O, { ...t });
1956
- H.displayName = "FaceTracker.Mesh";
1957
- const P = $;
1958
- P.Mesh = H;
1959
- const u0 = P;
2040
+ }, Z = (e) => /* @__PURE__ */ _(K, { ...e });
2041
+ Z.displayName = "FaceTracker.Mesh";
2042
+ const Y = p0;
2043
+ Y.Mesh = Z;
2044
+ const S0 = Y;
1960
2045
  export {
1961
- P as F,
1962
- u0 as H,
1963
- U as T,
1964
- O as a,
1965
- a0 as p,
1966
- c0 as u
2046
+ T0 as F,
2047
+ S0 as H,
2048
+ s0 as M,
2049
+ X as T,
2050
+ _0 as a,
2051
+ Y as b,
2052
+ K as c,
2053
+ L as d,
2054
+ b0 as p,
2055
+ h0 as r,
2056
+ R0 as t,
2057
+ j as u
1967
2058
  };