@react-three/drei 9.83.8 → 9.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (255) hide show
  1. package/README.md +70 -2
  2. package/core/AccumulativeShadows.d.ts +3 -3
  3. package/core/AccumulativeShadows.js +30 -36
  4. package/core/AdaptiveDpr.js +4 -4
  5. package/core/ArcballControls.d.ts +1 -1
  6. package/core/ArcballControls.js +0 -1
  7. package/core/AsciiRenderer.d.ts +3 -3
  8. package/core/AsciiRenderer.js +12 -6
  9. package/core/BBAnchor.cjs.js +1 -1
  10. package/core/BBAnchor.d.ts +2 -2
  11. package/core/BBAnchor.js +5 -5
  12. package/core/Backdrop.d.ts +2 -2
  13. package/core/Backdrop.js +0 -3
  14. package/core/Billboard.d.ts +1 -1
  15. package/core/Billboard.js +6 -3
  16. package/core/Bounds.d.ts +5 -5
  17. package/core/Bounds.js +5 -32
  18. package/core/CameraControls.d.ts +2 -2
  19. package/core/CameraControls.js +0 -3
  20. package/core/CameraShake.js +0 -4
  21. package/core/CatmullRomLine.d.ts +1 -1
  22. package/core/CatmullRomLine.js +0 -2
  23. package/core/Caustics.d.ts +1 -1
  24. package/core/Caustics.js +31 -32
  25. package/core/Center.d.ts +2 -2
  26. package/core/Center.js +2 -1
  27. package/core/Clone.d.ts +1 -1
  28. package/core/Clone.js +10 -13
  29. package/core/Cloud.cjs.js +1 -1
  30. package/core/Cloud.d.ts +2 -2
  31. package/core/Cloud.js +1 -2
  32. package/core/ComputedAttribute.d.ts +2 -2
  33. package/core/ComputedAttribute.js +0 -1
  34. package/core/ContactShadows.d.ts +1 -1
  35. package/core/ContactShadows.js +6 -7
  36. package/core/CubeCamera.cjs.js +1 -1
  37. package/core/CubeCamera.d.ts +2 -2
  38. package/core/CubeCamera.js +1 -1
  39. package/core/CubicBezierLine.d.ts +1 -1
  40. package/core/CurveModifier.d.ts +1 -1
  41. package/core/CurveModifier.js +2 -4
  42. package/core/Decal.d.ts +1 -1
  43. package/core/Decal.js +8 -15
  44. package/core/Detailed.d.ts +1 -1
  45. package/core/Detailed.js +0 -1
  46. package/core/DeviceOrientationControls.d.ts +1 -1
  47. package/core/DeviceOrientationControls.js +3 -4
  48. package/core/Edges.d.ts +1 -1
  49. package/core/Edges.js +0 -2
  50. package/core/Effects.d.ts +1 -1
  51. package/core/Effects.js +5 -7
  52. package/core/Environment.d.ts +3 -3
  53. package/core/Environment.js +6 -12
  54. package/core/Example.d.ts +3 -3
  55. package/core/Example.js +2 -1
  56. package/core/FaceControls.cjs.js +1 -1
  57. package/core/FaceControls.d.ts +5 -5
  58. package/core/FaceControls.js +42 -39
  59. package/core/FaceLandmarker.d.ts +3 -2
  60. package/core/FaceLandmarker.js +1 -1
  61. package/core/Facemesh.d.ts +6 -6
  62. package/core/Facemesh.js +47 -53
  63. package/core/FirstPersonControls.d.ts +1 -1
  64. package/core/Float.d.ts +1 -1
  65. package/core/Float.js +0 -1
  66. package/core/FlyControls.d.ts +1 -1
  67. package/core/FlyControls.js +1 -2
  68. package/core/GizmoHelper.cjs.js +1 -1
  69. package/core/GizmoHelper.d.ts +2 -2
  70. package/core/GizmoHelper.js +18 -19
  71. package/core/GizmoViewcube.d.ts +3 -3
  72. package/core/GizmoViewcube.js +0 -14
  73. package/core/GizmoViewport.d.ts +3 -3
  74. package/core/GizmoViewport.js +0 -7
  75. package/core/Gltf.d.ts +1 -1
  76. package/core/GradientTexture.d.ts +3 -3
  77. package/core/GradientTexture.js +2 -5
  78. package/core/Grid.d.ts +2 -2
  79. package/core/Grid.js +2 -6
  80. package/core/Hud.d.ts +2 -2
  81. package/core/Hud.js +6 -9
  82. package/core/Image.d.ts +2 -2
  83. package/core/Image.js +4 -6
  84. package/core/Instances.d.ts +6 -6
  85. package/core/Instances.js +20 -35
  86. package/core/Lightformer.d.ts +1 -1
  87. package/core/Lightformer.js +4 -2
  88. package/core/Line.d.ts +1 -1
  89. package/core/Line.js +0 -3
  90. package/core/MapControls.d.ts +1 -1
  91. package/core/MapControls.js +0 -2
  92. package/core/MarchingCubes.d.ts +3 -3
  93. package/core/Mask.d.ts +1 -1
  94. package/core/MeshDistortMaterial.d.ts +2 -2
  95. package/core/MeshDistortMaterial.js +0 -9
  96. package/core/MeshPortalMaterial.d.ts +4 -4
  97. package/core/MeshPortalMaterial.js +22 -61
  98. package/core/MeshReflectorMaterial.d.ts +1 -1
  99. package/core/MeshReflectorMaterial.js +12 -14
  100. package/core/MeshRefractionMaterial.cjs.js +1 -1
  101. package/core/MeshRefractionMaterial.d.ts +3 -3
  102. package/core/MeshRefractionMaterial.js +9 -14
  103. package/core/MeshTransmissionMaterial.d.ts +2 -2
  104. package/core/MeshTransmissionMaterial.js +32 -33
  105. package/core/MeshWobbleMaterial.d.ts +2 -2
  106. package/core/MeshWobbleMaterial.js +0 -7
  107. package/core/MotionPathControls.cjs.js +1 -0
  108. package/core/MotionPathControls.d.ts +15 -0
  109. package/core/MotionPathControls.js +114 -0
  110. package/core/OrbitControls.d.ts +2 -2
  111. package/core/OrbitControls.js +0 -4
  112. package/core/OrthographicCamera.d.ts +1 -1
  113. package/core/OrthographicCamera.js +2 -3
  114. package/core/Outlines.cjs.js +1 -1
  115. package/core/Outlines.d.ts +4 -3
  116. package/core/Outlines.js +5 -8
  117. package/core/PerformanceMonitor.d.ts +4 -4
  118. package/core/PerformanceMonitor.js +8 -12
  119. package/core/PerspectiveCamera.d.ts +1 -1
  120. package/core/PerspectiveCamera.js +2 -3
  121. package/core/PointMaterial.d.ts +1 -1
  122. package/core/PointMaterial.js +0 -2
  123. package/core/PointerLockControls.d.ts +1 -1
  124. package/core/PointerLockControls.js +4 -6
  125. package/core/Points.d.ts +2 -2
  126. package/core/Points.js +6 -23
  127. package/core/PositionalAudio.d.ts +1 -1
  128. package/core/PositionalAudio.js +0 -5
  129. package/core/Preload.d.ts +1 -1
  130. package/core/Preload.js +8 -9
  131. package/core/QuadraticBezierLine.d.ts +2 -2
  132. package/core/QuadraticBezierLine.js +0 -2
  133. package/core/Reflector.d.ts +1 -1
  134. package/core/Reflector.js +11 -12
  135. package/core/RenderTexture.d.ts +1 -1
  136. package/core/RenderTexture.js +9 -11
  137. package/core/Resize.d.ts +2 -2
  138. package/core/RoundedBox.cjs.js +1 -1
  139. package/core/RoundedBox.d.ts +1 -1
  140. package/core/RoundedBox.js +1 -3
  141. package/core/Sampler.d.ts +5 -5
  142. package/core/Sampler.js +0 -10
  143. package/core/ScreenQuad.d.ts +1 -1
  144. package/core/ScreenQuad.js +0 -1
  145. package/core/ScreenSpace.d.ts +1 -1
  146. package/core/Segments.d.ts +2 -2
  147. package/core/Segments.js +0 -6
  148. package/core/Shadow.d.ts +1 -1
  149. package/core/Sky.d.ts +1 -1
  150. package/core/Sparkles.js +0 -10
  151. package/core/SpotLight.d.ts +2 -2
  152. package/core/SpotLight.js +3 -10
  153. package/core/SpriteAnimator.d.ts +1 -1
  154. package/core/SpriteAnimator.js +16 -34
  155. package/core/Stage.d.ts +4 -4
  156. package/core/Stage.js +2 -4
  157. package/core/Stars.d.ts +1 -1
  158. package/core/Stars.js +2 -11
  159. package/core/Stats.d.ts +1 -1
  160. package/core/Stats.js +2 -2
  161. package/core/StatsGl.d.ts +1 -1
  162. package/core/StatsGl.js +4 -3
  163. package/core/Svg.js +0 -2
  164. package/core/Text.d.ts +1 -1
  165. package/core/Text3D.d.ts +1 -1
  166. package/core/Text3D.js +1 -3
  167. package/core/TrackballControls.d.ts +1 -1
  168. package/core/TrackballControls.js +0 -1
  169. package/core/Trail.d.ts +3 -3
  170. package/core/Trail.js +6 -17
  171. package/core/TransformControls.d.ts +1 -1
  172. package/core/TransformControls.js +3 -9
  173. package/core/Wireframe.d.ts +1 -1
  174. package/core/Wireframe.js +0 -28
  175. package/core/index.cjs.js +1 -1
  176. package/core/index.d.ts +1 -0
  177. package/core/index.js +1 -0
  178. package/core/meshBounds.js +4 -14
  179. package/core/shaderMaterial.js +10 -9
  180. package/core/shapes.d.ts +2 -2
  181. package/core/shapes.js +3 -6
  182. package/core/softShadows.d.ts +1 -1
  183. package/core/softShadows.js +1 -4
  184. package/core/useAnimations.d.ts +1 -1
  185. package/core/useAnimations.js +2 -4
  186. package/core/useBVH.d.ts +1 -1
  187. package/core/useBVH.js +3 -4
  188. package/core/useBoxProjectedEnv.js +15 -22
  189. package/core/useCamera.js +0 -1
  190. package/core/useContextBridge.js +1 -2
  191. package/core/useCubeCamera.d.ts +1 -1
  192. package/core/useCubeTexture.d.ts +1 -1
  193. package/core/useCubeTexture.js +4 -3
  194. package/core/useEnvironment.cjs.js +1 -1
  195. package/core/useEnvironment.d.ts +2 -2
  196. package/core/useEnvironment.js +9 -11
  197. package/core/useFBO.d.ts +1 -1
  198. package/core/useFBO.js +3 -12
  199. package/core/useFBX.js +0 -2
  200. package/core/useFont.d.ts +2 -2
  201. package/core/useFont.js +0 -4
  202. package/core/useGLTF.d.ts +2 -2
  203. package/core/useGLTF.js +0 -8
  204. package/core/useHelper.d.ts +3 -3
  205. package/core/useHelper.js +2 -5
  206. package/core/useIntersect.js +5 -8
  207. package/core/useKTX2.js +3 -5
  208. package/core/useMatcapTexture.js +0 -6
  209. package/core/useNormalTexture.d.ts +1 -1
  210. package/core/useProgress.d.ts +1 -1
  211. package/core/useProgress.js +0 -5
  212. package/core/useTexture.js +4 -6
  213. package/core/useTrailTexture.d.ts +1 -1
  214. package/core/useTrailTexture.js +10 -21
  215. package/helpers/environment-assets.d.ts +1 -1
  216. package/helpers/ts-utils.d.ts +2 -2
  217. package/helpers/useEffectfulState.d.ts +1 -1
  218. package/helpers/useEffectfulState.js +0 -1
  219. package/index.cjs.js +1 -1
  220. package/index.js +1 -0
  221. package/materials/BlurPass.js +2 -5
  222. package/materials/ConvolutionMaterial.js +0 -3
  223. package/materials/MeshReflectorMaterial.d.ts +1 -1
  224. package/materials/MeshReflectorMaterial.js +0 -34
  225. package/materials/MeshRefractionMaterial.js +2 -6
  226. package/materials/SpotLightMaterial.js +2 -7
  227. package/materials/WireframeMaterial.js +7 -25
  228. package/native/index.cjs.js +1 -1
  229. package/native/index.js +1 -0
  230. package/package.json +2 -2
  231. package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
  232. package/web/CycleRaycast.d.ts +1 -1
  233. package/web/CycleRaycast.js +20 -24
  234. package/web/Html.d.ts +2 -2
  235. package/web/Html.js +6 -50
  236. package/web/KeyboardControls.d.ts +10 -10
  237. package/web/KeyboardControls.js +9 -6
  238. package/web/Loader.d.ts +2 -2
  239. package/web/Loader.js +8 -5
  240. package/web/PresentationControls.d.ts +2 -2
  241. package/web/PresentationControls.js +2 -1
  242. package/web/ScrollControls.d.ts +4 -4
  243. package/web/ScrollControls.js +5 -16
  244. package/web/Select.d.ts +3 -3
  245. package/web/Select.js +6 -17
  246. package/web/View.d.ts +5 -5
  247. package/web/View.js +7 -20
  248. package/web/index.cjs.js +1 -1
  249. package/web/index.js +1 -0
  250. package/web/pivotControls/AxisArrow.js +6 -15
  251. package/web/pivotControls/AxisRotator.js +8 -23
  252. package/web/pivotControls/PlaneSlider.js +6 -16
  253. package/web/pivotControls/context.d.ts +2 -2
  254. package/web/pivotControls/index.d.ts +1 -1
  255. package/web/pivotControls/index.js +2 -9
package/core/Trail.js CHANGED
@@ -11,13 +11,11 @@ const defaults = {
11
11
  stride: 0,
12
12
  interval: 1
13
13
  };
14
-
15
14
  const shiftLeft = (collection, steps = 1) => {
16
15
  collection.set(collection.subarray(steps));
17
16
  collection.fill(-Infinity, -steps);
18
17
  return collection;
19
18
  };
20
-
21
19
  function useTrail(target, settings) {
22
20
  const {
23
21
  length,
@@ -25,7 +23,8 @@ function useTrail(target, settings) {
25
23
  decay,
26
24
  interval,
27
25
  stride
28
- } = { ...defaults,
26
+ } = {
27
+ ...defaults,
29
28
  ...settings
30
29
  };
31
30
  const points = React.useRef();
@@ -42,28 +41,22 @@ function useTrail(target, settings) {
42
41
  useFrame(() => {
43
42
  if (!target) return;
44
43
  if (!points.current) return;
45
-
46
44
  if (frameCount.current === 0) {
47
45
  let newPosition;
48
-
49
46
  if (local) {
50
47
  newPosition = target.position;
51
48
  } else {
52
49
  target.getWorldPosition(worldPosition);
53
50
  newPosition = worldPosition;
54
51
  }
55
-
56
52
  const steps = 1 * decay;
57
-
58
53
  for (let i = 0; i < steps; i++) {
59
54
  if (newPosition.distanceTo(prevPosition.current) < stride) continue;
60
55
  shiftLeft(points.current, 3);
61
56
  points.current.set(newPosition.toArray(), points.current.length - 3);
62
57
  }
63
-
64
58
  prevPosition.current.copy(newPosition);
65
59
  }
66
-
67
60
  frameCount.current++;
68
61
  frameCount.current = frameCount.current % interval;
69
62
  });
@@ -80,7 +73,8 @@ const Trail = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
80
73
  local,
81
74
  stride,
82
75
  interval
83
- } = { ...defaults,
76
+ } = {
77
+ ...defaults,
84
78
  ...props
85
79
  };
86
80
  const {
@@ -103,7 +97,6 @@ const Trail = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
103
97
  const t = (target == null ? void 0 : target.current) || ref.current.children.find(o => {
104
98
  return o instanceof Object3D;
105
99
  });
106
-
107
100
  if (t) {
108
101
  setAnchor(t);
109
102
  }
@@ -111,16 +104,15 @@ const Trail = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
111
104
  const geo = React.useMemo(() => new MeshLineGeometry(), []);
112
105
  const mat = React.useMemo(() => {
113
106
  var _matOverride;
114
-
115
107
  const m = new MeshLineMaterial({
116
108
  lineWidth: 0.1 * width,
117
109
  color: color,
118
110
  sizeAttenuation: 1,
119
111
  resolution: new Vector2(size.width, size.height)
120
- }); // Get and apply first <meshLineMaterial /> from children
112
+ });
121
113
 
114
+ // Get and apply first <meshLineMaterial /> from children
122
115
  let matOverride;
123
-
124
116
  if (children) {
125
117
  if (Array.isArray(children)) {
126
118
  matOverride = children.find(child => {
@@ -129,17 +121,14 @@ const Trail = /*#__PURE__*/React.forwardRef((props, forwardRef) => {
129
121
  });
130
122
  } else {
131
123
  const c = children;
132
-
133
124
  if (typeof c.type === 'string' && c.type === 'meshLineMaterial') {
134
125
  matOverride = c;
135
126
  }
136
127
  }
137
128
  }
138
-
139
129
  if (typeof ((_matOverride = matOverride) == null ? void 0 : _matOverride.props) === 'object') {
140
130
  m.setValues(matOverride.props);
141
131
  }
142
-
143
132
  return m;
144
133
  }, [width, color, size, children]);
145
134
  React.useEffect(() => {
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import * as THREE from 'three';
4
4
  import { TransformControls as TransformControlsImpl } from 'three-stdlib';
5
5
  import { ForwardRefComponent } from '../helpers/ts-utils';
6
- export declare type TransformControlsProps = ReactThreeFiber.Object3DNode<TransformControlsImpl, typeof TransformControlsImpl> & JSX.IntrinsicElements['group'] & {
6
+ export type TransformControlsProps = ReactThreeFiber.Object3DNode<TransformControlsImpl, typeof TransformControlsImpl> & JSX.IntrinsicElements['group'] & {
7
7
  object?: THREE.Object3D | React.MutableRefObject<THREE.Object3D>;
8
8
  enabled?: boolean;
9
9
  axis?: string | null;
@@ -23,8 +23,8 @@ const TransformControls = /*#__PURE__*/React.forwardRef(({
23
23
  ...rest
24
24
  } = props;
25
25
  const transformProps = pick(rest, transformOnlyPropNames);
26
- const objectProps = omit(rest, transformOnlyPropNames); // @ts-expect-error new in @react-three/fiber@7.0.5
27
-
26
+ const objectProps = omit(rest, transformOnlyPropNames);
27
+ // @ts-expect-error new in @react-three/fiber@7.0.5
28
28
  const defaultControls = useThree(state => state.controls);
29
29
  const gl = useThree(state => state.gl);
30
30
  const events = useThree(state => state.events);
@@ -42,13 +42,11 @@ const TransformControls = /*#__PURE__*/React.forwardRef(({
42
42
  } else if (group.current instanceof THREE.Object3D) {
43
43
  controls.attach(group.current);
44
44
  }
45
-
46
45
  return () => void controls.detach();
47
46
  }, [object, children, controls]);
48
47
  React.useEffect(() => {
49
48
  if (defaultControls) {
50
49
  const callback = event => defaultControls.enabled = !event.value;
51
-
52
50
  controls.addEventListener('dragging-changed', callback);
53
51
  return () => controls.removeEventListener('dragging-changed', callback);
54
52
  }
@@ -64,15 +62,11 @@ const TransformControls = /*#__PURE__*/React.forwardRef(({
64
62
  React.useEffect(() => {
65
63
  const onChange = e => {
66
64
  invalidate();
67
- onChangeRef.current == null ? void 0 : onChangeRef.current(e);
65
+ onChangeRef.current == null || onChangeRef.current(e);
68
66
  };
69
-
70
67
  const onMouseDown = e => onMouseDownRef.current == null ? void 0 : onMouseDownRef.current(e);
71
-
72
68
  const onMouseUp = e => onMouseUpRef.current == null ? void 0 : onMouseUpRef.current(e);
73
-
74
69
  const onObjectChange = e => onObjectChangeRef.current == null ? void 0 : onObjectChangeRef.current(e);
75
-
76
70
  controls.addEventListener('change', onChange);
77
71
  controls.addEventListener('mouseDown', onMouseDown);
78
72
  controls.addEventListener('mouseUp', onMouseUp);
@@ -13,5 +13,5 @@ interface WireframeProps {
13
13
  geometry?: THREE.BufferGeometry | React.RefObject<THREE.BufferGeometry>;
14
14
  simplify?: boolean;
15
15
  }
16
- export declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProps & WireframeMaterialProps): JSX.Element;
16
+ export declare function Wireframe({ geometry: customGeometry, ...props }: WireframeProps & WireframeMaterialProps): React.JSX.Element;
17
17
  export {};
package/core/Wireframe.js CHANGED
@@ -7,82 +7,64 @@ import { WireframeMaterial, WireframeMaterialShaders, useWireframeUniforms, setW
7
7
  FIBER.extend({
8
8
  MeshWireframeMaterial: WireframeMaterial
9
9
  });
10
-
11
10
  function isWithGeometry(object) {
12
11
  return !!(object != null && object.geometry);
13
12
  }
14
-
15
13
  function isGeometry(object) {
16
14
  return !!(object != null && object.isBufferGeometry);
17
15
  }
18
-
19
16
  function isRefObject(object) {
20
17
  return !!(object != null && object.current);
21
18
  }
22
-
23
19
  function isRef(object) {
24
20
  return (object == null ? void 0 : object.current) !== undefined;
25
21
  }
26
-
27
22
  function isWireframeGeometry(geometry) {
28
23
  return geometry.type === 'WireframeGeometry';
29
24
  }
30
-
31
25
  function getUniforms() {
32
26
  const u = {};
33
-
34
27
  for (const key in WireframeMaterialShaders.uniforms) {
35
28
  u[key] = {
36
29
  value: WireframeMaterialShaders.uniforms[key]
37
30
  };
38
31
  }
39
-
40
32
  return u;
41
33
  }
42
-
43
34
  function getBarycentricCoordinates(geometry, removeEdge) {
44
35
  const position = geometry.getAttribute('position');
45
36
  const count = position.count;
46
37
  const barycentric = [];
47
-
48
38
  for (let i = 0; i < count; i++) {
49
39
  const even = i % 2 === 0;
50
40
  const Q = removeEdge ? 1 : 0;
51
-
52
41
  if (even) {
53
42
  barycentric.push(0, 0, 1, 0, 1, 0, 1, 0, Q);
54
43
  } else {
55
44
  barycentric.push(0, 1, 0, 0, 0, 1, 1, 0, Q);
56
45
  }
57
46
  }
58
-
59
47
  return new THREE.BufferAttribute(Float32Array.from(barycentric), 3);
60
48
  }
61
-
62
49
  function getInputGeometry(inputGeometry) {
63
50
  const geo = isRefObject(inputGeometry) ? inputGeometry.current : inputGeometry;
64
-
65
51
  if (!isGeometry(geo)) {
66
52
  // Disallow WireframeGeometry
67
53
  if (isWireframeGeometry(geo)) {
68
54
  throw new Error('Wireframe: WireframeGeometry is not supported.');
69
55
  }
70
-
71
56
  const parent = geo.parent;
72
-
73
57
  if (isWithGeometry(parent)) {
74
58
  // Disallow WireframeGeometry
75
59
  if (isWireframeGeometry(parent.geometry)) {
76
60
  throw new Error('Wireframe: WireframeGeometry is not supported.');
77
61
  }
78
-
79
62
  return parent.geometry;
80
63
  }
81
64
  } else {
82
65
  return geo;
83
66
  }
84
67
  }
85
-
86
68
  function setBarycentricCoordinates(geometry, simplify) {
87
69
  if (geometry.index) {
88
70
  console.warn('Wireframe: Requires non-indexed geometry, converting to non-indexed geometry.');
@@ -90,11 +72,9 @@ function setBarycentricCoordinates(geometry, simplify) {
90
72
  geometry.copy(nonIndexedGeo);
91
73
  geometry.setIndex(null);
92
74
  }
93
-
94
75
  const newBarycentric = getBarycentricCoordinates(geometry, simplify);
95
76
  geometry.setAttribute('barycentric', newBarycentric);
96
77
  }
97
-
98
78
  function WireframeWithCustomGeo({
99
79
  geometry: customGeometry,
100
80
  simplify = false,
@@ -103,13 +83,10 @@ function WireframeWithCustomGeo({
103
83
  const [geometry, setGeometry] = React.useState(null);
104
84
  React.useLayoutEffect(() => {
105
85
  const geom = getInputGeometry(customGeometry);
106
-
107
86
  if (!geom) {
108
87
  throw new Error('Wireframe: geometry prop must be a BufferGeometry or a ref to a BufferGeometry.');
109
88
  }
110
-
111
89
  setBarycentricCoordinates(geom, simplify);
112
-
113
90
  if (isRef(customGeometry)) {
114
91
  setGeometry(geom);
115
92
  }
@@ -133,7 +110,6 @@ function WireframeWithCustomGeo({
133
110
  }
134
111
  }))));
135
112
  }
136
-
137
113
  function WireframeWithoutCustomGeo({
138
114
  simplify = false,
139
115
  ...props
@@ -143,11 +119,9 @@ function WireframeWithoutCustomGeo({
143
119
  useWireframeUniforms(uniforms, props);
144
120
  React.useLayoutEffect(() => {
145
121
  const geom = getInputGeometry(objectRef);
146
-
147
122
  if (!geom) {
148
123
  throw new Error('Wireframe: Must be a child of a Mesh, Line or Points object or specify a geometry prop.');
149
124
  }
150
-
151
125
  const og = geom.clone();
152
126
  setBarycentricCoordinates(geom, simplify);
153
127
  return () => {
@@ -168,7 +142,6 @@ function WireframeWithoutCustomGeo({
168
142
  ref: objectRef
169
143
  });
170
144
  }
171
-
172
145
  function Wireframe({
173
146
  geometry: customGeometry,
174
147
  ...props
@@ -178,7 +151,6 @@ function Wireframe({
178
151
  geometry: customGeometry
179
152
  }, props));
180
153
  }
181
-
182
154
  return /*#__PURE__*/React.createElement(WireframeWithoutCustomGeo, props);
183
155
  }
184
156
 
package/core/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./ScreenSpace.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./CatmullRomLine.cjs.js"),i=require("./Line.cjs.js"),a=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),c=require("./Text3D.cjs.js"),n=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),p=require("./Image.cjs.js"),l=require("./Edges.cjs.js"),x=require("./Outlines.cjs.js"),q=require("./Trail.cjs.js"),m=require("./Sampler.cjs.js"),d=require("./ComputedAttribute.cjs.js"),h=require("./Clone.cjs.js"),C=require("./MarchingCubes.cjs.js"),M=require("./Decal.cjs.js"),S=require("./Svg.cjs.js"),f=require("./Gltf.cjs.js"),T=require("./AsciiRenderer.cjs.js"),P=require("./OrthographicCamera.cjs.js"),b=require("./PerspectiveCamera.cjs.js"),B=require("./CubeCamera.cjs.js"),g=require("./DeviceOrientationControls.cjs.js"),v=require("./FlyControls.cjs.js"),F=require("./MapControls.cjs.js"),L=require("./OrbitControls.cjs.js"),A=require("./TrackballControls.cjs.js"),k=require("./ArcballControls.cjs.js"),D=require("./TransformControls.cjs.js"),E=require("./PointerLockControls.cjs.js"),G=require("./FirstPersonControls.cjs.js"),R=require("./CameraControls.cjs.js"),w=require("./FaceControls.cjs.js"),z=require("./GizmoHelper.cjs.js"),O=require("./GizmoViewcube.cjs.js"),y=require("./GizmoViewport.cjs.js"),I=require("./Grid.cjs.js"),H=require("./useCubeTexture.cjs.js"),V=require("./useFBX.cjs.js"),W=require("./useGLTF.cjs.js"),Q=require("./useKTX2.cjs.js"),X=require("./useProgress.cjs.js"),K=require("./useTexture.cjs.js"),N=require("./useVideoTexture.cjs.js"),U=require("./useFont.cjs.js"),_=require("./Stats.cjs.js"),J=require("./StatsGl.cjs.js"),Y=require("./useDepthBuffer.cjs.js"),Z=require("./useAspect.cjs.js"),$=require("./useCamera.cjs.js"),ee=require("./useDetectGPU.cjs.js"),re=require("./useHelper.cjs.js"),se=require("./useBVH.cjs.js"),te=require("./useContextBridge.cjs.js"),oe=require("./useAnimations.cjs.js"),ie=require("./useFBO.cjs.js"),ae=require("./useIntersect.cjs.js"),ue=require("./useBoxProjectedEnv.cjs.js"),ce=require("./BBAnchor.cjs.js"),ne=require("./useTrailTexture.cjs.js"),je=require("./useCubeCamera.cjs.js"),pe=require("./Example.cjs.js"),le=require("./SpriteAnimator.cjs.js"),xe=require("./FaceLandmarker.cjs.js"),qe=require("./CurveModifier.cjs.js"),me=require("./MeshDistortMaterial.cjs.js"),de=require("./MeshWobbleMaterial.cjs.js"),he=require("./MeshReflectorMaterial.cjs.js"),Ce=require("./MeshRefractionMaterial.cjs.js"),Me=require("./MeshTransmissionMaterial.cjs.js"),Se=require("./MeshDiscardMaterial.cjs.js"),fe=require("./PointMaterial.cjs.js"),Te=require("./shaderMaterial.cjs.js"),Pe=require("./softShadows.cjs.js"),be=require("./shapes.cjs.js"),Be=require("./Facemesh.cjs.js"),ge=require("./RoundedBox.cjs.js"),ve=require("./ScreenQuad.cjs.js"),Fe=require("./Center.cjs.js"),Le=require("./Resize.cjs.js"),Ae=require("./Bounds.cjs.js"),ke=require("./CameraShake.cjs.js"),De=require("./Float.cjs.js"),Ee=require("./Stage.cjs.js"),Ge=require("./Backdrop.cjs.js"),Re=require("./Shadow.cjs.js"),we=require("./Caustics.cjs.js"),ze=require("./ContactShadows.cjs.js"),Oe=require("./AccumulativeShadows.cjs.js"),ye=require("./Reflector.cjs.js"),Ie=require("./SpotLight.cjs.js"),He=require("./Environment.cjs.js"),Ve=require("./Lightformer.cjs.js"),We=require("./Sky.cjs.js"),Qe=require("./Stars.cjs.js"),Xe=require("./Cloud.cjs.js"),Ke=require("./Sparkles.cjs.js"),Ne=require("./useEnvironment.cjs.js"),Ue=require("./useMatcapTexture.cjs.js"),_e=require("./useNormalTexture.cjs.js"),Je=require("./Wireframe.cjs.js"),Ye=require("./Points.cjs.js"),Ze=require("./Instances.cjs.js"),$e=require("./Segments.cjs.js"),er=require("./Detailed.cjs.js"),rr=require("./Preload.cjs.js"),sr=require("./BakeShadows.cjs.js"),tr=require("./meshBounds.cjs.js"),or=require("./AdaptiveDpr.cjs.js"),ir=require("./AdaptiveEvents.cjs.js"),ar=require("./PerformanceMonitor.cjs.js"),ur=require("./RenderTexture.cjs.js"),cr=require("./Mask.cjs.js"),nr=require("./Hud.cjs.js"),jr=require("./MeshPortalMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("camera-controls"),require("maath"),require("@mediapipe/tasks-vision"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../materials/WireframeMaterial.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.CatmullRomLine=o.CatmullRomLine,exports.Line=i.Line,exports.PositionalAudio=a.PositionalAudio,exports.Text=u.Text,exports.Text3D=c.Text3D,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.GradientType=j.GradientType,exports.Image=p.Image,exports.Edges=l.Edges,exports.Outlines=x.Outlines,exports.Trail=q.Trail,exports.useTrail=q.useTrail,exports.Sampler=m.Sampler,exports.useSurfaceSampler=m.useSurfaceSampler,exports.ComputedAttribute=d.ComputedAttribute,exports.Clone=h.Clone,exports.MarchingCube=C.MarchingCube,exports.MarchingCubes=C.MarchingCubes,exports.MarchingPlane=C.MarchingPlane,exports.Decal=M.Decal,exports.Svg=S.Svg,exports.Gltf=f.Gltf,exports.AsciiRenderer=T.AsciiRenderer,exports.OrthographicCamera=P.OrthographicCamera,exports.PerspectiveCamera=b.PerspectiveCamera,exports.CubeCamera=B.CubeCamera,exports.DeviceOrientationControls=g.DeviceOrientationControls,exports.FlyControls=v.FlyControls,exports.MapControls=F.MapControls,exports.OrbitControls=L.OrbitControls,exports.TrackballControls=A.TrackballControls,exports.ArcballControls=k.ArcballControls,exports.TransformControls=D.TransformControls,exports.PointerLockControls=E.PointerLockControls,exports.FirstPersonControls=G.FirstPersonControls,exports.CameraControls=R.CameraControls,exports.FaceControls=w.FaceControls,exports.useFaceControls=w.useFaceControls,exports.GizmoHelper=z.GizmoHelper,exports.useGizmoContext=z.useGizmoContext,exports.GizmoViewcube=O.GizmoViewcube,exports.GizmoViewport=y.GizmoViewport,exports.Grid=I.Grid,exports.useCubeTexture=H.useCubeTexture,exports.useFBX=V.useFBX,exports.useGLTF=W.useGLTF,exports.useKTX2=Q.useKTX2,exports.useProgress=X.useProgress,exports.IsObject=K.IsObject,exports.useTexture=K.useTexture,exports.useVideoTexture=N.useVideoTexture,exports.useFont=U.useFont,exports.Stats=_.Stats,exports.StatsGl=J.StatsGl,exports.useDepthBuffer=Y.useDepthBuffer,exports.useAspect=Z.useAspect,exports.useCamera=$.useCamera,exports.useDetectGPU=ee.useDetectGPU,exports.useHelper=re.useHelper,exports.Bvh=se.Bvh,exports.useBVH=se.useBVH,exports.useContextBridge=te.useContextBridge,exports.useAnimations=oe.useAnimations,exports.useFBO=ie.useFBO,exports.useIntersect=ae.useIntersect,exports.useBoxProjectedEnv=ue.useBoxProjectedEnv,exports.BBAnchor=ce.BBAnchor,exports.useTrailTexture=ne.useTrailTexture,exports.useCubeCamera=je.useCubeCamera,exports.Example=pe.Example,exports.SpriteAnimator=le.SpriteAnimator,exports.FaceLandmarker=xe.FaceLandmarker,exports.FaceLandmarkerDefaults=xe.FaceLandmarkerDefaults,exports.useFaceLandmarker=xe.useFaceLandmarker,exports.CurveModifier=qe.CurveModifier,exports.MeshDistortMaterial=me.MeshDistortMaterial,exports.MeshWobbleMaterial=de.MeshWobbleMaterial,exports.MeshReflectorMaterial=he.MeshReflectorMaterial,exports.MeshRefractionMaterial=Ce.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Me.MeshTransmissionMaterial,exports.MeshDiscardMaterial=Se.MeshDiscardMaterial,exports.PointMaterial=fe.PointMaterial,exports.PointMaterialImpl=fe.PointMaterialImpl,exports.shaderMaterial=Te.shaderMaterial,exports.SoftShadows=Pe.SoftShadows,exports.Box=be.Box,exports.Capsule=be.Capsule,exports.Circle=be.Circle,exports.Cone=be.Cone,exports.Cylinder=be.Cylinder,exports.Dodecahedron=be.Dodecahedron,exports.Extrude=be.Extrude,exports.Icosahedron=be.Icosahedron,exports.Lathe=be.Lathe,exports.Octahedron=be.Octahedron,exports.Plane=be.Plane,exports.Polyhedron=be.Polyhedron,exports.Ring=be.Ring,exports.Shape=be.Shape,exports.Sphere=be.Sphere,exports.Tetrahedron=be.Tetrahedron,exports.Torus=be.Torus,exports.TorusKnot=be.TorusKnot,exports.Tube=be.Tube,exports.Facemesh=Be.Facemesh,exports.FacemeshDatas=Be.FacemeshDatas,exports.FacemeshEye=Be.FacemeshEye,exports.FacemeshEyeDefaults=Be.FacemeshEyeDefaults,exports.RoundedBox=ge.RoundedBox,exports.ScreenQuad=ve.ScreenQuad,exports.Center=Fe.Center,exports.Resize=Le.Resize,exports.Bounds=Ae.Bounds,exports.useBounds=Ae.useBounds,exports.CameraShake=ke.CameraShake,exports.Float=De.Float,exports.Stage=Ee.Stage,exports.Backdrop=Ge.Backdrop,exports.Shadow=Re.Shadow,exports.Caustics=we.Caustics,exports.ContactShadows=ze.ContactShadows,exports.AccumulativeShadows=Oe.AccumulativeShadows,exports.RandomizedLight=Oe.RandomizedLight,exports.accumulativeContext=Oe.accumulativeContext,exports.Reflector=ye.Reflector,exports.SpotLight=Ie.SpotLight,exports.SpotLightShadow=Ie.SpotLightShadow,exports.Environment=He.Environment,exports.EnvironmentCube=He.EnvironmentCube,exports.EnvironmentMap=He.EnvironmentMap,exports.EnvironmentPortal=He.EnvironmentPortal,exports.Lightformer=Ve.Lightformer,exports.Sky=We.Sky,exports.calcPosFromAngles=We.calcPosFromAngles,exports.Stars=Qe.Stars,exports.Cloud=Xe.Cloud,exports.Sparkles=Ke.Sparkles,exports.useEnvironment=Ne.useEnvironment,exports.useMatcapTexture=Ue.useMatcapTexture,exports.useNormalTexture=_e.useNormalTexture,exports.Wireframe=Je.Wireframe,exports.Point=Ye.Point,exports.Points=Ye.Points,exports.PointsBuffer=Ye.PointsBuffer,exports.PositionPoint=Ye.PositionPoint,exports.Instance=Ze.Instance,exports.Instances=Ze.Instances,exports.Merged=Ze.Merged,exports.Segment=$e.Segment,exports.SegmentObject=$e.SegmentObject,exports.Segments=$e.Segments,exports.Detailed=er.Detailed,exports.Preload=rr.Preload,exports.BakeShadows=sr.BakeShadows,exports.meshBounds=tr.meshBounds,exports.AdaptiveDpr=or.AdaptiveDpr,exports.AdaptiveEvents=ir.AdaptiveEvents,exports.PerformanceMonitor=ar.PerformanceMonitor,exports.usePerformanceMonitor=ar.usePerformanceMonitor,exports.RenderTexture=ur.RenderTexture,exports.Mask=cr.Mask,exports.useMask=cr.useMask,exports.Hud=nr.Hud,exports.MeshPortalMaterial=jr.MeshPortalMaterial;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./ScreenSpace.cjs.js"),s=require("./QuadraticBezierLine.cjs.js"),t=require("./CubicBezierLine.cjs.js"),o=require("./CatmullRomLine.cjs.js"),i=require("./Line.cjs.js"),a=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),c=require("./Text3D.cjs.js"),n=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),p=require("./Image.cjs.js"),l=require("./Edges.cjs.js"),x=require("./Outlines.cjs.js"),q=require("./Trail.cjs.js"),m=require("./Sampler.cjs.js"),d=require("./ComputedAttribute.cjs.js"),h=require("./Clone.cjs.js"),C=require("./MarchingCubes.cjs.js"),M=require("./Decal.cjs.js"),S=require("./Svg.cjs.js"),f=require("./Gltf.cjs.js"),P=require("./AsciiRenderer.cjs.js"),T=require("./OrthographicCamera.cjs.js"),b=require("./PerspectiveCamera.cjs.js"),B=require("./CubeCamera.cjs.js"),g=require("./DeviceOrientationControls.cjs.js"),v=require("./FlyControls.cjs.js"),F=require("./MapControls.cjs.js"),L=require("./OrbitControls.cjs.js"),A=require("./TrackballControls.cjs.js"),k=require("./ArcballControls.cjs.js"),D=require("./TransformControls.cjs.js"),E=require("./PointerLockControls.cjs.js"),G=require("./FirstPersonControls.cjs.js"),R=require("./CameraControls.cjs.js"),w=require("./FaceControls.cjs.js"),z=require("./MotionPathControls.cjs.js"),O=require("./GizmoHelper.cjs.js"),y=require("./GizmoViewcube.cjs.js"),I=require("./GizmoViewport.cjs.js"),H=require("./Grid.cjs.js"),V=require("./useCubeTexture.cjs.js"),W=require("./useFBX.cjs.js"),Q=require("./useGLTF.cjs.js"),X=require("./useKTX2.cjs.js"),K=require("./useProgress.cjs.js"),N=require("./useTexture.cjs.js"),U=require("./useVideoTexture.cjs.js"),_=require("./useFont.cjs.js"),J=require("./Stats.cjs.js"),Y=require("./StatsGl.cjs.js"),Z=require("./useDepthBuffer.cjs.js"),$=require("./useAspect.cjs.js"),ee=require("./useCamera.cjs.js"),re=require("./useDetectGPU.cjs.js"),se=require("./useHelper.cjs.js"),te=require("./useBVH.cjs.js"),oe=require("./useContextBridge.cjs.js"),ie=require("./useAnimations.cjs.js"),ae=require("./useFBO.cjs.js"),ue=require("./useIntersect.cjs.js"),ce=require("./useBoxProjectedEnv.cjs.js"),ne=require("./BBAnchor.cjs.js"),je=require("./useTrailTexture.cjs.js"),pe=require("./useCubeCamera.cjs.js"),le=require("./Example.cjs.js"),xe=require("./SpriteAnimator.cjs.js"),qe=require("./FaceLandmarker.cjs.js"),me=require("./CurveModifier.cjs.js"),de=require("./MeshDistortMaterial.cjs.js"),he=require("./MeshWobbleMaterial.cjs.js"),Ce=require("./MeshReflectorMaterial.cjs.js"),Me=require("./MeshRefractionMaterial.cjs.js"),Se=require("./MeshTransmissionMaterial.cjs.js"),fe=require("./MeshDiscardMaterial.cjs.js"),Pe=require("./PointMaterial.cjs.js"),Te=require("./shaderMaterial.cjs.js"),be=require("./softShadows.cjs.js"),Be=require("./shapes.cjs.js"),ge=require("./Facemesh.cjs.js"),ve=require("./RoundedBox.cjs.js"),Fe=require("./ScreenQuad.cjs.js"),Le=require("./Center.cjs.js"),Ae=require("./Resize.cjs.js"),ke=require("./Bounds.cjs.js"),De=require("./CameraShake.cjs.js"),Ee=require("./Float.cjs.js"),Ge=require("./Stage.cjs.js"),Re=require("./Backdrop.cjs.js"),we=require("./Shadow.cjs.js"),ze=require("./Caustics.cjs.js"),Oe=require("./ContactShadows.cjs.js"),ye=require("./AccumulativeShadows.cjs.js"),Ie=require("./Reflector.cjs.js"),He=require("./SpotLight.cjs.js"),Ve=require("./Environment.cjs.js"),We=require("./Lightformer.cjs.js"),Qe=require("./Sky.cjs.js"),Xe=require("./Stars.cjs.js"),Ke=require("./Cloud.cjs.js"),Ne=require("./Sparkles.cjs.js"),Ue=require("./useEnvironment.cjs.js"),_e=require("./useMatcapTexture.cjs.js"),Je=require("./useNormalTexture.cjs.js"),Ye=require("./Wireframe.cjs.js"),Ze=require("./Points.cjs.js"),$e=require("./Instances.cjs.js"),er=require("./Segments.cjs.js"),rr=require("./Detailed.cjs.js"),sr=require("./Preload.cjs.js"),tr=require("./BakeShadows.cjs.js"),or=require("./meshBounds.cjs.js"),ir=require("./AdaptiveDpr.cjs.js"),ar=require("./AdaptiveEvents.cjs.js"),ur=require("./PerformanceMonitor.cjs.js"),cr=require("./RenderTexture.cjs.js"),nr=require("./Mask.cjs.js"),jr=require("./Hud.cjs.js"),pr=require("./MeshPortalMaterial.cjs.js");require("@babel/runtime/helpers/extends"),require("react"),require("@react-three/fiber"),require("react-merge-refs"),require("three"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("meshline"),require("lodash.pick"),require("lodash.omit"),require("camera-controls"),require("maath"),require("@mediapipe/tasks-vision"),require("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../materials/WireframeMaterial.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.QuadraticBezierLine=s.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.CatmullRomLine=o.CatmullRomLine,exports.Line=i.Line,exports.PositionalAudio=a.PositionalAudio,exports.Text=u.Text,exports.Text3D=c.Text3D,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.GradientType=j.GradientType,exports.Image=p.Image,exports.Edges=l.Edges,exports.Outlines=x.Outlines,exports.Trail=q.Trail,exports.useTrail=q.useTrail,exports.Sampler=m.Sampler,exports.useSurfaceSampler=m.useSurfaceSampler,exports.ComputedAttribute=d.ComputedAttribute,exports.Clone=h.Clone,exports.MarchingCube=C.MarchingCube,exports.MarchingCubes=C.MarchingCubes,exports.MarchingPlane=C.MarchingPlane,exports.Decal=M.Decal,exports.Svg=S.Svg,exports.Gltf=f.Gltf,exports.AsciiRenderer=P.AsciiRenderer,exports.OrthographicCamera=T.OrthographicCamera,exports.PerspectiveCamera=b.PerspectiveCamera,exports.CubeCamera=B.CubeCamera,exports.DeviceOrientationControls=g.DeviceOrientationControls,exports.FlyControls=v.FlyControls,exports.MapControls=F.MapControls,exports.OrbitControls=L.OrbitControls,exports.TrackballControls=A.TrackballControls,exports.ArcballControls=k.ArcballControls,exports.TransformControls=D.TransformControls,exports.PointerLockControls=E.PointerLockControls,exports.FirstPersonControls=G.FirstPersonControls,exports.CameraControls=R.CameraControls,exports.FaceControls=w.FaceControls,exports.useFaceControls=w.useFaceControls,exports.MotionPathControls=z.MotionPathControls,exports.useMotion=z.useMotion,exports.GizmoHelper=O.GizmoHelper,exports.useGizmoContext=O.useGizmoContext,exports.GizmoViewcube=y.GizmoViewcube,exports.GizmoViewport=I.GizmoViewport,exports.Grid=H.Grid,exports.useCubeTexture=V.useCubeTexture,exports.useFBX=W.useFBX,exports.useGLTF=Q.useGLTF,exports.useKTX2=X.useKTX2,exports.useProgress=K.useProgress,exports.IsObject=N.IsObject,exports.useTexture=N.useTexture,exports.useVideoTexture=U.useVideoTexture,exports.useFont=_.useFont,exports.Stats=J.Stats,exports.StatsGl=Y.StatsGl,exports.useDepthBuffer=Z.useDepthBuffer,exports.useAspect=$.useAspect,exports.useCamera=ee.useCamera,exports.useDetectGPU=re.useDetectGPU,exports.useHelper=se.useHelper,exports.Bvh=te.Bvh,exports.useBVH=te.useBVH,exports.useContextBridge=oe.useContextBridge,exports.useAnimations=ie.useAnimations,exports.useFBO=ae.useFBO,exports.useIntersect=ue.useIntersect,exports.useBoxProjectedEnv=ce.useBoxProjectedEnv,exports.BBAnchor=ne.BBAnchor,exports.useTrailTexture=je.useTrailTexture,exports.useCubeCamera=pe.useCubeCamera,exports.Example=le.Example,exports.SpriteAnimator=xe.SpriteAnimator,exports.FaceLandmarker=qe.FaceLandmarker,exports.FaceLandmarkerDefaults=qe.FaceLandmarkerDefaults,exports.useFaceLandmarker=qe.useFaceLandmarker,exports.CurveModifier=me.CurveModifier,exports.MeshDistortMaterial=de.MeshDistortMaterial,exports.MeshWobbleMaterial=he.MeshWobbleMaterial,exports.MeshReflectorMaterial=Ce.MeshReflectorMaterial,exports.MeshRefractionMaterial=Me.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Se.MeshTransmissionMaterial,exports.MeshDiscardMaterial=fe.MeshDiscardMaterial,exports.PointMaterial=Pe.PointMaterial,exports.PointMaterialImpl=Pe.PointMaterialImpl,exports.shaderMaterial=Te.shaderMaterial,exports.SoftShadows=be.SoftShadows,exports.Box=Be.Box,exports.Capsule=Be.Capsule,exports.Circle=Be.Circle,exports.Cone=Be.Cone,exports.Cylinder=Be.Cylinder,exports.Dodecahedron=Be.Dodecahedron,exports.Extrude=Be.Extrude,exports.Icosahedron=Be.Icosahedron,exports.Lathe=Be.Lathe,exports.Octahedron=Be.Octahedron,exports.Plane=Be.Plane,exports.Polyhedron=Be.Polyhedron,exports.Ring=Be.Ring,exports.Shape=Be.Shape,exports.Sphere=Be.Sphere,exports.Tetrahedron=Be.Tetrahedron,exports.Torus=Be.Torus,exports.TorusKnot=Be.TorusKnot,exports.Tube=Be.Tube,exports.Facemesh=ge.Facemesh,exports.FacemeshDatas=ge.FacemeshDatas,exports.FacemeshEye=ge.FacemeshEye,exports.FacemeshEyeDefaults=ge.FacemeshEyeDefaults,exports.RoundedBox=ve.RoundedBox,exports.ScreenQuad=Fe.ScreenQuad,exports.Center=Le.Center,exports.Resize=Ae.Resize,exports.Bounds=ke.Bounds,exports.useBounds=ke.useBounds,exports.CameraShake=De.CameraShake,exports.Float=Ee.Float,exports.Stage=Ge.Stage,exports.Backdrop=Re.Backdrop,exports.Shadow=we.Shadow,exports.Caustics=ze.Caustics,exports.ContactShadows=Oe.ContactShadows,exports.AccumulativeShadows=ye.AccumulativeShadows,exports.RandomizedLight=ye.RandomizedLight,exports.accumulativeContext=ye.accumulativeContext,exports.Reflector=Ie.Reflector,exports.SpotLight=He.SpotLight,exports.SpotLightShadow=He.SpotLightShadow,exports.Environment=Ve.Environment,exports.EnvironmentCube=Ve.EnvironmentCube,exports.EnvironmentMap=Ve.EnvironmentMap,exports.EnvironmentPortal=Ve.EnvironmentPortal,exports.Lightformer=We.Lightformer,exports.Sky=Qe.Sky,exports.calcPosFromAngles=Qe.calcPosFromAngles,exports.Stars=Xe.Stars,exports.Cloud=Ke.Cloud,exports.Sparkles=Ne.Sparkles,exports.useEnvironment=Ue.useEnvironment,exports.useMatcapTexture=_e.useMatcapTexture,exports.useNormalTexture=Je.useNormalTexture,exports.Wireframe=Ye.Wireframe,exports.Point=Ze.Point,exports.Points=Ze.Points,exports.PointsBuffer=Ze.PointsBuffer,exports.PositionPoint=Ze.PositionPoint,exports.Instance=$e.Instance,exports.Instances=$e.Instances,exports.Merged=$e.Merged,exports.Segment=er.Segment,exports.SegmentObject=er.SegmentObject,exports.Segments=er.Segments,exports.Detailed=rr.Detailed,exports.Preload=sr.Preload,exports.BakeShadows=tr.BakeShadows,exports.meshBounds=or.meshBounds,exports.AdaptiveDpr=ir.AdaptiveDpr,exports.AdaptiveEvents=ar.AdaptiveEvents,exports.PerformanceMonitor=ur.PerformanceMonitor,exports.usePerformanceMonitor=ur.usePerformanceMonitor,exports.RenderTexture=cr.RenderTexture,exports.Mask=nr.Mask,exports.useMask=nr.useMask,exports.Hud=jr.Hud,exports.MeshPortalMaterial=pr.MeshPortalMaterial;
package/core/index.d.ts CHANGED
@@ -35,6 +35,7 @@ export * from './PointerLockControls';
35
35
  export * from './FirstPersonControls';
36
36
  export * from './CameraControls';
37
37
  export * from './FaceControls';
38
+ export * from './MotionPathControls';
38
39
  export * from './GizmoHelper';
39
40
  export * from './GizmoViewcube';
40
41
  export * from './GizmoViewport';
package/core/index.js CHANGED
@@ -35,6 +35,7 @@ export { PointerLockControls } from './PointerLockControls.js';
35
35
  export { FirstPersonControls } from './FirstPersonControls.js';
36
36
  export { CameraControls } from './CameraControls.js';
37
37
  export { FaceControls, useFaceControls } from './FaceControls.js';
38
+ export { MotionPathControls, useMotion } from './MotionPathControls.js';
38
39
  export { GizmoHelper, useGizmoContext } from './GizmoHelper.js';
39
40
  export { GizmoViewcube } from './GizmoViewcube.js';
40
41
  export { GizmoViewport } from './GizmoViewport.js';
@@ -1,32 +1,22 @@
1
1
  import { Matrix4, Ray, Sphere, Vector3 } from 'three';
2
2
 
3
3
  const _inverseMatrix = new Matrix4();
4
-
5
4
  const _ray = new Ray();
6
-
7
5
  const _sphere = new Sphere();
8
-
9
6
  const _vA = new Vector3();
10
-
11
7
  function meshBounds(raycaster, intersects) {
12
8
  const geometry = this.geometry;
13
9
  const material = this.material;
14
10
  const matrixWorld = this.matrixWorld;
15
- if (material === undefined) return; // Checking boundingSphere distance to ray
16
-
11
+ if (material === undefined) return;
12
+ // Checking boundingSphere distance to ray
17
13
  if (geometry.boundingSphere === null) geometry.computeBoundingSphere();
18
-
19
14
  _sphere.copy(geometry.boundingSphere);
20
-
21
15
  _sphere.applyMatrix4(matrixWorld);
22
-
23
16
  if (raycaster.ray.intersectsSphere(_sphere) === false) return;
24
-
25
17
  _inverseMatrix.copy(matrixWorld).invert();
26
-
27
- _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix); // Check boundingBox before continuing
28
-
29
-
18
+ _ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);
19
+ // Check boundingBox before continuing
30
20
  if (geometry.boundingBox !== null && _ray.intersectBox(geometry.boundingBox, _vA) === null) return;
31
21
  intersects.push({
32
22
  distance: _vA.distanceTo(raycaster.ray.origin),
@@ -3,8 +3,8 @@ import * as THREE from 'three';
3
3
  function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
4
4
  const material = class material extends THREE.ShaderMaterial {
5
5
  constructor(parameters = {}) {
6
- const entries = Object.entries(uniforms); // Create unforms and shaders
7
-
6
+ const entries = Object.entries(uniforms);
7
+ // Create unforms and shaders
8
8
  super({
9
9
  uniforms: entries.reduce((acc, [name, value]) => {
10
10
  const uniform = THREE.UniformsUtils.clone({
@@ -12,25 +12,26 @@ function shaderMaterial(uniforms, vertexShader, fragmentShader, onInit) {
12
12
  value
13
13
  }
14
14
  });
15
- return { ...acc,
15
+ return {
16
+ ...acc,
16
17
  ...uniform
17
18
  };
18
19
  }, {}),
19
20
  vertexShader,
20
21
  fragmentShader
21
- }); // Create getter/setters
22
-
22
+ });
23
+ // Create getter/setters
23
24
  this.key = '';
24
25
  entries.forEach(([name]) => Object.defineProperty(this, name, {
25
26
  get: () => this.uniforms[name].value,
26
27
  set: v => this.uniforms[name].value = v
27
- })); // Assign parameters, this might include uniforms
28
-
29
- Object.assign(this, parameters); // Call onInit
28
+ }));
30
29
 
30
+ // Assign parameters, this might include uniforms
31
+ Object.assign(this, parameters);
32
+ // Call onInit
31
33
  if (onInit) onInit(this);
32
34
  }
33
-
34
35
  };
35
36
  material.key = THREE.MathUtils.generateUUID();
36
37
  return material;
package/core/shapes.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as THREE from 'three';
2
2
  import { ForwardRefComponent } from '../helpers/ts-utils';
3
- export declare type Args<T> = T extends new (...args: any) => any ? ConstructorParameters<T> : T;
4
- export declare type ShapeProps<T> = Omit<JSX.IntrinsicElements['mesh'], 'args'> & {
3
+ export type Args<T> = T extends new (...args: any) => any ? ConstructorParameters<T> : T;
4
+ export type ShapeProps<T> = Omit<JSX.IntrinsicElements['mesh'], 'args'> & {
5
5
  args?: Args<T>;
6
6
  };
7
7
  export declare const Box: ForwardRefComponent<ShapeProps<typeof THREE.BoxGeometry>, THREE.Mesh<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>;
package/core/shapes.js CHANGED
@@ -20,7 +20,6 @@ function create(type, effect) {
20
20
  }), children);
21
21
  });
22
22
  }
23
-
24
23
  const Box = create('box');
25
24
  const Circle = create('circle');
26
25
  const Cone = create('cone');
@@ -50,10 +49,9 @@ const Shape = create('shape', ({
50
49
  b3.getSize(b3size);
51
50
  const uv = [];
52
51
  let x = 0,
53
- y = 0,
54
- u = 0,
55
- v = 0;
56
-
52
+ y = 0,
53
+ u = 0,
54
+ v = 0;
57
55
  for (let i = 0; i < pos.count; i++) {
58
56
  x = pos.getX(i);
59
57
  y = pos.getY(i);
@@ -61,7 +59,6 @@ const Shape = create('shape', ({
61
59
  v = (y - b3.min.y) / b3size.y;
62
60
  uv.push(u, v);
63
61
  }
64
-
65
62
  geometry.setAttribute('uv', new THREE.Float32BufferAttribute(uv, 2));
66
63
  });
67
64
 
@@ -1,4 +1,4 @@
1
- declare type SoftShadowsProps = {
1
+ type SoftShadowsProps = {
2
2
  size?: number;
3
3
  samples?: number;
4
4
  focus?: number;
@@ -16,7 +16,6 @@ import { useThree } from '@react-three/fiber';
16
16
  High-Frequency Noise Implementation:
17
17
  https://www.shadertoy.com/view/tt3fDH [spawner64]
18
18
  */
19
-
20
19
  const pcss = ({
21
20
  focus = 0,
22
21
  size = 25,
@@ -122,18 +121,16 @@ float PCSS (sampler2D shadowMap, vec4 coords) {
122
121
  float penumbraRatio = penumbraSize(zReceiver, avgBlockerDepth);
123
122
  return vogelFilter(shadowMap, uv, zReceiver, 1.25 * penumbraRatio, angle);
124
123
  }`;
125
-
126
124
  function reset(gl, scene, camera) {
127
125
  scene.traverse(object => {
128
126
  if (object.material) {
129
127
  gl.properties.remove(object.material);
130
- object.material.dispose == null ? void 0 : object.material.dispose();
128
+ object.material.dispose == null || object.material.dispose();
131
129
  }
132
130
  });
133
131
  gl.info.programs.length = 0;
134
132
  gl.compile(scene, camera);
135
133
  }
136
-
137
134
  function SoftShadows({
138
135
  focus = 0,
139
136
  samples = 10,
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { Object3D, AnimationClip, AnimationAction, AnimationMixer } from 'three';
3
- declare type Api<T extends AnimationClip> = {
3
+ type Api<T extends AnimationClip> = {
4
4
  ref: React.MutableRefObject<Object3D | undefined | null>;
5
5
  clips: AnimationClip[];
6
6
  mixer: AnimationMixer;
@@ -6,8 +6,8 @@ function useAnimations(clips, root) {
6
6
  const ref = React.useRef();
7
7
  const [actualRef] = React.useState(() => root ? root instanceof Object3D ? {
8
8
  current: root
9
- } : root : ref); // eslint-disable-next-line prettier/prettier
10
-
9
+ } : root : ref);
10
+ // eslint-disable-next-line prettier/prettier
11
11
  const [mixer] = React.useState(() => new AnimationMixer(undefined));
12
12
  React.useLayoutEffect(() => {
13
13
  if (root) actualRef.current = root instanceof Object3D ? root : root.current;
@@ -18,13 +18,11 @@ function useAnimations(clips, root) {
18
18
  const actions = {};
19
19
  clips.forEach(clip => Object.defineProperty(actions, clip.name, {
20
20
  enumerable: true,
21
-
22
21
  get() {
23
22
  if (actualRef.current) {
24
23
  return lazyActions.current[clip.name] || (lazyActions.current[clip.name] = mixer.clipAction(clip, actualRef.current));
25
24
  }
26
25
  },
27
-
28
26
  configurable: true
29
27
  }));
30
28
  return {
package/core/useBVH.d.ts CHANGED
@@ -9,7 +9,7 @@ export interface BVHOptions {
9
9
  maxDepth?: number;
10
10
  maxLeafTris?: number;
11
11
  }
12
- export declare type BvhProps = BVHOptions & JSX.IntrinsicElements['group'] & {
12
+ export type BvhProps = BVHOptions & JSX.IntrinsicElements['group'] & {
13
13
  enabled?: boolean;
14
14
  firstHitOnly?: boolean;
15
15
  };
package/core/useBVH.js CHANGED
@@ -5,11 +5,10 @@ import { Mesh } from 'three';
5
5
  import { SAH, acceleratedRaycast, computeBoundsTree, disposeBoundsTree } from 'three-mesh-bvh';
6
6
 
7
7
  const isMesh = child => child.isMesh;
8
+
8
9
  /**
9
10
  * @deprecated Use the Bvh component instead
10
11
  */
11
-
12
-
13
12
  function useBVH(mesh, options) {
14
13
  options = {
15
14
  strategy: SAH,
@@ -57,10 +56,10 @@ const Bvh = /*#__PURE__*/React.forwardRef(({
57
56
  maxDepth,
58
57
  maxLeafTris
59
58
  };
60
- const group = ref.current; // This can only safely work if the component is used once, but there is no alternative.
59
+ const group = ref.current;
60
+ // This can only safely work if the component is used once, but there is no alternative.
61
61
  // Hijacking the raycast method to do it for individual meshes is not an option as it would
62
62
  // cost too much memory ...
63
-
64
63
  raycaster.firstHitOnly = firstHitOnly;
65
64
  group.traverse(child => {
66
65
  // Only include meshes that do not yet have a boundsTree and whose raycast is standard issue