# MarchingCubes

A marching cubes implementation.

Port of: http://webglsamples.org/blob/blob.html

## Import

MarchingCubes is an addon, and must be imported explicitly, see Installation#Addons.

    import { MarchingCubes } from 'three/addons/objects/MarchingCubes.js';

## Constructor

### new MarchingCubes ( resolution : number, material : Material, enableUvs : boolean, enableColors : boolean, maxPolyCount : number )

Constructs a new marching cubes instance.

resolution | The effect's resolution.
material | The cube's material.
enableUvs | Whether texture coordinates should be animated or not. Default is `false`.
enableColors | Whether colors should be animated or not. Default is `false`.
maxPolyCount | The maximum size of the geometry buffers. Default is `10000`.

## Properties

### .enableColors : boolean

Whether colors should be animated or not.

Default is `false`.

### .enableUvs : boolean

Whether texture coordinates should be animated or not.

Default is `false`.

### .isMarchingCubes : boolean (readonly)

This flag can be used for type testing.

Default is `true`.

## Methods

### .addBall ( ballx : number, bally : number, ballz : number, strength : number, subtract : number, colors : Color )

Adds a reciprocal ball (nice and blobby) that, to be fast, fades to zero after a fixed distance, determined by strength and subtract.

ballx | The x-coordinate of the ball.
bally | The y-coordinate of the ball.
ballz | The z-coordinate of the ball.
strength | The strength factor.
subtract | The subtract factor.
colors | The color.

### .addPlaneX ( strength : number, subtract : number )

Adds a plane along the x-axis.

strength | The strength factor.
subtract | The subtract factor.

### .addPlaneY ( strength : number, subtract : number )

Adds a plane along the y-axis.

strength | The strength factor.
subtract | The subtract factor.

### .addPlaneZ ( strength : number, subtract : number )

Adds a plane along the z-axis.

strength | The strength factor.
subtract | The subtract factor.

### .blur ( intensity : number )

Applies a blur with the given intensity.

intensity | The intensity of the blur. Default is `1`.

### .getCell ( x : number, y : number, z : number ) : number

Returns the cell value for the given coordinates.

x | The x value.
y | The y value.
z | The z value.

Returns: The value.

### .reset ()

Resets the effect.

### .setCell ( x : number, y : number, z : number, value : number )

Sets the cell value for the given coordinates.

x | The x value.
y | The y value.
z | The z value.
value | The value to set.

### .update ()

Updates the effect.

## Source

examples/jsm/objects/MarchingCubes.js