@react-three/drei 9.16.1 → 9.17.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.
package/README.md CHANGED
@@ -60,6 +60,7 @@ The `native` route of the library **does not** export `Html` or `Loader`. The de
60
60
  <li><a href="#line">Line</a></li>
61
61
  <li><a href="#quadraticbezierline">QuadraticBezierLine</a></li>
62
62
  <li><a href="#cubicbezierline">CubicBezierLine</a></li>
63
+ <li><a href="#catmullromline">CatmullRomLine</a></li>
63
64
  <li><a href="#positionalaudio">PositionalAudio</a></li>
64
65
  <li><a href="#billboard">Billboard</a></li>
65
66
  <li><a href="#gizmohelper">GizmoHelper</a></li>
@@ -71,6 +72,7 @@ The `native` route of the library **does not** export `Html` or `Loader`. The de
71
72
  <li><a href="#computedattribute">Computed Attribute</a></li>
72
73
  <li><a href="#clone">Clone</a></li>
73
74
  <li><a href="#useanimations">useAnimations</a></li>
75
+ <li><a href="#marchingcubes">MarchingCubes</a></li>
74
76
  </ul>
75
77
  <li><a href="#shaders">Shaders</a></li>
76
78
  <ul>
@@ -569,6 +571,27 @@ Renders a THREE.Line2 using THREE.CubicBezierCurve3 for interpolation.
569
571
  />
570
572
  ```
571
573
 
574
+ #### CatmullRomLine
575
+
576
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.vercel.app/?path=/story/abstractions-line--catmull-rom)
577
+
578
+ Renders a THREE.Line2 using THREE.CatmullRomCurve3 for interpolation.
579
+
580
+ ```jsx
581
+ <CatmullRomLine
582
+ points={[[0, 0, 0], ...]} // Array of Points
583
+ closed={false} // Default
584
+ curveType="centripetal" // One of "centripetal" (default), "chordal", or "catmullrom"
585
+ tension={0.5} // Default (only applies to "catmullrom" curveType)
586
+ color="black" // Default
587
+ lineWidth={1} // In pixels (default)
588
+ dashed={false} // Default
589
+ vertexColors={[[0, 0, 0], ...]} // Optional array of RGB values for each point
590
+ {...lineProps} // All THREE.Line2 props are valid
591
+ {...materialProps} // All THREE.LineMaterial props are valid
592
+ />
593
+ ```
594
+
572
595
  #### PositionalAudio
573
596
 
574
597
  <p>
@@ -873,6 +896,20 @@ const { actions } = useAnimations(animations, scene)
873
896
  return <primitive object={scene} />
874
897
  ```
875
898
 
899
+ #### MarchingCubes
900
+
901
+ [![](https://img.shields.io/badge/-storybook-%23ff69b4)](https://drei.pmnd.rs/?path=/story/abstractions-marchingcubes--marching-cubes-story)
902
+
903
+ An abstraction for threes [MarchingCubes](https://threejs.org/examples/#webgl_marchingcubes)
904
+
905
+ ```jsx
906
+ <MarchingCubes resolution={50} maxPolyCount={20000} enableUvs={false} enableColors={true}>
907
+ <MarchingCube strength={0.5} subtract={12} color={new Color('#f0f')} position={[0.5, 0.5, 0.5]} />
908
+
909
+ <MarchingPlane planeType="y" strength={0.5} subtract={12} />
910
+ </MarchingCubes>
911
+ ```
912
+
876
913
  # Shaders
877
914
 
878
915
  #### MeshReflectorMaterial
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("./Line.cjs.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("three-stdlib");var s=o(e),c=u(t);const l=c.forwardRef((function({points:e,closed:t=!1,curveType:o="centripetal",tension:u=.5,segments:l=20,vertexColors:i,...f},a){const p=c.useMemo((()=>{const n=e.map((e=>e instanceof r.Vector3?e:new r.Vector3(...e)));return new r.CatmullRomCurve3(n,t,o,u)}),[e,t,o,u]),d=c.useMemo((()=>p.getPoints(l)),[p,l]),m=c.useMemo((()=>{if(!i||i.length<2)return;if(i.length===l+1)return i;const e=i.map((e=>e instanceof r.Color?e:new r.Color(...e)));t&&e.push(e[0].clone());const n=[e[0]],o=l/(e.length-1);for(let t=1;t<l;t++){const r=t%o/o,u=Math.floor(t/o);n.push(e[u].clone().lerp(e[u+1],r))}return n.push(e[e.length-1]),n}),[i,l]);return c.createElement(n.Line,s.default({ref:a,points:d,vertexColors:m},f))}));exports.CatmullRomLine=l;
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { Line2 } from 'three/examples/jsm/lines/Line2';
3
+ import { LineProps } from './Line';
4
+ export declare const CatmullRomLine: React.ForwardRefExoticComponent<Omit<LineProps, "ref"> & {
5
+ closed?: boolean | undefined;
6
+ curveType?: "centripetal" | "chordal" | "catmullrom" | undefined;
7
+ tension?: number | undefined;
8
+ segments?: number | undefined;
9
+ } & React.RefAttributes<Line2>>;
@@ -0,0 +1,44 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import { Vector3, CatmullRomCurve3, Color } from 'three';
4
+ import { Line } from './Line.js';
5
+
6
+ const CatmullRomLine = /*#__PURE__*/React.forwardRef(function CatmullRomLine({
7
+ points,
8
+ closed = false,
9
+ curveType = 'centripetal',
10
+ tension = 0.5,
11
+ segments = 20,
12
+ vertexColors,
13
+ ...rest
14
+ }, ref) {
15
+ const curve = React.useMemo(() => {
16
+ const mappedPoints = points.map(pt => pt instanceof Vector3 ? pt : new Vector3(...pt));
17
+ return new CatmullRomCurve3(mappedPoints, closed, curveType, tension);
18
+ }, [points, closed, curveType, tension]);
19
+ const segmentedPoints = React.useMemo(() => curve.getPoints(segments), [curve, segments]);
20
+ const interpolatedVertexColors = React.useMemo(() => {
21
+ if (!vertexColors || vertexColors.length < 2) return undefined;
22
+ if (vertexColors.length === segments + 1) return vertexColors;
23
+ const mappedColors = vertexColors.map(color => color instanceof Color ? color : new Color(...color));
24
+ if (closed) mappedColors.push(mappedColors[0].clone());
25
+ const iColors = [mappedColors[0]];
26
+ const divisions = segments / (mappedColors.length - 1);
27
+
28
+ for (let i = 1; i < segments; i++) {
29
+ const alpha = i % divisions / divisions;
30
+ const colorIndex = Math.floor(i / divisions);
31
+ iColors.push(mappedColors[colorIndex].clone().lerp(mappedColors[colorIndex + 1], alpha));
32
+ }
33
+
34
+ iColors.push(mappedColors[mappedColors.length - 1]);
35
+ return iColors;
36
+ }, [vertexColors, segments]);
37
+ return /*#__PURE__*/React.createElement(Line, _extends({
38
+ ref: ref,
39
+ points: segmentedPoints,
40
+ vertexColors: interpolatedVertexColors
41
+ }, rest));
42
+ });
43
+
44
+ export { CatmullRomLine };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("react-merge-refs"),u=require("three-stdlib"),a=require("@react-three/fiber");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function l(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=o(e),s=l(r),f=o(n);const i=s.createContext(null),d=s.forwardRef((({resolution:e=28,maxPolyCount:r=1e4,enableUvs:n=!1,enableColors:o=!1,children:l,...d},b)=>{const m=s.useRef(null),p=s.useMemo((()=>new u.MarchingCubes(e,new t.MeshStandardMaterial,n,o,r)),[e,r,n,o]),g=s.useMemo((()=>({getParent:()=>m})),[]);return a.useFrame((()=>{p.reset()}),-1),s.createElement(s.Fragment,null,s.createElement("primitive",c.default({object:p,ref:f.default([m,b])},d),s.createElement(i.Provider,{value:g},l)))})),b=s.forwardRef((({strength:e=.5,subtract:r=12,color:n=new t.Color("#fff"),...u},o)=>{const{getParent:l}=s.useContext(i),d=s.useMemo((()=>l()),[l]),b=s.useRef();return a.useFrame((()=>{d.current&&b.current&&d.current.addBall(b.current.position.x,b.current.position.y,b.current.position.z,e,r,n)})),s.createElement("group",c.default({ref:f.default([o,b])},u))})),m=s.forwardRef((({planeType:e="x",strength:r=.5,subtract:t=12,...n},u)=>{const{getParent:o}=s.useContext(i),l=s.useMemo((()=>o()),[o]),d=s.useRef(),b=s.useMemo((()=>"x"===e?"addPlaneX":"y"===e?"addPlaneY":"addPlaneZ"),[e]);return a.useFrame((()=>{l.current&&d.current&&l.current[b](r,t)})),s.createElement("group",c.default({ref:f.default([u,d])},n))}));exports.MarchingCube=b,exports.MarchingCubes=d,exports.MarchingPlane=m;
@@ -0,0 +1,78 @@
1
+ import * as React from 'react';
2
+ import { Color, Group } from 'three';
3
+ export declare type MarchingCubesProps = {
4
+ resolution?: number;
5
+ maxPolyCount?: number;
6
+ enableUvs?: boolean;
7
+ enableColors?: boolean;
8
+ } & JSX.IntrinsicElements['group'];
9
+ export declare const MarchingCubes: React.ForwardRefExoticComponent<Pick<{
10
+ resolution?: number | undefined;
11
+ maxPolyCount?: number | undefined;
12
+ enableUvs?: boolean | undefined;
13
+ enableColors?: boolean | undefined;
14
+ } & Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<Group>, import("@react-three/fiber").NodeProps<Group, typeof Group>>>, import("@react-three/fiber").NonFunctionKeys<{
15
+ position?: import("@react-three/fiber").Vector3 | undefined;
16
+ up?: import("@react-three/fiber").Vector3 | undefined;
17
+ scale?: import("@react-three/fiber").Vector3 | undefined;
18
+ rotation?: import("@react-three/fiber").Euler | undefined;
19
+ matrix?: import("@react-three/fiber").Matrix4 | undefined;
20
+ quaternion?: import("@react-three/fiber").Quaternion | undefined;
21
+ layers?: import("@react-three/fiber").Layers | undefined;
22
+ dispose?: (() => void) | null | undefined;
23
+ }>> & {
24
+ position?: import("@react-three/fiber").Vector3 | undefined;
25
+ up?: import("@react-three/fiber").Vector3 | undefined;
26
+ scale?: import("@react-three/fiber").Vector3 | undefined;
27
+ rotation?: import("@react-three/fiber").Euler | undefined;
28
+ matrix?: import("@react-three/fiber").Matrix4 | undefined;
29
+ quaternion?: import("@react-three/fiber").Quaternion | undefined;
30
+ layers?: import("@react-three/fiber").Layers | undefined;
31
+ dispose?: (() => void) | null | undefined;
32
+ } & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "isGroup" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "resolution" | "maxPolyCount" | "enableUvs" | "enableColors"> & React.RefAttributes<unknown>>;
33
+ export declare const MarchingCube: React.ForwardRefExoticComponent<Pick<{
34
+ strength?: number | undefined;
35
+ subtract?: number | undefined;
36
+ color?: Color | undefined;
37
+ } & Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<Group>, import("@react-three/fiber").NodeProps<Group, typeof Group>>>, import("@react-three/fiber").NonFunctionKeys<{
38
+ position?: import("@react-three/fiber").Vector3 | undefined;
39
+ up?: import("@react-three/fiber").Vector3 | undefined;
40
+ scale?: import("@react-three/fiber").Vector3 | undefined;
41
+ rotation?: import("@react-three/fiber").Euler | undefined;
42
+ matrix?: import("@react-three/fiber").Matrix4 | undefined;
43
+ quaternion?: import("@react-three/fiber").Quaternion | undefined;
44
+ layers?: import("@react-three/fiber").Layers | undefined;
45
+ dispose?: (() => void) | null | undefined;
46
+ }>> & {
47
+ position?: import("@react-three/fiber").Vector3 | undefined;
48
+ up?: import("@react-three/fiber").Vector3 | undefined;
49
+ scale?: import("@react-three/fiber").Vector3 | undefined;
50
+ rotation?: import("@react-three/fiber").Euler | undefined;
51
+ matrix?: import("@react-three/fiber").Matrix4 | undefined;
52
+ quaternion?: import("@react-three/fiber").Quaternion | undefined;
53
+ layers?: import("@react-three/fiber").Layers | undefined;
54
+ dispose?: (() => void) | null | undefined;
55
+ } & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "isGroup" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | "color" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "subtract" | "strength"> & React.RefAttributes<unknown>>;
56
+ export declare const MarchingPlane: React.ForwardRefExoticComponent<Pick<{
57
+ planeType?: "x" | "y" | "z" | undefined;
58
+ strength?: number | undefined;
59
+ subtract?: number | undefined;
60
+ } & Omit<import("@react-three/fiber").ExtendedColors<import("@react-three/fiber").Overwrite<Partial<Group>, import("@react-three/fiber").NodeProps<Group, typeof Group>>>, import("@react-three/fiber").NonFunctionKeys<{
61
+ position?: import("@react-three/fiber").Vector3 | undefined;
62
+ up?: import("@react-three/fiber").Vector3 | undefined;
63
+ scale?: import("@react-three/fiber").Vector3 | undefined;
64
+ rotation?: import("@react-three/fiber").Euler | undefined;
65
+ matrix?: import("@react-three/fiber").Matrix4 | undefined;
66
+ quaternion?: import("@react-three/fiber").Quaternion | undefined;
67
+ layers?: import("@react-three/fiber").Layers | undefined;
68
+ dispose?: (() => void) | null | undefined;
69
+ }>> & {
70
+ position?: import("@react-three/fiber").Vector3 | undefined;
71
+ up?: import("@react-three/fiber").Vector3 | undefined;
72
+ scale?: import("@react-three/fiber").Vector3 | undefined;
73
+ rotation?: import("@react-three/fiber").Euler | undefined;
74
+ matrix?: import("@react-three/fiber").Matrix4 | undefined;
75
+ quaternion?: import("@react-three/fiber").Quaternion | undefined;
76
+ layers?: import("@react-three/fiber").Layers | undefined;
77
+ dispose?: (() => void) | null | undefined;
78
+ } & import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers, "visible" | "attach" | "args" | "children" | "key" | "onUpdate" | "position" | "up" | "scale" | "rotation" | "matrix" | "quaternion" | "layers" | "dispose" | "type" | "isGroup" | "id" | "uuid" | "name" | "parent" | "modelViewMatrix" | "normalMatrix" | "matrixWorld" | "matrixAutoUpdate" | "matrixWorldNeedsUpdate" | "castShadow" | "receiveShadow" | "frustumCulled" | "renderOrder" | "animations" | "userData" | "customDepthMaterial" | "customDistanceMaterial" | "isObject3D" | "onBeforeRender" | "onAfterRender" | "applyMatrix4" | "applyQuaternion" | "setRotationFromAxisAngle" | "setRotationFromEuler" | "setRotationFromMatrix" | "setRotationFromQuaternion" | "rotateOnAxis" | "rotateOnWorldAxis" | "rotateX" | "rotateY" | "rotateZ" | "translateOnAxis" | "translateX" | "translateY" | "translateZ" | "localToWorld" | "worldToLocal" | "lookAt" | "add" | "remove" | "removeFromParent" | "clear" | "getObjectById" | "getObjectByName" | "getObjectByProperty" | "getWorldPosition" | "getWorldQuaternion" | "getWorldScale" | "getWorldDirection" | "raycast" | "traverse" | "traverseVisible" | "traverseAncestors" | "updateMatrix" | "updateMatrixWorld" | "updateWorldMatrix" | "toJSON" | "clone" | "copy" | "addEventListener" | "hasEventListener" | "removeEventListener" | "dispatchEvent" | keyof import("@react-three/fiber/dist/declarations/src/core/events").EventHandlers | "subtract" | "strength" | "planeType"> & React.RefAttributes<unknown>>;
@@ -0,0 +1,73 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import { MeshStandardMaterial, Color } from 'three';
4
+ import mergeRefs from 'react-merge-refs';
5
+ import { MarchingCubes as MarchingCubes$1 } from 'three-stdlib';
6
+ import { useFrame } from '@react-three/fiber';
7
+
8
+ const globalContext = /*#__PURE__*/React.createContext(null);
9
+ const MarchingCubes = /*#__PURE__*/React.forwardRef(({
10
+ resolution = 28,
11
+ maxPolyCount = 10000,
12
+ enableUvs = false,
13
+ enableColors = false,
14
+ children,
15
+ ...props
16
+ }, ref) => {
17
+ const marchingCubesRef = React.useRef(null);
18
+ const marchingCubes = React.useMemo(() => new MarchingCubes$1(resolution, new MeshStandardMaterial(), enableUvs, enableColors, maxPolyCount), [resolution, maxPolyCount, enableUvs, enableColors]);
19
+ const api = React.useMemo(() => ({
20
+ getParent: () => marchingCubesRef
21
+ }), []);
22
+ useFrame(() => {
23
+ marchingCubes.reset();
24
+ }, -1); // To make sure the reset runs before the balls or planes are added
25
+
26
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("primitive", _extends({
27
+ object: marchingCubes,
28
+ ref: mergeRefs([marchingCubesRef, ref])
29
+ }, props), /*#__PURE__*/React.createElement(globalContext.Provider, {
30
+ value: api
31
+ }, children)));
32
+ });
33
+ const MarchingCube = /*#__PURE__*/React.forwardRef(({
34
+ strength = 0.5,
35
+ subtract = 12,
36
+ color = new Color('#fff'),
37
+ ...props
38
+ }, ref) => {
39
+ const {
40
+ getParent
41
+ } = React.useContext(globalContext);
42
+ const parentRef = React.useMemo(() => getParent(), [getParent]);
43
+ const cubeRef = React.useRef();
44
+ useFrame(() => {
45
+ if (!parentRef.current || !cubeRef.current) return;
46
+ parentRef.current.addBall(cubeRef.current.position.x, cubeRef.current.position.y, cubeRef.current.position.z, strength, subtract, color);
47
+ });
48
+ return /*#__PURE__*/React.createElement("group", _extends({
49
+ ref: mergeRefs([ref, cubeRef])
50
+ }, props));
51
+ });
52
+ const MarchingPlane = /*#__PURE__*/React.forwardRef(({
53
+ planeType: _planeType = 'x',
54
+ strength = 0.5,
55
+ subtract = 12,
56
+ ...props
57
+ }, ref) => {
58
+ const {
59
+ getParent
60
+ } = React.useContext(globalContext);
61
+ const parentRef = React.useMemo(() => getParent(), [getParent]);
62
+ const wallRef = React.useRef();
63
+ const planeType = React.useMemo(() => _planeType === 'x' ? 'addPlaneX' : _planeType === 'y' ? 'addPlaneY' : 'addPlaneZ', [_planeType]);
64
+ useFrame(() => {
65
+ if (!parentRef.current || !wallRef.current) return;
66
+ parentRef.current[planeType](strength, subtract);
67
+ });
68
+ return /*#__PURE__*/React.createElement("group", _extends({
69
+ ref: mergeRefs([ref, wallRef])
70
+ }, props));
71
+ });
72
+
73
+ export { MarchingCube, MarchingCubes, MarchingPlane };
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("./QuadraticBezierLine.cjs.js"),s=require("./CubicBezierLine.cjs.js"),t=require("./Line.cjs.js"),o=require("./PositionalAudio.cjs.js"),i=require("./Text.cjs.js"),u=require("./Text3D.cjs.js"),a=require("./Effects.cjs.js"),n=require("./GradientTexture.cjs.js"),j=require("./Image.cjs.js"),p=require("./Edges.cjs.js"),c=require("./Trail.cjs.js"),x=require("./Sampler.cjs.js"),l=require("./ComputedAttribute.cjs.js"),q=require("./Clone.cjs.js"),d=require("./OrthographicCamera.cjs.js"),C=require("./PerspectiveCamera.cjs.js"),m=require("./CubeCamera.cjs.js"),h=require("./DeviceOrientationControls.cjs.js"),B=require("./FlyControls.cjs.js"),b=require("./MapControls.cjs.js"),S=require("./OrbitControls.cjs.js"),M=require("./TrackballControls.cjs.js"),T=require("./ArcballControls.cjs.js"),P=require("./TransformControls.cjs.js"),f=require("./PointerLockControls.cjs.js"),g=require("./FirstPersonControls.cjs.js"),v=require("./GizmoHelper.cjs.js"),k=require("./GizmoViewcube.cjs.js"),A=require("./GizmoViewport.cjs.js"),E=require("./useCubeTexture.cjs.js"),L=require("./useFBX.cjs.js"),D=require("./useGLTF.cjs.js"),G=require("./useProgress.cjs.js"),F=require("./useTexture.cjs.js"),O=require("./useKTX2.cjs.js"),w=require("./Stats.cjs.js"),z=require("./useDepthBuffer.cjs.js"),I=require("./useAspect.cjs.js"),R=require("./useCamera.cjs.js"),y=require("./useDetectGPU.cjs.js"),H=require("./useHelper.cjs.js"),V=require("./useBVH.cjs.js"),Q=require("./useContextBridge.cjs.js"),X=require("./useAnimations.cjs.js"),K=require("./useFBO.cjs.js"),W=require("./useIntersect.cjs.js"),N=require("./useBoxProjectedEnv.cjs.js"),U=require("./BBAnchor.cjs.js"),_=require("./CurveModifier.cjs.js"),J=require("./MeshDistortMaterial.cjs.js"),Y=require("./MeshWobbleMaterial.cjs.js"),Z=require("./MeshReflectorMaterial.cjs.js"),$=require("./PointMaterial.cjs.js"),ee=require("./shaderMaterial.cjs.js"),re=require("./softShadows.cjs.js"),se=require("./shapes.cjs.js"),te=require("./RoundedBox.cjs.js"),oe=require("./ScreenQuad.cjs.js"),ie=require("./Center.cjs.js"),ue=require("./Bounds.cjs.js"),ae=require("./CameraShake.cjs.js"),ne=require("./Float.cjs.js"),je=require("./Stage.cjs.js"),pe=require("./Backdrop.cjs.js"),ce=require("./Shadow.cjs.js"),xe=require("./ContactShadows.cjs.js"),le=require("./Reflector.cjs.js"),qe=require("./SpotLight.cjs.js"),de=require("./Environment.cjs.js"),Ce=require("./Lightformer.cjs.js"),me=require("./Sky.cjs.js"),he=require("./Stars.cjs.js"),Be=require("./Cloud.cjs.js"),be=require("./Sparkles.cjs.js"),Se=require("./useMatcapTexture.cjs.js"),Me=require("./useNormalTexture.cjs.js"),Te=require("./Points.cjs.js"),Pe=require("./Instances.cjs.js"),fe=require("./Segments.cjs.js"),ge=require("./Detailed.cjs.js"),ve=require("./Preload.cjs.js"),ke=require("./BakeShadows.cjs.js"),Ae=require("./meshBounds.cjs.js"),Ee=require("./AdaptiveDpr.cjs.js"),Le=require("./AdaptiveEvents.cjs.js"),De=require("./RenderTexture.cjs.js"),Ge=require("./Mask.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("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.QuadraticBezierLine=r.QuadraticBezierLine,exports.CubicBezierLine=s.CubicBezierLine,exports.Line=t.Line,exports.PositionalAudio=o.PositionalAudio,exports.Text=i.Text,exports.Text3D=u.Text3D,exports.Effects=a.Effects,exports.isWebGL2Available=a.isWebGL2Available,exports.GradientTexture=n.GradientTexture,exports.Image=j.Image,exports.Edges=p.Edges,exports.Trail=c.Trail,exports.useTrail=c.useTrail,exports.Sampler=x.Sampler,exports.ComputedAttribute=l.ComputedAttribute,exports.Clone=q.Clone,exports.OrthographicCamera=d.OrthographicCamera,exports.PerspectiveCamera=C.PerspectiveCamera,exports.CubeCamera=m.CubeCamera,exports.DeviceOrientationControls=h.DeviceOrientationControls,exports.FlyControls=B.FlyControls,exports.MapControls=b.MapControls,exports.OrbitControls=S.OrbitControls,exports.TrackballControls=M.TrackballControls,exports.ArcballControls=T.ArcballControls,exports.TransformControls=P.TransformControls,exports.PointerLockControls=f.PointerLockControls,exports.FirstPersonControls=g.FirstPersonControls,exports.GizmoHelper=v.GizmoHelper,exports.useGizmoContext=v.useGizmoContext,exports.GizmoViewcube=k.GizmoViewcube,exports.GizmoViewport=A.GizmoViewport,exports.useCubeTexture=E.useCubeTexture,exports.useFBX=L.useFBX,exports.useGLTF=D.useGLTF,exports.useProgress=G.useProgress,exports.IsObject=F.IsObject,exports.useTexture=F.useTexture,exports.useKTX2=O.useKTX2,exports.Stats=w.Stats,exports.useDepthBuffer=z.useDepthBuffer,exports.useAspect=I.useAspect,exports.useCamera=R.useCamera,exports.useDetectGPU=y.useDetectGPU,exports.useHelper=H.useHelper,exports.useBVH=V.useBVH,exports.useContextBridge=Q.useContextBridge,exports.useAnimations=X.useAnimations,exports.useFBO=K.useFBO,exports.useIntersect=W.useIntersect,exports.useBoxProjectedEnv=N.useBoxProjectedEnv,exports.BBAnchor=U.BBAnchor,exports.CurveModifier=_.CurveModifier,exports.MeshDistortMaterial=J.MeshDistortMaterial,exports.MeshWobbleMaterial=Y.MeshWobbleMaterial,exports.MeshReflectorMaterial=Z.MeshReflectorMaterial,exports.PointMaterial=$.PointMaterial,exports.PointMaterialImpl=$.PointMaterialImpl,exports.shaderMaterial=ee.shaderMaterial,exports.softShadows=re.softShadows,exports.Box=se.Box,exports.Capsule=se.Capsule,exports.Circle=se.Circle,exports.Cone=se.Cone,exports.Cylinder=se.Cylinder,exports.Dodecahedron=se.Dodecahedron,exports.Extrude=se.Extrude,exports.Icosahedron=se.Icosahedron,exports.Lathe=se.Lathe,exports.Octahedron=se.Octahedron,exports.Plane=se.Plane,exports.Polyhedron=se.Polyhedron,exports.Ring=se.Ring,exports.Sphere=se.Sphere,exports.Tetrahedron=se.Tetrahedron,exports.Torus=se.Torus,exports.TorusKnot=se.TorusKnot,exports.Tube=se.Tube,exports.RoundedBox=te.RoundedBox,exports.ScreenQuad=oe.ScreenQuad,exports.Center=ie.Center,exports.Bounds=ue.Bounds,exports.useBounds=ue.useBounds,exports.CameraShake=ae.CameraShake,exports.Float=ne.Float,exports.Stage=je.Stage,exports.Backdrop=pe.Backdrop,exports.Shadow=ce.Shadow,exports.ContactShadows=xe.ContactShadows,exports.Reflector=le.Reflector,exports.SpotLight=qe.SpotLight,exports.Environment=de.Environment,exports.EnvironmentCube=de.EnvironmentCube,exports.EnvironmentMap=de.EnvironmentMap,exports.EnvironmentPortal=de.EnvironmentPortal,exports.useEnvironment=de.useEnvironment,exports.Lightformer=Ce.Lightformer,exports.Sky=me.Sky,exports.calcPosFromAngles=me.calcPosFromAngles,exports.Stars=he.Stars,exports.Cloud=Be.Cloud,exports.Sparkles=be.Sparkles,exports.useMatcapTexture=Se.useMatcapTexture,exports.useNormalTexture=Me.useNormalTexture,exports.Point=Te.Point,exports.Points=Te.Points,exports.PointsBuffer=Te.PointsBuffer,exports.Instance=Pe.Instance,exports.Instances=Pe.Instances,exports.Merged=Pe.Merged,exports.Segment=fe.Segment,exports.SegmentObject=fe.SegmentObject,exports.Segments=fe.Segments,exports.Detailed=ge.Detailed,exports.Preload=ve.Preload,exports.BakeShadows=ke.BakeShadows,exports.meshBounds=Ae.meshBounds,exports.AdaptiveDpr=Ee.AdaptiveDpr,exports.AdaptiveEvents=Le.AdaptiveEvents,exports.RenderTexture=De.RenderTexture,exports.Mask=Ge.Mask,exports.useMask=Ge.useMask;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./Billboard.cjs.js"),r=require("./QuadraticBezierLine.cjs.js"),s=require("./CubicBezierLine.cjs.js"),t=require("./CatmullRomLine.cjs.js"),o=require("./Line.cjs.js"),i=require("./PositionalAudio.cjs.js"),u=require("./Text.cjs.js"),a=require("./Text3D.cjs.js"),n=require("./Effects.cjs.js"),j=require("./GradientTexture.cjs.js"),c=require("./Image.cjs.js"),p=require("./Edges.cjs.js"),x=require("./Trail.cjs.js"),l=require("./Sampler.cjs.js"),q=require("./ComputedAttribute.cjs.js"),d=require("./Clone.cjs.js"),C=require("./MarchingCubes.cjs.js"),m=require("./OrthographicCamera.cjs.js"),h=require("./PerspectiveCamera.cjs.js"),b=require("./CubeCamera.cjs.js"),M=require("./DeviceOrientationControls.cjs.js"),B=require("./FlyControls.cjs.js"),S=require("./MapControls.cjs.js"),P=require("./OrbitControls.cjs.js"),T=require("./TrackballControls.cjs.js"),g=require("./ArcballControls.cjs.js"),f=require("./TransformControls.cjs.js"),v=require("./PointerLockControls.cjs.js"),L=require("./FirstPersonControls.cjs.js"),k=require("./GizmoHelper.cjs.js"),A=require("./GizmoViewcube.cjs.js"),E=require("./GizmoViewport.cjs.js"),D=require("./useCubeTexture.cjs.js"),G=require("./useFBX.cjs.js"),F=require("./useGLTF.cjs.js"),O=require("./useProgress.cjs.js"),w=require("./useTexture.cjs.js"),z=require("./useKTX2.cjs.js"),R=require("./Stats.cjs.js"),I=require("./useDepthBuffer.cjs.js"),y=require("./useAspect.cjs.js"),H=require("./useCamera.cjs.js"),V=require("./useDetectGPU.cjs.js"),Q=require("./useHelper.cjs.js"),X=require("./useBVH.cjs.js"),K=require("./useContextBridge.cjs.js"),W=require("./useAnimations.cjs.js"),N=require("./useFBO.cjs.js"),U=require("./useIntersect.cjs.js"),_=require("./useBoxProjectedEnv.cjs.js"),J=require("./BBAnchor.cjs.js"),Y=require("./CurveModifier.cjs.js"),Z=require("./MeshDistortMaterial.cjs.js"),$=require("./MeshWobbleMaterial.cjs.js"),ee=require("./MeshReflectorMaterial.cjs.js"),re=require("./PointMaterial.cjs.js"),se=require("./shaderMaterial.cjs.js"),te=require("./softShadows.cjs.js"),oe=require("./shapes.cjs.js"),ie=require("./RoundedBox.cjs.js"),ue=require("./ScreenQuad.cjs.js"),ae=require("./Center.cjs.js"),ne=require("./Bounds.cjs.js"),je=require("./CameraShake.cjs.js"),ce=require("./Float.cjs.js"),pe=require("./Stage.cjs.js"),xe=require("./Backdrop.cjs.js"),le=require("./Shadow.cjs.js"),qe=require("./ContactShadows.cjs.js"),de=require("./Reflector.cjs.js"),Ce=require("./SpotLight.cjs.js"),me=require("./Environment.cjs.js"),he=require("./Lightformer.cjs.js"),be=require("./Sky.cjs.js"),Me=require("./Stars.cjs.js"),Be=require("./Cloud.cjs.js"),Se=require("./Sparkles.cjs.js"),Pe=require("./useMatcapTexture.cjs.js"),Te=require("./useNormalTexture.cjs.js"),ge=require("./Points.cjs.js"),fe=require("./Instances.cjs.js"),ve=require("./Segments.cjs.js"),Le=require("./Detailed.cjs.js"),ke=require("./Preload.cjs.js"),Ae=require("./BakeShadows.cjs.js"),Ee=require("./meshBounds.cjs.js"),De=require("./AdaptiveDpr.cjs.js"),Ge=require("./AdaptiveEvents.cjs.js"),Fe=require("./RenderTexture.cjs.js"),Oe=require("./Mask.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("zustand"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("three-mesh-bvh"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../helpers/Position.cjs.js"),require("react-composer"),exports.Billboard=e.Billboard,exports.QuadraticBezierLine=r.QuadraticBezierLine,exports.CubicBezierLine=s.CubicBezierLine,exports.CatmullRomLine=t.CatmullRomLine,exports.Line=o.Line,exports.PositionalAudio=i.PositionalAudio,exports.Text=u.Text,exports.Text3D=a.Text3D,exports.Effects=n.Effects,exports.isWebGL2Available=n.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.Image=c.Image,exports.Edges=p.Edges,exports.Trail=x.Trail,exports.useTrail=x.useTrail,exports.Sampler=l.Sampler,exports.ComputedAttribute=q.ComputedAttribute,exports.Clone=d.Clone,exports.MarchingCube=C.MarchingCube,exports.MarchingCubes=C.MarchingCubes,exports.MarchingPlane=C.MarchingPlane,exports.OrthographicCamera=m.OrthographicCamera,exports.PerspectiveCamera=h.PerspectiveCamera,exports.CubeCamera=b.CubeCamera,exports.DeviceOrientationControls=M.DeviceOrientationControls,exports.FlyControls=B.FlyControls,exports.MapControls=S.MapControls,exports.OrbitControls=P.OrbitControls,exports.TrackballControls=T.TrackballControls,exports.ArcballControls=g.ArcballControls,exports.TransformControls=f.TransformControls,exports.PointerLockControls=v.PointerLockControls,exports.FirstPersonControls=L.FirstPersonControls,exports.GizmoHelper=k.GizmoHelper,exports.useGizmoContext=k.useGizmoContext,exports.GizmoViewcube=A.GizmoViewcube,exports.GizmoViewport=E.GizmoViewport,exports.useCubeTexture=D.useCubeTexture,exports.useFBX=G.useFBX,exports.useGLTF=F.useGLTF,exports.useProgress=O.useProgress,exports.IsObject=w.IsObject,exports.useTexture=w.useTexture,exports.useKTX2=z.useKTX2,exports.Stats=R.Stats,exports.useDepthBuffer=I.useDepthBuffer,exports.useAspect=y.useAspect,exports.useCamera=H.useCamera,exports.useDetectGPU=V.useDetectGPU,exports.useHelper=Q.useHelper,exports.useBVH=X.useBVH,exports.useContextBridge=K.useContextBridge,exports.useAnimations=W.useAnimations,exports.useFBO=N.useFBO,exports.useIntersect=U.useIntersect,exports.useBoxProjectedEnv=_.useBoxProjectedEnv,exports.BBAnchor=J.BBAnchor,exports.CurveModifier=Y.CurveModifier,exports.MeshDistortMaterial=Z.MeshDistortMaterial,exports.MeshWobbleMaterial=$.MeshWobbleMaterial,exports.MeshReflectorMaterial=ee.MeshReflectorMaterial,exports.PointMaterial=re.PointMaterial,exports.PointMaterialImpl=re.PointMaterialImpl,exports.shaderMaterial=se.shaderMaterial,exports.softShadows=te.softShadows,exports.Box=oe.Box,exports.Capsule=oe.Capsule,exports.Circle=oe.Circle,exports.Cone=oe.Cone,exports.Cylinder=oe.Cylinder,exports.Dodecahedron=oe.Dodecahedron,exports.Extrude=oe.Extrude,exports.Icosahedron=oe.Icosahedron,exports.Lathe=oe.Lathe,exports.Octahedron=oe.Octahedron,exports.Plane=oe.Plane,exports.Polyhedron=oe.Polyhedron,exports.Ring=oe.Ring,exports.Sphere=oe.Sphere,exports.Tetrahedron=oe.Tetrahedron,exports.Torus=oe.Torus,exports.TorusKnot=oe.TorusKnot,exports.Tube=oe.Tube,exports.RoundedBox=ie.RoundedBox,exports.ScreenQuad=ue.ScreenQuad,exports.Center=ae.Center,exports.Bounds=ne.Bounds,exports.useBounds=ne.useBounds,exports.CameraShake=je.CameraShake,exports.Float=ce.Float,exports.Stage=pe.Stage,exports.Backdrop=xe.Backdrop,exports.Shadow=le.Shadow,exports.ContactShadows=qe.ContactShadows,exports.Reflector=de.Reflector,exports.SpotLight=Ce.SpotLight,exports.Environment=me.Environment,exports.EnvironmentCube=me.EnvironmentCube,exports.EnvironmentMap=me.EnvironmentMap,exports.EnvironmentPortal=me.EnvironmentPortal,exports.useEnvironment=me.useEnvironment,exports.Lightformer=he.Lightformer,exports.Sky=be.Sky,exports.calcPosFromAngles=be.calcPosFromAngles,exports.Stars=Me.Stars,exports.Cloud=Be.Cloud,exports.Sparkles=Se.Sparkles,exports.useMatcapTexture=Pe.useMatcapTexture,exports.useNormalTexture=Te.useNormalTexture,exports.Point=ge.Point,exports.Points=ge.Points,exports.PointsBuffer=ge.PointsBuffer,exports.Instance=fe.Instance,exports.Instances=fe.Instances,exports.Merged=fe.Merged,exports.Segment=ve.Segment,exports.SegmentObject=ve.SegmentObject,exports.Segments=ve.Segments,exports.Detailed=Le.Detailed,exports.Preload=ke.Preload,exports.BakeShadows=Ae.BakeShadows,exports.meshBounds=Ee.meshBounds,exports.AdaptiveDpr=De.AdaptiveDpr,exports.AdaptiveEvents=Ge.AdaptiveEvents,exports.RenderTexture=Fe.RenderTexture,exports.Mask=Oe.Mask,exports.useMask=Oe.useMask;
package/core/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './Billboard';
2
2
  export * from './QuadraticBezierLine';
3
3
  export * from './CubicBezierLine';
4
+ export * from './CatmullRomLine';
4
5
  export * from './Line';
5
6
  export * from './PositionalAudio';
6
7
  export * from './Text';
@@ -13,6 +14,7 @@ export * from './Trail';
13
14
  export * from './Sampler';
14
15
  export * from './ComputedAttribute';
15
16
  export * from './Clone';
17
+ export * from './MarchingCubes';
16
18
  export * from './OrthographicCamera';
17
19
  export * from './PerspectiveCamera';
18
20
  export * from './CubeCamera';
package/core/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { Billboard } from './Billboard.js';
2
2
  export { QuadraticBezierLine } from './QuadraticBezierLine.js';
3
3
  export { CubicBezierLine } from './CubicBezierLine.js';
4
+ export { CatmullRomLine } from './CatmullRomLine.js';
4
5
  export { Line } from './Line.js';
5
6
  export { PositionalAudio } from './PositionalAudio.js';
6
7
  export { Text } from './Text.js';
@@ -13,6 +14,7 @@ export { Trail, useTrail } from './Trail.js';
13
14
  export { Sampler } from './Sampler.js';
14
15
  export { ComputedAttribute } from './ComputedAttribute.js';
15
16
  export { Clone } from './Clone.js';
17
+ export { MarchingCube, MarchingCubes, MarchingPlane } from './MarchingCubes.js';
16
18
  export { OrthographicCamera } from './OrthographicCamera.js';
17
19
  export { PerspectiveCamera } from './PerspectiveCamera.js';
18
20
  export { CubeCamera } from './CubeCamera.js';