Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * generators.add(name, fn1, fn2)
- *
- * name: the name will be show on the list
- * fn1: get necessary data
- * + Will be called with an getter object
- * fn2: generate
- * + data: get the requested data
- * + Another setter object to place cube
- */
- sgb.add('Sphere', function(a) {
- a.addText('Center of the sphere: ')
- .getNum('x')
- .getNum('y')
- .getNum('z')
- .getNum('Radius:', 3, 'r')
- .getNum('Cube size:', 0.5, 's')
- .getBoolean('Hollow:', true, 'h');
- }, function(d, a) {
- d.check = function(x, y, z) {
- return Math.abs(
- (x - d.x) * (x - d.x) +
- (y - d.y) * (y - d.y) +
- (z - d.z) * (z - d.z) -
- d.r * d.r
- ) <= 0.1;
- }
- for(var i = d.x - d.r; i <= d.x + d.r; i+= d.s)
- for(var j = d.y - d.r; j <= d.y + d.r; j+= d.s)
- for(var k = d.z - d.r; k <= d.z + d.r; k+= d.s)
- if(d.check(i + d.s / 2, j + d.s / 2, k + d.s / 2)) {
- a.addCube(i, j, k, d.s, d.s, d.s);
- }
- return a;
- });
Advertisement
Add Comment
Please, Sign In to add comment