func (h Heightfield) Build(data HeightfieldData, heightSamples Matrix,
	width, depth, scale, offset, thickness float64, doWrap bool) {
	numWidthSamp, numDepthSamp := len(heightSamples), 0
	var heightSamplesPtr *C.double
	if numDepthSamp > 0 {
		numWidthSamp = len(heightSamples[0])
		if numWidthSamp > 0 {
			heightSamplesPtr = (*C.double)(&heightSamples[0][0])
		}
	}
	C.dGeomHeightfieldDataBuildDouble(data.c(), heightSamplesPtr, 1,
		C.dReal(width), C.dReal(depth), C.int(numWidthSamp), C.int(numDepthSamp),
		C.dReal(scale), C.dReal(offset), C.dReal(thickness), C.int(btoi(doWrap)))
}
Build builds a heightfield data set.
package ode
import "C"
import (
	"unsafe"
)
type HeightfieldData uintptr
func cToHeightfieldData(c C.dHeightfieldDataID) HeightfieldData {
	return HeightfieldData(unsafe.Pointer(c))
}
func (h HeightfieldData) c() C.dHeightfieldDataID {
	return C.dHeightfieldDataID(unsafe.Pointer(h))
}
func NewHeightfieldData() HeightfieldData {
	return cToHeightfieldData(C.dGeomHeightfieldDataCreate())
}
func (h *HeightfieldData) Destroy() {
	C.dGeomHeightfieldDataDestroy(h.c())
}
type Heightfield struct {
	GeomBase
}