@react-three/drei 7.22.2 → 7.22.6
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/Bounds.d.ts +1 -1
- package/core/GizmoViewcube.cjs.js +1 -1
- package/core/GizmoViewcube.js +3 -0
- package/core/GizmoViewport.cjs.js +1 -1
- package/core/GizmoViewport.d.ts +2 -1
- package/core/GizmoViewport.js +12 -4
- package/index.cjs.js +1 -1
- package/package.json +1 -1
package/core/Bounds.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("./GizmoHelper.cjs.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),o=require("./GizmoHelper.cjs.js"),a=require("three");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("./OrthographicCamera.cjs.js"),require("react-merge-refs"),require("./useCamera.cjs.js");var s=n(e),c=i(t);const l="#f0f0f0",m="#999",p="black",u="black",f=["Right","Left","Top","Bottom","Front","Back"],h=e=>new a.Vector3(...e).multiplyScalar(.38),y=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(h),d=[.25,.25,.25],g=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(h),b=g.map((e=>e.toArray().map((e=>0==e?.5:.25)))),x=({hover:e,index:t,font:o="20px Inter var, Arial, sans-serif",faces:n=f,color:i=l,hoverColor:s=m,textColor:h=p,strokeColor:y=u,opacity:d=1})=>{const g=r.useThree((e=>e.gl)),b=c.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const r=e.getContext("2d");return r.fillStyle=i,r.fillRect(0,0,e.width,e.height),r.strokeStyle=y,r.strokeRect(0,0,e.width,e.height),r.font=o,r.textAlign="center",r.fillStyle=h,r.fillText(n[t].toUpperCase(),64,76),new a.CanvasTexture(e)}),[t,o,i,h,y]);return c.createElement("meshLambertMaterial",{map:b,"map-anisotropy":g.capabilities.getMaxAnisotropy()||1,attachArray:"material",color:e?s:"white",transparent:!0,opacity:d})},C=e=>{const{tweenCamera:t,raycast:r}=o.useGizmoContext(),[a,n]=c.useState(null);return c.createElement("mesh",{raycast:r,onPointerOut:e=>{e.stopPropagation(),n(null)},onPointerMove:e=>{e.stopPropagation(),n(Math.floor(e.faceIndex/2))},onClick:e.onClick||(e=>{e.stopPropagation(),t(e.face.normal)})},[...Array(6)].map(((t,r)=>c.createElement(x,s.default({key:r,index:r,hover:a===r},e)))),c.createElement("boxGeometry",null))},v=({onClick:e,dimensions:t,position:r,hoverColor:a=m})=>{const{tweenCamera:n,raycast:i}=o.useGizmoContext(),[s,l]=c.useState(!1);return c.createElement("mesh",{scale:1.01,position:r,raycast:i,onPointerOver:e=>{e.stopPropagation(),l(!0)},onPointerOut:e=>{e.stopPropagation(),l(!1)},onClick:e||(e=>{e.stopPropagation(),n(r)})},c.createElement("meshBasicMaterial",{color:s?a:"white",transparent:!0,opacity:.6,visible:s}),c.createElement("boxGeometry",{args:t}))};exports.GizmoViewcube=e=>c.createElement("group",{scale:[60,60,60]},c.createElement(C,e),g.map(((t,r)=>c.createElement(v,s.default({key:r,position:t,dimensions:b[r]},e)))),y.map(((t,r)=>c.createElement(v,s.default({key:r,position:t,dimensions:d},e)))),c.createElement("ambientLight",{intensity:.5}),c.createElement("pointLight",{position:[10,10,10],intensity:.5}));
|
package/core/GizmoViewcube.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { useThree } from '@react-three/fiber';
|
|
3
4
|
import { useGizmoContext } from './GizmoHelper.js';
|
|
4
5
|
import { Vector3, CanvasTexture } from 'three';
|
|
5
6
|
|
|
@@ -29,6 +30,7 @@ const FaceMaterial = ({
|
|
|
29
30
|
strokeColor = colors.stroke,
|
|
30
31
|
opacity = 1
|
|
31
32
|
}) => {
|
|
33
|
+
const gl = useThree(state => state.gl);
|
|
32
34
|
const texture = React.useMemo(() => {
|
|
33
35
|
const canvas = document.createElement('canvas');
|
|
34
36
|
canvas.width = 128;
|
|
@@ -46,6 +48,7 @@ const FaceMaterial = ({
|
|
|
46
48
|
}, [index, font, color, textColor, strokeColor]);
|
|
47
49
|
return /*#__PURE__*/React.createElement("meshLambertMaterial", {
|
|
48
50
|
map: texture,
|
|
51
|
+
"map-anisotropy": gl.capabilities.getMaxAnisotropy() || 1,
|
|
49
52
|
attachArray: "material",
|
|
50
53
|
color: hover ? hoverColor : 'white',
|
|
51
54
|
transparent: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),a=require("@react-three/fiber"),r=require("three"),o=require("./GizmoHelper.cjs.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var r=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,r.get?r:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}require("./OrthographicCamera.cjs.js"),require("react-merge-refs"),require("./useCamera.cjs.js");var i=l(e),c=n(t);function s({scale:e=[.8,.05,.05],color:t,rotation:a}){return c.createElement("group",{rotation:a},c.createElement("mesh",{position:[.4,0,0]},c.createElement("boxGeometry",{args:e}),c.createElement("meshBasicMaterial",{color:t,toneMapped:!1})))}function u({onClick:e,font:t,disabled:o,arcStyle:l,label:n,labelColor:s,axisHeadScale:u=1,...p}){const f=a.useThree((e=>e.gl)),m=c.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const a=e.getContext("2d");return a.beginPath(),a.arc(32,32,16,0,2*Math.PI),a.closePath(),a.fillStyle=l,a.fill(),n&&(a.font=t,a.textAlign="center",a.fillStyle=s,a.fillText(n,32,41)),new r.CanvasTexture(e)}),[l,n,s,t]),[d,b]=c.useState(!1),g=(n?1:.75)*(d?1.2:1)*u;return c.createElement("sprite",i.default({scale:g,onPointerOver:o?void 0:e=>{e.stopPropagation(),b(!0)},onPointerOut:o?void 0:e||(e=>{e.stopPropagation(),b(!1)})},p),c.createElement("spriteMaterial",{map:m,"map-anisotropy":f.capabilities.getMaxAnisotropy()||1,alphaTest:.3,opacity:n?1:.75,toneMapped:!1}))}exports.GizmoViewport=({hideNegativeAxes:e,hideAxisHeads:t,disabled:a,font:r="18px Inter var, Arial, sans-serif",axisColors:l=["#ff3653","#0adb50","#2c8fdf"],axisHeadScale:n=1,axisScale:p,labels:f=["X","Y","Z"],labelColor:m="#000",onClick:d,...b})=>{const[g,h,y]=l,{tweenCamera:E,raycast:x}=o.useGizmoContext(),j={font:r,disabled:a,labelColor:m,raycast:x,onClick:d,axisHeadScale:n,onPointerDown:a?void 0:e=>{E(e.object.position),e.stopPropagation()}};return c.createElement("group",i.default({scale:40},b),c.createElement(s,{color:g,rotation:[0,0,0],scale:p}),c.createElement(s,{color:h,rotation:[0,0,Math.PI/2],scale:p}),c.createElement(s,{color:y,rotation:[0,-Math.PI/2,0],scale:p}),!t&&c.createElement(c.Fragment,null,c.createElement(u,i.default({arcStyle:g,position:[1,0,0],label:f[0]},j)),c.createElement(u,i.default({arcStyle:h,position:[0,1,0],label:f[1]},j)),c.createElement(u,i.default({arcStyle:y,position:[0,0,1],label:f[2]},j)),!e&&c.createElement(c.Fragment,null,c.createElement(u,i.default({arcStyle:g,position:[-1,0,0]},j)),c.createElement(u,i.default({arcStyle:h,position:[0,-1,0]},j)),c.createElement(u,i.default({arcStyle:y,position:[0,0,-1]},j)))),c.createElement("ambientLight",{intensity:.5}),c.createElement("pointLight",{position:[10,10,10],intensity:.5}))};
|
package/core/GizmoViewport.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Event } from 'three';
|
|
3
3
|
declare type GizmoViewportProps = JSX.IntrinsicElements['group'] & {
|
|
4
4
|
axisColors?: [string, string, string];
|
|
5
|
+
axisScale?: [number, number, number];
|
|
5
6
|
labels?: [string, string, string];
|
|
6
7
|
axisHeadScale?: number;
|
|
7
8
|
labelColor?: string;
|
|
@@ -11,5 +12,5 @@ declare type GizmoViewportProps = JSX.IntrinsicElements['group'] & {
|
|
|
11
12
|
font?: string;
|
|
12
13
|
onClick?: (e: Event) => null;
|
|
13
14
|
};
|
|
14
|
-
export declare const GizmoViewport: ({ hideNegativeAxes, hideAxisHeads, disabled, font, axisColors, axisHeadScale, labels, labelColor, onClick, ...props }: GizmoViewportProps) => JSX.Element;
|
|
15
|
+
export declare const GizmoViewport: ({ hideNegativeAxes, hideAxisHeads, disabled, font, axisColors, axisHeadScale, axisScale, labels, labelColor, onClick, ...props }: GizmoViewportProps) => JSX.Element;
|
|
15
16
|
export {};
|
package/core/GizmoViewport.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { useThree } from '@react-three/fiber';
|
|
3
4
|
import { CanvasTexture } from 'three';
|
|
4
5
|
import { useGizmoContext } from './GizmoHelper.js';
|
|
5
6
|
|
|
6
7
|
function Axis({
|
|
8
|
+
scale = [0.8, 0.05, 0.05],
|
|
7
9
|
color,
|
|
8
10
|
rotation
|
|
9
11
|
}) {
|
|
@@ -12,7 +14,7 @@ function Axis({
|
|
|
12
14
|
}, /*#__PURE__*/React.createElement("mesh", {
|
|
13
15
|
position: [0.4, 0, 0]
|
|
14
16
|
}, /*#__PURE__*/React.createElement("boxGeometry", {
|
|
15
|
-
args:
|
|
17
|
+
args: scale
|
|
16
18
|
}), /*#__PURE__*/React.createElement("meshBasicMaterial", {
|
|
17
19
|
color: color,
|
|
18
20
|
toneMapped: false
|
|
@@ -29,6 +31,7 @@ function AxisHead({
|
|
|
29
31
|
axisHeadScale = 1,
|
|
30
32
|
...props
|
|
31
33
|
}) {
|
|
34
|
+
const gl = useThree(state => state.gl);
|
|
32
35
|
const texture = React.useMemo(() => {
|
|
33
36
|
const canvas = document.createElement('canvas');
|
|
34
37
|
canvas.width = 64;
|
|
@@ -68,6 +71,7 @@ function AxisHead({
|
|
|
68
71
|
onPointerOut: !disabled ? onClick || handlePointerOut : undefined
|
|
69
72
|
}, props), /*#__PURE__*/React.createElement("spriteMaterial", {
|
|
70
73
|
map: texture,
|
|
74
|
+
"map-anisotropy": gl.capabilities.getMaxAnisotropy() || 1,
|
|
71
75
|
alphaTest: 0.3,
|
|
72
76
|
opacity: label ? 1 : 0.75,
|
|
73
77
|
toneMapped: false
|
|
@@ -81,6 +85,7 @@ const GizmoViewport = ({
|
|
|
81
85
|
font = '18px Inter var, Arial, sans-serif',
|
|
82
86
|
axisColors = ['#ff3653', '#0adb50', '#2c8fdf'],
|
|
83
87
|
axisHeadScale = 1,
|
|
88
|
+
axisScale,
|
|
84
89
|
labels = ['X', 'Y', 'Z'],
|
|
85
90
|
labelColor = '#000',
|
|
86
91
|
onClick,
|
|
@@ -107,13 +112,16 @@ const GizmoViewport = ({
|
|
|
107
112
|
scale: 40
|
|
108
113
|
}, props), /*#__PURE__*/React.createElement(Axis, {
|
|
109
114
|
color: colorX,
|
|
110
|
-
rotation: [0, 0, 0]
|
|
115
|
+
rotation: [0, 0, 0],
|
|
116
|
+
scale: axisScale
|
|
111
117
|
}), /*#__PURE__*/React.createElement(Axis, {
|
|
112
118
|
color: colorY,
|
|
113
|
-
rotation: [0, 0, Math.PI / 2]
|
|
119
|
+
rotation: [0, 0, Math.PI / 2],
|
|
120
|
+
scale: axisScale
|
|
114
121
|
}), /*#__PURE__*/React.createElement(Axis, {
|
|
115
122
|
color: colorZ,
|
|
116
|
-
rotation: [0, -Math.PI / 2, 0]
|
|
123
|
+
rotation: [0, -Math.PI / 2, 0],
|
|
124
|
+
scale: axisScale
|
|
117
125
|
}), !hideAxisHeads && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(AxisHead, _extends({
|
|
118
126
|
arcStyle: colorX,
|
|
119
127
|
position: [1, 0, 0],
|