Hi,
I'm having a problem in using batik on Linux (no matter what distri). The
Problem CAN (it's not happening always only sometimes) happen when the svg is
rendered the first time or when it's already loaded and you're doing a scroll
or a resize action on the svg.
This is the output of the JavaVM:
*** glibc detected *** java: munmap_chunk(): invalid pointer: 0x8fc41840 ***
======= Backtrace: =========
/lib/i686/libc.so.6(cfree+0x1bb)[0xb7e6113b]
/usr/java/jdk1.6.0_03/jre/lib/i386/libdcpr.so[0x8ef89282]
/usr/java/jdk1.6.0_03/jre/lib/i386/libdcpr.so[0x8ef8979c]
/usr/java/jdk1.6.0_03/jre/lib/i386/libdcpr.so[0x8ef8ad1f]
/usr/java/jdk1.6.0_03/jre/lib/i386/libdcpr.so[0x8ef8fcb7]
/usr/java/jdk1.6.0_03/jre/lib/i386/libdcpr.so(Java_sun_dc_pr_PathFiller_dispose+0x5c)
[0x8ef8c4dc]
[0xb4d1bb7b]
[0xb4d143e9]
[0xb4d143e9]
[0xb4d143e9]
[0xb4d11243]
/usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so[0x62c5ecd]
/usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so[0x64523b8]
/usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so[0x62c57e0]
/usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so[0x62c586d]
/usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so[0x6335aa5]
/usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so[0x65038c0]
/usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so[0x64532a9]
/lib/i686/libpthread.so.0[0xb7f48462]
/lib/i686/libc.so.6(clone+0x5e)[0xb7ec582e]
======= Memory map: ========
06000000-065a0000 r-xp 00000000 08:06
4620302 /usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so
065a0000-065db000 rwxp 005a0000 08:06
4620302 /usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so
065db000-069fc000 rwxp 065db000 00:00 0
08048000-08052000 r-xp 00000000 08:06
4313227 /usr/java/jdk1.6.0_03/bin/java
08052000-08053000 rwxp 00009000 08:06
4313227 /usr/java/jdk1.6.0_03/bin/java
08053000-08a24000 rwxp 08053000 00:00 0 [heap]
8dd1f000-8e100000 rwxs 00000000 00:08 62816272 /SYSV00000000 (deleted)
8e100000-8e1fa000 rwxp 8e100000 00:00 0
8e1fa000-8e200000 ---p 8e1fa000 00:00 0
8e200000-8e2ff000 rwxp 8e200000 00:00 0
8e2ff000-8e300000 ---p 8e2ff000 00:00 0
8e300000-8e3ff000 rwxp 8e300000 00:00 0
8e3ff000-8e400000 ---p 8e3ff000 00:00 0
8e400000-8e500000 rwxp 8e400000 00:00 0
8e500000-8e5fe000 rwxp 8e500000 00:00 0
8e5fe000-8e600000 ---p 8e5fe000 00:00 0
8e600000-8e6f4000 rwxp 8e600000 00:00 0
8e6f4000-8e700000 ---p 8e6f4000 00:00 0
8e700000-8e7a8000 rwxp 8e700000 00:00 0
8e7a8000-8e800000 ---p 8e7a8000 00:00 0
8e800000-8e8ff000 rwxp 8e800000 00:00 0
8e8ff000-8e900000 ---p 8e8ff000 00:00 0
8e900000-8ea00000 rwxp 8e900000 00:00 0
8ea00000-8ec00000 rwxp 8ea00000 00:00 0
8ec00000-8ee00000 rwxp 8ec00000 00:00 0
8ee00000-8eeff000 rwxp 8ee00000 00:00 0
8eeff000-8ef00000 ---p 8eeff000 00:00 0
8ef87000-8ef9c000 r-xp 00000000 08:06
4606612 /usr/java/jdk1.6.0_03/jre/lib/i386/libdcpr.so
8ef9c000-8efaf000 rwxp 00014000 08:06
4606612 /usr/java/jdk1.6.0_03/jre/lib/i386/libdcpr.so
8efaf000-8efb2000 rwxp 8efaf000 00:00 0
8efb2000-8f0fc000 rwxp 8efb2000 00:00 0
8f0fc000-8f100000 ---p 8f0fc000 00:00 0
8f100000-8f1fb000 rwxp 8f100000 00:00 0
8f1fb000-8f200000 ---p 8f1fb000 00:00 0
8f200000-8f300000 rwxp 8f200000 00:00 0
8f30d000-8f310000 ---p 8f30d000 00:00 0
8f310000-8f35e000 rwxp 8f310000 00:00 0
8f35e000-8f361000 ---p 8f35e000 00:00 0
8f361000-8f3af000 rwxp 8f361000 00:00 0
8f3af000-8f3b2000 rwxp 8f3af000 00:00 0
8f3b2000-8f4d4000 rwxp 8f3b2000 00:00 0
8f4d4000-8f500000 ---p 8f4d4000 00:00 0
8f500000-8f5d9000 rwxp 8f500000 00:00 0
8f5d9000-8f600000 ---p 8f5d9000 00:00 0
8f600000-8f6ff000 rwxp 8f600000 00:00 0
8f6ff000-8f700000 ---p 8f6ff000 00:00 0
8f700000-8f7fe000 rwxp 8f700000 00:00 0
8f7fe000-8f800000 ---p 8f7fe000 00:00 0
8f800000-8f8fe000 rwxp 8f800000 00:00 0
8f8fe000-8f900000 ---p 8f8fe000 00:00 0
8f905000-8f908000 ---p 8f905000 00:00 0
8f908000-8f956000 rwxp 8f908000 00:00 0
8f965000-8f9b9000 r-xp 00000000 08:06
4606586 /usr/java/jdk1.6.0_03/jre/lib/i386/libcmm.so
8f9b9000-8f9bc000 rwxp 00054000 08:06
4606586 /usr/java/jdk1.6.0_03/jre/lib/i386/libcmm.so
8f9bc000-8f9bf000 ---p 8f9bc000 00:00 0
8f9bf000-8fa0d000 rwxp 8f9bf000 00:00 0
8fa0d000-8fa10000 ---p 8fa0d000 00:00 0
8fa10000-8fa5e000 rwxp 8fa10000 00:00 0
8fa5e000-8fa61000 ---p 8fa5e000 00:00 0
8fa61000-8faaf000 rwxp 8fa61000 00:00 0
8faaf000-8fab2000 ---p 8faaf000 00:00 0
8fab2000-8fb00000 rwxp 8fab2000 00:00 0
8fb03000-8fb0e000 r-xp 00000000 08:06 5390390 /lib/libgcc_s-4.2.2.so.1
8fb0e000-8fb0f000 rwxp 0000a000 08:06 5390390 /lib/libgcc_s-4.2.2.so.1
8fb26000-8fb2c000 r-xs 00000000 08:15
260629 /var/cache/fontconfig/20b58f14c9b581391d79ea335a81488a-x86.cache-2
8fb2c000-8fb2e000 r-xs 00000000 08:15
260628 /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-x86.cache-2
8fb2e000-8fb34000 r-xs 00000000 08:15
260668 /var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-x86.cache-2
8fb34000-8fb37000 r-xs 00000000 08:15
260625 /var/cache/fontconfig/5d999c1bbe32f61af008974facb58b71-x86.cache-2
8fb37000-8fb3d000 r-xs 00000000 08:15
260624 /var/cache/fontconfig/79aeb4e90a401e55ec91db207072ba77-x86.cache-2
8fb3d000-8fb43000 r-xs 00000000 08:15
260629 /var/cache/fontconfig/20b58f14c9b581391d79ea335a81488a-x86.cache-2
8fb43000-8fb51000 r-xs 00000000 08:15
260673 /var/cache/fontconfig/8d4af663993b81a124ee82e610bb31f9-x86.cache-2
8fb51000-8fb58000 r-xs 00106000 08:06
4508028 /usr/java/jdk1.6.0_03/jre/lib/resources.jar
8fb58000-8fb5e000 r-xs 00091000 08:06
4508032 /usr/java/jdk1.6.0_03/jre/lib/jsse.jar
8fb5e000-8fb61000 ---p 8fb5e000 00:00 0
8fb61000-8fbaf000 rwxp 8fb61000 00:00 0
8fbaf000-8fbb2000 ---p 8fbaf000 00:00 0
8fbb2000-8fd00000 rwxp 8fbb2000 00:00 0
8fd00000-8fd04000 rwxs 00000000 00:08 62881806 /SYSV00000000 (deleted)
8fd04000-8fd0a000 r-xs 00000000 08:15
260668 /var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-x86.cache-2
8fd0a000-8fd0d000 ---p 8fd0a000 00:00 0
8fd0d000-8fd5b000 rwxp 8fd0d000 00:00 0
8fd5b000-8fd5f000 r-xp 00000000 08:06 3736843 /usr/lib/libXfixes.so.3.1.0
8fd5f000-8fd60000 rwxp 00003000 08:06 3736843 /usr/lib/libXfixes.so.3.1.0
8fd60000-8fd68000 r-xp 00000000 08:06 3736777 /usr/lib/libXrender.so.1.3.0
8fd68000-8fd69000 rwxp 00007000 08:06 3736777 /usr/lib/libXrender.so.1.3.0
8fd69000-8fd72000 r-xp 00000000 08:06 3738165 /usr/lib/libXcursor.so.1.0.2
8fd72000-8fd73000 rwxp 00008000 08:06 3738165 /usr/lib/libXcursor.so.1.0.2
Sometimes the JavaVM creates a hs_err_pidXXXXX.log (maybe there is more than
one problem) I attached the last hs_err_pidXXXXX.log I got, the hs_err_log
have nothing to do with the output I wrote (*** glibc detected *** java:
munmap_chunk(): invalid pointer: 0x8fc41840 *** and so on).
Here is the code how I open a SVG File with batik and how I handle the Events:
[...] snip [...]
SAXSVGDocumentFactory df = null;
SVGOMDocument map = null;
SVGSVGElement svgRootElement = null;
SVGTransformation svgTrans = null;
String parser = XMLResourceDescriptor.getXMLParserClassName();
SAXSVGDocumentFactory df = new SAXSVGDocumentFactory(parser);
if(log.isDebugEnabled())
{
log.debug("Use XML parser: '" + parser + "'");
}
try
{
String imageURI = (new
File(imageName)).toURI().toURL().toString();
map = (SVGOMDocument) df.createSVGDocument(imageURI);
}
catch(java.io.IOException ioe)
{
log.error("Error while creating SVGDocument-Object",
ioe);
}
svgCanvas = new JSVGCanvas(this);
svgCanvas.setDocumentState(SVGMapCanvas.ALWAYS_DYNAMIC);
svgCanvas.setSVGDocument(map);
svgRootElement = map.getRootElement();
svgTrans = new SVGTransformation(svgCanvas, svgRootElement);
EventTarget eventTarget = (EventTarget) svgRootElement;
eventTarget.addEventListener("SVGResize", new OnResizeAction(),
false);
eventTarget.addEventListener("SVGScroll", new OnScrollAction(),
false);
[...] snip [...]
Here are the actions
private class OnResizeAction implements EventListener
{
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
public void handleEvent(Event evt)
{
if(log.isDebugEnabled())
{
log.debug("OnResizeAction");
}
svgTrans.update();
double[] values = new double[4];
values[0] = ((-10 - svgTrans.getShiftX()) /
svgTrans.getScaleX());
values[1] = ((svgCanvas.getWidth() -
svgTrans.getShiftX()) /
svgTrans.getScaleX());
values[2] = ((-10 - svgTrans.getShiftY()) /
svgTrans.getScaleY());
values[3] = ((svgCanvas.getHeight() -
svgTrans.getShiftY()) /
svgTrans.getScaleY());
}
} // END class OnResizeAction
private class OnScrollAction implements EventListener
{
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
public void handleEvent(Event evt)
{
if(log.isDebugEnabled())
{
log.debug("OnScrollAction");
}
svgTrans.update();
double[] values = new double[4];
values[0] = ((-10 - svgTrans.getShiftX()) /
svgTrans.getScaleX());
values[1] = ((svgCanvas.getWidth() -
svgTrans.getShiftX()) /
svgTrans.getScaleX());
values[2] = ((-10 - svgTrans.getShiftY()) /
svgTrans.getScaleY());
values[3] = ((svgCanvas.getHeight() -
svgTrans.getShiftY()) /
svgTrans.getScaleY());
}
}
These actions are included in my JSVGCanvas (extends from batik JSVGCanvas):
/**
* A swing action to Pan/scroll the canvas.
*/
public class ScrollAction extends AffineAction
{
/**
* Creates a new ScrollAction object.
*
* @param tx DOCUMENT ME!
* @param ty DOCUMENT ME!
*/
public ScrollAction(double tx, double ty)
{
super(AffineTransform.getTranslateInstance(tx, ty));
}
}
/**
* A swing action to scroll the canvas down,
* by a fixed amount
*/
public class ScrollDownAction extends ScrollAction
{
/**
* Creates a new ScrollDownAction object.
*
* @param inc DOCUMENT ME!
*/
public ScrollDownAction(int inc)
{
super(0, -inc);
}
}
/**
* A swing action to scroll the canvas to the left,
* by a fixed amount
*/
public class ScrollLeftAction extends ScrollAction
{
/**
* Creates a new ScrollLeftAction object.
*
* @param inc DOCUMENT ME!
*/
public ScrollLeftAction(int inc)
{
super(inc, 0);
}
}
/**
* A swing action to scroll the canvas to the right,
* by a fixed amount
*/
public class ScrollRightAction extends ScrollAction
{
/**
* Creates a new ScrollRightAction object.
*
* @param inc DOCUMENT ME!
*/
public ScrollRightAction(int inc)
{
super(-inc, 0);
}
}
/**
* A swing action to scroll the canvas up,
* by a fixed amount
*/
public class ScrollUpAction extends ScrollAction
{
/**
* Creates a new ScrollUpAction object.
*
* @param inc DOCUMENT ME!
*/
public ScrollUpAction(int inc)
{
super(0, inc);
}
}
/**
* A swing action to apply a zoom factor to the canvas.
* This can be used to zoom in (scale > 1) and out (scale <1).
*/
public class ZoomAction extends AffineAction
{
/**
* Creates a new ZoomAction object.
*
* @param scale DOCUMENT ME!
*/
public ZoomAction(double scale)
{
super(AffineTransform.getScaleInstance(scale, scale));
}
/**
* Creates a new ZoomAction object.
*
* @param scaleX DOCUMENT ME!
* @param scaleY DOCUMENT ME!
*/
public ZoomAction(double scaleX, double scaleY)
{
super(AffineTransform.getScaleInstance(scaleX, scaleY));
}
}
/**
* A swing action to zoom in the canvas.
*/
public class ZoomInAction extends ZoomAction
{
/**
* Creates a new ZoomInAction object.
*/
ZoomInAction()
{
super(2);
}
}
/**
* A swing action to zoom out the canvas.
*/
public class ZoomOutAction extends ZoomAction
{
/**
* Creates a new ZoomOutAction object.
*/
ZoomOutAction()
{
super(.5);
}
}
public class AffineAction extends AbstractAction
{
/** DOCUMENT ME! */
AffineTransform at;
/**
* Creates a new AffineAction object.
*
* @param at DOCUMENT ME!
*/
public AffineAction(AffineTransform at)
{
this.at = at;
}
/**
* DOCUMENT ME!
*
* @param evt DOCUMENT ME!
*/
public void actionPerformed(ActionEvent evt)
{
if(gvtRoot == null)
{
return;
}
AffineTransform rat = getRenderingTransform();
if(at != null)
{
Dimension dim = getSize();
int x = dim.width / 2;
int y = dim.height / 2;
AffineTransform t =
AffineTransform.getTranslateInstance(x, y);
t.concatenate(at);
t.translate(-x, -y);
t.concatenate(rat);
setRenderingTransform(t);
}
svgTrans.update();
}
}
And here is SVGTransformation class:
see attachment
The problem I had with batik version 1.5, 1.6 and have it with version 1.7 and
it's only happening on Linux (every distri I tested, Mandriva 2007 & 2008,
SuSE 10, Redhat Enterprise Linux 9) on Windows everything works great.
Maybe someone can help me?
Regards
Fabian
#
# An unexpected error has been detected by Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0xb7ea2ffa, pid=31976, tid=2424032144
#
# Java VM: Java HotSpot(TM) Server VM (1.6.0_03-b05 mixed mode)
# Problematic frame:
# C [libc.so.6+0x6affa] cfree+0x7a
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
--------------- T H R E A D ---------------
Current thread (0x08119c00): VMThread [id=31980]
siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0xffffffff
Registers:
EAX=0x00000000, EBX=0xb7f73ff4, ECX=0x00000001, EDX=0x00000000
ESP=0x907bbe08, EBP=0x907bbe38, ESI=0xffffffff, EDI=0x089e0d98
EIP=0xb7ea2ffa, CR2=0xffffffff, EFLAGS=0x00210202
Top of Stack: (sp=0x907bbe08)
0x907bbe08: 907bbe38 063164cf 065e77ac 08948e3c
0x907bbe18: 907bbe88 08900000 065e7808 90f18f70
0x907bbe28: 00000001 00000000 081ae584 00000000
0x907bbe38: 907bbe88 063f1d35 089e0d98 089e0d54
0x907bbe48: 00000001 00000001 90e12288 0809acbc
0x907bbe58: 081ae80c 0000001a 065e77cc 065d36a0
0x907bbe68: 007bbea8 080e8c40 080e8c3c 080e8c40
0x907bbe78: 907bbea8 00000000 065e7808 00000000
Instructions: (pc=0xb7ea2ffa)
0xb7ea2fea: c0 b9 01 00 00 00 65 83 3d 0c 00 00 00 00 74 01
0xb7ea2ffa: f0 0f b1 0e 0f 85 f4 0a 00 00 89 7c 24 04 89 34
Stack: [0x9073c000,0x907bd000), sp=0x907bbe08, free space=511k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libc.so.6+0x6affa] cfree+0x7a
V [libjvm.so+0x3f1d35]
V [libjvm.so+0x4e754c]
V [libjvm.so+0x488623]
V [libjvm.so+0x48774b]
V [libjvm.so+0x49212f]
V [libjvm.so+0x45fc59]
V [libjvm.so+0x53ce5d]
V [libjvm.so+0x54ed07]
V [libjvm.so+0x54e38c]
V [libjvm.so+0x54e55a]
V [libjvm.so+0x54e13f]
V [libjvm.so+0x4532a9]
C [libpthread.so.0+0x5462]
VM_Operation (0x8fbfebf0): parallel gc failed allocation, mode: safepoint, requested by thread 0x081fbc00
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
0x9050a800 JavaThread "Thread-7" [_thread_in_native, id=32019]
0x90549400 JavaThread "Timer-0" daemon [_thread_blocked, id=32007]
0x90548c00 JavaThread "RunnableQueue-0" daemon [_thread_blocked, id=32006]
0x90548800 JavaThread "DestroyJavaVM" [_thread_blocked, id=31977]
0x08464c00 JavaThread "Batik CleanerThread" daemon [_thread_blocked, id=32004]
0x0847fc00 JavaThread "Java Sound Event Dispatcher" daemon [_thread_blocked, id=31995]
0x8fc3ec00 JavaThread "TimerThread" [_thread_blocked, id=31994]
0x8fc3c000 JavaThread "TimerQueue" daemon [_thread_blocked, id=31993]
0x082b3000 JavaThread "AWT-EventQueue-0" [_thread_blocked, id=31992]
0x082a8800 JavaThread "AWT-Shutdown" [_thread_blocked, id=31991]
0x081fbc00 JavaThread "AWT-XAWT" daemon [_thread_blocked, id=31989]
0x90564c00 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=31988]
0x90503c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=31986]
0x90501c00 JavaThread "CompilerThread1" daemon [_thread_blocked, id=31985]
0x90500800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=31984]
0x08130800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=31983]
0x08120400 JavaThread "Finalizer" daemon [_thread_blocked, id=31982]
0x0811c400 JavaThread "Reference Handler" daemon [_thread_blocked, id=31981]
Other Threads:
=>0x08119c00 VMThread [id=31980]
0x90505400 WatcherThread [id=31987]
VM state:at safepoint (normal execution)
VM Mutex/Monitor currently owned by a thread: ([mutex/lock_event])
[0x08056450/0x08056478] Threads_lock - owner thread: 0x08119c00
[0x08056910/0x08056928] Heap_lock - owner thread: 0x081fbc00
Heap
PSYoungGen total 31488K, used 2528K [0xb13b0000, 0xb4bd0000, 0xb4c90000)
eden space 28928K, 0% used [0xb13b0000,0xb13b0000,0xb2ff0000)
from space 2560K, 98% used [0xb2ff0000,0xb3268000,0xb3270000)
to space 14016K, 0% used [0xb3e20000,0xb3e20000,0xb4bd0000)
PSOldGen total 133056K, used 132930K [0x94c90000, 0x9ce80000, 0xb13b0000)
object space 133056K, 99% used [0x94c90000,0x9ce60be8,0x9ce80000)
PSPermGen total 34048K, used 19893K [0x90c90000, 0x92dd0000, 0x94c90000)
object space 34048K, 58% used [0x90c90000,0x91ffd478,0x92dd0000)
Dynamic libraries:
06000000-065a0000 r-xp 00000000 08:06 4620302 /usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so
065a0000-065db000 rwxp 005a0000 08:06 4620302 /usr/java/jdk1.6.0_03/jre/lib/i386/server/libjvm.so
065db000-069fc000 rwxp 065db000 00:00 0
08048000-08052000 r-xp 00000000 08:06 4313227 /usr/java/jdk1.6.0_03/bin/java
08052000-08053000 rwxp 00009000 08:06 4313227 /usr/java/jdk1.6.0_03/bin/java
08053000-08a84000 rwxp 08053000 00:00 0 [heap]
8d900000-8d983000 rwxp 8d900000 00:00 0
8d983000-8da00000 ---p 8d983000 00:00 0
8db00000-8dbe1000 rwxp 8db00000 00:00 0
8dbe1000-8dc00000 ---p 8dbe1000 00:00 0
8dc00000-8dced000 rwxp 8dc00000 00:00 0
8dced000-8dd00000 ---p 8dced000 00:00 0
8dd00000-8ddf7000 rwxp 8dd00000 00:00 0
8ddf7000-8de00000 ---p 8ddf7000 00:00 0
8de00000-8defd000 rwxp 8de00000 00:00 0
8defd000-8df00000 ---p 8defd000 00:00 0
8df00000-8dfef000 rwxp 8df00000 00:00 0
8dfef000-8e000000 ---p 8dfef000 00:00 0
8e100000-8e1d9000 rwxp 8e100000 00:00 0
8e1d9000-8e200000 ---p 8e1d9000 00:00 0
8e200000-8e2ef000 rwxp 8e200000 00:00 0
8e2ef000-8e300000 ---p 8e2ef000 00:00 0
8e300000-8e3ce000 rwxp 8e300000 00:00 0
8e3ce000-8e400000 ---p 8e3ce000 00:00 0
8e400000-8e4fb000 rwxp 8e400000 00:00 0
8e4fb000-8e500000 ---p 8e4fb000 00:00 0
8e500000-8e5d1000 rwxp 8e500000 00:00 0
8e5d1000-8e600000 ---p 8e5d1000 00:00 0
8e8ea000-8ed00000 rwxs 00000000 00:08 79659024 /SYSV00000000 (deleted)
8ed00000-8edfa000 rwxp 8ed00000 00:00 0
8edfa000-8ee00000 ---p 8edfa000 00:00 0
8ef00000-8efd3000 rwxp 8ef00000 00:00 0
8efd3000-8f000000 ---p 8efd3000 00:00 0
8f000000-8f0ef000 rwxp 8f000000 00:00 0
8f0ef000-8f100000 ---p 8f0ef000 00:00 0
8f100000-8f1f7000 rwxp 8f100000 00:00 0
8f1f7000-8f200000 ---p 8f1f7000 00:00 0
8f2ea000-8f2f0000 r-xs 00000000 08:15 260629 /var/cache/fontconfig/20b58f14c9b581391d79ea335a81488a-x86.cache-2
8f363000-8f378000 r-xp 00000000 08:06 4606612 /usr/java/jdk1.6.0_03/jre/lib/i386/libdcpr.so
8f378000-8f38b000 rwxp 00014000 08:06 4606612 /usr/java/jdk1.6.0_03/jre/lib/i386/libdcpr.so
8f38b000-8f38e000 ---p 8f38b000 00:00 0
8f38e000-8f3dc000 rwxp 8f38e000 00:00 0
8f3dc000-8f3df000 ---p 8f3dc000 00:00 0
8f3df000-8f42d000 rwxp 8f3df000 00:00 0
8f42d000-8f430000 ---p 8f42d000 00:00 0
8f430000-8f47e000 rwxp 8f430000 00:00 0
8f47e000-8f481000 rwxp 8f47e000 00:00 0
8f481000-8f4cf000 rwxp 8f481000 00:00 0
8f4cf000-8f4d2000 ---p 8f4cf000 00:00 0
8f4d2000-8f520000 rwxp 8f4d2000 00:00 0
8f520000-8f5fb000 r-xp 00000000 08:06 3738995 /usr/lib/libasound.so.2.0.0
8f5fb000-8f600000 rwxp 000da000 08:06 3738995 /usr/lib/libasound.so.2.0.0
8f600000-8f6e6000 rwxp 8f600000 00:00 0
8f6e6000-8f700000 ---p 8f6e6000 00:00 0
8f700000-8f7f8000 rwxp 8f700000 00:00 0
8f7f8000-8f800000 ---p 8f7f8000 00:00 0
8f800000-8f900000 rwxp 8f800000 00:00 0
8f901000-8f903000 r-xs 00000000 08:15 260628 /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-x86.cache-2
8f903000-8f909000 r-xs 00000000 08:15 260668 /var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-x86.cache-2
8f91f000-8f925000 r-xs 00000000 08:15 260624 /var/cache/fontconfig/79aeb4e90a401e55ec91db207072ba77-x86.cache-2
8f925000-8f933000 r-xs 00000000 08:15 260673 /var/cache/fontconfig/8d4af663993b81a124ee82e610bb31f9-x86.cache-2
8f933000-8f936000 ---p 8f933000 00:00 0
8f936000-8f984000 rwxp 8f936000 00:00 0
8f984000-8f992000 r-xp 00000000 08:06 4606608 /usr/java/jdk1.6.0_03/jre/lib/i386/libjsoundalsa.so
8f992000-8f993000 rwxp 0000e000 08:06 4606608 /usr/java/jdk1.6.0_03/jre/lib/i386/libjsoundalsa.so
8f993000-8f9c1000 r-xp 00000000 08:06 4606618 /usr/java/jdk1.6.0_03/jre/lib/i386/libjsound.so
8f9c1000-8f9c2000 rwxp 0002e000 08:06 4606618 /usr/java/jdk1.6.0_03/jre/lib/i386/libjsound.so
8f9c2000-8f9c3000 rwxp 8f9c2000 00:00 0
8f9c3000-8fa17000 r-xp 00000000 08:06 4606586 /usr/java/jdk1.6.0_03/jre/lib/i386/libcmm.so
8fa17000-8fa1a000 rwxp 00054000 08:06 4606586 /usr/java/jdk1.6.0_03/jre/lib/i386/libcmm.so
8fa1a000-8fa1d000 ---p 8fa1a000 00:00 0
8fa1d000-8fa6b000 rwxp 8fa1d000 00:00 0
8fa6b000-8fa6e000 ---p 8fa6b000 00:00 0
8fa6e000-8fabc000 rwxp 8fa6e000 00:00 0
8fabc000-8fabf000 ---p 8fabc000 00:00 0
8fabf000-8fb0d000 rwxp 8fabf000 00:00 0
8fb0d000-8fb10000 ---p 8fb0d000 00:00 0
8fb10000-8fb5e000 rwxp 8fb10000 00:00 0
8fb5e000-8fb61000 rwxp 8fb5e000 00:00 0
8fb61000-8fbaf000 rwxp 8fb61000 00:00 0
8fbaf000-8fbb2000 ---p 8fbaf000 00:00 0
8fbb2000-8fcf8000 rwxp 8fbb2000 00:00 0
8fcf8000-8fd00000 ---p 8fcf8000 00:00 0
8fd00000-8fd06000 r-xs 00000000 08:15 260629 /var/cache/fontconfig/20b58f14c9b581391d79ea335a81488a-x86.cache-2
8fd06000-8fd08000 r-xs 00000000 08:15 260628 /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-x86.cache-2
8fd08000-8fd0e000 r-xs 00000000 08:15 260668 /var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-x86.cache-2
8fd0f000-8fd12000 r-xs 00000000 08:15 260625 /var/cache/fontconfig/5d999c1bbe32f61af008974facb58b71-x86.cache-2
8fd12000-8fd14000 r-xs 00000000 08:15 260677 /var/cache/fontconfig/43759d6532d7c8fa2377cba0d6368316-x86.cache-2
8fd14000-8fd1b000 r-xs 00106000 08:06 4508028 /usr/java/jdk1.6.0_03/jre/lib/resources.jar
8fd1b000-8fd21000 r-xs 00091000 08:06 4508032 /usr/java/jdk1.6.0_03/jre/lib/jsse.jar
8fd21000-8fd25000 r-xp 00000000 08:06 3736843 /usr/lib/libXfixes.so.3.1.0
8fd25000-8fd26000 rwxp 00003000 08:06 3736843 /usr/lib/libXfixes.so.3.1.0
8fd26000-8fd2e000 r-xp 00000000 08:06 3736777 /usr/lib/libXrender.so.1.3.0
8fd2e000-8fd2f000 rwxp 00007000 08:06 3736777 /usr/lib/libXrender.so.1.3.0
8fd2f000-8fd38000 r-xp 00000000 08:06 3738165 /usr/lib/libXcursor.so.1.0.2
8fd38000-8fd39000 rwxp 00008000 08:06 3738165 /usr/lib/libXcursor.so.1.0.2
8fd39000-8fd3b000 r-xs 00000000 08:15 260627 /var/cache/fontconfig/f6b893a7224233d96cb72fd88691c0b4-x86.cache-2
8fd3b000-8fd3c000 r-xs 00000000 08:15 260711 /var/cache/fontconfig/ff240f9f322423952afb0acdf5235e2a-x86.cache-2
8fd3c000-8fd42000 r-xs 00000000 08:15 260624 /var/cache/fontconfig/79aeb4e90a401e55ec91db207072ba77-x86.cache-2
8fd42000-8fd50000 r-xs 00000000 08:15 260673 /var/cache/fontconfig/8d4af663993b81a124ee82e610bb31f9-x86.cache-2
8fd50000-8fd57000 r-xp 00000000 08:06 4606585 /usr/java/jdk1.6.0_03/jre/lib/i386/libnio.so
8fd57000-8fd58000 rwxp 00006000 08:06 4606585 /usr/java/jdk1.6.0_03/jre/lib/i386/libnio.so
8fd58000-8fd5b000 ---p 8fd58000 00:00 0
8fd5b000-8fda9000 rwxp 8fd5b000 00:00 0
8fda9000-8fe27000 r-xp 00000000 08:06 4606587 /usr/java/jdk1.6.0_03/jre/lib/i386/libfontmanager.so
8fe27000-8fe31000 rwxp 0007e000 08:06 4606587 /usr/java/jdk1.6.0_03/jre/lib/i386/libfontmanager.so
8fe31000-8fe36000 rwxp 8fe31000 00:00 0
8fe36000-8fe3b000 r-xp 00000000 08:06 3736697 /usr/lib/libXdmcp.so.6.0.0
8fe3b000-8fe3c000 rwxp 00004000 08:06 3736697 /usr/lib/libXdmcp.so.6.0.0
8fe3c000-8fe44000 r-xp 00000000 08:06 3738526 /usr/lib/libXi.so.6.0.0
8fe44000-8fe45000 rwxp 00007000 08:06 3738526 /usr/lib/libXi.so.6.0.0
8fe45000-8fe4a000 r-xp 00000000 08:06 3739374 /usr/lib/libXtst.so.6.1.0
8fe4a000-8fe4b000 rwxp 00004000 08:06 3739374 /usr/lib/libXtst.so.6.1.0
8fe4b000-8ff4a000 r-xp 00000000 08:06 3736699 /usr/lib/libX11.so.6.2.0
8ff4a000-8ff4e000 rwxp 000fe000 08:06 3736699 /usr/lib/libX11.so.6.2.0
8ff4e000-8ff5c000 r-xp 00000000 08:06 3736760 /usr/lib/libXext.so.6.4.0
8ff5c000-8ff5d000 rwxp 0000e000 08:06 3736760 /usr/lib/libXext.so.6.4.0
8ff60000-8ff73000 r-xp 00000000 08:06 4606610 /usr/java/jdk1.6.0_03/jre/lib/i386/libnet.so
8ff73000-8ff74000 rwxp 00013000 08:06 4606610 /usr/java/jdk1.6.0_03/jre/lib/i386/libnet.so
8ff74000-8ffb2000 r-xp 00000000 08:06 4606602 /usr/java/jdk1.6.0_03/jre/lib/i386/xawt/libmawt.so
8ffb2000-8ffb4000 rwxp 0003e000 08:06 4606602 /usr/java/jdk1.6.0_03/jre/lib/i386/xawt/libmawt.so
8ffb4000-8ffb5000 rwxp 8ffb4000 00:00 0
8ffb5000-9007b000 r-xp 00000000 08:06 4606583 /usr/java/jdk1.6.0_03/jre/lib/i386/libmlib_image.so
9007b000-9007c000 rwxp 000c5000 08:06 4606583 /usr/java/jdk1.6.0_03/jre/lib/i386/libmlib_image.so
9007c000-900f7000 r-xp 00000000 08:06 4606616 /usr/java/jdk1.6.0_03/jre/lib/i386/libawt.so
900f7000-900fe000 rwxp 0007b000 08:06 4606616 /usr/java/jdk1.6.0_03/jre/lib/i386/libawt.so
900fe000-90122000 rwxp 900fe000 00:00 0
90122000-90227000 r-xs 00bb7000 08:16 2443579 /home/funfried/Projekte/proveo_wwt/trunk/proveo_wwt_gui/test/proveo-wwt-gui-2.1.0-dev.jar
90316000-90324000 rwxs 00000000 00:08 81854477 /SYSV00000000 (deleted)
9032c000-9032d000 ---p 9032c000 00:00 0
9032d000-903ad000 rwxp 9032d000 00:00 0
903ad000-903b0000 ---p 903ad000 00:00 0
903b0000-903fe000 rwxp 903b0000 00:00 0
903fe000-90401000 ---p 903fe000 00:00 0
90401000-9047f000 rwxp 90401000 00:00 0
9047f000-90482000 ---p 9047f000 00:00 0
90482000-905ff000 rwxp 90482000 00:00 0
905ff000-90600000 ---p 905ff000 00:00 0
90600000-90603000 r-xs 00000000 08:15 260625 /var/cache/fontconfig/5d999c1bbe32f61af008974facb58b71-x86.cache-2
90603000-90606000 ---p 90603000 00:00 0
90606000-90654000 rwxp 90606000 00:00 0
90654000-9065b000 r-xs 00000000 08:06 3735915 /usr/lib/gconv/gconv-modules.cache
9065b000-9069a000 r-xp 00000000 08:06 3752354 /usr/share/locale/de_AT.UTF-8/LC_CTYPE
9069a000-9069d000 ---p 9069a000 00:00 0
9069d000-906eb000 rwxp 9069d000 00:00 0
906eb000-906ee000 ---p 906eb000 00:00 0
906ee000-9073c000 rwxp 906ee000 00:00 0
9073c000-9073d000 ---p 9073c000 00:00 0
9073d000-907ed000 rwxp 9073d000 00:00 0
907ed000-90969000 r-xs 02c8f000 08:06 4508040 /usr/java/jdk1.6.0_03/jre/lib/rt.jar
90969000-9096a000 ---p 90969000 00:00 0
9096a000-909ea000 rwxp 9096a000 00:00 0
909ea000-909eb000 ---p 909ea000 00:00 0
909eb000-90a7c000 rwxp 909eb000 00:00 0
90a7c000-90a8b000 rwxp 90a7c000 00:00 0
90a8b000-90acc000 rwxp 90a8b000 00:00 0
90acc000-90b6f000 rwxp 90acc000 00:00 0
90b6f000-90b80000 rwxp 90b6f000 00:00 0
90b80000-90b8f000 rwxp 90b80000 00:00 0
90b8f000-90bd0000 rwxp 90b8f000 00:00 0
90bd0000-90c72000 rwxp 90bd0000 00:00 0
90c72000-90c8f000 rwxp 90c72000 00:00 0
90c8f000-92dd0000 rwxp 90c8f000 00:00 0
92dd0000-94c90000 rwxp 92dd0000 00:00 0
94c90000-9ce80000 rwxp 94c90000 00:00 0
9ce80000-b13b0000 rwxp 9ce80000 00:00 0
b13b0000-b4bd0000 rwxp b13b0000 00:00 0
b4bd0000-b4c90000 rwxp b4bd0000 00:00 0
b4c90000-b4c91000 rwxp b4c90000 00:00 0
b4c91000-b4c93000 r-xs 00000000 08:15 260677 /var/cache/fontconfig/43759d6532d7c8fa2377cba0d6368316-x86.cache-2
b4c93000-b4ca4000 rwxp b4c93000 00:00 0
b4ca4000-b4d53000 rwxp b4ca4000 00:00 0
b4d53000-b5163000 rwxp b4d53000 00:00 0
b5163000-b7d53000 rwxp b5163000 00:00 0
b7d53000-b7d62000 r-xp 00000000 08:06 4606591 /usr/java/jdk1.6.0_03/jre/lib/i386/libzip.so
b7d62000-b7d64000 rwxp 0000e000 08:06 4606591 /usr/java/jdk1.6.0_03/jre/lib/i386/libzip.so
b7d64000-b7d87000 r-xp 00000000 08:06 4606600 /usr/java/jdk1.6.0_03/jre/lib/i386/libjava.so
b7d87000-b7d89000 rwxp 00023000 08:06 4606600 /usr/java/jdk1.6.0_03/jre/lib/i386/libjava.so
b7d89000-b7d9c000 r-xp 00000000 08:06 5390365 /lib/libnsl-2.6.1.so
b7d9c000-b7d9e000 rwxp 00012000 08:06 5390365 /lib/libnsl-2.6.1.so
b7d9e000-b7da0000 rwxp b7d9e000 00:00 0
b7da0000-b7da2000 r-xs 00000000 08:15 260627 /var/cache/fontconfig/f6b893a7224233d96cb72fd88691c0b4-x86.cache-2
b7da2000-b7da3000 r-xs 00000000 08:15 260711 /var/cache/fontconfig/ff240f9f322423952afb0acdf5235e2a-x86.cache-2
b7da3000-b7dae000 r-xp 00000000 08:06 4606580 /usr/java/jdk1.6.0_03/jre/lib/i386/libverify.so
b7dae000-b7daf000 rwxp 0000b000 08:06 4606580 /usr/java/jdk1.6.0_03/jre/lib/i386/libverify.so
b7daf000-b7db7000 rwxs 00000000 08:06 12337188 /tmp/hsperfdata_funfried/31976
b7db7000-b7dbe000 r-xp 00000000 08:06 5390344 /lib/i686/librt-2.6.1.so
b7dbe000-b7dc0000 rwxp 00006000 08:06 5390344 /lib/i686/librt-2.6.1.so
b7dc0000-b7dc3000 ---p b7dc0000 00:00 0
b7dc3000-b7e11000 rwxp b7dc3000 00:00 0
b7e11000-b7e34000 r-xp 00000000 08:06 5390340 /lib/i686/libm-2.6.1.so
b7e34000-b7e36000 rwxp 00023000 08:06 5390340 /lib/i686/libm-2.6.1.so
b7e36000-b7e38000 rwxp b7e36000 00:00 0
b7e38000-b7f72000 r-xp 00000000 08:06 5392999 /lib/i686/libc-2.6.1.so
b7f72000-b7f73000 r-xp 00139000 08:06 5392999 /lib/i686/libc-2.6.1.so
b7f73000-b7f75000 rwxp 0013a000 08:06 5392999 /lib/i686/libc-2.6.1.so
b7f75000-b7f78000 rwxp b7f75000 00:00 0
b7f78000-b7f7a000 r-xp 00000000 08:06 5390361 /lib/libdl-2.6.1.so
b7f7a000-b7f7c000 rwxp 00001000 08:06 5390361 /lib/libdl-2.6.1.so
b7f7c000-b7f83000 r-xp 00000000 08:06 4620292 /usr/java/jdk1.6.0_03/jre/lib/i386/jli/libjli.so
b7f83000-b7f85000 rwxp 00006000 08:06 4620292 /usr/java/jdk1.6.0_03/jre/lib/i386/jli/libjli.so
b7f85000-b7f98000 r-xp 00000000 08:06 5390342 /lib/i686/libpthread-2.6.1.so
b7f98000-b7f9a000 rwxp 00012000 08:06 5390342 /lib/i686/libpthread-2.6.1.so
b7f9a000-b7f9c000 rwxp b7f9a000 00:00 0
b7f9c000-b7f9e000 r-xp 00000000 08:06 3736695 /usr/lib/libXau.so.6.0.0
b7f9e000-b7f9f000 rwxp 00001000 08:06 3736695 /usr/lib/libXau.so.6.0.0
b7f9f000-b7fa8000 r-xp 00000000 08:06 5390371 /lib/libnss_files-2.6.1.so
b7fa8000-b7faa000 rwxp 00008000 08:06 5390371 /lib/libnss_files-2.6.1.so
b7faa000-b7fb0000 r-xp 00000000 08:06 4620290 /usr/java/jdk1.6.0_03/jre/lib/i386/native_threads/libhpi.so
b7fb0000-b7fb1000 rwxp 00006000 08:06 4620290 /usr/java/jdk1.6.0_03/jre/lib/i386/native_threads/libhpi.so
b7fb1000-b7fb2000 rwxp b7fb1000 00:00 0
b7fb2000-b7fb3000 ---p b7fb2000 00:00 0
b7fb3000-b7fb4000 rwxp b7fb3000 00:00 0
b7fb4000-b7fcd000 r-xp 00000000 08:06 5390348 /lib/ld-2.6.1.so
b7fcd000-b7fce000 r-xp 00018000 08:06 5390348 /lib/ld-2.6.1.so
b7fce000-b7fcf000 rwxp 00019000 08:06 5390348 /lib/ld-2.6.1.so
bf7d4000-bf80b000 rwxp bf7d4000 00:00 0 [stack]
ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso]
VM Arguments:
jvm_args: -Xmx512m
java_command: proveo-wwt-gui-2.1.0-dev.jar VTAS.properties
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=/usr/java/current
PATH=/usr/java/current/bin:/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/usr/lib/qt4/bin:/usr/lib/qt3//bin:/home/funfried/bin:/home/funfried/Downloads/entwicklungstools/java/maven/maven-1.1/bin:/home/funfried/Downloads/tools/office/rarlinux-3.1.1:/usr/lib/qt4/bin:/usr/lib/qt3//bin
LD_LIBRARY_PATH=/usr/java/jdk1.6.0_03/jre/lib/i386/server:/usr/java/jdk1.6.0_03/jre/lib/i386:/usr/java/jdk1.6.0_03/jre/../lib/i386
SHELL=/bin/bash
DISPLAY=:0.0
Signal Handlers:
SIGSEGV: [libjvm.so+0x53c560], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGBUS: [libjvm.so+0x53c560], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGFPE: [libjvm.so+0x451a50], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGPIPE: [libjvm.so+0x451a50], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGILL: [libjvm.so+0x451a50], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: [libjvm.so+0x453a80], sa_mask[0]=0x00000000, sa_flags=0x10000004
SIGHUP: [libjvm.so+0x4534a0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGINT: [libjvm.so+0x4534a0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGQUIT: [libjvm.so+0x4534a0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGTERM: [libjvm.so+0x4534a0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR2: [libjvm.so+0x453a80], sa_mask[0]=0x00000000, sa_flags=0x10000004
--------------- S Y S T E M ---------------
OS:Mandriva Linux release 2008.0 (Official) for i586
uname:Linux 2.6.22.12-desktop-1mdv #1 SMP Tue Nov 20 08:38:27 EST 2007 i686
libc:glibc 2.6.1 NPTL 2.6.1
rlimit: STACK 8192k, CORE 0k, NPROC 16380, NOFILE 1024, AS infinity
load average:0.66 0.44 0.30
CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 11, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3
Memory: 4k page, physical 2075652k(53156k free), swap 4088500k(4088320k free)
vm_info: Java HotSpot(TM) Server VM (1.6.0_03-b05) for linux-x86, built on Sep 24 2007 22:32:39 by "java_re" with gcc 3.2.1-7a (J2SE release)
/*
*
* proveo AG, Crailsheim
*
*/
package de.proveo.wwt.tools.airportmap.generator.svg;
import org.w3c.dom.svg.SVGMatrix;
import org.w3c.dom.svg.SVGSVGElement;
/**
* <p>�berschrift: SVG Transformation</p>
* <p>Beschreibung: holds information about SVG and screen (scale, translate ....)</p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Organisation: proveo </p>
* @author funfried
* @version 1.0
*/
public class SVGTransformation
{
/** DOCUMENT ME! */
SVGMapCanvas svgCanvas;
/** DOCUMENT ME! */
SVGMatrix svgMatrix;
/** DOCUMENT ME! */
SVGSVGElement svgRoot; // root element of map
/** DOCUMENT ME! */
private float scaleX = 0; // scaling X
/** DOCUMENT ME! */
private float scaleY = 0; // scaling Y
/** DOCUMENT ME! */
private float shiftX = 0; // translation X
/** DOCUMENT ME! */
private float shiftY = 0; // translation Y
/** DOCUMENT ME! */
private int height = 0;
/** DOCUMENT ME! */
private int heightMap = 0;
/** DOCUMENT ME! */
private int upperLeftX = 0;
/** DOCUMENT ME! */
private int upperLeftY = 0;
/** DOCUMENT ME! */
private int width = 0;
/** DOCUMENT ME! */
private int widthMap = 0;
/**
* Creates a new SVGTransformation object.
*
* @param can DOCUMENT ME!
* @param root DOCUMENT ME!
*/
public SVGTransformation(JSVGCanvas can, SVGSVGElement root)
{
this.svgCanvas = can;
this.svgRoot = root;
this.svgMatrix = this.svgRoot.getScreenCTM();
// get the width and height attribute on the root svg element
String tmp = this.svgRoot.getAttributeNS(null, "width");
this.width = Integer.parseInt(tmp);
tmp = this.svgRoot.getAttributeNS(null, "height");
this.height = Integer.parseInt(tmp);
}
/**
* Getter for property height.
* @return Value of property height.
*/
public int getHeight()
{
return this.height;
}
/**
* Getter for property heightMap.
* @return Value of property heightMap.
*/
public int getHeightMap()
{
return this.heightMap;
}
/**
* Getter for property scaleX.
* @return Value of property scaleX.
*/
public float getScaleX()
{
return this.scaleX;
}
/**
* Getter for property scaleY.
* @return Value of property scaleY.
*/
public float getScaleY()
{
return this.scaleY;
}
/**
* Getter for property shiftX.
* @return Value of property shiftX.
*/
public float getShiftX()
{
return this.shiftX;
}
/**
* Getter for property shiftY.
* @return Value of property shiftY.
*/
public float getShiftY()
{
return this.shiftY;
}
/**
* Getter for property upperLeftX.
* @return Value of property upperLeftX.
*/
public int getUpperLeftX()
{
return this.upperLeftX;
}
/**
* Getter for property upperLeftY.
* @return Value of property upperLeftY.
*/
public int getUpperLeftY()
{
return this.upperLeftY;
}
/**
* Getter for property width.
* @return Value of property width.
*/
public int getWidth()
{
return this.width;
}
/**
* Getter for property widthMap.
* @return Value of property widthMap.
*/
public int getWidthMap()
{
return this.widthMap;
}
/**
* DOCUMENT ME!
*/
public void update()
{
String method = "update(): ";
this.svgMatrix = this.svgRoot.getScreenCTM();
this.scaleX = this.svgMatrix.getA(); // scaling X
this.scaleY = this.svgMatrix.getD(); // scaling Y
this.shiftX = this.svgMatrix.getE(); // translation X
this.shiftY = this.svgMatrix.getF(); // translation Y
this.width = Math.round((svgCanvas.getWidth() - getShiftX()) / getScaleX());
this.height = Math.round((svgCanvas.getHeight() - getShiftY()) / getScaleY());
this.upperLeftX = (int) ((0 - getShiftX()) / getScaleX());
this.upperLeftY = (int) ((0 - getShiftY()) / getScaleY());
this.widthMap = (int) svgRoot.getWidth().getBaseVal().getValue();
this.heightMap = (int) svgRoot.getHeight().getBaseVal().getValue();
} // END update
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]