6 lines
64 KiB
JavaScript
6 lines
64 KiB
JavaScript
|
|
import{$ as e,At as t,Bt as n,C as r,Ct as i,Dt as a,E as o,Et as s,Ht as c,K as l,Mt as u,Ot as d,Pt as f,S as p,St as m,bt as h,c as g,d as _,dt as v,et as y,f as b,ft as x,h as S,ht as C,it as w,l as T,o as E,ot as D,p as O,pt as k,r as A,u as j,v as M,wt as N,x as P,yt as F,zt as I}from"./three.module-BFsVh7r1.js";import{t as L}from"./fflate.module-BIQmJeC9.js";var R=/^def\s+(?:(\w+)\s+)?"?([^"]+)"?$/,z=/^string\s+(\w+)$/,B=/^(?:uniform\s+)?(\w+(?:\[\])?)\s+(.+)$/,V=class{parseText(e){e=this._preprocess(e);let t={},n=e.split(`
|
||
|
|
`),r=null,i=t,a=[t];for(let e of n)if(e.includes(`=`)){let t=this._findAssignmentOperator(e);if(t===-1){r=e.trim();continue}let n=e.slice(0,t).trim(),o=e.slice(t+1).trim();if(o.endsWith(`{`)){let e={};a.push(e),i[n]=e,i=e}else if(o.endsWith(`(`)){let e=o.slice(0,-1);i[n]=e;let t={};a.push(t),i=t}else i[n]=o}else if(e.includes(`:`)&&!e.includes(`=`)){let t=e.indexOf(`:`),n=e.slice(0,t).trim(),r=e.slice(t+1).trim();/^[\d.]+$/.test(n)&&(i[n]=r)}else if(e.endsWith(`{`)){let e=i[r]||{};a.push(e),i[r]=e,i=e}else if(e.endsWith(`}`)){if(a.pop(),a.length===0)continue;i=a[a.length-1]}else if(e.endsWith(`(`)){let t={};a.push(t),r=e.split(`(`)[0].trim()||r,i[r]=t,i=t}else e.endsWith(`)`)?(a.pop(),i=a[a.length-1]):e.trim()&&(r=e.trim());return t}_preprocess(e){e=this._stripBlockComments(e),e=this._collapseTripleQuotedStrings(e);let t=e.split(`
|
||
|
|
`),n=[],r=!1,i=0,a=0,o=``;for(let e=0;e<t.length;e++){let s=t[e];s=this._stripInlineComment(s);let c=s.trim();if(r){o+=` `+c;for(let e of c)e===`[`?i++:e===`]`?i--:e===`(`&&i>0?a++:e===`)`&&i>0&&a--;i===0&&a===0&&(n.push(o),o=``,r=!1)}else{if(c.includes(`=`)){let e=this._findAssignmentOperator(c);if(e!==-1){let t=c.slice(e+1).trim(),n=0,s=0;for(let e of t)e===`[`?n++:e===`]`&&s++;if(n>s){r=!0,i=n-s,a=0,o=c;continue}}}n.push(c)}}return n.join(`
|
||
|
|
`)}_stripBlockComments(e){let t=``,n=0;for(;n<e.length;)if(e[n]===`/`&&n+1<e.length&&e[n+1]===`*`){let t=n+2;for(;t<e.length;){if(e[t]===`*`&&t+1<e.length&&e[t+1]===`/`){t+=2;break}t++}n=t}else t+=e[n],n++;return t}_collapseTripleQuotedStrings(e){let t=``,n=0;for(;n<e.length;){if(n+2<e.length){let r=e.slice(n,n+3);if(r===`'''`||r===`"""`){let i=r;for(t+=i,n+=3;n<e.length;)if(n+2<e.length&&e.slice(n,n+3)===i){t+=i,n+=3;break}else e[n]===`
|
||
|
|
`?t+=`\\n`:e[n]!==`\r`&&(t+=e[n]),n++;continue}}t+=e[n],n++}return t}_stripInlineComment(e){if(e.trim().startsWith(`#usda`))return e;let t=!1,n=null,r=!1;for(let i=0;i<e.length;i++){let a=e[i];if(r){r=!1;continue}if(a===`\\`){r=!0;continue}if(!t&&(a===`"`||a===`'`))t=!0,n=a;else if(t&&a===n)t=!1,n=null;else if(!t&&a===`#`)return e.slice(0,i).trimEnd()}return e}_findAssignmentOperator(e){let t=!1,n=null,r=!1;for(let i=0;i<e.length;i++){let a=e[i];if(r){r=!1;continue}if(a===`\\`){r=!0;continue}if(!t&&(a===`"`||a===`'`))t=!0,n=a;else if(t&&a===n)t=!1,n=null;else if(!t&&a===`=`)return i}return-1}parseData(e){let t=this.parseText(e),n={},r={Attribute:1,Prim:6,Relationship:8},i={};if(`#usda 1.0`in t){let e=t[`#usda 1.0`];e.upAxis&&(i.upAxis=e.upAxis.replace(/"/g,``)),e.defaultPrim&&(i.defaultPrim=e.defaultPrim.replace(/"/g,``)),e.metersPerUnit!==void 0&&(i.metersPerUnit=parseFloat(e.metersPerUnit))}n[`/`]={specType:r.Prim,fields:i};let a=(e,t)=>{let i=[];for(let o in e){if(o===`#usda 1.0`||o===`variants`)continue;let s=o.match(R);if(s){let c=s[1]||``,l=s[2],u=t===`/`?`/`+l:t+`/`+l;i.push(l);let d={typeName:c},f=e[o];this._extractPrimData(f,u,d,n,r),n[u]={specType:r.Prim,fields:d},a(f,u)}}i.length>0&&n[t]&&(n[t].fields.primChildren=i)};return a(t,`/`),{specsByPath:n}}_extractPrimData(e,t,n,r,i){if(!(!e||typeof e!=`object`))for(let a in e){if(a.startsWith(`def `))continue;if(a===`prepend references`){n.references=[e[a]];continue}if(a===`payload`){n.payload=e[a];continue}if(a===`variants`){let t={},r=e[a];for(let e in r){let n=e.match(z);if(n){let i=n[1];t[i]=r[e].replace(/"/g,``)}}Object.keys(t).length>0&&(n.variantSelection=t);continue}if(a.startsWith(`rel `)){let n=a.slice(4),o=t+`.`+n,s=e[a].replace(/[<>]/g,``);r[o]={specType:i.Relationship,fields:{targetPaths:[s]}};continue}if(a.includes(`xformOpOrder`)){n.xformOpOrder=e[a].replace(/[\[\]]/g,``).split(`,`).map(e=>e.trim().replace(/"/g,``));continue}let o=a.match(B);if(o){let n=o[1],s=o[2],c=e[a];if(s.endsWith(`.connect`)){let e=s.slice(0,-8),a=t+`.`+e,o=String(c).trim();o.startsWith(`<`)&&(o=o.slice(1)),o.endsWith(`>`)&&(o=o.slice(0,-1)),r[a]||(r[a]={specType:i.Attribute,fields:{typeName:n}}),r[a].fields.connectionPaths=[o];continue}if(s.endsWith(`.timeSamples`)&&typeof c==`object`){let e=s.slice(0,-12),a=t+`.`+e,o=[],l=[];for(let e in c){let t=parseFloat(e);isNaN(t)||(o.push(t),l.push(this._parseAttributeValue(n,c[e])))}let u=o.map((e,t)=>({t:e,v:l[t]})).sort((e,t)=>e.t-t.t);r[a]={specType:i.Attribute,fields:{timeSamples:{times:u.map(e=>e.t),values:u.map(e=>e.v)},typeName:n}}}else{let e=this._parseAttributeValue(n,c),a=t+`.`+s;r[a]={specType:i.Attribute,fields:{default:e,typeName:n}}}}}}_parseAttributeValue(e,t){if(t==null)return;let n=String(t).trim();if(e.endsWith(`[]`))try{let e=n.replace(/\(/g,`[`).replace(/\)/g,`]`);e.endsWith(`,`)&&(e=e.slice(0,-1));let t=JSON.parse(e);return Array.isArray(t)&&Array.isArray(t[0])?t.flat():t}catch{return n.replace(/[\[\]]/g,``).split(`,`).map(e=>{let t=e.trim(),n=parseFloat(t);return isNaN(n)?t.replace(/"/g,``):n})}if(e.includes(`3`)||e.includes(`2`)||e.includes(`4`))return n.replace(/[()]/g,``).split(`,`).map(e=>parseFloat(e.trim()));if(e.startsWith(`quat`)){let e=n.replace(/[()]/g,``).split(`,`).map(e=>parseFloat(e.trim()));return[e[1],e[2],e[3],e[0]]}return e.includes(`matrix`)?n.replace(/[()]/g,``).split(`,`).map(e=>parseFloat(e.trim())):e===`float`||e===`double`||e===`int`?parseFloat(n):e===`string`||e===`token`?this._parseString(n):e===`asset`?n.replace(/@/g,``).replace(/"/g,``):this._parseString(n)}_parseString(e){(e.startsWith(`"`)&&e.endsWith(`"`)||e.startsWith(`'`)&&e.endsWith(`'`))&&(e=e.slice(1,-1));let t=``,n=0;for(;n<e.length;)if(e[n]===`\\`&&n+1<e.length){let r=e[n+1];switch(r){case`n`:t+=`
|
||
|
|
`;break;case`t`:t+=` `;break;case`r`:t+=`\r`;break;case`\\`:t+=`\\`;break;case`"`:t+=`"`;break;case`'`:t+=`'`;break;default:t+=r;break}n+=2}else t+=e[n],n++;return t}},H=new TextDecoder,U=new Float32Array(32);for(let e=0;e<32;e++)U[e]=2**(e-15);var W=2**-14,G={Invalid:0,Bool:1,UChar:2,Int:3,UInt:4,Int64:5,UInt64:6,Half:7,Float:8,Double:9,String:10,Token:11,AssetPath:12,Matrix2d:13,Matrix3d:14,Matrix4d:15,Quatd:16,Quatf:17,Quath:18,Vec2d:19,Vec2f:20,Vec2h:21,Vec2i:22,Vec3d:23,Vec3f:24,Vec3h:25,Vec3i:26,Vec4d:27,Vec4f:28,Vec4h:29,Vec4i:30,Dictionary:31,TokenListOp:32,StringListOp:33,PathListOp:34,ReferenceListOp:35,IntListOp:36,Int64ListOp:37,UIntListOp:38,UInt64ListOp:39,PathVector:40,TokenVector:41,Specifier:42,Permission:43,Variability:44,VariantSelectionMap:45,TimeSamples:46,Payload:47,DoubleVector:48,LayerOffsetVector:49,StringVector:50,ValueBlock:51,Value:52,UnregisteredValue:53,UnregisteredValueListOp:54,PayloadListOp:55,TimeCode:56,PathExpression:57,Relocates:58,Spline:59,AnimationBlock:60},K=4294967295,ee=105,te=116;function q(e,t,n,r,i,a){for(;t<n;){let o=e[t++];if(t>n)break;let s=o>>4;if(s===15){let r;do{if(t>=n)break;r=e[t++],s+=r}while(r===255&&t<n)}if(s>0){t+s>n&&(s=n-t);for(let n=0;n<s&&!(i>=a);n++)r[i++]=e[t++]}if(t>=n||t+2>n)break;let c=e[t++]|e[t++]<<8;if(c===0)break;let l=(o&15)+4;if(l===19){let r;do{if(t>=n)break;r=e[t++],l+=r}while(r===255&&t<n)}let u=i-c;if(u<0)break;for(let e=0;e<l&&!(i>=a);e++)r[i++]=r[u+e]}return i}function J(e,t){let n=new Uint8Array(t),r=e[0];if(r===0)return q(e,1,e.length,n,0,t),n;{let i=1,a=[];for(let t=0;t<r;t++){let t=(e[i]|e[i+1]<<8|e[i+2]<<16|e[i+3]<<24)>>>0;a.push(t),i+=4}let o=i,s=0;for(let i=0;i<r;i++){let r=a[i],c=Math.min(65536,t-s);q(e,o,o+r,n,s,s+c),o+=r,s+=c}return n}}function Y(e,t){let n=t*4+(t*2+7>>3)+4;return ne(J(new Uint8Array(e),n),t)}function ne(e,t){let n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=0,i=n.getInt32(r,!0);r+=4;let a=t*2+7>>3,o=r,s=r+a,c=new Int32Array(t),l=0,u=o,d=s;for(let r=0;r<t;){let a=e[u++];for(let e=0;e<4&&r<t;e++,r++){let t=a>>e*2&3,o=0;switch(t){case 0:o=i;break;case 1:o=n.getInt8(d),d+=1;break;case 2:o=n.getInt16(d,!0),d+=2;break;case 3:o=n.getInt32(d,!0),d+=4;break}l+=o,c[r]=l}}return c}var re=class{constructor(e){this.buffer=e,this.view=new DataView(e),this.offset=0}seek(e){this.offset=e}tell(){return this.offset}readUint8(){let e=this.view.getUint8(this.offset);return this.offset+=1,e}readInt8(){let e=this.view.getInt8(this.offset);return this.offset+=1,e}readUint16(){let e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}readInt16(){let e=this.view.getInt16(this.offset,!0);return this.offset+=2,e}readUint32(){let e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}readInt32(){let e=this.view.getInt32(this.offset,!0);return this.offset+=4,e}readUint64(){let e=this.view.getUint32(this.offset,!0),t=this.view.getUint32(this.offset+4,!0);return this.offset+=8,t*4294967296+e}readInt64(){let e=this.view.getUint32(this.offset,!0),t=this.view.getInt32(this.offset+4,!0);return this.offset+=8,t*4294967296+e}readFloat32(){let e=this.view.getFloat32(this.offset,!0);return this.offset+=4,e}readFloat64(){let e=this.view.getFloat64(this.offset,!0);return this.offset+=8,e}readBytes(e){let t=new Uint8Array(this.buffer,this.offset,e);return this.offset+=e,t}readString(e){let t=this.readBytes(e),n=0;for(;n<e&&t[n]!==0;)n++;return H.decode(t.subarray(0,n))}},X=class{constructor(e,t){this.lo=e,this.hi=t}get isArray(){return(this.hi&2147483648)!=0}get isInlined(){return(this.hi&1073741824)!=0}get isCompressed(){return(this.hi&536870912)!=0}get typeEnum(){return this.hi>>16&255}get payload(){return this.lo+(this.hi&65535)*4294967296}getInlinedValue(){return this.lo}},ie=class{parseData(e){this.buffer=e instanceof ArrayBuffer?e:e.buffer,this.reader=new re(this.buffer),this.version={major:0,minor:0,patch:0},this._conversionBuffer=new ArrayBuffer(4),this._conversionView=new DataView(this._conversionBuffer),this._readBootstrap(),this._readTOC(),this._readTokens(),this._readStrings(),this._readFields(),this._readFieldSets(),this.
|