UNPKG

@animech-public/playcanvas

Version:
2 lines (1 loc) 748 B
import{calculateTangents as s}from"./geometry-utils.js";import{Geometry as t}from"./geometry.js";class o extends t{constructor(t={}){var o,n,a;super();const e=null!=(o=t.radius)?o:.5,h=null!=(n=t.latitudeBands)?n:16,i=null!=(a=t.longitudeBands)?a:16,l=[],r=[],u=[],c=[];for(let s=0;s<=h;s++){const t=s*Math.PI/h,o=Math.sin(t),n=Math.cos(t);for(let t=0;t<=i;t++){const a=2*t*Math.PI/i-Math.PI/2,c=Math.sin(a),p=Math.cos(a)*o,d=n,m=c*o,M=1-t/i,f=1-s/h;l.push(p*e,d*e,m*e),r.push(p,d,m),u.push(M,1-f)}}for(let s=0;s<h;++s)for(let t=0;t<i;++t){const o=s*(i+1)+t,n=o+i+1;c.push(o+1,n,o),c.push(o+1,n+1,n)}this.positions=l,this.normals=r,this.uvs=u,this.uvs1=u,this.indices=c,t.calculateTangents&&(this.tangents=s(l,r,u,c))}}export{o as SphereGeometry};