@react-three/drei 7.23.2 → 7.24.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/core/Float.cjs.js +1 -0
- package/core/Float.d.ts +8 -0
- package/core/Float.js +25 -0
- package/core/QuadraticBezierLine.cjs.js +1 -1
- package/core/QuadraticBezierLine.d.ts +6 -1
- package/core/QuadraticBezierLine.js +23 -12
- package/core/index.cjs.js +1 -1
- package/core/index.d.ts +1 -0
- package/core/index.js +1 -0
- package/index.cjs.js +1 -1
- package/index.js +1 -0
- package/native/index.cjs.js +1 -1
- package/native/index.js +1 -0
- package/package.json +1 -1
- package/web/index.cjs.js +1 -1
- package/web/index.js +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber");function r(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)}var n=r(e);exports.Float=function({children:e,speed:r=1,rotationIntensity:o=1,floatIntensity:c=1,...u}){const a=n.useRef(null),i=n.useRef(1e4*Math.random());return t.useFrame((e=>{const t=i.current+e.clock.getElapsedTime();a.current.rotation.x=Math.cos(t/4*r)/8*o,a.current.rotation.y=Math.sin(t/4*r)/8*o,a.current.rotation.z=Math.sin(t/4*r)/20*o,a.current.position.y=Math.sin(t/4*r)/10*c})),n.createElement("group",u,n.createElement("group",{ref:a},e))};
|
package/core/Float.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare type FloatProps = JSX.IntrinsicElements['group'] & {
|
|
3
|
+
speed?: number;
|
|
4
|
+
rotationIntensity?: number;
|
|
5
|
+
floatIntensity?: number;
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
};
|
|
8
|
+
export declare function Float({ children, speed, rotationIntensity, floatIntensity, ...props }: FloatProps): JSX.Element;
|
package/core/Float.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useFrame } from '@react-three/fiber';
|
|
3
|
+
|
|
4
|
+
function Float({
|
|
5
|
+
children,
|
|
6
|
+
speed = 1,
|
|
7
|
+
rotationIntensity = 1,
|
|
8
|
+
floatIntensity = 1,
|
|
9
|
+
...props
|
|
10
|
+
}) {
|
|
11
|
+
const ref = React.useRef(null);
|
|
12
|
+
const offset = React.useRef(Math.random() * 10000);
|
|
13
|
+
useFrame(state => {
|
|
14
|
+
const t = offset.current + state.clock.getElapsedTime();
|
|
15
|
+
ref.current.rotation.x = Math.cos(t / 4 * speed) / 8 * rotationIntensity;
|
|
16
|
+
ref.current.rotation.y = Math.sin(t / 4 * speed) / 8 * rotationIntensity;
|
|
17
|
+
ref.current.rotation.z = Math.sin(t / 4 * speed) / 20 * rotationIntensity;
|
|
18
|
+
ref.current.position.y = Math.sin(t / 4 * speed) / 10 * floatIntensity;
|
|
19
|
+
});
|
|
20
|
+
return /*#__PURE__*/React.createElement("group", props, /*#__PURE__*/React.createElement("group", {
|
|
21
|
+
ref: ref
|
|
22
|
+
}, children));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { Float };
|
|
@@ -1 +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 c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),n=require("react-merge-refs"),o=require("./Line.cjs.js");function c(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=c(e),i=u(t),a=c(n);const f=new r.Vector3,d=i.forwardRef((function({start:e=[0,0,0],end:t=[0,0,0],mid:n,segments:c=20,...u},d){const l=i.useRef(null),[v]=i.useState((()=>new r.QuadraticBezierCurve3(void 0,void 0,void 0))),y=i.useCallback(((e,t,n,o=20)=>(e instanceof r.Vector3?v.v0.copy(e):v.v0.set(...e),t instanceof r.Vector3?v.v2.copy(t):v.v2.set(...t),n instanceof r.Vector3?v.v1.copy(n):v.v1.copy(v.v0.clone().add(v.v2.clone().sub(v.v0)).add(f.set(0,v.v0.y-v.v2.y,0))),v.getPoints(o))),[]);i.useLayoutEffect((()=>{l.current.setPoints=(e,t,r)=>{const n=y(e,t,r);l.current.geometry&&l.current.geometry.setPositions(n.map((e=>e.toArray())).flat())}}),[]);const p=i.useMemo((()=>y(e,t,n,c)),[e,t,n,c]);return i.createElement(o.Line,s.default({ref:a.default([l,d]),points:p},u))}));exports.QuadraticBezierLine=d;
|
|
@@ -2,9 +2,14 @@ import * as React from 'react';
|
|
|
2
2
|
import { Vector3 } from 'three';
|
|
3
3
|
import { Line2 } from 'three/examples/jsm/lines/Line2';
|
|
4
4
|
import { LineProps } from './Line';
|
|
5
|
+
import { Object3DNode } from '@react-three/fiber';
|
|
6
|
+
declare type Line2Props = Object3DNode<Line2, typeof Line2> & {
|
|
7
|
+
setPoints: (start: Vector3 | [number, number, number], end: Vector3 | [number, number, number], mid: Vector3 | [number, number, number]) => void;
|
|
8
|
+
};
|
|
5
9
|
export declare const QuadraticBezierLine: React.ForwardRefExoticComponent<Omit<LineProps, "ref" | "points"> & {
|
|
6
10
|
start: Vector3 | [number, number, number];
|
|
7
11
|
end: Vector3 | [number, number, number];
|
|
8
12
|
mid?: Vector3 | [number, number, number] | undefined;
|
|
9
13
|
segments?: number | undefined;
|
|
10
|
-
} & React.RefAttributes<
|
|
14
|
+
} & React.RefAttributes<Line2Props>>;
|
|
15
|
+
export {};
|
|
@@ -1,25 +1,36 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { Vector3, QuadraticBezierCurve3 } from 'three';
|
|
4
|
+
import mergeRefs from 'react-merge-refs';
|
|
4
5
|
import { Line } from './Line.js';
|
|
5
6
|
|
|
7
|
+
const v = new Vector3();
|
|
6
8
|
const QuadraticBezierLine = /*#__PURE__*/React.forwardRef(function QuadraticBezierLine({
|
|
7
|
-
start,
|
|
8
|
-
end,
|
|
9
|
+
start = [0, 0, 0],
|
|
10
|
+
end = [0, 0, 0],
|
|
9
11
|
mid,
|
|
10
12
|
segments = 20,
|
|
11
13
|
...rest
|
|
12
|
-
},
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
}, forwardref) {
|
|
15
|
+
const ref = React.useRef(null);
|
|
16
|
+
const [curve] = React.useState(() => new QuadraticBezierCurve3(undefined, undefined, undefined));
|
|
17
|
+
const getPoints = React.useCallback((start, end, mid, segments = 20) => {
|
|
18
|
+
if (start instanceof Vector3) curve.v0.copy(start);else curve.v0.set(...start);
|
|
19
|
+
if (end instanceof Vector3) curve.v2.copy(end);else curve.v2.set(...end);
|
|
20
|
+
if (mid instanceof Vector3) curve.v1.copy(mid);else {
|
|
21
|
+
curve.v1.copy(curve.v0.clone().add(curve.v2.clone().sub(curve.v0)).add(v.set(0, curve.v0.y - curve.v2.y, 0)));
|
|
22
|
+
}
|
|
23
|
+
return curve.getPoints(segments);
|
|
24
|
+
}, []);
|
|
25
|
+
React.useLayoutEffect(() => {
|
|
26
|
+
ref.current.setPoints = (start, end, mid) => {
|
|
27
|
+
const points = getPoints(start, end, mid);
|
|
28
|
+
if (ref.current.geometry) ref.current.geometry.setPositions(points.map(p => p.toArray()).flat());
|
|
29
|
+
};
|
|
30
|
+
}, []);
|
|
31
|
+
const points = React.useMemo(() => getPoints(start, end, mid, segments), [start, end, mid, segments]);
|
|
21
32
|
return /*#__PURE__*/React.createElement(Line, _extends({
|
|
22
|
-
ref: ref,
|
|
33
|
+
ref: mergeRefs([ref, forwardref]),
|
|
23
34
|
points: points
|
|
24
35
|
}, rest));
|
|
25
36
|
});
|
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("./Effects.cjs.js"),a=require("./GradientTexture.cjs.js"),c=require("./Image.cjs.js"),
|
|
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("./Effects.cjs.js"),a=require("./GradientTexture.cjs.js"),c=require("./Image.cjs.js"),j=require("./OrthographicCamera.cjs.js"),p=require("./PerspectiveCamera.cjs.js"),n=require("./CubeCamera.cjs.js"),l=require("./DeviceOrientationControls.cjs.js"),x=require("./FlyControls.cjs.js"),q=require("./MapControls.cjs.js"),d=require("./OrbitControls.cjs.js"),h=require("./TrackballControls.cjs.js"),C=require("./ArcballControls.cjs.js"),m=require("./TransformControls.cjs.js"),B=require("./PointerLockControls.cjs.js"),S=require("./FirstPersonControls.cjs.js"),b=require("./GizmoHelper.cjs.js"),f=require("./GizmoViewcube.cjs.js"),P=require("./GizmoViewport.cjs.js"),T=require("./useCubeTexture.cjs.js"),g=require("./useFBX.cjs.js"),M=require("./useGLTF.cjs.js"),v=require("./useProgress.cjs.js"),D=require("./useTexture.cjs.js"),L=require("./Stats.cjs.js"),A=require("./DepthBuffer.cjs.js"),G=require("./useDepthBuffer.cjs.js"),k=require("./useAspect.cjs.js"),F=require("./useCamera.cjs.js"),w=require("./useDetectGPU.cjs.js"),z=require("./useHelper.cjs.js"),I=require("./useBVH.cjs.js"),O=require("./useContextBridge.cjs.js"),E=require("./useAnimations.cjs.js"),y=require("./useFBO.cjs.js"),H=require("./useIntersect.cjs.js"),R=require("./useSimplification.cjs.js"),V=require("./useTessellation.cjs.js"),Q=require("./useEdgeSplit.cjs.js"),W=require("./CurveModifier.cjs.js"),N=require("./MeshDistortMaterial.cjs.js"),U=require("./MeshWobbleMaterial.cjs.js"),X=require("./PointMaterial.cjs.js"),K=require("./shaderMaterial.cjs.js"),_=require("./softShadows.cjs.js"),J=require("./shapes.cjs.js"),Y=require("./RoundedBox.cjs.js"),Z=require("./ScreenQuad.cjs.js"),$=require("./Center.cjs.js"),ee=require("./Bounds.cjs.js"),re=require("./CameraShake.cjs.js"),se=require("./Float.cjs.js"),te=require("./Stage.cjs.js"),oe=require("./Backdrop.cjs.js"),ie=require("./Shadow.cjs.js"),ue=require("./ContactShadows.cjs.js"),ae=require("./Reflector.cjs.js"),ce=require("./SpotLight.cjs.js"),je=require("./Environment.cjs.js"),pe=require("./Sky.cjs.js"),ne=require("./Stars.cjs.js"),le=require("./Cloud.cjs.js"),xe=require("./useMatcapTexture.cjs.js"),qe=require("./useNormalTexture.cjs.js"),de=require("./Points.cjs.js"),he=require("./Instances.cjs.js"),Ce=require("./Segments.cjs.js"),me=require("./Detailed.cjs.js"),Be=require("./Preload.cjs.js"),Se=require("./BakeShadows.cjs.js"),be=require("./meshBounds.cjs.js"),fe=require("./AdaptiveDpr.cjs.js"),Pe=require("./AdaptiveEvents.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("lodash.omit"),require("lodash.pick"),require("zustand"),require("three/examples/js/libs/stats.min"),require("../helpers/useEffectfulState.cjs.js"),require("detect-gpu"),require("use-asset"),require("three-mesh-bvh"),require("../helpers/environment-assets.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../assets/cloud.base64.cjs.js"),require("../helpers/matcap-assets.cjs.js"),require("../helpers/normal-assets.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.Effects=u.Effects,exports.isWebGL2Available=u.isWebGL2Available,exports.GradientTexture=a.GradientTexture,exports.Image=c.Image,exports.OrthographicCamera=j.OrthographicCamera,exports.PerspectiveCamera=p.PerspectiveCamera,exports.CubeCamera=n.CubeCamera,exports.DeviceOrientationControls=l.DeviceOrientationControls,exports.FlyControls=x.FlyControls,exports.MapControls=q.MapControls,exports.OrbitControls=d.OrbitControls,exports.TrackballControls=h.TrackballControls,exports.ArcballControls=C.ArcballControls,exports.TransformControls=m.TransformControls,exports.PointerLockControls=B.PointerLockControls,exports.FirstPersonControls=S.FirstPersonControls,exports.GizmoHelper=b.GizmoHelper,exports.useGizmoContext=b.useGizmoContext,exports.GizmoViewcube=f.GizmoViewcube,exports.GizmoViewport=P.GizmoViewport,exports.useCubeTexture=T.useCubeTexture,exports.useFBX=g.useFBX,exports.useGLTF=M.useGLTF,exports.useProgress=v.useProgress,exports.IsObject=D.IsObject,exports.useTexture=D.useTexture,exports.Stats=L.Stats,exports.DepthBuffer=A.DepthBuffer,exports.useDepthBuffer=G.useDepthBuffer,exports.useAspect=k.useAspect,exports.useCamera=F.useCamera,exports.useDetectGPU=w.useDetectGPU,exports.useHelper=z.useHelper,exports.useBVH=I.useBVH,exports.useContextBridge=O.useContextBridge,exports.useAnimations=E.useAnimations,exports.useFBO=y.useFBO,exports.useIntersect=H.useIntersect,exports.useSimplification=R.useSimplification,exports.useTessellation=V.useTessellation,exports.useEdgeSplit=Q.useEdgeSplit,exports.CurveModifier=W.CurveModifier,exports.MeshDistortMaterial=N.MeshDistortMaterial,exports.MeshWobbleMaterial=U.MeshWobbleMaterial,exports.PointMaterial=X.PointMaterial,exports.PointMaterialImpl=X.PointMaterialImpl,exports.shaderMaterial=K.shaderMaterial,exports.softShadows=_.softShadows,exports.Box=J.Box,exports.Circle=J.Circle,exports.Cone=J.Cone,exports.Cylinder=J.Cylinder,exports.Dodecahedron=J.Dodecahedron,exports.Extrude=J.Extrude,exports.Icosahedron=J.Icosahedron,exports.Lathe=J.Lathe,exports.Octahedron=J.Octahedron,exports.Parametric=J.Parametric,exports.Plane=J.Plane,exports.Polyhedron=J.Polyhedron,exports.Ring=J.Ring,exports.Sphere=J.Sphere,exports.Tetrahedron=J.Tetrahedron,exports.Torus=J.Torus,exports.TorusKnot=J.TorusKnot,exports.Tube=J.Tube,exports.RoundedBox=Y.RoundedBox,exports.ScreenQuad=Z.ScreenQuad,exports.Center=$.Center,exports.Bounds=ee.Bounds,exports.useBounds=ee.useBounds,exports.CameraShake=re.CameraShake,exports.Float=se.Float,exports.Stage=te.Stage,exports.Backdrop=oe.Backdrop,exports.Shadow=ie.Shadow,exports.ContactShadows=ue.ContactShadows,exports.Reflector=ae.Reflector,exports.SpotLight=ce.SpotLight,exports.Environment=je.Environment,exports.Sky=pe.Sky,exports.calcPosFromAngles=pe.calcPosFromAngles,exports.Stars=ne.Stars,exports.Cloud=le.Cloud,exports.useMatcapTexture=xe.useMatcapTexture,exports.useNormalTexture=qe.useNormalTexture,exports.Point=de.Point,exports.Points=de.Points,exports.PointsBuffer=de.PointsBuffer,exports.Instance=he.Instance,exports.Instances=he.Instances,exports.Merged=he.Merged,exports.Segment=Ce.Segment,exports.Segments=Ce.Segments,exports.Detailed=me.Detailed,exports.Preload=Be.Preload,exports.BakeShadows=Se.BakeShadows,exports.meshBounds=be.meshBounds,exports.AdaptiveDpr=fe.AdaptiveDpr,exports.AdaptiveEvents=Pe.AdaptiveEvents;
|
package/core/index.d.ts
CHANGED
package/core/index.js
CHANGED
|
@@ -54,6 +54,7 @@ export { ScreenQuad } from './ScreenQuad.js';
|
|
|
54
54
|
export { Center } from './Center.js';
|
|
55
55
|
export { Bounds, useBounds } from './Bounds.js';
|
|
56
56
|
export { CameraShake } from './CameraShake.js';
|
|
57
|
+
export { Float } from './Float.js';
|
|
57
58
|
export { Stage } from './Stage.js';
|
|
58
59
|
export { Backdrop } from './Backdrop.js';
|
|
59
60
|
export { Shadow } from './Shadow.js';
|