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
  *
@@ -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
  }