function model2Glyph(modelObj, baseline, widthFactor, modelFilter, postFilter) {
  const model = new GlyphModel(modelObj);
  const restored = model.restore(modelFilter);
  const transformed = postFilter ? postFilter(restored) : restored;
  // Merge overlaps
  const merged = caryllShapeOps.removeOverlap(transformed, 
    fillRule = caryllShapeOps.fillRules.nonzero);
  // Data for the contours
  const contours = PostFilters.round()(
    PostFilters.translation(0, -baseline)(merged));
  return {
    advanceWidth: Math.round(widthFactor * 1000),
    advanceHeight: 1000,
    verticalOrigin: 1000 - Math.round(baseline),
    contours
  };
}
Turn a Han or Kana glyph model data to a glyph
@param { { 
onRefs: [number, number][], 
onOffsets: [number, number][], offOffsets: [number, number][], 
offOnIndices: number[], onContourIndices: number[], 
xAlign: string[][], yAlign: string[][] } } modelObj 
@param modelFilter 
@param postFilter 
@param { number } baseline Latin baseline
@param { number } widthFactor Width ratio to 1 em
@returns { Glyph }