geomerative 0.4.3-java → 2.1.0-java

Sign up to get free protection for your applications and to get access to all the features.
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: PrepTable.java,v 1.3 2004/08/18 07:15:22 vhardy Exp $
@@ -26,13 +26,13 @@ import org.apache.batik.svggen.font.*;
26
26
  */
27
27
  public class PrepTable extends Program implements Table {
28
28
 
29
- public PrepTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
30
- raf.seek(de.getOffset());
31
- readInstructions(raf, de.getLength());
32
- }
29
+ public PrepTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
30
+ raf.seek(de.getOffset());
31
+ readInstructions(raf, de.getLength());
32
+ }
33
33
 
34
- @Override
35
- public int getType() {
36
- return prep;
37
- }
34
+ @Override
35
+ public int getType() {
36
+ return PREP;
37
+ }
38
38
  }
@@ -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: Program.java,v 1.4 2004/08/18 07:15:22 vhardy Exp $
@@ -27,23 +27,23 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public abstract class Program {
29
29
 
30
- private short[] instructions;
30
+ private short[] instructions;
31
31
 
32
- public short[] getInstructions() {
33
- return instructions;
34
- }
32
+ public short[] getInstructions() {
33
+ return instructions;
34
+ }
35
35
 
36
- protected void readInstructions(RandomAccessFileEmulator raf, int count) throws IOException {
37
- instructions = new short[count];
38
- for (int i = 0; i < count; i++) {
39
- instructions[i] = (short) raf.readUnsignedByte();
40
- }
36
+ protected void readInstructions(RandomAccessFileEmulator raf, int count) throws IOException {
37
+ instructions = new short[count];
38
+ for (int i = 0; i < count; i++) {
39
+ instructions[i] = (short) raf.readUnsignedByte();
41
40
  }
41
+ }
42
42
 
43
- protected void readInstructions(ByteArrayInputStream bais, int count) {
44
- instructions = new short[count];
45
- for (int i = 0; i < count; i++) {
46
- instructions[i] = (short) bais.read();
47
- }
43
+ protected void readInstructions(ByteArrayInputStream bais, int count) {
44
+ instructions = new short[count];
45
+ for (int i = 0; i < count; i++) {
46
+ instructions[i] = (short) bais.read();
48
47
  }
48
+ }
49
49
  }
@@ -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
  * Coverage Index (GlyphID) = StartCoverageIndex + GlyphID - Start GlyphID
@@ -28,30 +28,31 @@ import org.apache.batik.svggen.font.*;
28
28
  */
29
29
  public class RangeRecord {
30
30
 
31
- private final int start;
32
- private final int end;
33
- private final int startCoverageIndex;
34
-
35
- /** Creates new RangeRecord
36
- * @param raf
37
- * @throws java.io.IOException
38
- */
39
- public RangeRecord(RandomAccessFileEmulator raf) throws IOException {
40
- start = raf.readUnsignedShort();
41
- end = raf.readUnsignedShort();
42
- startCoverageIndex = raf.readUnsignedShort();
43
- }
44
-
45
- public boolean isInRange(int glyphId) {
46
- return (start <= glyphId && glyphId <= end);
47
- }
48
-
49
- public int getCoverageIndex(int glyphId) {
50
- if (isInRange(glyphId)) {
51
- return startCoverageIndex + glyphId - start;
52
- }
53
- return -1;
31
+ private final int start;
32
+ private final int end;
33
+ private final int startCoverageIndex;
34
+
35
+ /**
36
+ * Creates new RangeRecord
37
+ *
38
+ * @param raf
39
+ * @throws java.io.IOException
40
+ */
41
+ public RangeRecord(RandomAccessFileEmulator raf) throws IOException {
42
+ start = raf.readUnsignedShort();
43
+ end = raf.readUnsignedShort();
44
+ startCoverageIndex = raf.readUnsignedShort();
45
+ }
46
+
47
+ public boolean isInRange(int glyphId) {
48
+ return (start <= glyphId && glyphId <= end);
49
+ }
50
+
51
+ public int getCoverageIndex(int glyphId) {
52
+ if (isInRange(glyphId)) {
53
+ return startCoverageIndex + glyphId - start;
54
54
  }
55
+ return -1;
56
+ }
55
57
 
56
58
  }
57
-
@@ -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,46 +27,46 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class Script {
29
29
 
30
- private final int defaultLangSysOffset;
31
- private final int langSysCount;
32
- private LangSysRecord[] langSysRecords;
33
- private LangSys defaultLangSys;
34
- private LangSys[] langSys;
30
+ private final int defaultLangSysOffset;
31
+ private final int langSysCount;
32
+ private LangSysRecord[] langSysRecords;
33
+ private LangSys defaultLangSys;
34
+ private LangSys[] langSys;
35
35
 
36
- /**
37
- * Creates new ScriptTable
38
- *
39
- * @param raf
40
- * @param offset
41
- * @throws java.io.IOException
42
- */
43
- protected Script(RandomAccessFileEmulator raf, int offset) throws IOException {
44
- raf.seek(offset);
45
- defaultLangSysOffset = raf.readUnsignedShort();
46
- langSysCount = raf.readUnsignedShort();
47
- if (langSysCount > 0) {
48
- langSysRecords = new LangSysRecord[langSysCount];
49
- for (int i = 0; i < langSysCount; i++) {
50
- langSysRecords[i] = new LangSysRecord(raf);
51
- }
52
- }
53
-
54
- // Read the LangSys tables
55
- if (langSysCount > 0) {
56
- langSys = new LangSys[langSysCount];
57
- for (int i = 0; i < langSysCount; i++) {
58
- raf.seek(offset + langSysRecords[i].getOffset());
59
- langSys[i] = new LangSys(raf);
60
- }
61
- }
62
- if (defaultLangSysOffset > 0) {
63
- raf.seek(offset + defaultLangSysOffset);
64
- defaultLangSys = new LangSys(raf);
65
- }
36
+ /**
37
+ * Creates new ScriptTable
38
+ *
39
+ * @param raf
40
+ * @param offset
41
+ * @throws java.io.IOException
42
+ */
43
+ protected Script(RandomAccessFileEmulator raf, int offset) throws IOException {
44
+ raf.seek(offset);
45
+ defaultLangSysOffset = raf.readUnsignedShort();
46
+ langSysCount = raf.readUnsignedShort();
47
+ if (langSysCount > 0) {
48
+ langSysRecords = new LangSysRecord[langSysCount];
49
+ for (int i = 0; i < langSysCount; i++) {
50
+ langSysRecords[i] = new LangSysRecord(raf);
51
+ }
66
52
  }
67
53
 
68
- public LangSys getDefaultLangSys() {
69
- return defaultLangSys;
54
+ // Read the LangSys tables
55
+ if (langSysCount > 0) {
56
+ langSys = new LangSys[langSysCount];
57
+ for (int i = 0; i < langSysCount; i++) {
58
+ raf.seek(offset + langSysRecords[i].getOffset());
59
+ langSys[i] = new LangSys(raf);
60
+ }
61
+ }
62
+ if (defaultLangSysOffset > 0) {
63
+ raf.seek(offset + defaultLangSysOffset);
64
+ defaultLangSys = new LangSys(raf);
70
65
  }
66
+ }
67
+
68
+ public LangSys getDefaultLangSys() {
69
+ return defaultLangSys;
70
+ }
71
71
 
72
72
  }
@@ -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,52 +27,52 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class ScriptList {
29
29
 
30
- private int scriptCount = 0;
31
- private final ScriptRecord[] scriptRecords;
32
- private final Script[] scripts;
30
+ private int scriptCount = 0;
31
+ private final ScriptRecord[] scriptRecords;
32
+ private final Script[] scripts;
33
33
 
34
- /**
35
- * Creates new ScriptList
36
- *
37
- * @param raf
38
- * @param offset
39
- * @throws java.io.IOException
40
- */
41
- protected ScriptList(RandomAccessFileEmulator raf, int offset) throws IOException {
42
- raf.seek(offset);
43
- scriptCount = raf.readUnsignedShort();
44
- scriptRecords = new ScriptRecord[scriptCount];
45
- scripts = new Script[scriptCount];
46
- for (int i = 0; i < scriptCount; i++) {
47
- scriptRecords[i] = new ScriptRecord(raf);
48
- }
49
- for (int i = 0; i < scriptCount; i++) {
50
- scripts[i] = new Script(raf, offset + scriptRecords[i].getOffset());
51
- }
34
+ /**
35
+ * Creates new ScriptList
36
+ *
37
+ * @param raf
38
+ * @param offset
39
+ * @throws java.io.IOException
40
+ */
41
+ protected ScriptList(RandomAccessFileEmulator raf, int offset) throws IOException {
42
+ raf.seek(offset);
43
+ scriptCount = raf.readUnsignedShort();
44
+ scriptRecords = new ScriptRecord[scriptCount];
45
+ scripts = new Script[scriptCount];
46
+ for (int i = 0; i < scriptCount; i++) {
47
+ scriptRecords[i] = new ScriptRecord(raf);
52
48
  }
53
-
54
- public int getScriptCount() {
55
- return scriptCount;
49
+ for (int i = 0; i < scriptCount; i++) {
50
+ scripts[i] = new Script(raf, offset + scriptRecords[i].getOffset());
56
51
  }
52
+ }
57
53
 
58
- public ScriptRecord getScriptRecord(int i) {
59
- return scriptRecords[i];
60
- }
54
+ public int getScriptCount() {
55
+ return scriptCount;
56
+ }
61
57
 
62
- public Script findScript(String tag) {
63
- if (tag.length() != 4) {
64
- return null;
65
- }
66
- int tagVal = ((tag.charAt(0) << 24)
67
- | (tag.charAt(1) << 16)
68
- | (tag.charAt(2) << 8)
69
- | tag.charAt(3));
70
- for (int i = 0; i < scriptCount; i++) {
71
- if (scriptRecords[i].getTag() == tagVal) {
72
- return scripts[i];
73
- }
74
- }
75
- return null;
58
+ public ScriptRecord getScriptRecord(int i) {
59
+ return scriptRecords[i];
60
+ }
61
+
62
+ public Script findScript(String tag) {
63
+ if (tag.length() != 4) {
64
+ return null;
65
+ }
66
+ int tagVal = ((tag.charAt(0) << 24)
67
+ | (tag.charAt(1) << 16)
68
+ | (tag.charAt(2) << 8)
69
+ | tag.charAt(3));
70
+ for (int i = 0; i < scriptCount; i++) {
71
+ if (scriptRecords[i].getTag() == tagVal) {
72
+ return scripts[i];
73
+ }
76
74
  }
75
+ return null;
76
+ }
77
77
 
78
78
  }
@@ -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,26 +27,26 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class ScriptRecord {
29
29
 
30
- private final int tag;
31
- private final int offset;
32
-
33
- /**
34
- * Creates new ScriptRecord
35
- *
36
- * @param raf
37
- * @throws java.io.IOException
38
- */
39
- protected ScriptRecord(RandomAccessFileEmulator raf) throws IOException {
40
- tag = raf.readInt();
41
- offset = raf.readUnsignedShort();
42
- }
43
-
44
- public int getTag() {
45
- return tag;
46
- }
47
-
48
- public int getOffset() {
49
- return offset;
50
- }
30
+ private final int tag;
31
+ private final int offset;
32
+
33
+ /**
34
+ * Creates new ScriptRecord
35
+ *
36
+ * @param raf
37
+ * @throws java.io.IOException
38
+ */
39
+ protected ScriptRecord(RandomAccessFileEmulator raf) throws IOException {
40
+ tag = raf.readInt();
41
+ offset = raf.readUnsignedShort();
42
+ }
43
+
44
+ public int getTag() {
45
+ return tag;
46
+ }
47
+
48
+ public int getOffset() {
49
+ return offset;
50
+ }
51
51
 
52
52
  }
@@ -24,5 +24,6 @@ package org.apache.batik.svggen.font.table;
24
24
  * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
25
25
  */
26
26
  public interface ScriptTags {
27
- String SCRIPT_TAG_ARAB = "arab";
27
+
28
+ String SCRIPT_TAG_ARAB = "arab";
28
29
  }
@@ -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,21 +27,20 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public abstract class SingleSubst extends LookupSubtable {
29
29
 
30
- public abstract int getFormat();
31
-
32
- public abstract int substitute(int glyphId);
33
-
34
- public static SingleSubst read(RandomAccessFileEmulator raf, int offset) throws IOException {
35
- SingleSubst s = null;
36
- raf.seek(offset);
37
- int format = raf.readUnsignedShort();
38
- if (format == 1) {
39
- s = new SingleSubstFormat1(raf, offset);
40
- } else if (format == 2) {
41
- s = new SingleSubstFormat2(raf, offset);
42
- }
43
- return s;
30
+ public abstract int getFormat();
31
+
32
+ public abstract int substitute(int glyphId);
33
+
34
+ public static SingleSubst read(RandomAccessFileEmulator raf, int offset) throws IOException {
35
+ SingleSubst s = null;
36
+ raf.seek(offset);
37
+ int format = raf.readUnsignedShort();
38
+ if (format == 1) {
39
+ s = new SingleSubstFormat1(raf, offset);
40
+ } else if (format == 2) {
41
+ s = new SingleSubstFormat2(raf, offset);
44
42
  }
43
+ return s;
44
+ }
45
45
 
46
46
  }
47
-
@@ -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,41 +27,41 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class SingleSubstFormat1 extends SingleSubst {
29
29
 
30
- private final int coverageOffset;
31
- private final short deltaGlyphID;
32
- private final Coverage coverage;
30
+ private final int coverageOffset;
31
+ private final short deltaGlyphID;
32
+ private final Coverage coverage;
33
33
 
34
- /**
35
- * Creates new SingleSubstFormat1
36
- *
37
- * @param raf
38
- * @param offset
39
- * @throws java.io.IOException
40
- */
41
- protected SingleSubstFormat1(RandomAccessFileEmulator raf, int offset) throws IOException {
42
- coverageOffset = raf.readUnsignedShort();
43
- deltaGlyphID = raf.readShort();
44
- raf.seek(offset + coverageOffset);
45
- coverage = Coverage.read(raf);
46
- }
34
+ /**
35
+ * Creates new SingleSubstFormat1
36
+ *
37
+ * @param raf
38
+ * @param offset
39
+ * @throws java.io.IOException
40
+ */
41
+ protected SingleSubstFormat1(RandomAccessFileEmulator raf, int offset) throws IOException {
42
+ coverageOffset = raf.readUnsignedShort();
43
+ deltaGlyphID = raf.readShort();
44
+ raf.seek(offset + coverageOffset);
45
+ coverage = Coverage.read(raf);
46
+ }
47
47
 
48
- @Override
49
- public int getFormat() {
50
- return 1;
51
- }
48
+ @Override
49
+ public int getFormat() {
50
+ return 1;
51
+ }
52
52
 
53
- /**
54
- *
55
- * @param glyphId
56
- * @return
57
- */
58
- @Override
59
- public int substitute(int glyphId) {
60
- int i = coverage.findGlyph(glyphId);
61
- if (i > -1) {
62
- return glyphId + deltaGlyphID;
63
- }
64
- return glyphId;
53
+ /**
54
+ *
55
+ * @param glyphId
56
+ * @return
57
+ */
58
+ @Override
59
+ public int substitute(int glyphId) {
60
+ int i = coverage.findGlyph(glyphId);
61
+ if (i > -1) {
62
+ return glyphId + deltaGlyphID;
65
63
  }
64
+ return glyphId;
65
+ }
66
66
 
67
67
  }
@@ -18,8 +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.*;
22
-
21
+ import org.apache.batik.svggen.font.RandomAccessFileEmulator;
23
22
 
24
23
  /**
25
24
  *
@@ -28,40 +27,41 @@ import org.apache.batik.svggen.font.*;
28
27
  */
29
28
  public class SingleSubstFormat2 extends SingleSubst {
30
29
 
31
- private final int coverageOffset;
32
- private final int glyphCount;
33
- private final int[] substitutes;
34
- private final Coverage coverage;
30
+ private final int coverageOffset;
31
+ private final int glyphCount;
32
+ private final int[] substitutes;
33
+ private final Coverage coverage;
35
34
 
36
- /** Creates new SingleSubstFormat2
37
- * @param raf
38
- * @param offset
39
- * @throws java.io.IOException
40
- */
41
- protected SingleSubstFormat2(RandomAccessFileEmulator raf, int offset) throws IOException {
42
- coverageOffset = raf.readUnsignedShort();
43
- glyphCount = raf.readUnsignedShort();
44
- substitutes = new int[glyphCount];
45
- for (int i = 0; i < glyphCount; i++) {
46
- substitutes[i] = raf.readUnsignedShort();
47
- }
48
- raf.seek(offset + coverageOffset);
49
- coverage = Coverage.read(raf);
35
+ /**
36
+ * Creates new SingleSubstFormat2
37
+ *
38
+ * @param raf
39
+ * @param offset
40
+ * @throws java.io.IOException
41
+ */
42
+ protected SingleSubstFormat2(RandomAccessFileEmulator raf, int offset) throws IOException {
43
+ coverageOffset = raf.readUnsignedShort();
44
+ glyphCount = raf.readUnsignedShort();
45
+ substitutes = new int[glyphCount];
46
+ for (int i = 0; i < glyphCount; i++) {
47
+ substitutes[i] = raf.readUnsignedShort();
50
48
  }
49
+ raf.seek(offset + coverageOffset);
50
+ coverage = Coverage.read(raf);
51
+ }
51
52
 
52
- @Override
53
- public int getFormat() {
54
- return 2;
55
- }
53
+ @Override
54
+ public int getFormat() {
55
+ return 2;
56
+ }
56
57
 
57
- @Override
58
- public int substitute(int glyphId) {
59
- int i = coverage.findGlyph(glyphId);
60
- if (i > -1) {
61
- return substitutes[i];
62
- }
63
- return glyphId;
58
+ @Override
59
+ public int substitute(int glyphId) {
60
+ int i = coverage.findGlyph(glyphId);
61
+ if (i > -1) {
62
+ return substitutes[i];
64
63
  }
64
+ return glyphId;
65
+ }
65
66
 
66
67
  }
67
-