CosineDistanceComputer.java
997 Bytes
/*
* Decompiled with CFR 0_118.
*/
package com.adobe.internal.pdftoolkit.pdf.content.processor;
import com.adobe.internal.pdftoolkit.pdf.content.processor.DistanceComputer;
import com.adobe.internal.pdftoolkit.pdf.content.processor.FontWidthStore;
import java.util.Set;
class CosineDistanceComputer
implements DistanceComputer {
CosineDistanceComputer() {
}
public double getDistance(FontWidthStore baseFont, FontWidthStore reference) {
double distance = 0.0;
double d1 = 0.0;
double d2 = 0.0;
for (Integer unicode : baseFont.getUnicodes()) {
double baseWidth = baseFont.getWidth(unicode) / 1000.0;
double refWidth = reference.getWidth(unicode) / 1000.0;
if (baseWidth == -1.0 || refWidth == -1.0) continue;
distance += baseWidth * refWidth;
d1 += baseWidth * baseWidth;
d2 += refWidth * refWidth;
}
return distance / (Math.sqrt(d1) * Math.sqrt(d2));
}
}