Add comments to `ft_corner_is_flat'.
This commit is contained in:
parent
b8bf8b54e5
commit
fb09a51f0f
|
@ -945,11 +945,27 @@
|
||||||
FT_Pos d_in, d_out, d_corner;
|
FT_Pos d_in, d_out, d_corner;
|
||||||
|
|
||||||
|
|
||||||
|
/* We approximate the Euclidean metric (sqrt(x^2 + y^2)) with */
|
||||||
|
/* the Taxicab metric (x + y), which can be computed much */
|
||||||
|
/* faster. If one of the two vectors is much longer than the */
|
||||||
|
/* other one, the direction of the shorter vector doesn't */
|
||||||
|
/* influence the result any more. */
|
||||||
|
/* */
|
||||||
|
/* corner */
|
||||||
|
/* x---------------------------x */
|
||||||
|
/* \ / */
|
||||||
|
/* \ / */
|
||||||
|
/* in \ / out */
|
||||||
|
/* \ / */
|
||||||
|
/* o */
|
||||||
|
/* Point */
|
||||||
|
/* */
|
||||||
|
|
||||||
if ( ax < 0 )
|
if ( ax < 0 )
|
||||||
ax = -ax;
|
ax = -ax;
|
||||||
if ( ay < 0 )
|
if ( ay < 0 )
|
||||||
ay = -ay;
|
ay = -ay;
|
||||||
d_in = ax + ay;
|
d_in = ax + ay; /* d_in = || in || */
|
||||||
|
|
||||||
ax = out_x;
|
ax = out_x;
|
||||||
if ( ax < 0 )
|
if ( ax < 0 )
|
||||||
|
@ -957,7 +973,7 @@
|
||||||
ay = out_y;
|
ay = out_y;
|
||||||
if ( ay < 0 )
|
if ( ay < 0 )
|
||||||
ay = -ay;
|
ay = -ay;
|
||||||
d_out = ax + ay;
|
d_out = ax + ay; /* d_out = || out || */
|
||||||
|
|
||||||
ax = out_x + in_x;
|
ax = out_x + in_x;
|
||||||
if ( ax < 0 )
|
if ( ax < 0 )
|
||||||
|
@ -965,7 +981,11 @@
|
||||||
ay = out_y + in_y;
|
ay = out_y + in_y;
|
||||||
if ( ay < 0 )
|
if ( ay < 0 )
|
||||||
ay = -ay;
|
ay = -ay;
|
||||||
d_corner = ax + ay;
|
d_corner = ax + ay; /* d_corner = || in + out || */
|
||||||
|
|
||||||
|
/* now do a simple length comparison: */
|
||||||
|
/* */
|
||||||
|
/* d_in + d_out < 17/16 d_corner */
|
||||||
|
|
||||||
return ( d_in + d_out - d_corner ) < ( d_corner >> 4 );
|
return ( d_in + d_out - d_corner ) < ( d_corner >> 4 );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue