package com.google.typography.font.sfntly.table.core;
import com.google.typography.font.sfntly.data.ReadableFontData;
import com.google.typography.font.sfntly.data.WritableFontData;
import com.google.typography.font.sfntly.table.Header;
import com.google.typography.font.sfntly.table.Table;
import com.google.typography.font.sfntly.table.TableBasedTableBuilder;
public class HorizontalDeviceMetricsTable
extends Table
{
private int numGlyphs;
private HorizontalDeviceMetricsTable(Header paramHeader, ReadableFontData paramReadableFontData, int paramInt)
{
super(paramHeader, paramReadableFontData);
this.numGlyphs = paramInt;
}
public int version()
{
return this.data.readUShort(Offset.version.offset);
}
public int numRecords()
{
return this.data.readShort(Offset.numRecords.offset);
}
public int recordSize()
{
return this.data.readLong(Offset.sizeDeviceRecord.offset);
}
public int pixelSize(int paramInt)
{
if ((paramInt < 0) || (paramInt >= numRecords())) {
throw new IndexOutOfBoundsException();
}
return this.data.readUByte(Offset.records.offset + paramInt * recordSize() + Offset.deviceRecordPixelSize.offset);
}
public int maxWidth(int paramInt)
{
if ((paramInt < 0) || (paramInt >= numRecords())) {
throw new IndexOutOfBoundsException();
}
return this.data.readUByte(Offset.records.offset + paramInt * recordSize() + Offset.deviceRecordMaxWidth.offset);
}
public int width(int paramInt1, int paramInt2)
{
if ((paramInt1 < 0) || (paramInt1 >= numRecords()) || (paramInt2 < 0) || (paramInt2 >= this.numGlyphs)) {
throw new IndexOutOfBoundsException();
}
return this.data.readUByte(Offset.records.offset + paramInt1 * recordSize() + Offset.deviceRecordWidths.offset + paramInt2);
}
public static class Builder
extends TableBasedTableBuilder<HorizontalDeviceMetricsTable>
{
private int numGlyphs = -1;
public static Builder createBuilder(Header paramHeader, WritableFontData paramWritableFontData)
{
return new Builder(paramHeader, paramWritableFontData);
}
protected Builder(Header paramHeader, WritableFontData paramWritableFontData)
{
super(paramWritableFontData);
}
protected Builder(Header paramHeader, ReadableFontData paramReadableFontData)
{
super(paramReadableFontData);
}
protected HorizontalDeviceMetricsTable subBuildTable(ReadableFontData paramReadableFontData)
{
return new HorizontalDeviceMetricsTable(header(), paramReadableFontData, this.numGlyphs, null);
}
public void setNumGlyphs(int paramInt)
{
if (paramInt < 0) {
throw new IllegalArgumentException("Number of glyphs can't be negative.");
}
this.numGlyphs = paramInt;
((HorizontalDeviceMetricsTable)table()).numGlyphs = paramInt;
}
}
private static enum Offset
{
version(0), numRecords(2), sizeDeviceRecord(4), records(8), deviceRecordPixelSize(0), deviceRecordMaxWidth(1), deviceRecordWidths(2);
private final int offset;
private Offset(int paramInt)
{
this.offset = paramInt;
}
}
}
/* Location: C:\Users\Ethan\Desktop\FontZip\FontTool\sfnttool.jar!\com\google\typography\font\sfntly\table\core\HorizontalDeviceMetricsTable.class
* Java compiler version: 6 (50.0)
* JD-Core Version: 0.7.1
*/