@react-three/drei 9.78.1 → 9.79.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 (160) hide show
  1. package/README.md +11 -0
  2. package/core/AccumulativeShadows.cjs.js +1 -1
  3. package/core/AdaptiveDpr.cjs.js +1 -1
  4. package/core/AdaptiveEvents.cjs.js +1 -1
  5. package/core/ArcballControls.cjs.js +1 -1
  6. package/core/AsciiRenderer.cjs.js +1 -1
  7. package/core/BBAnchor.cjs.js +1 -1
  8. package/core/Backdrop.cjs.js +1 -1
  9. package/core/BakeShadows.cjs.js +1 -1
  10. package/core/Billboard.cjs.js +1 -1
  11. package/core/Bounds.cjs.js +1 -1
  12. package/core/CameraControls.cjs.js +1 -1
  13. package/core/CameraShake.cjs.js +1 -1
  14. package/core/CatmullRomLine.cjs.js +1 -1
  15. package/core/Caustics.cjs.js +1 -1
  16. package/core/Center.cjs.js +1 -1
  17. package/core/Clone.cjs.js +1 -1
  18. package/core/Cloud.cjs.js +1 -1
  19. package/core/ComputedAttribute.cjs.js +1 -1
  20. package/core/ContactShadows.cjs.js +1 -1
  21. package/core/CubeCamera.cjs.js +1 -1
  22. package/core/CubicBezierLine.cjs.js +1 -1
  23. package/core/CurveModifier.cjs.js +1 -1
  24. package/core/Decal.cjs.js +1 -1
  25. package/core/Detailed.cjs.js +1 -1
  26. package/core/DeviceOrientationControls.cjs.js +1 -1
  27. package/core/Edges.cjs.js +1 -1
  28. package/core/Effects.cjs.js +1 -1
  29. package/core/Environment.cjs.js +1 -1
  30. package/core/Example.cjs.js +1 -1
  31. package/core/FaceControls.cjs.js +1 -1
  32. package/core/FaceLandmarker.cjs.js +1 -1
  33. package/core/FaceLandmarker.js +1 -1
  34. package/core/Facemesh.cjs.js +1 -1
  35. package/core/FirstPersonControls.cjs.js +1 -1
  36. package/core/Float.cjs.js +1 -1
  37. package/core/FlyControls.cjs.js +1 -1
  38. package/core/GizmoHelper.cjs.js +1 -1
  39. package/core/GizmoViewcube.cjs.js +1 -1
  40. package/core/GizmoViewport.cjs.js +1 -1
  41. package/core/Gltf.cjs.js +1 -1
  42. package/core/GradientTexture.cjs.js +1 -1
  43. package/core/Grid.cjs.js +1 -1
  44. package/core/Hud.cjs.js +1 -1
  45. package/core/Image.cjs.js +1 -1
  46. package/core/Instances.cjs.js +1 -1
  47. package/core/Lightformer.cjs.js +1 -1
  48. package/core/Line.cjs.js +1 -1
  49. package/core/MapControls.cjs.js +1 -1
  50. package/core/MarchingCubes.cjs.js +1 -1
  51. package/core/Mask.cjs.js +1 -1
  52. package/core/MeshDiscardMaterial.cjs.js +1 -1
  53. package/core/MeshDistortMaterial.cjs.js +1 -1
  54. package/core/MeshPortalMaterial.cjs.js +1 -1
  55. package/core/MeshReflectorMaterial.cjs.js +1 -1
  56. package/core/MeshRefractionMaterial.cjs.js +1 -1
  57. package/core/MeshTransmissionMaterial.cjs.js +1 -1
  58. package/core/MeshWobbleMaterial.cjs.js +1 -1
  59. package/core/OrbitControls.cjs.js +1 -1
  60. package/core/OrthographicCamera.cjs.js +1 -1
  61. package/core/PerformanceMonitor.cjs.js +1 -1
  62. package/core/PerspectiveCamera.cjs.js +1 -1
  63. package/core/PointMaterial.cjs.js +1 -1
  64. package/core/PointerLockControls.cjs.js +1 -1
  65. package/core/Points.cjs.js +1 -1
  66. package/core/PositionalAudio.cjs.js +1 -1
  67. package/core/Preload.cjs.js +1 -1
  68. package/core/QuadraticBezierLine.cjs.js +1 -1
  69. package/core/Reflector.cjs.js +1 -1
  70. package/core/RenderTexture.cjs.js +1 -1
  71. package/core/Resize.cjs.js +1 -1
  72. package/core/RoundedBox.cjs.js +1 -1
  73. package/core/Sampler.cjs.js +1 -1
  74. package/core/ScreenQuad.cjs.js +1 -1
  75. package/core/ScreenSpace.cjs.js +1 -1
  76. package/core/Segments.cjs.js +1 -1
  77. package/core/Shadow.cjs.js +1 -1
  78. package/core/Sky.cjs.js +1 -1
  79. package/core/Sparkles.cjs.js +1 -1
  80. package/core/SpotLight.cjs.js +1 -1
  81. package/core/SpriteAnimator.cjs.js +1 -1
  82. package/core/Stage.cjs.js +1 -1
  83. package/core/Stars.cjs.js +1 -1
  84. package/core/Stats.cjs.js +1 -1
  85. package/core/StatsGl.cjs.js +1 -0
  86. package/core/StatsGl.d.ts +9 -0
  87. package/core/StatsGl.js +34 -0
  88. package/core/Svg.cjs.js +1 -1
  89. package/core/Text.cjs.js +1 -1
  90. package/core/Text3D.cjs.js +1 -1
  91. package/core/TrackballControls.cjs.js +1 -1
  92. package/core/Trail.cjs.js +1 -1
  93. package/core/TransformControls.cjs.js +1 -1
  94. package/core/Wireframe.cjs.js +1 -1
  95. package/core/index.cjs.js +1 -1
  96. package/core/index.d.ts +1 -0
  97. package/core/index.js +4 -2
  98. package/core/meshBounds.cjs.js +1 -1
  99. package/core/shaderMaterial.cjs.js +1 -1
  100. package/core/shapes.cjs.js +1 -1
  101. package/core/softShadows.cjs.js +1 -1
  102. package/core/useAnimations.cjs.js +1 -1
  103. package/core/useAspect.cjs.js +1 -1
  104. package/core/useBVH.cjs.js +1 -1
  105. package/core/useBoxProjectedEnv.cjs.js +1 -1
  106. package/core/useCamera.cjs.js +1 -1
  107. package/core/useContextBridge.cjs.js +1 -1
  108. package/core/useCubeCamera.cjs.js +1 -1
  109. package/core/useCubeTexture.cjs.js +1 -1
  110. package/core/useDepthBuffer.cjs.js +1 -1
  111. package/core/useDetectGPU.cjs.js +1 -1
  112. package/core/useEnvironment.cjs.js +1 -1
  113. package/core/useFBO.cjs.js +1 -1
  114. package/core/useFBX.cjs.js +1 -1
  115. package/core/useFont.cjs.js +1 -1
  116. package/core/useGLTF.cjs.js +1 -1
  117. package/core/useHelper.cjs.js +1 -1
  118. package/core/useIntersect.cjs.js +1 -1
  119. package/core/useKTX2.cjs.js +1 -1
  120. package/core/useMatcapTexture.cjs.js +1 -1
  121. package/core/useNormalTexture.cjs.js +1 -1
  122. package/core/useProgress.cjs.js +1 -1
  123. package/core/useProgress.js +1 -4
  124. package/core/useTexture.cjs.js +1 -1
  125. package/core/useTrailTexture.cjs.js +1 -1
  126. package/core/useVideoTexture.cjs.js +1 -1
  127. package/helpers/environment-assets.cjs.js +1 -1
  128. package/helpers/useEffectfulState.cjs.js +1 -1
  129. package/index.cjs.js +1 -1
  130. package/index.js +1 -0
  131. package/materials/BlurPass.cjs.js +1 -1
  132. package/materials/ConvolutionMaterial.cjs.js +1 -1
  133. package/materials/DiscardMaterial.cjs.js +1 -1
  134. package/materials/MeshReflectorMaterial.cjs.js +1 -1
  135. package/materials/MeshRefractionMaterial.cjs.js +1 -1
  136. package/materials/MeshRefractionMaterial.js +0 -1
  137. package/materials/SpotLightMaterial.cjs.js +1 -1
  138. package/materials/WireframeMaterial.cjs.js +1 -1
  139. package/native/index.cjs.js +1 -1
  140. package/native/index.js +2 -0
  141. package/package.json +3 -2
  142. package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
  143. package/web/CycleRaycast.cjs.js +1 -1
  144. package/web/Html.cjs.js +1 -1
  145. package/web/KeyboardControls.cjs.js +1 -1
  146. package/web/KeyboardControls.js +1 -5
  147. package/web/Loader.cjs.js +1 -1
  148. package/web/PresentationControls.cjs.js +1 -1
  149. package/web/ScrollControls.cjs.js +1 -1
  150. package/web/Select.cjs.js +1 -1
  151. package/web/Select.js +1 -4
  152. package/web/View.cjs.js +1 -1
  153. package/web/index.cjs.js +1 -1
  154. package/web/index.js +5 -3
  155. package/web/pivotControls/AxisArrow.cjs.js +1 -1
  156. package/web/pivotControls/AxisRotator.cjs.js +1 -1
  157. package/web/pivotControls/PlaneSlider.cjs.js +1 -1
  158. package/web/pivotControls/context.cjs.js +1 -1
  159. package/web/pivotControls/index.cjs.js +1 -1
  160. package/web/useCursor.cjs.js +1 -1
package/web/index.js CHANGED
@@ -57,6 +57,7 @@ export { IsObject, useTexture } from '../core/useTexture.js';
57
57
  export { useVideoTexture } from '../core/useVideoTexture.js';
58
58
  export { useFont } from '../core/useFont.js';
59
59
  export { Stats } from '../core/Stats.js';
60
+ export { StatsGl } from '../core/StatsGl.js';
60
61
  export { useDepthBuffer } from '../core/useDepthBuffer.js';
61
62
  export { useAspect } from '../core/useAspect.js';
62
63
  export { useCamera } from '../core/useCamera.js';
@@ -130,11 +131,11 @@ import 'react';
130
131
  import 'react-dom/client';
131
132
  import 'three';
132
133
  import '@react-three/fiber';
134
+ import 'zustand';
133
135
  import 'react-merge-refs';
134
136
  import 'maath';
135
137
  import '@react-spring/three';
136
138
  import '@use-gesture/react';
137
- import 'zustand';
138
139
  import 'zustand/middleware';
139
140
  import 'three-stdlib';
140
141
  import 'zustand/shallow';
@@ -149,17 +150,18 @@ import 'meshline';
149
150
  import 'lodash.pick';
150
151
  import 'lodash.omit';
151
152
  import 'camera-controls';
153
+ import '@mediapipe/tasks-vision';
152
154
  import 'stats.js';
153
155
  import '../helpers/useEffectfulState.js';
156
+ import 'stats-gl';
154
157
  import 'detect-gpu';
155
158
  import 'three-mesh-bvh';
156
- import '@mediapipe/tasks-vision';
157
159
  import '../materials/BlurPass.js';
158
160
  import '../materials/ConvolutionMaterial.js';
159
161
  import '../materials/MeshReflectorMaterial.js';
160
162
  import '../materials/MeshRefractionMaterial.js';
161
163
  import '../materials/DiscardMaterial.js';
162
- import '../materials/SpotLightMaterial.js';
163
164
  import '../helpers/environment-assets.js';
165
+ import '../materials/SpotLightMaterial.js';
164
166
  import '../materials/WireframeMaterial.js';
165
167
  import 'react-composer';
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("three"),r=require("@react-three/fiber"),n=require("../../core/Line.cjs.js"),o=require("../Html.cjs.js"),a=require("./context.cjs.js");function i(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("@babel/runtime/helpers/extends"),require("three-stdlib"),require("react-dom/client");var c=i(e),l=i(t);const s=new l.Vector3,u=new l.Vector3,d=(e,t,r,n)=>{const o=t.dot(t),a=t.dot(e)-t.dot(r),i=t.dot(n);if(0===i)return-a/o;s.copy(n).multiplyScalar(o/i).sub(t),u.copy(n).multiplyScalar(a/i).add(r).sub(e);return-s.dot(u)/s.dot(s)},p=new l.Vector3(0,1,0),m=new l.Matrix4;exports.AxisArrow=({direction:e,axis:t})=>{const{translation:i,translationLimits:s,annotations:u,annotationsClass:f,depthTest:x,scale:y,lineWidth:g,fixed:h,axisColors:b,hoveredColor:w,opacity:P,onDragStart:O,onDrag:v,onDragEnd:E,userData:j}=c.useContext(a.context),k=r.useThree((e=>e.controls)),C=c.useRef(null),M=c.useRef(null),q=c.useRef(null),L=c.useRef(0),[D,F]=c.useState(!1),R=c.useCallback((r=>{u&&(C.current.innerText=`${i.current[t].toFixed(2)}`,C.current.style.display="block"),r.stopPropagation();const n=(new l.Matrix4).extractRotation(M.current.matrixWorld),o=r.point.clone(),a=(new l.Vector3).setFromMatrixPosition(M.current.matrixWorld),c=e.clone().applyMatrix4(n).normalize();q.current={clickPoint:o,dir:c},L.current=i.current[t],O({component:"Arrow",axis:t,origin:a,directions:[c]}),k&&(k.enabled=!1),r.target.setPointerCapture(r.pointerId)}),[u,e,k,O,i,t]),T=c.useCallback((e=>{if(e.stopPropagation(),D||F(!0),q.current){const{clickPoint:r,dir:n}=q.current,[o,a]=(null==s?void 0:s[t])||[void 0,void 0];let c=d(r,n,e.ray.origin,e.ray.direction);void 0!==o&&(c=Math.max(c,o-L.current)),void 0!==a&&(c=Math.min(c,a-L.current)),i.current[t]=L.current+c,u&&(C.current.innerText=`${i.current[t].toFixed(2)}`),m.makeTranslation(n.x*c,n.y*c,n.z*c),v(m)}}),[u,v,D,i,s,t]),W=c.useCallback((e=>{u&&(C.current.style.display="none"),e.stopPropagation(),q.current=null,E(),k&&(k.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[u,k,E]),S=c.useCallback((e=>{e.stopPropagation(),F(!1)}),[]),{cylinderLength:V,coneWidth:z,coneLength:A,matrixL:U}=c.useMemo((()=>{const t=h?g/y*1.6:y/20,r=h?.2:y/5,n=h?1-r:y-r,o=(new l.Quaternion).setFromUnitVectors(p,e.clone().normalize());return{cylinderLength:n,coneWidth:t,coneLength:r,matrixL:(new l.Matrix4).makeRotationFromQuaternion(o)}}),[e,y,g,h]),G=D?w:b[t];return c.createElement("group",{ref:M},c.createElement("group",{matrix:U,matrixAutoUpdate:!1,onPointerDown:R,onPointerMove:T,onPointerUp:W,onPointerOut:S},u&&c.createElement(o.Html,{position:[0,-A,0]},c.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:f,ref:C})),c.createElement("mesh",{visible:!1,position:[0,(V+A)/2,0],userData:j},c.createElement("cylinderGeometry",{args:[1.4*z,1.4*z,V+A,8,1]})),c.createElement(n.Line,{transparent:!0,raycast:()=>null,depthTest:x,points:[0,0,0,0,V,0],lineWidth:g,color:G,opacity:P,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10,fog:!1}),c.createElement("mesh",{raycast:()=>null,position:[0,V+A/2,0],renderOrder:500},c.createElement("coneGeometry",{args:[z,A,24,1]}),c.createElement("meshBasicMaterial",{transparent:!0,depthTest:x,color:G,opacity:P,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))))},exports.calculateOffset=d;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("three"),r=require("@react-three/fiber"),n=require("../../core/Line.cjs.js"),o=require("../Html.cjs.js"),a=require("./context.cjs.js");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 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("@babel/runtime/helpers/extends"),require("three-stdlib"),require("react-dom/client");var c=i(e),l=i(t);const s=new l.Vector3,u=new l.Vector3,d=(e,t,r,n)=>{const o=t.dot(t),a=t.dot(e)-t.dot(r),i=t.dot(n);if(0===i)return-a/o;s.copy(n).multiplyScalar(o/i).sub(t),u.copy(n).multiplyScalar(a/i).add(r).sub(e);return-s.dot(u)/s.dot(s)},p=new l.Vector3(0,1,0),m=new l.Matrix4;exports.AxisArrow=({direction:e,axis:t})=>{const{translation:i,translationLimits:s,annotations:u,annotationsClass:f,depthTest:x,scale:y,lineWidth:g,fixed:h,axisColors:b,hoveredColor:P,opacity:w,onDragStart:O,onDrag:v,onDragEnd:j,userData:E}=c.useContext(a.context),M=r.useThree((e=>e.controls)),k=c.useRef(null),C=c.useRef(null),q=c.useRef(null),L=c.useRef(0),[D,F]=c.useState(!1),R=c.useCallback((r=>{u&&(k.current.innerText=`${i.current[t].toFixed(2)}`,k.current.style.display="block"),r.stopPropagation();const n=(new l.Matrix4).extractRotation(C.current.matrixWorld),o=r.point.clone(),a=(new l.Vector3).setFromMatrixPosition(C.current.matrixWorld),c=e.clone().applyMatrix4(n).normalize();q.current={clickPoint:o,dir:c},L.current=i.current[t],O({component:"Arrow",axis:t,origin:a,directions:[c]}),M&&(M.enabled=!1),r.target.setPointerCapture(r.pointerId)}),[u,e,M,O,i,t]),T=c.useCallback((e=>{if(e.stopPropagation(),D||F(!0),q.current){const{clickPoint:r,dir:n}=q.current,[o,a]=(null==s?void 0:s[t])||[void 0,void 0];let c=d(r,n,e.ray.origin,e.ray.direction);void 0!==o&&(c=Math.max(c,o-L.current)),void 0!==a&&(c=Math.min(c,a-L.current)),i.current[t]=L.current+c,u&&(k.current.innerText=`${i.current[t].toFixed(2)}`),m.makeTranslation(n.x*c,n.y*c,n.z*c),v(m)}}),[u,v,D,i,s,t]),W=c.useCallback((e=>{u&&(k.current.style.display="none"),e.stopPropagation(),q.current=null,j(),M&&(M.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[u,M,j]),S=c.useCallback((e=>{e.stopPropagation(),F(!1)}),[]),{cylinderLength:V,coneWidth:z,coneLength:A,matrixL:_}=c.useMemo((()=>{const t=h?g/y*1.6:y/20,r=h?.2:y/5,n=h?1-r:y-r,o=(new l.Quaternion).setFromUnitVectors(p,e.clone().normalize());return{cylinderLength:n,coneWidth:t,coneLength:r,matrixL:(new l.Matrix4).makeRotationFromQuaternion(o)}}),[e,y,g,h]),U=D?P:b[t];return c.createElement("group",{ref:C},c.createElement("group",{matrix:_,matrixAutoUpdate:!1,onPointerDown:R,onPointerMove:T,onPointerUp:W,onPointerOut:S},u&&c.createElement(o.Html,{position:[0,-A,0]},c.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:f,ref:k})),c.createElement("mesh",{visible:!1,position:[0,(V+A)/2,0],userData:E},c.createElement("cylinderGeometry",{args:[1.4*z,1.4*z,V+A,8,1]})),c.createElement(n.Line,{transparent:!0,raycast:()=>null,depthTest:x,points:[0,0,0,0,V,0],lineWidth:g,color:U,opacity:w,polygonOffset:!0,renderOrder:1,polygonOffsetFactor:-10,fog:!1}),c.createElement("mesh",{raycast:()=>null,position:[0,V+A/2,0],renderOrder:500},c.createElement("coneGeometry",{args:[z,A,24,1]}),c.createElement("meshBasicMaterial",{transparent:!0,depthTest:x,color:U,opacity:w,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))))},exports.calculateOffset=d;
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("three"),r=require("@react-three/fiber"),n=require("../../core/Line.cjs.js"),o=require("../Html.cjs.js"),a=require("lodash.clamp"),i=require("./context.cjs.js");function c(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("@babel/runtime/helpers/extends"),require("three-stdlib"),require("react-dom/client");var s=c(e),l=c(t);const u=new l.Vector3,d=new l.Vector3,p=e=>180*e/Math.PI,m=e=>{let t=((e,t)=>{let r=Math.floor(e/t);return r=r<0?r+1:r,e-r*t})(e,2*Math.PI);return Math.abs(t)<1e-6?0:(t<0&&(t+=2*Math.PI),t)},h=new l.Matrix4,x=new l.Vector3,P=new l.Ray,f=new l.Vector3;exports.AxisRotator=({dir1:e,dir2:t,axis:c})=>{const{rotationLimits:M,annotations:b,annotationsClass:g,depthTest:y,scale:w,lineWidth:C,fixed:v,axisColors:I,hoveredColor:j,opacity:k,onDragStart:q,onDrag:R,onDragEnd:O,userData:V}=s.useContext(i.context),F=r.useThree((e=>e.controls)),D=s.useRef(null),E=s.useRef(null),W=s.useRef(0),z=s.useRef(0),T=s.useRef(null),[A,L]=s.useState(!1),S=s.useCallback((e=>{b&&(D.current.innerText=`${p(z.current).toFixed(0)}º`,D.current.style.display="block"),e.stopPropagation();const t=e.point.clone(),r=(new l.Vector3).setFromMatrixPosition(E.current.matrixWorld),n=(new l.Vector3).setFromMatrixColumn(E.current.matrixWorld,0).normalize(),o=(new l.Vector3).setFromMatrixColumn(E.current.matrixWorld,1).normalize(),a=(new l.Vector3).setFromMatrixColumn(E.current.matrixWorld,2).normalize(),i=(new l.Plane).setFromNormalAndCoplanarPoint(a,r);T.current={clickPoint:t,origin:r,e1:n,e2:o,normal:a,plane:i},q({component:"Rotator",axis:c,origin:r,directions:[n,o,a]}),F&&(F.enabled=!1),e.target.setPointerCapture(e.pointerId)}),[b,F,q,c]),H=s.useCallback((e=>{if(e.stopPropagation(),A||L(!0),T.current){const{clickPoint:t,origin:r,e1:n,e2:o,normal:i,plane:s}=T.current,[l,g]=(null==M?void 0:M[c])||[void 0,void 0];P.copy(e.ray),P.intersectPlane(s,f),P.direction.negate(),P.intersectPlane(s,f);let y=((e,t,r,n,o)=>{u.copy(e).sub(r),d.copy(t).sub(r);const a=n.dot(n),i=o.dot(o),c=u.dot(n)/a,s=u.dot(o)/i,l=d.dot(n)/a,p=d.dot(o)/i,m=Math.atan2(s,c);return Math.atan2(p,l)-m})(t,f,r,n,o),w=p(y);e.shiftKey&&(w=10*Math.round(w/10),y=(e=>e*Math.PI/180)(w)),void 0!==l&&void 0!==g&&g-l<2*Math.PI?(y=m(y),y=y>Math.PI?y-2*Math.PI:y,y=a(y,l-W.current,g-W.current),z.current=W.current+y):(z.current=m(W.current+y),z.current=z.current>Math.PI?z.current-2*Math.PI:z.current),b&&(w=p(z.current),D.current.innerText=`${w.toFixed(0)}º`),h.makeRotationAxis(i,y),x.copy(r).applyMatrix4(h).sub(r).negate(),h.setPosition(x),R(h)}}),[b,R,A,M,c]),N=s.useCallback((e=>{b&&(D.current.style.display="none"),e.stopPropagation(),W.current=z.current,T.current=null,O(),F&&(F.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[b,F,O]),U=s.useCallback((e=>{e.stopPropagation(),L(!1)}),[]),$=s.useMemo((()=>{const r=e.clone().normalize(),n=t.clone().normalize();return(new l.Matrix4).makeBasis(r,n,r.clone().cross(n))}),[e,t]),B=v?.65:.65*w,K=s.useMemo((()=>{const e=[];for(let t=0;t<=32;t++){const r=t*(Math.PI/2)/32;e.push(new l.Vector3(Math.cos(r)*B,Math.sin(r)*B,0))}return e}),[B]);return s.createElement("group",{ref:E,onPointerDown:S,onPointerMove:H,onPointerUp:N,onPointerOut:U,matrix:$,matrixAutoUpdate:!1},b&&s.createElement(o.Html,{position:[B,B,0]},s.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:g,ref:D})),s.createElement(n.Line,{points:K,lineWidth:4*C,visible:!1,userData:V}),s.createElement(n.Line,{transparent:!0,raycast:()=>null,depthTest:y,points:K,lineWidth:C,color:A?j:I[c],opacity:k,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("three"),r=require("@react-three/fiber"),n=require("../../core/Line.cjs.js"),o=require("../Html.cjs.js"),a=require("lodash.clamp"),i=require("./context.cjs.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(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("@babel/runtime/helpers/extends"),require("three-stdlib"),require("react-dom/client");var l=s(e),u=s(t),d=c(a);const p=new u.Vector3,m=new u.Vector3,f=e=>180*e/Math.PI,h=e=>{let t=((e,t)=>{let r=Math.floor(e/t);return r=r<0?r+1:r,e-r*t})(e,2*Math.PI);return Math.abs(t)<1e-6?0:(t<0&&(t+=2*Math.PI),t)},x=new u.Matrix4,P=new u.Vector3,M=new u.Ray,b=new u.Vector3;exports.AxisRotator=({dir1:e,dir2:t,axis:a})=>{const{rotationLimits:c,annotations:s,annotationsClass:y,depthTest:g,scale:w,lineWidth:v,fixed:C,axisColors:j,hoveredColor:I,opacity:k,onDragStart:q,onDrag:O,onDragEnd:R,userData:V}=l.useContext(i.context),F=r.useThree((e=>e.controls)),D=l.useRef(null),E=l.useRef(null),W=l.useRef(0),z=l.useRef(0),T=l.useRef(null),[A,L]=l.useState(!1),_=l.useCallback((e=>{s&&(D.current.innerText=`${f(z.current).toFixed(0)}º`,D.current.style.display="block"),e.stopPropagation();const t=e.point.clone(),r=(new u.Vector3).setFromMatrixPosition(E.current.matrixWorld),n=(new u.Vector3).setFromMatrixColumn(E.current.matrixWorld,0).normalize(),o=(new u.Vector3).setFromMatrixColumn(E.current.matrixWorld,1).normalize(),i=(new u.Vector3).setFromMatrixColumn(E.current.matrixWorld,2).normalize(),c=(new u.Plane).setFromNormalAndCoplanarPoint(i,r);T.current={clickPoint:t,origin:r,e1:n,e2:o,normal:i,plane:c},q({component:"Rotator",axis:a,origin:r,directions:[n,o,i]}),F&&(F.enabled=!1),e.target.setPointerCapture(e.pointerId)}),[s,F,q,a]),S=l.useCallback((e=>{if(e.stopPropagation(),A||L(!0),T.current){const{clickPoint:t,origin:r,e1:n,e2:o,normal:i,plane:l}=T.current,[u,y]=(null==c?void 0:c[a])||[void 0,void 0];M.copy(e.ray),M.intersectPlane(l,b),M.direction.negate(),M.intersectPlane(l,b);let g=((e,t,r,n,o)=>{p.copy(e).sub(r),m.copy(t).sub(r);const a=n.dot(n),i=o.dot(o),c=p.dot(n)/a,s=p.dot(o)/i,l=m.dot(n)/a,u=m.dot(o)/i,d=Math.atan2(s,c);return Math.atan2(u,l)-d})(t,b,r,n,o),w=f(g);e.shiftKey&&(w=10*Math.round(w/10),g=(e=>e*Math.PI/180)(w)),void 0!==u&&void 0!==y&&y-u<2*Math.PI?(g=h(g),g=g>Math.PI?g-2*Math.PI:g,g=d.default(g,u-W.current,y-W.current),z.current=W.current+g):(z.current=h(W.current+g),z.current=z.current>Math.PI?z.current-2*Math.PI:z.current),s&&(w=f(z.current),D.current.innerText=`${w.toFixed(0)}º`),x.makeRotationAxis(i,g),P.copy(r).applyMatrix4(x).sub(r).negate(),x.setPosition(P),O(x)}}),[s,O,A,c,a]),H=l.useCallback((e=>{s&&(D.current.style.display="none"),e.stopPropagation(),W.current=z.current,T.current=null,R(),F&&(F.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[s,F,R]),N=l.useCallback((e=>{e.stopPropagation(),L(!1)}),[]),U=l.useMemo((()=>{const r=e.clone().normalize(),n=t.clone().normalize();return(new u.Matrix4).makeBasis(r,n,r.clone().cross(n))}),[e,t]),$=C?.65:.65*w,B=l.useMemo((()=>{const e=[];for(let t=0;t<=32;t++){const r=t*(Math.PI/2)/32;e.push(new u.Vector3(Math.cos(r)*$,Math.sin(r)*$,0))}return e}),[$]);return l.createElement("group",{ref:E,onPointerDown:_,onPointerMove:S,onPointerUp:H,onPointerOut:N,matrix:U,matrixAutoUpdate:!1},s&&l.createElement(o.Html,{position:[$,$,0]},l.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:y,ref:D})),l.createElement(n.Line,{points:B,lineWidth:4*v,visible:!1,userData:V}),l.createElement(n.Line,{transparent:!0,raycast:()=>null,depthTest:g,points:B,lineWidth:v,color:A?I:j[a],opacity:k,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))};
@@ -1 +1 @@
1
- "use strict";var e=require("react"),t=require("three"),r=require("@react-three/fiber"),n=require("../../core/Line.cjs.js"),o=require("../Html.cjs.js"),a=require("./context.cjs.js");function i(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("@babel/runtime/helpers/extends"),require("three-stdlib"),require("react-dom/client");var s=i(e),c=i(t);const l=new c.Ray,u=new c.Vector3,p=new c.Matrix4;exports.PlaneSlider=({dir1:e,dir2:t,axis:i})=>{const{translation:d,translationLimits:m,annotations:x,annotationsClass:b,depthTest:g,scale:h,lineWidth:f,fixed:y,axisColors:M,hoveredColor:C,opacity:P,onDragStart:w,onDrag:v,onDragEnd:j,userData:k}=s.useContext(a.context),F=r.useThree((e=>e.controls)),O=s.useRef(null),z=s.useRef(null),E=s.useRef(null),V=s.useRef(0),q=s.useRef(0),[D,R]=s.useState(!1),T=s.useCallback((e=>{x&&(O.current.innerText=`${d.current[(i+1)%3].toFixed(2)}, ${d.current[(i+2)%3].toFixed(2)}`,O.current.style.display="block"),e.stopPropagation();const t=e.point.clone(),r=(new c.Vector3).setFromMatrixPosition(z.current.matrixWorld),n=(new c.Vector3).setFromMatrixColumn(z.current.matrixWorld,0).normalize(),o=(new c.Vector3).setFromMatrixColumn(z.current.matrixWorld,1).normalize(),a=(new c.Vector3).setFromMatrixColumn(z.current.matrixWorld,2).normalize(),s=(new c.Plane).setFromNormalAndCoplanarPoint(a,r);E.current={clickPoint:t,e1:n,e2:o,plane:s},V.current=d.current[(i+1)%3],q.current=d.current[(i+2)%3],w({component:"Slider",axis:i,origin:r,directions:[n,o,a]}),F&&(F.enabled=!1),e.target.setPointerCapture(e.pointerId)}),[x,F,w,i]),S=s.useCallback((e=>{if(e.stopPropagation(),D||R(!0),E.current){const{clickPoint:t,e1:r,e2:n,plane:o}=E.current,[a,s]=(null==m?void 0:m[(i+1)%3])||[void 0,void 0],[c,b]=(null==m?void 0:m[(i+2)%3])||[void 0,void 0];l.copy(e.ray),l.intersectPlane(o,u),l.direction.negate(),l.intersectPlane(o,u),u.sub(t);let[g,h]=((e,t,r)=>{const n=Math.abs(e.x)>=Math.abs(e.y)&&Math.abs(e.x)>=Math.abs(e.z)?0:Math.abs(e.y)>=Math.abs(e.x)&&Math.abs(e.y)>=Math.abs(e.z)?1:2,o=[0,1,2].sort(((e,r)=>Math.abs(t.getComponent(r))-Math.abs(t.getComponent(e)))),a=n===o[0]?o[1]:o[0],i=e.getComponent(n),s=e.getComponent(a),c=t.getComponent(n),l=t.getComponent(a),u=r.getComponent(n),p=(r.getComponent(a)-u*(s/i))/(l-c*(s/i));return[(u-p*c)/i,p]})(r,n,u);void 0!==a&&(g=Math.max(g,a-V.current)),void 0!==s&&(g=Math.min(g,s-V.current)),void 0!==c&&(h=Math.max(h,c-q.current)),void 0!==b&&(h=Math.min(h,b-q.current)),d.current[(i+1)%3]=V.current+g,d.current[(i+2)%3]=q.current+h,x&&(O.current.innerText=`${d.current[(i+1)%3].toFixed(2)}, ${d.current[(i+2)%3].toFixed(2)}`),p.makeTranslation(g*r.x+h*n.x,g*r.y+h*n.y,g*r.z+h*n.z),v(p)}}),[x,v,D,d,m,i]),W=s.useCallback((e=>{x&&(O.current.style.display="none"),e.stopPropagation(),E.current=null,j(),F&&(F.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[x,F,j]),$=s.useCallback((e=>{e.stopPropagation(),R(!1)}),[]),L=s.useMemo((()=>{const r=e.clone().normalize(),n=t.clone().normalize();return(new c.Matrix4).makeBasis(r,n,r.clone().cross(n))}),[e,t]),A=y?1/7:h/7,B=y?.225:.225*h,H=D?C:M[i],I=s.useMemo((()=>[new c.Vector3(0,0,0),new c.Vector3(0,B,0),new c.Vector3(B,B,0),new c.Vector3(B,0,0),new c.Vector3(0,0,0)]),[B]);return s.createElement("group",{ref:z,matrix:L,matrixAutoUpdate:!1},x&&s.createElement(o.Html,{position:[0,0,0]},s.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:b,ref:O})),s.createElement("group",{position:[1.7*A,1.7*A,0]},s.createElement("mesh",{visible:!0,onPointerDown:T,onPointerMove:S,onPointerUp:W,onPointerOut:$,scale:B,userData:k},s.createElement("planeGeometry",null),s.createElement("meshBasicMaterial",{transparent:!0,depthTest:g,color:H,polygonOffset:!0,polygonOffsetFactor:-10,side:c.DoubleSide,fog:!1})),s.createElement(n.Line,{position:[-B/2,-B/2,0],transparent:!0,depthTest:g,points:I,lineWidth:f,color:H,opacity:P,polygonOffset:!0,polygonOffsetFactor:-10,userData:k,fog:!1})))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("three"),r=require("@react-three/fiber"),n=require("../../core/Line.cjs.js"),o=require("../Html.cjs.js"),a=require("./context.cjs.js");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 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("@babel/runtime/helpers/extends"),require("three-stdlib"),require("react-dom/client");var s=i(e),c=i(t);const l=new c.Ray,u=new c.Vector3,p=new c.Matrix4;exports.PlaneSlider=({dir1:e,dir2:t,axis:i})=>{const{translation:d,translationLimits:m,annotations:x,annotationsClass:b,depthTest:g,scale:f,lineWidth:h,fixed:M,axisColors:y,hoveredColor:C,opacity:P,onDragStart:v,onDrag:w,onDragEnd:j,userData:O}=s.useContext(a.context),k=r.useThree((e=>e.controls)),F=s.useRef(null),z=s.useRef(null),E=s.useRef(null),V=s.useRef(0),q=s.useRef(0),[D,R]=s.useState(!1),T=s.useCallback((e=>{x&&(F.current.innerText=`${d.current[(i+1)%3].toFixed(2)}, ${d.current[(i+2)%3].toFixed(2)}`,F.current.style.display="block"),e.stopPropagation();const t=e.point.clone(),r=(new c.Vector3).setFromMatrixPosition(z.current.matrixWorld),n=(new c.Vector3).setFromMatrixColumn(z.current.matrixWorld,0).normalize(),o=(new c.Vector3).setFromMatrixColumn(z.current.matrixWorld,1).normalize(),a=(new c.Vector3).setFromMatrixColumn(z.current.matrixWorld,2).normalize(),s=(new c.Plane).setFromNormalAndCoplanarPoint(a,r);E.current={clickPoint:t,e1:n,e2:o,plane:s},V.current=d.current[(i+1)%3],q.current=d.current[(i+2)%3],v({component:"Slider",axis:i,origin:r,directions:[n,o,a]}),k&&(k.enabled=!1),e.target.setPointerCapture(e.pointerId)}),[x,k,v,i]),S=s.useCallback((e=>{if(e.stopPropagation(),D||R(!0),E.current){const{clickPoint:t,e1:r,e2:n,plane:o}=E.current,[a,s]=(null==m?void 0:m[(i+1)%3])||[void 0,void 0],[c,b]=(null==m?void 0:m[(i+2)%3])||[void 0,void 0];l.copy(e.ray),l.intersectPlane(o,u),l.direction.negate(),l.intersectPlane(o,u),u.sub(t);let[g,f]=((e,t,r)=>{const n=Math.abs(e.x)>=Math.abs(e.y)&&Math.abs(e.x)>=Math.abs(e.z)?0:Math.abs(e.y)>=Math.abs(e.x)&&Math.abs(e.y)>=Math.abs(e.z)?1:2,o=[0,1,2].sort(((e,r)=>Math.abs(t.getComponent(r))-Math.abs(t.getComponent(e)))),a=n===o[0]?o[1]:o[0],i=e.getComponent(n),s=e.getComponent(a),c=t.getComponent(n),l=t.getComponent(a),u=r.getComponent(n),p=(r.getComponent(a)-u*(s/i))/(l-c*(s/i));return[(u-p*c)/i,p]})(r,n,u);void 0!==a&&(g=Math.max(g,a-V.current)),void 0!==s&&(g=Math.min(g,s-V.current)),void 0!==c&&(f=Math.max(f,c-q.current)),void 0!==b&&(f=Math.min(f,b-q.current)),d.current[(i+1)%3]=V.current+g,d.current[(i+2)%3]=q.current+f,x&&(F.current.innerText=`${d.current[(i+1)%3].toFixed(2)}, ${d.current[(i+2)%3].toFixed(2)}`),p.makeTranslation(g*r.x+f*n.x,g*r.y+f*n.y,g*r.z+f*n.z),w(p)}}),[x,w,D,d,m,i]),W=s.useCallback((e=>{x&&(F.current.style.display="none"),e.stopPropagation(),E.current=null,j(),k&&(k.enabled=!0),e.target.releasePointerCapture(e.pointerId)}),[x,k,j]),$=s.useCallback((e=>{e.stopPropagation(),R(!1)}),[]),_=s.useMemo((()=>{const r=e.clone().normalize(),n=t.clone().normalize();return(new c.Matrix4).makeBasis(r,n,r.clone().cross(n))}),[e,t]),L=M?1/7:f/7,A=M?.225:.225*f,B=D?C:y[i],H=s.useMemo((()=>[new c.Vector3(0,0,0),new c.Vector3(0,A,0),new c.Vector3(A,A,0),new c.Vector3(A,0,0),new c.Vector3(0,0,0)]),[A]);return s.createElement("group",{ref:z,matrix:_,matrixAutoUpdate:!1},x&&s.createElement(o.Html,{position:[0,0,0]},s.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:b,ref:F})),s.createElement("group",{position:[1.7*L,1.7*L,0]},s.createElement("mesh",{visible:!0,onPointerDown:T,onPointerMove:S,onPointerUp:W,onPointerOut:$,scale:A,userData:O},s.createElement("planeGeometry",null),s.createElement("meshBasicMaterial",{transparent:!0,depthTest:g,color:B,polygonOffset:!0,polygonOffsetFactor:-10,side:c.DoubleSide,fog:!1})),s.createElement(n.Line,{position:[-A/2,-A/2,0],transparent:!0,depthTest:g,points:H,lineWidth:h,color:B,opacity:P,polygonOffset:!0,polygonOffsetFactor:-10,userData:O,fog:!1})))};
@@ -1 +1 @@
1
- "use strict";function e(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var c=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,c.get?c:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}const t=e(require("react")).createContext(null);exports.context=t;
1
+ "use strict";function e(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)}Object.defineProperty(exports,"__esModule",{value:!0});const t=e(require("react")).createContext(null);exports.context=t;
@@ -1 +1 @@
1
- "use strict";var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),i=require("@react-three/fiber"),o=require("./AxisArrow.cjs.js"),n=require("./PlaneSlider.cjs.js"),a=require("./AxisRotator.cjs.js"),c=require("./context.cjs.js");function s(e){var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("../../core/Line.cjs.js"),require("three-stdlib"),require("../Html.cjs.js"),require("react-dom/client"),require("lodash.clamp");var l=s(r),u=s(t);const d=new l.Vector3,x=new l.Vector3,m=new l.Vector3,p=(e,r,t,i=1)=>{const o=d.set(e.x/t.width*2-1,-e.y/t.height*2+1,i);return o.unproject(r),o},f=(e,r,t,i)=>{const o=((e,r,t)=>{const i=t.width/2,o=t.height/2;r.updateMatrixWorld(!1);const n=e.project(r);return n.x=n.x*i+i,n.y=-n.y*o+o,n})(m.copy(e),t,i);let n=0;for(let a=0;a<2;++a){const c=x.copy(o).setComponent(a,o.getComponent(a)+r),s=p(c,t,i,c.z);n=Math.max(n,e.distanceTo(s))}return n},y=new l.Matrix4,w=new l.Matrix4,g=new l.Matrix4,v=new l.Matrix4,h=new l.Matrix4,E=new l.Matrix4,j=new l.Matrix4,b=new l.Matrix4,A=new l.Box3,M=new l.Box3,q=new l.Vector3,V=new l.Vector3,R=new l.Vector3,S=new l.Vector3,C=new l.Vector3(1,0,0),D=new l.Vector3(0,1,0),P=new l.Vector3(0,0,1),W=u.forwardRef((({matrix:r,onDragStart:t,onDrag:s,onDragEnd:d,autoTransform:x=!0,anchor:m,disableAxes:p=!1,disableSliders:W=!1,disableRotations:L=!1,activeAxes:B=[!0,!0,!0],offset:O=[0,0,0],rotation:T=[0,0,0],scale:z=1,lineWidth:k=4,fixed:F=!1,translationLimits:H,rotationLimits:I,depthTest:U=!0,axisColors:G=["#ff2060","#20df80","#2080ff"],hoveredColor:J="#ffff40",annotations:K=!1,annotationsClass:N,opacity:Q=1,visible:X=!0,userData:Y,children:Z,...$},_)=>{const ee=i.useThree((e=>e.invalidate)),re=u.useRef(null),te=u.useRef(null),ie=u.useRef(null),oe=u.useRef(null),ne=u.useRef([0,0,0]);u.useLayoutEffect((()=>{m&&(oe.current.updateWorldMatrix(!0,!0),v.copy(oe.current.matrixWorld).invert(),A.makeEmpty(),oe.current.traverse((e=>{e.geometry&&(e.geometry.boundingBox||e.geometry.computeBoundingBox(),E.copy(e.matrixWorld).premultiply(v),M.copy(e.geometry.boundingBox),M.applyMatrix4(E),A.union(M))})),q.copy(A.max).add(A.min).multiplyScalar(.5),V.copy(A.max).sub(A.min).multiplyScalar(.5),R.copy(V).multiply(new l.Vector3(...m)).add(q),S.set(...O).add(R),ie.current.position.copy(S),ee())}));const ae=u.useMemo((()=>({onDragStart:e=>{y.copy(te.current.matrix),w.copy(te.current.matrixWorld),t&&t(e),ee()},onDrag:e=>{g.copy(re.current.matrixWorld),v.copy(g).invert(),h.copy(w).premultiply(e),E.copy(h).premultiply(v),j.copy(y).invert(),b.copy(E).multiply(j),x&&te.current.matrix.copy(E),s&&s(E,b,h,e),ee()},onDragEnd:()=>{d&&d(),ee()},translation:ne,translationLimits:H,rotationLimits:I,axisColors:G,hoveredColor:J,opacity:Q,scale:z,lineWidth:k,fixed:F,depthTest:U,userData:Y,annotations:K,annotationsClass:N})),[t,s,d,ne,H,I,U,z,k,F,...G,J,Q,Y,x,K,N]),ce=new l.Vector3;return i.useFrame((e=>{if(F){const o=f(ie.current.getWorldPosition(ce),z,e.camera,e.size);var r,t,i;if(ie.current)(null==(r=ie.current)?void 0:r.scale.x)===o&&(null==(t=ie.current)?void 0:t.scale.y)===o&&(null==(i=ie.current)?void 0:i.scale.z)===o||(ie.current.scale.setScalar(o),e.invalidate())}})),u.useImperativeHandle(_,(()=>te.current),[]),u.useLayoutEffect((()=>{r&&r instanceof l.Matrix4&&(te.current.matrix=r)}),[r]),u.createElement(c.context.Provider,{value:ae},u.createElement("group",{ref:re},u.createElement("group",e({ref:te,matrix:r,matrixAutoUpdate:!1},$),u.createElement("group",{visible:X,ref:ie,position:O,rotation:T},!p&&B[0]&&u.createElement(o.AxisArrow,{axis:0,direction:C}),!p&&B[1]&&u.createElement(o.AxisArrow,{axis:1,direction:D}),!p&&B[2]&&u.createElement(o.AxisArrow,{axis:2,direction:P}),!W&&B[0]&&B[1]&&u.createElement(n.PlaneSlider,{axis:2,dir1:C,dir2:D}),!W&&B[0]&&B[2]&&u.createElement(n.PlaneSlider,{axis:1,dir1:P,dir2:C}),!W&&B[2]&&B[1]&&u.createElement(n.PlaneSlider,{axis:0,dir1:D,dir2:P}),!L&&B[0]&&B[1]&&u.createElement(a.AxisRotator,{axis:2,dir1:C,dir2:D}),!L&&B[0]&&B[2]&&u.createElement(a.AxisRotator,{axis:1,dir1:P,dir2:C}),!L&&B[2]&&B[1]&&u.createElement(a.AxisRotator,{axis:0,dir1:D,dir2:P})),u.createElement("group",{ref:oe},Z))))}));exports.PivotControls=W,exports.calculateScaleFactor=f;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),i=require("@react-three/fiber"),o=require("./AxisArrow.cjs.js"),n=require("./PlaneSlider.cjs.js"),a=require("./AxisRotator.cjs.js"),c=require("./context.cjs.js");function s(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 i=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,i.get?i:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("../../core/Line.cjs.js"),require("three-stdlib"),require("../Html.cjs.js"),require("react-dom/client"),require("lodash.clamp");var u=s(e),d=l(r),x=l(t);const p=new d.Vector3,m=new d.Vector3,f=new d.Vector3,y=(e,r,t,i=1)=>{const o=p.set(e.x/t.width*2-1,-e.y/t.height*2+1,i);return o.unproject(r),o},w=(e,r,t,i)=>{const o=((e,r,t)=>{const i=t.width/2,o=t.height/2;r.updateMatrixWorld(!1);const n=e.project(r);return n.x=n.x*i+i,n.y=-n.y*o+o,n})(f.copy(e),t,i);let n=0;for(let a=0;a<2;++a){const c=m.copy(o).setComponent(a,o.getComponent(a)+r),s=y(c,t,i,c.z);n=Math.max(n,e.distanceTo(s))}return n},g=new d.Matrix4,v=new d.Matrix4,h=new d.Matrix4,j=new d.Matrix4,b=new d.Matrix4,E=new d.Matrix4,M=new d.Matrix4,A=new d.Matrix4,q=new d.Box3,V=new d.Box3,R=new d.Vector3,S=new d.Vector3,P=new d.Vector3,C=new d.Vector3,D=new d.Vector3(1,0,0),W=new d.Vector3(0,1,0),L=new d.Vector3(0,0,1),O=x.forwardRef((({matrix:e,onDragStart:r,onDrag:t,onDragEnd:s,autoTransform:l=!0,anchor:p,disableAxes:m=!1,disableSliders:f=!1,disableRotations:y=!1,activeAxes:O=[!0,!0,!0],offset:B=[0,0,0],rotation:T=[0,0,0],scale:z=1,lineWidth:_=4,fixed:k=!1,translationLimits:F,rotationLimits:H,depthTest:I=!0,axisColors:U=["#ff2060","#20df80","#2080ff"],hoveredColor:G="#ffff40",annotations:J=!1,annotationsClass:K,opacity:N=1,visible:Q=!0,userData:X,children:Y,...Z},$)=>{const ee=i.useThree((e=>e.invalidate)),re=x.useRef(null),te=x.useRef(null),ie=x.useRef(null),oe=x.useRef(null),ne=x.useRef([0,0,0]);x.useLayoutEffect((()=>{p&&(oe.current.updateWorldMatrix(!0,!0),j.copy(oe.current.matrixWorld).invert(),q.makeEmpty(),oe.current.traverse((e=>{e.geometry&&(e.geometry.boundingBox||e.geometry.computeBoundingBox(),E.copy(e.matrixWorld).premultiply(j),V.copy(e.geometry.boundingBox),V.applyMatrix4(E),q.union(V))})),R.copy(q.max).add(q.min).multiplyScalar(.5),S.copy(q.max).sub(q.min).multiplyScalar(.5),P.copy(S).multiply(new d.Vector3(...p)).add(R),C.set(...B).add(P),ie.current.position.copy(C),ee())}));const ae=x.useMemo((()=>({onDragStart:e=>{g.copy(te.current.matrix),v.copy(te.current.matrixWorld),r&&r(e),ee()},onDrag:e=>{h.copy(re.current.matrixWorld),j.copy(h).invert(),b.copy(v).premultiply(e),E.copy(b).premultiply(j),M.copy(g).invert(),A.copy(E).multiply(M),l&&te.current.matrix.copy(E),t&&t(E,A,b,e),ee()},onDragEnd:()=>{s&&s(),ee()},translation:ne,translationLimits:F,rotationLimits:H,axisColors:U,hoveredColor:G,opacity:N,scale:z,lineWidth:_,fixed:k,depthTest:I,userData:X,annotations:J,annotationsClass:K})),[r,t,s,ne,F,H,I,z,_,k,...U,G,N,X,l,J,K]),ce=new d.Vector3;return i.useFrame((e=>{if(k){const o=w(ie.current.getWorldPosition(ce),z,e.camera,e.size);var r,t,i;if(ie.current)(null==(r=ie.current)?void 0:r.scale.x)===o&&(null==(t=ie.current)?void 0:t.scale.y)===o&&(null==(i=ie.current)?void 0:i.scale.z)===o||(ie.current.scale.setScalar(o),e.invalidate())}})),x.useImperativeHandle($,(()=>te.current),[]),x.useLayoutEffect((()=>{e&&e instanceof d.Matrix4&&(te.current.matrix=e)}),[e]),x.createElement(c.context.Provider,{value:ae},x.createElement("group",{ref:re},x.createElement("group",u.default({ref:te,matrix:e,matrixAutoUpdate:!1},Z),x.createElement("group",{visible:Q,ref:ie,position:B,rotation:T},!m&&O[0]&&x.createElement(o.AxisArrow,{axis:0,direction:D}),!m&&O[1]&&x.createElement(o.AxisArrow,{axis:1,direction:W}),!m&&O[2]&&x.createElement(o.AxisArrow,{axis:2,direction:L}),!f&&O[0]&&O[1]&&x.createElement(n.PlaneSlider,{axis:2,dir1:D,dir2:W}),!f&&O[0]&&O[2]&&x.createElement(n.PlaneSlider,{axis:1,dir1:L,dir2:D}),!f&&O[2]&&O[1]&&x.createElement(n.PlaneSlider,{axis:0,dir1:W,dir2:L}),!y&&O[0]&&O[1]&&x.createElement(a.AxisRotator,{axis:2,dir1:D,dir2:W}),!y&&O[0]&&O[2]&&x.createElement(a.AxisRotator,{axis:1,dir1:L,dir2:D}),!y&&O[2]&&O[1]&&x.createElement(a.AxisRotator,{axis:0,dir1:W,dir2:L})),x.createElement("group",{ref:oe},Y))))}));exports.PivotControls=O,exports.calculateScaleFactor=w;
@@ -1 +1 @@
1
- "use strict";function e(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var u=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,u.get?u:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var t=e(require("react"));exports.useCursor=function(e,r="pointer",u="auto"){t.useEffect((()=>{if(e)return document.body.style.cursor=r,()=>{document.body.style.cursor=u}}),[e])};
1
+ "use strict";function e(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}Object.defineProperty(exports,"__esModule",{value:!0});var r=e(require("react"));exports.useCursor=function(e,t="pointer",u="auto"){r.useEffect((()=>{if(e)return document.body.style.cursor=t,()=>{document.body.style.cursor=u}}),[e])};