lequangvuxxx

Untitled

Jun 16th, 2018
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. /*
  2. * generators.add(name, fn1, fn2)
  3. *
  4. * name: the name will be show on the list
  5. * fn1: get necessary data
  6. * + Will be called with an getter object
  7. * fn2: generate
  8. * + data: get the requested data
  9. * + Another setter object to place cube
  10. */
  11. sgb.add('Sphere', function(a) {
  12.  
  13. a.addText('Center of the sphere: ')
  14. .getNum('x')
  15. .getNum('y')
  16. .getNum('z')
  17. .getNum('Radius:', 3, 'r')
  18. .getNum('Cube size:', 0.5, 's')
  19. .getBoolean('Hollow:', true, 'h');
  20. }, function(d, a) {
  21.  
  22. d.check = function(x, y, z) {
  23. return Math.abs(
  24. (x - d.x) * (x - d.x) +
  25. (y - d.y) * (y - d.y) +
  26. (z - d.z) * (z - d.z) -
  27. d.r * d.r
  28. ) <= 0.1;
  29. }
  30.  
  31. for(var i = d.x - d.r; i <= d.x + d.r; i+= d.s)
  32. for(var j = d.y - d.r; j <= d.y + d.r; j+= d.s)
  33. for(var k = d.z - d.r; k <= d.z + d.r; k+= d.s)
  34. if(d.check(i + d.s / 2, j + d.s / 2, k + d.s / 2)) {
  35. a.addCube(i, j, k, d.s, d.s, d.s);
  36. }
  37. return a;
  38. });
Advertisement
Add Comment
Please, Sign In to add comment