API Docs for: 0.6.1
Show:

# Heightfield Class

Extends Shape

Heightfield shape class. Height data is given as an array. These data points are spread out evenly with a given distance.

## Constructor

### Heightfield

(
• data
• options
)

#### Parameters:

• data Array

An array of Y values that will be used to construct the terrain.

• options Object
• [minValue] Number optional

Minimum value of the data points in the data array. Will be computed automatically if not given.

• [maxValue] Number optional

Maximum value.

• [elementSize=0.1] Number optional

World spacing between the data points in X direction.

#### Example:

// Generate some height data (y-values).
var data = [];
for(var i = 0; i < 1000; i++){
var y = 0.5 * Math.cos(0.2 * i);
data.push(y);
}

// Create the heightfield shape
var heightfieldShape = new Heightfield(data, {
elementSize: 1 // Distance between the data points in X and Y directions
});
var heightfieldBody = new Body();

## Methods

### calculateLocalInertia

()

Inherited from Shape: src/shapes/Shape.js:68

Calculates the inertia in the local frame for this shape.

Vec3:

### getConvexTrianglePillar

(
• i
• j
• getUpperTriangle
)

Get a triangle in the terrain in the form of a triangular convex shape.

#### Parameters:

• i Integer
• j Integer
• getUpperTriangle Boolean

### getIndexOfPosition

(
• x
• y
• result
• clamp
)
Boolean

Get the index of a local position on the heightfield. The indexes indicate the rectangles, so if your terrain is made of N x N height data points, you will have rectangle indexes ranging from 0 to N-1.

#### Parameters:

• x Number
• y Number
• result Array

Two-element array

• clamp Boolean

If the position should be clamped to the heightfield edge.

Boolean:

### getRectMinMax

(
• iMinX
• iMinY
• iMaxX
• iMaxY
• [result]
)
Array

Get max/min in a rectangle in the matrix data

#### Parameters:

• iMinX Integer
• iMinY Integer
• iMaxX Integer
• iMaxY Integer
• [result] Array optional

An array to store the results in.

#### Returns:

Array:

The result array, if it was passed in. Minimum will be at position 0 and max at 1.

### setHeightValueAtIndex

(
• xi
• yi
• value
)

Set the height value at an index. Don't forget to update maxValue and minValue after you're done.

• xi Integer
• yi Integer
• value Number

### update

()

Call whenever you change the data array.

() Number

Inherited from Shape: src/shapes/Shape.js:50

Computes the bounding sphere radius. The result is stored in the property .boundingSphereRadius

Number:

### updateMaxValue

()

Update the .maxValue property

### updateMinValue

()

Update the .minValue property

### volume

() Number

Inherited from Shape: src/shapes/Shape.js:59

Get the volume of this shape

Number:

## Properties

Number

Inherited from Shape: src/shapes/Shape.js:31

The local bounding sphere radius of this shape.

### collisionResponse

Boolean

Inherited from Shape: src/shapes/Shape.js:37

Whether to produce contact forces when in contact with other bodies. Note that contacts will be generated, but they will be disabled.

### data

Array

An array of numbers, or height values, that are spread out along the x axis.

### elementSize

Number

The width of each element

### id

Number

Inherited from Shape: src/shapes/Shape.js:17

Identifyer of the Shape.

### material

Material

Inherited from Shape: src/shapes/Shape.js:43

### maxValue

Number

Max value of the data

### minValue

Number

Max value of the data

### type

Number

Inherited from Shape: src/shapes/Shape.js:23

The type of this shape. Must be set to an int > 0 by subclasses.