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: GlyfTable.java,v 1.4 2004/08/18 07:15:21 vhardy Exp $
@@ -27,14 +27,14 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class GlyfTable implements Table {
29
29
 
30
- private byte[] buf = null;
31
- private GlyfDescript[] descript;
30
+ private byte[] buf = null;
31
+ private GlyfDescript[] descript;
32
32
 
33
- protected GlyfTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
34
- raf.seek(de.getOffset());
35
- buf = new byte[de.getLength()];
36
- raf.read(buf);
37
- /*
33
+ protected GlyfTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
34
+ raf.seek(de.getOffset());
35
+ buf = new byte[de.getLength()];
36
+ raf.read(buf);
37
+ /*
38
38
  TableMaxp t_maxp = (TableMaxp) td.getEntryByTag(maxp).getTable();
39
39
  TableLoca t_loca = (TableLoca) td.getEntryByTag(loca).getTable();
40
40
  descript = new TableGlyfDescript[t_maxp.getNumGlyphs()];
@@ -63,49 +63,49 @@ public class GlyfTable implements Table {
63
63
  }
64
64
  }
65
65
  }
66
- */
67
- }
66
+ */
67
+ }
68
68
 
69
- public void init(int numGlyphs, LocaTable loca) {
70
- if (buf == null) {
71
- return;
72
- }
73
- descript = new GlyfDescript[numGlyphs];
74
- ByteArrayInputStream bais = new ByteArrayInputStream(buf);
75
- for (int i = 0; i < numGlyphs; i++) {
76
- int len = loca.getOffset((short)(i + 1)) - loca.getOffset(i);
77
- if (len > 0) {
78
- bais.reset();
79
- bais.skip(loca.getOffset(i));
80
- short numberOfContours = (short)(bais.read()<<8 | bais.read());
81
- if (numberOfContours >= 0) {
82
- descript[i] = new GlyfSimpleDescript(this, numberOfContours, bais);
83
- }
84
- } else {
85
- descript[i] = null;
86
- }
69
+ public void init(int numGlyphs, LocaTable loca) {
70
+ if (buf == null) {
71
+ return;
72
+ }
73
+ descript = new GlyfDescript[numGlyphs];
74
+ ByteArrayInputStream bais = new ByteArrayInputStream(buf);
75
+ for (int i = 0; i < numGlyphs; i++) {
76
+ int len = loca.getOffset((short) (i + 1)) - loca.getOffset(i);
77
+ if (len > 0) {
78
+ bais.reset();
79
+ bais.skip(loca.getOffset(i));
80
+ short numberOfContours = (short) (bais.read() << 8 | bais.read());
81
+ if (numberOfContours >= 0) {
82
+ descript[i] = new GlyfSimpleDescript(this, numberOfContours, bais);
87
83
  }
84
+ } else {
85
+ descript[i] = null;
86
+ }
87
+ }
88
88
 
89
- for (int i = 0; i < numGlyphs; i++) {
90
- int len = loca.getOffset((short)(i + 1)) - loca.getOffset(i);
91
- if (len > 0) {
92
- bais.reset();
93
- bais.skip(loca.getOffset(i));
94
- short numberOfContours = (short)(bais.read()<<8 | bais.read());
95
- if (numberOfContours < 0) {
96
- descript[i] = new GlyfCompositeDescript(this, bais);
97
- }
98
- }
89
+ for (int i = 0; i < numGlyphs; i++) {
90
+ int len = loca.getOffset((short) (i + 1)) - loca.getOffset(i);
91
+ if (len > 0) {
92
+ bais.reset();
93
+ bais.skip(loca.getOffset(i));
94
+ short numberOfContours = (short) (bais.read() << 8 | bais.read());
95
+ if (numberOfContours < 0) {
96
+ descript[i] = new GlyfCompositeDescript(this, bais);
99
97
  }
100
- buf = null;
98
+ }
101
99
  }
100
+ buf = null;
101
+ }
102
102
 
103
- public GlyfDescript getDescription(int i) {
104
- return descript[i];
105
- }
103
+ public GlyfDescript getDescription(int i) {
104
+ return descript[i];
105
+ }
106
106
 
107
- @Override
108
- public int getType() {
109
- return glyf;
110
- }
107
+ @Override
108
+ public int getType() {
109
+ return GLYF;
110
+ }
111
111
  }
@@ -19,21 +19,33 @@ package org.apache.batik.svggen.font.table;
19
19
 
20
20
  /**
21
21
  * Specifies access to glyph description classes, simple and composite.
22
+ *
22
23
  * @version $Id: GlyphDescription.java,v 1.3 2004/08/18 07:15:21 vhardy Exp $
23
24
  * @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
24
25
  */
25
26
  public interface GlyphDescription {
26
- public int getEndPtOfContours(int i);
27
- public byte getFlags(int i);
28
- public short getXCoordinate(int i);
29
- public short getYCoordinate(int i);
30
- public short getXMaximum();
31
- public short getXMinimum();
32
- public short getYMaximum();
33
- public short getYMinimum();
34
- public boolean isComposite();
35
- public int getPointCount();
36
- public int getContourCount();
37
- // public int getComponentIndex(int c);
38
- // public int getComponentCount();
27
+
28
+ public int getEndPtOfContours(int i);
29
+
30
+ public byte getFlags(int i);
31
+
32
+ public short getXCoordinate(int i);
33
+
34
+ public short getYCoordinate(int i);
35
+
36
+ public short getXMaximum();
37
+
38
+ public short getXMinimum();
39
+
40
+ public short getYMaximum();
41
+
42
+ public short getYMinimum();
43
+
44
+ public boolean isComposite();
45
+
46
+ public int getPointCount();
47
+
48
+ public int getContourCount();
49
+ // public int getComponentIndex(int c);
50
+ // public int getComponentCount();
39
51
  }
@@ -18,7 +18,7 @@
18
18
  package org.apache.batik.svggen.font.table;
19
19
 
20
20
  import java.io.IOException;
21
- import org.apache.batik.svggen.font.*;
21
+ import org.apache.batik.svggen.font.RandomAccessFileEmulator;
22
22
 
23
23
  /**
24
24
  *
@@ -27,15 +27,16 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class GposTable implements Table {
29
29
 
30
- protected GposTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
31
- raf.seek(de.getOffset());
30
+ protected GposTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
31
+ raf.seek(de.getOffset());
32
32
 
33
- // GPOS Header
34
- /* int version = */ raf.readInt();
35
- /* int scriptList = */ raf.readInt();
36
- /* int featureList = */ raf.readInt();
37
- /* int lookupList = */ raf.readInt();
38
- /*
33
+
34
+ // GPOS Header
35
+ /* int version = */ raf.readInt();
36
+ /* int scriptList = */ raf.readInt();
37
+ /* int featureList = */ raf.readInt();
38
+ /* int lookupList = */ raf.readInt();
39
+ /*
39
40
  for (int i = 0; i < t_maxp.getNumGlyphs(); i++) {
40
41
  raf.seek(tde.getOffset() + t_loca.getOffset(i));
41
42
  int len = t_loca.getOffset((short)(i + 1)) - t_loca.getOffset(i);
@@ -61,20 +62,22 @@ public class GposTable implements Table {
61
62
  }
62
63
  }
63
64
  }
64
- */
65
- }
66
-
67
- /** Get the table type, as a table directory value.
68
- * @return The table type
69
65
  */
70
- @Override
71
- public int getType() {
72
- return GPOS;
73
- }
74
-
75
- @Override
76
- public String toString() {
77
- return "GPOS";
78
- }
66
+ }
67
+
68
+ /**
69
+ * Get the table type, as a table directory value.
70
+ *
71
+ * @return The table type
72
+ */
73
+ @Override
74
+ public int getType() {
75
+ return GPOS;
76
+ }
77
+
78
+ @Override
79
+ public String toString() {
80
+ return "GPOS";
81
+ }
79
82
 
80
83
  }
@@ -18,7 +18,7 @@
18
18
  package org.apache.batik.svggen.font.table;
19
19
 
20
20
  import java.io.IOException;
21
- import org.apache.batik.svggen.font.*;
21
+ import org.apache.batik.svggen.font.RandomAccessFileEmulator;
22
22
 
23
23
  /**
24
24
  *
@@ -27,92 +27,95 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class GsubTable implements Table, LookupSubtableFactory {
29
29
 
30
- private final ScriptList scriptList;
31
- private final FeatureList featureList;
32
- private final LookupList lookupList;
33
-
34
- protected GsubTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
35
- raf.seek(de.getOffset());
36
-
37
- // GSUB Header
38
- /* int version = */ raf.readInt();
39
- int scriptListOffset = raf.readUnsignedShort();
40
- int featureListOffset = raf.readUnsignedShort();
41
- int lookupListOffset = raf.readUnsignedShort();
42
-
43
- // Script List
44
- scriptList = new ScriptList(raf, de.getOffset() + scriptListOffset);
45
-
46
- // Feature List
47
- featureList = new FeatureList(raf, de.getOffset() + featureListOffset);
48
-
49
- // Lookup List
50
- lookupList = new LookupList(raf, de.getOffset() + lookupListOffset, this);
51
- }
52
-
53
- /**
54
- * 1 - Single - Replace one glyph with one glyph
55
- * 2 - Multiple - Replace one glyph with more than one glyph
56
- * 3 - Alternate - Replace one glyph with one of many glyphs
57
- * 4 - Ligature - Replace multiple glyphs with one glyph
58
- * 5 - Context - Replace one or more glyphs in context
59
- * 6 - Chaining - Context Replace one or more glyphs in chained context
60
- * @param type
61
- * @param raf
62
- * @param offset
63
- * @return
64
- * @throws java.io.IOException
65
- */
66
- @Override
67
- public LookupSubtable read(int type, RandomAccessFileEmulator raf, int offset)
30
+ private final ScriptList scriptList;
31
+ private final FeatureList featureList;
32
+ private final LookupList lookupList;
33
+
34
+ protected GsubTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
35
+ raf.seek(de.getOffset());
36
+
37
+
38
+ // GSUB Header
39
+ /* int version = */ raf.readInt();
40
+ int scriptListOffset = raf.readUnsignedShort();
41
+ int featureListOffset = raf.readUnsignedShort();
42
+ int lookupListOffset = raf.readUnsignedShort();
43
+
44
+ // Script List
45
+ scriptList = new ScriptList(raf, de.getOffset() + scriptListOffset);
46
+
47
+ // Feature List
48
+ featureList = new FeatureList(raf, de.getOffset() + featureListOffset);
49
+
50
+ // Lookup List
51
+ lookupList = new LookupList(raf, de.getOffset() + lookupListOffset, this);
52
+ }
53
+
54
+ /**
55
+ * 1 - Single - Replace one glyph with one glyph 2 - Multiple - Replace one
56
+ * glyph with more than one glyph 3 - Alternate - Replace one glyph with one
57
+ * of many glyphs 4 - Ligature - Replace multiple glyphs with one glyph 5 -
58
+ * Context - Replace one or more glyphs in context 6 - Chaining - Context
59
+ * Replace one or more glyphs in chained context
60
+ *
61
+ * @param type
62
+ * @param raf
63
+ * @param offset
64
+ * @return
65
+ * @throws java.io.IOException
66
+ */
67
+ @Override
68
+ public LookupSubtable read(int type, RandomAccessFileEmulator raf, int offset)
68
69
  throws IOException {
69
- LookupSubtable s = null;
70
- switch (type) {
71
- case 1:
72
- s = SingleSubst.read(raf, offset);
73
- break;
74
- case 2:
70
+ LookupSubtable s = null;
71
+ switch (type) {
72
+ case 1:
73
+ s = SingleSubst.read(raf, offset);
74
+ break;
75
+ case 2:
75
76
  // s = MultipleSubst.read(raf, offset);
76
- break;
77
- case 3:
77
+ break;
78
+ case 3:
78
79
  // s = AlternateSubst.read(raf, offset);
79
- break;
80
- case 4:
81
- s = LigatureSubst.read(raf, offset);
82
- break;
83
- case 5:
80
+ break;
81
+ case 4:
82
+ s = LigatureSubst.read(raf, offset);
83
+ break;
84
+ case 5:
84
85
  // s = ContextSubst.read(raf, offset);
85
- break;
86
- case 6:
86
+ break;
87
+ case 6:
87
88
  // s = ChainingSubst.read(raf, offset);
88
- break;
89
- }
90
- return s;
91
- }
92
-
93
- /** Get the table type, as a table directory value.
94
- * @return The table type
95
- */
96
- @Override
97
- public int getType() {
98
- return GSUB;
99
- }
100
-
101
- public ScriptList getScriptList() {
102
- return scriptList;
103
- }
104
-
105
- public FeatureList getFeatureList() {
106
- return featureList;
107
- }
108
-
109
- public LookupList getLookupList() {
110
- return lookupList;
111
- }
112
-
113
- @Override
114
- public String toString() {
115
- return "GSUB";
89
+ break;
116
90
  }
91
+ return s;
92
+ }
93
+
94
+ /**
95
+ * Get the table type, as a table directory value.
96
+ *
97
+ * @return The table type
98
+ */
99
+ @Override
100
+ public int getType() {
101
+ return GSUB;
102
+ }
103
+
104
+ public ScriptList getScriptList() {
105
+ return scriptList;
106
+ }
107
+
108
+ public FeatureList getFeatureList() {
109
+ return featureList;
110
+ }
111
+
112
+ public LookupList getLookupList() {
113
+ return lookupList;
114
+ }
115
+
116
+ @Override
117
+ public String toString() {
118
+ return "GSUB";
119
+ }
117
120
 
118
121
  }