@tomorrowevening/hermes 0.1.41 → 0.1.43
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/dist/core/Application.cjs +1 -0
- package/dist/core/remote/BaseRemote.cjs +1 -0
- package/dist/core/remote/RemoteTheatre.cjs +1 -0
- package/dist/core/remote/RemoteTheatre.js +31 -29
- package/dist/core/remote/RemoteThree.cjs +1 -0
- package/dist/core/remote/RemoteThree.js +4 -3
- package/dist/core/types.cjs +1 -0
- package/dist/editor/Editor.cjs +1 -0
- package/dist/editor/HermesApp.cjs +1 -0
- package/dist/editor/ThreeEditor.cjs +1 -0
- package/dist/editor/components/Draggable.cjs +1 -0
- package/dist/editor/components/DraggableItem.cjs +1 -0
- package/dist/editor/components/Dropdown.cjs +1 -0
- package/dist/editor/components/DropdownItem.cjs +1 -0
- package/dist/editor/components/NavButton.cjs +1 -0
- package/dist/editor/components/content.cjs +1 -0
- package/dist/editor/components/icons/CloseIcon.cjs +1 -0
- package/dist/editor/components/icons/DragIcon.cjs +3 -0
- package/dist/editor/index.cjs +1 -0
- package/dist/editor/index.js +65 -0
- package/dist/editor/multiView/CameraWindow.cjs +1 -0
- package/dist/editor/multiView/DepthNodeMaterial.cjs +1 -0
- package/dist/editor/multiView/InfiniteGridHelper.cjs +1 -0
- package/dist/editor/multiView/InfiniteGridHelperGPU.cjs +1 -0
- package/dist/editor/multiView/InfiniteGridMaterial.cjs +78 -0
- package/dist/editor/multiView/InfiniteGridNodeMaterial.cjs +1 -0
- package/dist/editor/multiView/MultiView.cjs +1 -0
- package/dist/editor/multiView/Toggle.cjs +1 -0
- package/dist/editor/multiView/UVMaterial.cjs +41 -0
- package/dist/editor/multiView/UVNodeMaterial.cjs +1 -0
- package/dist/editor/sidePanel/Accordion.cjs +1 -0
- package/dist/editor/sidePanel/ChildObject.cjs +1 -0
- package/dist/editor/sidePanel/ContainerObject.cjs +1 -0
- package/dist/editor/sidePanel/DebugData.cjs +1 -0
- package/dist/editor/sidePanel/SidePanel.cjs +1 -0
- package/dist/editor/sidePanel/inspector/InspectGrid3.cjs +1 -0
- package/dist/editor/sidePanel/inspector/InspectGrid4.cjs +1 -0
- package/dist/editor/sidePanel/inspector/InspectImage.cjs +1 -0
- package/dist/editor/sidePanel/inspector/InspectNumber.cjs +1 -0
- package/dist/editor/sidePanel/inspector/InspectVector2.cjs +1 -0
- package/dist/editor/sidePanel/inspector/Inspector.cjs +1 -0
- package/dist/editor/sidePanel/inspector/InspectorField.cjs +2 -0
- package/dist/editor/sidePanel/inspector/InspectorGroup.cjs +1 -0
- package/dist/editor/sidePanel/inspector/utils/DragNumber.cjs +1 -0
- package/dist/editor/sidePanel/inspector/utils/InspectAnimation.cjs +1 -0
- package/dist/editor/sidePanel/inspector/utils/InspectCamera.cjs +1 -0
- package/dist/editor/sidePanel/inspector/utils/InspectLight.cjs +1 -0
- package/dist/editor/sidePanel/inspector/utils/InspectMaterial.cjs +1 -0
- package/dist/editor/sidePanel/inspector/utils/InspectTransform.cjs +1 -0
- package/dist/editor/sidePanel/utils.cjs +1 -0
- package/dist/editor/sidePanel/utils.js +95 -88
- package/dist/editor/tools/Transform.cjs +1 -0
- package/dist/editor/tools/splineEditor/Spline.cjs +1 -0
- package/dist/editor/tools/splineEditor/index.cjs +1 -0
- package/dist/editor/utils.cjs +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.js +67 -119
- package/dist/utils/ImageSequenceCapturer.cjs +13 -0
- package/dist/utils/detectSettings.cjs +1 -0
- package/dist/utils/math.cjs +1 -0
- package/dist/utils/post.cjs +1 -0
- package/dist/utils/theatre.cjs +1 -0
- package/dist/utils/three.cjs +1 -0
- package/dist/utils/threeDispose.cjs +1 -0
- package/dist/utils/threeDispose.js +40 -0
- package/dist/utils/threeEditorDebug.cjs +1 -0
- package/dist/utils/threeEditorDebug.js +69 -0
- package/dist/webworkers/EventHandling.cjs +1 -0
- package/dist/webworkers/ProxyManager.cjs +1 -0
- package/package.json +23 -7
- package/types/editor/index.d.ts +26 -0
- package/types/editor/sidePanel/utils.d.ts +7 -0
- package/types/index.d.ts +0 -24
- package/types/utils/threeDispose.d.ts +4 -0
- package/types/utils/threeEditorDebug.d.ts +17 -0
- package/dist/ThreeEditor-jkqfXLb4.js +0 -111
- package/dist/ThreeEditor-lbW0auGy.css +0 -1
- package/dist/hermes.cjs.js +0 -133
- package/dist/images/android-chrome-192x192.png +0 -0
- package/dist/images/android-chrome-512x512.png +0 -0
- package/dist/images/apple-touch-icon.png +0 -0
- package/dist/images/favicon-16x16.png +0 -0
- package/dist/images/favicon-32x32.png +0 -0
- package/dist/images/favicon.ico +0 -0
- package/dist/images/milkyWay/dark-s_nx.jpg +0 -0
- package/dist/images/milkyWay/dark-s_ny.jpg +0 -0
- package/dist/images/milkyWay/dark-s_nz.jpg +0 -0
- package/dist/images/milkyWay/dark-s_px.jpg +0 -0
- package/dist/images/milkyWay/dark-s_py.jpg +0 -0
- package/dist/images/milkyWay/dark-s_pz.jpg +0 -0
- package/dist/images/site.webmanifest +0 -1
- package/dist/images/uv_grid_opengl.jpg +0 -0
- package/dist/index-C92ji5gy.css +0 -1
- package/dist/index-DZmiM5y-.js +0 -10226
- package/dist/index.html +0 -17
- package/dist/json/animation.json +0 -235
- package/dist/models/Flair.fbx +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const a=require("react/jsx-runtime"),m=require("react"),g=require("./utils/DragNumber.cjs"),s=require("../../../core/types.cjs"),r=require("../../utils.cjs");function c(e){const u=m.useRef(null),d=m.useRef(null),[i,l]=m.useState(e.value);return g({label:e.labelRef,input:u,sliderRef:d,defaultValue:i,min:e.min,max:e.max,step:e.step,onChange:n=>{l(n),e.onChange!==void 0&&e.onChange(e.prop,n)}}),a.jsxs(a.Fragment,{children:[e.type==="number"&&a.jsx("input",{alt:e.alt,className:e.className,ref:u,type:"number",value:i,min:e.min,max:e.max,step:e.step,disabled:e.disabled,name:r.randomID(),onChange:n=>{if(l(n.target.value),n.target.value.length===0)return;const t=Number(n.target.value);isNaN(t)||e.onChange!==void 0&&e.onChange(e.prop,t)}}),e.type==="range"&&a.jsxs(a.Fragment,{children:[a.jsx("input",{type:"text",value:i.toString(),disabled:e.disabled,ref:u,className:"min",name:r.randomID(),onChange:n=>{if(n.target.value.length===0)return;const t=Number(n.target.value);isNaN(t)||(l(t),e.onChange!==void 0&&e.onChange(e.prop,t))}}),a.jsx("input",{disabled:e.disabled,type:"range",value:i,min:e.min,max:e.max,step:e.step,ref:d,name:r.randomID(),onChange:s.noop})]})]})}module.exports=c;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const a=require("react/jsx-runtime"),u=require("react"),m=require("../../../utils/math.cjs"),f=require("./utils/DragNumber.cjs"),d=require("../../utils.cjs");function Y(t){const j=u.useRef(null),b=u.useRef(null),v=u.useRef(null),h=u.useRef(null),y=u.useRef(null),g=u.useRef(null),N=u.useRef(null),C=u.useRef(null),M=u.useRef(null),p=u.useRef(null),[s,o]=u.useState(t.value.x),[l,c]=u.useState(t.value.y),[e,r]=u.useState({min:Math.min(t.min,Math.min(t.value.x,t.value.y)),max:Math.max(t.max,Math.max(t.value.x,t.value.y))}),[E,w]=u.useState(!1);f({label:N,input:j,defaultValue:s,min:e.min,max:e.max,step:.01,onChange:n=>{o(n),t.onChange({target:{value:{x:n,y:l}}})}}),f({label:C,input:b,defaultValue:l,min:e.min,max:e.max,step:.01,onChange:n=>{c(n),t.onChange({target:{value:{x:s,y:n}}})}}),f({label:M,input:v,defaultValue:e.min,min:e.min-1,max:e.max+1,step:.01,onChange:n=>{r({min:n,max:e.max})}}),f({label:p,input:h,defaultValue:e.max,min:e.min-1,max:e.max+1,step:.01,onChange:n=>{r({min:e.min,max:n})}});function I(){E||(window.addEventListener("mousemove",D),window.addEventListener("mouseup",R),w(!0))}function R(){window.removeEventListener("mousemove",D),window.removeEventListener("mouseup",R),w(!1)}function D(n){const i=y.current.getBoundingClientRect(),B=m.clamp(0,99,n.clientX-i.left)/99,X=1-m.clamp(0,99,n.clientY-i.top)/99,L=m.roundTo(m.mix(e.min,e.max,B),3),q=m.roundTo(m.mix(e.min,e.max,X),3);t.onChange({target:{value:{x:L,y:q}}}),o(L),c(q)}function V(){const n=Number(v.current.value);r({min:n,max:e.max}),s<n&&o(m.clamp(n,e.max,s)),l<n&&c(m.clamp(n,e.max,l))}function S(){const n=Number(h.current.value);r({min:e.min,max:n}),s>n&&o(m.clamp(e.min,n,s)),l>n&&c(m.clamp(e.min,n,l))}u.useEffect(()=>{g.current.style.left=`${m.normalize(e.min,e.max,s)*100}%`,g.current.style.top=`${(1-m.normalize(e.min,e.max,l))*100}%`},[e,s,l]);const x=t.step!==void 0?t.step:.01;return a.jsxs("div",{className:"vector2",children:[a.jsxs("div",{className:"fields",children:[a.jsxs("div",{children:[a.jsx("span",{ref:N,children:"X"}),a.jsx("input",{ref:j,type:"number",value:s,min:e.min,max:e.max,step:x,name:d.randomID(),onChange:n=>{if(o(n.target.value),n.target.value.length===0)return;const i=Number(n.target.value);isNaN(i)||(t.onChange({target:{value:{x:i,y:l}}}),i<e.min&&r({min:i,max:e.max}))}})]}),a.jsxs("div",{children:[a.jsx("span",{ref:C,children:"Y"}),a.jsx("input",{ref:b,type:"number",value:l,min:e.min,max:e.max,step:x,name:d.randomID(),onChange:n=>{if(c(n.target.value),n.target.value.length===0)return;const i=Number(n.target.value);isNaN(i)||(t.onChange({target:{value:{x:s,y:i}}}),i>e.max&&r({min:e.min,max:i}))}})]}),a.jsxs("div",{children:[a.jsx("span",{ref:M,children:"Min"}),a.jsx("input",{ref:v,type:"number",value:e.min,step:x,name:d.randomID(),onChange:V})]}),a.jsxs("div",{children:[a.jsx("span",{ref:p,children:"Max"}),a.jsx("input",{ref:h,type:"number",value:e.max,step:x,name:d.randomID(),onChange:S})]})]}),a.jsxs("div",{className:"input",ref:y,onMouseDown:I,onMouseUp:R,children:[a.jsx("div",{className:"x"}),a.jsx("div",{className:"y"}),a.jsx("div",{className:"pt",ref:g})]})]})}module.exports=Y;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const t=require("react/jsx-runtime"),u=require("react");;/* empty css */const v=require("../Accordion.cjs"),c=require("./InspectorField.cjs"),E=require("./utils/InspectCamera.cjs"),T=require("./utils/InspectMaterial.cjs"),I=require("./utils/InspectTransform.cjs"),j=require("./utils/InspectLight.cjs"),x=require("./utils/InspectAnimation.cjs"),C=require("../../tools/Transform.cjs"),r=require("../../../core/remote/RemoteThree.cjs"),o={name:"",uuid:"",type:"",visible:!1,matrix:[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],animations:[],material:void 0,perspectiveCameraInfo:void 0,orthographicCameraInfo:void 0,lightInfo:void 0,children:[]};function g(n){const[e,a]=u.useState(o);u.useEffect(()=>{function l(m){a(m.value)}function i(){a(o)}return n.three.addEventListener(r.ToolEvents.CLEAR_OBJECT,i),n.three.addEventListener(r.ToolEvents.SET_SCENE,i),n.three.addEventListener(r.ToolEvents.SET_OBJECT,l),()=>{n.three.removeEventListener(r.ToolEvents.CLEAR_OBJECT,i),n.three.removeEventListener(r.ToolEvents.SET_SCENE,i),n.three.removeEventListener(r.ToolEvents.SET_OBJECT,l)}},[]);const s=e.type.toLowerCase(),h=e.animations.length>0||e.mixer!==void 0,d=s.search("mesh")>-1||s.search("line")>-1||s.search("points")>-1;return t.jsx(v,{three:n.three,label:"Inspector",button:e.uuid.length>0?t.jsx("button",{className:"remove",onClick:()=>{C.instance.remove(e.name),a(o)}}):void 0,children:t.jsx("div",{id:"Inspector",className:n.class,children:e.uuid.length>0&&t.jsxs(t.Fragment,{children:[t.jsxs(t.Fragment,{children:[t.jsx(c,{type:"string",title:"Name",prop:"name",value:e.name,disabled:!0}),t.jsx(c,{type:"string",title:"Type",prop:"type",value:e.type,disabled:!0}),t.jsx(c,{type:"string",title:"UUID",prop:"uuid",value:e.uuid,disabled:!0})]}),t.jsxs(t.Fragment,{children:[t.jsx(I.InspectTransform,{object:e,three:n.three}),h?t.jsx(x,{object:e,three:n.three}):null,s.search("camera")>-1?E.InspectCamera(e,n.three):null,s.search("light")>-1?j.InspectLight(e,n.three):null,d?T.InspectMaterial(e,n.three):null]})]})})},"Inspector")}module.exports=g;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const t=require("react/jsx-runtime"),a=require("../../utils.cjs"),b=require("react"),x=require("./InspectNumber.cjs"),C=require("./InspectVector2.cjs"),f=require("./InspectGrid3.cjs"),r=require("./InspectGrid4.cjs"),I=require("./InspectImage.cjs"),g=require("three");function q(e){let d=e.value;d!==void 0&&(d.isColor!==void 0?d=a.colorToHex(e.value):e.type==="color"&&(d=a.colorToHex(new g.Color().setStyle(e.value,g.LinearSRGBColorSpace))));const[i,v]=b.useState(d),u=b.useRef(null);b.useEffect(()=>{v(d)},[d]);const l=c=>{let n=c.target.value;if(e.type==="boolean")n=c.target.checked;else if(e.type==="option"&&(typeof e.value=="number"?n=Number(n):typeof e.value=="boolean"?n=!!n:typeof e.value=="object"&&(n=JSON.parse(n)),e.options!==void 0)){const j=e.options.length;for(let y=0;y<j&&e.options[y].value!==n;y++);}v(n),e.onChange!==void 0&&e.onChange(e.prop!==void 0?e.prop:e.title,n)},m={};e.disabled&&(m.opacity=.8);const s=typeof i=="string"?i:String(i??""),o=e.type==="field"||e.type==="string"&&(s.length>100||s.search(`
|
|
2
|
+
`)>-1),h=o||e.type==="image"||e.type==="vector2";return t.jsxs("div",{className:`field ${h?"block":""}`,style:m,children:[e.type!=="button"&&t.jsx("span",{ref:u,children:a.capitalize(e.title)},"fieldLabel"),e.type==="string"&&!o&&t.jsx("input",{type:"text",disabled:e.disabled,onChange:l,value:i,name:a.randomID()}),(e.type==="field"||e.type==="string"&&o)&&t.jsx("textarea",{cols:50,rows:10,disabled:e.disabled!==void 0?e.disabled:!0,onChange:l,onKeyDown:c=>{e.onKeyDown!==void 0&&e.onKeyDown(c)},value:i,name:a.randomID()}),e.type==="boolean"&&t.jsx("input",{type:"checkbox",disabled:e.disabled,onChange:l,checked:i,name:a.randomID()}),e.type==="number"&&t.jsx(x,{value:i,type:e.type,prop:e.prop!==void 0?e.prop:e.title,min:e.min,max:e.max,step:e.step,disabled:e.disabled,labelRef:u,onChange:e.onChange}),e.type==="range"&&t.jsx(x,{value:i,type:e.type,prop:e.prop!==void 0?e.prop:e.title,min:e.min,max:e.max,step:e.step,disabled:e.disabled,labelRef:u,onChange:e.onChange}),e.type==="color"&&t.jsxs(t.Fragment,{children:[t.jsx("input",{type:"text",value:i.toString(),onChange:l,disabled:e.disabled,className:"color",name:a.randomID()}),t.jsx("input",{type:"color",value:i,onChange:l,disabled:e.disabled,name:a.randomID()})]}),e.type==="button"&&t.jsx("button",{disabled:e.disabled,onClick:()=>{e.onChange!==void 0&&e.onChange(e.prop!==void 0?e.prop:e.title,!0)},children:e.title}),e.type==="image"&&t.jsx(I,{title:e.title,prop:e.prop,value:e.value,onChange:e.onChange}),e.type==="option"&&t.jsx(t.Fragment,{children:t.jsx("select",{onChange:l,disabled:e.disabled,value:i,name:a.randomID(),children:e.options?.map((c,n)=>t.jsx("option",{value:c.value,children:a.capitalize(c.title)},n))})}),e.type==="vector2"&&t.jsx(C,{step:e.step,value:i,min:0,max:1,onChange:l}),e.type==="grid3"&&t.jsx(f,{step:e.step,value:i,onChange:l}),e.type==="grid4"&&t.jsx(r,{step:e.step,value:i,onChange:l}),e.type==="euler"&&t.jsx(f,{step:e.step,value:i,onChange:l})]})}module.exports=q;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const n=require("react/jsx-runtime"),u=require("react"),h=require("../Accordion.cjs"),g=require("./InspectorField.cjs"),m=require("../../utils.cjs");function v(a){return"items"in a}class p extends u.Component{subgroupNames=[];subgroupElements=[];valueOverrides=new Map;three;constructor(t){super(t),this.three=t.three,this.state={lastUpdated:Date.now()}}addGroup(t){const e=[];t.items.forEach(s=>{e.push({type:s.type,prop:s.prop,title:s.title!==void 0?s.title:s.prop,value:s.value,min:s.min,max:s.max,step:s.step,options:s.options,disabled:s.disabled,onChange:(i,l)=>{t.onUpdate(i,l)}})});const o=u.createRef(),r=n.jsx(p,{three:this.props.three,ref:o,title:t.title,expanded:t.expanded,items:e},t.title);return this.subgroupNames.push(t.title),this.subgroupElements.push(r),this.setState({lastUpdated:Date.now()}),o}removeGroup(t){const e=this.subgroupNames.length;for(let o=0;o<e;o++){const r=this.subgroupNames[o];if(t===r){this.subgroupNames.splice(o,1),this.subgroupElements.splice(o,1),this.setState({lastUpdated:Date.now()});return}}}setField(t,e){this.valueOverrides.set(t,e),this.setState({lastUpdated:Date.now()})}render(){const t=[];return this.props.items.forEach(e=>{if(v(e))t.push(n.jsx(p,{three:this.props.three,title:m.capitalize(e.title),items:e.items},e.title));else{const o=this.valueOverrides.get(e.title),r=o!==void 0?o:e.value;t.push(n.jsx(g,{title:e.title,prop:e.prop,value:r,type:e.type,min:e.min,max:e.max,step:e.step,disabled:e.disabled,options:e.options,onChange:(s,i)=>{e.onChange!==void 0&&(this.valueOverrides.delete(e.title),e.onChange(s,i))},onKeyDown:s=>{e.onKeyDown!==void 0&&e.onKeyDown(s)}},e.title))}}),this.subgroupElements.forEach(e=>t.push(e)),n.jsx(h,{three:this.props.three,label:this.props.title,open:this.props.expanded===!0,onToggle:e=>{this.props.onToggle&&this.props?.onToggle(e)},children:t})}}module.exports=p;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const f=require("react");function x(e){const[E,a]=f.useState(e.defaultValue);return f.useEffect(()=>{let i=!1,l=-1,s=0,t=e.defaultValue,r=!1;const o=n=>{r=n.ctrlKey},v=n=>{i=!0,s=Number(e.input.current?.value),l=n.clientX,document.addEventListener("mouseup",u,!1),document.addEventListener("mousemove",m,!1),document.addEventListener("contextmenu",u,!1)},m=n=>{if(!i)return;const d=e.step!==void 0?e.step:1,L=(n.clientX-l)*d*(r?10:1);t=Number((s+L).toFixed(4)),e.min!==void 0&&(t=Math.max(t,e.min)),e.max!==void 0&&(t=Math.min(t,e.max)),e.onChange!==void 0&&e.onChange(t),a(t)},u=()=>{i=!1,document.removeEventListener("mouseup",u),document.removeEventListener("mousemove",m),document.removeEventListener("contextmenu",u)},c=n=>{const d=Number(n.target.value);e.onChange!==void 0&&e.onChange(d),a(d)};return e.label.current?.addEventListener("mousedown",v,!1),e.sliderRef!==void 0&&e.sliderRef.current?.addEventListener("input",c),document.addEventListener("keydown",o,!1),document.addEventListener("keyup",o,!1),()=>{e.label.current?.removeEventListener("mousedown",v),e.sliderRef!==void 0&&e.sliderRef.current?.removeEventListener("input",c),document.removeEventListener("mouseup",u),document.removeEventListener("mousemove",m),document.removeEventListener("contextmenu",u),document.removeEventListener("keydown",o),document.addEventListener("keyup",o,!1)}},[]),E}module.exports=x;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const g=require("react/jsx-runtime"),v=require("react"),f=require("three"),A=require("../InspectorGroup.cjs"),S=require("../../../multiView/MultiView.cjs"),b=require("../../../../utils/three.cjs");function q(r){const t=r.object,i=r.three;function a(){return`${i.name}_animation`}const u=localStorage.getItem(a()),h=u!==null?u==="open":!1;function x(e){localStorage.setItem(a(),e?"open":"closed")}const s=[],l=[];let c=0;t.animations.forEach(e=>{c=Math.max(c,e.duration),e.duration>0&&l.push({title:e.name,items:[{title:"Duration",type:"number",value:e.duration,disabled:!0},{title:"Blend Mode",type:"option",disabled:!0,options:[{title:"Normal",value:2500},{title:"Additive",value:2501}]}]})}),s.push({title:"Animations",items:l});let n;const d=i.getScene(t.uuid);if(d!==null){const e=d.getObjectByProperty("uuid",t.uuid);if(e!==void 0){const o=e.mixer;if(o!==void 0){const m=[{title:"Time Scale",type:"range",value:o.timeScale,step:.01,min:-1,max:2,onChange:(j,p)=>{o.timeScale=p,i.updateObject(t.uuid,"mixer.timeScale",p)}}];m.push({title:"Stop All",type:"button",onChange:()=>{o.stopAllAction(),i.requestMethod(t.uuid,"stopAllAction",void 0,"mixer")}}),s.push({title:"Mixer",items:m}),n=new f.SkeletonHelper(e),S.instance?.scene.add(n)}}}return v.useEffect(()=>()=>{n!==void 0&&b.dispose(n)},[]),g.jsx(A,{three:r.three,title:"Animation",items:s,expanded:h,onToggle:e=>{x(e)}})}module.exports=q;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react/jsx-runtime"),g=require("../InspectorGroup.cjs"),p=require("../../utils.cjs");function d(e){switch(e){case"fov":return"FOV";case"zoom":return"Zoom";case"near":return"Near";case"far":return"Far";case"focus":return"Focus";case"aspect":return"Aspect";case"filmGauge":return"Film Gauge";case"filmOffset":return"Film Offset";case"left":return"Left";case"right":return"Right";case"top":return"Top";case"bottom":return"Bottom"}return e}function I(e,r){function s(){return`${r.name}_camera`}const c=localStorage.getItem(s()),f=c!==null?c==="open":!1;function l(t){localStorage.setItem(s(),t?"open":"closed")}const i=[];if(e.perspectiveCameraInfo!==void 0)for(const t in e.perspectiveCameraInfo)i.push({title:d(t),prop:t,type:"number",step:.01,value:e.perspectiveCameraInfo[t],onChange:(a,u)=>{r.updateObject(e.uuid,a,u),r.requestMethod(e.uuid,"updateProjectionMatrix");const o=r.getScene(e.uuid);if(o!==null){const n=o.getObjectByProperty("uuid",e.uuid);n!==void 0&&(p.setItemProps(n,a,u),n.updateProjectionMatrix())}}});else if(e.orthographicCameraInfo!==void 0)for(const t in e.orthographicCameraInfo)i.push({title:d(t),prop:t,type:"number",step:.01,value:e.orthographicCameraInfo[t],onChange:(a,u)=>{r.updateObject(e.uuid,a,u),r.requestMethod(e.uuid,"updateProjectionMatrix");const o=r.getScene(e.uuid);if(o!==null){const n=o.getObjectByProperty("uuid",e.uuid);n!==void 0&&(p.setItemProps(n,a,u),n.updateProjectionMatrix())}}});return m.jsx(g,{three:r,title:"Camera",items:i,expanded:f,onToggle:t=>{l(t)}})}exports.InspectCamera=I;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react/jsx-runtime"),m=require("three"),I=require("../InspectorGroup.cjs"),d=require("../../utils.cjs");function p(e){switch(e){case"color":return"Color";case"intensity":return"Intensity";case"decay":return"Decay";case"distance":return"Distance";case"angle":return"Angle";case"penumbra":return"Penumbra";case"groundColor":return"Ground Color";case"width":return"Width";case"height":return"Height"}return e}function C(e,n){function l(){return`${n.name}_light`}const a=localStorage.getItem(l()),g=a!==null?a==="open":!1;function f(t){localStorage.setItem(l(),t?"open":"closed")}const c=[];if(e.lightInfo!==void 0)for(const t in e.lightInfo){const o=e.lightInfo[t];o!==void 0&&(o.isColor!==void 0?c.push({title:p(t),prop:t,type:"color",value:o,onChange:(r,u)=>{const i=new m.Color(u);n.updateObject(e.uuid,r,i);const s=n.getScene(e.uuid);if(s!==null){const h=s.getObjectByProperty("uuid",e.uuid);d.setItemProps(h,r,i)}}}):c.push({title:p(t),prop:t,type:typeof o,value:o,step:typeof o=="number"?.01:void 0,onChange:(r,u)=>{n.updateObject(e.uuid,r,u);const i=n.getScene(e.uuid);if(i!==null){const s=i.getObjectByProperty("uuid",e.uuid);d.setItemProps(s,r,u)}}}))}return y.jsx(I,{three:n,title:"Light",items:c,expanded:g,onToggle:t=>{f(t)}})}exports.InspectLight=C;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const O=require("react/jsx-runtime"),i=require("three"),P=require("../InspectorGroup.cjs"),g=require("../../utils.cjs"),b=require("three/webgpu");function R(e){return!(e==="defaultAttributeValues"||e==="forceSinglePass"||e==="linecap"||e==="linejoin"||e==="linewidth"||e==="normalMapType"||e==="precision"||e==="shadowSide"||e==="uniformsGroups"||e==="uniformsNeedUpdate"||e==="userData"||e==="version"||e==="wireframeLinecap"||e==="wireframeLinejoin"||e==="wireframeLinewidth"||e.slice(0,4)==="clip"||e.slice(0,7)==="polygon"||e.slice(0,7)==="stencil"||e.slice(0,2)==="is")}function N(e){switch(e){case"Alpha Map":return"alphaMap";case"Anisotropy Map":return"anisotropyMap";case"AO Map":return"aoMap";case"Bump Map":return"bumpMap";case"Clearcoat Map":return"clearcoatMap";case"Clearcoat Normal Map":return"clearcoatNormalMap";case"Clearcoat Roughness Map":return"clearcoatRoughnessMap";case"Displacement Map":return"displacementMap";case"Emissive Map":return"emissiveMap";case"Gradient Map":return"gradientMap";case"Iridescence Map":return"iridescenceMap";case"Iridescence Thickness Map":return"iridescenceThicknessMap";case"Map":return"map";case"Matcap":return"matcap";case"Normal Map":return"normalMap";case"Roughness Map":return"roughnessMap";case"Sheen Color Map":return"sheenColorMap";case"Sheen Roughness Map":return"sheenRoughnessMap";case"Specular Color Map":return"specularColorMap";case"Specular Map Intensity":return"specularIntensityMap";case"Thickness Map":return"thicknessMap";case"Transmission Map":return"transmissionMap"}return e}function v(e){switch(e){case"alphaHash":return"Alpha Hash";case"alphaMap":return"Alpha Map";case"alphaToCoverage":return"Alpha To Coverage";case"anisotropy":return"Anisotropy";case"anisotropyMap":return"Anisotropy Map";case"anisotropyRotation":return"Anisotropy Rotation";case"aoMap":return"AO Map";case"aoMapIntensity":return"AO Map Intensity";case"attenuationColor":return"Attenuation Color";case"attenuationDistance":return"Attenuation Distance";case"blendAlpha":return"Blend Alpha";case"blendColor":return"Blend Color";case"blendDst":return"Blend Dst";case"blendDstAlpha":return"Blend Dst Alha";case"blendEquation":return"Blend Equation";case"blendEquationAlpha":return"Blend Equation Alpha";case"blending":return"Blending";case"blendSrc":return"Blend Src";case"blendSrcAlpha":return"Blend Src Alpha";case"bumpMap":return"Bump Map";case"bumpScale":return"Bump Scale";case"clearcoat":return"Clearcoat";case"clearcoatMap":return"Clearcoat Map";case"clearcoatNormalMap":return"Clearcoat Normal Map";case"clearcoatNormalScale":return"Clearcoat Normal Scale";case"clearcoatRoughness":return"Clearcoat Roughness";case"clearcoatRoughnessMap":return"Clearcoat Roughness Map";case"color":return"Color";case"colorWrite":return"Color Write";case"defines":return"Defines";case"depthFunc":return"Depth Func";case"depthTest":return"Depth Test";case"depthWrite":return"Depth Write";case"dispersion":return"Dispersion";case"displacementBias":return"Displacement Bias";case"displacementMap":return"Displacement Map";case"displacementScale":return"Displacement Scale";case"dithering":return"Dithering";case"emissive":return"Emissive";case"emissiveMap":return"Emissive Map";case"emissiveIntensity":return"Emissive Intensity";case"envMap":return"Environment Map";case"envMapIntensity":return"Environment Map Intensity";case"envMapRotation":return"Environment Map Rotation";case"extensions":return"Extensions";case"flatShading":return"Flat Shading";case"fragmentShader":return"Fragment Shader";case"fog":return"Fog";case"glslVersion":return"GLSL Version";case"gradientMap":return"Gradient Map";case"ior":return"IOR";case"iridescence":return"Iridescence";case"iridescenceIOR":return"Iridescence IOR";case"iridescenceMap":return"Iridescence Map";case"iridescenceThicknessMap":return"Iridescence Thickness Map";case"iridescenceThicknessRange":return"Iridescence Thickness Range";case"lights":return"Lights";case"lightMap":return"Light Map";case"lightMapIntensity":return"Light Map Intensity";case"map":return"Map";case"matcap":return"Matcap";case"metalness":return"Metalness";case"metalnessMap":return"Metalness Map";case"name":return"Name";case"normalMap":return"Normal Map";case"normalScale":return"Normal Scale";case"premultipliedAlpha":return"Premultiplied Alpha";case"opacity":return"Opacity";case"reflectivity":return"Reflectivity";case"refractionRatio":return"Refraction Ratio";case"roughness":return"Roughness";case"roughnessMap":return"Roughness Map";case"sheen":return"Sheen";case"sheenColor":return"Sheen Color";case"sheenColorMap":return"Sheen Color Map";case"sheenRoughness":return"Sheen Roughness";case"sheenRoughnessMap":return"Sheen Roughness Map";case"shininess":return"Shininess";case"side":return"Side";case"size":return"Size";case"sizeAttenuation":return"Size Attenuation";case"specular":return"Specular";case"specularColor":return"Specular Color";case"specularColorMap":return"Specular Color Map";case"specularIntensity":return"Specular Intensity";case"specularIntensityMap":return"Specular Map Intensity";case"thickness":return"Thickness";case"thicknessMap":return"Thickness Map";case"toneMapped":return"Tone Mapped";case"transmission":return"Transmission";case"transmissionMap":return"Transmission Map";case"transparent":return"Transparent";case"type":return"Type";case"uuid":return"UUID";case"uniforms":return"Uniforms";case"vertexColors":return"Vertex Colors";case"vertexShader":return"Vertex Shader";case"visible":return"Visible";case"wireframe":return"Wireframe"}return e}function D(e){const t=e.toLowerCase();return t.search("intensity")>-1||t==="anisotropyrotation"||t==="blendalpha"||t==="bumpscale"||t==="clearcoatroughness"||t==="displacementbias"||t==="displacementscale"||t==="metalness"||t==="opacity"||t==="reflectivity"||t==="refractionratio"||t==="roughness"||t==="sheenroughness"}function k(){const e=document.createElement("input");return e.type="file",new Promise((t,n)=>{e.addEventListener("change",function(){if(e.files===null)n();else{const r=e.files[0],s=new FileReader;s.onload=function(p){t(p.target.result)},s.readAsDataURL(r)}}),e.click()})}const x=[{title:"Front",value:i.FrontSide},{title:"Back",value:i.BackSide},{title:"Double",value:i.DoubleSide}],T=[{title:"No Blending",value:i.NoBlending},{title:"Normal",value:i.NormalBlending},{title:"Additive",value:i.AdditiveBlending},{title:"Subtractive",value:i.SubtractiveBlending},{title:"Multiply",value:i.MultiplyBlending},{title:"Custom",value:i.CustomBlending}],E=[{title:"Add",value:i.AddEquation},{title:"Subtract",value:i.SubtractEquation},{title:"Reverse Subtract",value:i.ReverseSubtractEquation},{title:"Min",value:i.MinEquation},{title:"Max",value:i.MaxEquation}],w=[{title:"Zero",value:i.ZeroFactor},{title:"One",value:i.OneFactor},{title:"Src Color",value:i.SrcColorFactor},{title:"One Minus Src Color",value:i.OneMinusSrcColorFactor},{title:"Src Alpha",value:i.SrcAlphaFactor},{title:"One Minus Src Alpha",value:i.OneMinusSrcAlphaFactor},{title:"Dst Alpha",value:i.DstAlphaFactor},{title:"One Minus Dst Alpha",value:i.OneMinusDstAlphaFactor},{title:"Dst Color",value:i.DstColorFactor},{title:"One Minus Dst Color",value:i.OneMinusDstColorFactor},{title:"Src Alpha Saturate",value:i.SrcAlphaSaturateFactor},{title:"Constant Color",value:i.ConstantColorFactor},{title:"One Minus Constant Color",value:i.OneMinusConstantColorFactor},{title:"Constant Alpha",value:i.ConstantAlphaFactor},{title:"One Minus Constant Alpha",value:i.OneMinusConstantAlphaFactor}],U=[{title:"Zero",value:i.ZeroFactor},{title:"One",value:i.OneFactor},{title:"Src Color",value:i.SrcColorFactor},{title:"One Minus Src Color",value:i.OneMinusSrcColorFactor},{title:"Src Alpha",value:i.SrcAlphaFactor},{title:"One Minus Src Alpha",value:i.OneMinusSrcAlphaFactor},{title:"Dst Alpha",value:i.DstAlphaFactor},{title:"One Minus Dst Alpha",value:i.OneMinusDstAlphaFactor},{title:"Dst Color",value:i.DstColorFactor},{title:"One Minus Dst Color",value:i.OneMinusDstColorFactor},{title:"Constant Color",value:i.ConstantColorFactor},{title:"One Minus Constant Color",value:i.OneMinusConstantColorFactor},{title:"Constant Alpha",value:i.ConstantAlphaFactor},{title:"One Minus Constant Alpha",value:i.OneMinusConstantAlphaFactor}];function C(e,t){e.needsUpdate=!0,e.type="option",e.options=t}function _(e,t,n,r){return{type:"boolean",title:v(e),prop:e,value:t,needsUpdate:!0,onChange:(s,p)=>{r.updateObject(n.uuid,`material.${e}`,p),r.updateObject(n.uuid,"material.needsUpdate",!0);const c=r.getScene(n.uuid);if(c!==null){const a=c.getObjectByProperty("uuid",n.uuid);g.setItemProps(a,`material.${e}`,p)}}}}function q(e,t,n,r){const s={type:"number",title:v(e),prop:e,value:t,min:void 0,max:void 0,step:.01,needsUpdate:!0,onChange:(p,c)=>{r.updateObject(n.uuid,`material.${e}`,c),r.updateObject(n.uuid,"material.needsUpdate",!0);const a=r.getScene(n.uuid);if(a!==null){const h=a.getObjectByProperty("uuid",n.uuid);g.setItemProps(h,`material.${e}`,c)}}};switch(e){case"blending":C(s,T);break;case"blendDst":C(s,U);break;case"blendEquation":C(s,E);break;case"blendSrc":C(s,w);break;case"side":C(s,x);break}return D(e)&&(s.value=Number(t),s.type="range",s.min=Math.min(0,s.value),s.max=Math.max(1,s.value),s.step=.01),s}function $(e,t,n,r){const s={type:"string",title:v(e),prop:e,value:t,needsUpdate:!0,onChange:(c,a)=>{r.updateObject(n.uuid,`material.${e}`,a),r.updateObject(n.uuid,"material.needsUpdate",!0);const h=r.getScene(n.uuid);if(h!==null){const l=h.getObjectByProperty("uuid",n.uuid);g.setItemProps(l,`material.${e}`,a)}},onKeyDown:c=>{}};return(e==="vertexShader"||e==="fragmentShader")&&(s.type="field",s.disabled=!1,s.latest=s.value,s.onChange=(c,a)=>{s.latest=a,r.updateObject(n.uuid,`material.${e}`,a);const h=r.getScene(n.uuid);if(h!==null){const l=h.getObjectByProperty("uuid",n.uuid);g.setItemProps(l,`material.${e}`,a)}},s.onKeyDown=c=>{if(c.key==="Enter"&&(c.altKey||c.metaKey)){r.updateObject(n.uuid,"material.needsUpdate",!0);const a=r.getScene(n.uuid);if(a!==null){const h=a.getObjectByProperty("uuid",n.uuid);g.setItemProps(h,"material.needsUpdate",!0)}}}),s}function L(e){return e.x!==void 0&&e.y!==void 0&&e.z===void 0}function z(e){return e.x!==void 0&&e.y!==void 0&&e.z!==void 0&&e.w===void 0}function G(e){return e.x!==void 0&&e.y!==void 0&&e.z!==void 0&&e.w!==void 0}function A(e){e.sort((t,n)=>t.title<n.title?-1:t.title>n.title?1:0)}function S(e,t,n,r,s="",p=!1){const c=v(e).split(".")[0].replaceAll("[","").replaceAll("]",""),a=s.length>0?`${s}.${e}`:e,h=typeof t;if(h==="object"&&t!==null&&t.__isUniform===!0)return S(`${e}.value`,t.value,n,r,s,p);if(h==="boolean"||h==="string")return{title:c,prop:a,type:h,value:t,disabled:p,onChange:(l,o)=>{r.updateObject(n.uuid,`material.${a}`,o);const u=r.getScene(n.uuid);if(u!==null){const d=u.getObjectByProperty("uuid",n.uuid);g.setItemProps(d,`material.${a}`,o)}}};if(h==="number"){const l={title:c,prop:a,type:"number",value:t,step:.01,disabled:p,onChange:(o,u)=>{r.updateObject(n.uuid,`material.${a}`,u);const d=r.getScene(n.uuid);if(d!==null){const m=d.getObjectByProperty("uuid",n.uuid);g.setItemProps(m,`material.${a}`,u)}}};return D(c)&&(l.type="range",l.min=0,l.max=1),l}else{if(t.isColor)return{title:c,prop:a,type:"color",value:t,disabled:p,onChange:(l,o)=>{const u=new i.Color(o);r.updateObject(n.uuid,`material.${a}`,u);const d=r.getScene(n.uuid);if(d!==null){const m=d.getObjectByProperty("uuid",n.uuid);g.setItemProps(m,`material.${a}`,u)}}};if(Array.isArray(t)){const l=[];for(const o in t){const u=t[o],d=`[${o.toString()}]`;if(u.value!==void 0){const m=S(`${d}.value`,u.value,n,r,a,p);m!==void 0&&l.push(m)}else{const m=S(d,u,n,r,a,p);m!==void 0&&l.push(m)}}if(l.length>0)return A(l),{title:c,items:l}}else{if(L(t))return{title:c,prop:a,type:"vector2",value:t,disabled:p,onChange:(l,o)=>{r.updateObject(n.uuid,`material.${a}`,o);const u=r.getScene(n.uuid);if(u!==null){const d=u.getObjectByProperty("uuid",n.uuid);g.setItemProps(d,`material.${a}`,o)}}};if(z(t))return{title:c,prop:a,type:"grid3",value:t,disabled:p,onChange:(l,o)=>{r.updateObject(n.uuid,`material.${a}`,o);const u=r.getScene(n.uuid);if(u!==null){const d=u.getObjectByProperty("uuid",n.uuid);g.setItemProps(d,`material.${a}`,o)}}};if(G(t))return{title:c,prop:a,type:"grid4",value:t,disabled:p,onChange:(l,o)=>{r.updateObject(n.uuid,`material.${a}`,o);const u=r.getScene(n.uuid);if(u!==null){const d=u.getObjectByProperty("uuid",n.uuid);g.setItemProps(d,`material.${a}`,o)}}};if(t.isEuler)return{title:c,prop:a,type:"euler",value:t,disabled:p,onChange:(l,o)=>{r.updateObject(n.uuid,`material.${a}`,o);const u=r.getScene(n.uuid);if(u!==null){const d=u.getObjectByProperty("uuid",n.uuid);g.setItemProps(d,`material.${a}`,o)}}};if(t.src!==void 0)return{title:c,type:"image",value:t,disabled:p,onChange:(l,o)=>{const u=N(e),d=s.length>0?`${s}.${u}`:u;r.createTexture(n.uuid,`material.${d}`,o);const m=r.getScene(n.uuid);if(m!==null){const F=m.getObjectByProperty("uuid",n.uuid);if(F!==void 0){const B=f=>{const y=F.material,M=d.split(".");switch(M.length){case 1:y[M[0]]=f;break;case 2:y[M[0]][M[1]]=f;break;case 3:y[M[0]][M[1]][M[2]]=f;break;case 4:y[M[0]][M[1]][M[2]][M[3]]=f;break;case 5:y[M[0]][M[1]][M[2]][M[3]][M[4]]=f;break}y.needsUpdate=!0};o.src.length>0?g.textureFromSrc(o.src).then(f=>{f.offset.set(o.offset[0],o.offset[1]),f.repeat.set(o.repeat[0],o.repeat[1]),B(f)}):B(null)}}}};if(t.elements!==void 0)return{title:c,prop:a,type:t.elements.length>9?"grid4":"grid3",value:t,disabled:p,onChange:(l,o)=>{r.updateObject(n.uuid,`material.${a}`,o);const u=r.getScene(n.uuid);if(u!==null){const d=u.getObjectByProperty("uuid",n.uuid);g.setItemProps(d,`material.${a}`,o)}}};{const l=[],o=e==="defines"||e==="extensions";try{for(const u in t){const d=t[u];if(d!==void 0)if(d.value!==void 0){const m=S(`${u}.value`,d.value,n,r,a,o);m!==void 0&&l.push(m)}else{const m=S(u,d,n,r,a,o);m!==void 0&&l.push(m)}}}catch{console.log("Hermes - Issue cycling through material object:",e,t)}if(l.length>0)return A(l),{title:c,items:l}}}}}function I(e,t,n){const r=[];for(const s in e){if(!R(s)||s.search("Node")>-1||e[s]instanceof b.ComputeNode)continue;const p=typeof e[s],c=e[s];if(p==="boolean")r.push(_(s,c,t,n));else if(p==="number")r.push(q(s,c,t,n));else if(p==="string")r.push($(s,c,t,n));else if(p==="object"){const a=S(s,c,t,n);a!==void 0&&r.push(a)}else c!==void 0&&console.log("Hermes - Other Material Prop Type:",s,p,c)}return A(r),r.push({title:"Update Material",type:"button",onChange:()=>{n.updateObject(t.uuid,"material.needsUpdate",!0);const s=n.getScene(t.uuid);if(s!==null){const p=s.getObjectByProperty("uuid",t.uuid);g.setItemProps(p,"material.needsUpdate",!0)}}}),r}function W(e,t){function n(){return`${t.name}_material`}const r=localStorage.getItem(n()),s=r!==null?r==="open":!1;function p(a){localStorage.setItem(n(),a?"open":"closed")}const c=e.material;if(Array.isArray(c)){const a=[],h=c.length;for(let l=0;l<h;l++)a.push(O.jsx(P,{three:t,title:`Material ${l}`,items:I(c[l],e,t)},`Material ${l}`));return O.jsx(O.Fragment,{children:a})}else return O.jsx(P,{three:t,title:"Material",items:I(c,e,t),expanded:s,onToggle:a=>{p(a)}})}exports.InspectMaterial=W;exports.acceptedMaterialNames=R;exports.clampedNames=D;exports.imageNames=N;exports.inspectMaterialItems=I;exports.prettyName=v;exports.uploadLocalImage=k;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),i=require("three"),h=require("react"),d=require("../InspectorGroup.cjs"),l=require("../../utils.cjs"),a=require("../../../multiView/MultiView.cjs"),s=require("../../../../utils/math.cjs");class n extends h.Component{static instance;matrix=new i.Matrix4;position=new i.Vector3;rotation=new i.Euler;scale=new i.Vector3;open=!1;constructor(t){super(t);const e=localStorage.getItem(this.expandedName),o=e!==null?e==="open":!1;this.open=o,this.saveExpanded(),this.state={lastUpdated:0,expanded:o},this.matrix.elements=t.object.matrix,t.object.uuid.length>0&&(this.position.setFromMatrixPosition(this.matrix),this.rotation.setFromRotationMatrix(this.matrix),this.scale.setFromMatrixScale(this.matrix)),n.instance=this}update(){if(a.instance){const t=a.instance.selectedItem;if(t===void 0)return;this.position.x=s.roundTo(t.position.x,3),this.position.y=s.roundTo(t.position.y,3),this.position.z=s.roundTo(t.position.z,3),this.rotation.copy(t.rotation),this.scale.x=s.roundTo(t.scale.x,3),this.scale.y=s.roundTo(t.scale.y,3),this.scale.z=s.roundTo(t.scale.z,3),this.setState({lastUpdated:Date.now()})}}render(){return c.jsx(d,{three:this.props.three,title:"Transform",expanded:this.open,items:[{title:"Position",prop:"position",type:"grid3",step:.1,value:this.position,onChange:this.updateTransform},{title:"Rotation",prop:"rotation",type:"euler",value:this.rotation,onChange:this.updateTransform},{title:"Scale",prop:"scale",type:"grid3",value:this.scale,onChange:this.updateTransform},{title:"Visible",prop:"visible",type:"boolean",value:this.props.object.visible,onChange:this.updateTransform}],onToggle:t=>{this.open=t,this.saveExpanded()}},this.state.lastUpdated)}updateTransform=(t,e)=>{const o=t==="rotation"?{x:e._x,y:e._y,z:e._z}:e;this.props.three.updateObject(this.props.object.uuid,t,o);const r=this.props.three.getScene(this.props.object.uuid);if(r){const p=r.getObjectByProperty("uuid",this.props.object.uuid);l.setItemProps(p,t,o)}};saveExpanded(){localStorage.setItem(this.expandedName,this.open?"open":"closed")}get expandedName(){return`${this.props.three.name}_transform`}}exports.InspectTransform=n;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("three"),u=require("../../utils/threeEditorDebug.cjs");function y(e){if(e.name==="cameras")return"camera";if(e.name==="interactive")return"interactive";if(e.name==="lights")return"light";if(e.name==="ui")return"ui";if(e.name==="utils")return"utils";const s=e.type;return s.search("Helper")>-1?"icon_utils":s.search("Camera")>-1?"camera":s.search("Light")>-1?"light":"obj3D"}function f(e){const s={name:e.name,type:e.type,uuid:e.uuid,children:[]};return e.children.forEach(t=>{s.children.push(f(t))}),s}function p(e){return{src:e.image?.src??"",offset:[e.offset.x,e.offset.y],repeat:[e.repeat.x,e.repeat.y]}}const l={src:"",offset:[0,0],repeat:[1,1]};function v(e){const s={};for(const t in e){const r=e[t];if(r!==null&&typeof r=="object"&&Object.prototype.hasOwnProperty.call(r,"value")){const a=r.value;a==null?s[t]={value:l}:a.isTexture?s[t]={value:p(a)}:s[t]={value:a}}else r==null?s[t]=l:r.isTexture?s[t]=p(r):s[t]=r}return s}function T(e){switch(e){case"blendSrcAlpha":case"blendDstAlpha":case"blendEquationAlpha":case"clippingPlanes":case"shadowSide":case"precision":return!0}return!1}function o(e){const s={};for(const t in e){if(t.substring(0,1)==="_"||t.substring(0,2)==="is"||T(t))continue;const r=typeof e[t],n=e[t];switch(r){case"boolean":case"number":case"string":s[t]=n;break;case"object":if(n!==null)if(n.isTexture)s[t]={src:u.ExportTexture.renderToBlob(n),offset:[n.offset.x,n.offset.y],repeat:[n.repeat.x,n.repeat.y]};else if(n.isUniformNode){const a=n.value;s[t]={__isUniform:!0,value:a?.isTexture?{src:u.ExportTexture.renderToBlob(a),offset:[a.offset.x,a.offset.y],repeat:[a.repeat.x,a.repeat.y]}:a}}else t==="uniforms"?s[t]=v(n):t.search("Node")>-1||(s[t]=n);else t==="glslVersion"?s[t]="":t.search("Node")>-1||(s[t]={src:"",offset:[0,0],repeat:[1,1]});break}}return e.anisotropy!==void 0&&(s.anisotropy=e.anisotropy),e.clearcoat!==void 0&&(s.clearcoat=e.clearcoat),e.iridescence!==void 0&&(s.iridescence=e.iridescence),e.dispersion!==void 0&&(s.dispersion=e.dispersion),e.sheen!==void 0&&(s.sheen=e.sheen),e.transmission!==void 0&&(s.transmission=e.transmission),e.transmission!==void 0&&(s.transmission=e.transmission),s}function x(e){const s=document.createElement("canvas"),t=s.getContext("2d");return s.width=e.width,s.height=e.height,t.drawImage(e,0,0),s.toDataURL("image/png")}function m(e){e.updateMatrix();const s={name:e.name,type:e.type,uuid:e.uuid,visible:e.visible,matrix:e.matrix.elements,animations:[],material:void 0,perspectiveCameraInfo:void 0,orthographicCameraInfo:void 0,lightInfo:void 0,children:[]};e.animations.forEach(r=>{s.animations.push({name:r.name,duration:r.duration,blendMode:r.blendMode})});const t=e.type.toLowerCase();if(t.search("mesh")>-1){const r=e;if(Array.isArray(r.material)){const n=[];r.material.forEach(a=>{n.push(o(a))}),s.material=n}else s.material=o(r.material)}else if(t.search("points")>-1){const r=e;if(Array.isArray(r.material)){const n=[];r.material.forEach(a=>{n.push(o(a))}),s.material=n}else s.material=o(r.material)}else if(t.search("line")>-1){const r=e;if(Array.isArray(r.material)){const n=[];r.material.forEach(a=>{n.push(o(a))}),s.material=n}else s.material=o(r.material)}else t.search("camera")>-1?e.type==="PerspectiveCamera"?s.perspectiveCameraInfo={fov:e.fov,zoom:e.zoom,near:e.near,far:e.far,focus:e.focus,aspect:e.aspect,filmGauge:e.filmGauge,filmOffset:e.filmOffset}:e.type==="OrthographicCamera"&&(s.orthographicCameraInfo={zoom:e.zoom,near:e.near,far:e.far,left:e.left,right:e.right,top:e.top,bottom:e.bottom}):t.search("light")>-1&&(s.lightInfo={color:e.color,intensity:e.intensity,decay:e.decay,distance:e.distance,angle:e.angle,penumbra:e.penumbra,groundColor:e.groundColor,width:e.width,height:e.height});return s}function d(e,s){const t=s.split(".");switch(t.length){case 1:return e[t[0]];case 2:return e[t[0]][t[1]];case 3:return e[t[0]][t[1]][t[2]];case 4:return e[t[0]][t[1]][t[2]][t[3]];case 5:return e[t[0]][t[1]][t[2]][t[3]][t[4]];case 6:return e[t[0]][t[1]][t[2]][t[3]][t[4]][t[5]]}}function I(e,s){for(const t in s)e[t]=s[t]}function h(e,s,t){if(e===void 0){console.log(`Hermes - Can't set props: ${s}`,t);return}const r=s.split("."),n=r.length;if(typeof t!="object")switch(n){case 1:e[r[0]]=t;break;case 2:e[r[0]][r[1]]=t;break;case 3:e[r[0]][r[1]][r[2]]=t;break;case 4:e[r[0]][r[1]][r[2]][r[3]]=t;break;case 5:e[r[0]][r[1]][r[2]][r[3]][r[4]]=t;break}else{let i;switch(n){case 1:i=e[r[0]];break;case 2:i=e[r[0]][r[1]];break;case 3:i=e[r[0]][r[1]][r[2]];break;case 4:i=e[r[0]][r[1]][r[2]][r[3]];break;case 5:i=e[r[0]][r[1]][r[2]][r[3]][r[4]];break}i!=null?I(i,t):console.log(`Hermes - Can't set props because target isn't found: ${s}`,t)}}function g(e){return new Promise((s,t)=>{const r=new Image;r.onload=()=>{const n=new c.Texture(r);n.wrapS=c.RepeatWrapping,n.wrapT=c.RepeatWrapping,n.needsUpdate=!0,s(n)},r.onerror=t,r.src=e})}const w={stripObject:m,stripScene:f,getSubItem:d,setItemProps:h,textureFromSrc:g};exports.EDITOR_UTILS=w;exports.convertImageToBase64=x;exports.determineIcon=y;exports.getSubItem=d;exports.setItemProps=h;exports.stripObject=m;exports.stripScene=f;exports.textureFromSrc=g;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Texture as
|
|
2
|
-
import { ExportTexture as f } from "../../utils/
|
|
3
|
-
function
|
|
1
|
+
import { Texture as m, RepeatWrapping as c } from "three";
|
|
2
|
+
import { ExportTexture as f } from "../../utils/threeEditorDebug.js";
|
|
3
|
+
function k(e) {
|
|
4
4
|
if (e.name === "cameras")
|
|
5
5
|
return "camera";
|
|
6
6
|
if (e.name === "interactive")
|
|
@@ -14,15 +14,15 @@ function w(e) {
|
|
|
14
14
|
const s = e.type;
|
|
15
15
|
return s.search("Helper") > -1 ? "icon_utils" : s.search("Camera") > -1 ? "camera" : s.search("Light") > -1 ? "light" : "obj3D";
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function p(e) {
|
|
18
18
|
const s = {
|
|
19
19
|
name: e.name,
|
|
20
20
|
type: e.type,
|
|
21
21
|
uuid: e.uuid,
|
|
22
22
|
children: []
|
|
23
23
|
};
|
|
24
|
-
return e.children.forEach((
|
|
25
|
-
s.children.push(
|
|
24
|
+
return e.children.forEach((t) => {
|
|
25
|
+
s.children.push(p(t));
|
|
26
26
|
}), s;
|
|
27
27
|
}
|
|
28
28
|
function u(e) {
|
|
@@ -35,13 +35,13 @@ function u(e) {
|
|
|
35
35
|
const l = { src: "", offset: [0, 0], repeat: [1, 1] };
|
|
36
36
|
function d(e) {
|
|
37
37
|
const s = {};
|
|
38
|
-
for (const
|
|
39
|
-
const
|
|
40
|
-
if (
|
|
41
|
-
const
|
|
42
|
-
|
|
38
|
+
for (const t in e) {
|
|
39
|
+
const r = e[t];
|
|
40
|
+
if (r !== null && typeof r == "object" && Object.prototype.hasOwnProperty.call(r, "value")) {
|
|
41
|
+
const a = r.value;
|
|
42
|
+
a == null ? s[t] = { value: l } : a.isTexture ? s[t] = { value: u(a) } : s[t] = { value: a };
|
|
43
43
|
} else
|
|
44
|
-
|
|
44
|
+
r == null ? s[t] = l : r.isTexture ? s[t] = u(r) : s[t] = r;
|
|
45
45
|
}
|
|
46
46
|
return s;
|
|
47
47
|
}
|
|
@@ -59,32 +59,32 @@ function h(e) {
|
|
|
59
59
|
}
|
|
60
60
|
function o(e) {
|
|
61
61
|
const s = {};
|
|
62
|
-
for (const
|
|
63
|
-
if (
|
|
64
|
-
const
|
|
65
|
-
switch (
|
|
62
|
+
for (const t in e) {
|
|
63
|
+
if (t.substring(0, 1) === "_" || t.substring(0, 2) === "is" || h(t)) continue;
|
|
64
|
+
const r = typeof e[t], n = e[t];
|
|
65
|
+
switch (r) {
|
|
66
66
|
case "boolean":
|
|
67
67
|
case "number":
|
|
68
68
|
case "string":
|
|
69
|
-
s[
|
|
69
|
+
s[t] = n;
|
|
70
70
|
break;
|
|
71
71
|
case "object":
|
|
72
72
|
if (n !== null)
|
|
73
73
|
if (n.isTexture)
|
|
74
|
-
s[
|
|
74
|
+
s[t] = {
|
|
75
75
|
src: f.renderToBlob(n),
|
|
76
76
|
offset: [n.offset.x, n.offset.y],
|
|
77
77
|
repeat: [n.repeat.x, n.repeat.y]
|
|
78
78
|
};
|
|
79
79
|
else if (n.isUniformNode) {
|
|
80
|
-
const
|
|
81
|
-
s[
|
|
80
|
+
const a = n.value;
|
|
81
|
+
s[t] = {
|
|
82
82
|
__isUniform: !0,
|
|
83
|
-
value:
|
|
83
|
+
value: a?.isTexture ? { src: f.renderToBlob(a), offset: [a.offset.x, a.offset.y], repeat: [a.repeat.x, a.repeat.y] } : a
|
|
84
84
|
};
|
|
85
|
-
} else
|
|
85
|
+
} else t === "uniforms" ? s[t] = d(n) : t.search("Node") > -1 || (s[t] = n);
|
|
86
86
|
else
|
|
87
|
-
|
|
87
|
+
t === "glslVersion" ? s[t] = "" : t.search("Node") > -1 || (s[t] = {
|
|
88
88
|
src: "",
|
|
89
89
|
offset: [0, 0],
|
|
90
90
|
repeat: [1, 1]
|
|
@@ -94,7 +94,11 @@ function o(e) {
|
|
|
94
94
|
}
|
|
95
95
|
return e.anisotropy !== void 0 && (s.anisotropy = e.anisotropy), e.clearcoat !== void 0 && (s.clearcoat = e.clearcoat), e.iridescence !== void 0 && (s.iridescence = e.iridescence), e.dispersion !== void 0 && (s.dispersion = e.dispersion), e.sheen !== void 0 && (s.sheen = e.sheen), e.transmission !== void 0 && (s.transmission = e.transmission), e.transmission !== void 0 && (s.transmission = e.transmission), s;
|
|
96
96
|
}
|
|
97
|
-
function
|
|
97
|
+
function C(e) {
|
|
98
|
+
const s = document.createElement("canvas"), t = s.getContext("2d");
|
|
99
|
+
return s.width = e.width, s.height = e.height, t.drawImage(e, 0, 0), s.toDataURL("image/png");
|
|
100
|
+
}
|
|
101
|
+
function g(e) {
|
|
98
102
|
e.updateMatrix();
|
|
99
103
|
const s = {
|
|
100
104
|
name: e.name,
|
|
@@ -109,42 +113,42 @@ function x(e) {
|
|
|
109
113
|
lightInfo: void 0,
|
|
110
114
|
children: []
|
|
111
115
|
};
|
|
112
|
-
e.animations.forEach((
|
|
116
|
+
e.animations.forEach((r) => {
|
|
113
117
|
s.animations.push({
|
|
114
|
-
name:
|
|
115
|
-
duration:
|
|
116
|
-
blendMode:
|
|
118
|
+
name: r.name,
|
|
119
|
+
duration: r.duration,
|
|
120
|
+
blendMode: r.blendMode
|
|
117
121
|
});
|
|
118
122
|
});
|
|
119
|
-
const
|
|
120
|
-
if (
|
|
121
|
-
const
|
|
122
|
-
if (Array.isArray(
|
|
123
|
+
const t = e.type.toLowerCase();
|
|
124
|
+
if (t.search("mesh") > -1) {
|
|
125
|
+
const r = e;
|
|
126
|
+
if (Array.isArray(r.material)) {
|
|
123
127
|
const n = [];
|
|
124
|
-
|
|
125
|
-
n.push(o(
|
|
128
|
+
r.material.forEach((a) => {
|
|
129
|
+
n.push(o(a));
|
|
126
130
|
}), s.material = n;
|
|
127
131
|
} else
|
|
128
|
-
s.material = o(
|
|
129
|
-
} else if (
|
|
130
|
-
const
|
|
131
|
-
if (Array.isArray(
|
|
132
|
+
s.material = o(r.material);
|
|
133
|
+
} else if (t.search("points") > -1) {
|
|
134
|
+
const r = e;
|
|
135
|
+
if (Array.isArray(r.material)) {
|
|
132
136
|
const n = [];
|
|
133
|
-
|
|
134
|
-
n.push(o(
|
|
137
|
+
r.material.forEach((a) => {
|
|
138
|
+
n.push(o(a));
|
|
135
139
|
}), s.material = n;
|
|
136
140
|
} else
|
|
137
|
-
s.material = o(
|
|
138
|
-
} else if (
|
|
139
|
-
const
|
|
140
|
-
if (Array.isArray(
|
|
141
|
+
s.material = o(r.material);
|
|
142
|
+
} else if (t.search("line") > -1) {
|
|
143
|
+
const r = e;
|
|
144
|
+
if (Array.isArray(r.material)) {
|
|
141
145
|
const n = [];
|
|
142
|
-
|
|
143
|
-
n.push(o(
|
|
146
|
+
r.material.forEach((a) => {
|
|
147
|
+
n.push(o(a));
|
|
144
148
|
}), s.material = n;
|
|
145
149
|
} else
|
|
146
|
-
s.material = o(
|
|
147
|
-
} else
|
|
150
|
+
s.material = o(r.material);
|
|
151
|
+
} else t.search("camera") > -1 ? e.type === "PerspectiveCamera" ? s.perspectiveCameraInfo = {
|
|
148
152
|
fov: e.fov,
|
|
149
153
|
zoom: e.zoom,
|
|
150
154
|
near: e.near,
|
|
@@ -161,7 +165,7 @@ function x(e) {
|
|
|
161
165
|
right: e.right,
|
|
162
166
|
top: e.top,
|
|
163
167
|
bottom: e.bottom
|
|
164
|
-
}) :
|
|
168
|
+
}) : t.search("light") > -1 && (s.lightInfo = {
|
|
165
169
|
color: e.color,
|
|
166
170
|
intensity: e.intensity,
|
|
167
171
|
decay: e.decay,
|
|
@@ -174,86 +178,89 @@ function x(e) {
|
|
|
174
178
|
});
|
|
175
179
|
return s;
|
|
176
180
|
}
|
|
177
|
-
function
|
|
178
|
-
const
|
|
179
|
-
switch (
|
|
181
|
+
function y(e, s) {
|
|
182
|
+
const t = s.split(".");
|
|
183
|
+
switch (t.length) {
|
|
180
184
|
case 1:
|
|
181
|
-
return e[
|
|
185
|
+
return e[t[0]];
|
|
182
186
|
case 2:
|
|
183
|
-
return e[
|
|
187
|
+
return e[t[0]][t[1]];
|
|
184
188
|
case 3:
|
|
185
|
-
return e[
|
|
189
|
+
return e[t[0]][t[1]][t[2]];
|
|
186
190
|
case 4:
|
|
187
|
-
return e[
|
|
191
|
+
return e[t[0]][t[1]][t[2]][t[3]];
|
|
188
192
|
case 5:
|
|
189
|
-
return e[
|
|
193
|
+
return e[t[0]][t[1]][t[2]][t[3]][t[4]];
|
|
190
194
|
case 6:
|
|
191
|
-
return e[
|
|
195
|
+
return e[t[0]][t[1]][t[2]][t[3]][t[4]][t[5]];
|
|
192
196
|
}
|
|
193
197
|
}
|
|
194
|
-
function
|
|
195
|
-
for (const
|
|
198
|
+
function v(e, s) {
|
|
199
|
+
for (const t in s) e[t] = s[t];
|
|
196
200
|
}
|
|
197
|
-
function
|
|
201
|
+
function w(e, s, t) {
|
|
198
202
|
if (e === void 0) {
|
|
199
|
-
console.log(`Hermes - Can't set props: ${s}`,
|
|
203
|
+
console.log(`Hermes - Can't set props: ${s}`, t);
|
|
200
204
|
return;
|
|
201
205
|
}
|
|
202
|
-
const
|
|
203
|
-
if (typeof
|
|
206
|
+
const r = s.split("."), n = r.length;
|
|
207
|
+
if (typeof t != "object")
|
|
204
208
|
switch (n) {
|
|
205
209
|
case 1:
|
|
206
|
-
e[
|
|
210
|
+
e[r[0]] = t;
|
|
207
211
|
break;
|
|
208
212
|
case 2:
|
|
209
|
-
e[
|
|
213
|
+
e[r[0]][r[1]] = t;
|
|
210
214
|
break;
|
|
211
215
|
case 3:
|
|
212
|
-
e[
|
|
216
|
+
e[r[0]][r[1]][r[2]] = t;
|
|
213
217
|
break;
|
|
214
218
|
case 4:
|
|
215
|
-
e[
|
|
219
|
+
e[r[0]][r[1]][r[2]][r[3]] = t;
|
|
216
220
|
break;
|
|
217
221
|
case 5:
|
|
218
|
-
e[
|
|
222
|
+
e[r[0]][r[1]][r[2]][r[3]][r[4]] = t;
|
|
219
223
|
break;
|
|
220
224
|
}
|
|
221
225
|
else {
|
|
222
|
-
let
|
|
226
|
+
let i;
|
|
223
227
|
switch (n) {
|
|
224
228
|
case 1:
|
|
225
|
-
|
|
229
|
+
i = e[r[0]];
|
|
226
230
|
break;
|
|
227
231
|
case 2:
|
|
228
|
-
|
|
232
|
+
i = e[r[0]][r[1]];
|
|
229
233
|
break;
|
|
230
234
|
case 3:
|
|
231
|
-
|
|
235
|
+
i = e[r[0]][r[1]][r[2]];
|
|
232
236
|
break;
|
|
233
237
|
case 4:
|
|
234
|
-
|
|
238
|
+
i = e[r[0]][r[1]][r[2]][r[3]];
|
|
235
239
|
break;
|
|
236
240
|
case 5:
|
|
237
|
-
|
|
241
|
+
i = e[r[0]][r[1]][r[2]][r[3]][r[4]];
|
|
238
242
|
break;
|
|
239
243
|
}
|
|
240
|
-
|
|
244
|
+
i != null ? v(i, t) : console.log(`Hermes - Can't set props because target isn't found: ${s}`, t);
|
|
241
245
|
}
|
|
242
246
|
}
|
|
243
|
-
function
|
|
244
|
-
return new Promise((s,
|
|
245
|
-
const
|
|
246
|
-
|
|
247
|
-
const n = new
|
|
247
|
+
function x(e) {
|
|
248
|
+
return new Promise((s, t) => {
|
|
249
|
+
const r = new Image();
|
|
250
|
+
r.onload = () => {
|
|
251
|
+
const n = new m(r);
|
|
248
252
|
n.wrapS = c, n.wrapT = c, n.needsUpdate = !0, s(n);
|
|
249
|
-
},
|
|
253
|
+
}, r.onerror = t, r.src = e;
|
|
250
254
|
});
|
|
251
255
|
}
|
|
256
|
+
const E = { stripObject: g, stripScene: p, getSubItem: y, setItemProps: w, textureFromSrc: x };
|
|
252
257
|
export {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
k as
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
258
|
+
E as EDITOR_UTILS,
|
|
259
|
+
C as convertImageToBase64,
|
|
260
|
+
k as determineIcon,
|
|
261
|
+
y as getSubItem,
|
|
262
|
+
w as setItemProps,
|
|
263
|
+
g as stripObject,
|
|
264
|
+
p as stripScene,
|
|
265
|
+
x as textureFromSrc
|
|
259
266
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const o=require("three"),c=require("three/examples/jsm/controls/TransformControls.js"),a=require("../../core/remote/RemoteThree.cjs"),l=require("../multiView/MultiView.cjs"),n=require("../../utils/three.cjs");class s extends o.EventDispatcher{static DRAG_START="Transform::dragStart";static DRAG_END="Transform::dragEnd";static _instance;three;activeCamera;controls=new Map;visibility=new Map;setApp(t){this.three=t,this.three.addEventListener(a.ToolEvents.SET_SCENE,this.setScene)}clear(){for(const t of this.controls.values()){t.detach(),t.disconnect();const e=t.getHelper();n.dispose(e)}this.controls=new Map,this.visibility=new Map}add(t){let e=this.controls.get(t);if(e===void 0){const i=document.querySelector(".clickable");e=new c.TransformControls(this.activeCamera,i),e.getHelper().name=t,e.setSize(.5),e.setSpace("local"),this.controls.set(t,e),this.visibility.set(t,!0),e.addEventListener("mouseDown",()=>{this.dispatchEvent({type:s.DRAG_START})}),e.addEventListener("mouseUp",()=>{this.dispatchEvent({type:s.DRAG_END})}),e.addEventListener("dragging-changed",r=>{l.instance?.toggleOrbitControls(r.value)})}return e}get(t){return this.controls.get(t)}remove(t){const e=this.get(t);return e===void 0?!1:(e.detach(),e.disconnect(),n.dispose(e.getHelper()),this.controls.delete(t),!0)}enabled(t){this.controls.forEach(e=>{e.enabled=t})}updateCamera(t,e){this.activeCamera=t,this.controls.forEach(i=>{i.camera!==t&&(i.camera=t,t.getWorldPosition(i.cameraPosition),t.getWorldQuaternion(i.cameraQuaternion)),i.domElement!==e&&(i.disconnect(),i.domElement=e,i.connect(e))})}show(){this.controls.forEach(t=>{const e=t.getHelper(),i=this.visibility.get(e.name);i!==void 0&&(e.visible=i)})}hide(){this.controls.forEach(t=>{const e=t.getHelper();this.visibility.set(e.name,e.visible),e.visible=!1})}setScene=()=>{this.clear()};static get instance(){return s._instance||(s._instance=new s),s._instance}}module.exports=s;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const s=require("three/webgpu"),h=require("three/src/math/MathUtils.js"),o=require("../../multiView/MultiView.cjs"),p=require("../Transform.cjs"),u=require("../../utils.cjs"),l=require("../../../utils/math.cjs"),g=require("../../../utils/three.cjs"),b=new s.BoxGeometry,c=new s.Vector2;class m extends s.Object3D{curve=new s.CatmullRomCurve3;line;draggable;curvePos;tension=.5;closed=!1;subdivide=50;curveType;offset=1;lineMaterial;_camera;_curvePercentage=0;_draggableScale=10;_transform;raycaster;draggedMat=new s.MeshBasicMaterial;parentGroup;group;constructor(e,t){const i=new s.Color(h.lerp(.5,1,Math.random()),h.lerp(.5,1,Math.random()),h.lerp(.5,1,Math.random()));super(),this.name=e,this.lineMaterial=new s.LineBasicMaterial({color:i}),this.line=new s.Line(new s.BufferGeometry,this.lineMaterial),this.line.name="line",this.line.visible=!1,this.add(this.line),this._camera=t,this.curveType="catmullrom",this.draggedMat.color=i,this.draggable=new s.Object3D,this.draggable.name="draggablePoints",this.add(this.draggable),this.curvePos=new s.Mesh(new s.SphereGeometry(1.5),new s.MeshBasicMaterial({color:i})),this.curvePos.name="curvePos",this.curvePos.scale.setScalar(this._draggableScale),this.curvePos.visible=!1,this.add(this.curvePos),this.raycaster=new s.Raycaster,this.raycaster.params.Line.threshold=3,this.enable()}enable(){document.addEventListener("pointerdown",this.onMouseClick)}disable(){document.removeEventListener("pointerdown",this.onMouseClick)}dispose=()=>{this._transform&&(this._transform.removeEventListener("objectChange",this.updateSpline),p.instance.remove(this.name)),this.disable(),this.parentGroup.removeGroup(this.name)};hideTransform=()=>{this._transform?.detach()};exportSpline=()=>{const e=[];this.draggable.children.forEach(t=>{e.push([l.roundTo(t.position.x,3),l.roundTo(t.position.y,3),l.roundTo(t.position.z,3)])}),u.copyToClipboard({name:this.name,points:e,tension:this.tension,closed:this.closed,subdivide:this.subdivide,type:this.curveType}),console.log("Spline copied!")};showPoints=(e=!0)=>{this.draggable.visible=e};addPoints=(e=[])=>{if(e.length>0){const t=e.length-1;for(let i=0;i<t;i++)this.addPoint(e[i],!1);this.addPoint(e[t])}};addPoint=(e,t=!0)=>{const i=this.draggable.children.length,n=new s.Mesh(b,this.draggedMat);n.name=`point_${i}`,n.position.copy(e),n.scale.setScalar(this._draggableScale),this.draggable.add(n),this._transform?.attach(n);const a=this.points.length>1;return a&&t&&this.updateSpline(),this.line.visible=a,this.updateCurrentPoint(),n};addNextPt=()=>{const e=this.draggable.children.length,t=e>1?this.draggable.children[e-1].position.clone():new s.Vector3,i=this.addPoint(t);this.updateField(i.position)};removePoint=e=>{if(this._transform?.object===e){this._transform?.detach();const t=this.draggable.children[this.draggable.children.length-1];this._transform?.attach(t),this.updateField(t.position)}g.dispose(e),this.updateSpline()};removePointAt=e=>{const t=this.draggable.children[e];this.removePoint(t)};removeSelectedPt=()=>{this._transform?.object!==void 0&&this.removePoint(this._transform?.object)};updateLastPoint(e){const t=this.draggable.children.length;t>0&&(this.draggable.children[t-1].position.copy(e),this.updateSpline())}updateSpline=()=>{this.points.length<2||(this.curve=new s.CatmullRomCurve3(this.points,this.closed,this.curveType,this.tension),this.line.geometry.dispose(),this.line.geometry=new s.BufferGeometry().setFromPoints(this.curve.getPoints(this.subdivide)),this.curvePos.position.copy(this.getPointAt(this._curvePercentage)))};updateField(e){this.group.current?.setField("Current Point",e)}onMouseClick=e=>{if(!o.instance||!o.instance.currentWindow||this._transform&&!this._transform.getHelper().visible)return;const i=o.instance.currentWindow.current.getBoundingClientRect();c.x=(e.clientX-i.x)/i.width*2-1,c.y=-((e.clientY-i.y)/i.height)*2+1,this.raycaster.setFromCamera(c,this.camera);const n=this.raycaster.intersectObjects(this.draggable.children,!1);if(n.length>0){const a=n[0].object;a!==this._transform?.object&&(this._transform?.attach(a),this.updateField(a.position))}};getPointAt(e){return this.curve.points.length>1?this.curve.getPointAt(e):this.curve.points.length===1?this.curve.points[0]:new s.Vector3}getTangentAt(e){return this.curve.getTangentAt(e)}get points(){const e=[];return this.draggable.children.forEach(t=>{e.push(t.position)}),e}get total(){return this.draggable.children.length}get draggableScale(){return this._draggableScale}set draggableScale(e){this._draggableScale=e,this.draggable.children.forEach(t=>t.scale.setScalar(e)),this.curvePos.scale.setScalar(e)}get camera(){return this._camera}set camera(e){this._camera=e,this._transform!==void 0&&(this._transform.camera=e)}get curvePercentage(){return this._curvePercentage}set curvePercentage(e){this._curvePercentage=e,this.curvePos.position.copy(this.getPointAt(e))}updateCurrentPoint(){if(this._transform?.object&&this.group){const e=this._transform?.object;e.name.search("point")>-1&&this.updateField(e.position)}}onUpdateTransform=()=>{this.updateCurrentPoint(),this.updateSpline()};initDebug(e,t){const i=this.draggable.children;this.visible=t,this.parentGroup=e,this._transform=p.instance.add(this.name),this._transform.camera=this._camera,this._transform.addEventListener("objectChange",this.onUpdateTransform),i.length>0&&this._transform.attach(i[i.length-1]),o.instance?.helpersContainer.add(this._transform.getHelper());const n=i.length>0?i[i.length-1].position:{x:0,y:0,z:0};this.group=e.addGroup({title:this.name,expanded:t,items:[{prop:"Closed",type:"boolean",value:this.closed},{prop:"Visible",type:"boolean",value:this.visible},{prop:"Show Position",type:"boolean",value:this.curvePos.visible},{prop:"Show Points",type:"boolean",value:this.draggable.visible},{prop:"Color",type:"color",value:`#${this.draggedMat.color.getHexString()}`},{prop:"Curve",type:"option",options:[{title:"Catmullrom",value:"catmullrom"},{title:"Centripetal",value:"centripetal"},{title:"Chordal",value:"chordal"}]},{prop:"Draggable Scale",type:"range",min:.01,max:100,step:.01,value:this._draggableScale},{prop:"Subdivide",type:"range",min:1,max:1e3,step:1,value:this.subdivide},{prop:"Tension",type:"range",min:0,max:1,step:.01,value:this.tension},{prop:"New Pt Offset",type:"range",min:0,max:10,value:this.offset},{prop:"Curve At",type:"range",min:0,max:1,step:.01,value:0},{prop:"Toggle Transform",type:"button"},{prop:"Add Point",type:"button"},{prop:"Remove Point",type:"button"},{prop:"Export",type:"button"},{prop:"Delete",type:"button"},{prop:"Current Point",type:"grid3",value:n}],onUpdate:(a,r)=>{switch(a){case"Closed":this.closed=r,this.updateSpline();break;case"Visible":this.visible=r;break;case"Color":this.lineMaterial.color.setStyle(r),this.draggedMat.color.setStyle(r);break;case"Curve":this.curveType=r,this.updateSpline();break;case"Draggable Scale":this.draggableScale=r;break;case"Subdivide":this.subdivide=r,this.updateSpline();break;case"Tension":this.tension=r,this.updateSpline();break;case"New Pt Offset":this.offset=r;break;case"Curve At":this.curvePos.position.copy(this.getPointAt(r));break;case"Show Position":this.curvePos.visible=r;break;case"Show Points":this.draggable.visible=r;break;case"Toggle Transform":this._transform&&(this._transform.getHelper().visible=!this._transform.getHelper().visible);break;case"Add Point":this.addNextPt();break;case"Remove Point":this.removeSelectedPt();break;case"Export":this.exportSpline();break;case"Delete":this.parent.currentSpline=null,g.dispose(this);break;case"Current Point":if(this.group.current&&this._transform?.object){const d=this._transform?.object;d.name.search("point")>-1&&(d.position.copy(r),this.updateSpline())}break}}}),this.draggable.children.forEach(a=>{this.debugPoint(a)})}debugPoint=e=>{e.name,e.visible=this.draggable.visible}}module.exports=m;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const a=require("three"),w=require("./Spline.cjs"),D=require("../../sidePanel/DebugData.cjs"),g=require("../../multiView/MultiView.cjs"),C=require("../../../core/remote/RemoteThree.cjs");let S=0;class M extends a.Object3D{defaultScale=10;currentSpline=null;_camera;group=null;three;splineDataText="";constructor(e,t){super(),this.name="Spline Editor",this._camera=e,this.three=t,this.three.addEventListener(C.ToolEvents.ADD_SPLINE,this.onAddSpline)}initDebug(){this.group=D.addEditorGroup({title:this.name,items:[{type:"field",prop:"Spline Data",value:"",disabled:!1},{type:"button",prop:"Import Spline"},{type:"button",prop:"New Spline"},{type:"boolean",prop:"Show Points",value:!0},{type:"boolean",prop:"Draw Mode",value:!1},{type:"boolean",prop:"Visible",value:this.visible},{type:"range",prop:"Default Scale",min:0,max:50,step:.01,value:this.defaultScale}],onUpdate:(e,t)=>{switch(e){case"New Spline":this.createSpline();break;case"Spline Data":this.splineDataText=t;break;case"Import Spline":this.createSplineFromJSON(JSON.parse(this.splineDataText));break;case"Show Points":this.showPoints(t);break;case"Visible":this.visible=t;break;case"Default Scale":this.defaultScale=t;break;case"Draw Mode":t?this.enableClickToDraw():this.disableClickToDraw();break}}})}dispose(){this.three.removeEventListener(C.ToolEvents.ADD_SPLINE,this.onAddSpline),D.removeEditorGroup(this.name)}addSpline(e,t){e.draggableScale=this.defaultScale,e.hideTransform(),this.group?.current!==null&&e.initDebug(this.group.current,t),this.add(e),this.currentSpline=e}createSpline=(e=[])=>{const t=`Spline ${S+1}`,i=new w(t,this._camera);return i.addPoints(e),this.addSpline(i,!0),S++,i};createSplineFromArray=e=>{const t=[];return e.forEach(i=>{t.push(new a.Vector3(i[0],i[1],i[2]))}),this.createSpline(t)};createSplineFromCatmullRom=e=>this.createSpline(e.points);createSplineFromJSON=e=>{const t=[];e.points.forEach(n=>{t.push(new a.Vector3(n[0],n[1],n[2]))});const i=new w(e.name,this._camera);return i.closed=e.closed,i.subdivide=e.subdivide,i.tension=e.tension,i.type=e.type,i.addPoints(t),i.updateSpline(),this.addSpline(i,!1),i};showPoints=(e=!0)=>{this.children.forEach(t=>{t.showPoints(e)})};onAddSpline=e=>{const t=JSON.parse(e.value),i=t.name!==void 0?t.name:`Spline ${S+1}`,n=new w(i,this.camera);t.tension!==void 0&&(n.tension=t.tension),t.closed!==void 0&&(n.closed=t.closed),t.subdivide!==void 0&&(n.subdivide=t.subdivide),t.type!==void 0&&(n.curveType=t.type);const s=[];t.points.forEach(r=>{s.push(new a.Vector3(r[0],r[1],r[2]))}),n.addPoints(s),this.addSpline(n,!1),S++};isMouseDown=!1;enableClickToDraw(){document.querySelectorAll(".clickable").forEach(e=>{e.addEventListener("mousedown",this.onClickCanvas),e.addEventListener("mousemove",this.onMouseMove),e.addEventListener("mouseup",this.onMouseUp)})}disableClickToDraw(){document.querySelectorAll(".clickable").forEach(e=>{e.removeEventListener("mousedown",this.onClickCanvas),e.removeEventListener("mousemove",this.onMouseMove),e.removeEventListener("mouseup",this.onMouseUp)})}onClickCanvas=e=>{if(e.button!==0)return;if(this._camera.type!=="OrthographicCamera"){console.warn("Spline Editor - 3D Camera not supported in Draw Mode");return}const i=e.target.getBoundingClientRect(),n=(e.clientX-i.left)/i.width*2-1,s=-((e.clientY-i.top)/i.height)*2+1;if(g.instance){const o=new a.Raycaster;o.setFromCamera(new a.Vector2(n,s),this._camera);const l=o.intersectObjects(g.instance.helpersContainer.children,!0);for(let p=0;p<l.length;p++){const c=l[p];if(!(c.object.isLine||c.object.isTransformControlsPlane)&&c.object.isObject3D)return}}this.currentSpline===null&&(this.currentSpline=this.createSpline());const r=this.mouseToSplinePos(n,s,i.width,i.height);this.currentSpline?.addPoint(r),this.isMouseDown=!0};onMouseMove=e=>{if(!this.isMouseDown)return;const i=e.target.getBoundingClientRect(),n=(e.clientX-i.left)/i.width*2-1,s=-((e.clientY-i.top)/i.height)*2+1,r=this.mouseToSplinePos(n,s,i.width,i.height);this.currentSpline?.updateLastPoint(r),this.currentSpline?.updateField(r)};onMouseUp=()=>{this.isMouseDown=!1};mouseToSplinePos(e,t,i,n){const s=new a.Vector3,r=Math.PI/2,o=this._camera,l=o.zoom,p=o.rotation.x===-6123233995736766e-32&&o.rotation.y===0&&o.rotation.z===0,c=o.rotation.x===-Math.PI&&o.rotation.y===12246467991473532e-32&&o.rotation.z===Math.PI,E=o.rotation.x===-6162975822039155e-48&&o.rotation.y===-r&&o.rotation.z===0,v=o.rotation.x===-6162975822039155e-48&&o.rotation.y===r&&o.rotation.z===0,y=o.rotation.x===-1.5707953264174506&&o.rotation.y===0&&o.rotation.z===0,k=o.rotation.x===1.5707953264174506&&o.rotation.y===0&&o.rotation.z===0;let h=e,m=t;c||v?h*=-1:y&&(m*=-1);const f=i/2/l,b=n/2/l;if(this.currentSpline===null&&(this.currentSpline=this.createSpline()),p||c){const u=h*f+o.position.x,d=m*b+o.position.y;s.set(u,d,0)}else if(E||v){const u=h*f+o.position.z,d=m*b+o.position.y;s.set(0,d,u)}else if(y||k){const u=h*f+o.position.x,d=m*b+o.position.z;s.set(u,0,d)}return s}get camera(){return this._camera}set camera(e){this._camera=e,this.children.forEach(t=>{const i=t;i.camera=e})}}module.exports=M;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function d(t){return t.substring(0,1).toUpperCase()+t.substring(1)}function g(t){const o=JSON.stringify(t);return navigator.clipboard.writeText(o),o}function l(){return Math.round(Math.random()*1e6).toString()}function p(t){return t.r!==void 0&&t.g!==void 0&&t.b!==void 0}function b(t){const o=Math.round(t.r*255),e=Math.round(t.g*255),i=Math.round(t.b*255),n=s=>{const r=s.toString(16);return r.length===1?"0"+r:r},c=n(o),u=n(e),a=n(i);return"#"+c+u+a}exports.capitalize=d;exports.colorToHex=b;exports.copyToClipboard=g;exports.isColor=p;exports.randomID=l;
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./core/types.cjs"),s=require("./utils/detectSettings.cjs"),c=require("./utils/ImageSequenceCapturer.cjs"),t=require("./utils/math.cjs"),r=require("./utils/theatre.cjs"),e=require("./utils/three.cjs"),a=require("./utils/post.cjs"),n=require("./webworkers/EventHandling.cjs"),i=require("./webworkers/ProxyManager.cjs"),l=require("./core/Application.cjs"),p=require("./core/remote/BaseRemote.cjs"),m=require("./core/remote/RemoteTheatre.cjs"),u=require("./core/remote/RemoteThree.cjs"),d=require("./editor/HermesApp.cjs");exports.defaultTheatreCallback=o.defaultTheatreCallback;exports.noop=o.noop;exports.detectMaxFrameRate=s.detectMaxFrameRate;exports.detectSettings=s.detectSettings;exports.ImageSequenceCapturer=c.ImageSequenceCapturer;exports.clamp=t.clamp;exports.cubicBezier=t.cubicBezier;exports.damp=t.damp;exports.distance=t.distance;exports.getAngle=t.getAngle;exports.map=t.map;exports.mix=t.mix;exports.normalize=t.normalize;exports.rgbaToHex=t.rgbaToHex;exports.roundTo=t.roundTo;exports.animateObjectMaterial=r.animateObjectMaterial;exports.animateObjectTransform=r.animateObjectTransform;exports.applyObjectMaterial=r.applyObjectMaterial;exports.customizeTheatreElements=r.customizeTheatreElements;exports.getObjectMaterialObject=r.getObjectMaterialObject;exports.getObjectMaterialProps=r.getObjectMaterialProps;exports.useStudio=r.useStudio;exports.ExportTexture=e.ExportTexture;exports.anchorGeometry=e.anchorGeometry;exports.anchorGeometryTL=e.anchorGeometryTL;exports.createMask=e.createMask;exports.dispose=e.dispose;exports.disposeMaterial=e.disposeMaterial;exports.disposeTexture=e.disposeTexture;exports.hierarchyUUID=e.hierarchyUUID;exports.orthoCamera=e.orthoCamera;exports.parseModelLite=e.parseModelLite;exports.renderToTexture=e.renderToTexture;exports.resetThreeObjects=e.resetThreeObjects;exports.setMaterialBlendAdd=e.setMaterialBlendAdd;exports.setMaterialBlendMultiply=e.setMaterialBlendMultiply;exports.setMaterialBlendNormal=e.setMaterialBlendNormal;exports.setMaterialBlendScreen=e.setMaterialBlendScreen;exports.supportsOffscreenCanvas=e.supportsOffscreenCanvas;Object.defineProperty(exports,"totalThreeObjects",{enumerable:!0,get:()=>e.totalThreeObjects});exports.triangle=e.triangle;exports.updateCameraOrtho=e.updateCameraOrtho;exports.updateCameraOrtho16x9=e.updateCameraOrtho16x9;exports.useMask=e.useMask;exports.clearComposerGroups=a.clearComposerGroups;exports.generateCubemap=a.generateCubemap;exports.inspectComposer=a.inspectComposer;exports.inspectComposerPass=a.inspectComposerPass;exports.ElementProxy=n.ElementProxy;exports.WebworkerEventHandlers=n.WebworkerEventHandlers;exports.ElementProxyReceiver=i.ElementProxyReceiver;exports.ProxyManager=i.ProxyManager;exports.Application=l;exports.BaseRemote=p;exports.RemoteTheatre=m;exports.RemoteThree=u.default;exports.HermesApp=d;
|