Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.86 KB | None | 0 0
  1. const vertexPositionData = [];
  2. const normalData = [];
  3. const textureCoordData = [];
  4. for (let latNumber = 0; latNumber <= this.latitudeBands; latNumber++) {
  5. const theta = latNumber * Math.PI / this.latitudeBands;
  6. const sinTheta = Math.sin(theta);
  7. const cosTheta = Math.cos(theta);
  8.  
  9. for (let longNumber = 0; longNumber <= this.longitudeBands; longNumber++) {
  10. const phi = longNumber * 2 * Math.PI / this.longitudeBands;
  11. const sinPhi = Math.sin(phi);
  12. const cosPhi = Math.cos(phi);
  13.  
  14. const x = cosPhi * sinTheta;
  15. const y = sinPhi * sinTheta;
  16. const z = cosTheta;
  17. const u = 1 - (longNumber / this.longitudeBands);
  18. const v = 1 - (latNumber / this.latitudeBands);
  19.  
  20. normalData.push(x);
  21. normalData.push(y);
  22. normalData.push(z);
  23. textureCoordData.push(u);
  24. textureCoordData.push(v);
  25. vertexPositionData.push(this.radius * x);
  26. vertexPositionData.push(this.radius * y);
  27. vertexPositionData.push(this.radius * z);
  28. }
  29. }
  30.  
  31. const indexData = [];
  32. for (let latNumber = 0; latNumber < this.latitudeBands; latNumber++) {
  33. for (let longNumber = 0; longNumber < this.longitudeBands; longNumber++) {
  34. const first = (latNumber * (this.longitudeBands + 1)) + longNumber;
  35. const second = first + this.longitudeBands + 1;
  36. indexData.push(first);
  37. indexData.push(second);
  38. indexData.push(first + 1);
  39.  
  40. indexData.push(second);
  41. indexData.push(second + 1);
  42. indexData.push(first + 1);
  43. }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement