You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlgraphics.apache.org by ac...@apache.org on 2008/08/20 17:04:09 UTC

svn commit: r687367 - in /xmlgraphics/commons/trunk: src/java/org/apache/xmlgraphics/util/UnitConv.java test/java/org/apache/xmlgraphics/StandardTestSuite.java test/java/org/apache/xmlgraphics/util/UnitConvTestCase.java

Author: acumiskey
Date: Wed Aug 20 08:04:08 2008
New Revision: 687367

URL: http://svn.apache.org/viewvc?rev=687367&view=rev
Log:
* Added mptToPt() and ptToMpt() to UnitConv.
* Moved UnitConvTestCase from FOP and added to StandardTestSuite.

Added:
    xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/util/UnitConvTestCase.java   (with props)
Modified:
    xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/util/UnitConv.java
    xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/StandardTestSuite.java

Modified: xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/util/UnitConv.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/util/UnitConv.java?rev=687367&r1=687366&r2=687367&view=diff
==============================================================================
--- xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/util/UnitConv.java (original)
+++ xmlgraphics/commons/trunk/src/java/org/apache/xmlgraphics/util/UnitConv.java Wed Aug 20 08:04:08 2008
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,6 +19,8 @@
 
 package org.apache.xmlgraphics.util;
 
+import java.awt.geom.AffineTransform;
+
 /**
  * Utility class for unit conversions.
  */
@@ -26,13 +28,13 @@
 
     /** conversion factory from millimeters to inches. */
     public static final float IN2MM = 25.4f;
-    
+
     /** conversion factory from centimeters to inches. */
     public static final float IN2CM = 2.54f;
-    
+
     /** conversion factory from inches to points. */
     public static final int IN2PT = 72;
-    
+
     /**
      * Converts millimeters (mm) to points (pt)
      * @param mm the value in mm
@@ -59,7 +61,7 @@
     public static double pt2mm(double pt) {
         return pt * IN2MM / IN2PT;
     }
-    
+
     /**
      * Converts millimeters (mm) to inches (in)
      * @param mm the value in mm
@@ -68,7 +70,7 @@
     public static double mm2in(double mm) {
         return mm / IN2MM;
     }
-    
+
     /**
      * Converts inches (in) to millimeters (mm)
      * @param in the value in inches
@@ -77,7 +79,7 @@
     public static double in2mm(double in) {
         return in * IN2MM;
     }
-    
+
     /**
      * Converts inches (in) to millipoints (mpt)
      * @param in the value in inches
@@ -86,7 +88,7 @@
     public static double in2mpt(double in) {
         return in * IN2PT * 1000;
     }
-    
+
     /**
      * Converts inches (in) to points (pt)
      * @param in the value in inches
@@ -95,16 +97,16 @@
     public static double in2pt(double in) {
         return in * IN2PT;
     }
-    
+
     /**
-     * Converts millipoints (mpt) to inches (in) 
+     * Converts millipoints (mpt) to inches (in)
      * @param mpt the value in mpt
      * @return the value in inches
      */
     public static double mpt2in(double mpt) {
         return mpt / IN2PT / 1000;
     }
-    
+
     /**
      * Converts millimeters (mm) to pixels (px)
      * @param mm the value in mm
@@ -125,4 +127,32 @@
         return mpt2in(mpt) * resolution;
     }
 
+    /**
+     * Converts a millipoint-based transformation matrix to points.
+     * @param at a millipoint-based transformation matrix
+     * @return a point-based transformation matrix
+     */
+    public static AffineTransform mptToPt(AffineTransform at) {
+        double[] matrix = new double[6];
+        at.getMatrix(matrix);
+        //Convert to points
+        matrix[4] = matrix[4] / 1000;
+        matrix[5] = matrix[5] / 1000;
+        return new AffineTransform(matrix);
+    }
+
+    /**
+     * Converts a point-based transformation matrix to millipoints.
+     * @param at a point-based transformation matrix
+     * @return a millipoint-based transformation matrix
+     */
+    public static AffineTransform ptToMpt(AffineTransform at) {
+        double[] matrix = new double[6];
+        at.getMatrix(matrix);
+        //Convert to millipoints
+        matrix[4] = matrix[4] * 1000;
+        matrix[5] = matrix[5] * 1000;
+        return new AffineTransform(matrix);
+    }
+
 }

Modified: xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/StandardTestSuite.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/StandardTestSuite.java?rev=687367&r1=687366&r2=687367&view=diff
==============================================================================
--- xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/StandardTestSuite.java (original)
+++ xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/StandardTestSuite.java Wed Aug 20 08:04:08 2008
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,7 +16,7 @@
  */
 
 /* $Id$ */
- 
+
 package org.apache.xmlgraphics;
 
 import org.apache.xmlgraphics.image.codec.png.PNGEncoderTest;
@@ -25,6 +25,7 @@
 import org.apache.xmlgraphics.ps.dsc.tools.DSCToolsTestCase;
 import org.apache.xmlgraphics.util.ClasspathResourceTest;
 import org.apache.xmlgraphics.util.ServiceTest;
+import org.apache.xmlgraphics.util.UnitConvTestCase;
 import org.apache.xmlgraphics.util.io.ASCII85InputStreamTestCase;
 import org.apache.xmlgraphics.util.io.ASCII85OutputStreamTestCase;
 import org.apache.xmlgraphics.util.io.Base64Test;
@@ -54,6 +55,7 @@
         suite.addTest(new TestSuite(PSEscapeTestCase.class));
         suite.addTest(new TestSuite(DSCValueParserTestCase.class));
         suite.addTest(new TestSuite(DSCToolsTestCase.class));
+        suite.addTest(new TestSuite(UnitConvTestCase.class));
         //$JUnit-END$
         return suite;
     }

Added: xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/util/UnitConvTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/util/UnitConvTestCase.java?rev=687367&view=auto
==============================================================================
--- xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/util/UnitConvTestCase.java (added)
+++ xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/util/UnitConvTestCase.java Wed Aug 20 08:04:08 2008
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.xmlgraphics.util;
+
+import org.apache.xmlgraphics.util.UnitConv;
+
+import junit.framework.TestCase;
+
+/**
+ * Test class for UnitConv.
+ */
+public class UnitConvTestCase extends TestCase {
+
+    /**
+     * Test all kinds of unit conversions.
+     * @throws Exception if the test fails
+     */
+    public void testConversions() throws Exception {
+        assertEquals("in2mm", 25.4, UnitConv.in2mm(1), 0.00001);
+        assertEquals("mm2in", 1.0, UnitConv.mm2in(25.4), 0.00001);
+        assertEquals("mm2pt", 841.890, UnitConv.mm2pt(297), 0.001 / 2); //height of an A4 page
+        assertEquals("mm2mpt", 841890, UnitConv.mm2mpt(297), 1.0 / 2);
+        assertEquals("pt2mm", 297, UnitConv.pt2mm(841.890), 0.0001);
+        assertEquals("in2mpt", 792000, UnitConv.in2mpt(11.0), 1.0 / 2); //height of a letter page
+        assertEquals("mpt2in", 11.0, UnitConv.mpt2in(792000), 0.01 / 2); //height of a letter page
+
+        assertEquals("mm2px/72dpi", 841.8897764234434, UnitConv.mm2px(297.0, 72), 0);
+        assertEquals("mm2px/300dpi", 3507.8740684310146, UnitConv.mm2px(297.0, 300), 0);
+    }
+
+}
\ No newline at end of file

Propchange: xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/util/UnitConvTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xmlgraphics/commons/trunk/test/java/org/apache/xmlgraphics/util/UnitConvTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Revision Id



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: commits-help@xmlgraphics.apache.org