geomerative 0.4.0-java → 2.0.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 (150) 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 +25 -0
  6. data/COPYING.md +1 -1
  7. data/README.md +4 -2
  8. data/Rakefile +2 -15
  9. data/docs/.gitignore +6 -0
  10. data/docs/_config.yml +30 -0
  11. data/docs/_includes/footer.html +38 -0
  12. data/docs/_includes/head.html +16 -0
  13. data/docs/_includes/header.html +27 -0
  14. data/docs/_includes/icon-github.html +1 -0
  15. data/docs/_includes/icon-github.svg +3 -0
  16. data/docs/_includes/icon-twitter.html +1 -0
  17. data/docs/_includes/icon-twitter.svg +3 -0
  18. data/docs/_includes/navigation.html +24 -0
  19. data/docs/_layouts/default.html +20 -0
  20. data/docs/_layouts/page.html +14 -0
  21. data/docs/_layouts/post.html +15 -0
  22. data/docs/_posts/2015-11-21-getting_started.md +67 -0
  23. data/docs/_posts/2015-11-25-bubbles.md +111 -0
  24. data/docs/_posts/2015-11-26-extra_bright.md +103 -0
  25. data/docs/_posts/2015-11-26-text_merge.md +114 -0
  26. data/docs/_posts/2016-07-06-dymo.md +99 -0
  27. data/docs/_sass/_base.scss +206 -0
  28. data/docs/_sass/_layout.scss +242 -0
  29. data/docs/_sass/_syntax-highlighting.scss +71 -0
  30. data/docs/about.md +12 -0
  31. data/docs/assets/bright.png +0 -0
  32. data/docs/assets/bubbles.png +0 -0
  33. data/docs/assets/design.png +0 -0
  34. data/docs/assets/dymo.png +0 -0
  35. data/docs/assets/favicon.ico +0 -0
  36. data/docs/assets/fred.png +0 -0
  37. data/docs/assets/merge.png +0 -0
  38. data/docs/css/main.scss +38 -0
  39. data/docs/favicon.ico +0 -0
  40. data/docs/feed.xml +30 -0
  41. data/docs/index.html +38 -0
  42. data/examples/README.md +1 -1
  43. data/examples/data/bot1.svg +1 -1
  44. data/examples/data/lion.svg +156 -156
  45. data/examples/data/ruby.svg +1 -1
  46. data/examples/hello_svg_to_pdf.rb +1 -1
  47. data/examples/jruby_merge.rb +1 -1
  48. data/examples/{f_agent.rb → library/f_agent/f_agent.rb} +0 -0
  49. data/examples/{font_agent.rb → library/font_agent/font_agent.rb} +2 -1
  50. data/examples/text_on_geomerative_path.rb +3 -2
  51. data/examples/typo_deform.rb +2 -2
  52. data/examples/typo_extra_bright.rb +1 -1
  53. data/geomerative.gemspec +3 -7
  54. data/lib/geomerative.rb +5 -4
  55. data/lib/geomerative/version.rb +1 -1
  56. data/mvnw +234 -0
  57. data/mvnw.cmd +145 -0
  58. data/pom.rb +19 -18
  59. data/pom.xml +14 -13
  60. data/src/geomerative/FastRClip.java +2050 -2334
  61. data/src/geomerative/RClip.java +2237 -2539
  62. data/src/geomerative/RClosest.java +33 -31
  63. data/src/geomerative/RCommand.java +1750 -1758
  64. data/src/geomerative/RContour.java +290 -292
  65. data/src/geomerative/RFont.java +277 -246
  66. data/src/geomerative/RG.java +722 -727
  67. data/src/geomerative/RGeomElem.java +967 -962
  68. data/src/geomerative/RGroup.java +508 -467
  69. data/src/geomerative/RMatrix.java +304 -289
  70. data/src/geomerative/RMesh.java +241 -229
  71. data/src/geomerative/RPath.java +924 -926
  72. data/src/geomerative/RPoint.java +391 -391
  73. data/src/geomerative/RPolygon.java +1017 -1013
  74. data/src/geomerative/RRectangle.java +43 -52
  75. data/src/geomerative/RSVG.java +480 -516
  76. data/src/geomerative/RShape.java +1767 -1777
  77. data/src/geomerative/RStrip.java +173 -176
  78. data/src/geomerative/RStyle.java +197 -194
  79. data/src/org/apache/batik/svggen/font/Font.java +141 -142
  80. data/src/org/apache/batik/svggen/font/Glyph.java +102 -71
  81. data/src/org/apache/batik/svggen/font/Point.java +12 -12
  82. data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +14 -12
  83. data/src/org/apache/batik/svggen/font/table/ClassDef.java +12 -12
  84. data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +27 -24
  85. data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +20 -17
  86. data/src/org/apache/batik/svggen/font/table/CmapFormat.java +43 -43
  87. data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +33 -26
  88. data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +25 -20
  89. data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +106 -96
  90. data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +36 -32
  91. data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +69 -49
  92. data/src/org/apache/batik/svggen/font/table/CmapTable.java +50 -50
  93. data/src/org/apache/batik/svggen/font/table/Coverage.java +19 -19
  94. data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +30 -27
  95. data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +26 -24
  96. data/src/org/apache/batik/svggen/font/table/CvtTable.java +16 -16
  97. data/src/org/apache/batik/svggen/font/table/Device.java +32 -32
  98. data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +39 -39
  99. data/src/org/apache/batik/svggen/font/table/Feature.java +26 -23
  100. data/src/org/apache/batik/svggen/font/table/FeatureList.java +37 -35
  101. data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +22 -22
  102. data/src/org/apache/batik/svggen/font/table/FeatureTags.java +4 -3
  103. data/src/org/apache/batik/svggen/font/table/FpgmTable.java +9 -9
  104. data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +134 -132
  105. data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +123 -122
  106. data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +44 -44
  107. data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +110 -109
  108. data/src/org/apache/batik/svggen/font/table/GlyfTable.java +46 -46
  109. data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +25 -13
  110. data/src/org/apache/batik/svggen/font/table/GposTable.java +26 -23
  111. data/src/org/apache/batik/svggen/font/table/GsubTable.java +85 -82
  112. data/src/org/apache/batik/svggen/font/table/HeadTable.java +131 -131
  113. data/src/org/apache/batik/svggen/font/table/HheaTable.java +80 -80
  114. data/src/org/apache/batik/svggen/font/table/HmtxTable.java +50 -49
  115. data/src/org/apache/batik/svggen/font/table/KernSubtable.java +29 -27
  116. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +35 -32
  117. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +28 -26
  118. data/src/org/apache/batik/svggen/font/table/KernTable.java +36 -31
  119. data/src/org/apache/batik/svggen/font/table/KerningPair.java +27 -23
  120. data/src/org/apache/batik/svggen/font/table/LangSys.java +28 -26
  121. data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +22 -22
  122. data/src/org/apache/batik/svggen/font/table/Ligature.java +24 -24
  123. data/src/org/apache/batik/svggen/font/table/LigatureSet.java +24 -24
  124. data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +9 -9
  125. data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +30 -30
  126. data/src/org/apache/batik/svggen/font/table/LocaTable.java +37 -37
  127. data/src/org/apache/batik/svggen/font/table/Lookup.java +41 -40
  128. data/src/org/apache/batik/svggen/font/table/LookupList.java +34 -34
  129. data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +7 -5
  130. data/src/org/apache/batik/svggen/font/table/MaxpTable.java +96 -96
  131. data/src/org/apache/batik/svggen/font/table/NameRecord.java +64 -65
  132. data/src/org/apache/batik/svggen/font/table/NameTable.java +33 -33
  133. data/src/org/apache/batik/svggen/font/table/Os2Table.java +196 -196
  134. data/src/org/apache/batik/svggen/font/table/Panose.java +14 -12
  135. data/src/org/apache/batik/svggen/font/table/PostTable.java +338 -338
  136. data/src/org/apache/batik/svggen/font/table/PrepTable.java +9 -9
  137. data/src/org/apache/batik/svggen/font/table/Program.java +15 -15
  138. data/src/org/apache/batik/svggen/font/table/RangeRecord.java +26 -25
  139. data/src/org/apache/batik/svggen/font/table/Script.java +38 -38
  140. data/src/org/apache/batik/svggen/font/table/ScriptList.java +42 -42
  141. data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +22 -22
  142. data/src/org/apache/batik/svggen/font/table/ScriptTags.java +2 -1
  143. data/src/org/apache/batik/svggen/font/table/SingleSubst.java +15 -16
  144. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +33 -33
  145. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +32 -32
  146. data/src/org/apache/batik/svggen/font/table/Table.java +171 -170
  147. data/src/org/apache/batik/svggen/font/table/TableDirectory.java +55 -55
  148. data/src/org/apache/batik/svggen/font/table/TableFactory.java +92 -93
  149. metadata +47 -30
  150. data/.travis.yml +0 -14
@@ -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: GlyfTable.java,v 1.4 2004/08/18 07:15:21 vhardy Exp $
@@ -27,14 +27,14 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class GlyfTable implements Table {
29
29
 
30
- private byte[] buf = null;
31
- private GlyfDescript[] descript;
30
+ private byte[] buf = null;
31
+ private GlyfDescript[] descript;
32
32
 
33
- protected GlyfTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
34
- raf.seek(de.getOffset());
35
- buf = new byte[de.getLength()];
36
- raf.read(buf);
37
- /*
33
+ protected GlyfTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
34
+ raf.seek(de.getOffset());
35
+ buf = new byte[de.getLength()];
36
+ raf.read(buf);
37
+ /*
38
38
  TableMaxp t_maxp = (TableMaxp) td.getEntryByTag(maxp).getTable();
39
39
  TableLoca t_loca = (TableLoca) td.getEntryByTag(loca).getTable();
40
40
  descript = new TableGlyfDescript[t_maxp.getNumGlyphs()];
@@ -63,49 +63,49 @@ public class GlyfTable implements Table {
63
63
  }
64
64
  }
65
65
  }
66
- */
67
- }
66
+ */
67
+ }
68
68
 
69
- public void init(int numGlyphs, LocaTable loca) {
70
- if (buf == null) {
71
- return;
72
- }
73
- descript = new GlyfDescript[numGlyphs];
74
- ByteArrayInputStream bais = new ByteArrayInputStream(buf);
75
- for (int i = 0; i < numGlyphs; i++) {
76
- int len = loca.getOffset((short)(i + 1)) - loca.getOffset(i);
77
- if (len > 0) {
78
- bais.reset();
79
- bais.skip(loca.getOffset(i));
80
- short numberOfContours = (short)(bais.read()<<8 | bais.read());
81
- if (numberOfContours >= 0) {
82
- descript[i] = new GlyfSimpleDescript(this, numberOfContours, bais);
83
- }
84
- } else {
85
- descript[i] = null;
86
- }
69
+ public void init(int numGlyphs, LocaTable loca) {
70
+ if (buf == null) {
71
+ return;
72
+ }
73
+ descript = new GlyfDescript[numGlyphs];
74
+ ByteArrayInputStream bais = new ByteArrayInputStream(buf);
75
+ for (int i = 0; i < numGlyphs; i++) {
76
+ int len = loca.getOffset((short) (i + 1)) - loca.getOffset(i);
77
+ if (len > 0) {
78
+ bais.reset();
79
+ bais.skip(loca.getOffset(i));
80
+ short numberOfContours = (short) (bais.read() << 8 | bais.read());
81
+ if (numberOfContours >= 0) {
82
+ descript[i] = new GlyfSimpleDescript(this, numberOfContours, bais);
87
83
  }
84
+ } else {
85
+ descript[i] = null;
86
+ }
87
+ }
88
88
 
89
- for (int i = 0; i < numGlyphs; i++) {
90
- int len = loca.getOffset((short)(i + 1)) - loca.getOffset(i);
91
- if (len > 0) {
92
- bais.reset();
93
- bais.skip(loca.getOffset(i));
94
- short numberOfContours = (short)(bais.read()<<8 | bais.read());
95
- if (numberOfContours < 0) {
96
- descript[i] = new GlyfCompositeDescript(this, bais);
97
- }
98
- }
89
+ for (int i = 0; i < numGlyphs; i++) {
90
+ int len = loca.getOffset((short) (i + 1)) - loca.getOffset(i);
91
+ if (len > 0) {
92
+ bais.reset();
93
+ bais.skip(loca.getOffset(i));
94
+ short numberOfContours = (short) (bais.read() << 8 | bais.read());
95
+ if (numberOfContours < 0) {
96
+ descript[i] = new GlyfCompositeDescript(this, bais);
99
97
  }
100
- buf = null;
98
+ }
101
99
  }
100
+ buf = null;
101
+ }
102
102
 
103
- public GlyfDescript getDescription(int i) {
104
- return descript[i];
105
- }
103
+ public GlyfDescript getDescription(int i) {
104
+ return descript[i];
105
+ }
106
106
 
107
- @Override
108
- public int getType() {
109
- return glyf;
110
- }
107
+ @Override
108
+ public int getType() {
109
+ return GLYF;
110
+ }
111
111
  }
@@ -19,21 +19,33 @@ package org.apache.batik.svggen.font.table;
19
19
 
20
20
  /**
21
21
  * Specifies access to glyph description classes, simple and composite.
22
+ *
22
23
  * @version $Id: GlyphDescription.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
23
24
  * @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
24
25
  */
25
26
  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();
27
+
28
+ public int getEndPtOfContours(int i);
29
+
30
+ public byte getFlags(int i);
31
+
32
+ public short getXCoordinate(int i);
33
+
34
+ public short getYCoordinate(int i);
35
+
36
+ public short getXMaximum();
37
+
38
+ public short getXMinimum();
39
+
40
+ public short getYMaximum();
41
+
42
+ public short getYMinimum();
43
+
44
+ public boolean isComposite();
45
+
46
+ public int getPointCount();
47
+
48
+ public int getContourCount();
49
+ // public int getComponentIndex(int c);
50
+ // public int getComponentCount();
39
51
  }
@@ -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,15 +27,16 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class GposTable implements Table {
29
29
 
30
- protected GposTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
31
- raf.seek(de.getOffset());
30
+ protected GposTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
31
+ raf.seek(de.getOffset());
32
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
- /*
33
+
34
+ // GPOS Header
35
+ /* int version = */ raf.readInt();
36
+ /* int scriptList = */ raf.readInt();
37
+ /* int featureList = */ raf.readInt();
38
+ /* int lookupList = */ raf.readInt();
39
+ /*
39
40
  for (int i = 0; i < t_maxp.getNumGlyphs(); i++) {
40
41
  raf.seek(tde.getOffset() + t_loca.getOffset(i));
41
42
  int len = t_loca.getOffset((short)(i + 1)) - t_loca.getOffset(i);
@@ -61,20 +62,22 @@ public class GposTable implements Table {
61
62
  }
62
63
  }
63
64
  }
64
- */
65
- }
66
-
67
- /** Get the table type, as a table directory value.
68
- * @return The table type
69
65
  */
70
- @Override
71
- public int getType() {
72
- return GPOS;
73
- }
74
-
75
- @Override
76
- public String toString() {
77
- return "GPOS";
78
- }
66
+ }
67
+
68
+ /**
69
+ * Get the table type, as a table directory value.
70
+ *
71
+ * @return The table type
72
+ */
73
+ @Override
74
+ public int getType() {
75
+ return GPOS;
76
+ }
77
+
78
+ @Override
79
+ public String toString() {
80
+ return "GPOS";
81
+ }
79
82
 
80
83
  }
@@ -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,92 +27,95 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class GsubTable implements Table, LookupSubtableFactory {
29
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)
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
+
38
+ // GSUB Header
39
+ /* int version = */ raf.readInt();
40
+ int scriptListOffset = raf.readUnsignedShort();
41
+ int featureListOffset = raf.readUnsignedShort();
42
+ int lookupListOffset = raf.readUnsignedShort();
43
+
44
+ // Script List
45
+ scriptList = new ScriptList(raf, de.getOffset() + scriptListOffset);
46
+
47
+ // Feature List
48
+ featureList = new FeatureList(raf, de.getOffset() + featureListOffset);
49
+
50
+ // Lookup List
51
+ lookupList = new LookupList(raf, de.getOffset() + lookupListOffset, this);
52
+ }
53
+
54
+ /**
55
+ * 1 - Single - Replace one glyph with one glyph 2 - Multiple - Replace one
56
+ * glyph with more than one glyph 3 - Alternate - Replace one glyph with one
57
+ * of many glyphs 4 - Ligature - Replace multiple glyphs with one glyph 5 -
58
+ * Context - Replace one or more glyphs in context 6 - Chaining - Context
59
+ * Replace one or more glyphs in chained context
60
+ *
61
+ * @param type
62
+ * @param raf
63
+ * @param offset
64
+ * @return
65
+ * @throws java.io.IOException
66
+ */
67
+ @Override
68
+ public LookupSubtable read(int type, RandomAccessFileEmulator raf, int offset)
68
69
  throws IOException {
69
- LookupSubtable s = null;
70
- switch (type) {
71
- case 1:
72
- s = SingleSubst.read(raf, offset);
73
- break;
74
- case 2:
70
+ LookupSubtable s = null;
71
+ switch (type) {
72
+ case 1:
73
+ s = SingleSubst.read(raf, offset);
74
+ break;
75
+ case 2:
75
76
  // s = MultipleSubst.read(raf, offset);
76
- break;
77
- case 3:
77
+ break;
78
+ case 3:
78
79
  // s = AlternateSubst.read(raf, offset);
79
- break;
80
- case 4:
81
- s = LigatureSubst.read(raf, offset);
82
- break;
83
- case 5:
80
+ break;
81
+ case 4:
82
+ s = LigatureSubst.read(raf, offset);
83
+ break;
84
+ case 5:
84
85
  // s = ContextSubst.read(raf, offset);
85
- break;
86
- case 6:
86
+ break;
87
+ case 6:
87
88
  // 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";
89
+ break;
116
90
  }
91
+ return s;
92
+ }
93
+
94
+ /**
95
+ * Get the table type, as a table directory value.
96
+ *
97
+ * @return The table type
98
+ */
99
+ @Override
100
+ public int getType() {
101
+ return GSUB;
102
+ }
103
+
104
+ public ScriptList getScriptList() {
105
+ return scriptList;
106
+ }
107
+
108
+ public FeatureList getFeatureList() {
109
+ return featureList;
110
+ }
111
+
112
+ public LookupList getLookupList() {
113
+ return lookupList;
114
+ }
115
+
116
+ @Override
117
+ public String toString() {
118
+ return "GSUB";
119
+ }
117
120
 
118
121
  }
@@ -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
  }