geomerative 0.4.3-java → 2.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 (129) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -0
  3. data/.mvn/extensions.xml +1 -1
  4. data/.mvn/wrapper/maven-wrapper.properties +1 -1
  5. data/CHANGELOG.md +19 -1
  6. data/COPYING.md +1 -1
  7. data/README.md +2 -2
  8. data/Rakefile +2 -15
  9. data/docs/_config.yml +8 -0
  10. data/docs/_includes/head.html +7 -6
  11. data/docs/_includes/header.html +6 -6
  12. data/docs/_includes/icon-github.svg +3 -1
  13. data/docs/_includes/icon-twitter.svg +3 -1
  14. data/docs/_includes/navigation.html +24 -0
  15. data/docs/_sass/_base.scss +79 -79
  16. data/docs/_sass/_layout.scss +137 -137
  17. data/docs/_sass/_syntax-highlighting.scss +64 -64
  18. data/docs/index.html +18 -18
  19. data/examples/README.md +1 -1
  20. data/examples/data/bot1.svg +1 -1
  21. data/examples/data/lion.svg +156 -156
  22. data/examples/data/ruby.svg +1 -1
  23. data/examples/jruby_merge.rb +1 -1
  24. data/examples/{f_agent.rb → library/f_agent/f_agent.rb} +0 -0
  25. data/examples/{font_agent.rb → library/font_agent/font_agent.rb} +2 -1
  26. data/examples/text_on_geomerative_path.rb +3 -2
  27. data/examples/typo_deform.rb +2 -2
  28. data/examples/typo_extra_bright.rb +1 -1
  29. data/geomerative.gemspec +3 -6
  30. data/lib/geomerative/version.rb +1 -1
  31. data/lib/geomerative.jar +0 -0
  32. data/lib/geomerative.rb +10 -10
  33. data/mvnw +234 -0
  34. data/mvnw.cmd +145 -0
  35. data/pom.rb +14 -16
  36. data/pom.xml +13 -19
  37. data/src/geomerative/FastRClip.java +2050 -2334
  38. data/src/geomerative/RClip.java +2237 -2539
  39. data/src/geomerative/RClosest.java +33 -31
  40. data/src/geomerative/RCommand.java +1750 -1758
  41. data/src/geomerative/RContour.java +290 -292
  42. data/src/geomerative/RFont.java +277 -246
  43. data/src/geomerative/RG.java +722 -727
  44. data/src/geomerative/RGeomElem.java +967 -962
  45. data/src/geomerative/RGroup.java +508 -467
  46. data/src/geomerative/RMatrix.java +304 -289
  47. data/src/geomerative/RMesh.java +241 -229
  48. data/src/geomerative/RPath.java +924 -926
  49. data/src/geomerative/RPoint.java +391 -391
  50. data/src/geomerative/RPolygon.java +1017 -1013
  51. data/src/geomerative/RRectangle.java +43 -52
  52. data/src/geomerative/RSVG.java +480 -516
  53. data/src/geomerative/RShape.java +1767 -1777
  54. data/src/geomerative/RStrip.java +173 -176
  55. data/src/geomerative/RStyle.java +197 -194
  56. data/src/module-info.java +4 -0
  57. data/src/org/apache/batik/svggen/font/Font.java +141 -142
  58. data/src/org/apache/batik/svggen/font/Glyph.java +102 -71
  59. data/src/org/apache/batik/svggen/font/Point.java +12 -12
  60. data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +14 -12
  61. data/src/org/apache/batik/svggen/font/table/ClassDef.java +12 -12
  62. data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +27 -24
  63. data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +20 -17
  64. data/src/org/apache/batik/svggen/font/table/CmapFormat.java +43 -43
  65. data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +33 -26
  66. data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +25 -20
  67. data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +106 -96
  68. data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +36 -32
  69. data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +69 -49
  70. data/src/org/apache/batik/svggen/font/table/CmapTable.java +50 -50
  71. data/src/org/apache/batik/svggen/font/table/Coverage.java +19 -19
  72. data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +30 -27
  73. data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +26 -24
  74. data/src/org/apache/batik/svggen/font/table/CvtTable.java +16 -16
  75. data/src/org/apache/batik/svggen/font/table/Device.java +32 -32
  76. data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +39 -39
  77. data/src/org/apache/batik/svggen/font/table/Feature.java +26 -23
  78. data/src/org/apache/batik/svggen/font/table/FeatureList.java +37 -35
  79. data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +22 -22
  80. data/src/org/apache/batik/svggen/font/table/FeatureTags.java +4 -3
  81. data/src/org/apache/batik/svggen/font/table/FpgmTable.java +9 -9
  82. data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +134 -132
  83. data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +123 -122
  84. data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +44 -44
  85. data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +110 -109
  86. data/src/org/apache/batik/svggen/font/table/GlyfTable.java +46 -46
  87. data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +25 -13
  88. data/src/org/apache/batik/svggen/font/table/GposTable.java +26 -23
  89. data/src/org/apache/batik/svggen/font/table/GsubTable.java +85 -82
  90. data/src/org/apache/batik/svggen/font/table/HeadTable.java +131 -131
  91. data/src/org/apache/batik/svggen/font/table/HheaTable.java +80 -80
  92. data/src/org/apache/batik/svggen/font/table/HmtxTable.java +50 -49
  93. data/src/org/apache/batik/svggen/font/table/KernSubtable.java +29 -27
  94. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +35 -32
  95. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +28 -26
  96. data/src/org/apache/batik/svggen/font/table/KernTable.java +36 -31
  97. data/src/org/apache/batik/svggen/font/table/KerningPair.java +27 -23
  98. data/src/org/apache/batik/svggen/font/table/LangSys.java +28 -26
  99. data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +22 -22
  100. data/src/org/apache/batik/svggen/font/table/Ligature.java +24 -24
  101. data/src/org/apache/batik/svggen/font/table/LigatureSet.java +24 -24
  102. data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +9 -9
  103. data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +30 -30
  104. data/src/org/apache/batik/svggen/font/table/LocaTable.java +37 -37
  105. data/src/org/apache/batik/svggen/font/table/Lookup.java +41 -40
  106. data/src/org/apache/batik/svggen/font/table/LookupList.java +34 -34
  107. data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +7 -5
  108. data/src/org/apache/batik/svggen/font/table/MaxpTable.java +96 -96
  109. data/src/org/apache/batik/svggen/font/table/NameRecord.java +64 -65
  110. data/src/org/apache/batik/svggen/font/table/NameTable.java +33 -33
  111. data/src/org/apache/batik/svggen/font/table/Os2Table.java +196 -196
  112. data/src/org/apache/batik/svggen/font/table/Panose.java +14 -12
  113. data/src/org/apache/batik/svggen/font/table/PostTable.java +338 -338
  114. data/src/org/apache/batik/svggen/font/table/PrepTable.java +9 -9
  115. data/src/org/apache/batik/svggen/font/table/Program.java +15 -15
  116. data/src/org/apache/batik/svggen/font/table/RangeRecord.java +26 -25
  117. data/src/org/apache/batik/svggen/font/table/Script.java +38 -38
  118. data/src/org/apache/batik/svggen/font/table/ScriptList.java +42 -42
  119. data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +22 -22
  120. data/src/org/apache/batik/svggen/font/table/ScriptTags.java +2 -1
  121. data/src/org/apache/batik/svggen/font/table/SingleSubst.java +15 -16
  122. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +33 -33
  123. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +32 -32
  124. data/src/org/apache/batik/svggen/font/table/Table.java +171 -170
  125. data/src/org/apache/batik/svggen/font/table/TableDirectory.java +55 -55
  126. data/src/org/apache/batik/svggen/font/table/TableFactory.java +92 -93
  127. metadata +18 -19
  128. data/.travis.yml +0 -10
  129. data/calculate_torsional_angle.rb +0 -17
@@ -18,7 +18,7 @@
18
18
  package org.apache.batik.svggen.font.table;
19
19
 
20
20
  import java.io.IOException;
21
- import org.apache.batik.svggen.font.*;
21
+ import org.apache.batik.svggen.font.RandomAccessFileEmulator;
22
22
 
23
23
  /**
24
24
  * @version $Id: HeadTable.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
@@ -26,134 +26,134 @@ import org.apache.batik.svggen.font.*;
26
26
  */
27
27
  public class HeadTable implements Table {
28
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
- }
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
159
  }
@@ -18,7 +18,7 @@
18
18
  package org.apache.batik.svggen.font.table;
19
19
 
20
20
  import java.io.IOException;
21
- import org.apache.batik.svggen.font.*;
21
+ import org.apache.batik.svggen.font.RandomAccessFileEmulator;
22
22
 
23
23
  /**
24
24
  * @version $Id: HheaTable.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
@@ -26,84 +26,84 @@ import org.apache.batik.svggen.font.*;
26
26
  */
27
27
  public class HheaTable implements Table {
28
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;
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();
108
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
109
  }
@@ -19,7 +19,7 @@ package org.apache.batik.svggen.font.table;
19
19
 
20
20
  import java.io.ByteArrayInputStream;
21
21
  import java.io.IOException;
22
- import org.apache.batik.svggen.font.*;
22
+ import org.apache.batik.svggen.font.RandomAccessFileEmulator;
23
23
 
24
24
  /**
25
25
  * @version $Id: HmtxTable.java,v 1.4 2004/08/18 07:15:21 vhardy Exp $
@@ -27,15 +27,15 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class HmtxTable implements Table {
29
29
 
30
- private byte[] buf = null;
31
- private int[] hMetrics = null;
32
- private short[] leftSideBearing = null;
30
+ private byte[] buf = null;
31
+ private int[] hMetrics = null;
32
+ private short[] leftSideBearing = null;
33
33
 
34
- protected HmtxTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
35
- raf.seek(de.getOffset());
36
- buf = new byte[de.getLength()];
37
- raf.read(buf);
38
- /*
34
+ protected HmtxTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
35
+ raf.seek(de.getOffset());
36
+ buf = new byte[de.getLength()];
37
+ raf.read(buf);
38
+ /*
39
39
  TableMaxp t_maxp = (TableMaxp) td.getEntryByTag(maxp).getTable();
40
40
  TableHhea t_hhea = (TableHhea) td.getEntryByTag(hhea).getTable();
41
41
  int lsbCount = t_maxp.getNumGlyphs() - t_hhea.getNumberOfHMetrics();
@@ -49,51 +49,52 @@ public class HmtxTable implements Table {
49
49
  leftSideBearing[i] = raf.readShort();
50
50
  }
51
51
  }
52
- */
53
- }
52
+ */
53
+ }
54
54
 
55
- public void init(int numberOfHMetrics, int lsbCount) {
56
- if (buf == null) {
57
- return;
58
- }
59
- hMetrics = new int[numberOfHMetrics];
60
- ByteArrayInputStream bais = new ByteArrayInputStream(buf);
61
- for (int i = 0; i < numberOfHMetrics; i++) {
62
- hMetrics[i] = (bais.read()<<24 | bais.read()<<16 |
63
- bais.read()<< 8 | bais.read());
64
- }
65
- if (lsbCount > 0) {
66
- leftSideBearing = new short[lsbCount];
67
- for (int i = 0; i < lsbCount; i++) {
68
- leftSideBearing[i] = (short)(bais.read()<<8 | bais.read());
69
- }
70
- }
71
- buf = null;
55
+ public void init(int numberOfHMetrics, int lsbCount) {
56
+ if (buf == null) {
57
+ return;
72
58
  }
73
-
74
- public int getAdvanceWidth(int i) {
75
- if (hMetrics == null) {
76
- return 0;
77
- }
78
- if (i < hMetrics.length) {
79
- return hMetrics[i] >> 16;
80
- } else {
81
- return hMetrics[hMetrics.length - 1] >> 16;
82
- }
59
+ hMetrics = new int[numberOfHMetrics];
60
+ ByteArrayInputStream bais = new ByteArrayInputStream(buf);
61
+ for (int i = 0; i < numberOfHMetrics; i++) {
62
+ hMetrics[i] = (bais.read() << 24 | bais.read() << 16
63
+ | bais.read() << 8 | bais.read());
83
64
  }
65
+ if (lsbCount > 0) {
66
+ leftSideBearing = new short[lsbCount];
67
+ for (int i = 0; i < lsbCount; i++) {
68
+ leftSideBearing[i] = (short) (bais.read() << 8 | bais.read());
69
+ }
70
+ }
71
+ buf = null;
72
+ }
84
73
 
85
- public short getLeftSideBearing(int i) {
86
- if (hMetrics == null) {
87
- return 0;
88
- }
89
- if (i < hMetrics.length) {
90
- return (short)(hMetrics[i] & 0xffff);
91
- } else {
92
- return leftSideBearing[i - hMetrics.length];
93
- }
74
+ public int getAdvanceWidth(int i) {
75
+ if (hMetrics == null) {
76
+ return 0;
77
+ }
78
+ if (i < hMetrics.length) {
79
+ return hMetrics[i] >> 16;
80
+ } else {
81
+ return hMetrics[hMetrics.length - 1] >> 16;
94
82
  }
83
+ }
95
84
 
96
- public int getType() {
97
- return hmtx;
85
+ public short getLeftSideBearing(int i) {
86
+ if (hMetrics == null) {
87
+ return 0;
98
88
  }
89
+ if (i < hMetrics.length) {
90
+ return (short) (hMetrics[i] & 0xffff);
91
+ } else {
92
+ return leftSideBearing[i - hMetrics.length];
93
+ }
94
+ }
95
+
96
+ @Override
97
+ public int getType() {
98
+ return HMTX;
99
+ }
99
100
  }
@@ -18,7 +18,7 @@
18
18
  package org.apache.batik.svggen.font.table;
19
19
 
20
20
  import java.io.IOException;
21
- import org.apache.batik.svggen.font.*;
21
+ import org.apache.batik.svggen.font.RandomAccessFileEmulator;
22
22
 
23
23
  /**
24
24
  *
@@ -27,32 +27,34 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public abstract class KernSubtable {
29
29
 
30
- /** Creates new KernSubtable */
31
- protected KernSubtable() {
32
- }
33
-
34
- public abstract int getKerningPairCount();
35
-
36
- public abstract KerningPair getKerningPair(int i);
37
-
38
- public static KernSubtable read(RandomAccessFileEmulator raf) throws IOException {
39
- KernSubtable table = null;
40
- /* int version =*/ raf.readUnsignedShort();
41
- /* int length =*/ raf.readUnsignedShort();
42
- int coverage = raf.readUnsignedShort();
43
- int format = coverage >> 8;
44
-
45
- switch (format) {
46
- case 0:
47
- table = new KernSubtableFormat0(raf);
48
- break;
49
- case 2:
50
- table = new KernSubtableFormat2(raf);
51
- break;
52
- default:
53
- break;
54
- }
55
- return table;
30
+ /**
31
+ * Creates new KernSubtable
32
+ */
33
+ protected KernSubtable() {
34
+ }
35
+
36
+ public abstract int getKerningPairCount();
37
+
38
+ public abstract KerningPair getKerningPair(int i);
39
+
40
+ public static KernSubtable read(RandomAccessFileEmulator raf) throws IOException {
41
+ KernSubtable table = null;
42
+ /* int version =*/ raf.readUnsignedShort();
43
+ /* int length =*/ raf.readUnsignedShort();
44
+ int coverage = raf.readUnsignedShort();
45
+ int format = coverage >> 8;
46
+
47
+ switch (format) {
48
+ case 0:
49
+ table = new KernSubtableFormat0(raf);
50
+ break;
51
+ case 2:
52
+ table = new KernSubtableFormat2(raf);
53
+ break;
54
+ default:
55
+ break;
56
56
  }
57
+ return table;
58
+ }
57
59
 
58
60
  }