01: /*
02: *
03: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
04: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
05: *
06: * This program is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU General Public License version
08: * 2 only, as published by the Free Software Foundation.
09: *
10: * This program is distributed in the hope that it will be useful, but
11: * WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * General Public License version 2 for more details (a copy is
14: * included at /legal/license.txt).
15: *
16: * You should have received a copy of the GNU General Public License
17: * version 2 along with this work; if not, write to the Free Software
18: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
19: * 02110-1301 USA
20: *
21: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
22: * Clara, CA 95054 or visit www.sun.com if you need additional
23: * information or have any questions.
24: */
25:
26: package com.sun.pisces;
27:
28: public class Transform4 {
29:
30: public int m00, m01, m10, m11;
31:
32: // double det; // det*65536
33:
34: public Transform4() {
35: this (1 << 16, 0, 0, 1 << 16);
36: }
37:
38: public Transform4(int m00, int m01, int m10, int m11) {
39: this .m00 = m00;
40: this .m01 = m01;
41: this .m10 = m10;
42: this .m11 = m11;
43:
44: // this.det = (double)m00*m11 - (double)m01*m10;
45: }
46:
47: // public Transform4 createInverse() {
48: // double dm00 = m00/65536.0;
49: // double dm01 = m01/65536.0;
50: // double dm10 = m10/65536.0;
51: // double dm11 = m11/65536.0;
52:
53: // double invdet = 65536.0/(dm00*dm11 - dm01*dm10);
54:
55: // int im00 = (int)( dm11*invdet);
56: // int im01 = (int)(-dm01*invdet);
57: // int im10 = (int)(-dm10*invdet);
58: // int im11 = (int)( dm00*invdet);
59:
60: // return new Transform4(im00, im01, im10, im11);
61: // }
62:
63: // public void transform(int[] point) {
64: // }
65:
66: // /**
67: // * Returns the length of the line segment obtained by inverse
68: // * transforming the points <code>(x0, y0)</code> and <code>(x1,
69: // * y1)</code>.
70: // */
71: // public int getTransformedLength(int x0, int x1, int y0, int y1) {
72: // int lx = x1 - x0;
73: // int ly = y1 - y0;
74:
75: // double a = (double)m00*ly - (double)m10*lx;
76: // double b = (double)m01*ly - (double)m11*lx;
77: // double len = PiscesMath.sqrt((a*a + b*b)/(det*det));
78: // return (int)(len*65536.0);
79: // }
80:
81: // public int getType() {
82: // }
83:
84: }
|