@vincentt-xr/sdk 2.0.0-alpha.0 → 2.0.0-alpha.2

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 (362) hide show
  1. package/GROUNDING.md +1813 -27
  2. package/dist/{DebuggerUI-CEfdddkZ.cjs → DebuggerUI-B45_Gb9d.cjs} +1 -1
  3. package/dist/{DebuggerUI-Dgop6Q6o.js → DebuggerUI-Cq28c18s.js} +1 -1
  4. package/dist/FaceMeshRenderer-6t8OsQhK.js +1195 -0
  5. package/dist/FaceMeshRenderer-lQLhYIW-.cjs +155 -0
  6. package/dist/FaceRetouch-CDrL0pXg.js +551 -0
  7. package/dist/FaceRetouch-DtNl8-4e.cjs +134 -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 +22 -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 +74 -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 +4 -2
  28. package/dist/components/FaceRetouch/Background.d.ts +9 -5
  29. package/dist/components/FaceRetouch/FaceRetouch.d.ts +47 -0
  30. package/dist/components/FaceRetouch/index.d.ts +2 -6
  31. package/dist/components/FaceRetouch/landmarkMask.d.ts +4 -6
  32. package/dist/components/FaceRetouch/useFaceRetouchMask.d.ts +4 -7
  33. package/dist/components/FaceTracker/index.d.ts +5 -3
  34. package/dist/components/FaceWarp3D/FaceWarp3DHead.d.ts +15 -0
  35. package/dist/components/FaceWarp3D/defaults.d.ts +37 -0
  36. package/dist/components/FaceWarp3D/index.d.ts +3 -0
  37. package/dist/components/FaceWarp3D/warp.d.ts +13 -0
  38. package/dist/components/HandJoints2D/index.d.ts +6 -0
  39. package/dist/components/HandTracker/index.d.ts +2 -2
  40. package/dist/components/HandTracking2D/HandVisual.d.ts +12 -0
  41. package/dist/components/HandTracking2D/index.d.ts +5 -0
  42. package/dist/components/HandTracking2DController/index.d.ts +5 -0
  43. package/dist/components/HandTracking3D/index.d.ts +6 -0
  44. package/dist/components/LightObject/index.d.ts +20 -0
  45. package/dist/components/LookAt/index.d.ts +23 -0
  46. package/dist/components/MeshRenderer/index.d.ts +58 -0
  47. package/dist/components/PerspectiveCamera/index.d.ts +2 -8
  48. package/dist/components/PinToMesh/index.d.ts +47 -0
  49. package/dist/components/RenderGroupLayer/index.d.ts +6 -0
  50. package/dist/components/SceneObjectRenderer/index.d.ts +16 -0
  51. package/dist/components/Screen2D/ScreenTransformFrame.d.ts +11 -0
  52. package/dist/components/Screen2D/ScreenTransformHelpers.d.ts +19 -0
  53. package/dist/components/Screen2D/ScreenTransformInteraction.d.ts +18 -0
  54. package/dist/components/Screen2D/index.d.ts +5 -0
  55. package/dist/components/ScreenGlass/defaults.d.ts +3 -0
  56. package/dist/components/ScreenGlass/index.d.ts +5 -0
  57. package/dist/components/ScreenGlass/shaders.d.ts +2 -0
  58. package/dist/components/ScreenGlass/types.d.ts +10 -0
  59. package/dist/components/ScreenGradient/defaults.d.ts +5 -0
  60. package/dist/components/ScreenGradient/index.d.ts +5 -0
  61. package/dist/components/ScreenGradient/shaders.d.ts +2 -0
  62. package/dist/components/ScreenGradient/types.d.ts +19 -0
  63. package/dist/components/ScreenImage/ScreenImage.d.ts +4 -0
  64. package/dist/components/ScreenImage/components/DynamicTextureSync.d.ts +9 -0
  65. package/dist/components/ScreenImage/components/ScreenImageBody.d.ts +9 -0
  66. package/dist/components/ScreenImage/components/ScreenImageFrame.d.ts +9 -0
  67. package/dist/components/ScreenImage/components/ScreenImageTransformFrame.d.ts +9 -0
  68. package/dist/components/ScreenImage/fit.d.ts +52 -0
  69. package/dist/components/ScreenImage/index.d.ts +8 -0
  70. package/dist/components/ScreenImage/materials/ScreenImageBlendMaterial.d.ts +9 -0
  71. package/dist/components/ScreenImage/materials/ScreenImageMatcap.d.ts +3 -0
  72. package/dist/components/ScreenImage/source.d.ts +16 -0
  73. package/dist/components/ScreenImage/types.d.ts +37 -0
  74. package/dist/components/ScreenImage/utils/ScreenImageConstants.d.ts +9 -0
  75. package/dist/components/ScreenImage/utils/ScreenImageHelpers.d.ts +4 -0
  76. package/dist/components/ScreenShape/geometry.d.ts +5 -0
  77. package/dist/components/ScreenShape/index.d.ts +5 -0
  78. package/dist/components/ScreenShape/types.d.ts +41 -0
  79. package/dist/components/ScreenSpaceUI/ScreenTransformGuide.d.ts +15 -0
  80. package/dist/components/ScreenSpaceUI/ScreenTransformOverlayGuide.d.ts +9 -0
  81. package/dist/components/ScreenSpaceUI/index.d.ts +2 -0
  82. package/dist/components/ScreenText/components/ScreenTextBody.d.ts +2 -0
  83. package/dist/components/ScreenText/components/ScreenTextTransformFrame.d.ts +9 -0
  84. package/dist/components/ScreenText/constants.d.ts +5 -0
  85. package/dist/components/ScreenText/index.d.ts +6 -0
  86. package/dist/components/ScreenText/types.d.ts +31 -0
  87. package/dist/components/ScreenText/utils/ScreenTextHelpers.d.ts +14 -0
  88. package/dist/components/ScreenText/utils/ScreenTextMappings.d.ts +17 -0
  89. package/dist/components/SequentialRenderPasses/index.d.ts +6 -0
  90. package/dist/components/TextLabel/TextLabel.d.ts +5 -0
  91. package/dist/components/TextLabel/alignment.d.ts +4 -0
  92. package/dist/components/TextLabel/bend.d.ts +9 -0
  93. package/dist/components/TextLabel/canvas/buildTextLabelTexture.d.ts +4 -0
  94. package/dist/components/TextLabel/canvas/canvasTypography.d.ts +13 -0
  95. package/dist/components/TextLabel/canvas/drawBackground.d.ts +21 -0
  96. package/dist/components/TextLabel/canvas/drawEffects.d.ts +34 -0
  97. package/dist/components/TextLabel/canvas/drawText.d.ts +19 -0
  98. package/dist/components/TextLabel/components/TextLabelMesh.d.ts +13 -0
  99. package/dist/components/TextLabel/constants.d.ts +2 -0
  100. package/dist/components/TextLabel/hooks/useTextLabelTexture.d.ts +7 -0
  101. package/dist/components/TextLabel/index.d.ts +2 -62
  102. package/dist/components/TextLabel/layout/measurement.d.ts +8 -0
  103. package/dist/components/TextLabel/layout/resolveTextLayout.d.ts +25 -0
  104. package/dist/components/TextLabel/layout/wrapText.d.ts +6 -0
  105. package/dist/components/TextLabel/types.d.ts +227 -0
  106. package/dist/components/TrackingAnchor/index.d.ts +18 -2
  107. package/dist/components/Transform3D/index.d.ts +30 -0
  108. package/dist/components/XRMediaSurface/index.d.ts +6 -6
  109. package/dist/components/XRScene/index.d.ts +14 -3
  110. package/dist/components/XRViewport/XRViewport.d.ts +11 -0
  111. package/dist/components/XRViewport/components/HiddenMedia.d.ts +7 -0
  112. package/dist/components/XRViewport/components/MediaAssetPicker.d.ts +8 -0
  113. package/dist/components/XRViewport/components/MediaControlStack.d.ts +13 -0
  114. package/dist/components/XRViewport/components/XRViewportLayers.d.ts +30 -0
  115. package/dist/components/XRViewport/constants.d.ts +24 -0
  116. package/dist/components/XRViewport/contexts.d.ts +6 -0
  117. package/dist/components/XRViewport/hooks/useViewportExternalFaces.d.ts +13 -0
  118. package/dist/components/XRViewport/hooks/useViewportMediaSource.d.ts +16 -0
  119. package/dist/components/XRViewport/hooks/useViewportMediaTexture.d.ts +10 -0
  120. package/dist/components/XRViewport/hooks/useViewportPipeline.d.ts +41 -0
  121. package/dist/components/XRViewport/hooks/useViewportRenderState.d.ts +47 -0
  122. package/dist/components/XRViewport/index.d.ts +3 -101
  123. package/dist/components/XRViewport/layout.d.ts +16 -0
  124. package/dist/components/XRViewport/slots.d.ts +16 -0
  125. package/dist/components/XRViewport/types.d.ts +89 -0
  126. package/dist/components/XRViewport/useViewportSize.d.ts +3 -0
  127. package/dist/components/index.d.ts +19 -0
  128. package/dist/contexts-BKvTIayr.cjs +1 -0
  129. package/dist/contexts-Bk5zz_VR.js +214 -0
  130. package/dist/debug-ui/component-editor/index.d.ts +19 -0
  131. package/dist/debug-ui/default-setting/index.d.ts +37 -0
  132. package/dist/debug-ui/default-setting.cjs +21 -0
  133. package/dist/debug-ui/default-setting.js +777 -0
  134. package/dist/debug-ui/face-mesh-renderer-settings/index.d.ts +8 -0
  135. package/dist/debug-ui/face-retouch/index.d.ts +11 -0
  136. package/dist/debug-ui/face-warp-3d/index.d.ts +6 -0
  137. package/dist/debug-ui/hand-joints-2d/index.d.ts +6 -0
  138. package/dist/debug-ui/hand-tracking-2d/index.d.ts +6 -0
  139. package/dist/debug-ui/hand-tracking-2d-controller/index.d.ts +6 -0
  140. package/dist/debug-ui/hand-tracking-3d/index.d.ts +6 -0
  141. package/dist/debug-ui/hierarchy-panel/index.d.ts +29 -0
  142. package/dist/debug-ui/index.d.ts +46 -0
  143. package/dist/debug-ui/layer-panel/index.d.ts +18 -0
  144. package/dist/debug-ui/media-source/MediaSourceSwitcher.d.ts +10 -0
  145. package/dist/debug-ui/media-source/index.d.ts +6 -0
  146. package/dist/debug-ui/media-source/media-preset.d.ts +9 -0
  147. package/dist/debug-ui/media-source/session.d.ts +12 -0
  148. package/dist/debug-ui/media-source.cjs +1 -0
  149. package/dist/debug-ui/media-source.js +9 -0
  150. package/dist/debug-ui/mesh-renderer-settings/index.d.ts +6 -0
  151. package/dist/debug-ui/object-inspector-panel/index.d.ts +25 -0
  152. package/dist/debug-ui/pin-to-mesh-settings/index.d.ts +10 -0
  153. package/dist/debug-ui/scene-editor/context.d.ts +38 -0
  154. package/dist/debug-ui/scene-editor/hierarchy-panel.d.ts +9 -0
  155. package/dist/debug-ui/scene-editor/index.d.ts +11 -0
  156. package/dist/debug-ui/scene-editor/inspector-panel.d.ts +7 -0
  157. package/dist/debug-ui/scene-editor/store-utils.d.ts +2 -0
  158. package/dist/debug-ui/scene-editor/viewport-toolbar.d.ts +4 -0
  159. package/dist/debug-ui/scene-editor/viewport.d.ts +21 -0
  160. package/dist/debug-ui/screen-glass-settings/index.d.ts +6 -0
  161. package/dist/debug-ui/screen-gradient-settings/GradientStopsEditor.d.ts +5 -0
  162. package/dist/debug-ui/screen-gradient-settings/index.d.ts +6 -0
  163. package/dist/debug-ui/screen-gradient-settings/styles.d.ts +3 -0
  164. package/dist/debug-ui/screen-image-settings/index.d.ts +9 -0
  165. package/dist/debug-ui/screen-shape-settings/index.d.ts +6 -0
  166. package/dist/debug-ui/screen-text-settings/NumberField.d.ts +9 -0
  167. package/dist/debug-ui/screen-text-settings/ScreenTextSettingsPanel.d.ts +3 -0
  168. package/dist/debug-ui/screen-text-settings/controls/NestedSection.d.ts +7 -0
  169. package/dist/debug-ui/screen-text-settings/controls/Section.d.ts +8 -0
  170. package/dist/debug-ui/screen-text-settings/controls/icons.d.ts +4 -0
  171. package/dist/debug-ui/screen-text-settings/index.d.ts +2 -0
  172. package/dist/debug-ui/screen-text-settings/sections/BackgroundSection.d.ts +8 -0
  173. package/dist/debug-ui/screen-text-settings/sections/ContentSection.d.ts +5 -0
  174. package/dist/debug-ui/screen-text-settings/sections/EffectsSection.d.ts +25 -0
  175. package/dist/debug-ui/screen-text-settings/sections/StyleSection.d.ts +5 -0
  176. package/dist/debug-ui/screen-text-settings/sections/TransformSection.d.ts +5 -0
  177. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundFillControls.d.ts +2 -0
  178. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundSizeControls.d.ts +2 -0
  179. package/dist/debug-ui/screen-text-settings/sections/background/BackgroundStrokeControls.d.ts +2 -0
  180. package/dist/debug-ui/screen-text-settings/sections/background/types.d.ts +7 -0
  181. package/dist/debug-ui/screen-text-settings/sections/effects/BendEffectSection.d.ts +4 -0
  182. package/dist/debug-ui/screen-text-settings/sections/effects/EffectChrome.d.ts +21 -0
  183. package/dist/debug-ui/screen-text-settings/sections/effects/GlowEffectSection.d.ts +4 -0
  184. package/dist/debug-ui/screen-text-settings/sections/effects/InnerShadowEffectSection.d.ts +4 -0
  185. package/dist/debug-ui/screen-text-settings/sections/effects/OutlineEffectSection.d.ts +4 -0
  186. package/dist/debug-ui/screen-text-settings/sections/effects/ShadowEffectSection.d.ts +4 -0
  187. package/dist/debug-ui/screen-text-settings/sections/effects/types.d.ts +14 -0
  188. package/dist/debug-ui/screen-text-settings/settings.d.ts +90 -0
  189. package/dist/debug-ui/screen-text-settings/styles.d.ts +26 -0
  190. package/dist/debug-ui/screen-text-settings/transform.d.ts +6 -0
  191. package/dist/debug-ui/screen-text-settings/types.d.ts +9 -0
  192. package/dist/debug-ui/settings-panel/index.d.ts +38 -0
  193. package/dist/debug-ui/shared/MaterialSection.d.ts +13 -0
  194. package/dist/debug-ui/shared/ScreenTransformSection.d.ts +32 -0
  195. package/dist/debug-ui/transform-3d-settings/index.d.ts +11 -0
  196. package/dist/debug-ui.cjs +10 -0
  197. package/dist/debug-ui.js +8861 -0
  198. package/dist/drawNormalizedCrop-B-7zU-Xw.cjs +1 -0
  199. package/dist/drawNormalizedCrop-CRdIDyl1.js +44 -0
  200. package/dist/entries/all.d.ts +1 -0
  201. package/dist/entries/core.d.ts +55 -4
  202. package/dist/entries/face-effects.d.ts +12 -8
  203. package/dist/entries/internal.d.ts +1 -1
  204. package/dist/entries/low-level.d.ts +21 -4
  205. package/dist/entries/scene-object.d.ts +10 -0
  206. package/dist/entries/tracking.d.ts +25 -2
  207. package/dist/face-action/index.d.ts +34 -0
  208. package/dist/face-attribute-expression/index.d.ts +10 -0
  209. package/dist/face-effects.cjs +1 -252
  210. package/dist/face-effects.js +1404 -2613
  211. package/dist/face-info/blendshapes.d.ts +3 -0
  212. package/dist/face-info/derive.d.ts +8 -0
  213. package/dist/face-info/drawFaceCrop.d.ts +10 -0
  214. package/dist/face-info/getFaceInfo.d.ts +8 -0
  215. package/dist/face-info/index.d.ts +8 -0
  216. package/dist/face-info/landmarks.d.ts +21 -0
  217. package/dist/face-info/types.d.ts +52 -0
  218. package/dist/getFaceInfo-CyPAKh3h.cjs +1 -0
  219. package/dist/getFaceInfo-hUKMLFcr.js +118 -0
  220. package/dist/hand/handJoints2d.d.ts +49 -0
  221. package/dist/hand/handTracking2d.d.ts +33 -0
  222. package/dist/hand/handTracking2dController.d.ts +65 -0
  223. package/dist/hand/handTracking3d.d.ts +52 -0
  224. package/dist/hooks/faceResults.d.ts +1 -1
  225. package/dist/hooks/useCalibrationFaceTracker.d.ts +1 -1
  226. package/dist/hooks/useFaceAction.d.ts +3 -0
  227. package/dist/hooks/useFaceAttributeExpression.d.ts +16 -0
  228. package/dist/hooks/useFaceDetection.d.ts +18 -0
  229. package/dist/hooks/useFaceInfo.d.ts +7 -0
  230. package/dist/hooks/useFaceInfos.d.ts +15 -0
  231. package/dist/hooks/useFaceResultReader.d.ts +10 -0
  232. package/dist/hooks/useFrameCapture.d.ts +18 -0
  233. package/dist/hooks/useMediaRecorder.d.ts +14 -2
  234. package/dist/hooks/useOwnedTexture.d.ts +6 -0
  235. package/dist/hooks/useTrackerContext.d.ts +2 -2
  236. package/dist/hooks/useXRSession/facade.d.ts +3 -0
  237. package/dist/hooks/useXRSession/registry.d.ts +9 -0
  238. package/dist/index-82aENaRq.cjs +1 -0
  239. package/dist/{index-BD-JWMjE.js → index-BgQAX8rs.js} +198 -134
  240. package/dist/index-CEc1CAmB.cjs +1 -0
  241. package/dist/index-CTHeBQOs.js +178 -0
  242. package/dist/index-D4bLzBr6.cjs +1 -0
  243. package/dist/index-DSpzjuqd.cjs +1 -0
  244. package/dist/index-Di70KWuY.js +2049 -0
  245. package/dist/index-DzEzkBIH.cjs +17 -0
  246. package/dist/{index-CYMj26Ej.js → index-JygePOwo.js} +565 -498
  247. package/dist/index-UC0Ux38E.js +111 -0
  248. package/dist/{internal-KOKJDxCG.js → internal-DuMPpcbp.js} +86 -80
  249. package/dist/internal-i2JkM85N.cjs +1 -0
  250. package/dist/internal.cjs +1 -1
  251. package/dist/internal.js +2 -2
  252. package/dist/low-level.cjs +1 -1
  253. package/dist/low-level.js +959 -632
  254. package/dist/main.cjs +1 -1
  255. package/dist/main.js +556 -455
  256. package/dist/material/MaterialFill.d.ts +20 -0
  257. package/dist/material/MeshMaterial.d.ts +14 -0
  258. package/dist/material/index.d.ts +2 -0
  259. package/dist/models/Body/index.d.ts +1 -1
  260. package/dist/models/Face/index.d.ts +1 -0
  261. package/dist/models/Face/rotation.d.ts +3 -0
  262. package/dist/models/Hand/HandTracking.d.ts +2 -0
  263. package/dist/render/layerStack.d.ts +29 -0
  264. package/dist/render/renderGroups.d.ts +47 -0
  265. package/dist/render/renderPasses.d.ts +18 -0
  266. package/dist/renderGroups-C9QJrAXu.js +152 -0
  267. package/dist/renderGroups-Dvm1J4lW.cjs +1 -0
  268. package/dist/renderLayers-lDtL0_43.cjs +1 -0
  269. package/dist/renderLayers-zrK2pv5O.js +13 -0
  270. package/dist/renderPasses-CT5iBwtg.cjs +21 -0
  271. package/dist/renderPasses-CjgG_6kQ.js +1500 -0
  272. package/dist/scene-object/index.d.ts +146 -0
  273. package/dist/scene-object/runtimeRegistry.d.ts +14 -0
  274. package/dist/scene-object.cjs +1 -0
  275. package/dist/scene-object.js +40 -0
  276. package/dist/screen-image/screenImagePresets.d.ts +13 -0
  277. package/dist/screen-image/screenImageSettings.d.ts +57 -0
  278. package/dist/screen-text/screenTextPresets.d.ts +6 -0
  279. package/dist/screen-text/screenTextSettings.d.ts +147 -0
  280. package/dist/screen2d/coordinates.d.ts +87 -0
  281. package/dist/screen2d/index.d.ts +7 -0
  282. package/dist/screen2d/material-runtime.d.ts +32 -0
  283. package/dist/screen2d/screenTransform.d.ts +47 -0
  284. package/dist/screen2d/smoothing.d.ts +5 -0
  285. package/dist/screen2d/texture.d.ts +10 -0
  286. package/dist/screen2d/transform.d.ts +25 -0
  287. package/dist/screen2d/types.d.ts +90 -0
  288. package/dist/{selectors-Bub0o3qy.cjs → selectors-2QvO5RYY.cjs} +1 -1
  289. package/dist/{selectors-BHO6TnoC.js → selectors-Dw3C-gSk.js} +5 -5
  290. package/dist/services/MetricsCollector/index.d.ts +7 -1
  291. package/dist/services/MetricsCollector/utils.d.ts +1 -1
  292. package/dist/session-BChR4TgK.cjs +31 -0
  293. package/dist/session-C1StwN0f.js +363 -0
  294. package/dist/texture/animatedTexture.d.ts +61 -0
  295. package/dist/texture/animationMath.d.ts +8 -0
  296. package/dist/texture/sourceResolver.d.ts +30 -0
  297. package/dist/tracking.cjs +1 -1
  298. package/dist/tracking.js +582 -298
  299. package/dist/types/face.d.ts +1 -13
  300. package/dist/types/hand-tracking.d.ts +8 -0
  301. package/dist/types/index.d.ts +0 -1
  302. package/dist/types/nodes.d.ts +4 -1
  303. package/dist/types/session.d.ts +2 -0
  304. package/dist/types/tracking.d.ts +8 -2
  305. package/dist/types/util-types.d.ts +1 -1
  306. package/dist/useFaceInfo-C-WfMlYp.cjs +1 -0
  307. package/dist/useFaceInfo-CwsHZedC.js +62 -0
  308. package/dist/useFaceResults-CkFc1egZ.js +19 -0
  309. package/dist/useFaceResults-VcFdOUFV.cjs +1 -0
  310. package/dist/utils/drawNormalizedCrop.d.ts +22 -0
  311. package/dist/utils/integrity.d.ts +4 -25
  312. package/dist/utils/landmarkBounds.d.ts +1 -1
  313. package/dist/utils/logger.d.ts +2 -2
  314. package/dist/x-Co8jPhP0.js +127 -0
  315. package/dist/x-KC8E4Gaj.cjs +41 -0
  316. package/docs/MIGRATION_GUIDE.md +589 -0
  317. package/docs/SDK_DOCUMENTATION.md +1155 -0
  318. package/docs/api/audio.mdx +36 -0
  319. package/docs/api/behavior-components.mdx +164 -0
  320. package/docs/api/capture-recording.mdx +103 -0
  321. package/docs/api/debug-ui-scene-editor.mdx +249 -0
  322. package/docs/api/face-actions.mdx +104 -0
  323. package/docs/api/face-attribute-expression.mdx +87 -0
  324. package/docs/api/face-binding-anchors.mdx +53 -0
  325. package/docs/api/face-effects.mdx +19 -0
  326. package/docs/api/face-info.mdx +112 -0
  327. package/docs/api/face-mesh.mdx +98 -0
  328. package/docs/api/face-painting.mdx +33 -0
  329. package/docs/api/face-retouching.mdx +73 -0
  330. package/docs/api/material-render-state.mdx +132 -0
  331. package/docs/api/runtime-3d.mdx +311 -0
  332. package/docs/api/scene-object-store.mdx +213 -0
  333. package/docs/api/screen-image.mdx +41 -0
  334. package/docs/api/screen-shape.mdx +64 -0
  335. package/docs/api/screen-space-coordinates.mdx +41 -0
  336. package/docs/api/screen-text.mdx +39 -0
  337. package/docs/api/texture-sources.mdx +55 -0
  338. package/docs/api/trackers.mdx +46 -0
  339. package/docs/docs.json +70 -0
  340. package/docs/examples/scene-object-recipes.mdx +194 -0
  341. package/docs/guides/harness-debug-ui.mdx +139 -0
  342. package/docs/inspector/hierarchy-panel.mdx +51 -0
  343. package/docs/inspector/object-inspector-panel.mdx +51 -0
  344. package/docs/introduction.mdx +121 -0
  345. package/docs/scene-objects/overview.mdx +127 -0
  346. package/docs/scene-objects/render-groups.mdx +77 -0
  347. package/docs/scene-objects/runtime-rendering.mdx +75 -0
  348. package/docs/texture-api-consumer.md +58 -0
  349. package/package.json +55 -7
  350. package/dist/components/FaceRetouch/retouchRegions.d.ts +0 -23
  351. package/dist/components/FaceRetouch/useFaceRetouchRegions.d.ts +0 -12
  352. package/dist/index-B5J4gzn2.cjs +0 -1
  353. package/dist/index-BVBVg96G.cjs +0 -1
  354. package/dist/index-DtwHElmG.js +0 -157
  355. package/dist/index-PtFmD6B8.cjs +0 -1
  356. package/dist/internal-DH5d1Xnq.cjs +0 -1
  357. package/dist/modules/XRClient/index.d.ts +0 -9
  358. package/dist/modules/index.d.ts +0 -1
  359. package/dist/services/ApiService.d.ts +0 -12
  360. package/dist/types/client.d.ts +0 -3
  361. package/dist/useFaceResults-cpsSmKKc.js +0 -81
  362. package/dist/useFaceResults-hVUJYSEY.cjs +0 -1
@@ -0,0 +1,1195 @@
1
+ import { jsx as p, jsxs as _e, Fragment as Ve } from "react/jsx-runtime";
2
+ import { useLoader as ce, useThree as Dt, useFrame as Pt } from "@react-three/fiber";
3
+ import { useMemo as q, useRef as l, useState as We, useCallback as Ge, useEffect as Te } from "react";
4
+ import * as g from "three";
5
+ import { MathUtils as Xe, Color as Gt, Vector2 as ze } from "three";
6
+ import { l as ne, f as zt, X as Nt } from "./index-JygePOwo.js";
7
+ import { c as Ht, b as Bt } from "./selectors-Dw3C-gSk.js";
8
+ import { t as Vt, p as Wt, b as Xt } from "./index-BgQAX8rs.js";
9
+ import { TransformControls as jt } from "@react-three/drei";
10
+ const Re = 8, K = {
11
+ type: "linear",
12
+ stops: [
13
+ { offset: 0, color: "#38bdf8" },
14
+ { offset: 1, color: "#a78bfa" }
15
+ ],
16
+ angle: 0,
17
+ center: { x: 0.5, y: 0.5 },
18
+ radius: 0.5
19
+ }, Yt = (e) => {
20
+ const n = e.slice(0, Re).map((t) => ({ ...t, offset: Xe.clamp(t.offset, 0, 1) })).sort((t, r) => t.offset - r.offset);
21
+ return n.length >= 2 ? n : K.stops.map((t) => ({ ...t }));
22
+ }, Kt = (e) => ({
23
+ ...K,
24
+ ...e,
25
+ center: { ...K.center, ...e == null ? void 0 : e.center },
26
+ radius: Math.max(0.01, (e == null ? void 0 : e.radius) ?? K.radius),
27
+ stops: Yt((e == null ? void 0 : e.stops) ?? K.stops)
28
+ }), $t = `
29
+ varying vec2 vPosition;
30
+ void main() {
31
+ vPosition = position.xy;
32
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
33
+ }
34
+ `, Qt = `
35
+ #define MAX_STOPS 8
36
+ uniform vec3 stopColors[MAX_STOPS];
37
+ uniform float stopOffsets[MAX_STOPS];
38
+ uniform int stopCount;
39
+ uniform int gradientType;
40
+ uniform vec2 direction;
41
+ uniform vec2 center;
42
+ uniform float radius;
43
+ uniform float angleOffset;
44
+ uniform float opacity;
45
+ varying vec2 vPosition;
46
+
47
+ vec3 sampleGradient(float amount) {
48
+ vec3 color = stopColors[0];
49
+ for (int index = 1; index < MAX_STOPS; index++) {
50
+ if (index >= stopCount) break;
51
+ if (amount <= stopOffsets[index]) {
52
+ float width = max(0.0001, stopOffsets[index] - stopOffsets[index - 1]);
53
+ return mix(stopColors[index - 1], stopColors[index], clamp((amount - stopOffsets[index - 1]) / width, 0.0, 1.0));
54
+ }
55
+ color = stopColors[index];
56
+ }
57
+ return color;
58
+ }
59
+
60
+ void main() {
61
+ vec2 delta = vPosition - center;
62
+ float amount;
63
+ if (gradientType == 1) {
64
+ amount = clamp(length(delta) / radius, 0.0, 1.0);
65
+ } else if (gradientType == 2) {
66
+ amount = fract(atan(delta.y, delta.x) / 6.28318530718 + 0.5 + angleOffset);
67
+ } else {
68
+ amount = clamp(dot(delta, direction) + 0.5, 0.0, 1.0);
69
+ }
70
+ gl_FragColor = vec4(sampleGradient(amount), opacity);
71
+ }
72
+ `, qt = { linear: 0, radial: 1, angular: 2 }, Zt = ({ opacity: e = 1, value: n }) => {
73
+ const t = q(() => {
74
+ const r = Kt(n), a = Xe.degToRad(r.angle), o = r.stops.map((i) => new Gt(i.color)), s = r.stops.map((i) => i.offset);
75
+ for (; o.length < Re; ) o.push(o[o.length - 1]);
76
+ for (; s.length < Re; ) s.push(1);
77
+ return {
78
+ stopColors: { value: o },
79
+ stopOffsets: { value: s },
80
+ stopCount: { value: r.stops.length },
81
+ gradientType: { value: qt[r.type] },
82
+ direction: { value: new ze(Math.cos(a), Math.sin(a)) },
83
+ center: { value: new ze(r.center.x - 0.5, 0.5 - r.center.y) },
84
+ radius: { value: r.radius },
85
+ angleOffset: { value: r.angle / 360 },
86
+ opacity: { value: e }
87
+ };
88
+ }, [e, n]);
89
+ return /* @__PURE__ */ p(
90
+ "shaderMaterial",
91
+ {
92
+ uniforms: t,
93
+ vertexShader: $t,
94
+ fragmentShader: Qt,
95
+ transparent: e < 1,
96
+ depthTest: !1,
97
+ depthWrite: !1,
98
+ toneMapped: !1
99
+ }
100
+ );
101
+ }, Jt = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO2YpZcAAAAASUVORK5CYII=", zn = {
102
+ source: "solid",
103
+ color: "#ffffff",
104
+ opacity: 1,
105
+ textureUrl: "",
106
+ gradient: K
107
+ }, je = (e) => ({
108
+ ...K,
109
+ stops: [
110
+ { offset: 0, color: "#ffffff" },
111
+ { offset: 1, color: e }
112
+ ]
113
+ }), en = ({
114
+ depthTest: e,
115
+ depthWrite: n,
116
+ settings: t,
117
+ side: r,
118
+ toneMapped: a
119
+ }) => {
120
+ const o = ce(
121
+ g.TextureLoader,
122
+ t.textureUrl || Jt
123
+ );
124
+ return /* @__PURE__ */ p(
125
+ "meshBasicMaterial",
126
+ {
127
+ color: t.color,
128
+ map: o,
129
+ transparent: !0,
130
+ opacity: t.opacity,
131
+ side: r,
132
+ depthWrite: n,
133
+ depthTest: e,
134
+ toneMapped: a
135
+ }
136
+ );
137
+ }, tn = ({
138
+ depthTest: e = !1,
139
+ depthWrite: n = !1,
140
+ settings: t,
141
+ side: r,
142
+ toneMapped: a = !1
143
+ }) => {
144
+ const o = q(
145
+ () => t.gradient ?? je(t.color),
146
+ [t.color, t.gradient]
147
+ );
148
+ return t.source === "gradient" ? /* @__PURE__ */ p(Zt, { value: o, opacity: t.opacity }) : t.source === "texture" ? /* @__PURE__ */ p(
149
+ en,
150
+ {
151
+ settings: t,
152
+ side: r,
153
+ depthTest: e,
154
+ depthWrite: n,
155
+ toneMapped: a
156
+ }
157
+ ) : /* @__PURE__ */ p(
158
+ "meshBasicMaterial",
159
+ {
160
+ color: t.color,
161
+ transparent: !0,
162
+ opacity: t.opacity,
163
+ side: r,
164
+ depthWrite: n,
165
+ depthTest: e,
166
+ toneMapped: a
167
+ }
168
+ );
169
+ }, be = Math.PI / 180, ge = 180 / Math.PI, G = (e) => Number(e.toFixed(6)), Ne = {
170
+ enabled: !0,
171
+ linked: {
172
+ position: !1,
173
+ rotation: !1,
174
+ scale: !1
175
+ },
176
+ showTransformControls: !1,
177
+ transformControlMode: "translate",
178
+ transformControlSpace: "local",
179
+ position: { x: 0, y: 0, z: 0 },
180
+ rotation: { x: 0, y: 0, z: 0 },
181
+ scale: { x: 1, y: 1, z: 1 },
182
+ visible: !0
183
+ }, Nn = ({ children: e, objectRef: n, onChange: t, value: r }) => {
184
+ const a = l(null), o = l(n);
185
+ o.current = n;
186
+ const [s, i] = We(null), C = Ge((d) => {
187
+ var S;
188
+ a.current = d, i(d), (S = o.current) == null || S.call(o, d);
189
+ }, []), E = Ge(() => {
190
+ const d = a.current;
191
+ !d || !t || t({
192
+ ...r,
193
+ position: {
194
+ x: G(d.position.x),
195
+ y: G(d.position.y),
196
+ z: G(d.position.z)
197
+ },
198
+ rotation: {
199
+ x: G(d.rotation.x * ge),
200
+ y: G(d.rotation.y * ge),
201
+ z: G(d.rotation.z * ge)
202
+ },
203
+ scale: {
204
+ x: G(d.scale.x),
205
+ y: G(d.scale.y),
206
+ z: G(d.scale.z)
207
+ }
208
+ });
209
+ }, [t, r]);
210
+ return r.enabled ? /* @__PURE__ */ _e(Ve, { children: [
211
+ /* @__PURE__ */ p(
212
+ "group",
213
+ {
214
+ ref: C,
215
+ position: [r.position.x, r.position.y, r.position.z],
216
+ rotation: [
217
+ r.rotation.x * be,
218
+ r.rotation.y * be,
219
+ r.rotation.z * be
220
+ ],
221
+ scale: [r.scale.x, r.scale.y, r.scale.z],
222
+ visible: r.visible,
223
+ children: e
224
+ }
225
+ ),
226
+ s && r.showTransformControls && /* @__PURE__ */ p(
227
+ jt,
228
+ {
229
+ object: s,
230
+ mode: r.transformControlMode,
231
+ space: r.transformControlSpace,
232
+ size: 0.85,
233
+ onMouseUp: E,
234
+ onObjectChange: E
235
+ }
236
+ )
237
+ ] }) : null;
238
+ }, ee = (e) => Math.min(1, Math.max(0, e)), k = (e, n, t) => ee(1 - Math.abs(e - n) / t), nn = (e) => {
239
+ let n = 1 / 0, t = -1 / 0, r = 1 / 0, a = -1 / 0;
240
+ for (const i of e)
241
+ n = Math.min(n, i.x), t = Math.max(t, i.x), r = Math.min(r, i.y), a = Math.max(a, i.y);
242
+ const o = Math.max(t - n, 1e-3), s = Math.max(a - r, 1e-3);
243
+ return {
244
+ centerX: n + o * 0.5,
245
+ centerY: r + s * 0.5,
246
+ width: o,
247
+ height: s
248
+ };
249
+ }, rn = (e) => e != null && e.enabled ? (e.strength ?? 1) !== 0 && Object.entries(e).some(
250
+ ([n, t]) => n !== "enabled" && n !== "strength" && typeof t == "number" && t !== 0
251
+ ) : !1, an = (e, n, t, r) => {
252
+ const a = t.enabled ? t.strength ?? 1 : 0;
253
+ if (a === 0)
254
+ return r.x = e.x, r.y = e.y, r.z = e.z, r;
255
+ const o = (e.x - n.centerX) / n.width, s = (e.y - n.centerY) / n.height, i = Math.abs(o), C = ee((-s + 0.42) / 0.55), E = k(s, -0.02, 0.34), d = k(s, -0.24, 0.16) * ee((i - 0.05) / 0.28), S = k(s, 0.02, 0.26) * k(i, 0, 0.18), _ = k(s, 0.29, 0.18) * k(i, 0, 0.36), O = ee((s - 0.16) / 0.36), A = E * k(i, 0.34, 0.22), h = C * k(i, 0, 0.48), v = k(s, -0.19, 0.1) * ee((i - 0.05) / 0.3), W = k(s, 0.48, 0.2) * k(i, 0, 0.26);
256
+ let f = e.x, c = e.y, u = e.z;
257
+ const M = (Y, w = 1) => {
258
+ f += o * n.width * Y * a * w;
259
+ }, y = (Y, w = 1) => {
260
+ c += s * n.height * Y * a * w;
261
+ };
262
+ M(t.faceWidth ?? 0), y(t.faceHeight ?? 0), M(t.faceRoundness ?? 0, E * (1 - i)), c -= n.height * (t.midfaceHeight ?? 0) * a * E * 0.25, y(-(t.foreheadHeight ?? 0), h), M(t.foreheadWidth ?? 0, h), M(
263
+ t.cheekboneWidth ?? 0,
264
+ k(s, -0.06, 0.16) * k(i, 0.34, 0.2)
265
+ ), M(t.cheekWidth ?? 0, A), M(t.jawWidth ?? 0, O), y(t.chinHeight ?? 0, W), c -= n.height * (t.scalpHeight ?? 0) * a * C * 0.3, u -= (t.midfaceDepth ?? 0) * a * E * 0.08, u += (t.cheekHollowness ?? 0) * a * A * 0.06, u -= (t.browDepth ?? 0) * a * v * 0.05, c -= n.height * (t.browHeight ?? 0) * a * v * 0.2, f += Math.sign(o || 1) * n.width * (t.browDistance ?? 0) * a * v * 0.16;
266
+ const T = (t.headCurve ?? 0) * a * (s + 0.1);
267
+ u -= T * T * 0.04 * Math.sign(t.headCurve ?? 0), f += n.width * (t.faceTwist ?? 0) * a * s * 0.18;
268
+ const z = (t.faceSwirl ?? 0) * a * 0.22;
269
+ f += -s * n.width * z, c += o * n.height * z;
270
+ const X = o < 0 ? t.leftEyeSize ?? 0 : t.rightEyeSize ?? 0, L = ((t.eyeSize ?? 0) + X) * a * d;
271
+ f += o * n.width * L * 0.45, c += (s + 0.24) * n.height * L * 0.7, f += Math.sign(o || 1) * n.width * (t.eyeDistance ?? 0) * a * d * 0.2, f += n.width * (o < 0 ? t.leftEyeX ?? 0 : t.rightEyeX ?? 0) * a * d * 0.15, c += n.height * (o < 0 ? t.leftEyeY ?? 0 : t.rightEyeY ?? 0) * a * d * 0.15;
272
+ const j = (t.noseSize ?? 0) * a * S;
273
+ return f += o * n.width * j * 0.7, c += (s - 0.02) * n.height * j * 0.5, c += n.height * (t.noseLength ?? 0) * a * S * Math.max(s + 0.08, 0) * 0.4, u -= (t.noseSize ?? 0) * a * S * 0.08, f += o * n.width * (t.mouthWidth ?? 0) * a * _, c += (s - 0.29) * n.height * (t.mouthHeight ?? 0) * a * _, r.x = f, r.y = c, r.z = u, r;
274
+ }, Me = /* @__PURE__ */ new Set([
275
+ 61,
276
+ 146,
277
+ 91,
278
+ 181,
279
+ 84,
280
+ 17,
281
+ 314,
282
+ 405,
283
+ 321,
284
+ 375,
285
+ 291,
286
+ 78,
287
+ 95,
288
+ 88,
289
+ 178,
290
+ 87,
291
+ 14,
292
+ 317,
293
+ 402,
294
+ 318,
295
+ 324,
296
+ 308,
297
+ 191,
298
+ 80,
299
+ 81,
300
+ 82,
301
+ 13,
302
+ 312,
303
+ 311,
304
+ 310,
305
+ 415
306
+ ]), Ae = /* @__PURE__ */ new Set([
307
+ 33,
308
+ 7,
309
+ 163,
310
+ 144,
311
+ 145,
312
+ 153,
313
+ 154,
314
+ 155,
315
+ 133,
316
+ 173,
317
+ 157,
318
+ 158,
319
+ 159,
320
+ 160,
321
+ 161,
322
+ 246
323
+ ]), ve = /* @__PURE__ */ new Set([
324
+ 362,
325
+ 382,
326
+ 381,
327
+ 380,
328
+ 374,
329
+ 373,
330
+ 390,
331
+ 249,
332
+ 263,
333
+ 466,
334
+ 388,
335
+ 387,
336
+ 386,
337
+ 385,
338
+ 384,
339
+ 398
340
+ ]), on = /* @__PURE__ */ new Set([814, 815, 816, 817, 818, 819, 830, 831, 832, 833]), sn = (e, n, t) => {
341
+ const r = Me.has(e) && Me.has(n) && Me.has(t), a = Ae.has(e) && Ae.has(n) && Ae.has(t), o = ve.has(e) && ve.has(n) && ve.has(t);
342
+ return r ? "mouth" : a ? "leftEye" : o ? "rightEye" : "base";
343
+ }, cn = (e) => {
344
+ const n = [], t = [], r = [], a = [], o = [], s = [], i = [];
345
+ let C = 0, E = 0;
346
+ e.split(`
347
+ `).forEach((A) => {
348
+ const h = A.trim();
349
+ if (!h) return;
350
+ if (h.startsWith("v ")) {
351
+ C += 1;
352
+ return;
353
+ }
354
+ if (h.startsWith("vt ")) {
355
+ const [, c, u] = h.split(/\s+/);
356
+ s.push([Number(c), Number(u)]);
357
+ return;
358
+ }
359
+ if (!h.startsWith("f ")) return;
360
+ const v = E;
361
+ E += 1;
362
+ const [, ...W] = h.split(/\s+/), f = W.map((c) => {
363
+ const [u, M] = c.split("/"), y = Number(u) - 1, T = Number(M) - 1;
364
+ return T >= 0 && s[T] && !i[y] && (i[y] = s[T]), y;
365
+ });
366
+ if (!(f.length < 3))
367
+ for (let c = 1; c < f.length - 1; c += 1) {
368
+ const u = f[0], M = f[c], y = f[c + 1], T = sn(u, M, y);
369
+ on.has(v) ? o.push(u, M, y) : T === "mouth" ? t.push(u, M, y) : T === "leftEye" ? r.push(u, M, y) : T === "rightEye" ? a.push(u, M, y) : n.push(u, M, y);
370
+ }
371
+ });
372
+ const d = [];
373
+ for (let A = 0; A < C; A += 1) {
374
+ const [h, v] = i[A] ?? [0, 0];
375
+ d.push(h, v);
376
+ }
377
+ const S = new Uint16Array(r), _ = new Uint16Array(a), O = new Uint16Array(r.length + a.length);
378
+ return O.set(S), O.set(_, S.length), {
379
+ baseIndices: new Uint16Array(n),
380
+ mouthIndices: new Uint16Array(t),
381
+ leftEyeIndices: S,
382
+ rightEyeIndices: _,
383
+ eyeIndices: O,
384
+ noseIndices: new Uint16Array(o),
385
+ uvs: new Float32Array(d),
386
+ vertexCount: C
387
+ };
388
+ }, ln = "canonical_face_model.obj", dn = new TextDecoder("utf-8"), xe = /* @__PURE__ */ new Map(), fn = (e) => {
389
+ const n = xe.get(e);
390
+ if (n) return n;
391
+ const t = zt(e).then((r) => cn(dn.decode(r))).catch((r) => {
392
+ throw xe.delete(e), r;
393
+ });
394
+ return xe.set(e, t), t;
395
+ }, un = (e) => {
396
+ const { mesh: n, url: t } = e ?? {}, r = t ?? `${ne.sdkAssetsBaseUrl}/${ln}`, [a, o] = We(n ?? null);
397
+ return Te(() => {
398
+ if (n) {
399
+ o(n);
400
+ return;
401
+ }
402
+ let s = !1;
403
+ return fn(r).then((i) => {
404
+ s || o(i);
405
+ }).catch((i) => {
406
+ s || console.error(`${ne.loggerPrefix} canonical face mesh load failed`, i);
407
+ }), () => {
408
+ s = !0;
409
+ };
410
+ }, [n, r]), a;
411
+ }, x = {
412
+ basic: "basic",
413
+ standard: "standard",
414
+ physical: "physical",
415
+ toon: "toon",
416
+ normal: "normal",
417
+ matcap: "matcap",
418
+ wireframe: "wireframe",
419
+ shader: "shader"
420
+ }, B = {
421
+ originalFace: "originalFace",
422
+ composite: "composite"
423
+ }, V = {
424
+ none: "none",
425
+ canonical: "canonical",
426
+ style2: "style2"
427
+ }, Z = {
428
+ none: "none",
429
+ canonical: "canonical"
430
+ }, re = {
431
+ solid: "solid",
432
+ gradient: "gradient",
433
+ imageUrl: "imageUrl",
434
+ mediaUrl: "mediaUrl"
435
+ }, te = {
436
+ front: "front",
437
+ back: "back",
438
+ double: "double"
439
+ }, Ye = {
440
+ normal: "normal",
441
+ add: "add",
442
+ subtract: "subtract",
443
+ multiply: "multiply",
444
+ screen: "screen",
445
+ overlay: "overlay",
446
+ softLight: "softLight",
447
+ hardLight: "hardLight",
448
+ lighten: "lighten",
449
+ darken: "darken",
450
+ difference: "difference",
451
+ exclusion: "exclusion"
452
+ }, hn = {
453
+ textureMap: V.canonical,
454
+ alphaMap: Z.canonical,
455
+ alphaOpacity: 1
456
+ }, He = {
457
+ ...hn,
458
+ blendMode: Ye.hardLight,
459
+ blendOpacity: 0.85,
460
+ baseColor: "#ffffff",
461
+ opacity: 1,
462
+ compositeShading: !0
463
+ }, I = {
464
+ materialType: x.basic,
465
+ shaderPreset: B.originalFace,
466
+ textureMap: V.none,
467
+ alphaMap: Z.none,
468
+ alphaOpacity: 1,
469
+ side: te.front,
470
+ blendMode: Ye.normal,
471
+ blendOpacity: 1,
472
+ baseColor: "#38bdf8",
473
+ opacity: 0.45,
474
+ compositeShading: !1
475
+ };
476
+ x.shader, B.composite, te.front;
477
+ const Ee = {
478
+ mouth: !0,
479
+ eyes: !0,
480
+ nose: !0
481
+ }, J = {
482
+ textureSource: re.solid,
483
+ color: "#111111",
484
+ opacity: 0.5
485
+ }, mn = 24, Ke = 10, Fe = (e, n, t) => e !== x.shader ? "none" : n === B.originalFace ? "originalFace" : n === B.composite ? t === V.none ? "originalFace" : "composite" : "none", Hn = (e, n) => e === x.basic || e === x.standard || e === x.physical || e === x.toon || e === x.shader && n === B.composite, Bn = (e, n, t = V.canonical) => Fe(e, n, t) === "composite", pn = (e, n, t) => Fe(e, n, t) === "originalFace", Ce = (e) => e === re.imageUrl || e === re.mediaUrl, yn = (e) => e === re.solid || e === re.gradient, Be = {
486
+ normal: 0,
487
+ add: 1,
488
+ subtract: 2,
489
+ multiply: 3,
490
+ screen: 4,
491
+ overlay: 5,
492
+ softLight: 6,
493
+ hardLight: 7,
494
+ lighten: 8,
495
+ darken: 9,
496
+ difference: 10,
497
+ exclusion: 11
498
+ }, Se = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO2YpZcAAAAASUVORK5CYII=", bn = () => {
499
+ const e = new Uint8Array([
500
+ 32,
501
+ 32,
502
+ 32,
503
+ 255,
504
+ 96,
505
+ 96,
506
+ 96,
507
+ 255,
508
+ 176,
509
+ 176,
510
+ 176,
511
+ 255,
512
+ 255,
513
+ 255,
514
+ 255,
515
+ 255
516
+ ]), n = new g.DataTexture(e, 4, 1, g.RGBAFormat);
517
+ return n.minFilter = g.NearestFilter, n.magFilter = g.NearestFilter, n.generateMipmaps = !1, n.needsUpdate = !0, n;
518
+ }, gn = () => {
519
+ const e = document.createElement("canvas");
520
+ e.width = 256, e.height = 256;
521
+ const n = e.getContext("2d");
522
+ if (!n)
523
+ return new g.CanvasTexture(e);
524
+ const t = n.createRadialGradient(96, 80, 10, 128, 128, 128);
525
+ t.addColorStop(0, "#ffffff"), t.addColorStop(0.18, "#f7d794"), t.addColorStop(0.45, "#d97706"), t.addColorStop(0.72, "#78350f"), t.addColorStop(1, "#120701"), n.fillStyle = t, n.fillRect(0, 0, e.width, e.height);
526
+ const r = new g.CanvasTexture(e);
527
+ return r.needsUpdate = !0, r;
528
+ }, Mn = `
529
+ attribute vec2 faceUv;
530
+ varying vec2 vUv;
531
+ varying vec2 vFaceUv;
532
+ varying vec3 vNormal;
533
+
534
+ void main() {
535
+ vUv = uv;
536
+ vFaceUv = faceUv;
537
+ vNormal = normalize(normalMatrix * normal);
538
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
539
+ }
540
+ `, An = `
541
+ uniform sampler2D cameraTexture;
542
+ uniform sampler2D canonicalTexture;
543
+ uniform sampler2D alphaMask;
544
+ uniform vec3 textureTint;
545
+ uniform float opacity;
546
+ uniform int blendMode;
547
+ uniform float blendOpacity;
548
+ uniform float useCanonicalTexture;
549
+ uniform float useAlphaMask;
550
+ uniform float alphaOpacity;
551
+ uniform float compositeShading;
552
+ uniform vec3 lightDirection;
553
+ uniform float ambientStrength;
554
+ uniform float directionalStrength;
555
+ varying vec2 vUv;
556
+ varying vec2 vFaceUv;
557
+ varying vec3 vNormal;
558
+
559
+ vec3 linearToSrgb(vec3 value) {
560
+ vec3 low = value * 12.92;
561
+ vec3 high = 1.055 * pow(max(value, vec3(0.0)), vec3(1.0 / 2.4)) - 0.055;
562
+ return mix(high, low, step(value, vec3(0.0031308)));
563
+ }
564
+
565
+ vec3 srgbToLinear(vec3 value) {
566
+ vec3 low = value / 12.92;
567
+ vec3 high = pow(max((value + 0.055) / 1.055, vec3(0.0)), vec3(2.4));
568
+ return mix(high, low, step(value, vec3(0.04045)));
569
+ }
570
+
571
+ float overlayChannel(float base, float blend) {
572
+ return base < 0.5 ? 2.0 * base * blend : 1.0 - 2.0 * (1.0 - base) * (1.0 - blend);
573
+ }
574
+
575
+ float hardLightChannel(float base, float blend) {
576
+ return blend < 0.5 ? 2.0 * base * blend : 1.0 - 2.0 * (1.0 - base) * (1.0 - blend);
577
+ }
578
+
579
+ float softLightChannel(float base, float blend) {
580
+ if (blend <= 0.5) {
581
+ return base - (1.0 - 2.0 * blend) * base * (1.0 - base);
582
+ }
583
+
584
+ float d = base <= 0.25
585
+ ? ((16.0 * base - 12.0) * base + 4.0) * base
586
+ : sqrt(base);
587
+
588
+ return base + (2.0 * blend - 1.0) * (d - base);
589
+ }
590
+
591
+ vec3 applyBlendMode(vec3 base, vec3 blend, int mode) {
592
+ if (mode == 0) return blend;
593
+ if (mode == 1) return min(base + blend, 1.0);
594
+ if (mode == 2) return max(base - blend, 0.0);
595
+ if (mode == 3) return base * blend;
596
+ if (mode == 4) return 1.0 - (1.0 - base) * (1.0 - blend);
597
+ if (mode == 5) {
598
+ return vec3(
599
+ overlayChannel(base.r, blend.r),
600
+ overlayChannel(base.g, blend.g),
601
+ overlayChannel(base.b, blend.b)
602
+ );
603
+ }
604
+ if (mode == 6) {
605
+ return vec3(
606
+ softLightChannel(base.r, blend.r),
607
+ softLightChannel(base.g, blend.g),
608
+ softLightChannel(base.b, blend.b)
609
+ );
610
+ }
611
+ if (mode == 7) {
612
+ return vec3(
613
+ hardLightChannel(base.r, blend.r),
614
+ hardLightChannel(base.g, blend.g),
615
+ hardLightChannel(base.b, blend.b)
616
+ );
617
+ }
618
+ if (mode == 8) return max(base, blend);
619
+ if (mode == 9) return min(base, blend);
620
+ if (mode == 10) return abs(base - blend);
621
+ return base + blend - 2.0 * base * blend;
622
+ }
623
+
624
+ void main() {
625
+ vec3 base = linearToSrgb(texture2D(cameraTexture, vFaceUv).rgb);
626
+ vec4 textureSample = texture2D(canonicalTexture, vUv);
627
+ vec3 blend = linearToSrgb(textureSample.rgb) * textureTint;
628
+ float light = ambientStrength + max(dot(normalize(vNormal), normalize(lightDirection)), 0.0) * directionalStrength;
629
+ blend *= mix(1.0, clamp(light, 0.35, 1.35), compositeShading);
630
+ float maskSample = texture2D(alphaMask, vUv).r;
631
+ float mask = useAlphaMask > 0.5 ? mix(1.0, maskSample, alphaOpacity) : 1.0;
632
+ float textureAlpha = useCanonicalTexture > 0.5 ? textureSample.a : 1.0;
633
+ vec3 blended = applyBlendMode(base, blend, blendMode);
634
+ vec3 color = useCanonicalTexture > 0.5 ? mix(base, blended, blendOpacity) : base;
635
+ gl_FragColor = vec4(srgbToLinear(color), opacity * mask * textureAlpha);
636
+ }
637
+ `, vn = ({
638
+ alphaMap: e,
639
+ alphaOpacity: n,
640
+ blendMode: t,
641
+ blendOpacity: r,
642
+ cameraTexture: a,
643
+ color: o,
644
+ compositeShading: s,
645
+ faceAlphaMaskUrl: i,
646
+ faceTextureStyle2Url: C,
647
+ faceTextureUrl: E,
648
+ masked: d = !1,
649
+ maskColor: S,
650
+ maskOpacity: _,
651
+ maskSourceUrl: O,
652
+ maskTextureSource: A,
653
+ materialType: h,
654
+ opacity: v,
655
+ shaderPreset: W,
656
+ side: f,
657
+ textureMap: c
658
+ }) => {
659
+ const u = ce(
660
+ g.TextureLoader,
661
+ E || Se
662
+ ), M = ce(
663
+ g.TextureLoader,
664
+ C || E || Se
665
+ ), y = ce(
666
+ g.TextureLoader,
667
+ i || Se
668
+ ), T = q(() => bn(), []), z = q(() => gn(), []);
669
+ Te(
670
+ () => () => {
671
+ T.dispose(), z.dispose();
672
+ },
673
+ [z, T]
674
+ );
675
+ const X = c === V.style2 ? M : u, L = c !== V.none, j = Fe(h, W, c), Y = [
676
+ "composite-material",
677
+ c,
678
+ e,
679
+ n,
680
+ t,
681
+ r,
682
+ s ? "lit" : "flat",
683
+ o,
684
+ v,
685
+ E,
686
+ C,
687
+ i
688
+ ].join("|"), w = {
689
+ side: f,
690
+ transparent: !0,
691
+ opacity: v,
692
+ wireframe: !1
693
+ }, le = q(
694
+ () => ({
695
+ source: Ce(A) ? "texture" : A,
696
+ color: yn(A) ? S : "#ffffff",
697
+ opacity: _,
698
+ textureUrl: Ce(A) ? O : "",
699
+ gradient: je(S)
700
+ }),
701
+ [S, _, O, A]
702
+ ), R = q(
703
+ () => ({
704
+ cameraTexture: { value: null },
705
+ canonicalTexture: { value: null },
706
+ alphaMask: { value: null },
707
+ textureTint: { value: new g.Color(o) },
708
+ opacity: { value: v },
709
+ blendMode: { value: Be[t] },
710
+ blendOpacity: { value: r },
711
+ useCanonicalTexture: { value: L ? 1 : 0 },
712
+ useAlphaMask: { value: e === Z.canonical ? 1 : 0 },
713
+ alphaOpacity: { value: n },
714
+ compositeShading: { value: s ? 1 : 0 },
715
+ lightDirection: { value: new g.Vector3(0.3, 0.65, 0.7).normalize() },
716
+ ambientStrength: { value: 0.78 },
717
+ directionalStrength: { value: 0.38 }
718
+ }),
719
+ [
720
+ e,
721
+ n,
722
+ t,
723
+ r,
724
+ o,
725
+ s,
726
+ L,
727
+ v
728
+ ]
729
+ );
730
+ if (Te(() => {
731
+ R.cameraTexture.value = a ?? u, R.canonicalTexture.value = X, R.alphaMask.value = y, R.textureTint.value.set(o), R.opacity.value = v, R.blendMode.value = Be[t], R.blendOpacity.value = r, R.useCanonicalTexture.value = L ? 1 : 0, R.useAlphaMask.value = e === Z.canonical ? 1 : 0, R.alphaOpacity.value = n, R.compositeShading.value = s ? 1 : 0;
732
+ }, [
733
+ e,
734
+ y,
735
+ n,
736
+ t,
737
+ r,
738
+ a,
739
+ o,
740
+ s,
741
+ R,
742
+ u,
743
+ L,
744
+ v,
745
+ X
746
+ ]), d)
747
+ return /* @__PURE__ */ p(
748
+ tn,
749
+ {
750
+ settings: le,
751
+ side: f
752
+ },
753
+ `masked-${A}-material`
754
+ );
755
+ if (h === x.wireframe)
756
+ return /* @__PURE__ */ p(
757
+ "meshBasicMaterial",
758
+ {
759
+ color: o,
760
+ transparent: !0,
761
+ opacity: v,
762
+ side: f,
763
+ depthWrite: !1,
764
+ depthTest: !1,
765
+ wireframe: !0,
766
+ toneMapped: !1
767
+ },
768
+ "wireframe-material"
769
+ );
770
+ if (j === "originalFace" && a)
771
+ return /* @__PURE__ */ p(
772
+ "meshBasicMaterial",
773
+ {
774
+ map: a,
775
+ alphaMap: y,
776
+ transparent: !0,
777
+ opacity: v,
778
+ side: f,
779
+ depthWrite: !1,
780
+ depthTest: !0,
781
+ toneMapped: !1
782
+ },
783
+ "use-original-face-material"
784
+ );
785
+ if (j === "composite" && a)
786
+ return /* @__PURE__ */ p(
787
+ "shaderMaterial",
788
+ {
789
+ uniforms: R,
790
+ vertexShader: Mn,
791
+ fragmentShader: An,
792
+ transparent: !0,
793
+ side: f,
794
+ depthWrite: !1,
795
+ depthTest: !0,
796
+ toneMapped: !1
797
+ },
798
+ Y
799
+ );
800
+ const N = L ? X : null, $ = e === Z.canonical && n > 0 ? y : null, H = `${h}-${c}-${e}-${n > 0 ? "alpha-on" : "alpha-off"}`;
801
+ return h === x.standard ? /* @__PURE__ */ p(
802
+ "meshStandardMaterial",
803
+ {
804
+ ...w,
805
+ color: o,
806
+ map: N ?? void 0,
807
+ alphaMap: $ ?? void 0,
808
+ depthWrite: !0,
809
+ depthTest: !0,
810
+ metalness: 0.05,
811
+ roughness: 0.72
812
+ },
813
+ H
814
+ ) : h === x.physical ? /* @__PURE__ */ p(
815
+ "meshPhysicalMaterial",
816
+ {
817
+ ...w,
818
+ color: o,
819
+ map: N ?? void 0,
820
+ alphaMap: $ ?? void 0,
821
+ depthWrite: !0,
822
+ depthTest: !0,
823
+ roughness: 0.58,
824
+ metalness: 0.08,
825
+ clearcoat: 0.35,
826
+ clearcoatRoughness: 0.4
827
+ },
828
+ H
829
+ ) : h === x.toon ? /* @__PURE__ */ p(
830
+ "meshToonMaterial",
831
+ {
832
+ ...w,
833
+ color: o,
834
+ map: N ?? void 0,
835
+ alphaMap: $ ?? void 0,
836
+ gradientMap: T,
837
+ depthWrite: !0,
838
+ depthTest: !0
839
+ },
840
+ H
841
+ ) : h === x.normal ? /* @__PURE__ */ p(
842
+ "meshNormalMaterial",
843
+ {
844
+ ...w,
845
+ depthWrite: !0,
846
+ depthTest: !0,
847
+ flatShading: !1
848
+ },
849
+ "normal-material"
850
+ ) : h === x.matcap ? /* @__PURE__ */ p(
851
+ "meshMatcapMaterial",
852
+ {
853
+ ...w,
854
+ color: o,
855
+ matcap: z,
856
+ depthWrite: !0,
857
+ depthTest: !0
858
+ },
859
+ "matcap-material"
860
+ ) : /* @__PURE__ */ p(
861
+ "meshBasicMaterial",
862
+ {
863
+ ...w,
864
+ color: o,
865
+ map: N ?? void 0,
866
+ alphaMap: $ ?? void 0,
867
+ depthWrite: !1,
868
+ depthTest: c !== V.none || e !== Z.none,
869
+ toneMapped: !1
870
+ },
871
+ H
872
+ );
873
+ }, xn = [
874
+ {
875
+ key: "base",
876
+ getIndices: (e) => e.baseIndices,
877
+ masked: !1,
878
+ renderOrderOffset: 0
879
+ },
880
+ {
881
+ key: "mouth",
882
+ getIndices: (e) => e.mouthIndices,
883
+ masked: !1,
884
+ renderOrderOffset: 2
885
+ },
886
+ {
887
+ key: "left-eye",
888
+ getIndices: (e) => e.leftEyeIndices,
889
+ masked: !1,
890
+ renderOrderOffset: 2
891
+ },
892
+ {
893
+ key: "right-eye",
894
+ getIndices: (e) => e.rightEyeIndices,
895
+ masked: !1,
896
+ renderOrderOffset: 2
897
+ },
898
+ {
899
+ key: "nose",
900
+ getIndices: (e) => e.noseIndices,
901
+ masked: !1,
902
+ renderOrderOffset: 2
903
+ },
904
+ {
905
+ key: "mouth-mask",
906
+ getIndices: (e) => e.mouthIndices,
907
+ masked: !0,
908
+ renderOrderOffset: 3
909
+ },
910
+ {
911
+ key: "left-eye-mask",
912
+ getIndices: (e) => e.leftEyeIndices,
913
+ masked: !0,
914
+ renderOrderOffset: 3
915
+ },
916
+ {
917
+ key: "right-eye-mask",
918
+ getIndices: (e) => e.rightEyeIndices,
919
+ masked: !0,
920
+ renderOrderOffset: 3
921
+ },
922
+ {
923
+ key: "nose-mask",
924
+ getIndices: (e) => e.noseIndices,
925
+ masked: !0,
926
+ renderOrderOffset: 3
927
+ }
928
+ ], En = {
929
+ [te.front]: g.FrontSide,
930
+ [te.back]: g.BackSide,
931
+ [te.double]: g.DoubleSide
932
+ }, Sn = (e, n, t) => {
933
+ e.setAttribute("position", n.position), e.setAttribute("uv", n.uv), e.setAttribute("faceUv", n.faceUv), e.setIndex(new g.BufferAttribute(t, 1));
934
+ }, Tn = ({
935
+ faceIndex: e = 0,
936
+ baseColor: n,
937
+ color: t = I.baseColor,
938
+ opacity: r = I.opacity,
939
+ materialType: a = I.materialType,
940
+ shaderPreset: o = I.shaderPreset,
941
+ textureMap: s = I.textureMap,
942
+ alphaMap: i = I.alphaMap,
943
+ alphaOpacity: C = I.alphaOpacity,
944
+ side: E = I.side,
945
+ blendMode: d = I.blendMode,
946
+ blendOpacity: S = I.blendOpacity,
947
+ showOverlayMask: _ = !1,
948
+ showMouthMask: O = Ee.mouth,
949
+ showEyeMask: A = Ee.eyes,
950
+ showLeftEyeMask: h,
951
+ showRightEyeMask: v,
952
+ showNoseMask: W = Ee.nose,
953
+ showEyeGeometry: f = !0,
954
+ showLeftEyeGeometry: c,
955
+ showRightEyeGeometry: u,
956
+ showMouthGeometry: M = !0,
957
+ showNoseGeometry: y = !0,
958
+ maskTextureSource: T = J.textureSource,
959
+ maskSourceUrl: z = "",
960
+ maskColor: X = J.color,
961
+ maskOpacity: L = J.opacity,
962
+ faceTextureUrl: j = "",
963
+ faceTextureStyle2Url: Y = "",
964
+ faceAlphaMaskUrl: w = "",
965
+ compositeShading: le = !1,
966
+ faceWarp3D: R,
967
+ transform: N,
968
+ renderOrder: $ = Ke,
969
+ externalScale: H = 1,
970
+ mesh: $e,
971
+ meshUrl: Qe
972
+ }) => {
973
+ const de = Ht(Nt.FACE_TRACKER), qe = Bt(), { camera: Ze } = Dt(), D = un({ mesh: $e, url: Qe }), ke = l(null), Je = l(null), et = l(null), tt = l(null), nt = l(null), rt = l(null), at = l(null), ot = l(null), st = l(null), it = l(null), ct = l(null), lt = l(null), dt = l(null), ft = l(null), ut = l(null), ht = l(null), mt = l(null), pt = l(null), fe = l(null), ue = l(null), he = l(null), we = l(null), yt = l(new g.Vector3()), bt = l({ x: 0, y: 0, z: 0 }), gt = l({ x: 0, y: 0, z: 0 }), Mt = l({ x: 0, y: 0, z: 0 }), ae = l(!1), At = En[E], vt = n ?? t, xt = c ?? f, Et = u ?? f, St = _ || (h ?? A), Tt = _ || (v ?? A), Rt = _ || O, Ct = _ || W, _t = {
974
+ base: ke,
975
+ mouth: Je,
976
+ "left-eye": et,
977
+ "right-eye": tt,
978
+ nose: nt,
979
+ "mouth-mask": rt,
980
+ "left-eye-mask": at,
981
+ "right-eye-mask": ot,
982
+ "nose-mask": st
983
+ }, Ft = {
984
+ base: it,
985
+ mouth: ct,
986
+ "left-eye": lt,
987
+ "right-eye": dt,
988
+ nose: ft,
989
+ "mouth-mask": ut,
990
+ "left-eye-mask": ht,
991
+ "right-eye-mask": mt,
992
+ "nose-mask": pt
993
+ }, kt = {
994
+ base: !0,
995
+ mouth: M,
996
+ "left-eye": xt,
997
+ "right-eye": Et,
998
+ nose: y,
999
+ "mouth-mask": Rt,
1000
+ "left-eye-mask": St,
1001
+ "right-eye-mask": Tt,
1002
+ "nose-mask": Ct
1003
+ }, wt = (b) => /* @__PURE__ */ p(
1004
+ vn,
1005
+ {
1006
+ alphaMap: i,
1007
+ alphaOpacity: C,
1008
+ blendMode: d,
1009
+ blendOpacity: S,
1010
+ cameraTexture: qe,
1011
+ color: vt,
1012
+ compositeShading: le,
1013
+ faceAlphaMaskUrl: w,
1014
+ faceTextureStyle2Url: Y,
1015
+ faceTextureUrl: j,
1016
+ masked: b,
1017
+ maskColor: X,
1018
+ maskOpacity: L,
1019
+ maskSourceUrl: z,
1020
+ maskTextureSource: T,
1021
+ materialType: a,
1022
+ opacity: r,
1023
+ shaderPreset: o,
1024
+ side: At,
1025
+ textureMap: s
1026
+ }
1027
+ ), Q = xn.map(
1028
+ (b) => ({
1029
+ ...b,
1030
+ geometryRef: _t[b.key],
1031
+ meshRef: Ft[b.key],
1032
+ visible: kt[b.key]
1033
+ })
1034
+ ), Ut = (b) => Wt(b, Ze, yt.current);
1035
+ return Pt(() => {
1036
+ var Le, De;
1037
+ const b = ke.current, P = (De = (Le = de == null ? void 0 : de.detectionResults) == null ? void 0 : Le.faceLandmarks) == null ? void 0 : De[e], It = Q.every(
1038
+ (m) => m.geometryRef.current && m.meshRef.current
1039
+ );
1040
+ if (!D || !b || !It) return;
1041
+ if (!P || P.length < D.vertexCount) {
1042
+ Q.forEach((m) => {
1043
+ m.meshRef.current.visible = !1;
1044
+ });
1045
+ return;
1046
+ }
1047
+ if (we.current !== D) {
1048
+ fe.current = new Float32Array(D.vertexCount * 3), ue.current = new Float32Array(D.uvs), he.current = new Float32Array(D.vertexCount * 2);
1049
+ const m = {
1050
+ position: new g.BufferAttribute(fe.current, 3),
1051
+ uv: new g.BufferAttribute(ue.current, 2),
1052
+ faceUv: new g.BufferAttribute(he.current, 2)
1053
+ };
1054
+ Q.forEach((F) => {
1055
+ Sn(F.geometryRef.current, m, F.getIndices(D));
1056
+ }), m.uv.needsUpdate = !0, we.current = D, ae.current = !1;
1057
+ }
1058
+ const oe = fe.current, me = he.current, se = ue.current;
1059
+ if (!oe || !me || !se) return;
1060
+ const Ue = pn(a, o, s), Ie = rn(R), Oe = Ie ? nn(P) : null, U = N ? Mt.current : null;
1061
+ if (U) {
1062
+ U.x = 0, U.y = 0, U.z = 0;
1063
+ for (let m = 0; m < P.length; m++) {
1064
+ const F = P[m];
1065
+ U.x += F.x, U.y += F.y, U.z += F.z;
1066
+ }
1067
+ U.x /= P.length, U.y /= P.length, U.z /= P.length;
1068
+ }
1069
+ const Ot = Math.min(P.length, D.vertexCount);
1070
+ for (let m = 0; m < Ot; m++) {
1071
+ const F = P[m], Pe = Ie && Oe ? an(F, Oe, R, bt.current) : F, Lt = N && U ? Vt(
1072
+ Pe,
1073
+ U,
1074
+ N,
1075
+ gt.current
1076
+ ) : Pe, pe = m * 3, ie = m * 2, ye = Ut(Lt);
1077
+ oe[pe] = ye.x, oe[pe + 1] = ye.y, oe[pe + 2] = ye.z, me[ie] = F.x, me[ie + 1] = 1 - F.y, Ue && (se[ie] = F.x, se[ie + 1] = 1 - F.y);
1078
+ }
1079
+ Ue ? (b.attributes.uv.needsUpdate = !0, ae.current = !0) : ae.current && (se.set(D.uvs), b.attributes.uv.needsUpdate = !0, ae.current = !1), Q.forEach((m) => {
1080
+ m.meshRef.current.visible = m.visible;
1081
+ }), b.attributes.position.needsUpdate = !0, b.attributes.faceUv.needsUpdate = !0, Q.forEach((m) => {
1082
+ m.geometryRef.current.computeVertexNormals();
1083
+ });
1084
+ }), /* @__PURE__ */ p("group", { scale: [H, H, H], children: Q.map((b) => /* @__PURE__ */ _e(
1085
+ "mesh",
1086
+ {
1087
+ ref: b.meshRef,
1088
+ renderOrder: $ + b.renderOrderOffset,
1089
+ frustumCulled: !1,
1090
+ children: [
1091
+ /* @__PURE__ */ p("bufferGeometry", { ref: b.geometryRef }),
1092
+ wt(b.masked)
1093
+ ]
1094
+ },
1095
+ b.key
1096
+ )) });
1097
+ }, Rn = `${ne.sdkAssetsBaseUrl}/Canonical_Face_Color.png`, Cn = `${ne.sdkAssetsBaseUrl}/Canonical_Face_Color_style_2.png`, _n = `${ne.sdkAssetsBaseUrl}/Canonical_Face_Color_Mask.png`, Fn = {
1098
+ ...Ne,
1099
+ position: { ...Ne.position, y: 1e-3 }
1100
+ }, Vn = {
1101
+ enabled: !0,
1102
+ faceIndex: 0,
1103
+ targetFps: mn,
1104
+ ...I,
1105
+ showLeftEyeGeometry: !0,
1106
+ showRightEyeGeometry: !0,
1107
+ showMouthGeometry: !0,
1108
+ showNoseGeometry: !0,
1109
+ externalScale: 1,
1110
+ showOverlayMask: !1,
1111
+ showMouthMask: !1,
1112
+ showLeftEyeMask: !1,
1113
+ showRightEyeMask: !1,
1114
+ showNoseMask: !1,
1115
+ maskTextureSource: J.textureSource,
1116
+ maskSourceUrl: "",
1117
+ maskColor: J.color,
1118
+ maskOpacity: J.opacity,
1119
+ faceTextureUrl: Rn,
1120
+ faceTextureStyle2Url: Cn,
1121
+ faceAlphaMaskUrl: _n,
1122
+ renderOrder: Ke
1123
+ }, kn = (e) => {
1124
+ const { externalMeshUrl: n, ...t } = e;
1125
+ return { ...t, color: t.baseColor, meshUrl: n };
1126
+ }, Wn = (e, n) => {
1127
+ const t = { ...e, ...n };
1128
+ return n.maskTextureSource && !Ce(n.maskTextureSource) && (t.maskSourceUrl = ""), t.materialType === x.shader && n.shaderPreset === B.composite ? {
1129
+ ...t,
1130
+ ...He,
1131
+ materialType: x.shader,
1132
+ shaderPreset: B.composite
1133
+ } : t.materialType === x.shader && t.shaderPreset === B.composite && t.textureMap === V.none ? {
1134
+ ...t,
1135
+ textureMap: He.textureMap
1136
+ } : t;
1137
+ }, Xn = ({
1138
+ transform: e,
1139
+ value: n
1140
+ }) => n.enabled ? /* @__PURE__ */ _e(Ve, { children: [
1141
+ /* @__PURE__ */ p(
1142
+ Xt,
1143
+ {
1144
+ active: n.enabled,
1145
+ faceIndex: n.faceIndex,
1146
+ numFaces: n.faceIndex + 1,
1147
+ targetFps: n.targetFps
1148
+ }
1149
+ ),
1150
+ /* @__PURE__ */ p(
1151
+ Tn,
1152
+ {
1153
+ ...kn(n),
1154
+ transform: e ?? Fn
1155
+ }
1156
+ )
1157
+ ] }) : null;
1158
+ export {
1159
+ Ne as A,
1160
+ Re as B,
1161
+ Tn as C,
1162
+ I as D,
1163
+ yn as E,
1164
+ Z as F,
1165
+ Ce as G,
1166
+ tn as M,
1167
+ Zt as S,
1168
+ Nn as T,
1169
+ Vn as a,
1170
+ Be as b,
1171
+ Fn as c,
1172
+ Ee as d,
1173
+ Ye as e,
1174
+ re as f,
1175
+ x as g,
1176
+ B as h,
1177
+ te as i,
1178
+ V as j,
1179
+ Bn as k,
1180
+ vn as l,
1181
+ Xn as m,
1182
+ _n as n,
1183
+ Cn as o,
1184
+ Rn as p,
1185
+ xn as q,
1186
+ kn as r,
1187
+ Hn as s,
1188
+ Wn as t,
1189
+ un as u,
1190
+ cn as v,
1191
+ K as w,
1192
+ Kt as x,
1193
+ zn as y,
1194
+ je as z
1195
+ };