src/classify/mfoutline.cpp
MFOUTLINE NextDirectionChange(MFOUTLINE EdgePoint) {
  DIRECTION InitialDirection;

  InitialDirection = PointAt(EdgePoint)->Direction;

  MFOUTLINE next_pt = nullptr;
  do {
    EdgePoint = NextPointAfter(EdgePoint);
    next_pt = NextPointAfter(EdgePoint);
  } while (PointAt(EdgePoint)->Direction == InitialDirection && !PointAt(EdgePoint)->Hidden &&
           next_pt != nullptr && !PointAt(next_pt)->Hidden);

  return (EdgePoint);
}
/**
 * This routine returns the next point in the micro-feature
 * outline that has a direction different than EdgePoint.  The
 * routine assumes that the outline being searched is not a
 * degenerate outline (i.e. it must have 2 or more edge points).
 * @param EdgePoint start search from this point
 * @return Point of next direction change in micro-feature outline.
 * @note Globals: none
 */
This routine returns the next point in the micro-feature
outline that has a direction different than EdgePoint.  The
routine assumes that the outline being searched is not a
degenerate outline .
@param EdgePoint start search from this point
@return Point of next direction change in micro-feature outline.
@note Globals: none
This routine returns the next point in the micro - feature outline that has a direction different than EdgePoint . The routine assumes that the outline being searched is not a degenerate outline . @param EdgePoint start search from this point @return Point of next direction change in micro - feature outline . @note Globals : none
MFOUTLINE NextDirectionChange(MFOUTLINE EdgePoint) {
  DIRECTION InitialDirection;
  InitialDirection = PointAt(EdgePoint)->Direction;
  MFOUTLINE next_pt = nullptr;
  do {
    EdgePoint = NextPointAfter(EdgePoint);
    next_pt = NextPointAfter(EdgePoint);
  } while (PointAt(EdgePoint)->Direction == InitialDirection && !PointAt(EdgePoint)->Hidden &&
           next_pt != nullptr && !PointAt(next_pt)->Hidden);
  return (EdgePoint);
}
MFOUTLINE NextDirectionChange ( MFOUTLINE EdgePoint ) { DIRECTION InitialDirection ; InitialDirection = PointAt ( EdgePoint ) -> Direction ; MFOUTLINE next_pt = nullptr ; do { EdgePoint = NextPointAfter ( EdgePoint ) ; next_pt = NextPointAfter ( EdgePoint ) ; } while ( PointAt ( EdgePoint ) -> Direction == InitialDirection && ! PointAt ( EdgePoint ) -> Hidden && next_pt != nullptr && ! PointAt ( next_pt ) -> Hidden ) ; return ( EdgePoint ) ; }
This routine returns the next point in the micro-feature
 outline that has a direction different than EdgePoint.
This routine returns the next point in the micro - feature outline that has a direction different than EdgePoint .