// get lowest and highest height
float lowest, highest;
hmp_minmaxz(h, &lowest, &highest);
// magnitude is height distance between lowest and highest
float magnitude = highest - lowest;
// z values have to be between 0...65535, so we have to set
// implicit scale and offset parameters
float lowerBound = 0.0f, upperBound = 65535.0f;
// scale
{
hmp.Head().scale[0] = h->width / upperBound;
hmp.Head().scale[1] = h->height / upperBound;
hmp.Head().scale[2] = magnitude / upperBound;
}
// offset
{
hmp.Head().scale_origin[0] = -h->width/2;
hmp.Head().scale_origin[1] = -h->height/2;
hmp.Head().scale_origin[2] = lowest;
}