src/classify/mfoutline.cpp
void NormalizeOutline(MFOUTLINE Outline, float XOrigin) {
  if (Outline == NIL_LIST) {
    return;
  }

  MFOUTLINE EdgePoint = Outline;
  do {
    MFEDGEPT *Current = PointAt(EdgePoint);
    Current->Point.y = MF_SCALE_FACTOR * (Current->Point.y - kBlnBaselineOffset);
    Current->Point.x = MF_SCALE_FACTOR * (Current->Point.x - XOrigin);
    EdgePoint = NextPointAfter(EdgePoint);
  } while (EdgePoint != Outline);
}
/*---------------------------------------------------------------------------*/
/**
 * This routine normalizes the coordinates of the specified
 * outline so that the outline is deskewed down to the
 * baseline, translated so that x=0 is at XOrigin, and scaled
 * so that the height of a character cell from descender to
 * ascender is 1.  Of this height, 0.25 is for the descender,
 * 0.25 for the ascender, and 0.5 for the x-height.  The
 * y coordinate of the baseline is 0.
 * @param Outline   outline to be normalized
 * @param XOrigin   x-origin of text
 */
This routine normalizes the coordinates of the specified
outline so that the outline is deskewed down to the
baseline, translated so that x=0 is at XOrigin, and scaled
so that the height of a character cell from descender to
ascender is 1.  Of this height, 0.25 is for the descender,
0.25 for the ascender, and 0.5 for the x-height.  The
y coordinate of the baseline is 0.
@param Outline   outline to be normalized
@param XOrigin   x-origin of text
This routine normalizes the coordinates of the specified outline so that the outline is deskewed down to the baseline translated so that x = 0 is at XOrigin and scaled so that the height of a character cell from descender to ascender is 1 . Of this height 0 . 25 is for the descender 0 . 25 for the ascender and 0 . 5 for the x - height . The y coordinate of the baseline is 0 . @param Outline outline to be normalized @param XOrigin x - origin of text
void NormalizeOutline(MFOUTLINE Outline, float XOrigin) {
  if (Outline == NIL_LIST) {
    return;
  }
  MFOUTLINE EdgePoint = Outline;
  do {
    MFEDGEPT *Current = PointAt(EdgePoint);
    Current->Point.y = MF_SCALE_FACTOR * (Current->Point.y - kBlnBaselineOffset);
    Current->Point.x = MF_SCALE_FACTOR * (Current->Point.x - XOrigin);
    EdgePoint = NextPointAfter(EdgePoint);
  } while (EdgePoint != Outline);
}
void NormalizeOutline ( MFOUTLINE Outline , float XOrigin ) { if ( Outline == NIL_LIST ) { return ; } MFOUTLINE EdgePoint = Outline ; do { MFEDGEPT * Current = PointAt ( EdgePoint ) ; Current -> Point . y = MF_SCALE_FACTOR * ( Current -> Point . y - kBlnBaselineOffset ) ; Current -> Point . x = MF_SCALE_FACTOR * ( Current -> Point . x - XOrigin ) ; EdgePoint = NextPointAfter ( EdgePoint ) ; } while ( EdgePoint != Outline ) ; }
This routine normalizes the coordinates of the specified
 outline so that the outline is deskewed down to the
 baseline, translated so that x=0 is at XOrigin, and scaled
 so that the height of a character cell from descender to
 ascender is 1.
This routine normalizes the coordinates of the specified outline so that the outline is deskewed down to the baseline translated so that x = 0 is at XOrigin and scaled so that the height of a character cell from descender to ascender is 1 .