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
@@ -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: LocaTable.java,v 1.4 2004/08/18 07:15:21 vhardy Exp $
@@ -27,46 +27,46 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class LocaTable implements Table {
29
29
 
30
- private byte[] buf = null;
31
- private int[] offsets = null;
32
- private short factor = 0;
30
+ private byte[] buf = null;
31
+ private int[] offsets = null;
32
+ private short factor = 0;
33
33
 
34
- protected LocaTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
35
- raf.seek(de.getOffset());
36
- buf = new byte[de.getLength()];
37
- raf.read(buf);
38
- }
34
+ protected LocaTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
35
+ raf.seek(de.getOffset());
36
+ buf = new byte[de.getLength()];
37
+ raf.read(buf);
38
+ }
39
39
 
40
- public void init(int numGlyphs, boolean shortEntries) {
41
- if (buf == null) {
42
- return;
43
- }
44
- offsets = new int[numGlyphs + 1];
45
- ByteArrayInputStream bais = new ByteArrayInputStream(buf);
46
- if (shortEntries) {
47
- factor = 2;
48
- for (int i = 0; i <= numGlyphs; i++) {
49
- offsets[i] = (bais.read()<<8 | bais.read());
50
- }
51
- } else {
52
- factor = 1;
53
- for (int i = 0; i <= numGlyphs; i++) {
54
- offsets[i] = (bais.read()<<24 | bais.read()<<16 |
55
- bais.read()<< 8 | bais.read());
56
- }
57
- }
58
- buf = null;
40
+ public void init(int numGlyphs, boolean shortEntries) {
41
+ if (buf == null) {
42
+ return;
59
43
  }
60
-
61
- public int getOffset(int i) {
62
- if (offsets == null) {
63
- return 0;
64
- }
65
- return offsets[i] * factor;
44
+ offsets = new int[numGlyphs + 1];
45
+ ByteArrayInputStream bais = new ByteArrayInputStream(buf);
46
+ if (shortEntries) {
47
+ factor = 2;
48
+ for (int i = 0; i <= numGlyphs; i++) {
49
+ offsets[i] = (bais.read() << 8 | bais.read());
50
+ }
51
+ } else {
52
+ factor = 1;
53
+ for (int i = 0; i <= numGlyphs; i++) {
54
+ offsets[i] = (bais.read() << 24 | bais.read() << 16
55
+ | bais.read() << 8 | bais.read());
56
+ }
66
57
  }
58
+ buf = null;
59
+ }
67
60
 
68
- @Override
69
- public int getType() {
70
- return loca;
61
+ public int getOffset(int i) {
62
+ if (offsets == null) {
63
+ return 0;
71
64
  }
65
+ return offsets[i] * factor;
66
+ }
67
+
68
+ @Override
69
+ public int getType() {
70
+ return LOCA;
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,51 +27,52 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class Lookup {
29
29
 
30
- // LookupFlag bit enumeration
31
- public static final int IGNORE_BASE_GLYPHS = 0x0002;
32
- public static final int IGNORE_BASE_LIGATURES = 0x0004;
33
- public static final int IGNORE_BASE_MARKS = 0x0008;
34
- public static final int MARK_ATTACHMENT_TYPE = 0xFF00;
30
+ // LookupFlag bit enumeration
31
+ public static final int IGNORE_BASE_GLYPHS = 0x0002;
32
+ public static final int IGNORE_BASE_LIGATURES = 0x0004;
33
+ public static final int IGNORE_BASE_MARKS = 0x0008;
34
+ public static final int MARK_ATTACHMENT_TYPE = 0xFF00;
35
35
 
36
- private final int type;
37
- private final int flag;
38
- private final int subTableCount;
39
- private final int[] subTableOffsets;
40
- private final LookupSubtable[] subTables;
36
+ private final int type;
37
+ private final int flag;
38
+ private final int subTableCount;
39
+ private final int[] subTableOffsets;
40
+ private final LookupSubtable[] subTables;
41
41
 
42
- /** Creates new Lookup
43
- * @param factory
44
- * @param raf
45
- * @param offset
46
- * @throws java.io.IOException
47
- */
48
- public Lookup(LookupSubtableFactory factory, RandomAccessFileEmulator raf, int offset)
42
+ /**
43
+ * Creates new Lookup
44
+ *
45
+ * @param factory
46
+ * @param raf
47
+ * @param offset
48
+ * @throws java.io.IOException
49
+ */
50
+ public Lookup(LookupSubtableFactory factory, RandomAccessFileEmulator raf, int offset)
49
51
  throws IOException {
50
- raf.seek(offset);
51
- type = raf.readUnsignedShort();
52
- flag = raf.readUnsignedShort();
53
- subTableCount = raf.readUnsignedShort();
54
- subTableOffsets = new int[subTableCount];
55
- subTables = new LookupSubtable[subTableCount];
56
- for (int i = 0; i < subTableCount; i++) {
57
- subTableOffsets[i] = raf.readUnsignedShort();
58
- }
59
- for (int i = 0; i < subTableCount; i++) {
60
- subTables[i] = factory.read(type, raf, offset + subTableOffsets[i]);
61
- }
52
+ raf.seek(offset);
53
+ type = raf.readUnsignedShort();
54
+ flag = raf.readUnsignedShort();
55
+ subTableCount = raf.readUnsignedShort();
56
+ subTableOffsets = new int[subTableCount];
57
+ subTables = new LookupSubtable[subTableCount];
58
+ for (int i = 0; i < subTableCount; i++) {
59
+ subTableOffsets[i] = raf.readUnsignedShort();
62
60
  }
63
-
64
- public int getType() {
65
- return type;
61
+ for (int i = 0; i < subTableCount; i++) {
62
+ subTables[i] = factory.read(type, raf, offset + subTableOffsets[i]);
66
63
  }
64
+ }
67
65
 
68
- public int getSubtableCount() {
69
- return subTableCount;
70
- }
66
+ public int getType() {
67
+ return type;
68
+ }
71
69
 
72
- public LookupSubtable getSubtable(int i) {
73
- return subTables[i];
74
- }
70
+ public int getSubtableCount() {
71
+ return subTableCount;
72
+ }
75
73
 
76
- }
74
+ public LookupSubtable getSubtable(int i) {
75
+ return subTables[i];
76
+ }
77
77
 
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,42 +27,42 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class LookupList {
29
29
 
30
- private final int lookupCount;
31
- private final int[] lookupOffsets;
32
- private final Lookup[] lookups;
30
+ private final int lookupCount;
31
+ private final int[] lookupOffsets;
32
+ private final Lookup[] lookups;
33
33
 
34
- /**
35
- * Creates new LookupList
36
- *
37
- * @param raf
38
- * @param offset
39
- * @param factory
40
- * @throws java.io.IOException
41
- */
42
- public LookupList(RandomAccessFileEmulator raf, int offset, LookupSubtableFactory factory)
43
- throws IOException {
44
- raf.seek(offset);
45
- lookupCount = raf.readUnsignedShort();
46
- lookupOffsets = new int[lookupCount];
47
- lookups = new Lookup[lookupCount];
48
- for (int i = 0; i < lookupCount; i++) {
49
- lookupOffsets[i] = raf.readUnsignedShort();
50
- }
51
- for (int i = 0; i < lookupCount; i++) {
52
- lookups[i] = new Lookup(factory, raf, offset + lookupOffsets[i]);
53
- }
34
+ /**
35
+ * Creates new LookupList
36
+ *
37
+ * @param raf
38
+ * @param offset
39
+ * @param factory
40
+ * @throws java.io.IOException
41
+ */
42
+ public LookupList(RandomAccessFileEmulator raf, int offset, LookupSubtableFactory factory)
43
+ throws IOException {
44
+ raf.seek(offset);
45
+ lookupCount = raf.readUnsignedShort();
46
+ lookupOffsets = new int[lookupCount];
47
+ lookups = new Lookup[lookupCount];
48
+ for (int i = 0; i < lookupCount; i++) {
49
+ lookupOffsets[i] = raf.readUnsignedShort();
54
50
  }
51
+ for (int i = 0; i < lookupCount; i++) {
52
+ lookups[i] = new Lookup(factory, raf, offset + lookupOffsets[i]);
53
+ }
54
+ }
55
55
 
56
- public Lookup getLookup(Feature feature, int index) {
57
- if (feature == null) {
58
- System.out.println("Feature is null!! Index is " + index + "!!");
59
- return null;
60
- }
61
- if (feature.getLookupCount() > index) {
62
- int i = feature.getLookupListIndex(index);
63
- return lookups[i];
64
- }
65
- return null;
56
+ public Lookup getLookup(Feature feature, int index) {
57
+ if (feature == null) {
58
+ System.out.println("Feature is null!! Index is " + index + "!!");
59
+ return null;
60
+ }
61
+ if (feature.getLookupCount() > index) {
62
+ int i = feature.getLookupListIndex(index);
63
+ return lookups[i];
66
64
  }
65
+ return null;
66
+ }
67
67
 
68
68
  }
@@ -14,18 +14,20 @@
14
14
  See the License for the specific language governing permissions and
15
15
  limitations under the License.
16
16
 
17
- */
17
+ */
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
  *
25
25
  * @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
26
- * @version $Id: LookupSubtableFactory.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
26
+ * @version $Id: LookupSubtableFactory.java,v 1.3 2004/08/18 07:15:21 vhardy Exp
27
+ * $
27
28
  */
28
29
  public interface LookupSubtableFactory {
29
- public LookupSubtable read(int type, RandomAccessFileEmulator raf, int offset)
30
+
31
+ public LookupSubtable read(int type, RandomAccessFileEmulator raf, int offset)
30
32
  throws IOException;
31
33
  }
@@ -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: MaxpTable.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
@@ -26,99 +26,99 @@ import org.apache.batik.svggen.font.*;
26
26
  */
27
27
  public class MaxpTable implements Table {
28
28
 
29
- private final int versionNumber;
30
- private final int numGlyphs;
31
- private final int maxPoints;
32
- private final int maxContours;
33
- private final int maxCompositePoints;
34
- private final int maxCompositeContours;
35
- private final int maxZones;
36
- private final int maxTwilightPoints;
37
- private final int maxStorage;
38
- private final int maxFunctionDefs;
39
- private final int maxInstructionDefs;
40
- private final int maxStackElements;
41
- private final int maxSizeOfInstructions;
42
- private final int maxComponentElements;
43
- private final int maxComponentDepth;
44
-
45
- protected MaxpTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
46
- raf.seek(de.getOffset());
47
- versionNumber = raf.readInt();
48
- numGlyphs = raf.readUnsignedShort();
49
- maxPoints = raf.readUnsignedShort();
50
- maxContours = raf.readUnsignedShort();
51
- maxCompositePoints = raf.readUnsignedShort();
52
- maxCompositeContours = raf.readUnsignedShort();
53
- maxZones = raf.readUnsignedShort();
54
- maxTwilightPoints = raf.readUnsignedShort();
55
- maxStorage = raf.readUnsignedShort();
56
- maxFunctionDefs = raf.readUnsignedShort();
57
- maxInstructionDefs = raf.readUnsignedShort();
58
- maxStackElements = raf.readUnsignedShort();
59
- maxSizeOfInstructions = raf.readUnsignedShort();
60
- maxComponentElements = raf.readUnsignedShort();
61
- maxComponentDepth = raf.readUnsignedShort();
62
- }
63
-
64
- public int getMaxComponentDepth() {
65
- return maxComponentDepth;
66
- }
67
-
68
- public int getMaxComponentElements() {
69
- return maxComponentElements;
70
- }
71
-
72
- public int getMaxCompositeContours() {
73
- return maxCompositeContours;
74
- }
75
-
76
- public int getMaxCompositePoints() {
77
- return maxCompositePoints;
78
- }
79
-
80
- public int getMaxContours() {
81
- return maxContours;
82
- }
83
-
84
- public int getMaxFunctionDefs() {
85
- return maxFunctionDefs;
86
- }
87
-
88
- public int getMaxInstructionDefs() {
89
- return maxInstructionDefs;
90
- }
91
-
92
- public int getMaxPoints() {
93
- return maxPoints;
94
- }
95
-
96
- public int getMaxSizeOfInstructions() {
97
- return maxSizeOfInstructions;
98
- }
99
-
100
- public int getMaxStackElements() {
101
- return maxStackElements;
102
- }
103
-
104
- public int getMaxStorage() {
105
- return maxStorage;
106
- }
107
-
108
- public int getMaxTwilightPoints() {
109
- return maxTwilightPoints;
110
- }
111
-
112
- public int getMaxZones() {
113
- return maxZones;
114
- }
115
-
116
- public int getNumGlyphs() {
117
- return numGlyphs;
118
- }
119
-
120
- @Override
121
- public int getType() {
122
- return maxp;
123
- }
29
+ private final int versionNumber;
30
+ private final int numGlyphs;
31
+ private final int maxPoints;
32
+ private final int maxContours;
33
+ private final int maxCompositePoints;
34
+ private final int maxCompositeContours;
35
+ private final int maxZones;
36
+ private final int maxTwilightPoints;
37
+ private final int maxStorage;
38
+ private final int maxFunctionDefs;
39
+ private final int maxInstructionDefs;
40
+ private final int maxStackElements;
41
+ private final int maxSizeOfInstructions;
42
+ private final int maxComponentElements;
43
+ private final int maxComponentDepth;
44
+
45
+ protected MaxpTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
46
+ raf.seek(de.getOffset());
47
+ versionNumber = raf.readInt();
48
+ numGlyphs = raf.readUnsignedShort();
49
+ maxPoints = raf.readUnsignedShort();
50
+ maxContours = raf.readUnsignedShort();
51
+ maxCompositePoints = raf.readUnsignedShort();
52
+ maxCompositeContours = raf.readUnsignedShort();
53
+ maxZones = raf.readUnsignedShort();
54
+ maxTwilightPoints = raf.readUnsignedShort();
55
+ maxStorage = raf.readUnsignedShort();
56
+ maxFunctionDefs = raf.readUnsignedShort();
57
+ maxInstructionDefs = raf.readUnsignedShort();
58
+ maxStackElements = raf.readUnsignedShort();
59
+ maxSizeOfInstructions = raf.readUnsignedShort();
60
+ maxComponentElements = raf.readUnsignedShort();
61
+ maxComponentDepth = raf.readUnsignedShort();
62
+ }
63
+
64
+ public int getMaxComponentDepth() {
65
+ return maxComponentDepth;
66
+ }
67
+
68
+ public int getMaxComponentElements() {
69
+ return maxComponentElements;
70
+ }
71
+
72
+ public int getMaxCompositeContours() {
73
+ return maxCompositeContours;
74
+ }
75
+
76
+ public int getMaxCompositePoints() {
77
+ return maxCompositePoints;
78
+ }
79
+
80
+ public int getMaxContours() {
81
+ return maxContours;
82
+ }
83
+
84
+ public int getMaxFunctionDefs() {
85
+ return maxFunctionDefs;
86
+ }
87
+
88
+ public int getMaxInstructionDefs() {
89
+ return maxInstructionDefs;
90
+ }
91
+
92
+ public int getMaxPoints() {
93
+ return maxPoints;
94
+ }
95
+
96
+ public int getMaxSizeOfInstructions() {
97
+ return maxSizeOfInstructions;
98
+ }
99
+
100
+ public int getMaxStackElements() {
101
+ return maxStackElements;
102
+ }
103
+
104
+ public int getMaxStorage() {
105
+ return maxStorage;
106
+ }
107
+
108
+ public int getMaxTwilightPoints() {
109
+ return maxTwilightPoints;
110
+ }
111
+
112
+ public int getMaxZones() {
113
+ return maxZones;
114
+ }
115
+
116
+ public int getNumGlyphs() {
117
+ return numGlyphs;
118
+ }
119
+
120
+ @Override
121
+ public int getType() {
122
+ return MAXP;
123
+ }
124
124
  }
@@ -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: NameRecord.java,v 1.3 2004/08/18 07:15:22 vhardy Exp $
@@ -26,73 +26,72 @@ import org.apache.batik.svggen.font.*;
26
26
  */
27
27
  public class NameRecord {
28
28
 
29
- private final short platformId;
30
- private final short encodingId;
31
- private final short languageId;
32
- private final short nameId;
33
- private final short stringLength;
34
- private final short stringOffset;
35
- private String record;
29
+ private final short platformId;
30
+ private final short encodingId;
31
+ private final short languageId;
32
+ private final short nameId;
33
+ private final short stringLength;
34
+ private final short stringOffset;
35
+ private String record;
36
36
 
37
- protected NameRecord(RandomAccessFileEmulator raf) throws IOException {
38
- platformId = raf.readShort();
39
- encodingId = raf.readShort();
40
- languageId = raf.readShort();
41
- nameId = raf.readShort();
42
- stringLength = raf.readShort();
43
- stringOffset = raf.readShort();
44
- }
45
-
46
- public short getEncodingId() {
47
- return encodingId;
48
- }
49
-
50
- public short getLanguageId() {
51
- return languageId;
52
- }
53
-
54
- public short getNameId() {
55
- return nameId;
56
- }
57
-
58
- public short getPlatformId() {
59
- return platformId;
60
- }
37
+ protected NameRecord(RandomAccessFileEmulator raf) throws IOException {
38
+ platformId = raf.readShort();
39
+ encodingId = raf.readShort();
40
+ languageId = raf.readShort();
41
+ nameId = raf.readShort();
42
+ stringLength = raf.readShort();
43
+ stringOffset = raf.readShort();
44
+ }
61
45
 
62
- public String getRecordString() {
63
- return record;
64
- }
46
+ public short getEncodingId() {
47
+ return encodingId;
48
+ }
49
+
50
+ public short getLanguageId() {
51
+ return languageId;
52
+ }
53
+
54
+ public short getNameId() {
55
+ return nameId;
56
+ }
57
+
58
+ public short getPlatformId() {
59
+ return platformId;
60
+ }
65
61
 
66
- protected void loadString(RandomAccessFileEmulator raf, int stringStorageOffset) throws IOException {
67
- StringBuilder sb = new StringBuilder();
68
- raf.seek(stringStorageOffset + stringOffset);
69
- if (platformId == Table.platformAppleUnicode) {
70
-
71
- // Unicode (big-endian)
72
- for (int i = 0; i < stringLength/2; i++) {
73
- sb.append(raf.readChar());
74
- }
75
- } else if (platformId == Table.platformMacintosh) {
62
+ public String getRecordString() {
63
+ return record;
64
+ }
76
65
 
77
- // Macintosh encoding, ASCII
78
- for (int i = 0; i < stringLength; i++) {
79
- sb.append((char) raf.readByte());
80
- }
81
- } else if (platformId == Table.platformISO) {
82
-
83
- // ISO encoding, ASCII
84
- for (int i = 0; i < stringLength; i++) {
85
- sb.append((char) raf.readByte());
86
- }
87
- } else if (platformId == Table.platformMicrosoft) {
88
-
89
- // Microsoft encoding, Unicode
90
- char c;
91
- for (int i = 0; i < stringLength/2; i++) {
92
- c = raf.readChar();
93
- sb.append(c);
94
- }
95
- }
96
- record = sb.toString();
66
+ protected void loadString(RandomAccessFileEmulator raf, int stringStorageOffset) throws IOException {
67
+ StringBuilder sb = new StringBuilder();
68
+ raf.seek(stringStorageOffset + stringOffset);
69
+ switch (platformId) {
70
+ case Table.platformAppleUnicode:
71
+ // Unicode (big-endian)
72
+ for (int i = 0; i < stringLength / 2; i++) {
73
+ sb.append(raf.readChar());
74
+ } break;
75
+ case Table.platformMacintosh:
76
+ // Macintosh encoding, ASCII
77
+ for (int i = 0; i < stringLength; i++) {
78
+ sb.append((char) raf.readByte());
79
+ } break;
80
+ case Table.platformISO:
81
+ // ISO encoding, ASCII
82
+ for (int i = 0; i < stringLength; i++) {
83
+ sb.append((char) raf.readByte());
84
+ } break;
85
+ case Table.platformMicrosoft:
86
+ // Microsoft encoding, Unicode
87
+ char c;
88
+ for (int i = 0; i < stringLength / 2; i++) {
89
+ c = raf.readChar();
90
+ sb.append(c);
91
+ } break;
92
+ default:
93
+ break;
97
94
  }
95
+ record = sb.toString();
96
+ }
98
97
  }