Fix bugs in stroke extraction code

This commit is contained in:
Shaunak Kishore
2015-09-20 16:10:39 -04:00
parent 4096c2e602
commit 9655198357
2 changed files with 18 additions and 10 deletions

View File

@ -110,12 +110,12 @@ function orient_paths(paths) {
var result = [];
for (var i = 0; i < paths.length; i++) {
var path = paths[i];
for (var j = 0; j < paths.length; j++) {
for (var j = 0; j < path.length; j++) {
var ref = [path[j].start, path[j].end];
path[j].start = ref[1];
path[j].end = ref[0];
}
path[j].reverse();
path.reverse();
}
}
return paths;
@ -127,7 +127,8 @@ function get_2x_area(path) {
var area = 0;
for (var i = 0; i < path.length; i++) {
var segment = path[i];
area += (segment.end.x - segment.start.x)*(segment.end.y + segment.start.y);
area += (segment.end[0] + segment.start[0])*
(segment.end[1] - segment.start[1]);
}
return area;
}
@ -514,7 +515,12 @@ this.get_glyph_render_data = function(glyph, manual_bridges, classifier) {
var strokes = extract_strokes(
paths, endpoints, manual_bridges || bridges, log);
var expected = UNIHAN_STROKE_COUNTS[glyph.name];
if (strokes.length === expected) {
log.push(['success', 'For character: ' +
String.fromCodePoint(parseInt(glyph.name.substr(3), 16))]);
if (expected === undefined) {
log.push(['success', 'Extracted ' + strokes.length + ' stroke' +
(strokes.length > 1 ? 's' : '') + '.']);
} else if (strokes.length === expected) {
log.push(['success', 'Extracted ' + strokes.length + ' stroke' +
(strokes.length > 1 ? 's' : '') + '.']);
} else {