three-stdlib 2.10.2 → 2.10.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");exports.calcBSplineDerivatives=function(e,o,n,c,r){const l=r<e?r:e,s=[],i=this.findSpan(e,c,o),a=this.calcBasisFunctionDerivatives(i,c,e,l,o),f=[];for(let t=0;t<n.length;++t){const e=(u=n[t].clone()).w;u.x*=e,u.y*=e,u.z*=e,f[t]=u}for(let t=0;t<=l;++t){var u=f[i-e].clone().multiplyScalar(a[t][0]);for(let o=1;o<=e;++o)u.add(f[i-e+o].clone().multiplyScalar(a[t][o]));s[t]=u}for(let e=l+1;e<=r+1;++e)s[e]=new t.Vector4(0,0,0);return s},exports.calcBSplinePoint=function(e,o,n,c){const r=this.findSpan(e,c,o),l=this.calcBasisFunctions(r,c,e,o),s=new t.Vector4(0,0,0,0);for(let t=0;t<=e;++t){const o=n[r-e+t],c=l[t],i=o.w*c;s.x+=o.x*i,s.y+=o.y*i,s.z+=o.z*i,s.w+=o.w*c}return s},exports.calcBasisFunctionDerivatives=function(t,e,o,n,c){const r=[];for(let t=0;t<=o;++t)r[t]=0;const l=[];for(let t=0;t<=n;++t)l[t]=r.slice(0);const s=[];for(let t=0;t<=o;++t)s[t]=r.slice(0);s[0][0]=1;const i=r.slice(0),a=r.slice(0);for(let n=1;n<=o;++n){i[n]=e-c[t+1-n],a[n]=c[t+n]-e;let o=0;for(let t=0;t<n;++t){const e=a[t+1],c=i[n-t];s[n][t]=e+c;const r=s[t][n-1]/s[n][t];s[t][n]=o+e*r,o=c*r}s[n][n]=o}for(let t=0;t<=o;++t)l[0][t]=s[t][o];for(let t=0;t<=o;++t){let e=0,c=1;const i=[];for(let t=0;t<=o;++t)i[t]=r.slice(0);i[0][0]=1;for(let r=1;r<=n;++r){let n=0;const a=t-r,u=o-r;t>=r&&(i[c][0]=i[e][0]/s[u+1][a],n=i[c][0]*s[a][u]);const v=t-1<=u?r-1:o-t;for(let t=a>=-1?1:-a;t<=v;++t)i[c][t]=(i[e][t]-i[e][t-1])/s[u+1][a+t],n+=i[c][t]*s[a+t][u];t<=u&&(i[c][r]=-i[e][r-1]/s[u+1][t],n+=i[c][r]*s[t][u]),l[r][t]=n;var f=e;e=c,c=f}}var u=o;for(let t=1;t<=n;++t){for(let e=0;e<=o;++e)l[t][e]*=u;u*=o-t}return l},exports.calcBasisFunctions=function(t,e,o,n){const c=[],r=[],l=[];c[0]=1;for(let s=1;s<=o;++s){r[s]=e-n[t+1-s],l[s]=n[t+s]-e;let o=0;for(let t=0;t<s;++t){const e=l[t+1],n=r[s-t],i=c[t]/(e+n);c[t]=o+e*i,o=n*i}c[s]=o}return c},exports.calcKoverI=function(t,e){let o=1;for(let e=2;e<=t;++e)o*=e;let n=1;for(let t=2;t<=e;++t)n*=t;for(let o=2;o<=t-e;++o)n*=o;return o/n},exports.calcNURBSDerivatives=function(t,e,o,n,c){const r=this.calcBSplineDerivatives(t,e,o,n,c);return this.calcRationalCurveDerivatives(r)},exports.calcRationalCurveDerivatives=function(e){const o=e.length,n=[],c=[];for(let r=0;r<o;++r){const o=e[r];n[r]=new t.Vector3(o.x,o.y,o.z),c[r]=o.w}const r=[];for(let t=0;t<o;++t){const e=n[t].clone();for(let o=1;o<=t;++o)e.sub(r[t-o].clone().multiplyScalar(this.calcKoverI(t,o)*c[o]));r[t]=e.divideScalar(c[0])}return r},exports.calcSurfacePoint=function(e,o,n,c,r,l,s,i){const a=this.findSpan(e,l,n),f=this.findSpan(o,s,c),u=this.calcBasisFunctions(a,l,e,n),v=this.calcBasisFunctions(f,s,o,c),p=[];for(let n=0;n<=o;++n){p[n]=new t.Vector4(0,0,0,0);for(let t=0;t<=e;++t){const c=r[a-e+t][f-o+n].clone(),l=c.w;c.x*=l,c.y*=l,c.z*=l,p[n].add(c.multiplyScalar(u[t]))}}const d=new t.Vector4(0,0,0,0);for(let t=0;t<=o;++t)d.add(p[t].multiplyScalar(v[t]));d.divideScalar(d.w),i.set(d.x,d.y,d.z)},exports.findSpan=function(t,e,o){const n=o.length-t-1;if(e>=o[n])return n-1;if(e<=o[t])return t;let c=t,r=n,l=Math.floor((c+r)/2);for(;e<o[l]||e>=o[l+1];)e<o[l]?r=l:c=l,l=Math.floor((c+r)/2);return l};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("three");function e(t,e,o){const r=o.length-t-1;if(e>=o[r])return r-1;if(e<=o[t])return t;let l=t,n=r,c=Math.floor((l+n)/2);for(;e<o[c]||e>=o[c+1];)e<o[c]?n=c:l=c,c=Math.floor((l+n)/2);return c}function o(t,e,o,r){const l=[],n=[],c=[];l[0]=1;for(let s=1;s<=o;++s){n[s]=e-r[t+1-s],c[s]=r[t+s]-e;let o=0;for(let t=0;t<s;++t){const e=c[t+1],r=n[s-t],i=l[t]/(e+r);l[t]=o+e*i,o=r*i}l[s]=o}return l}function r(t,e,o,r,l){const n=[];for(let t=0;t<=o;++t)n[t]=0;const c=[];for(let t=0;t<=r;++t)c[t]=n.slice(0);const s=[];for(let t=0;t<=o;++t)s[t]=n.slice(0);s[0][0]=1;const i=n.slice(0),f=n.slice(0);for(let r=1;r<=o;++r){i[r]=e-l[t+1-r],f[r]=l[t+r]-e;let o=0;for(let t=0;t<r;++t){const e=f[t+1],l=i[r-t];s[r][t]=e+l;const n=s[t][r-1]/s[r][t];s[t][r]=o+e*n,o=l*n}s[r][r]=o}for(let t=0;t<=o;++t)c[0][t]=s[t][o];for(let t=0;t<=o;++t){let e=0,l=1;const i=[];for(let t=0;t<=o;++t)i[t]=n.slice(0);i[0][0]=1;for(let n=1;n<=r;++n){let r=0;const f=t-n,u=o-n;t>=n&&(i[l][0]=i[e][0]/s[u+1][f],r=i[l][0]*s[f][u]);const p=t-1<=u?n-1:o-t;for(let t=f>=-1?1:-f;t<=p;++t)i[l][t]=(i[e][t]-i[e][t-1])/s[u+1][f+t],r+=i[l][t]*s[f+t][u];t<=u&&(i[l][n]=-i[e][n-1]/s[u+1][t],r+=i[l][n]*s[t][u]),c[n][t]=r;var a=e;e=l,l=a}}var u=o;for(let t=1;t<=r;++t){for(let e=0;e<=o;++e)c[t][e]*=u;u*=o-t}return c}function l(o,l,n,c,s){const i=s<o?s:o,f=[],a=e(o,c,l),u=r(a,c,o,i,l),p=[];for(let t=0;t<n.length;++t){const e=(v=n[t].clone()).w;v.x*=e,v.y*=e,v.z*=e,p[t]=v}for(let t=0;t<=i;++t){var v=p[a-o].clone().multiplyScalar(u[t][0]);for(let e=1;e<=o;++e)v.add(p[a-o+e].clone().multiplyScalar(u[t][e]));f[t]=v}for(let e=i+1;e<=s+1;++e)f[e]=new t.Vector4(0,0,0);return f}function n(t,e){let o=1;for(let e=2;e<=t;++e)o*=e;let r=1;for(let t=2;t<=e;++t)r*=t;for(let o=2;o<=t-e;++o)r*=o;return o/r}function c(e){const o=e.length,r=[],l=[];for(let n=0;n<o;++n){const o=e[n];r[n]=new t.Vector3(o.x,o.y,o.z),l[n]=o.w}const c=[];for(let t=0;t<o;++t){const e=r[t].clone();for(let o=1;o<=t;++o)e.sub(c[t-o].clone().multiplyScalar(n(t,o)*l[o]));c[t]=e.divideScalar(l[0])}return c}exports.calcBSplineDerivatives=l,exports.calcBSplinePoint=function(r,l,n,c){const s=e(r,c,l),i=o(s,c,r,l),f=new t.Vector4(0,0,0,0);for(let t=0;t<=r;++t){const e=n[s-r+t],o=i[t],l=e.w*o;f.x+=e.x*l,f.y+=e.y*l,f.z+=e.z*l,f.w+=e.w*o}return f},exports.calcBasisFunctionDerivatives=r,exports.calcBasisFunctions=o,exports.calcKoverI=n,exports.calcNURBSDerivatives=function(t,e,o,r,n){return c(l(t,e,o,r,n))},exports.calcRationalCurveDerivatives=c,exports.calcSurfacePoint=function(r,l,n,c,s,i,f,a){const u=e(r,i,n),p=e(l,f,c),v=o(u,i,r,n),x=o(p,f,l,c),d=[];for(let e=0;e<=l;++e){d[e]=new t.Vector4(0,0,0,0);for(let t=0;t<=r;++t){const o=s[u-r+t][p-l+e].clone(),n=o.w;o.x*=n,o.y*=n,o.z*=n,d[e].add(o.multiplyScalar(v[t]))}}const w=new t.Vector4(0,0,0,0);for(let t=0;t<=l;++t)w.add(d[t].multiplyScalar(x[t]));w.divideScalar(w.w),a.set(w.x,w.y,w.z)},exports.findSpan=e;
@@ -94,8 +94,8 @@ function calcBasisFunctions(span, u, p, U) {
94
94
  */
95
95
 
96
96
  function calcBSplinePoint(p, U, P, u) {
97
- const span = this.findSpan(p, u, U);
98
- const N = this.calcBasisFunctions(span, u, p, U);
97
+ const span = findSpan(p, u, U);
98
+ const N = calcBasisFunctions(span, u, p, U);
99
99
  const C = new Vector4(0, 0, 0, 0);
100
100
 
101
101
  for (let j = 0; j <= p; ++j) {
@@ -228,8 +228,8 @@ function calcBasisFunctionDerivatives(span, u, p, n, U) {
228
228
  function calcBSplineDerivatives(p, U, P, u, nd) {
229
229
  const du = nd < p ? nd : p;
230
230
  const CK = [];
231
- const span = this.findSpan(p, u, U);
232
- const nders = this.calcBasisFunctionDerivatives(span, u, p, du, U);
231
+ const span = findSpan(p, u, U);
232
+ const nders = calcBasisFunctionDerivatives(span, u, p, du, U);
233
233
  const Pw = [];
234
234
 
235
235
  for (let i = 0; i < P.length; ++i) {
@@ -307,7 +307,7 @@ function calcRationalCurveDerivatives(Pders) {
307
307
  const v = Aders[k].clone();
308
308
 
309
309
  for (let i = 1; i <= k; ++i) {
310
- v.sub(CK[k - i].clone().multiplyScalar(this.calcKoverI(k, i) * wders[i]));
310
+ v.sub(CK[k - i].clone().multiplyScalar(calcKoverI(k, i) * wders[i]));
311
311
  }
312
312
 
313
313
  CK[k] = v.divideScalar(wders[0]);
@@ -328,8 +328,8 @@ function calcRationalCurveDerivatives(Pders) {
328
328
  */
329
329
 
330
330
  function calcNURBSDerivatives(p, U, P, u, nd) {
331
- const Pders = this.calcBSplineDerivatives(p, U, P, u, nd);
332
- return this.calcRationalCurveDerivatives(Pders);
331
+ const Pders = calcBSplineDerivatives(p, U, P, u, nd);
332
+ return calcRationalCurveDerivatives(Pders);
333
333
  }
334
334
  /*
335
335
  Calculate rational B-Spline surface point. See The NURBS Book, page 134, algorithm A4.3.
@@ -343,10 +343,10 @@ function calcNURBSDerivatives(p, U, P, u, nd) {
343
343
  */
344
344
 
345
345
  function calcSurfacePoint(p, q, U, V, P, u, v, target) {
346
- const uspan = this.findSpan(p, u, U);
347
- const vspan = this.findSpan(q, v, V);
348
- const Nu = this.calcBasisFunctions(uspan, u, p, U);
349
- const Nv = this.calcBasisFunctions(vspan, v, q, V);
346
+ const uspan = findSpan(p, u, U);
347
+ const vspan = findSpan(q, v, V);
348
+ const Nu = calcBasisFunctions(uspan, u, p, U);
349
+ const Nv = calcBasisFunctions(vspan, v, q, V);
350
350
  const temp = [];
351
351
 
352
352
  for (let l = 0; l <= q; ++l) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@babel/runtime/helpers/defineProperty"),e=require("three");function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=i(t);exports.STLExporter=class{constructor(){s.default(this,"binary",void 0),s.default(this,"output",void 0),s.default(this,"offset",void 0),s.default(this,"objects",void 0),s.default(this,"triangles",void 0),s.default(this,"vA",void 0),s.default(this,"vB",void 0),s.default(this,"vC",void 0),s.default(this,"cb",void 0),s.default(this,"ab",void 0),s.default(this,"normal",void 0),this.binary=!1,this.output="",this.offset=80,this.objects=[],this.triangles=0,this.vA=new e.Vector3,this.vB=new e.Vector3,this.vC=new e.Vector3,this.cb=new e.Vector3,this.ab=new e.Vector3,this.normal=new e.Vector3}parse(t,i){if(this.binary=void 0!==i.binary&&i.binary,t.traverse((function(t){if(t instanceof e.Mesh&&t.isMesh){const e=t.geometry;if(!e.isBufferGeometry)throw new Error("THREE.STLExporter: Geometry is not of type THREE.BufferGeometry.");const i=e.index,s=e.getAttribute("position");this.triangles+=null!==i?i.count/3:s.count/3,this.objects.push({object3d:t,geometry:e})}})),this.binary){const t=2*this.triangles+3*this.triangles*4*4+80+4,e=new ArrayBuffer(t);this.output=new DataView(e),this.output.setUint32(this.offset,this.triangles,!0),this.offset+=4}else this.output="",this.output+="solid exported\n";for(let t=0,i=this.objects.length;t<i;t++){const i=this.objects[t].object3d,s=this.objects[t].geometry,o=s.index,r=s.getAttribute("position");if(i instanceof e.SkinnedMesh)if(null!==o)for(let t=0;t<o.count;t+=3){const e=o.getX(t+0),s=o.getX(t+1),h=o.getX(t+2);this.writeFace(e,s,h,r,i)}else for(let t=0;t<r.count;t+=3){const e=t+0,s=t+1,o=t+2;this.writeFace(e,s,o,r,i)}}return this.binary||(this.output+="endsolid exported\n"),this.output}writeFace(t,e,i,s,o){this.vA.fromBufferAttribute(s,t),this.vB.fromBufferAttribute(s,e),this.vC.fromBufferAttribute(s,i),o.isSkinnedMesh&&(o.boneTransform(t,this.vA),o.boneTransform(e,this.vB),o.boneTransform(i,this.vC)),this.vA.applyMatrix4(o.matrixWorld),this.vB.applyMatrix4(o.matrixWorld),this.vC.applyMatrix4(o.matrixWorld),this.writeNormal(this.vA,this.vB,this.vC),this.writeVertex(this.vA),this.writeVertex(this.vB),this.writeVertex(this.vC),this.binary&&this.output instanceof DataView?(this.output.setUint16(this.offset,0,!0),this.offset+=2):(this.output+="\t\tendloop\n",this.output+="\tendfacet\n")}writeNormal(t,e,i){this.cb.subVectors(i,e),this.ab.subVectors(t,e),this.cb.cross(this.ab).normalize(),this.normal.copy(this.cb).normalize(),this.binary&&this.output instanceof DataView?(this.output.setFloat32(this.offset,this.normal.x,!0),this.offset+=4,this.output.setFloat32(this.offset,this.normal.y,!0),this.offset+=4,this.output.setFloat32(this.offset,this.normal.z,!0),this.offset+=4):(this.output+=`\tfacet normal ${this.normal.x} ${this.normal.y} ${this.normal.z}\n`,this.output+="\t\touter loop\n")}writeVertex(t){this.binary&&this.output instanceof DataView?(this.output.setFloat32(this.offset,t.x,!0),this.offset+=4,this.output.setFloat32(this.offset,t.y,!0),this.offset+=4,this.output.setFloat32(this.offset,t.z,!0),this.offset+=4):this.output+="\t\t\tvertex vertex.x vertex.y vertex.z\n"}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@babel/runtime/helpers/defineProperty"),e=require("three");function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=i(t);exports.STLExporter=class{constructor(){s.default(this,"binary",void 0),s.default(this,"output",void 0),s.default(this,"offset",void 0),s.default(this,"objects",void 0),s.default(this,"triangles",void 0),s.default(this,"vA",void 0),s.default(this,"vB",void 0),s.default(this,"vC",void 0),s.default(this,"cb",void 0),s.default(this,"ab",void 0),s.default(this,"normal",void 0),this.binary=!1,this.output="",this.offset=80,this.objects=[],this.triangles=0,this.vA=new e.Vector3,this.vB=new e.Vector3,this.vC=new e.Vector3,this.cb=new e.Vector3,this.ab=new e.Vector3,this.normal=new e.Vector3}parse(t,i){if(this.binary=void 0!==i.binary&&i.binary,t.traverse((t=>{if(t instanceof e.Mesh&&t.isMesh){const e=t.geometry;if(!e.isBufferGeometry)throw new Error("THREE.STLExporter: Geometry is not of type THREE.BufferGeometry.");const i=e.index,s=e.getAttribute("position");this.triangles+=null!==i?i.count/3:s.count/3,this.objects.push({object3d:t,geometry:e})}})),this.binary){const t=2*this.triangles+3*this.triangles*4*4+80+4,e=new ArrayBuffer(t);this.output=new DataView(e),this.output.setUint32(this.offset,this.triangles,!0),this.offset+=4}else this.output="",this.output+="solid exported\n";for(let t=0,i=this.objects.length;t<i;t++){const i=this.objects[t].object3d,s=this.objects[t].geometry,o=s.index,r=s.getAttribute("position");if(i instanceof e.SkinnedMesh)if(null!==o)for(let t=0;t<o.count;t+=3){const e=o.getX(t+0),s=o.getX(t+1),h=o.getX(t+2);this.writeFace(e,s,h,r,i)}else for(let t=0;t<r.count;t+=3){const e=t+0,s=t+1,o=t+2;this.writeFace(e,s,o,r,i)}}return this.binary||(this.output+="endsolid exported\n"),this.output}writeFace(t,e,i,s,o){this.vA.fromBufferAttribute(s,t),this.vB.fromBufferAttribute(s,e),this.vC.fromBufferAttribute(s,i),o.isSkinnedMesh&&(o.boneTransform(t,this.vA),o.boneTransform(e,this.vB),o.boneTransform(i,this.vC)),this.vA.applyMatrix4(o.matrixWorld),this.vB.applyMatrix4(o.matrixWorld),this.vC.applyMatrix4(o.matrixWorld),this.writeNormal(this.vA,this.vB,this.vC),this.writeVertex(this.vA),this.writeVertex(this.vB),this.writeVertex(this.vC),this.binary&&this.output instanceof DataView?(this.output.setUint16(this.offset,0,!0),this.offset+=2):(this.output+="\t\tendloop\n",this.output+="\tendfacet\n")}writeNormal(t,e,i){this.cb.subVectors(i,e),this.ab.subVectors(t,e),this.cb.cross(this.ab).normalize(),this.normal.copy(this.cb).normalize(),this.binary&&this.output instanceof DataView?(this.output.setFloat32(this.offset,this.normal.x,!0),this.offset+=4,this.output.setFloat32(this.offset,this.normal.y,!0),this.offset+=4,this.output.setFloat32(this.offset,this.normal.z,!0),this.offset+=4):(this.output+=`\tfacet normal ${this.normal.x} ${this.normal.y} ${this.normal.z}\n`,this.output+="\t\touter loop\n")}writeVertex(t){this.binary&&this.output instanceof DataView?(this.output.setFloat32(this.offset,t.x,!0),this.offset+=4,this.output.setFloat32(this.offset,t.y,!0),this.offset+=4,this.output.setFloat32(this.offset,t.z,!0),this.offset+=4):this.output+="\t\t\tvertex vertex.x vertex.y vertex.z\n"}};
@@ -52,7 +52,7 @@ class STLExporter {
52
52
  parse(scene, options) {
53
53
  this.binary = options.binary !== undefined ? options.binary : false; //
54
54
 
55
- scene.traverse(function (object) {
55
+ scene.traverse(object => {
56
56
  if (object instanceof Mesh && object.isMesh) {
57
57
  const geometry = object.geometry;
58
58