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
  *
@@ -27,23 +27,26 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class ClassDefFormat2 extends ClassDef {
29
29
 
30
- private final int classRangeCount;
31
- private final RangeRecord[] classRangeRecords;
32
-
33
- /** Creates new ClassDefFormat2
34
- * @param raf
35
- * @throws java.io.IOException */
36
- public ClassDefFormat2(RandomAccessFileEmulator raf) throws IOException {
37
- classRangeCount = raf.readUnsignedShort();
38
- classRangeRecords = new RangeRecord[classRangeCount];
39
- for (int i = 0; i < classRangeCount; i++) {
40
- classRangeRecords[i] = new RangeRecord(raf);
41
- }
30
+ private final int classRangeCount;
31
+ private final RangeRecord[] classRangeRecords;
32
+
33
+ /**
34
+ * Creates new ClassDefFormat2
35
+ *
36
+ * @param raf
37
+ * @throws java.io.IOException
38
+ */
39
+ public ClassDefFormat2(RandomAccessFileEmulator raf) throws IOException {
40
+ classRangeCount = raf.readUnsignedShort();
41
+ classRangeRecords = new RangeRecord[classRangeCount];
42
+ for (int i = 0; i < classRangeCount; i++) {
43
+ classRangeRecords[i] = new RangeRecord(raf);
42
44
  }
45
+ }
43
46
 
44
- @Override
45
- public int getFormat() {
46
- return 2;
47
- }
47
+ @Override
48
+ public int getFormat() {
49
+ return 2;
50
+ }
48
51
 
49
52
  }
@@ -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
  * @version $Id: CmapFormat.java,v 1.4 2004/09/01 09:35:23 deweese Exp $
@@ -27,55 +26,56 @@ import org.apache.batik.svggen.font.*;
27
26
  */
28
27
  public abstract class CmapFormat {
29
28
 
30
- protected int format;
31
- protected int length;
32
- protected int version;
29
+ protected int format;
30
+ protected int length;
31
+ protected int version;
33
32
 
34
- protected CmapFormat(RandomAccessFileEmulator raf) throws IOException {
35
- length = raf.readUnsignedShort();
36
- version = raf.readUnsignedShort();
37
- }
33
+ protected CmapFormat(RandomAccessFileEmulator raf) throws IOException {
34
+ length = raf.readUnsignedShort();
35
+ version = raf.readUnsignedShort();
36
+ }
38
37
 
39
- protected static CmapFormat create(int format, RandomAccessFileEmulator raf)
38
+ protected static CmapFormat create(int format, RandomAccessFileEmulator raf)
40
39
  throws IOException {
41
- switch(format) {
42
- case 0:
43
- return new CmapFormat0(raf);
44
- case 2:
45
- return new CmapFormat2(raf);
46
- case 4:
47
- return new CmapFormat4(raf);
48
- case 6:
49
- return new CmapFormat6(raf);
50
- }
51
- return null;
40
+ switch (format) {
41
+ case 0:
42
+ return new CmapFormat0(raf);
43
+ case 2:
44
+ return new CmapFormat2(raf);
45
+ case 4:
46
+ return new CmapFormat4(raf);
47
+ case 6:
48
+ return new CmapFormat6(raf);
52
49
  }
50
+ return null;
51
+ }
53
52
 
54
- public int getFormat() {
55
- return format;
56
- }
53
+ public int getFormat() {
54
+ return format;
55
+ }
57
56
 
58
- public int getLength() {
59
- return length;
60
- }
57
+ public int getLength() {
58
+ return length;
59
+ }
61
60
 
62
- public int getVersion() {
63
- return version;
64
- }
61
+ public int getVersion() {
62
+ return version;
63
+ }
65
64
 
66
- public abstract int mapCharCode(int charCode);
65
+ public abstract int mapCharCode(int charCode);
67
66
 
68
- public abstract int getFirst();
69
- public abstract int getLast();
67
+ public abstract int getFirst();
70
68
 
71
- @Override
72
- public String toString() {
73
- return new StringBuilder()
74
- .append("format: ")
75
- .append(format)
76
- .append(", length: ")
77
- .append(length)
78
- .append(", version: ")
79
- .append(version).toString();
80
- }
69
+ public abstract int getLast();
70
+
71
+ @Override
72
+ public String toString() {
73
+ return new StringBuilder()
74
+ .append("format: ")
75
+ .append(format)
76
+ .append(", length: ")
77
+ .append(length)
78
+ .append(", version: ")
79
+ .append(version).toString();
80
+ }
81
81
  }
@@ -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
  * Simple Macintosh cmap table, mapping only the ASCII character set to glyphs.
@@ -28,33 +28,40 @@ import org.apache.batik.svggen.font.*;
28
28
  */
29
29
  public class CmapFormat0 extends CmapFormat {
30
30
 
31
- private final int[] glyphIdArray = new int[256];
32
- private int first, last;
33
-
34
- protected CmapFormat0(RandomAccessFileEmulator raf) throws IOException {
35
- super(raf);
36
- format = 0;
37
- first = -1;
38
- for (int i = 0; i < 256; i++) {
39
- glyphIdArray[i] = raf.readUnsignedByte();
40
- if (glyphIdArray[i] > 0) {
41
- if (first == -1) first = i;
42
- last = i;
43
- }
31
+ private final int[] glyphIdArray = new int[256];
32
+ private int first, last;
33
+
34
+ protected CmapFormat0(RandomAccessFileEmulator raf) throws IOException {
35
+ super(raf);
36
+ format = 0;
37
+ first = -1;
38
+ for (int i = 0; i < 256; i++) {
39
+ glyphIdArray[i] = raf.readUnsignedByte();
40
+ if (glyphIdArray[i] > 0) {
41
+ if (first == -1) {
42
+ first = i;
44
43
  }
44
+ last = i;
45
+ }
45
46
  }
47
+ }
46
48
 
47
- @Override
48
- public int getFirst() { return first; }
49
- @Override
50
- public int getLast() { return last; }
51
-
52
- @Override
53
- public int mapCharCode(int charCode) {
54
- if (0 <= charCode && charCode < 256) {
55
- return glyphIdArray[charCode];
56
- } else {
57
- return 0;
58
- }
49
+ @Override
50
+ public int getFirst() {
51
+ return first;
52
+ }
53
+
54
+ @Override
55
+ public int getLast() {
56
+ return last;
57
+ }
58
+
59
+ @Override
60
+ public int mapCharCode(int charCode) {
61
+ if (0 <= charCode && charCode < 256) {
62
+ return glyphIdArray[charCode];
63
+ } else {
64
+ return 0;
59
65
  }
66
+ }
60
67
  }
@@ -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: CmapFormat2.java,v 1.4 2004/09/01 09:35:23 deweese Exp $
@@ -26,23 +26,28 @@ import org.apache.batik.svggen.font.*;
26
26
  */
27
27
  public class CmapFormat2 extends CmapFormat {
28
28
 
29
- private final short[] subHeaderKeys = new short[256];
30
- private int[] subHeaders1;
31
- private int[] subHeaders2;
32
- private short[] glyphIndexArray;
33
-
34
- protected CmapFormat2(RandomAccessFileEmulator raf) throws IOException {
35
- super(raf);
36
- format = 2;
37
- }
38
-
39
- @Override
40
- public int getFirst() { return 0; }
41
- @Override
42
- public int getLast() { return 0; }
43
-
44
- @Override
45
- public int mapCharCode(int charCode) {
46
- return 0;
47
- }
29
+ private final short[] subHeaderKeys = new short[256];
30
+ private int[] subHeaders1;
31
+ private int[] subHeaders2;
32
+ private short[] glyphIndexArray;
33
+
34
+ protected CmapFormat2(RandomAccessFileEmulator raf) throws IOException {
35
+ super(raf);
36
+ format = 2;
37
+ }
38
+
39
+ @Override
40
+ public int getFirst() {
41
+ return 0;
42
+ }
43
+
44
+ @Override
45
+ public int getLast() {
46
+ return 0;
47
+ }
48
+
49
+ @Override
50
+ public int mapCharCode(int charCode) {
51
+ return 0;
52
+ }
48
53
  }
@@ -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: CmapFormat4.java,v 1.6 2004/09/01 09:35:23 deweese Exp $
@@ -26,65 +26,74 @@ import org.apache.batik.svggen.font.*;
26
26
  */
27
27
  public class CmapFormat4 extends CmapFormat {
28
28
 
29
- public int language;
30
- private final int segCountX2;
31
- private final int searchRange;
32
- private final int entrySelector;
33
- private final int rangeShift;
34
- private final int[] endCode;
35
- private final int[] startCode;
36
- private final int[] idDelta;
37
- private final int[] idRangeOffset;
38
- private final int[] glyphIdArray;
39
- private final int segCount;
40
- private int first, last;
29
+ public int language;
30
+ private final int segCountX2;
31
+ private final int searchRange;
32
+ private final int entrySelector;
33
+ private final int rangeShift;
34
+ private final int[] endCode;
35
+ private final int[] startCode;
36
+ private final int[] idDelta;
37
+ private final int[] idRangeOffset;
38
+ private final int[] glyphIdArray;
39
+ private final int segCount;
40
+ private int first, last;
41
41
 
42
- protected CmapFormat4(RandomAccessFileEmulator raf) throws IOException {
43
- super(raf);
44
- format = 4;
45
- segCountX2 = raf.readUnsignedShort();
46
- segCount = segCountX2 / 2;
47
- endCode = new int[segCount];
48
- startCode = new int[segCount];
49
- idDelta = new int[segCount];
50
- idRangeOffset = new int[segCount];
51
- searchRange = raf.readUnsignedShort();
52
- entrySelector = raf.readUnsignedShort();
53
- rangeShift = raf.readUnsignedShort();
54
- last = -1;
55
- for (int i = 0; i < segCount; i++) {
56
- endCode[i] = raf.readUnsignedShort();
57
- if (endCode[i] > last) last = endCode[i];
58
- }
59
- raf.readUnsignedShort(); // reservePad
60
- for (int i = 0; i < segCount; i++) {
61
- startCode[i] = raf.readUnsignedShort();
62
- if ((i==0 ) || (startCode[i] < first)) first = startCode[i];
63
- }
64
- for (int i = 0; i < segCount; i++) {
65
- idDelta[i] = raf.readUnsignedShort();
66
- }
67
- for (int i = 0; i < segCount; i++) {
68
- idRangeOffset[i] = raf.readUnsignedShort();
69
- }
42
+ protected CmapFormat4(RandomAccessFileEmulator raf) throws IOException {
43
+ super(raf);
44
+ format = 4;
45
+ segCountX2 = raf.readUnsignedShort();
46
+ segCount = segCountX2 / 2;
47
+ endCode = new int[segCount];
48
+ startCode = new int[segCount];
49
+ idDelta = new int[segCount];
50
+ idRangeOffset = new int[segCount];
51
+ searchRange = raf.readUnsignedShort();
52
+ entrySelector = raf.readUnsignedShort();
53
+ rangeShift = raf.readUnsignedShort();
54
+ last = -1;
55
+ for (int i = 0; i < segCount; i++) {
56
+ endCode[i] = raf.readUnsignedShort();
57
+ if (endCode[i] > last) {
58
+ last = endCode[i];
59
+ }
60
+ }
61
+ raf.readUnsignedShort(); // reservePad
62
+ for (int i = 0; i < segCount; i++) {
63
+ startCode[i] = raf.readUnsignedShort();
64
+ if ((i == 0) || (startCode[i] < first)) {
65
+ first = startCode[i];
66
+ }
67
+ }
68
+ for (int i = 0; i < segCount; i++) {
69
+ idDelta[i] = raf.readUnsignedShort();
70
+ }
71
+ for (int i = 0; i < segCount; i++) {
72
+ idRangeOffset[i] = raf.readUnsignedShort();
73
+ }
70
74
 
71
- // Whatever remains of this header belongs in glyphIdArray
72
- int count = (length - 16 - (segCount*8)) / 2;
73
- glyphIdArray = new int[count];
74
- for (int i = 0; i < count; i++) {
75
- glyphIdArray[i] = raf.readUnsignedShort();
76
- }
75
+ // Whatever remains of this header belongs in glyphIdArray
76
+ int count = (length - 16 - (segCount * 8)) / 2;
77
+ glyphIdArray = new int[count];
78
+ for (int i = 0; i < count; i++) {
79
+ glyphIdArray[i] = raf.readUnsignedShort();
77
80
  }
81
+ }
82
+
83
+ @Override
84
+ public int getFirst() {
85
+ return first;
86
+ }
78
87
 
79
- @Override
80
- public int getFirst() { return first; }
81
- @Override
82
- public int getLast() { return last; }
88
+ @Override
89
+ public int getLast() {
90
+ return last;
91
+ }
83
92
 
84
- @Override
85
- public int mapCharCode(int charCode) {
86
- try {
87
- /*
93
+ @Override
94
+ public int mapCharCode(int charCode) {
95
+ try {
96
+ /*
88
97
  Quoting :
89
98
  http://developer.apple.com/fonts/TTRefMan/RM06/Chap6cmap.html#Surrogates
90
99
 
@@ -98,50 +107,51 @@ public class CmapFormat4 extends CmapFormat {
98
107
 
99
108
  My comment : Isn't there a typo here ? Shouldn't we
100
109
  rather read 65,534 ?
101
- */
102
- if ((charCode < 0) || (charCode >= 0xFFFE))
103
- return 0;
110
+ */
111
+ if ((charCode < 0) || (charCode >= 0xFFFE)) {
112
+ return 0;
113
+ }
104
114
 
105
- for (int i = 0; i < segCount; i++) {
106
- if (endCode[i] >= charCode) {
107
- if (startCode[i] <= charCode) {
108
- if (idRangeOffset[i] > 0) {
109
- return glyphIdArray[idRangeOffset[i]/2 +
110
- (charCode - startCode[i]) -
111
- (segCount - i)];
112
- } else {
113
- return (idDelta[i] + charCode) % 65536;
114
- }
115
- } else {
116
- break;
117
- }
118
- }
115
+ for (int i = 0; i < segCount; i++) {
116
+ if (endCode[i] >= charCode) {
117
+ if (startCode[i] <= charCode) {
118
+ if (idRangeOffset[i] > 0) {
119
+ return glyphIdArray[idRangeOffset[i] / 2
120
+ + (charCode - startCode[i])
121
+ - (segCount - i)];
122
+ } else {
123
+ return (idDelta[i] + charCode) % 65536;
119
124
  }
120
- } catch (ArrayIndexOutOfBoundsException e) {
121
- System.err.println("error: Array out of bounds - " + e.getMessage());
125
+ } else {
126
+ break;
127
+ }
122
128
  }
123
- return 0;
129
+ }
130
+ } catch (ArrayIndexOutOfBoundsException e) {
131
+ System.err.println("error: Array out of bounds - " + e.getMessage());
124
132
  }
133
+ return 0;
134
+ }
125
135
 
126
- @Override
127
- public String toString() {
128
- return new StringBuilder()
129
- .append(super.toString())
130
- .append(", segCountX2: ")
131
- .append(segCountX2)
132
- .append(", searchRange: ")
133
- .append(searchRange)
134
- .append(", entrySelector: ")
135
- .append(entrySelector)
136
- .append(", rangeShift: ")
137
- .append(rangeShift)
138
- .append(", endCode: ")
139
- .append(endCode)
140
- .append(", startCode: ")
141
- .append(endCode)
142
- .append(", idDelta: ")
143
- .append(idDelta)
144
- .append(", idRangeOffset: ")
145
- .append(idRangeOffset).toString();
146
- }
136
+ @Override
137
+ public String toString() {
138
+ return new StringBuilder()
139
+ .append(super.toString())
140
+ .append(", segCountX2: ")
141
+ .append(segCountX2)
142
+ .append(", searchRange: ")
143
+ .append(searchRange)
144
+ .append(", entrySelector: ")
145
+ .append(entrySelector)
146
+ .append(", rangeShift: ")
147
+ .append(rangeShift)
148
+ .append(", endCode: ")
149
+ .append(endCode)
150
+ .append(", startCode: ")
151
+ .append(endCode)
152
+ .append(", idDelta: ")
153
+ .append(idDelta)
154
+ .append(", idRangeOffset: ")
155
+ .append(idRangeOffset).toString();
156
+ }
147
157
  }
@@ -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: CmapFormat6.java,v 1.4 2004/09/01 09:35:23 deweese Exp $
@@ -26,35 +26,39 @@ import org.apache.batik.svggen.font.*;
26
26
  */
27
27
  public class CmapFormat6 extends CmapFormat {
28
28
 
29
- private final short cformat;
30
- private short clength;
31
- private short cversion;
32
- private short firstCode;
33
- private short entryCount;
34
- private short[] glyphIdArray;
35
-
36
- protected CmapFormat6(RandomAccessFileEmulator raf) throws IOException {
37
- super(raf);
38
- cformat = 6;
39
- }
40
-
41
- @Override
42
- public int getFirst() { return 0; }
43
-
44
- /**
45
- *
46
- * @return
47
- */
48
- @Override
49
- public int getLast() { return 0; }
50
-
51
- /**
52
- *
53
- * @param charCode
54
- * @return
55
- */
56
- @Override
57
- public int mapCharCode(int charCode) {
58
- return 0;
59
- }
29
+ private final short cformat;
30
+ private short clength;
31
+ private short cversion;
32
+ private short firstCode;
33
+ private short entryCount;
34
+ private short[] glyphIdArray;
35
+
36
+ protected CmapFormat6(RandomAccessFileEmulator raf) throws IOException {
37
+ super(raf);
38
+ cformat = 6;
39
+ }
40
+
41
+ @Override
42
+ public int getFirst() {
43
+ return 0;
44
+ }
45
+
46
+ /**
47
+ *
48
+ * @return
49
+ */
50
+ @Override
51
+ public int getLast() {
52
+ return 0;
53
+ }
54
+
55
+ /**
56
+ *
57
+ * @param charCode
58
+ * @return
59
+ */
60
+ @Override
61
+ public int mapCharCode(int charCode) {
62
+ return 0;
63
+ }
60
64
  }