Here is a full feature list, if you are interested:

ackhmp.dll feature list
  • create hmp
    • from scratch (width/height, rows/cols)
    • from bitmap
      • engine BMAP*
      • file
    • from existing terrain ENTITY*
    • copy constructor
    • from buffer (WRS compatible)
  • saving
    • save hmp to file
    • save modified terrain entity to file, or re-save original file
  • heightfield functions
    • bicubic resizing of heightfield
    • lod generation
    • heightfield to zero or variable
    • copy heightfield from/to rowmajor/columnmajor matrix
  • info functions
    • get lowest/highest coordinate
    • get vertex coordinate
    • get normal for vertex
  • skin functions
    • create skins for internal/external skins, D3D material, embedded shader
    • get/set/add/remove skins
  • entity functions
    • create terrain entity from hmp during runtime
    • transfer terrain entity shape from/to existing hmp
    • normals
      • recalculate all normals of a deformed terrain entity
      • recalculate normal of a specific vertex of a deformed terrain entity
    • get/set vertices (heights)
    • raise vertices by offset
  • brushes (useful for editing terrains)
    • create a brush from BMAP* or bitmap file
    • read floating point data from brush at local/world position
  • hulls - dynamic terrain hull with bicubic interpolation, that is faster than updating the whole terrain in-engine with c_updatehull!
    • Create hull from terrain entity
    • modify hull vertex-wise
    • vertical tracing (super fast)
    • 3D trace (very fast)
    • adapt entity to hull (origin or lower Bbox position) – useful for placing entities on ground
  • bitmap functions
    • save BMAP* as rock-solid TGA
    • create mip map BMAP*'s from source BMAP*
    • merge 4 greyscale bitmaps as R,G,B and A channel into a variable sized blendmap
  • materials
    • create MATERIAL* from scatch from float* arrays and effect char*'s
  • seeding
    • generate a list of position on a hmp by a likelihood map to seed a terrain
    • uses average & minimum distances and relaxaxtion parameters