Lines Matching refs:point

940       /* we need at least 4 points to create an inflection point */
1079 /* load outline point coordinates into hinter glyph */
1085 PSH_Point point = glyph->points;
1089 for ( ; count > 0; count--, point++, vec++ )
1091 point->flags2 = 0;
1092 point->hint = NULL;
1095 point->org_u = vec->x;
1096 point->org_v = vec->y;
1100 point->org_u = vec->y;
1101 point->org_v = vec->x;
1105 point->org_x = vec->x;
1106 point->org_y = vec->y;
1113 /* save hinted point coordinates back to outline */
1119 PSH_Point point = glyph->points;
1127 vec[n].x = point->cur_u;
1129 vec[n].y = point->cur_u;
1131 if ( psh_point_is_strong( point ) )
1138 point->cur_x = point->cur_u;
1139 point->flags_x = point->flags2 | point->flags;
1143 point->cur_y = point->cur_u;
1144 point->flags_y = point->flags2 | point->flags;
1149 point++;
1186 PSH_Point point;
1197 point = points + first;
1199 point->prev = points + next - 1;
1200 point->contour = contour;
1204 point[0].next = point + 1;
1205 point[1].prev = point;
1206 point++;
1207 point->contour = contour;
1209 point->next = points + first;
1219 PSH_Point point = points;
1224 for ( n = 0; n < glyph->num_points; n++, point++ )
1226 FT_Int n_prev = (FT_Int)( point->prev - points );
1227 FT_Int n_next = (FT_Int)( point->next - points );
1232 point->flags = PSH_POINT_OFF;
1237 point->dir_in = (FT_Char)psh_compute_dir( dxi, dyi );
1242 point->dir_out = (FT_Char)psh_compute_dir( dxo, dyo );
1245 if ( point->flags & PSH_POINT_OFF )
1246 point->flags |= PSH_POINT_SMOOTH;
1248 else if ( point->dir_in == point->dir_out )
1250 if ( point->dir_out != PSH_DIR_NONE ||
1252 point->flags |= PSH_POINT_SMOOTH;
1298 PSH_Point point, before, after;
1304 point = first;
1305 before = point;
1313 } while ( before->org_u == point->org_u );
1315 first = point = before->next;
1319 after = point;
1326 } while ( after->org_u == point->org_u );
1328 if ( before->org_u < point->org_u )
1330 if ( after->org_u < point->org_u )
1336 else /* before->org_u > point->org_u */
1338 if ( after->org_u > point->org_u )
1344 psh_point_set_extremum( point );
1345 point = point->next;
1347 } while ( point != after );
1352 point = after;
1364 PSH_Point point, before, after;
1367 point = &glyph->points[n];
1368 before = point;
1369 after = point;
1371 if ( psh_point_is_extremum( point ) )
1376 if ( before == point )
1379 } while ( before->org_v == point->org_v );
1384 if ( after == point )
1387 } while ( after->org_v == point->org_v );
1390 if ( before->org_v < point->org_v &&
1391 after->org_v > point->org_v )
1393 psh_point_set_positive( point );
1395 else if ( before->org_v > point->org_v &&
1396 after->org_v < point->org_v )
1398 psh_point_set_negative( point );
1413 PSH_Point point,
1422 for ( ; count > 0; count--, point++ )
1425 FT_Pos org_u = point->org_u;
1428 if ( psh_point_is_strong( point ) )
1431 if ( PSH_DIR_COMPARE( point->dir_in, major_dir ) )
1432 point_dir = point->dir_in;
1434 else if ( PSH_DIR_COMPARE( point->dir_out, major_dir ) )
1435 point_dir = point->dir_out;
1452 psh_point_set_strong( point );
1453 point->flags2 |= PSH_POINT_EDGE_MIN;
1454 point->hint = hint;
1472 psh_point_set_strong( point );
1473 point->flags2 |= PSH_POINT_EDGE_MAX;
1474 point->hint = hint;
1482 else if ( psh_point_is_extremum( point ) )
1499 if ( point->flags2 & min_flag )
1509 point->flags2 |= PSH_POINT_EDGE_MIN;
1510 point->hint = hint;
1511 psh_point_set_strong( point );
1516 else if ( point->flags2 & max_flag )
1526 point->flags2 |= PSH_POINT_EDGE_MAX;
1527 point->hint = hint;
1528 psh_point_set_strong( point );
1534 if ( !point->hint )
1544 point->hint = hint;
1568 /* a point is `strong' if it is located on a stem edge and */
1602 PSH_Point point = glyph->points + first;
1607 psh_hint_table_find_strong_points( table, point, count,
1618 PSH_Point point = glyph->points;
1623 psh_hint_table_find_strong_points( table, point, count,
1631 PSH_Point point = glyph->points;
1634 for ( ; count > 0; count--, point++ )
1635 if ( point->hint && !psh_point_is_strong( point ) )
1636 psh_point_set_strong( point );
1651 PSH_Point point = glyph->points;
1654 for ( ; glyph_count > 0; glyph_count--, point++ )
1660 if ( !PSH_DIR_COMPARE( point->dir_in, PSH_DIR_HORIZONTAL ) &&
1661 !PSH_DIR_COMPARE( point->dir_out, PSH_DIR_HORIZONTAL ) )
1665 if ( psh_point_is_strong( point ) )
1668 y = point->org_u;
1686 point->cur_u = zone->cur_bottom;
1687 psh_point_set_strong( point );
1688 psh_point_set_fitted( point );
1708 point->cur_u = zone->cur_top;
1709 psh_point_set_strong( point );
1710 psh_point_set_fitted( point );
1726 PSH_Point point = glyph->points;
1729 for ( ; count > 0; count--, point++ )
1731 PSH_Hint hint = point->hint;
1739 if ( psh_point_is_edge_min( point ) )
1740 point->cur_u = hint->cur_pos;
1742 else if ( psh_point_is_edge_max( point ) )
1743 point->cur_u = hint->cur_pos + hint->cur_len;
1747 delta = point->org_u - hint->org_pos;
1750 point->cur_u = hint->cur_pos + FT_MulFix( delta, scale );
1753 point->cur_u = hint->cur_pos + hint->cur_len +
1757 point->cur_u = hint->cur_pos +
1761 psh_point_set_fitted( point );
1775 /* first technique: a point is strong if it is a local extremum */
1787 PSH_Point point;
1791 for ( point = points; point < points_end; point++ )
1793 if ( psh_point_is_strong( point ) )
1814 for ( point = points; point < points_end; point++ )
1819 if ( !psh_point_is_strong( point ) )
1824 if ( insert[-1]->org_u <= point->org_u )
1829 insert[0] = point;
1834 for ( point = points; point < points_end; point++ )
1836 if ( psh_point_is_strong( point ) )
1840 if ( psh_point_is_smooth( point ) )
1842 if ( point->dir_in == PSH_DIR_NONE ||
1843 point->dir_in != point->dir_out )
1846 if ( !psh_point_is_extremum( point ) &&
1847 !psh_point_is_inflex( point ) )
1850 point->flags &= ~PSH_POINT_SMOOTH;
1853 /* find best enclosing point coordinates then interpolate */
1860 if ( strongs[nn]->org_u > point->org_u )
1863 if ( nn == 0 ) /* point before the first strong point */
1867 point->cur_u = after->cur_u +
1868 FT_MulFix( point->org_u - after->org_u,
1876 if ( strongs[nn - 1]->org_u < point->org_u )
1879 if ( nn == num_strongs ) /* point is after last strong point */
1883 point->cur_u = before->cur_u +
1884 FT_MulFix( point->org_u - before->org_u,
1894 /* now interpolate point between before and after */
1895 u = point->org_u;
1898 point->cur_u = before->cur_u;
1901 point->cur_u = after->cur_u;
1904 point->cur_u = before->cur_u +
1910 psh_point_set_fitted( point );
1937 PSH_Point first, next, point;
1946 for ( point = start; point < next; point++ )
1947 if ( psh_point_is_fitted( point ) )
1950 first = point;
1962 for ( point = start; point < next; point++ )
1963 if ( point != first )
1964 point->cur_u = FT_MulFix( point->org_u, scale ) + delta;
1987 /* find next fitted point after unfitted one */
2021 point = first->next;
2024 org_c = point->org_u;
2043 point->cur_u = cur_c;
2045 point = point->next;
2047 } while ( point != next );