@react-three/drei 10.1.0 → 10.1.1
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/Decal.cjs.js +1 -1
- package/core/Decal.js +3 -4
- package/index.cjs.js +1 -1
- package/package.json +1 -1
package/core/Decal.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),o=require("@react-three/fiber"),n=require("three-stdlib");function a(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)}var c=a(e),s=i(t),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("three"),o=require("@react-three/fiber"),n=require("three-stdlib");function a(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)}var c=a(e),s=i(t),u=i(r);function l(e=[0,0,0]){return function(e){return Array.isArray(e)}(e)?e:e instanceof u.Vector3||e instanceof u.Euler?[e.x,e.y,e.z]:[e,e,e]}const p=s.forwardRef((function({debug:e,depthTest:t=!1,polygonOffsetFactor:r=-10,map:a,mesh:i,children:p,position:f,rotation:m,scale:y,...d},b){const h=s.useRef(null);s.useImperativeHandle(b,(()=>h.current));const g=s.useRef(null),w=s.useRef({position:new u.Vector3,rotation:new u.Euler,scale:new u.Vector3(1,1,1)});return s.useLayoutEffect((()=>{const e=(null==i?void 0:i.current)||h.current.parent,t=h.current;if(!(e instanceof u.Mesh))throw new Error('Decal must have a Mesh as parent or specify its "mesh" prop');if(e){o.applyProps(w.current,{position:f,scale:y});const r=e.matrixWorld.clone();if(e.matrixWorld.identity(),m&&"number"!=typeof m)o.applyProps(w.current,{rotation:m});else{const t=new u.Object3D;t.position.copy(w.current.position);const r=e.geometry.attributes.position.array;void 0===e.geometry.attributes.normal&&e.geometry.computeVertexNormals();const n=e.geometry.attributes.normal.array;let a=1/0,i=new u.Vector3;const c=t.position.x,s=t.position.y,l=t.position.z,p=r.length;let f=-1;for(let e=0;e<p;e+=3){const t=r[e]-c,o=r[e+1]-s,n=r[e+2]-l,i=t*t+o*o+n*n;i<a&&(a=i,f=e)}i.fromArray(n,f),t.lookAt(t.position.clone().add(i)),t.rotateZ(Math.PI),t.rotateY(Math.PI),"number"==typeof m&&t.rotateZ(m),o.applyProps(w.current,{rotation:t.rotation})}return g.current&&o.applyProps(g.current,w.current),t.geometry=new n.DecalGeometry(e,w.current.position,w.current.rotation,w.current.scale),e.matrixWorld=r,()=>{t.geometry.dispose()}}}),[i,...l(f),...l(y),...l(m)]),s.useLayoutEffect((()=>{g.current&&g.current.traverse((e=>e.raycast=()=>null))}),[e]),s.createElement("mesh",c.default({ref:h,"material-transparent":!0,"material-polygonOffset":!0,"material-polygonOffsetFactor":r,"material-depthTest":t,"material-map":a},d),p,e&&s.createElement("mesh",{ref:g},s.createElement("boxGeometry",null),s.createElement("meshNormalMaterial",{wireframe:!0}),s.createElement("axesHelper",null)))}));exports.Decal=p;
|
package/core/Decal.js
CHANGED
|
@@ -60,7 +60,6 @@ const Decal = /* @__PURE__ */React.forwardRef(function Decal({
|
|
|
60
60
|
if (parent.geometry.attributes.normal === undefined) parent.geometry.computeVertexNormals();
|
|
61
61
|
const normal = parent.geometry.attributes.normal.array;
|
|
62
62
|
let distance = Infinity;
|
|
63
|
-
new THREE.Vector3();
|
|
64
63
|
let closestNormal = new THREE.Vector3();
|
|
65
64
|
const ox = o.position.x;
|
|
66
65
|
const oy = o.position.y;
|
|
@@ -95,6 +94,9 @@ const Decal = /* @__PURE__ */React.forwardRef(function Decal({
|
|
|
95
94
|
rotation
|
|
96
95
|
});
|
|
97
96
|
}
|
|
97
|
+
if (helper.current) {
|
|
98
|
+
applyProps(helper.current, state.current);
|
|
99
|
+
}
|
|
98
100
|
target.geometry = new DecalGeometry(parent, state.current.position, state.current.rotation, state.current.scale);
|
|
99
101
|
// Reset parents matix-world
|
|
100
102
|
parent.matrixWorld = matrixWorld;
|
|
@@ -105,13 +107,10 @@ const Decal = /* @__PURE__ */React.forwardRef(function Decal({
|
|
|
105
107
|
}, [mesh, ...vecToArray(position), ...vecToArray(scale), ...vecToArray(rotation)]);
|
|
106
108
|
React.useLayoutEffect(() => {
|
|
107
109
|
if (helper.current) {
|
|
108
|
-
applyProps(helper.current, state.current);
|
|
109
110
|
// Prevent the helpers from blocking rays
|
|
110
111
|
helper.current.traverse(child => child.raycast = () => null);
|
|
111
112
|
}
|
|
112
113
|
}, [debug]);
|
|
113
|
-
|
|
114
|
-
// <meshStandardMaterial transparent polygonOffset polygonOffsetFactor={-10} {...props} />}
|
|
115
114
|
return /*#__PURE__*/React.createElement("mesh", _extends({
|
|
116
115
|
ref: ref,
|
|
117
116
|
"material-transparent": true,
|