code: func (r *reader) readCoord() float32 {
  	value := float32(0.0)
  
  	intval := r.readBits(1)
  	fractval := r.readBits(1)
  	signbit := false
  
  	if intval != 0 || fractval != 0 {
  		signbit = r.readBoolean()
  
  		if intval != 0 {
  			intval = r.readBits(14) + 1
  		}
  
  		if fractval != 0 {
  			fractval = r.readBits(5)
  		}
  
  		value = float32(intval) + float32(fractval)*(1.0/(1<<5))
  
  		// Fixup the sign if negative.
  		if signbit {
  			value = -value
  		}
  	}
  
  	return value
  }
docs: // readCoord reads a coord as a float32