@Override public byte getFlags(final int i) { final GlyfCompositeComp c = getCompositeComp(i); if (c != null) { final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); return gd.getFlags(i - c.getFirstIndex()); } return 0; }
@Override public int getEndPtOfContours(final int i) { final GlyfCompositeComp c = getCompositeCompEndPt(i); if (c != null) { final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); return gd.getEndPtOfContours(i - c.getFirstContour()) + c.getFirstIndex(); } return 0; }
@Override public short getYCoordinate(final int i) { final GlyfCompositeComp c = getCompositeComp(i); if (c != null) { final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); final int n = i - c.getFirstIndex(); final int x = gd.getXCoordinate(n); final int y = gd.getYCoordinate(n); short y1 = (short) c.scaleY(x, y); y1 += c.getYTranslate(); return y1; } return 0; }
@Override public short getXCoordinate(final int i) { final GlyfCompositeComp c = getCompositeComp(i); if (c != null) { final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); final int n = i - c.getFirstIndex(); final int x = gd.getXCoordinate(n); final int y = gd.getYCoordinate(n); short x1 = (short) c.scaleX(x, y); x1 += c.getXTranslate(); return x1; } return 0; }
protected GlyfCompositeComp getCompositeComp(final int i) { GlyfCompositeComp c; for (int n = 0; n < _components.size(); n++) { c = _components.get(n); final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); if (c.getFirstIndex() <= i && i < (c.getFirstIndex() + gd.getPointCount())) { return c; } } return null; }
@Override public int getContourCount() { final GlyfCompositeComp c = _components.get(_components.size()-1); final GlyfDescript d = _parentTable.getDescription(c.getGlyphIndex()); return c.getFirstContour() + ( null != d ? d.getContourCount() : 0 ); }
protected GlyfCompositeComp getCompositeCompEndPt(final int i) { GlyfCompositeComp c; for (int j = 0; j < _components.size(); j++) { c = _components.get(j); final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); if (c.getFirstContour() <= i && i < (c.getFirstContour() + gd.getContourCount())) { return c; } } return null; } }
public PrepTable(final DirectoryEntry de, final DataInput di) throws IOException { this.de = (DirectoryEntry) de.clone(); readInstructions(di, de.getLength()); }
private Table readTable( final DataInputStream dis, final int tablesOrigin, final int tag) throws IOException { dis.reset(); final DirectoryEntry entry = _tableDirectory.getEntryByTag(tag); if (entry == null) { return null; } dis.skip(tablesOrigin + entry.getOffset()); return TableFactory.create(_fc, this, entry, dis); }
protected FpgmTable(final DirectoryEntry de, final DataInput di) throws IOException { this.de = (DirectoryEntry) de.clone(); readInstructions(di, de.getLength()); }
@Override public short getYCoordinate(final int i) { final GlyfCompositeComp c = getCompositeComp(i); if (c != null) { final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); final int n = i - c.getFirstIndex(); final int x = gd.getXCoordinate(n); final int y = gd.getYCoordinate(n); short y1 = (short) c.scaleY(x, y); y1 += c.getYTranslate(); return y1; } return 0; }
@Override public int getEndPtOfContours(final int i) { final GlyfCompositeComp c = getCompositeCompEndPt(i); if (c != null) { final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); return gd.getEndPtOfContours(i - c.getFirstContour()) + c.getFirstIndex(); } return 0; }
@Override public byte getFlags(final int i) { final GlyfCompositeComp c = getCompositeComp(i); if (c != null) { final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); return gd.getFlags(i - c.getFirstIndex()); } return 0; }
protected GlyfCompositeComp getCompositeComp(final int i) { GlyfCompositeComp c; for (int n = 0; n < _components.size(); n++) { c = _components.get(n); final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); if (c.getFirstIndex() <= i && i < (c.getFirstIndex() + gd.getPointCount())) { return c; } } return null; }
@Override public int getContourCount() { final GlyfCompositeComp c = _components.get(_components.size()-1); final GlyfDescript d = _parentTable.getDescription(c.getGlyphIndex()); return c.getFirstContour() + ( null != d ? d.getContourCount() : 0 ); }
public PrepTable(final DirectoryEntry de, final DataInput di) throws IOException { this.de = (DirectoryEntry) de.clone(); readInstructions(di, de.getLength()); }
private Table readTable( final DataInputStream dis, final int tablesOrigin, final int tag) throws IOException { dis.reset(); final DirectoryEntry entry = _tableDirectory.getEntryByTag(tag); if (entry == null) { return null; } dis.skip(tablesOrigin + entry.getOffset()); return TableFactory.create(_fc, this, entry, dis); }
@Override public int getPointCount() { final GlyfCompositeComp c = _components.get(_components.size()-1); final GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex()); if (gd != null) { return c.getFirstIndex() + gd.getPointCount(); } else { return 0; } }