geomerative 1.1.0-java → 2.0.0-java

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.mvn/extensions.xml +1 -1
  4. data/.mvn/wrapper/maven-wrapper.properties +1 -1
  5. data/CHANGELOG.md +3 -0
  6. data/COPYING.md +1 -1
  7. data/README.md +0 -1
  8. data/Rakefile +2 -15
  9. data/docs/_includes/header.html +6 -6
  10. data/docs/_includes/icon-github.svg +3 -1
  11. data/docs/_includes/icon-twitter.svg +3 -1
  12. data/docs/_includes/navigation.html +18 -18
  13. data/docs/_sass/_base.scss +79 -79
  14. data/docs/_sass/_layout.scss +137 -137
  15. data/docs/_sass/_syntax-highlighting.scss +64 -64
  16. data/docs/index.html +18 -18
  17. data/examples/data/bot1.svg +1 -1
  18. data/examples/data/lion.svg +156 -156
  19. data/examples/data/ruby.svg +1 -1
  20. data/geomerative.gemspec +1 -2
  21. data/lib/geomerative/version.rb +1 -1
  22. data/mvnw +234 -0
  23. data/mvnw.cmd +145 -0
  24. data/pom.rb +14 -13
  25. data/pom.xml +14 -13
  26. data/src/geomerative/FastRClip.java +2149 -2156
  27. data/src/geomerative/RClip.java +2237 -2539
  28. data/src/geomerative/RClosest.java +33 -31
  29. data/src/geomerative/RCommand.java +1750 -1758
  30. data/src/geomerative/RContour.java +290 -292
  31. data/src/geomerative/RFont.java +277 -246
  32. data/src/geomerative/RG.java +722 -727
  33. data/src/geomerative/RGeomElem.java +967 -960
  34. data/src/geomerative/RGroup.java +508 -467
  35. data/src/geomerative/RMatrix.java +304 -289
  36. data/src/geomerative/RMesh.java +241 -229
  37. data/src/geomerative/RPath.java +924 -925
  38. data/src/geomerative/RPoint.java +391 -391
  39. data/src/geomerative/RPolygon.java +998 -988
  40. data/src/geomerative/RRectangle.java +43 -52
  41. data/src/geomerative/RSVG.java +480 -516
  42. data/src/geomerative/RShape.java +1767 -1777
  43. data/src/geomerative/RStrip.java +173 -176
  44. data/src/geomerative/RStyle.java +197 -194
  45. data/src/org/apache/batik/svggen/font/Font.java +141 -142
  46. data/src/org/apache/batik/svggen/font/Glyph.java +102 -71
  47. data/src/org/apache/batik/svggen/font/Point.java +12 -12
  48. data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +14 -12
  49. data/src/org/apache/batik/svggen/font/table/ClassDef.java +12 -12
  50. data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +27 -24
  51. data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +20 -17
  52. data/src/org/apache/batik/svggen/font/table/CmapFormat.java +43 -43
  53. data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +33 -26
  54. data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +25 -20
  55. data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +106 -96
  56. data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +36 -32
  57. data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +69 -49
  58. data/src/org/apache/batik/svggen/font/table/CmapTable.java +50 -50
  59. data/src/org/apache/batik/svggen/font/table/Coverage.java +19 -19
  60. data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +30 -27
  61. data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +26 -24
  62. data/src/org/apache/batik/svggen/font/table/CvtTable.java +16 -16
  63. data/src/org/apache/batik/svggen/font/table/Device.java +32 -32
  64. data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +39 -39
  65. data/src/org/apache/batik/svggen/font/table/Feature.java +26 -23
  66. data/src/org/apache/batik/svggen/font/table/FeatureList.java +37 -35
  67. data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +22 -22
  68. data/src/org/apache/batik/svggen/font/table/FeatureTags.java +4 -3
  69. data/src/org/apache/batik/svggen/font/table/FpgmTable.java +9 -9
  70. data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +134 -132
  71. data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +123 -122
  72. data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +44 -44
  73. data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +110 -109
  74. data/src/org/apache/batik/svggen/font/table/GlyfTable.java +46 -46
  75. data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +25 -13
  76. data/src/org/apache/batik/svggen/font/table/GposTable.java +26 -23
  77. data/src/org/apache/batik/svggen/font/table/GsubTable.java +85 -82
  78. data/src/org/apache/batik/svggen/font/table/HeadTable.java +131 -131
  79. data/src/org/apache/batik/svggen/font/table/HheaTable.java +80 -80
  80. data/src/org/apache/batik/svggen/font/table/HmtxTable.java +50 -49
  81. data/src/org/apache/batik/svggen/font/table/KernSubtable.java +29 -27
  82. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +35 -32
  83. data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +28 -26
  84. data/src/org/apache/batik/svggen/font/table/KernTable.java +36 -31
  85. data/src/org/apache/batik/svggen/font/table/KerningPair.java +27 -23
  86. data/src/org/apache/batik/svggen/font/table/LangSys.java +28 -26
  87. data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +22 -22
  88. data/src/org/apache/batik/svggen/font/table/Ligature.java +24 -24
  89. data/src/org/apache/batik/svggen/font/table/LigatureSet.java +24 -24
  90. data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +9 -9
  91. data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +30 -30
  92. data/src/org/apache/batik/svggen/font/table/LocaTable.java +37 -37
  93. data/src/org/apache/batik/svggen/font/table/Lookup.java +41 -40
  94. data/src/org/apache/batik/svggen/font/table/LookupList.java +34 -34
  95. data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +7 -5
  96. data/src/org/apache/batik/svggen/font/table/MaxpTable.java +96 -96
  97. data/src/org/apache/batik/svggen/font/table/NameRecord.java +64 -65
  98. data/src/org/apache/batik/svggen/font/table/NameTable.java +33 -33
  99. data/src/org/apache/batik/svggen/font/table/Os2Table.java +196 -196
  100. data/src/org/apache/batik/svggen/font/table/Panose.java +14 -12
  101. data/src/org/apache/batik/svggen/font/table/PostTable.java +338 -338
  102. data/src/org/apache/batik/svggen/font/table/PrepTable.java +9 -9
  103. data/src/org/apache/batik/svggen/font/table/Program.java +15 -15
  104. data/src/org/apache/batik/svggen/font/table/RangeRecord.java +26 -25
  105. data/src/org/apache/batik/svggen/font/table/Script.java +38 -38
  106. data/src/org/apache/batik/svggen/font/table/ScriptList.java +42 -42
  107. data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +22 -22
  108. data/src/org/apache/batik/svggen/font/table/ScriptTags.java +2 -1
  109. data/src/org/apache/batik/svggen/font/table/SingleSubst.java +15 -16
  110. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +33 -33
  111. data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +32 -32
  112. data/src/org/apache/batik/svggen/font/table/Table.java +171 -170
  113. data/src/org/apache/batik/svggen/font/table/TableDirectory.java +55 -55
  114. data/src/org/apache/batik/svggen/font/table/TableFactory.java +92 -93
  115. metadata +10 -11
  116. data/.travis.yml +0 -9
@@ -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,44 +27,46 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class FeatureList {
29
29
 
30
- private final int featureCount;
31
- private final FeatureRecord[] featureRecords;
32
- private final Feature[] features;
30
+ private final int featureCount;
31
+ private final FeatureRecord[] featureRecords;
32
+ private final Feature[] features;
33
33
 
34
- /** Creates new FeatureList
35
- * @param raf
36
- * @param offset
37
- * @throws java.io.IOException
38
- */
39
- public FeatureList(RandomAccessFileEmulator raf, int offset) throws IOException {
40
- raf.seek(offset);
41
- featureCount = raf.readUnsignedShort();
42
- featureRecords = new FeatureRecord[featureCount];
43
- features = new Feature[featureCount];
44
- for (int i = 0; i < featureCount; i++) {
45
- featureRecords[i] = new FeatureRecord(raf);
46
- }
47
- for (int i = 0; i < featureCount; i++) {
48
- features[i] = new Feature(raf, offset + featureRecords[i].getOffset());
49
- }
34
+ /**
35
+ * Creates new FeatureList
36
+ *
37
+ * @param raf
38
+ * @param offset
39
+ * @throws java.io.IOException
40
+ */
41
+ public FeatureList(RandomAccessFileEmulator raf, int offset) throws IOException {
42
+ raf.seek(offset);
43
+ featureCount = raf.readUnsignedShort();
44
+ featureRecords = new FeatureRecord[featureCount];
45
+ features = new Feature[featureCount];
46
+ for (int i = 0; i < featureCount; i++) {
47
+ featureRecords[i] = new FeatureRecord(raf);
48
+ }
49
+ for (int i = 0; i < featureCount; i++) {
50
+ features[i] = new Feature(raf, offset + featureRecords[i].getOffset());
50
51
  }
52
+ }
51
53
 
52
- public Feature findFeature(LangSys langSys, String tag) {
53
- if (tag.length() != 4) {
54
- return null;
55
- }
56
- int tagVal = ((tag.charAt(0)<<24)
57
- | (tag.charAt(1)<<16)
58
- | (tag.charAt(2)<<8)
59
- | tag.charAt(3));
60
- for (int i = 0; i < featureCount; i++) {
61
- if (featureRecords[i].getTag() == tagVal) {
62
- if (langSys.isFeatureIndexed(i)) {
63
- return features[i];
64
- }
65
- }
54
+ public Feature findFeature(LangSys langSys, String tag) {
55
+ if (tag.length() != 4) {
56
+ return null;
57
+ }
58
+ int tagVal = ((tag.charAt(0) << 24)
59
+ | (tag.charAt(1) << 16)
60
+ | (tag.charAt(2) << 8)
61
+ | tag.charAt(3));
62
+ for (int i = 0; i < featureCount; i++) {
63
+ if (featureRecords[i].getTag() == tagVal) {
64
+ if (langSys.isFeatureIndexed(i)) {
65
+ return features[i];
66
66
  }
67
- return null;
67
+ }
68
68
  }
69
+ return null;
70
+ }
69
71
 
70
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,26 +27,26 @@ import org.apache.batik.svggen.font.*;
27
27
  */
28
28
  public class FeatureRecord {
29
29
 
30
- private final int tag;
31
- private final int offset;
32
-
33
- /**
34
- * Creates new FeatureRecord
35
- *
36
- * @param raf
37
- * @throws java.io.IOException
38
- */
39
- public FeatureRecord(RandomAccessFileEmulator raf) throws IOException {
40
- tag = raf.readInt();
41
- offset = raf.readUnsignedShort();
42
- }
43
-
44
- public int getTag() {
45
- return tag;
46
- }
47
-
48
- public int getOffset() {
49
- return offset;
50
- }
30
+ private final int tag;
31
+ private final int offset;
32
+
33
+ /**
34
+ * Creates new FeatureRecord
35
+ *
36
+ * @param raf
37
+ * @throws java.io.IOException
38
+ */
39
+ public FeatureRecord(RandomAccessFileEmulator raf) throws IOException {
40
+ tag = raf.readInt();
41
+ offset = raf.readUnsignedShort();
42
+ }
43
+
44
+ public int getTag() {
45
+ return tag;
46
+ }
47
+
48
+ public int getOffset() {
49
+ return offset;
50
+ }
51
51
 
52
52
  }
@@ -24,7 +24,8 @@ package org.apache.batik.svggen.font.table;
24
24
  * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
25
25
  */
26
26
  public interface FeatureTags {
27
- String FEATURE_TAG_INIT = "init";
28
- String FEATURE_TAG_MEDI = "medi";
29
- String FEATURE_TAG_FINA = "fina";
27
+
28
+ String FEATURE_TAG_INIT = "init";
29
+ String FEATURE_TAG_MEDI = "medi";
30
+ String FEATURE_TAG_FINA = "fina";
30
31
  }
@@ -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: FpgmTable.java,v 1.3 2004/08/18 07:15:20 vhardy Exp $
@@ -26,13 +26,13 @@ import org.apache.batik.svggen.font.*;
26
26
  */
27
27
  public class FpgmTable extends Program implements Table {
28
28
 
29
- protected FpgmTable(DirectoryEntry de,RandomAccessFileEmulator raf) throws IOException {
30
- raf.seek(de.getOffset());
31
- readInstructions(raf, de.getLength());
32
- }
29
+ protected FpgmTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
30
+ raf.seek(de.getOffset());
31
+ readInstructions(raf, de.getLength());
32
+ }
33
33
 
34
- @Override
35
- public int getType() {
36
- return fpgm;
37
- }
34
+ @Override
35
+ public int getType() {
36
+ return FPGM;
37
+ }
38
38
  }
@@ -25,141 +25,143 @@ import java.io.ByteArrayInputStream;
25
25
  */
26
26
  public class GlyfCompositeComp {
27
27
 
28
- public static final short ARG_1_AND_2_ARE_WORDS = 0x0001;
29
- public static final short ARGS_ARE_XY_VALUES = 0x0002;
30
- public static final short ROUND_XY_TO_GRID = 0x0004;
31
- public static final short WE_HAVE_A_SCALE = 0x0008;
32
- public static final short MORE_COMPONENTS = 0x0020;
33
- public static final short WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;
34
- public static final short WE_HAVE_A_TWO_BY_TWO = 0x0080;
35
- public static final short WE_HAVE_INSTRUCTIONS = 0x0100;
36
- public static final short USE_MY_METRICS = 0x0200;
37
-
38
- private final int firstIndex;
39
- private final int firstContour;
40
- private final short argument1;
41
- private final short argument2;
42
- private final short flags;
43
- private final short glyphIndex;
44
- private double xscale = 1.0;
45
- private double yscale = 1.0;
46
- private double scale01 = 0.0;
47
- private double scale10 = 0.0;
48
- private int xtranslate = 0;
49
- private int ytranslate = 0;
50
- private int point1 = 0;
51
- private int point2 = 0;
52
-
53
- protected GlyfCompositeComp(int firstIndex, int firstContour, ByteArrayInputStream bais) {
54
- this.firstIndex = firstIndex;
55
- this.firstContour = firstContour;
56
- flags = (short)(bais.read()<<8 | bais.read());
57
- glyphIndex = (short)(bais.read()<<8 | bais.read());
58
-
59
- // Get the arguments as just their raw values
60
- if ((flags & ARG_1_AND_2_ARE_WORDS) != 0) {
61
- argument1 = (short)(bais.read()<<8 | bais.read());
62
- argument2 = (short)(bais.read()<<8 | bais.read());
63
- } else {
64
- argument1 = (short) bais.read();
65
- argument2 = (short) bais.read();
66
- }
67
-
68
- // Assign the arguments according to the flags
69
- if ((flags & ARGS_ARE_XY_VALUES) != 0) {
70
- xtranslate = argument1;
71
- ytranslate = argument2;
72
- } else {
73
- point1 = argument1;
74
- point2 = argument2;
75
- }
76
-
77
- // Get the scale values (if any)
78
- if ((flags & WE_HAVE_A_SCALE) != 0) {
79
- int i = (short)(bais.read()<<8 | bais.read());
80
- xscale = yscale = (double) i / (double) 0x4000;
81
- } else if ((flags & WE_HAVE_AN_X_AND_Y_SCALE) != 0) {
82
- short i = (short)(bais.read()<<8 | bais.read());
83
- xscale = (double) i / (double) 0x4000;
84
- i = (short)(bais.read()<<8 | bais.read());
85
- yscale = (double) i / (double) 0x4000;
86
- } else if ((flags & WE_HAVE_A_TWO_BY_TWO) != 0) {
87
- int i = (short)(bais.read()<<8 | bais.read());
88
- xscale = (double) i / (double) 0x4000;
89
- i = (short)(bais.read()<<8 | bais.read());
90
- scale01 = (double) i / (double) 0x4000;
91
- i = (short)(bais.read()<<8 | bais.read());
92
- scale10 = (double) i / (double) 0x4000;
93
- i = (short)(bais.read()<<8 | bais.read());
94
- yscale = (double) i / (double) 0x4000;
95
- }
28
+ public static final short ARG_1_AND_2_ARE_WORDS = 0x0001;
29
+ public static final short ARGS_ARE_XY_VALUES = 0x0002;
30
+ public static final short ROUND_XY_TO_GRID = 0x0004;
31
+ public static final short WE_HAVE_A_SCALE = 0x0008;
32
+ public static final short MORE_COMPONENTS = 0x0020;
33
+ public static final short WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;
34
+ public static final short WE_HAVE_A_TWO_BY_TWO = 0x0080;
35
+ public static final short WE_HAVE_INSTRUCTIONS = 0x0100;
36
+ public static final short USE_MY_METRICS = 0x0200;
37
+
38
+ private final int firstIndex;
39
+ private final int firstContour;
40
+ private final short argument1;
41
+ private final short argument2;
42
+ private final short flags;
43
+ private final short glyphIndex;
44
+ private double xscale = 1.0;
45
+ private double yscale = 1.0;
46
+ private double scale01 = 0.0;
47
+ private double scale10 = 0.0;
48
+ private int xtranslate = 0;
49
+ private int ytranslate = 0;
50
+ private int point1 = 0;
51
+ private int point2 = 0;
52
+
53
+ protected GlyfCompositeComp(int firstIndex, int firstContour, ByteArrayInputStream bais) {
54
+ this.firstIndex = firstIndex;
55
+ this.firstContour = firstContour;
56
+ flags = (short) (bais.read() << 8 | bais.read());
57
+ glyphIndex = (short) (bais.read() << 8 | bais.read());
58
+
59
+ // Get the arguments as just their raw values
60
+ if ((flags & ARG_1_AND_2_ARE_WORDS) != 0) {
61
+ argument1 = (short) (bais.read() << 8 | bais.read());
62
+ argument2 = (short) (bais.read() << 8 | bais.read());
63
+ } else {
64
+ argument1 = (short) bais.read();
65
+ argument2 = (short) bais.read();
96
66
  }
97
67
 
98
- public int getFirstIndex() {
99
- return firstIndex;
68
+ // Assign the arguments according to the flags
69
+ if ((flags & ARGS_ARE_XY_VALUES) != 0) {
70
+ xtranslate = argument1;
71
+ ytranslate = argument2;
72
+ } else {
73
+ point1 = argument1;
74
+ point2 = argument2;
100
75
  }
101
76
 
102
- public int getFirstContour() {
103
- return firstContour;
104
- }
105
-
106
- public short getArgument1() {
107
- return argument1;
108
- }
109
-
110
- public short getArgument2() {
111
- return argument2;
112
- }
113
-
114
- public short getFlags() {
115
- return flags;
116
- }
117
-
118
- public short getGlyphIndex() {
119
- return glyphIndex;
120
- }
121
-
122
- public double getScale01() {
123
- return scale01;
124
- }
125
-
126
- public double getScale10() {
127
- return scale10;
128
- }
129
-
130
- public double getXScale() {
131
- return xscale;
132
- }
133
-
134
- public double getYScale() {
135
- return yscale;
136
- }
137
-
138
- public int getXTranslate() {
139
- return xtranslate;
140
- }
141
-
142
- public int getYTranslate() {
143
- return ytranslate;
144
- }
145
-
146
- /**
147
- * Transforms an x-coordinate of a point for this component.
148
- * @param x The x-coordinate of the point to transform
149
- * @param y The y-coordinate of the point to transform
150
- * @return The transformed x-coordinate
151
- */
152
- public int scaleX(int x, int y) {
153
- return Math.round((float)(x * xscale + y * scale10));
154
- }
155
-
156
- /**
157
- * Transforms a y-coordinate of a point for this component.
158
- * @param x The x-coordinate of the point to transform
159
- * @param y The y-coordinate of the point to transform
160
- * @return The transformed y-coordinate
161
- */
162
- public int scaleY(int x, int y) {
163
- return Math.round((float)(x * scale01 + y * yscale));
77
+ // Get the scale values (if any)
78
+ if ((flags & WE_HAVE_A_SCALE) != 0) {
79
+ int i = (short) (bais.read() << 8 | bais.read());
80
+ xscale = yscale = (double) i / (double) 0x4000;
81
+ } else if ((flags & WE_HAVE_AN_X_AND_Y_SCALE) != 0) {
82
+ short i = (short) (bais.read() << 8 | bais.read());
83
+ xscale = (double) i / (double) 0x4000;
84
+ i = (short) (bais.read() << 8 | bais.read());
85
+ yscale = (double) i / (double) 0x4000;
86
+ } else if ((flags & WE_HAVE_A_TWO_BY_TWO) != 0) {
87
+ int i = (short) (bais.read() << 8 | bais.read());
88
+ xscale = (double) i / (double) 0x4000;
89
+ i = (short) (bais.read() << 8 | bais.read());
90
+ scale01 = (double) i / (double) 0x4000;
91
+ i = (short) (bais.read() << 8 | bais.read());
92
+ scale10 = (double) i / (double) 0x4000;
93
+ i = (short) (bais.read() << 8 | bais.read());
94
+ yscale = (double) i / (double) 0x4000;
164
95
  }
96
+ }
97
+
98
+ public int getFirstIndex() {
99
+ return firstIndex;
100
+ }
101
+
102
+ public int getFirstContour() {
103
+ return firstContour;
104
+ }
105
+
106
+ public short getArgument1() {
107
+ return argument1;
108
+ }
109
+
110
+ public short getArgument2() {
111
+ return argument2;
112
+ }
113
+
114
+ public short getFlags() {
115
+ return flags;
116
+ }
117
+
118
+ public short getGlyphIndex() {
119
+ return glyphIndex;
120
+ }
121
+
122
+ public double getScale01() {
123
+ return scale01;
124
+ }
125
+
126
+ public double getScale10() {
127
+ return scale10;
128
+ }
129
+
130
+ public double getXScale() {
131
+ return xscale;
132
+ }
133
+
134
+ public double getYScale() {
135
+ return yscale;
136
+ }
137
+
138
+ public int getXTranslate() {
139
+ return xtranslate;
140
+ }
141
+
142
+ public int getYTranslate() {
143
+ return ytranslate;
144
+ }
145
+
146
+ /**
147
+ * Transforms an x-coordinate of a point for this component.
148
+ *
149
+ * @param x The x-coordinate of the point to transform
150
+ * @param y The y-coordinate of the point to transform
151
+ * @return The transformed x-coordinate
152
+ */
153
+ public int scaleX(int x, int y) {
154
+ return Math.round((float) (x * xscale + y * scale10));
155
+ }
156
+
157
+ /**
158
+ * Transforms a y-coordinate of a point for this component.
159
+ *
160
+ * @param x The x-coordinate of the point to transform
161
+ * @param y The y-coordinate of the point to transform
162
+ * @return The transformed y-coordinate
163
+ */
164
+ public int scaleY(int x, int y) {
165
+ return Math.round((float) (x * scale01 + y * yscale));
166
+ }
165
167
  }