geomerative 0.1.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/LICENSE +662 -0
  4. data/LICENSE.md +9 -0
  5. data/README.md +2 -0
  6. data/Rakefile +37 -0
  7. data/examples/README.md +7 -0
  8. data/examples/data/FreeSans.ttf +0 -0
  9. data/examples/data/ReplicaBold.ttf +0 -0
  10. data/examples/data/bot1.svg +160 -0
  11. data/examples/hello_svg_to_pdf.rb +26 -0
  12. data/examples/hello_world.rb +23 -0
  13. data/examples/physics_type.rb +77 -0
  14. data/examples/rotate_first_letter.rb +28 -0
  15. data/geomerative.gemspec +32 -0
  16. data/lib/geomerative.rb +12 -0
  17. data/lib/geomerative/version.rb +3 -0
  18. data/pom.xml +110 -0
  19. data/src/geomerative/FastRClip.java +2715 -0
  20. data/src/geomerative/RClip.java +2892 -0
  21. data/src/geomerative/RClosest.java +64 -0
  22. data/src/geomerative/RCommand.java +1941 -0
  23. data/src/geomerative/RContour.java +348 -0
  24. data/src/geomerative/RFont.java +583 -0
  25. data/src/geomerative/RG.java +753 -0
  26. data/src/geomerative/RGeomElem.java +1075 -0
  27. data/src/geomerative/RGroup.java +888 -0
  28. data/src/geomerative/RMatrix.java +401 -0
  29. data/src/geomerative/RMesh.java +420 -0
  30. data/src/geomerative/RPath.java +1095 -0
  31. data/src/geomerative/RPoint.java +419 -0
  32. data/src/geomerative/RPolygon.java +1110 -0
  33. data/src/geomerative/RRectangle.java +91 -0
  34. data/src/geomerative/RSVG.java +976 -0
  35. data/src/geomerative/RShape.java +2045 -0
  36. data/src/geomerative/RStrip.java +221 -0
  37. data/src/geomerative/RStyle.java +469 -0
  38. data/src/org/apache/batik/svggen/font/.SVGFont.java.swp +0 -0
  39. data/src/org/apache/batik/svggen/font/Font.java +188 -0
  40. data/src/org/apache/batik/svggen/font/Glyph.java +113 -0
  41. data/src/org/apache/batik/svggen/font/Messages.java.bak +72 -0
  42. data/src/org/apache/batik/svggen/font/Point.java +38 -0
  43. data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +15 -0
  44. data/src/org/apache/batik/svggen/font/table/ClassDef.java +42 -0
  45. data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +55 -0
  46. data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +49 -0
  47. data/src/org/apache/batik/svggen/font/table/CmapFormat.java +81 -0
  48. data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +60 -0
  49. data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +48 -0
  50. data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +147 -0
  51. data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +60 -0
  52. data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +84 -0
  53. data/src/org/apache/batik/svggen/font/table/CmapTable.java +87 -0
  54. data/src/org/apache/batik/svggen/font/table/Coverage.java +50 -0
  55. data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +59 -0
  56. data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +56 -0
  57. data/src/org/apache/batik/svggen/font/table/CvtTable.java +48 -0
  58. data/src/org/apache/batik/svggen/font/table/Device.java +63 -0
  59. data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +73 -0
  60. data/src/org/apache/batik/svggen/font/table/Feature.java +56 -0
  61. data/src/org/apache/batik/svggen/font/table/FeatureList.java +70 -0
  62. data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +52 -0
  63. data/src/org/apache/batik/svggen/font/table/FeatureTags.java +30 -0
  64. data/src/org/apache/batik/svggen/font/table/FpgmTable.java +38 -0
  65. data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +165 -0
  66. data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +160 -0
  67. data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +79 -0
  68. data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +155 -0
  69. data/src/org/apache/batik/svggen/font/table/GlyfTable.java +111 -0
  70. data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +39 -0
  71. data/src/org/apache/batik/svggen/font/table/GposTable.java +80 -0
  72. data/src/org/apache/batik/svggen/font/table/GsubTable.java +118 -0
  73. data/src/org/apache/batik/svggen/font/table/HeadTable.java +159 -0
  74. data/src/org/apache/batik/svggen/font/table/HheaTable.java +109 -0
  75. data/src/org/apache/batik/svggen/font/table/HmtxTable.java +99 -0
  76. data/src/org/apache/batik/svggen/font/table/KernSubtable.java +58 -0
  77. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +65 -0
  78. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +56 -0
  79. data/src/org/apache/batik/svggen/font/table/KernTable.java +64 -0
  80. data/src/org/apache/batik/svggen/font/table/KerningPair.java +53 -0
  81. data/src/org/apache/batik/svggen/font/table/LangSys.java +58 -0
  82. data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +52 -0
  83. data/src/org/apache/batik/svggen/font/table/Ligature.java +57 -0
  84. data/src/org/apache/batik/svggen/font/table/LigatureSet.java +55 -0
  85. data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +40 -0
  86. data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +63 -0
  87. data/src/org/apache/batik/svggen/font/table/LocaTable.java +72 -0
  88. data/src/org/apache/batik/svggen/font/table/Lookup.java +77 -0
  89. data/src/org/apache/batik/svggen/font/table/LookupList.java +68 -0
  90. data/src/org/apache/batik/svggen/font/table/LookupSubtable.java +27 -0
  91. data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +31 -0
  92. data/src/org/apache/batik/svggen/font/table/MaxpTable.java +124 -0
  93. data/src/org/apache/batik/svggen/font/table/NameRecord.java +98 -0
  94. data/src/org/apache/batik/svggen/font/table/NameTable.java +67 -0
  95. data/src/org/apache/batik/svggen/font/table/Os2Table.java +232 -0
  96. data/src/org/apache/batik/svggen/font/table/Panose.java +108 -0
  97. data/src/org/apache/batik/svggen/font/table/PostTable.java +379 -0
  98. data/src/org/apache/batik/svggen/font/table/PrepTable.java +38 -0
  99. data/src/org/apache/batik/svggen/font/table/Program.java +49 -0
  100. data/src/org/apache/batik/svggen/font/table/RangeRecord.java +57 -0
  101. data/src/org/apache/batik/svggen/font/table/Script.java +72 -0
  102. data/src/org/apache/batik/svggen/font/table/ScriptList.java +78 -0
  103. data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +52 -0
  104. data/src/org/apache/batik/svggen/font/table/ScriptTags.java +28 -0
  105. data/src/org/apache/batik/svggen/font/table/SingleSubst.java +47 -0
  106. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +67 -0
  107. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +67 -0
  108. data/src/org/apache/batik/svggen/font/table/Table.java +204 -0
  109. data/src/org/apache/batik/svggen/font/table/TableDirectory.java +94 -0
  110. data/src/org/apache/batik/svggen/font/table/TableFactory.java +121 -0
  111. metadata +206 -0
@@ -0,0 +1,39 @@
1
+ /*
2
+
3
+ Copyright 2001 The Apache Software Foundation
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
17
+ */
18
+ package org.apache.batik.svggen.font.table;
19
+
20
+ /**
21
+ * Specifies access to glyph description classes, simple and composite.
22
+ * @version $Id: GlyphDescription.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
23
+ * @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
24
+ */
25
+ public interface GlyphDescription {
26
+ public int getEndPtOfContours(int i);
27
+ public byte getFlags(int i);
28
+ public short getXCoordinate(int i);
29
+ public short getYCoordinate(int i);
30
+ public short getXMaximum();
31
+ public short getXMinimum();
32
+ public short getYMaximum();
33
+ public short getYMinimum();
34
+ public boolean isComposite();
35
+ public int getPointCount();
36
+ public int getContourCount();
37
+ // public int getComponentIndex(int c);
38
+ // public int getComponentCount();
39
+ }
@@ -0,0 +1,80 @@
1
+ /*
2
+
3
+ Copyright 2001,2003 The Apache Software Foundation
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
17
+ */
18
+ package org.apache.batik.svggen.font.table;
19
+
20
+ import java.io.IOException;
21
+ import org.apache.batik.svggen.font.*;
22
+
23
+ /**
24
+ *
25
+ * @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
26
+ * @version $Id: GposTable.java,v 1.4 2004/08/18 07:15:21 vhardy Exp $
27
+ */
28
+ public class GposTable implements Table {
29
+
30
+ protected GposTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
31
+ raf.seek(de.getOffset());
32
+
33
+ // GPOS Header
34
+ /* int version = */ raf.readInt();
35
+ /* int scriptList = */ raf.readInt();
36
+ /* int featureList = */ raf.readInt();
37
+ /* int lookupList = */ raf.readInt();
38
+ /*
39
+ for (int i = 0; i < t_maxp.getNumGlyphs(); i++) {
40
+ raf.seek(tde.getOffset() + t_loca.getOffset(i));
41
+ int len = t_loca.getOffset((short)(i + 1)) - t_loca.getOffset(i);
42
+ if (len > 0) {
43
+ short numberOfContours = raf.readShort();
44
+ if (numberOfContours < 0) {
45
+ // descript[i] = new TableGlyfCompositeDescript(this, raf);
46
+ } else {
47
+ descript[i] = new TableGlyfSimpleDescript(this, numberOfContours, raf);
48
+ }
49
+ } else {
50
+ descript[i] = null;
51
+ }
52
+ }
53
+
54
+ for (int i = 0; i < t_maxp.getNumGlyphs(); i++) {
55
+ raf.seek(tde.getOffset() + t_loca.getOffset(i));
56
+ int len = t_loca.getOffset((short)(i + 1)) - t_loca.getOffset(i);
57
+ if (len > 0) {
58
+ short numberOfContours = raf.readShort();
59
+ if (numberOfContours < 0) {
60
+ descript[i] = new TableGlyfCompositeDescript(this, raf);
61
+ }
62
+ }
63
+ }
64
+ */
65
+ }
66
+
67
+ /** Get the table type, as a table directory value.
68
+ * @return The table type
69
+ */
70
+ @Override
71
+ public int getType() {
72
+ return GPOS;
73
+ }
74
+
75
+ @Override
76
+ public String toString() {
77
+ return "GPOS";
78
+ }
79
+
80
+ }
@@ -0,0 +1,118 @@
1
+ /*
2
+
3
+ Copyright 2001,2003 The Apache Software Foundation
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
17
+ */
18
+ package org.apache.batik.svggen.font.table;
19
+
20
+ import java.io.IOException;
21
+ import org.apache.batik.svggen.font.*;
22
+
23
+ /**
24
+ *
25
+ * @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
26
+ * @version $Id: GsubTable.java,v 1.4 2004/08/18 07:15:21 vhardy Exp $
27
+ */
28
+ public class GsubTable implements Table, LookupSubtableFactory {
29
+
30
+ private final ScriptList scriptList;
31
+ private final FeatureList featureList;
32
+ private final LookupList lookupList;
33
+
34
+ protected GsubTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
35
+ raf.seek(de.getOffset());
36
+
37
+ // GSUB Header
38
+ /* int version = */ raf.readInt();
39
+ int scriptListOffset = raf.readUnsignedShort();
40
+ int featureListOffset = raf.readUnsignedShort();
41
+ int lookupListOffset = raf.readUnsignedShort();
42
+
43
+ // Script List
44
+ scriptList = new ScriptList(raf, de.getOffset() + scriptListOffset);
45
+
46
+ // Feature List
47
+ featureList = new FeatureList(raf, de.getOffset() + featureListOffset);
48
+
49
+ // Lookup List
50
+ lookupList = new LookupList(raf, de.getOffset() + lookupListOffset, this);
51
+ }
52
+
53
+ /**
54
+ * 1 - Single - Replace one glyph with one glyph
55
+ * 2 - Multiple - Replace one glyph with more than one glyph
56
+ * 3 - Alternate - Replace one glyph with one of many glyphs
57
+ * 4 - Ligature - Replace multiple glyphs with one glyph
58
+ * 5 - Context - Replace one or more glyphs in context
59
+ * 6 - Chaining - Context Replace one or more glyphs in chained context
60
+ * @param type
61
+ * @param raf
62
+ * @param offset
63
+ * @return
64
+ * @throws java.io.IOException
65
+ */
66
+ @Override
67
+ public LookupSubtable read(int type, RandomAccessFileEmulator raf, int offset)
68
+ throws IOException {
69
+ LookupSubtable s = null;
70
+ switch (type) {
71
+ case 1:
72
+ s = SingleSubst.read(raf, offset);
73
+ break;
74
+ case 2:
75
+ // s = MultipleSubst.read(raf, offset);
76
+ break;
77
+ case 3:
78
+ // s = AlternateSubst.read(raf, offset);
79
+ break;
80
+ case 4:
81
+ s = LigatureSubst.read(raf, offset);
82
+ break;
83
+ case 5:
84
+ // s = ContextSubst.read(raf, offset);
85
+ break;
86
+ case 6:
87
+ // s = ChainingSubst.read(raf, offset);
88
+ break;
89
+ }
90
+ return s;
91
+ }
92
+
93
+ /** Get the table type, as a table directory value.
94
+ * @return The table type
95
+ */
96
+ @Override
97
+ public int getType() {
98
+ return GSUB;
99
+ }
100
+
101
+ public ScriptList getScriptList() {
102
+ return scriptList;
103
+ }
104
+
105
+ public FeatureList getFeatureList() {
106
+ return featureList;
107
+ }
108
+
109
+ public LookupList getLookupList() {
110
+ return lookupList;
111
+ }
112
+
113
+ @Override
114
+ public String toString() {
115
+ return "GSUB";
116
+ }
117
+
118
+ }
@@ -0,0 +1,159 @@
1
+ /*
2
+
3
+ Copyright 2001 The Apache Software Foundation
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
17
+ */
18
+ package org.apache.batik.svggen.font.table;
19
+
20
+ import java.io.IOException;
21
+ import org.apache.batik.svggen.font.*;
22
+
23
+ /**
24
+ * @version $Id: HeadTable.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
25
+ * @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
26
+ */
27
+ public class HeadTable implements Table {
28
+
29
+ private final int versionNumber;
30
+ private final int fontRevision;
31
+ private final int checkSumAdjustment;
32
+ private final int magicNumber;
33
+ private final short flags;
34
+ private final short unitsPerEm;
35
+ private final long created;
36
+ private final long modified;
37
+ private final short xMin;
38
+ private final short yMin;
39
+ private final short xMax;
40
+ private final short yMax;
41
+ private final short macStyle;
42
+ private final short lowestRecPPEM;
43
+ private final short fontDirectionHint;
44
+ private final short indexToLocFormat;
45
+ private final short glyphDataFormat;
46
+
47
+ protected HeadTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
48
+ raf.seek(de.getOffset());
49
+ versionNumber = raf.readInt();
50
+ fontRevision = raf.readInt();
51
+ checkSumAdjustment = raf.readInt();
52
+ magicNumber = raf.readInt();
53
+ flags = raf.readShort();
54
+ unitsPerEm = raf.readShort();
55
+ created = raf.readLong();
56
+ modified = raf.readLong();
57
+ xMin = raf.readShort();
58
+ yMin = raf.readShort();
59
+ xMax = raf.readShort();
60
+ yMax = raf.readShort();
61
+ macStyle = raf.readShort();
62
+ lowestRecPPEM = raf.readShort();
63
+ fontDirectionHint = raf.readShort();
64
+ indexToLocFormat = raf.readShort();
65
+ glyphDataFormat = raf.readShort();
66
+ }
67
+
68
+ public int getCheckSumAdjustment() {
69
+ return checkSumAdjustment;
70
+ }
71
+
72
+ public long getCreated() {
73
+ return created;
74
+ }
75
+
76
+ public short getFlags() {
77
+ return flags;
78
+ }
79
+
80
+ public short getFontDirectionHint() {
81
+ return fontDirectionHint;
82
+ }
83
+
84
+ public int getFontRevision(){
85
+ return fontRevision;
86
+ }
87
+
88
+ public short getGlyphDataFormat() {
89
+ return glyphDataFormat;
90
+ }
91
+
92
+ public short getIndexToLocFormat() {
93
+ return indexToLocFormat;
94
+ }
95
+
96
+ public short getLowestRecPPEM() {
97
+ return lowestRecPPEM;
98
+ }
99
+
100
+ public short getMacStyle() {
101
+ return macStyle;
102
+ }
103
+
104
+ public long getModified() {
105
+ return modified;
106
+ }
107
+
108
+ @Override
109
+ public int getType() {
110
+ return head;
111
+ }
112
+
113
+ public short getUnitsPerEm() {
114
+ return unitsPerEm;
115
+ }
116
+
117
+ public int getVersionNumber() {
118
+ return versionNumber;
119
+ }
120
+
121
+ public short getXMax() {
122
+ return xMax;
123
+ }
124
+
125
+ public short getXMin() {
126
+ return xMin;
127
+ }
128
+
129
+ public short getYMax() {
130
+ return yMax;
131
+ }
132
+
133
+ public short getYMin() {
134
+ return yMin;
135
+ }
136
+
137
+ @Override
138
+ public String toString() {
139
+ return new StringBuilder()
140
+ .append("head\n\tversionNumber: ").append(versionNumber)
141
+ .append("\n\tfontRevision: ").append(fontRevision)
142
+ .append("\n\tcheckSumAdjustment: ").append(checkSumAdjustment)
143
+ .append("\n\tmagicNumber: ").append(magicNumber)
144
+ .append("\n\tflags: ").append(flags)
145
+ .append("\n\tunitsPerEm: ").append(unitsPerEm)
146
+ .append("\n\tcreated: ").append(created)
147
+ .append("\n\tmodified: ").append(modified)
148
+ .append("\n\txMin: ").append(xMin)
149
+ .append(", yMin: ").append(yMin)
150
+ .append("\n\txMax: ").append(xMax)
151
+ .append(", yMax: ").append(yMax)
152
+ .append("\n\tmacStyle: ").append(macStyle)
153
+ .append("\n\tlowestRecPPEM: ").append(lowestRecPPEM)
154
+ .append("\n\tfontDirectionHint: ").append(fontDirectionHint)
155
+ .append("\n\tindexToLocFormat: ").append(indexToLocFormat)
156
+ .append("\n\tglyphDataFormat: ").append(glyphDataFormat)
157
+ .toString();
158
+ }
159
+ }
@@ -0,0 +1,109 @@
1
+ /*
2
+
3
+ Copyright 2001 The Apache Software Foundation
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+
17
+ */
18
+ package org.apache.batik.svggen.font.table;
19
+
20
+ import java.io.IOException;
21
+ import org.apache.batik.svggen.font.*;
22
+
23
+ /**
24
+ * @version $Id: HheaTable.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
25
+ * @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
26
+ */
27
+ public class HheaTable implements Table {
28
+
29
+ private final int version;
30
+ private final short ascender;
31
+ private final short descender;
32
+ private final short lineGap;
33
+ private final short advanceWidthMax;
34
+ private final short minLeftSideBearing;
35
+ private final short minRightSideBearing;
36
+ private final short xMaxExtent;
37
+ private final short caretSlopeRise;
38
+ private final short caretSlopeRun;
39
+ private final short metricDataFormat;
40
+ private final short numberOfHMetrics;
41
+
42
+ protected HheaTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
43
+ raf.seek(de.getOffset());
44
+ version = raf.readInt();
45
+ ascender = raf.readShort();
46
+ descender = raf.readShort();
47
+ lineGap = raf.readShort();
48
+ advanceWidthMax = raf.readShort();
49
+ minLeftSideBearing = raf.readShort();
50
+ minRightSideBearing = raf.readShort();
51
+ xMaxExtent = raf.readShort();
52
+ caretSlopeRise = raf.readShort();
53
+ caretSlopeRun = raf.readShort();
54
+ for (int i = 0; i < 5; i++) {
55
+ raf.readShort();
56
+ }
57
+ metricDataFormat = raf.readShort();
58
+ numberOfHMetrics = raf.readShort();
59
+ }
60
+
61
+ public short getAdvanceWidthMax() {
62
+ return advanceWidthMax;
63
+ }
64
+
65
+ public short getAscender() {
66
+ return ascender;
67
+ }
68
+
69
+ public short getCaretSlopeRise() {
70
+ return caretSlopeRise;
71
+ }
72
+
73
+ public short getCaretSlopeRun() {
74
+ return caretSlopeRun;
75
+ }
76
+
77
+ public short getDescender() {
78
+ return descender;
79
+ }
80
+
81
+ public short getLineGap() {
82
+ return lineGap;
83
+ }
84
+
85
+ public short getMetricDataFormat() {
86
+ return metricDataFormat;
87
+ }
88
+
89
+ public short getMinLeftSideBearing() {
90
+ return minLeftSideBearing;
91
+ }
92
+
93
+ public short getMinRightSideBearing() {
94
+ return minRightSideBearing;
95
+ }
96
+
97
+ public short getNumberOfHMetrics() {
98
+ return numberOfHMetrics;
99
+ }
100
+
101
+ @Override
102
+ public int getType() {
103
+ return hhea;
104
+ }
105
+
106
+ public short getXMaxExtent() {
107
+ return xMaxExtent;
108
+ }
109
+ }