提交 54094cc4 编写于 作者: G Garrett Johnson

Add setCell, getCell, blur to marchingCubes example

上级 27811881
......@@ -772,6 +772,79 @@ THREE.MarchingCubes = function ( resolution, material, enableUvs, enableColors )
// Updates
/////////////////////////////////////
this.setCell = function ( x, y, z, strength ) {
var index = this.size2 * z + this.size * y + x;
this.field[ index ] = strength;
};
this.getCell = function ( x, y, z ) {
var index = this.size2 * z + this.size * y + x;
return this.field[ index ];
};
this.blur = function ( intensity ) {
if ( intensity === undefined ) {
intensity = 1;
}
var field = this.field;
var fieldCopy = field.slice();
var size = this.size;
var size2 = this.size2;
for ( var x = 0; x < size; x ++ ) {
for ( var y = 0; y < size; y ++ ) {
for ( var z = 0; z < size; z ++ ) {
var index = size2 * z + size * y + x;
var val = fieldCopy[ index ];
var count = 1;
for ( var x2 = - 1; x2 <= 1; x2 += 2 ) {
var x3 = x2 + x;
if ( x3 < 0 || x3 >= size ) continue;
for ( var y2 = - 1; y2 <= 1; y2 += 2 ) {
var y3 = y2 + y;
if ( y3 < 0 || y3 >= size ) continue;
for ( var z2 = - 1; z2 <= 1; z2 += 2 ) {
var z3 = z2 + z;
if ( z3 < 0 || z3 >= size ) continue;
var index2 = size2 * z3 + size * y3 + x3;
var val2 = fieldCopy[ index2 ];
count ++;
val += intensity * ( val2 - val ) / count;
}
}
}
field[ index ] = val;
}
}
}
};
this.reset = function () {
var i;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册