[SCM] image display tool for astronomy branch, upstream, updated. f6f5ad7a19a7c674dd427fb54f15a41a98d94d5e
Ole Streicher
github at liska.ath.cx
Wed Jun 6 13:58:40 UTC 2012
The following commit has been merged in the upstream branch:
commit 12d0f97e1f38a39f89cda43570a19b63b8af5cbb
Author: Ole Streicher <github at liska.ath.cx>
Date: Wed May 23 14:17:32 2012 +0200
New upstream beta version 7.0~b19
diff --git a/Makefile b/Makefile
index eef3601..0ea5630 100644
--- a/Makefile
+++ b/Makefile
@@ -147,6 +147,7 @@ CVSFILES = acknowledgement \
macosx \
tests \
doc \
+ cmaps \
template \
src \
msgs \
diff --git a/cmaps/cubehelix0.sao b/cmaps/cubehelix0.sao
new file mode 100644
index 0000000..f0e73a2
--- /dev/null
+++ b/cmaps/cubehelix0.sao
@@ -0,0 +1,319 @@
+#-----------------------------------------
+#cubehelixcolourschemeforsaoimage/DS9
+#
+#start....:0.5
+#rotations:-1.5
+#hue......:1.0
+#gamma....:1.0
+#
+#see:Green(2011),BASI,39,289.
+#-----------------------------------------
+#DaveGreen:dag at mrao.cam.ac.uk
+#-----------------------------------------
+PSEUDOCOLOR
+RED:
+(0.00,0.00)
+(0.01,0.02)
+(0.02,0.03)
+(0.03,0.05)
+(0.04,0.06)
+(0.05,0.07)
+(0.06,0.08)
+(0.07,0.09)
+(0.08,0.09)
+(0.09,0.10)
+(0.10,0.10)
+(0.11,0.10)
+(0.12,0.10)
+(0.13,0.10)
+(0.14,0.10)
+(0.15,0.10)
+(0.16,0.10)
+(0.17,0.09)
+(0.18,0.09)
+(0.19,0.09)
+(0.20,0.09)
+(0.21,0.08)
+(0.22,0.08)
+(0.23,0.08)
+(0.24,0.08)
+(0.25,0.08)
+(0.26,0.09)
+(0.27,0.09)
+(0.28,0.10)
+(0.29,0.11)
+(0.30,0.12)
+(0.31,0.13)
+(0.32,0.15)
+(0.33,0.16)
+(0.34,0.18)
+(0.35,0.20)
+(0.36,0.23)
+(0.37,0.25)
+(0.38,0.27)
+(0.39,0.30)
+(0.40,0.33)
+(0.41,0.36)
+(0.42,0.39)
+(0.43,0.42)
+(0.44,0.45)
+(0.45,0.48)
+(0.46,0.51)
+(0.47,0.54)
+(0.48,0.57)
+(0.49,0.60)
+(0.50,0.63)
+(0.51,0.65)
+(0.52,0.68)
+(0.53,0.70)
+(0.54,0.72)
+(0.55,0.75)
+(0.56,0.76)
+(0.57,0.78)
+(0.58,0.79)
+(0.59,0.80)
+(0.60,0.81)
+(0.61,0.82)
+(0.62,0.83)
+(0.63,0.83)
+(0.64,0.83)
+(0.65,0.83)
+(0.66,0.83)
+(0.67,0.83)
+(0.68,0.82)
+(0.69,0.82)
+(0.70,0.81)
+(0.71,0.81)
+(0.72,0.80)
+(0.73,0.79)
+(0.74,0.79)
+(0.75,0.78)
+(0.76,0.77)
+(0.77,0.77)
+(0.78,0.76)
+(0.79,0.76)
+(0.80,0.76)
+(0.81,0.76)
+(0.82,0.76)
+(0.83,0.76)
+(0.84,0.77)
+(0.85,0.77)
+(0.86,0.78)
+(0.87,0.79)
+(0.88,0.80)
+(0.89,0.81)
+(0.90,0.82)
+(0.91,0.84)
+(0.92,0.85)
+(0.93,0.87)
+(0.94,0.89)
+(0.95,0.91)
+(0.96,0.93)
+(0.97,0.95)
+(0.98,0.96)
+(0.99,0.98)
+(1.00,1.00)
+GREEN:
+(0.00,0.00)
+(0.01,0.01)
+(0.02,0.01)
+(0.03,0.02)
+(0.04,0.02)
+(0.05,0.03)
+(0.06,0.04)
+(0.07,0.05)
+(0.08,0.06)
+(0.09,0.07)
+(0.10,0.08)
+(0.11,0.10)
+(0.12,0.11)
+(0.13,0.12)
+(0.14,0.14)
+(0.15,0.15)
+(0.16,0.17)
+(0.17,0.19)
+(0.18,0.20)
+(0.19,0.22)
+(0.20,0.24)
+(0.21,0.26)
+(0.22,0.27)
+(0.23,0.29)
+(0.24,0.31)
+(0.25,0.32)
+(0.26,0.34)
+(0.27,0.36)
+(0.28,0.37)
+(0.29,0.39)
+(0.30,0.40)
+(0.31,0.41)
+(0.32,0.42)
+(0.33,0.43)
+(0.34,0.44)
+(0.35,0.45)
+(0.36,0.46)
+(0.37,0.46)
+(0.38,0.47)
+(0.39,0.47)
+(0.40,0.48)
+(0.41,0.48)
+(0.42,0.48)
+(0.43,0.48)
+(0.44,0.48)
+(0.45,0.48)
+(0.46,0.48)
+(0.47,0.48)
+(0.48,0.48)
+(0.49,0.48)
+(0.50,0.47)
+(0.51,0.47)
+(0.52,0.47)
+(0.53,0.47)
+(0.54,0.47)
+(0.55,0.48)
+(0.56,0.48)
+(0.57,0.48)
+(0.58,0.48)
+(0.59,0.49)
+(0.60,0.50)
+(0.61,0.50)
+(0.62,0.51)
+(0.63,0.52)
+(0.64,0.53)
+(0.65,0.54)
+(0.66,0.55)
+(0.67,0.57)
+(0.68,0.58)
+(0.69,0.60)
+(0.70,0.61)
+(0.71,0.63)
+(0.72,0.65)
+(0.73,0.67)
+(0.74,0.68)
+(0.75,0.70)
+(0.76,0.72)
+(0.77,0.74)
+(0.78,0.76)
+(0.79,0.77)
+(0.80,0.79)
+(0.81,0.81)
+(0.82,0.83)
+(0.83,0.84)
+(0.84,0.86)
+(0.85,0.87)
+(0.86,0.89)
+(0.87,0.90)
+(0.88,0.91)
+(0.89,0.92)
+(0.90,0.93)
+(0.91,0.94)
+(0.92,0.95)
+(0.93,0.96)
+(0.94,0.97)
+(0.95,0.97)
+(0.96,0.98)
+(0.97,0.98)
+(0.98,0.99)
+(0.99,0.99)
+(1.00,1.00)
+BLUE:
+(0.00,0.00)
+(0.01,0.02)
+(0.02,0.03)
+(0.03,0.05)
+(0.04,0.07)
+(0.05,0.09)
+(0.06,0.11)
+(0.07,0.13)
+(0.08,0.15)
+(0.09,0.17)
+(0.10,0.19)
+(0.11,0.21)
+(0.12,0.22)
+(0.13,0.24)
+(0.14,0.25)
+(0.15,0.27)
+(0.16,0.28)
+(0.17,0.29)
+(0.18,0.30)
+(0.19,0.30)
+(0.20,0.31)
+(0.21,0.31)
+(0.22,0.31)
+(0.23,0.31)
+(0.24,0.30)
+(0.25,0.30)
+(0.26,0.29)
+(0.27,0.28)
+(0.28,0.28)
+(0.29,0.27)
+(0.30,0.26)
+(0.31,0.25)
+(0.32,0.24)
+(0.33,0.23)
+(0.34,0.22)
+(0.35,0.21)
+(0.36,0.20)
+(0.37,0.19)
+(0.38,0.19)
+(0.39,0.19)
+(0.40,0.18)
+(0.41,0.18)
+(0.42,0.19)
+(0.43,0.19)
+(0.44,0.20)
+(0.45,0.21)
+(0.46,0.22)
+(0.47,0.23)
+(0.48,0.25)
+(0.49,0.27)
+(0.50,0.29)
+(0.51,0.31)
+(0.52,0.33)
+(0.53,0.36)
+(0.54,0.39)
+(0.55,0.42)
+(0.56,0.45)
+(0.57,0.48)
+(0.58,0.51)
+(0.59,0.54)
+(0.60,0.58)
+(0.61,0.61)
+(0.62,0.64)
+(0.63,0.67)
+(0.64,0.70)
+(0.65,0.73)
+(0.66,0.76)
+(0.67,0.78)
+(0.68,0.81)
+(0.69,0.83)
+(0.70,0.85)
+(0.71,0.87)
+(0.72,0.89)
+(0.73,0.91)
+(0.74,0.92)
+(0.75,0.93)
+(0.76,0.94)
+(0.77,0.94)
+(0.78,0.95)
+(0.79,0.95)
+(0.80,0.95)
+(0.81,0.95)
+(0.82,0.95)
+(0.83,0.95)
+(0.84,0.95)
+(0.85,0.95)
+(0.86,0.94)
+(0.87,0.94)
+(0.88,0.94)
+(0.89,0.94)
+(0.90,0.94)
+(0.91,0.94)
+(0.92,0.94)
+(0.93,0.94)
+(0.94,0.94)
+(0.95,0.95)
+(0.96,0.95)
+(0.97,0.96)
+(0.98,0.97)
+(0.99,0.99)
+(1.00,1.00)
diff --git a/cmaps/cubehelix1.sao b/cmaps/cubehelix1.sao
new file mode 100644
index 0000000..3494f37
--- /dev/null
+++ b/cmaps/cubehelix1.sao
@@ -0,0 +1,319 @@
+#-----------------------------------------
+# cubehelix colour scheme for saoimage/DS9
+#
+# start....: 0.5
+# rotations: -1.5
+# hue......: 2.0
+# gamma....: 1.0
+#
+# see: Green (2011), BASI, 39, 289.
+#-----------------------------------------
+# Dave Green: dag at mrao.cam.ac.uk
+#-----------------------------------------
+PSEUDOCOLOR
+RED:
+(0.00,0.00)
+(0.01,0.02)
+(0.02,0.04)
+(0.03,0.06)
+(0.04,0.08)
+(0.05,0.09)
+(0.06,0.10)
+(0.07,0.10)
+(0.08,0.11)
+(0.09,0.11)
+(0.10,0.10)
+(0.11,0.10)
+(0.12,0.09)
+(0.13,0.08)
+(0.14,0.07)
+(0.15,0.05)
+(0.16,0.04)
+(0.17,0.02)
+(0.18,0.00)
+(0.19,0.00)
+(0.20,0.00)
+(0.21,0.00)
+(0.22,0.00)
+(0.23,0.00)
+(0.24,0.00)
+(0.25,0.00)
+(0.26,0.00)
+(0.27,0.00)
+(0.28,0.00)
+(0.29,0.00)
+(0.30,0.00)
+(0.31,0.00)
+(0.32,0.00)
+(0.33,0.00)
+(0.34,0.03)
+(0.35,0.06)
+(0.36,0.09)
+(0.37,0.13)
+(0.38,0.17)
+(0.39,0.21)
+(0.40,0.26)
+(0.41,0.31)
+(0.42,0.36)
+(0.43,0.41)
+(0.44,0.46)
+(0.45,0.51)
+(0.46,0.56)
+(0.47,0.61)
+(0.48,0.66)
+(0.49,0.71)
+(0.50,0.76)
+(0.51,0.80)
+(0.52,0.84)
+(0.53,0.88)
+(0.54,0.91)
+(0.55,0.94)
+(0.56,0.97)
+(0.57,0.99)
+(0.58,1.00)
+(0.59,1.00)
+(0.60,1.00)
+(0.61,1.00)
+(0.62,1.00)
+(0.63,1.00)
+(0.64,1.00)
+(0.65,1.00)
+(0.66,1.00)
+(0.67,0.99)
+(0.68,0.97)
+(0.69,0.95)
+(0.70,0.93)
+(0.71,0.90)
+(0.72,0.88)
+(0.73,0.86)
+(0.74,0.83)
+(0.75,0.81)
+(0.76,0.79)
+(0.77,0.77)
+(0.78,0.75)
+(0.79,0.73)
+(0.80,0.72)
+(0.81,0.71)
+(0.82,0.70)
+(0.83,0.69)
+(0.84,0.69)
+(0.85,0.69)
+(0.86,0.70)
+(0.87,0.71)
+(0.88,0.72)
+(0.89,0.73)
+(0.90,0.75)
+(0.91,0.77)
+(0.92,0.79)
+(0.93,0.81)
+(0.94,0.84)
+(0.95,0.87)
+(0.96,0.89)
+(0.97,0.92)
+(0.98,0.95)
+(0.99,0.97)
+(1.00,1.00)
+GREEN:
+(0.00,0.00)
+(0.01,0.00)
+(0.02,0.00)
+(0.03,0.01)
+(0.04,0.01)
+(0.05,0.01)
+(0.06,0.02)
+(0.07,0.03)
+(0.08,0.04)
+(0.09,0.05)
+(0.10,0.07)
+(0.11,0.08)
+(0.12,0.10)
+(0.13,0.12)
+(0.14,0.14)
+(0.15,0.16)
+(0.16,0.18)
+(0.17,0.20)
+(0.18,0.23)
+(0.19,0.25)
+(0.20,0.28)
+(0.21,0.30)
+(0.22,0.33)
+(0.23,0.35)
+(0.24,0.38)
+(0.25,0.40)
+(0.26,0.42)
+(0.27,0.44)
+(0.28,0.46)
+(0.29,0.48)
+(0.30,0.50)
+(0.31,0.51)
+(0.32,0.53)
+(0.33,0.54)
+(0.34,0.55)
+(0.35,0.55)
+(0.36,0.56)
+(0.37,0.56)
+(0.38,0.56)
+(0.39,0.56)
+(0.40,0.55)
+(0.41,0.55)
+(0.42,0.54)
+(0.43,0.53)
+(0.44,0.52)
+(0.45,0.51)
+(0.46,0.50)
+(0.47,0.49)
+(0.48,0.47)
+(0.49,0.46)
+(0.50,0.45)
+(0.51,0.44)
+(0.52,0.43)
+(0.53,0.42)
+(0.54,0.41)
+(0.55,0.40)
+(0.56,0.40)
+(0.57,0.39)
+(0.58,0.39)
+(0.59,0.39)
+(0.60,0.39)
+(0.61,0.40)
+(0.62,0.40)
+(0.63,0.41)
+(0.64,0.42)
+(0.65,0.43)
+(0.66,0.45)
+(0.67,0.47)
+(0.68,0.48)
+(0.69,0.50)
+(0.70,0.53)
+(0.71,0.55)
+(0.72,0.57)
+(0.73,0.60)
+(0.74,0.63)
+(0.75,0.65)
+(0.76,0.68)
+(0.77,0.71)
+(0.78,0.73)
+(0.79,0.76)
+(0.80,0.78)
+(0.81,0.81)
+(0.82,0.83)
+(0.83,0.85)
+(0.84,0.87)
+(0.85,0.89)
+(0.86,0.91)
+(0.87,0.93)
+(0.88,0.94)
+(0.89,0.95)
+(0.90,0.96)
+(0.91,0.97)
+(0.92,0.98)
+(0.93,0.99)
+(0.94,0.99)
+(0.95,0.99)
+(0.96,1.00)
+(0.97,1.00)
+(0.98,1.00)
+(0.99,1.00)
+(1.00,1.00)
+BLUE:
+(0.00,0.00)
+(0.01,0.02)
+(0.02,0.05)
+(0.03,0.07)
+(0.04,0.10)
+(0.05,0.13)
+(0.06,0.16)
+(0.07,0.19)
+(0.08,0.22)
+(0.09,0.25)
+(0.10,0.28)
+(0.11,0.30)
+(0.12,0.33)
+(0.13,0.35)
+(0.14,0.37)
+(0.15,0.38)
+(0.16,0.40)
+(0.17,0.41)
+(0.18,0.41)
+(0.19,0.41)
+(0.20,0.41)
+(0.21,0.41)
+(0.22,0.40)
+(0.23,0.38)
+(0.24,0.37)
+(0.25,0.35)
+(0.26,0.32)
+(0.27,0.30)
+(0.28,0.27)
+(0.29,0.24)
+(0.30,0.21)
+(0.31,0.18)
+(0.32,0.15)
+(0.33,0.12)
+(0.34,0.09)
+(0.35,0.07)
+(0.36,0.04)
+(0.37,0.02)
+(0.38,0.00)
+(0.39,0.00)
+(0.40,0.00)
+(0.41,0.00)
+(0.42,0.00)
+(0.43,0.00)
+(0.44,0.00)
+(0.45,0.00)
+(0.46,0.00)
+(0.47,0.00)
+(0.48,0.01)
+(0.49,0.04)
+(0.50,0.07)
+(0.51,0.11)
+(0.52,0.15)
+(0.53,0.19)
+(0.54,0.24)
+(0.55,0.28)
+(0.56,0.33)
+(0.57,0.39)
+(0.58,0.44)
+(0.59,0.50)
+(0.60,0.55)
+(0.61,0.61)
+(0.62,0.66)
+(0.63,0.71)
+(0.64,0.76)
+(0.65,0.81)
+(0.66,0.86)
+(0.67,0.90)
+(0.68,0.94)
+(0.69,0.98)
+(0.70,1.00)
+(0.71,1.00)
+(0.72,1.00)
+(0.73,1.00)
+(0.74,1.00)
+(0.75,1.00)
+(0.76,1.00)
+(0.77,1.00)
+(0.78,1.00)
+(0.79,1.00)
+(0.80,1.00)
+(0.81,1.00)
+(0.82,1.00)
+(0.83,1.00)
+(0.84,1.00)
+(0.85,1.00)
+(0.86,1.00)
+(0.87,1.00)
+(0.88,1.00)
+(0.89,0.98)
+(0.90,0.97)
+(0.91,0.96)
+(0.92,0.95)
+(0.93,0.95)
+(0.94,0.94)
+(0.95,0.95)
+(0.96,0.95)
+(0.97,0.96)
+(0.98,0.97)
+(0.99,0.98)
+(1.00,1.00)
diff --git a/doc/beta.html b/doc/beta.html
index 651446c..80e6e7b 100644
--- a/doc/beta.html
+++ b/doc/beta.html
@@ -6,7 +6,19 @@
<meta name="GENERATOR"
content="Mozilla/4.76 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
<title>DS9</title>
-</head>
+<script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-30382362-2']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+
+</script></head>
<body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"
link="#0000ee" vlink="#551a8b" alink="#ff0000">
<h3> <img src="sun.gif" alt="" height="98" width="100" align="middle">
diff --git a/doc/index.html b/doc/index.html
index 9993875..e10bf47 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -6,6 +6,19 @@
<meta name="GENERATOR"
content="Mozilla/4.76 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
<title>DS9</title>
+<script type="text/javascript">
+
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-30382362-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+
+</script>
</head>
<body style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);"
link="#0000ee" vlink="#551a8b" alink="#ff0000">
diff --git a/doc/ref/command.html b/doc/ref/command.html
index 3cfc75f..65cd9f5 100644
--- a/doc/ref/command.html
+++ b/doc/ref/command.html
@@ -8,7 +8,7 @@
<title>Command Line Options</title>
</head>
<body alink="#ff0000" link="#0000ff" vlink="#551a8b">
- <h3><img alt="" src="../sun.gif" align="middle" height="98"
+ <h3><img alt="" src="../sun.gif" height="98" align="middle"
width="100"> Command Line Options</h3>
<blockquote>
<p>DS9 will process each command line option, one at a time, as
@@ -47,6 +47,7 @@
<a href="#dsseso">dsseso</a><br>
<a href="#dssstsci">dssstsci</a><br>
<a href="#exit">exit</a><br>
+ <a href="#export">export</a><br>
<a href="#fifo">fifo</a><br>
<a href="#fifo_only">fifo_only</a><br>
<a href="#file">file</a><br>
@@ -62,6 +63,8 @@
<a href="#help">help</a><br>
<a href="#histequ">histequ</a><br>
<a href="#iconify">iconify</a><br>
+ <a href="#image">image</a><br>
+ <a href="#image">import</a><br>
<a href="#inet_only">inet_only</a><br>
<a href="#invert">invert</a><br>
<a href="#iis">iis</a><br>
@@ -110,7 +113,6 @@
<a href="#rotate">rotate</a><br>
<a href="#samp">samp</a><br>
<a href="#saveimage">saveimage</a><br>
- <a href="#savefits">savefits</a><br>
<a href="#savempeg">savempeg</a><br>
<a href="#scale">scale</a><br>
<a href="#shm">shm</a><br>
@@ -674,6 +676,11 @@
+
+
+
+
+
[match <coordsys>]<br>
[lock
<coordsys>|none]</tt><br>
@@ -824,6 +831,24 @@
Example: <br>
$ds9 -exit<br>
</tt>
+ <p><b> <a name="export"></a>export<br>
+ </b></p>
+ <p>Export loaded image data of current frame in specified image
+ format, using current colormap and contrast/bias settings. <tt>fits,
+
+ gif, tiff (tif), jpeg (jpg), png, ppm</tt> formats supported.
+ If no format specified, the file name extension is used to
+ determine the output format. Optional parameters: jpeg quality
+ (1-100) and tiff compression method.<br>
+ </p>
+ <tt> Syntax: <br>
+ -export [fits|gif|tiff|jpeg|png|ppm] <filename></tt><tt><br>
+ </tt><tt>-export <filename></tt><tt>.jpeg [1-100]<br>
+ </tt><tt>-export <filename></tt><tt>.tiff
+ [none|jpeg|packbits|deflate]</tt><br>
+ <tt> <br>
+ Example: <br>
+ $ds9 -export foo.jpg 75</tt><br>
<p><b><a name="fifo"></a>fifo</b></p>
<p>Set the name of the IRAF input and output fifos. The default is
/dev/imt1. These fifos are used by IRAF to communicate with DS9.
@@ -1152,7 +1177,19 @@
<br>
Example: <br>
$ds9 -iconify<br>
- $ds9 -iconify yes </tt>
+ $ds9 -iconify yes<br>
+ </tt>
+ <p><b> <a name="image"></a>image<br>
+ import<br>
+ </b></p>
+ <p>Load image file into the current frame. Accepts <tt>gif,
+ tiff, jpeg, png, ppm</tt> formats.<br>
+ </p>
+ <tt> Syntax: <br>
+ -image <filename></tt><tt><br>
+ <br>
+ Example: <br>
+ $ds9 -image foo.jpg</tt><br>
<p><b> <a name="invert"></a>invert</b></p>
<p>Invert Colormap. </p>
<tt> Syntax: <br>
@@ -1392,6 +1429,11 @@
+
+
+
+
+
[pan]<br>
@@ -1407,6 +1449,11 @@
+
+
+
+
+
[crosshair]<br>
@@ -1422,6 +1469,11 @@
+
+
+
+
+
[open|close]<br>
<br>
Example: <br>
@@ -1527,6 +1579,11 @@
+
+
+
+
+
[yes|open]<br>
[no|close]<br>
@@ -2012,37 +2069,40 @@
$ds9 -samp send image aladin<br>
</tt>
<p><b> <a name="saveimage"></a>saveimage</b></p>
- <p>Save visible image(s) as a raster. If image is a cube, the mpeg
- option will cycle thru each slice creating a mpeg movie.</p>
+ <p>Create a snap shot of the current DS9 window and save in
+ specified image format. <tt>fits, gif, tiff (tif), jpeg (jpg),
+ pnm, ppm</tt> formats supported. If no format specified, the
+ file name extension is used to determine the output format.
+ Optional parameters: jpeg quality (1-100) and tiff compression
+ method. </p>
<tt> Syntax: <br>
- -saveimage fits <filename><br>
- -saveimage jpeg [1-100] <filename><br>
- -saveimage tiff [none|jpeg|packbits|deflate] <filename><br>
- -saveimage png <filename><br>
- -saveimage ppm <filename><br>
- -saveimage mpeg [1-31] <filename><br>
+ -saveimage </tt><tt>[fits|gif|tiff|jpeg|png|ppm] </tt><tt><filename><br>
+ -saveimage <filename>.jpeg [1-100]<br>
+ -saveimage <filename>.tiff [none|jpeg|packbits|deflate]<br>
<br>
Example: <br>
- $ds9 -saveimage fits ds9.fits<br>
- $ds9 -saveimage jpeg 75 ds9.jpg<br>
- </tt>
- <p><b><a name="savefits"></a>savefits</b></p>
- <p>Save current frame data as FITS. This differs from SAVEIMAGE in
- that the entire image of the current frame is saved as a FITS,
- without graphics.</p>
- <tt> Syntax:<br>
- -savefits <filename><br>
- <br>
- Example:<br>
- $ds9 -savefits ds9.fits<br>
+ $ds9 -saveimage ds9.fits<br>
+ $ds9 -saveimage ds9.jpg 75</tt><tt><br>
</tt>
<p><b><a name="savempeg"></a>savempeg</b></p>
- <p>Save all active frames as a mpeg movie. </p>
+ <p>Create mpeg1 movie from snap shots of the DS9 window. A <tt>slice</tt>
+ movie cycles though all slices of a cube. A <tt>frame</tt>
+ movie cycles through all active frames. A <tt>3d</tt> movie
+ cycles through specified viewing angles. The default is <tt>frame</tt>.
+ Optional parameters for <tt>3d</tt>: number of frames, azimuth
+ from/to, elevation from/to, slice from/to, oscillate/repeat
+ times.<br>
+ </p>
<tt> Syntax:<br>
- -savempeg <filename><br>
+ -savempeg [slice|frame|3d] <filename><br>
+ -savempeg 3d <filename>
+ [number|azfrom|azto|elfrom|elto|slfrom|slto|oscillate|repeat
+ <#>]<br>
<br>
Example:<br>
- $ds9 -savempeg ds9.mpg<br>
+ $ds9 -savempeg slice ds9.mpg<br>
+ $ds9 -savempeg 3d ds9.mpg number 10 azfrom -60 azto 60 oscillate
+ 1<br>
</tt>
<p><b> <a name="scale"></a>scale</b></p>
<p>Controls the limits and color scale distribution. </p>
diff --git a/doc/ref/region.html b/doc/ref/region.html
index acdf726..76510ee 100644
--- a/doc/ref/region.html
+++ b/doc/ref/region.html
@@ -1,563 +1,669 @@
<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
-<head>
- <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
- <meta name="GENERATOR"
- content="Mozilla/4.78 [en] (X11; U; Linux 2.4.7-10 i686) [Netscape]">
- <title>Regions</title>
- <meta http-equiv="Content-Type"
- content="text/html; charset=ISO-8859-1">
- <meta name="GENERATOR"
- content="Mozilla/4.78 [en] (X11; U; Linux 2.4.7-10 i686) [Netscape]">
-</head>
-<body alink="#ff0000" bgcolor="#ffffff" text="#000000" vlink="#551a8b"
- link="#0000ff">
-<h3><img alt="" src="../sun.gif" align="middle" width="100" height="98">
-Regions</h3>
-<blockquote>
- <p>Regions provide a means for marking particular areas of an image
-for further analysis. Regions may also be used for presentation
-purposes. DS9 supports a number of region descriptions, each of which
-may be edited, moved, rotated, displayed, saved and loaded, via the GUI
-and XPA.</p>
- <a href="#RegionDescriptions">Region Descriptions</a><br>
- <a href="#RegionProperties">Region Properties</a><br>
- <a href="#RegionFileFormat">Region File Format</a><br>
- <a href="#CompositeRegion">Composite Region</a><br>
- <a href="#TemplateRegion">Template Region</a><br>
- <a href="#ExternalRegionFiles">External Region Files</a><br>
- <p><b> <a name="RegionDescriptions"></a>Region Descriptions</b></p>
- <p><tt>Circle<br>
-Usage: circle x y radius </tt></p>
- <p><tt>Ellipse<br>
-Usage: ellipse x y radius radius angle </tt></p>
- <p><tt>Box <br>
-Usage: box x y width height angle </tt></p>
- <p><tt>Polygon <br>
-Usage: polygon x1 y1 x2 y2 x3 y3 ... </tt></p>
- <p><tt>Line <br>
-Usage: line x1 y1 x2 y2 # line=[0|1] [0|1] </tt></p>
- <p><tt>Vector <br>
-Usage: vector x1 y1 length angle # vector=[0|1] </tt></p>
- <p><tt>Text <br>
-Usage: text x y # text={Your Text Here}<br>
- text x y {Your Text Here} </tt></p>
- <p><tt>Ruler <br>
-Usage: ruler x1 y1 x2 y2 # ruler=[pixels|degrees|arcmin|arcsec]</tt></p>
- <p><tt>Compass <br>
-Usage: compass x1 y1 length # compass=<coordinate system>
-<north label> <east label> [0|1] [0|1] </tt></p>
- <p><tt>Projection <br>
-Usage: projection x1 y1 x2 y2 width</tt></p>
- <p><tt>Projection3d<br>
-Usage: projection3d x y radius </tt><br>
- </p>
- <p><tt>Annulus <br>
-Usage: annulus x y inner outer n=# <br>
- annulus x y r1 r2 r3... </tt></p>
- <p><tt>Ellipse Annulus <br>
-Usage: ellipse x y r11 r12 r21 r22 n=# [angle]<br>
- ellipse x y r11 r12 r21 r22 r31
-r32 ... [angle] </tt></p>
- <p><tt>Box Annulus <br>
-Usage: box x y w1 h1 w2 h2 [angle] <br>
- box x y w1 h1 w2 h2 w3 h3 ...
-[angle] </tt></p>
- <p><tt>Panda <br>
-Usage: panda x y startangle stopangle nangle inner outer nradius</tt></p>
- <p><tt>Epanda <br>
-Usage: epanda x y startangle stopangle nangle inner outer nradius
-[angle]</tt></p>
- <p><tt>Bpanda <br>
-Usage: bpanda x y startangle stopangle nangle inner outer nradius
-[angle]</tt></p>
- <p><tt>Circle Point <br>
-Usage: point x y # point=circle [size]<br>
- circle point x y </tt></p>
- <p><tt>Box Point <br>
-Usage: point x y # point=box [size]<br>
- box point x y </tt></p>
- <p><tt>Diamond Point <br>
-Usage: point x y # point=diamond [size]<br>
- diamond point x y </tt></p>
- <p><tt>Cross Point <br>
-Usage: point x y # point=cross [size]<br>
- cross point x y </tt></p>
- <p><tt>X Point <br>
-Usage: point x y # point=x [size]<br>
- x point x y </tt></p>
- <p><tt>Arrow Point <br>
-Usage: point x y # point=arrow [size]<br>
- arrow point x y </tt></p>
- <p><tt>BoxCircle Point<br>
-Usage: point x y # point=boxcircle[size]<br>
- boxcircle point x y</tt></p>
- <p><tt>Composite<br>
-Usage: # composite x y angle</tt></p>
- <p><b> <a name="RegionProperties"></a>Region Properties</b></p>
- <p>Each region has a number of properties associated with the region,
-which indicates how the region is to be rendered or manipulated.
-Properties are defined for a region in the comment section of the
-region description. The exception is the Include/Exclude property. It
-is set via '+' or '-' preceding the region. In addition, the Line,
-Point, and Ruler regions have unique properties, not shared by others.
-Not all properties are available via the GUI or are applicable for all
-regions. </p>
- <blockquote>
- <p><b> Text</b></p>
- <p>All regions may have text associated with them. Use the text
-property to set the text. Strings may be quoted with " or ' or {}. For
-best results, use {}. </p>
- <tt>Example: circle(100,100,20) # text = {This message has both a "
-and ' in it}</tt>
- <p><b> Color</b></p>
- <p>The color property specifies the color of the region when
-rendered. The follow 8 colors are supported: </p>
- <tt>Example: circle(100,100,20) # color = green</tt><br>
- <p><b>Dash List</b></p>
- <p>Sets dashed line parameters. This does not render the region in
-dashed lines.</p>
- <tt>Example: circle(100,100,20) # dashlist = 8 3</tt><br>
- <p><b>Width</b></p>
- <p>Sets the line width used to render the region.</p>
- <tt>Example: circle(100,100,20) # width = 2</tt><br>
- <p><b>Font</b></p>
- <p>The font property specifies the font family, size, weight, and
-slant of any text to be displayed along with the region. </p>
- <tt>Example: circle(100,100,20) # font="times 12 bold italic"</tt>
- <p><b> Can Select</b></p>
- <p>The Select property specifies if the user is allowed to select
-(hence, edit) the region via the GUI. For Regions used for catalogs and
-such, it is desirable that the user is unable to edit, move, or delete
-the region.<br>
- </p>
- <tt>Example: circle(100,100,20) # select = 1</tt><br>
- <p><b>Can Highlite</b></p>
-The Highlite property specifies if the edit handles become visible when
-the region is selected.<br>
- <tt>Example: circle(100,100,20) # hightlite = 1</tt><br>
- <p><b>Dash</b></p>
- <p>Render region using dashed lines using current <tt>dashlist</tt>
-value.</p>
- <tt>Example: circle(100,100,20) # dash = 1</tt><br>
- <p><b>Fixed in Size</b></p>
- <p>The Fixed in Size property specifies that the region does not
-change in size as the image magnification factor changes. This allows
-the user to build complex pointer type regions. </p>
- <tt>Example: circle(100,100,20) # fixed = 1</tt>
- <p><b> Can Edit</b></p>
- <p>The Edit property specifies if the user is allowed to edit the
-region via the GUI. </p>
- <tt>Example: circle(100,100,20) # edit = 1</tt>
- <p><b> Can Move</b></p>
- <p>The Move property specifies if the user is allowed to move the
-region via the GUI. </p>
- <tt>Example: circle(100,100,20) # move = 1</tt>
- <p><b> Can Rotate</b></p>
- <p>The Rotate property specifies if the user is allowed to rotate
-the region via the GUI. </p>
- <tt>Example: circle(100,100,20) # rotate = 1</tt>
- <p><b> Can Delete</b></p>
- <p>The Delete property specifies if the user is allowed to delete
-the region via the GUI. </p>
- <tt>Example: circle(100,100,20) # delete = 1</tt>
- <p><b> Include/Exclude</b></p>
- <p>The Include/Exclude properties flags the region with a boolean <tt>NOT
-
-
- </tt>for later analysis. Use '+' for include (default), '-' for
-exclude. </p>
- <tt>Example: -circle(100,100,20)<br>
- </tt>
- <p><b>Source/Background</b></p>
- <p>The Source/Background properties flag the region for use with
-other analysis applications. The default is <tt>source</tt></p>
- <tt>Example: circle(100,100,20) # source<br>
- circle(200,200,10) #
-background</tt><br>
- <p><b>Tag</b></p>
- <p>All regions may have zero or more tags associated with it, which
-may be used for grouping and searching. </p>
- <tt>Example: circle(100,100,20) # tag = {Group 1} tag =
-{Group 2}</tt>
- <p><b> Line</b></p>
- <p>The line region may be rendered with arrows, one at each end. To
-indicate arrows, use the line property. A '1' indicates an arrow, '0'
-indicates no arrow. </p>
- <tt>Example: line(100,100,200,200) # line= 1 1</tt>
- <p><b> Ruler</b></p>
- <p>The ruler region may display information in 'pixels', 'degrees',
-'arcmin', or 'arcsec'. Use the ruler property to indicate which format
-to display distances in. </p>
- <tt>Example: ruler(100,100,200,200) # ruler=arcmin</tt>
- <p><b> Point</b></p>
- <p>Point regions have an associated type and size. Use the point
-property to set the point type. </p>
- <tt>Example: point(100,100) # point=diamond 31</tt>
- <p><b> Default Properties</b></p>
- <p>The default properties are: </p>
- <blockquote> <tt>text={}</tt> <br>
- <tt>color=green</tt> <br>
- <tt>font="helvetica 10 normal roman"</tt> <br>
- <tt>select=1</tt> <br>
- <tt>edit=1</tt> <br>
- <tt>move=1</tt> <br>
- <tt>delete=1</tt> <br>
- <tt>highlite=1</tt> <br>
- <tt>include=1</tt> <br>
- <tt>fixed=0</tt> </blockquote>
- </blockquote>
- <p><b><a name="RegionFileFormat"></a>Region File Format</b></p>
- <blockquote>
- <p><b> Syntax</b></p>
- <p>Region arguments may be separated with either a comma or space.
-Optional parentheses may be used a the beginning and end of a
-description. </p>
- <blockquote> <tt>circle 100 100 10</tt> <br>
- <tt>circle(100 100 10)</tt> <br>
- <tt>circle(100,100,10)</tt> </blockquote>
- <p><b> Comments</b></p>
- <p>All lines that begin with <tt>#</tt> are comments and will be
-ignored.</p>
- <blockquote> <tt># This is a comment</tt> </blockquote>
- <p><b> Delimiter</b></p>
- <p>All lines may be delimited with either a new-line or semi-colon.
- </p>
- <blockquote> <tt>circle 100 100 10</tt> <br>
- <tt>ellipse 200 200 20 40 ; box 300 300 20 40</tt> </blockquote>
- <p><b> Header</b></p>
- <p>A DS9 region file may start with the following optional header: </p>
- <blockquote> <tt># Region file format: DS9 version 4.0</tt> </blockquote>
- <p><b> Global Properties</b></p>
- <p>Global properties affect all regions unless a local property is
-specified. The <tt>global</tt> keyword is first, followed by a list of
-keyword = value pairs. Multiple global property lines may be used
-within a region file. </p>
- <blockquote> <tt>global color=green font="helvetica 10 normal
-roman" edit=1 move=1 delete=1 highlite=1 include=1 wcs=wcs</tt> </blockquote>
- <p><b> Local Properties</b></p>
- <p>Local properties start with a # after a region description and
-only affect the region it is specified with. </p>
- <blockquote> <tt>physical;circle(504,513,20) # color=red
-text={This is a Circle}</tt> </blockquote>
- <p><b> Coordinate Systems</b></p>
- <p>For each region, it is important to specify the coordinate
-system used to interpret the region, i.e., to set the context in which
-the position and size values are interpreted. For this purpose, the
-following keywords are recognized: </p>
- <blockquote> <tt>PHYSICAL
-
-# pixel coords of original file using LTM/LTV</tt> <br>
- <tt>IMAGE
-
-# pixel coords of current file</tt> <br>
- <tt>FK4,
-B1950
-
-# sky coordinate systems</tt> <br>
- <tt>FK5,
-J2000
-
-# sky coordinate systems</tt> <br>
- <tt>GALACTIC
-
-# sky coordinate systems</tt> <br>
- <tt>ECLIPTIC
-
-# sky coordinate systems</tt> <br>
- <tt>ICRS
-
-# currently same as J2000</tt> <br>
- <tt>LINEAR
-
-# linear wcs as defined in file</tt> <br>
- <tt>AMPLIFIER
-
-# mosaic coords of original file using ATM/ATV</tt> <br>
- <tt>DETECTOR
-
-# mosaic coords of original file usingDTM/DTV</tt> </blockquote>
- <p><b> Mosaic Images</b></p>
- <p>While some coordinate systems are unique across mosaic images,
-others coordinate systems, such as <tt>image</tt>, or <tt>physical</tt>
-, are valid on a per segment basis. In this case, use <tt>tile</tt> to
-specify which header to use in all coordinate conversions. The default
-is the first header, or <tt>tile 1</tt>. </p>
- <tt>Example: tile 2;fk5;point(100,100)</tt>
- <p><b> Multiple WCS</b></p>
- <p>If an image has multiple wcs's defined, use <tt>wcs#</tt> to
-specify which wcs to use for all wcs references. Valid values are <tt>wcs,
-
-wcsa, wcsb, wcsc... wcsz.</tt><br>
- <tt>Example: wcsa;linear;point(100,100) # point=diamond</tt></p>
- <p><b> Specifying Positions and Sizes</b></p>
- <p>The arguments to region shapes can be floats or integers
-describing positions and sizes. They can be specified as pure numbers
-or using explicit formatting directives: </p>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html;
+ charset=ISO-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.78 [en] (X11; U; Linux
+ 2.4.7-10 i686) [Netscape]">
+ <title>Regions</title>
+ <meta http-equiv="Content-Type" content="text/html;
+ charset=ISO-8859-1">
+ <meta name="GENERATOR" content="Mozilla/4.78 [en] (X11; U; Linux
+ 2.4.7-10 i686) [Netscape]">
+ </head>
+ <body text="#000000" vlink="#551a8b" alink="#ff0000" bgcolor="#ffffff"
+ link="#0000ff">
+ <h3><img alt="" src="../sun.gif" width="100" align="middle"
+ height="98"> Regions</h3>
<blockquote>
- <p><b>position arguments</b> </p>
- <tt>[num]
+ <p>Regions provide a means for marking particular areas of an
+ image for further analysis. Regions may also be used for
+ presentation purposes. DS9 supports a number of region
+ descriptions, each of which may be edited, moved, rotated,
+ displayed, saved and loaded, via the GUI and XPA.</p>
+ <a href="#RegionDescriptions">Region Descriptions</a><br>
+ <a href="#RegionProperties">Region Properties</a><br>
+ <a href="#RegionFileFormat">Region File Format</a><br>
+ <a href="#CompositeRegion">Composite Region</a><br>
+ <a href="#TemplateRegion">Template Region</a><br>
+ <a href="#ExternalRegionFiles">External Region Files</a><br>
+ <p><b> <a name="RegionDescriptions"></a>Region Descriptions</b></p>
+ <p><tt>Circle<br>
+ Usage: circle x y radius<br>
+ </tt></p>
+ <p><tt>Ellipse<br>
+ Usage: ellipse x y radius radius angle<br>
+ </tt></p>
+ <p><tt>Box <br>
+ Usage: box x y width height angle<br>
+ </tt></p>
+ <p><tt>Polygon <br>
+ Usage: polygon x1 y1 x2 y2 x3 y3 ...<br>
+ </tt></p>
+ <p><tt>Point <br>
+ Usage: point x y #
+ point=[circle|box|diamond|cross|x|arrow|boxcircle] [size]<br>
+ circle point x y </tt></p>
+ <p><tt>Line <br>
+ Usage: line x1 y1 x2 y2 # line=[0|1] [0|1] </tt></p>
+ <p><tt>Vector <br>
+ Usage: vector x1 y1 length angle # vector=[0|1] </tt></p>
+ <p><tt>Text <br>
+ Usage: text x y # text={Your Text Here}<br>
+ text x y {Your Text Here}
+ </tt></p>
+ <p><tt>Ruler <br>
+ Usage: ruler x1 y1 x2 y2 #
+ ruler=[pixels|degrees|arcmin|arcsec]</tt></p>
+ <p><tt>Compass <br>
+ Usage: compass x1 y1 length # compass=<coordinate
+ system> <north label> <east label> [0|1] [0|1]
+ </tt></p>
+ <p><tt>Projection <br>
+ Usage: projection x1 y1 x2 y2 width</tt></p>
+ <p><tt>Annulus <br>
+ Usage: annulus x y inner outer n=# <br>
+ annulus x y r1 r2 r3... </tt></p>
+ <p><tt>Ellipse Annulus <br>
+ Usage: ellipse x y r11 r12 r21 r22 n=# [angle]<br>
+ ellipse x y r11 r12 r21
+ r22 r31 r32 ... [angle] </tt></p>
+ <p><tt>Box Annulus <br>
+ Usage: box x y w1 h1 w2 h2 [angle] <br>
+ box x y w1 h1 w2 h2 w3 h3
+ ... [angle] </tt></p>
+ <p><tt>Panda <br>
+ Usage: panda x y startangle stopangle nangle inner outer
+ nradius</tt></p>
+ <p><tt>Epanda <br>
+ Usage: epanda x y startangle stopangle nangle inner outer
+ nradius [angle]</tt></p>
+ <p><tt>Bpanda <br>
+ Usage: bpanda x y startangle stopangle nangle inner outer
+ nradius [angle]</tt></p>
+ <p><tt>Composite<br>
+ Usage: # composite x y angle</tt></p>
+ <p><b> <a name="RegionProperties"></a>Region Properties</b></p>
+ <p>Each region has a number of properties associated with the
+ region, which indicates how the region is to be rendered or
+ manipulated. Properties are defined for a region in the comment
+ section of the region description. The exception is the
+ Include/Exclude property. It is set via '+' or '-' preceding the
+ region. In addition, the Line, Point, and Ruler regions have
+ unique properties, not shared by others. Not all properties are
+ available via the GUI or are applicable for all regions. </p>
+ <blockquote>
+ <p><b> Text</b></p>
+ <p>All regions may have text associated with them. Use the text
+ property to set the text. Strings may be quoted with " or ' or
+ {}. For best results, use {}. </p>
+ <tt>Example: circle(100,100,20) # text = {This message has both
+ a " and ' in it}</tt>
+ <p><b> Color</b></p>
+ <p>The color property specifies the color of the region when
+ rendered. The follow 8 colors are supported: </p>
+ <tt>Example: circle(100,100,20) # color = green</tt><br>
+ <p><b>Dash List</b></p>
+ <p>Sets dashed line parameters. This does not render the region
+ in dashed lines.</p>
+ <tt>Example: circle(100,100,20) # dashlist = 8 3</tt><br>
+ <p><b>Width</b></p>
+ <p>Sets the line width used to render the region.</p>
+ <tt>Example: circle(100,100,20) # width = 2</tt><br>
+ <p><b>Font</b></p>
+ <p>The font property specifies the font family, size, weight,
+ and slant of any text to be displayed along with the region. </p>
+ <tt>Example: circle(100,100,20) # font="times 12 bold italic"</tt>
+ <p><b> Can Select</b></p>
+ <p>The Select property specifies if the user is allowed to
+ select (hence, edit) the region via the GUI. For Regions used
+ for catalogs and such, it is desirable that the user is unable
+ to edit, move, or delete the region.<br>
+ </p>
+ <tt>Example: circle(100,100,20) # select = 1</tt><br>
+ <p><b>Can Highlite</b></p>
+ The Highlite property specifies if the edit handles become
+ visible when the region is selected.<br>
+ <tt>Example: circle(100,100,20) # hightlite = 1</tt><br>
+ <p><b>Dash</b></p>
+ <p>Render region using dashed lines using current <tt>dashlist</tt>
+ value.</p>
+ <tt>Example: circle(100,100,20) # dash = 1</tt><br>
+ <p><b>Fixed in Size</b></p>
+ <p>The Fixed in Size property specifies that the region does not
+ change in size as the image magnification factor changes. This
+ allows the user to build complex pointer type regions. </p>
+ <tt>Example: circle(100,100,20) # fixed = 1</tt>
+ <p><b> Can Edit</b></p>
+ <p>The Edit property specifies if the user is allowed to edit
+ the region via the GUI. </p>
+ <tt>Example: circle(100,100,20) # edit = 1</tt>
+ <p><b> Can Move</b></p>
+ <p>The Move property specifies if the user is allowed to move
+ the region via the GUI. </p>
+ <tt>Example: circle(100,100,20) # move = 1</tt>
+ <p><b> Can Rotate</b></p>
+ <p>The Rotate property specifies if the user is allowed to
+ rotate the region via the GUI. </p>
+ <tt>Example: circle(100,100,20) # rotate = 1</tt>
+ <p><b> Can Delete</b></p>
+ <p>The Delete property specifies if the user is allowed to
+ delete the region via the GUI. </p>
+ <tt>Example: circle(100,100,20) # delete = 1</tt>
+ <p><b> Include/Exclude</b></p>
+ <p>The Include/Exclude properties flags the region with a
+ boolean <tt>NOT </tt>for later analysis. Use '+' for include
+ (default), '-' for exclude. </p>
+ <tt>Example: -circle(100,100,20)<br>
+ </tt>
+ <p><b>Source/Background</b></p>
+ <p>The Source/Background properties flag the region for use with
+ other analysis applications. The default is <tt>source</tt></p>
+ <tt>Example: circle(100,100,20) # source<br>
+ circle(200,200,10)
+ # background</tt><br>
+ <p><b>Tag</b></p>
+ <p>All regions may have zero or more tags associated with it,
+ which may be used for grouping and searching. </p>
+ <tt>Example: circle(100,100,20) # tag = {Group 1} tag =
+ {Group 2}</tt>
+ <p><b> Line</b></p>
+ <p>The line region may be rendered with arrows, one at each end.
+ To indicate arrows, use the line property. A '1' indicates an
+ arrow, '0' indicates no arrow. </p>
+ <tt>Example: line(100,100,200,200) # line= 1 1</tt>
+ <p><b> Ruler</b></p>
+ <p>The ruler region may display information in 'pixels',
+ 'degrees', 'arcmin', or 'arcsec'. Use the ruler property to
+ indicate which format to display distances in. </p>
+ <tt>Example: ruler(100,100,200,200) # ruler=arcmin</tt>
+ <p><b> Point</b></p>
+ <p>Point regions have an associated type and size. Use the point
+ property to set the point type. </p>
+ <tt>Example: point(100,100) # point=diamond 31</tt>
+ <p><b> Default Properties</b></p>
+ <p>The default properties are: </p>
+ <blockquote> <tt>text={}</tt> <br>
+ <tt>color=green</tt> <br>
+ <tt>font="helvetica 10 normal roman"</tt> <br>
+ <tt>select=1</tt> <br>
+ <tt>edit=1</tt> <br>
+ <tt>move=1</tt> <br>
+ <tt>delete=1</tt> <br>
+ <tt>highlite=1</tt> <br>
+ <tt>include=1</tt> <br>
+ <tt>fixed=0</tt> </blockquote>
+ </blockquote>
+ <p><b><a name="RegionFileFormat"></a>Region File Format</b></p>
+ <blockquote>
+ <p><b> Syntax</b></p>
+ <p>Region arguments may be separated with either a comma or
+ space. Optional parentheses may be used a the beginning and
+ end of a description. </p>
+ <blockquote> <tt>circle 100 100 10</tt> <br>
+ <tt>circle(100 100 10)</tt> <br>
+ <tt>circle(100,100,10)</tt> </blockquote>
+ <p><b> Comments</b></p>
+ <p>All lines that begin with <tt>#</tt> are comments and will
+ be ignored.</p>
+ <blockquote> <tt># This is a comment</tt> </blockquote>
+ <p><b> Delimiter</b></p>
+ <p>All lines may be delimited with either a new-line or
+ semi-colon. </p>
+ <blockquote> <tt>circle 100 100 10</tt> <br>
+ <tt>ellipse 200 200 20 40 ; box 300 300 20 40</tt> </blockquote>
+ <p><b> Header</b></p>
+ <p>A DS9 region file may start with the following optional
+ header: </p>
+ <blockquote> <tt># Region file format: DS9 version 4.0</tt> </blockquote>
+ <p><b> Global Properties</b></p>
+ <p>Global properties affect all regions unless a local property
+ is specified. The <tt>global</tt> keyword is first, followed
+ by a list of keyword = value pairs. Multiple global property
+ lines may be used within a region file. </p>
+ <blockquote> <tt>global color=green font="helvetica 10 normal
+ roman" edit=1 move=1 delete=1 highlite=1 include=1 wcs=wcs</tt>
+ </blockquote>
+ <p><b> Local Properties</b></p>
+ <p>Local properties start with a # after a region description
+ and only affect the region it is specified with. </p>
+ <blockquote> <tt>physical;circle(504,513,20) # color=red
+ text={This is a Circle}</tt> </blockquote>
+ <p><b> Coordinate Systems</b></p>
+ <p>For each region, it is important to specify the coordinate
+ system used to interpret the region, i.e., to set the context
+ in which the position and size values are interpreted. For
+ this purpose, the following keywords are recognized: </p>
+ <blockquote> <tt>PHYSICAL
-# context-dependent (see below)</tt> <br>
- <tt>[num]d
+#
-# degrees</tt> <br>
- <tt>[num]r
-# radians</tt> <br>
- <tt>[num]p
-# physical pixels</tt> <br>
- <tt>[num]i
+ pixel coords of original file using LTM/LTV</tt> <br>
+ <tt>IMAGE
-# image pixels</tt> <br>
- <tt>[num]:[num]:[num] # hms
-for 'odd' position arguments</tt> <br>
- <tt>[num]:[num]:[num] # dms
-for 'even' position arguments</tt> <br>
- <tt>[num]h[num]m[num]s # explicit
-hms</tt> <br>
- <tt>[num]d[num]m[num]s # explicit
-dms</tt>
- <p><b>size arguments</b> </p>
- <tt>[num]
+#
-# context-dependent (see below)</tt> <br>
- <tt>[num]"
-# arc sec</tt> <br>
- <tt>[num]'
-# arc min</tt> <br>
- <tt>[num]d
+ pixel coords of current file</tt> <br>
+ <tt>FK4,
+ B1950
-# degrees</tt> <br>
- <tt>[num]r
+#
-# radians</tt> <br>
- <tt>[num]p
-# physical pixels</tt> <br>
- <tt>[num]i
-# image pixels</tt>
- <p></p>
- </blockquote>
- <p>When a "pure number" (i.e. one without a format directive such
-as 'd' for 'degrees') is specified, its interpretation depends on the
-context defined by the 'coordsys' keyword. In general, the rule is: </p>
- <p><i>All pure numbers have implied units corresponding to the
-current coordinate system.</i> </p>
- <p>If no such system is explicitly specified, the default system is
-implicitly assumed to be <tt>PHYSICAL</tt>. In practice this means
-that for <tt>IMAGE</tt> and <tt>PHYSICAL</tt> systems, pure numbers
-are pixels. Otherwise, for all systems other than linear, pure numbers
-are degrees. For <tt>LINEAR</tt> systems, pure numbers are in the
-units of the linear system. This rule covers both positions and sizes.
-The input values to each shape can be specified in several coordinate
-systems including: </p>
- <blockquote> <tt>IMAGE
-
-# pixel coords of current file</tt> <br>
- <br>
- <tt>LINEAR
-
-# linear wcs as defined in file</tt>
- <p><tt>FK4,
-B1950
-
-# sky coordinate systems</tt> <br>
- <tt>FK5, J2000</tt> <br>
- <tt>GALACTIC</tt> <br>
- <tt>ECLIPTIC</tt> <br>
- <tt>ICRS</tt> <br>
- <tt>PHYSICAL
-
-# pixel coords of original file using LTM/LTV</tt> <br>
- <tt>AMPLIFIER
-
-# mosaic coords of original file using ATM/ATV</tt> <br>
- <tt>DETECTOR
-
-# mosaic coords of original file using DTM/DTV</tt><br>
- <br>
- <tt>WCS,WCSA-WCSZ
- # specify which WCS system to be used for <br>
-
- # linear and
-sky coordinate systems<br>
- </tt></p>
- </blockquote>
- <p>If no coordinate system is specified, <tt>PHYSICAL</tt> is
-assumed. <tt>PHYSICAL</tt> or a World Coordinate System such as <tt>J2000</tt>
-is preferred and most general. The coordinate system specifier should
-appear at the beginning of the region description, on a separate line
-(in a file), or followed by a new-line or semicolon; e.g., </p>
- <blockquote> <tt>image; circle 100 100 10</tt> <br>
- <tt>physical; ellipse 200 200 10 20</tt> <br>
- <tt>fk5; point 30 50</tt><br>
- <tt>wcsa; fk4; point 202 47</tt><br>
- <tt>wcsp; linear; point 100 100</tt><br>
- </blockquote>
- <p>The use of celestial input units automatically implies WORLD
-coordinates of the reference image. Thus, if the world coordinate
-system of the reference image is <tt>J2000</tt>, then</p>
- <blockquote> <tt>circle 10:10:0 20:22:0 3'</tt>
- </blockquote>
- <p>is equivalent to: <br>
- </p>
- <blockquote> <tt>j2000; circle 10:10:0 20:22:0 3'</tt>
- </blockquote>
- <p>Note that by using units as described above, you may mix
-coordinate systems within a region specifier; e.g., </p>
- <blockquote> <tt>physical; circle 6500 9320 3'<br>
- </tt></blockquote>
- <p>Note that, for regions which accept a rotation angle such as: </p>
- <blockquote> <tt>ellipse (x, y, r1, r2, angle)<br>
-box(x, y, w, h, angle)</tt>
- <p></p>
- </blockquote>
- <p>the angle is relative to the specified coordinate system. In
-particular, if the region is specified in WCS coordinates, the angle is
-related to the WCS system, not x/y image coordinate axis. For WCS
-systems with no rotation, this obviously is not an issue. However, some
-images do define an implicit rotation (e.g., by using a non-zero CROTA
-value in the WCS parameters) and for these images, the angle will be
-relative to the WCS axes. In such case, a region specification such as:</p>
- <blockquote> <tt>fk4;ellipse(22:59:43.985, +58:45:26.92,320",
-160", 30)</tt>
- </blockquote>
- <p>will not, in general, be the same region specified as:</p>
- <blockquote> <tt>physical;ellipse(465, 578, 40, 20, 30)</tt>
- </blockquote>
- <p>even when positions and sizes match. The angle is relative to
-WCS axes in the first case, and relative to physical x,y axes in the
-second.</p>
- </blockquote>
- <p><b><a name="CompositeRegion"></a>Composite Region</b></p>
- <p>A Composite Region is a region which is a collection of other
-regions, which share common properties. A composite region is composed
-of a center point and a rotation angle, of which all its members are
-rendered in reference to. A composite region is defined by the #
-composite x y angle declaration followed by a number of regions who are
-or'd together. A composite region is manipulated as a single region
-within ds9. A composite region maybe created from the current selection
-of regions by selecting the Create Composite Region menu option.
-Likewise, a composite region can be dissolved by selecting the Dissolve
-Composite Region menu option.</p>
- <p><b> <a name="TemplateRegion"></a>Template Region</b></p>
- <p>A Template Region is a special form of a region which is saved in
-a special wcs coordinate system WCS0. WCS0 indicates that the ra and
-dec values are relative to the current WCS location, not absolute. A
-template region can be loaded at any location into any fits image which
-contains a valid wcs. For example, a user may create a series of
-regions, which represent an instrument template. Then, by selecting the
-Save As Template menu option, a template region saved. The user may now
-load this templated into any other fits image which contains a valid
-WCS. </p>
- <p><b> <a name="ExternalRegionFiles"></a>External Region Files</b></p>
- <p>DS9 can read and write a number of region file formats. Not all
-formats support all the functionality of DS9 regions. Therefore, the
-user may loose some information when writing and then reading back from
-a region file in a format other that DS9. On output, the regions <a
- href="mregion.html#FileFormat">File Format</a> menu or the <a
- href="xpa.html#regions">XPA</a> regions point is used specify the
-output coordinate system and format. On input, the menu or xpa point is
-used only for the <tt>X Y </tt>format. For all other formats, the
-input coordinate system is specified in the regions file itself. </p>
- <blockquote>
- <p><b> <a name="FUNTools"></a><a
- href="http://hea-www.harvard.edu/RD/funtools/regions.html">Funtools</a></b></p>
- <blockquote> <tt>Reading into Funtools from DS9</tt> <tt>TEXT is
-ignored</tt><br>
- <tt>VECTOR is ignored</tt> <br>
- <tt>PROJECTION is ignored</tt><br>
- <tt>PROJECTION3D is ignored</tt><br>
- <tt>RULER is ignored</tt><br>
- <tt>COMPASS is ignored</tt><br>
- <tt> All properties are ignored</tt><br>
- <br>
- <tt>Reading from Funtools into DS9:</tt> <tt>FIELD is ignored</tt><br>
- <tt>PIE is ignored</tt><br>
- </blockquote>
- <a name="Ciao"></a>CIAO
- <blockquote> <tt> All point regions are translated as POINT</tt><br>
- <tt>BOX is translated as ROTBOX</tt><br>
- <tt>LINE is ignored</tt><br>
- <tt>VECTOR is ignored</tt> <br>
- <tt>RULER is ignored</tt><br>
- <tt>COMPASS is ignored</tt><br>
- <tt>TEXT is ignored</tt><br>
- <tt>PROJECTION is ignored</tt><br>
- <tt>PROJECTION3D is ignored</tt><br>
- <tt>ELLIPSE ANNULUS is ignored</tt><br>
- <tt>BOX ANNULUS is ignored</tt><br>
- <tt>PANDA is translated as PIE</tt><br>
- <tt>EPANDA is ignored</tt><br>
- <tt>BPANDA is ignored</tt><br>
- <tt> All properties are ignored</tt><br>
- </blockquote>
- <a name="SAOimage"></a><a
- href="http://tdc-www.harvard.edu/software/saoimage/saoimage.region.html">SAOimage</a>
- <blockquote> <tt> All point regions are translated as </tt><tt>POINT</tt><br>
- <tt>LINE is ignored</tt><br>
- <tt>VECTOR is ignored</tt> <br>
- <tt>TEXT is ignored</tt><br>
- <tt>PROJECTION ignored</tt><br>
- <tt>PROJECTION3D is ignored</tt><br>
- <tt>RULER is ignored</tt><br>
- <tt>COMPASS is ignored</tt><br>
- <tt>PANDA is ignored</tt><br>
- <tt>EPANDA is ignored</tt><br>
- <tt>BPANDA is ignored</tt><br>
- <tt> All properties are ignored</tt><br>
- </blockquote>
- <a name="IRAFPROS"></a>IRAF PROS
- <blockquote> <tt> All point regions are translated as </tt><tt>POINT</tt><br>
- <tt>LINE is ignored</tt><br>
- <tt>VECTOR is ignored</tt> <br>
- <tt>TEXT is ignored</tt><br>
- <tt>RULER is ignored</tt><br>
- <tt>COMPASS is ignored</tt><br>
- <tt>PROJECTION ignored</tt><br>
- <tt>PROJECTION3D is ignored</tt><br>
- <tt>PANDA is ignored</tt><br>
- <tt>EPANDA is ignored</tt><br>
- <tt>BPANDA is ignored</tt><br>
- <tt> All properties are ignored</tt><br>
- </blockquote>
- <a name="FITSREGIONBinaryTable"></a>FITS REGION Binary Table
- <blockquote> <tt> Read Only. DS9 currently can not write in this
-format.</tt><br>
- <tt>POINT is translated into BOX CIRCLE POINT</tt><br>
- <tt>ROTBOX is translated into BOX</tt><br>
- <tt>RECTANGLE is translated into BOX</tt><br>
- <tt>ROTRECTANGLE is translated into a BOX</tt><br>
- <tt>PIE is translated into PANDA</tt><br>
- <tt> The follow regions are not supported</tt>
- <blockquote> <tt>ELLIPTANNULUS</tt><br>
- <tt>SECTOR</tt><br>
- <tt>DIAMOND</tt><br>
- <tt>RHOMBUS</tt><br>
- <tt>ROTDIAMOND</tt><br>
- <tt>ROTRHOMBUS</tt><br>
+ sky coordinate systems</tt> <br>
+ <tt>FK5,
+ J2000
+
+#
+
+
+
+ sky coordinate systems</tt> <br>
+ <tt>GALACTIC
+
+#
+
+
+
+ sky coordinate systems</tt> <br>
+ <tt>ECLIPTIC
+
+#
+
+
+
+ sky coordinate systems</tt> <br>
+ <tt>ICRS
+
+#
+
+
+
+ currently same as J2000</tt> <br>
+ <tt>LINEAR
+
+#
+
+
+
+ linear wcs as defined in file</tt> <br>
+ <tt>AMPLIFIER
+
+#
+
+
+
+ mosaic coords of original file using ATM/ATV</tt> <br>
+ <tt>DETECTOR
+
+#
+
+
+
+ mosaic coords of original file usingDTM/DTV</tt> </blockquote>
+ <p><b> Mosaic Images</b></p>
+ <p>While some coordinate systems are unique across mosaic
+ images, others coordinate systems, such as <tt>image</tt>, or
+ <tt>physical</tt> , are valid on a per segment basis. In this
+ case, use <tt>tile</tt> to specify which header to use in all
+ coordinate conversions. The default is the first header, or <tt>tile
+
+
+ 1</tt>. </p>
+ <tt>Example: tile 2;fk5;point(100,100)</tt>
+ <p><b> Multiple WCS</b></p>
+ <p>If an image has multiple wcs's defined, use <tt>wcs#</tt> to
+ specify which wcs to use for all wcs references. Valid values
+ are <tt>wcs, wcsa, wcsb, wcsc... wcsz.</tt><br>
+ <tt>Example: wcsa;linear;point(100,100) # point=diamond</tt></p>
+ <p><b> Specifying Positions and Sizes</b></p>
+ <p>The arguments to region shapes can be floats or integers
+ describing positions and sizes. They can be specified as pure
+ numbers or using explicit formatting directives: </p>
+ <blockquote>
+ <p><b>position arguments</b> </p>
+ <tt>[num]
+
+#
+
+
+
+ context-dependent (see below)</tt> <br>
+ <tt>[num]d
+
+#
+
+
+
+ degrees</tt> <br>
+ <tt>[num]r
+
+#
+
+
+
+ radians</tt> <br>
+ <tt>[num]p
+
+#
+
+
+
+ physical pixels</tt> <br>
+ <tt>[num]i
+
+#
+
+
+
+ image pixels</tt> <br>
+ <tt>[num]:[num]:[num] #
+ hms for 'odd' position arguments</tt> <br>
+ <tt>[num]:[num]:[num] #
+ dms for 'even' position arguments</tt> <br>
+ <tt>[num]h[num]m[num]s #
+ explicit hms</tt> <br>
+ <tt>[num]d[num]m[num]s #
+ explicit dms</tt>
+ <p><b>size arguments</b> </p>
+ <tt>[num]
+
+#
+
+
+
+ context-dependent (see below)</tt> <br>
+ <tt>[num]"
+
+#
+
+
+
+ arc sec</tt> <br>
+ <tt>[num]'
+
+#
+
+
+
+ arc min</tt> <br>
+ <tt>[num]d
+
+#
+
+
+
+ degrees</tt> <br>
+ <tt>[num]r
+
+#
+
+
+
+ radians</tt> <br>
+ <tt>[num]p
+
+#
+
+
+
+ physical pixels</tt> <br>
+ <tt>[num]i
+
+#
+
+
+
+ image pixels</tt>
+ <p></p>
+ </blockquote>
+ <p>When a "pure number" (i.e. one without a format directive
+ such as 'd' for 'degrees') is specified, its interpretation
+ depends on the context defined by the 'coordsys' keyword. In
+ general, the rule is: </p>
+ <p><i>All pure numbers have implied units corresponding to the
+ current coordinate system.</i> </p>
+ <p>If no such system is explicitly specified, the default system
+ is implicitly assumed to be <tt>PHYSICAL</tt>. In practice
+ this means that for <tt>IMAGE</tt> and <tt>PHYSICAL</tt>
+ systems, pure numbers are pixels. Otherwise, for all systems
+ other than linear, pure numbers are degrees. For <tt>LINEAR</tt>
+ systems, pure numbers are in the units of the linear system.
+ This rule covers both positions and sizes. The input values to
+ each shape can be specified in several coordinate systems
+ including: </p>
+ <blockquote> <tt>IMAGE
+
+#
+
+
+
+ pixel coords of current file</tt> <br>
+ <br>
+ <tt>LINEAR
+
+#
+
+
+
+ linear wcs as defined in file</tt>
+ <p><tt>FK4,
+ B1950
+
+#
+
+
+
+ sky coordinate systems</tt> <br>
+ <tt>FK5, J2000</tt> <br>
+ <tt>GALACTIC</tt> <br>
+ <tt>ECLIPTIC</tt> <br>
+ <tt>ICRS</tt> <br>
+ <tt>PHYSICAL
+
+#
+
+
+
+ pixel coords of original file using LTM/LTV</tt> <br>
+ <tt>AMPLIFIER
+
+#
+
+
+
+ mosaic coords of original file using ATM/ATV</tt> <br>
+ <tt>DETECTOR
+
+#
+
+
+
+ mosaic coords of original file using DTM/DTV</tt><br>
+ <br>
+ <tt>WCS,WCSA-WCSZ
+ # specify which WCS system to be
+ used for <br>
+
+ #
+ linear and sky coordinate systems<br>
+ </tt></p>
+ </blockquote>
+ <p>If no coordinate system is specified, <tt>PHYSICAL</tt> is
+ assumed. <tt>PHYSICAL</tt> or a World Coordinate System such
+ as <tt>J2000</tt> is preferred and most general. The
+ coordinate system specifier should appear at the beginning of
+ the region description, on a separate line (in a file), or
+ followed by a new-line or semicolon; e.g., </p>
+ <blockquote> <tt>image; circle 100 100 10</tt> <br>
+ <tt>physical; ellipse 200 200 10 20</tt> <br>
+ <tt>fk5; point 30 50</tt><br>
+ <tt>wcsa; fk4; point 202 47</tt><br>
+ <tt>wcsp; linear; point 100 100</tt><br>
+ </blockquote>
+ <p>The use of celestial input units automatically implies WORLD
+ coordinates of the reference image. Thus, if the world
+ coordinate system of the reference image is <tt>J2000</tt>,
+ then</p>
+ <blockquote> <tt>circle 10:10:0 20:22:0 3'</tt> </blockquote>
+ <p>is equivalent to: <br>
+ </p>
+ <blockquote> <tt>j2000; circle 10:10:0 20:22:0 3'</tt> </blockquote>
+ <p>Note that by using units as described above, you may mix
+ coordinate systems within a region specifier; e.g., </p>
+ <blockquote> <tt>physical; circle 6500 9320 3'<br>
+ </tt></blockquote>
+ <p>Note that, for regions which accept a rotation angle such as:
+ </p>
+ <blockquote> <tt>ellipse (x, y, r1, r2, angle)<br>
+ box(x, y, w, h, angle)</tt>
+ <p></p>
+ </blockquote>
+ <p>the angle is relative to the specified coordinate system. In
+ particular, if the region is specified in WCS coordinates, the
+ angle is related to the WCS system, not x/y image coordinate
+ axis. For WCS systems with no rotation, this obviously is not
+ an issue. However, some images do define an implicit rotation
+ (e.g., by using a non-zero CROTA value in the WCS parameters)
+ and for these images, the angle will be relative to the WCS
+ axes. In such case, a region specification such as:</p>
+ <blockquote> <tt>fk4;ellipse(22:59:43.985, +58:45:26.92,320",
+ 160", 30)</tt> </blockquote>
+ <p>will not, in general, be the same region specified as:</p>
+ <blockquote> <tt>physical;ellipse(465, 578, 40, 20, 30)</tt> </blockquote>
+ <p>even when positions and sizes match. The angle is relative to
+ WCS axes in the first case, and relative to physical x,y axes
+ in the second.</p>
+ </blockquote>
+ <p><b><a name="CompositeRegion"></a>Composite Region</b></p>
+ <p>A Composite Region is a region which is a collection of other
+ regions, which share common properties. A composite region is
+ composed of a center point and a rotation angle, of which all
+ its members are rendered in reference to. A composite region is
+ defined by the # composite x y angle declaration followed by a
+ number of regions who are or'd together. A composite region is
+ manipulated as a single region within ds9. A composite region
+ maybe created from the current selection of regions by selecting
+ the Create Composite Region menu option. Likewise, a composite
+ region can be dissolved by selecting the Dissolve Composite
+ Region menu option.</p>
+ <p><b> <a name="TemplateRegion"></a>Template Region</b></p>
+ <p>A Template Region is a special form of a region which is saved
+ in a special wcs coordinate system WCS0. WCS0 indicates that the
+ ra and dec values are relative to the current WCS location, not
+ absolute. A template region can be loaded at any location into
+ any fits image which contains a valid wcs. For example, a user
+ may create a series of regions, which represent an instrument
+ template. Then, by selecting the Save As Template menu option, a
+ template region saved. The user may now load this templated into
+ any other fits image which contains a valid WCS. </p>
+ <p><b> <a name="ExternalRegionFiles"></a>External Region Files</b></p>
+ <p>DS9 can read and write a number of region file formats. Not all
+ formats support all the functionality of DS9 regions. Therefore,
+ the user may loose some information when writing and then
+ reading back from a region file in a format other that DS9. On
+ output, the regions <a href="mregion.html#FileFormat">File
+ Format</a> menu or the <a href="xpa.html#regions">XPA</a>
+ regions point is used specify the output coordinate system and
+ format. On input, the menu or xpa point is used only for the <tt>X
+ Y </tt>format. For all other formats, the input coordinate
+ system is specified in the regions file itself. </p>
+ <blockquote>
+ <p><b> <a name="FUNTools"></a><a
+ href="http://hea-www.harvard.edu/RD/funtools/regions.html">Funtools</a></b><tt></tt><br>
+ </p>
+ <blockquote> <tt>TEXT is ignored<br>
+ </tt> <tt>VECTOR is ignored</tt> <br>
+ <tt>PROJECTION is ignored</tt><tt></tt><br>
+ <tt>RULER is ignored</tt><br>
+ <tt>COMPASS is ignored<br>
+ FIELD is ignored<br>
+ PIE is ignored<br>
+ </tt> <tt> All properties are ignored</tt><br>
+ </blockquote>
+ <a name="Ciao"></a>CIAO
+ <blockquote> <tt> All point regions are translated as POINT</tt><br>
+ <tt>BOX is translated as ROTBOX<br>
+ </tt> <tt>LINE is ignored</tt><br>
+ <tt>VECTOR is ignored</tt> <br>
+ <tt>RULER is ignored</tt><br>
+ <tt>COMPASS is ignored</tt><br>
+ <tt>TEXT is ignored</tt><tt></tt><br>
+ <tt>PROJECTION is ignored</tt><tt></tt><br>
+ <tt>ELLIPSE ANNULUS is ignored</tt><br>
+ <tt>BOX ANNULUS is ignored</tt><br>
+ <tt>PANDA is translated as PIE</tt><br>
+ <tt>EPANDA is ignored</tt><br>
+ <tt>BPANDA is ignored</tt><br>
+ <tt> All properties are ignored</tt><br>
+ </blockquote>
+ <a name="SAOimage"></a><a
+ href="http://tdc-www.harvard.edu/software/saoimage/saoimage.region.html">SAOimage</a>
+ <blockquote> <tt> All point regions are translated as </tt><tt>POINT</tt><tt></tt><br>
+ <tt>LINE is ignored</tt><br>
+ <tt>VECTOR is ignored</tt> <br>
+ <tt>TEXT is ignored</tt><br>
+ <tt>PROJECTION ignored</tt><br>
+ <tt>PROJECTION3D is ignored</tt><br>
+ <tt>RULER is ignored</tt><br>
+ <tt>COMPASS is ignored</tt><br>
+ <tt>PANDA is ignored</tt><br>
+ <tt>EPANDA is ignored</tt><br>
+ <tt>BPANDA is ignored</tt><br>
+ <tt> All properties are ignored</tt><br>
+ </blockquote>
+ <a name="IRAFPROS"></a>IRAF PROS
+ <blockquote> <tt> All point regions are translated as </tt><tt>POINT</tt><tt></tt><br>
+ <tt>LINE is ignored</tt><br>
+ <tt>VECTOR is ignored</tt> <br>
+ <tt>TEXT is ignored</tt><br>
+ <tt>RULER is ignored</tt><br>
+ <tt>COMPASS is ignored</tt><br>
+ <tt>PROJECTION ignored</tt><br>
+ <tt>PROJECTION3D is ignored</tt><br>
+ <tt>PANDA is ignored</tt><br>
+ <tt>EPANDA is ignored</tt><br>
+ <tt>BPANDA is ignored</tt><br>
+ <tt> All properties are ignored</tt><br>
+ </blockquote>
+ <a name="FITSREGIONBinaryTable"></a>FITS REGION Binary Table
+ <blockquote> <tt> Read Only. DS9 currently can not write in
+ this format.</tt><br>
+ <tt>POINT is translated into BOX CIRCLE POINT</tt><br>
+ <tt>ROTBOX is translated into BOX</tt><br>
+ <tt>RECTANGLE is translated into BOX</tt><br>
+ <tt>ROTRECTANGLE is translated into a BOX</tt><br>
+ <tt>PIE is translated into PANDA</tt><br>
+ <tt> The follow regions are not supported</tt>
+ <blockquote> <tt>ELLIPTANNULUS</tt><br>
+ <tt>SECTOR</tt><br>
+ <tt>DIAMOND</tt><br>
+ <tt>RHOMBUS</tt><br>
+ <tt>ROTDIAMOND</tt><br>
+ <tt>ROTRHOMBUS</tt><br>
+ </blockquote>
+ </blockquote>
+ <a name="XY"></a>X Y <br>
+ <p>This format consists of a number of coordinate pairs, one per
+ line. The coordinate format for both input and output is
+ specified via the Save Regions Parameters menu or <a
+ href="xpa.html#regions">XPA</a> regions point. The first two
+ coordinates are read, the rest of the line is ignored. The
+ comment character '#' may be used at the beginning of line and
+ the line is ignored. This format is very useful for reading in
+ coordinates from other external analysis programs, such as
+ IRAF. </p>
+ <blockquote> <tt>Example:</tt> <tt># this is a comment</tt> <br>
+ <tt>physical # this overrides the specified coordinate system</tt><br>
+ <tt>300 300</tt> <br>
+ <tt>400 400 # this is a comment</tt> <br>
+ </blockquote>
</blockquote>
</blockquote>
- <a name="XY"></a>X Y <br>
- <p>This format consists of a number of coordinate pairs, one per
-line. The coordinate format for both input and output is specified via
-the Save Regions Parameters menu or <a href="xpa.html#regions">XPA</a>
-regions point. The first two coordinates are read, the rest of the line
-is ignored. The comment character '#' may be used at the beginning of
-line and the line is ignored. This format is very useful for reading in
-coordinates from other external analysis programs, such as IRAF. </p>
- <blockquote> <tt>Example:</tt> <tt># this is a comment</tt> <br>
- <tt>physical # this overrides the specified coordinate system</tt><br>
- <tt>300 300</tt> <br>
- <tt>400 400 # this is a comment</tt> <br>
- </blockquote>
- </blockquote>
-</blockquote>
-</body>
+ </body>
</html>
diff --git a/doc/ref/samp.html b/doc/ref/samp.html
index 006edc7..97dbfa7 100644
--- a/doc/ref/samp.html
+++ b/doc/ref/samp.html
@@ -8,7 +8,7 @@
<title>SAMP</title>
</head>
<body alink="#ff0000" link="#0000ff" vlink="#551a8b">
- <h3><img alt="" src="../sun.gif" align="middle" height="98"
+ <h3><img alt="" src="../sun.gif" height="98" align="middle"
width="100"> SAMP</h3>
<blockquote>
<p>SAMP is a messaging protocol that enables astronomy software
@@ -74,6 +74,7 @@
<a href="#dsseso">dsseso</a><br>
<a href="#dssstsci">dssstsci</a><br>
<a href="#exit">exit</a><br>
+ <a href="#export">export</a><br>
<a href="#file">file</a><br>
<a href="#first">first</a><br>
<a href="#fits">fits</a><br>
@@ -83,7 +84,9 @@
<a href="#height">height</a><br>
<a href="#iconify">iconify</a><br>
<a href="#iis">iis</a><br>
+ <a href="#image">image</a><br>
<a href="#imexam">imexam</a><br>
+ <a href="#image">import</a><br>
<a href="#lock">lock</a><br>
<a href="#lower">lower</a><br>
<a href="#magnifier">magnifier</a><br>
@@ -928,7 +931,26 @@
<br>
Example:<br>
ds9.set(string cmd)<br>
- exit </tt>
+ exit<br>
+ </tt>
+ <p><b> <a name="export"></a>export<br>
+ </b></p>
+ <p>Export loaded image data of current frame in specified image
+ format, using current colormap and contrast/bias settings. <tt>fits,
+
+ gif, tiff (tif), jpeg (jpg), png, ppm</tt> formats supported.
+ If no format specified, the file name extension is used to
+ determine the output format. Optional parameters: jpeg quality
+ (1-100) and tiff compression method.</p>
+ <tt> Syntax: <br>
+ export </tt><tt>[fits|gif|tiff|jpeg|png|ppm] </tt><tt><filename></tt><tt><br>
+ </tt><tt>export <filename></tt><tt>.jpeg [1-100]<br>
+ </tt><tt>export <filename></tt><tt>.tiff
+ [none|jpeg|packbits|deflate]</tt><br>
+ <tt> <br>
+ Example: <br>
+ ds9.set (string cmd)<br>
+ export foo.jpg 75</tt><br>
<p><b><a name="file"></a>file</b></p>
<p>Load a FITS image, FITS Mosaic image(s), or array from a file
into the current frame, or return the current file name(s)
@@ -1430,6 +1452,18 @@
iis filename foo.fits<br>
iis filename bar.fits 4<br>
</tt>
+ <p><b> <a name="image"></a>image<br>
+ import<br>
+ </b></p>
+ <p>Load image file into the current frame. Accepts <tt>gif,
+ tiff, jpeg, png, ppm</tt> formats.<br>
+ </p>
+ <tt> Syntax: <br>
+ image <filename></tt><tt><br>
+ <br>
+ Example: <br>
+ ds9.set (string cmd)<br>
+ image foo.jpg</tt><br>
<p><b><a name="imexam"></a>imexam</b></p>
<p>Interactive examine function. A blinking cursor will indicate
to the user to click on a point on an image. The specified
@@ -2233,41 +2267,42 @@
rotate close<br>
</tt>
<p><b> <a name="saveimage"></a>saveimage</b></p>
- <p>Save visible image(s) as a raster. If image is a cube, the mpeg
- option will cycle thru each slice creating a mpeg movie.</p>
- <tt> Syntax: <br>
- </tt><tt>saveimage fits <filename><br>
- saveimage jpeg [1-100] <filename><br>
- saveimage tiff [none|jpeg|packbits|deflate] <filename><br>
- saveimage png <filename><br>
- saveimage ppm <filename><br>
- saveimage mpeg [1-31] <filename></tt><tt><br>
- <br>
- Example: <br>
- ds9.set(string cmd)<br>
- saveimage fits ds9.fits<br>
- saveimage jpeg 75 ds9.jpg<br>
- </tt>
- <p><b><a name="savefits"></a>savefits</b></p>
- <p>Save current frame data as FITS. This differs from SAVEIMAGE in
- that the entire image of the current frame is saved as a FITS,
- without graphics.</p>
- <tt> Syntax:<br>
- savefits [<filename>]<br>
+ <tt></tt>
+ <p>Create a snap shot of the current DS9 window and save in
+ specified image format. <tt>fits, gif, tiff (tif), jpeg (jpg),
+ pnm, ppm</tt> formats supported. If no format specified, the
+ file name extension is used to determine the output format.
+ Optional parameters: jpeg quality (1-100) and tiff compression
+ method. </p>
+ <tt> Syntax: <br>
+ saveimage </tt><tt>[fits|gif|tiff|jpeg|png|ppm] </tt><tt><filename><br>
+ saveimage <filename>.jpeg [1-100]<br>
+ saveimage <filename>.tiff [none|jpeg|packbits|deflate]<br>
<br>
Example:<br>
- ds9.set(string cmd)<br>
- savefits ds9.fits<br>
- </tt>
+ ds9.set(string cmd) <br>
+ saveimage ds9.fits<br>
+ saveimage ds9.jpg 75</tt><tt><br>
+ </tt><tt> </tt><tt> </tt>
<p><b><a name="savempeg"></a>savempeg</b></p>
- <p>Save all active frames as a mpeg movie. </p>
+ <p>Create mpeg1 movie from snap shots of the DS9 window. A <tt>slice</tt>
+ movie cycles though all slices of a cube. A <tt>frame</tt>
+ movie cycles through all active frames. A <tt>3d</tt> movie
+ cycles through specified viewing angles. The default is <tt>frame</tt>.
+ Optional parameters for <tt>3d</tt>: number of frames, azimuth
+ from/to, elevation from/to, slice from/to, oscillate/repeat
+ times.</p>
<tt> Syntax:<br>
- savempeg [<filename>]<br>
- <br>
+ savempeg </tt><tt>[slice|frame|3d] </tt><tt><filename><br>
+ </tt><tt>savempeg 3d <filename>
+ [number|azfrom|azto|elfrom|elto|slfrom|slto|oscillate|repeat
+ <#>]</tt><br>
+ <tt> <br>
Example:<br>
ds9.set(string cmd)<br>
- savempeg ds9.mpg<br>
- </tt>
+ savempeg slice ds9.mpg<br>
+ </tt><tt>savempeg 3d ds9.mpg number 10 azfrom -60 azto 60
+ oscillate 1</tt><br>
<p><b> <a name="scale"></a>scale</b></p>
<p>Controls the limits and color scale distribution. </p>
<tt> Syntax: <br>
diff --git a/doc/ref/xpa.html b/doc/ref/xpa.html
index 3bfb34b..6a838f6 100644
--- a/doc/ref/xpa.html
+++ b/doc/ref/xpa.html
@@ -8,7 +8,7 @@
<title>XPA Access Points</title>
</head>
<body alink="#ff0000" link="#0000ff" vlink="#551a8b">
- <h3><img alt="" src="../sun.gif" align="middle" height="98"
+ <h3><img alt="" src="../sun.gif" height="98" align="middle"
width="100"> XPA Access Points</h3>
<blockquote>
<p>The <a href="http://hea-www.harvard.edu/RD/xpa/index.html">XPA
@@ -44,6 +44,7 @@
<a href="#dsseso">dsseso</a><br>
<a href="#dssstsci">dssstsci</a><br>
<a href="#exit">exit</a><br>
+ <a href="#export">export</a><br>
<a href="#file">file</a><br>
<a href="#first">first</a><br>
<a href="#fits">fits</a><br>
@@ -53,7 +54,9 @@
<a href="#height">height</a><br>
<a href="#iconify">iconify</a><br>
<a href="#iis">iis</a><br>
+ <a href="#image">image</a><br>
<a href="#imexam">imexam</a><br>
+ <a href="#image">import</a><br>
<a href="#lock">lock</a><br>
<a href="#lower">lower</a><br>
<a href="#magnifier">magnifier</a><br>
@@ -79,7 +82,6 @@
<a href="#rgb">rgb</a><br>
<a href="#rotate">rotate</a><br>
<a href="#saveimage">saveimage</a><br>
- <a href="#savefits">savefits</a><br>
<a href="#savempeg">savempeg</a><br>
<a href="xpa.html#scale">scale</a><br>
<a href="#shm">shm</a><br>
@@ -661,6 +663,11 @@
+
+
+
+
+
<br>
[match <coordsys>]<br>
[lock <coordsys>|none]<br>
@@ -873,7 +880,26 @@
quit<br>
<br>
Example: <br>
- $xpaset -p ds9 exit </tt>
+ $xpaset -p ds9 exit<br>
+ </tt>
+ <p><b> <a name="export"></a>export<br>
+ </b></p>
+ <p>Export loaded image data of current frame in specified image
+ format, using current colormap and contrast/bias settings. <tt>fits,
+
+ gif, tiff (tif), jpeg (jpg), png, ppm</tt> formats supported.
+ If no format specified, the file name extension is used to
+ determine the output format. Optional parameters: jpeg quality
+ (1-100) and tiff compression method.</p>
+ <tt> Syntax: <br>
+ %xpaset -p ds9 export </tt><tt>[fits|gif|tiff|jpeg|png|ppm] </tt><tt><filename></tt><tt><br>
+ </tt><tt>%xpaset -p ds9 export <filename></tt><tt>.jpeg
+ [1-100]<br>
+ </tt><tt>%xpaset -p ds9 export <filename></tt><tt>.tiff
+ [none|jpeg|packbits|deflate]</tt><br>
+ <tt> <br>
+ Example: <br>
+ $xpaset -p ds9 export foo.jpg 75</tt><br>
<p><b> <a name="file"></a>file</b></p>
<p>Load a FITS image, FITS Mosaic image(s), or array from a file
into the current frame, or return the current file name(s)
@@ -1360,6 +1386,17 @@
$xpaset -p ds9 iis filename foo.fits<br>
$xpaset -p ds9 iis filename bar.fits 4<br>
</tt>
+ <p><b> <a name="image"></a>image<br>
+ import<br>
+ </b></p>
+ <p>Load image file into the current frame. Accepts <tt>gif,
+ tiff, jpeg, png, ppm</tt> formats.<br>
+ </p>
+ <tt> Syntax: <br>
+ image <filename></tt><tt><br>
+ <br>
+ Example: <br>
+ $xpaset -p ds9 image foo.jpg</tt><br>
<p><b> <a name="imexam"></a>imexam</b></p>
<p>Interactive examine function. A blinking cursor will indicate
to the user to click on a point on an image. The specified
@@ -2139,38 +2176,40 @@
$xpaset -p ds9 rotate close<br>
</tt>
<p><b> <a name="saveimage"></a>saveimage</b></p>
- <p>Save visible image(s) as a raster. If image is a cube, the mpeg
- option will cycle thru each slice creating a mpeg movie.</p>
- <tt> Syntax:<br>
- </tt><tt>saveimage fits <filename><br>
- saveimage jpeg [1-100] <filename><br>
- saveimage tiff [none|jpeg|packbits|deflate] <filename><br>
- saveimage png <filename><br>
- saveimage ppm <filename><br>
- saveimage mpeg [1-31] <filename></tt><tt><br>
+ <tt></tt>
+ <p>Create a snap shot of the current DS9 window and save in
+ specified image format. <tt>fits, gif, tiff (tif), jpeg (jpg),
+ pnm, ppm</tt> formats supported. If no format specified, the
+ file name extension is used to determine the output format.
+ Optional parameters: jpeg quality (1-100) and tiff compression
+ method. </p>
+ <tt> Syntax: <br>
+ saveimage </tt><tt>[fits|gif|tiff|jpeg|png|ppm] </tt><tt><filename><br>
+ saveimage <filename>.jpeg [1-100]<br>
+ saveimage <filename>.tiff [none|jpeg|packbits|deflate]<br>
<br>
Example: <br>
- </tt><tt>$xpaset -p ds9 saveimage fits ds9.fits<br>
- </tt><tt>$xpaset -p ds9 saveimage jpeg 75 ds9.jpg<br>
- </tt>
- <p><b> <a name="savefits"></a>savefits</b></p>
- <p>Save current frame data as FITS. This differs from SAVEIMAGE in
- that the entire image of the current frame is saved as a FITS,
- without graphics.</p>
- <tt> Syntax:<br>
- savefits [<filename>]<br>
- <br>
- Example:<br>
- $xpaset -p ds9 savefits ds9.fits<br>
- </tt>
+ $xpaset -p ds9 saveimage ds9.fits<br>
+ $xpaset -p ds9 saveimage ds9.jpg 75</tt><tt><br>
+ </tt><tt> </tt>
<p><b> <a name="savempeg"></a>savempeg</b></p>
- <p>Save all active frames as a mpeg movie. </p>
+ <p>Create mpeg1 movie from snap shots of the DS9 window. A <tt>slice</tt>
+ movie cycles though all slices of a cube. A <tt>frame</tt>
+ movie cycles through all active frames. A <tt>3d</tt> movie
+ cycles through specified viewing angles. The default is <tt>frame</tt>.
+ Optional parameters for <tt>3d</tt>: number of frames, azimuth
+ from/to, elevation from/to, slice from/to, oscillate/repeat
+ times.</p>
<tt> Syntax:<br>
- savempeg [<filename>]<br>
- <br>
+ savempeg </tt><tt>[slice|frame|3d] </tt><tt><filename><br>
+ </tt><tt>savempeg 3d <filename>
+ [number|azfrom|azto|elfrom|elto|slfrom|slto|oscillate|repeat
+ <#>]</tt><br>
+ <tt> <br>
Example:<br>
- $xpaset -p ds9 savempeg ds9.mpg<br>
- </tt>
+ $xpaset -p ds9 savempeg slice ds9.mpg<br>
+ </tt><tt>$xpaset -p ds9 savempeg 3d ds9.mpg number 10 azfrom -60
+ azto 60 oscillate 1</tt><br>
<p><b> <a name="scale"></a>scale</b></p>
<p>Controls the limits and color scale distribution. </p>
<tt> Syntax: <br>
diff --git a/doc/release/r7.0.html b/doc/release/r7.0.html
index c624dde..91f405e 100644
--- a/doc/release/r7.0.html
+++ b/doc/release/r7.0.html
@@ -138,6 +138,39 @@ SAOImage DS9 Version 7 Release Notes</h3>
<li><tt>02.29.2012 HEADER: add save header command.</tt></li>
<li><tt>03.01.2012 XPA: updated to version 2.1.14.</tt></li>
<li><tt>03.01.2012 MINMAX: AUTOSCAN set to SAMPLE if width*height*depth > 1e8.</tt></li>
+ <li><tt>03.12.2012 IMGSVR: fixed a problem with clearing params if no image was loaded previously.</tt></li>
+ <li><tt>03.22.2012 REGION: add ellipse3d, box3d, polygon3d, point3d regions.</tt></li>
+ <li><tt>03.23.2012 IMGSVR: fixed a problem new frame option and rgb.</tt></li>
+ <li><tt>03.23.2012 BIN: check for valid col names for -bin col command.</tt></li>
+ <li><tt>03.28.2012 REGIONS: add Analysis support per region.</tt></li>
+ <li><tt>03.28.2012 REGIONS: add Plot3d support for Circle,Ellipse,Box,Polygon,Point.</tt></li>
+ <li><tt>03.28.2012 REGIONS: add Plot2d support for Projection,Line,Vector.</tt></li>
+ <li><tt>03.28.2012 REGIONS: Circle3d now converted to Circle.</tt></li>
+ <li><tt>03.28.2012 REGIONS: Plot3d saves native coordinate values.</tt></li>
+ <li><tt>03.28.2012 SCALE: simplified scale dialog controls to allow user values.</tt></li>
+ <li><tt>03.29.2012 WCS: fixed a problem with numaxes > 3 images and editing WCS params.</tt></li>
+ <li><tt>04.09.2012 WCS: second attempt to handle non-equatorial wcs. try to build a legal header from the wcssubs struct to feed to ast.</tt></li>
+ <li><tt>04.10.2012 SCALE: fixed an issue with autocut, ll != hh.</tt></li>
+ <li><tt>04.10.2012 SKYVIEW: add WISE/COBE/WMAP to skyview survey menu.</tt></li>
+ <li><tt>04.10.2012 WCS: if CD matrix is all zero, use cdelt/pc matrix.</tt></li>
+ <li><tt>04.11.2012 SMOOTH: fixed a problem with images with BSCALE/BZERO.</tt></li>
+ <li><tt>04.11.2012 CATALOG: fixed a problem with d:m:s formated DEC which started with a '+'</tt></li>
+ <li><tt>04.12.2012 CATALOG: fixed a problem with d:m:s to degree conversion. Try to maintain higher precision.</tt></li>
+ <li><tt>04.12.2012 CATALOG: add IAU location code to dialog.</tt></li>
+ <li><tt>04.12.2012 REGIONS: raise any plot windows associated with regions when double clicked.</tt></li>
+ <li><tt>04.13.2012 COLORMAP: add user contributed cmaps.</tt></li>
+ <li><tt>04.18.2012 GUI: fixed a problem with long WCSNAME values.</tt></li>
+ <li><tt>04.20.2012 FITSY: added support for GZIP compresss parameter ZQUANTIZ.</tt></li>
+ <li><tt>04.23.2012 PS: fixed a bug with definiton of 32 bit integers on 64 bit OS.</tt></li>
+ <li><tt>04.23.2012 PREFS: add Text Dialog Font preferences menu.</tt></li>
+ <li><tt>04.23.2012 LOCK: fixed a problem with lock frame and mouse wheel events.</tt></li>
+ <li><tt>04.24.2012 SKYBOT: Look for EXPTIME and add 1/2 to DATE-OBS to get middle of observation.</tt></li>
+ <li><tt>04.24.2012 LINUX64: add --hash-style=both to support old and new GNU API for hash libs.</tt></li>
+ <li><tt>04.26.2012 IMPORT: add support for importing from other image formats.</tt></li>
+ <li><tt>04.26.2012 EXPORT: add support for exporting to other image formats.</tt></li>
+ <li><tt>04.30.2012 WCS: fixed a problem with TAN-SIP and wcs append/replace.</tt></li>
+ <li><tt>05.01.2012 TCL: check to see if packages msgcat and http have already been found before sourcing during startup.</tt></li>
+ <li><tt>05.03.2012 MPEG: fixed a problem with the bottom of an image cut off.</tt></li>
<li><tt><b>xx.xx.2012 RELEASE version 7.0</b></tt></li>
</ol>
</ol>
diff --git a/ds9/Makefile b/ds9/Makefile
index c090207..a2c7aa9 100644
--- a/ds9/Makefile
+++ b/ds9/Makefile
@@ -14,6 +14,7 @@ FFILES = $(ZDIR)/$(TCLVER) \
$(ZDIR)/src \
$(ZDIR)/msgs \
$(ZDIR)/doc \
+ $(ZDIR)/cmaps \
$(ZDIR)/template
ifdef FILTERCOMPILER
@@ -323,6 +324,10 @@ $(ZDIR)/doc : zipdir ../doc/* ../doc/ref/* ../doc/user/* ../doc/release/*
cd ..; find doc -name "*.gif" | cpio -pdmuv ds9/$(ZDIR)
cd ..; find doc -name "*.png" | cpio -pdmuv ds9/$(ZDIR)
+$(ZDIR)/cmaps : zipdir ../cmaps/*
+ $(RM) -r $@
+ cp -r ../cmaps $(ZDIR)/.
+
$(ZDIR)/template : zipdir ../template/*
$(RM) -r $@
cd ..; find template -name "*.tpl" | cpio -pdmuv ds9/$(ZDIR)
diff --git a/ds9/macosx/SAOImage DS9.app/Contents/Info.plist b/ds9/macosx/SAOImage DS9.app/Contents/Info.plist
index fc11648..c486020 100644
--- a/ds9/macosx/SAOImage DS9.app/Contents/Info.plist
+++ b/ds9/macosx/SAOImage DS9.app/Contents/Info.plist
@@ -53,7 +53,7 @@
<key>CFBundleSignature</key>
<string>DS9 </string>
<key>CFBundleVersion</key>
- <string>7.0 beta 18</string>
+ <string>7.0 beta 19</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSMinimumSystemVersion</key>
diff --git a/ds9/macosx/SAOImage DS9.app/Contents/Resources/English.lproj/InfoPlist.strings b/ds9/macosx/SAOImage DS9.app/Contents/Resources/English.lproj/InfoPlist.strings
index c835785..d49614b 100644
Binary files a/ds9/macosx/SAOImage DS9.app/Contents/Resources/English.lproj/InfoPlist.strings and b/ds9/macosx/SAOImage DS9.app/Contents/Resources/English.lproj/InfoPlist.strings differ
diff --git a/ds9/win/ds9.rc b/ds9/win/ds9.rc
index 2d10eca..36224b3 100644
--- a/ds9/win/ds9.rc
+++ b/ds9/win/ds9.rc
@@ -1,6 +1,6 @@
#include <windows.h>
-#define VV "7.0 beta 18"
+#define VV "7.0 beta 19"
VS_VERSION_INFO VERSIONINFO
FILEVERSION 7,0,0,0
diff --git a/make.linux64 b/make.linux64
index f63f6f7..c6e80f5 100644
--- a/make.linux64
+++ b/make.linux64
@@ -6,7 +6,7 @@ X11LIB = /usr/X11R6/lib64
XX = -O2
YY = -g -fno-inline
-ZZ = -m64
+ZZ = -m64 -Wl,--hash-style=both
AA = -fPIC -DHAVE_SYS_UN_H -DHAVE_SYS_SHM_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D__M64
diff --git a/make.pkgs b/make.pkgs
index 6117190..27ac5ad 100644
--- a/make.pkgs
+++ b/make.pkgs
@@ -1,6 +1,6 @@
#--------------------------basic
-DS9VERSION= 7.0b18
+DS9VERSION= 7.0b19
XPAVERSION= 2.1.14
#--------------------------version
diff --git a/make.windows b/make.windows
index 99241b4..e20aad7 100644
--- a/make.windows
+++ b/make.windows
@@ -13,11 +13,11 @@ AA = -D__WIN32__ -D_WIN32 -DHAVE_SYS_SHM_H -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_
OPTS = ${YY} ${ZZ}
NOPTS = ${YY} ${ZZ}
-CXX = g++
+CXX = g++-3
CXXOPT = ${OPTS} ${AA}
CXXNOPT = ${NOPTS} ${AA}
-CC = gcc
+CC = gcc-3
CCOPT = ${OPTS} ${AA}
CCNOPT = ${NOPTS} ${AA}
diff --git a/msgs/da.msg b/msgs/da.msg
index 2b9cceb..205647d 100644
--- a/msgs/da.msg
+++ b/msgs/da.msg
@@ -16,8 +16,8 @@
::msgcat::mcset da {An error has occurred during backup}
::msgcat::mcset da {An error has occurred during restore}
::msgcat::mcset da {An error has occurred invoking the Analysis task} [encoding convertfrom iso8859-1 {Fejl opstået ved kald til analyse program}]
-::msgcat::mcset da {An error has occurred while creating image} [encoding convertfrom iso8859-1 {Fejl opstået under dannelse af billede}]
-::msgcat::mcset da {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen} [encoding convertfrom iso8859-1 {Fejl opstået under dannelse af billede - sørg for, at hele billed-vinduet er synligt på skærmen}]
+::msgcat::mcset da {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}
+::msgcat::mcset da {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen.}
::msgcat::mcset da {An error has occurred while printing} [encoding convertfrom iso8859-1 {Fejl opstået under udskrivning}]
::msgcat::mcset da {An error has occurred while saving} [encoding convertfrom iso8859-1 {Fejl opstået under gemning}]
::msgcat::mcset da {An internal error has been detected}
@@ -36,7 +36,6 @@
::msgcat::mcset da {ArcSec} {Buesekunder}
::msgcat::mcset da {Architecture} {Arkitektur}
::msgcat::mcset da {Archives} {Arkiver}
-::msgcat::mcset da {Arrow Point} {Punkt - pil}
::msgcat::mcset da {Arrow} {Pil}
::msgcat::mcset da {Astronomy}
::msgcat::mcset da {At Startup}
@@ -81,8 +80,7 @@
::msgcat::mcset da {Border} {Kant}
::msgcat::mcset da {Box Annulus} {Kasseformet ringform}
::msgcat::mcset da {Box Panda} {Kasseformet panda}
-::msgcat::mcset da {Box Point} {Punkt - firkant}
-::msgcat::mcset da {BoxCircle Point} {Punkt - firkant-cirkel}
+::msgcat::mcset da {BoxCircle}
::msgcat::mcset da {Boxcar} {Kvadratisk kernel}
::msgcat::mcset da {Box} {Kasse}
::msgcat::mcset da {Broadcast}
@@ -106,8 +104,6 @@
::msgcat::mcset da {Center} {Centrer}
::msgcat::mcset da {Centroid Parameters}
::msgcat::mcset da {Centroid} {Centroide}
-::msgcat::mcset da {Circle Point} {Punkt - cirkel}
-::msgcat::mcset da {Circle3d}
::msgcat::mcset da {Circle} {Cirkel}
::msgcat::mcset da {Clear All} {Fjern alt}
::msgcat::mcset da {Clear Analysis Commands} {Fjern analyse funktioner}
@@ -143,6 +139,7 @@
::msgcat::mcset da {Contours} {Konturer}
::msgcat::mcset da {Contour} {Konturer}
::msgcat::mcset da {Contrast} {Kontrast}
+::msgcat::mcset da {Contributed}
::msgcat::mcset da {Convert to Polygons} {Omdan til poygoner}
::msgcat::mcset da {Coordinate Grid Parameters} {Koordinatnetparametre}
::msgcat::mcset da {Coordinate Grid} {Koordinatnet}
@@ -152,11 +149,11 @@
::msgcat::mcset da {Copy Contours} {Kopier konturer}
::msgcat::mcset da {Copy to Regions} {kopier til regioner}
::msgcat::mcset da {Copy} {Kopier}
+::msgcat::mcset da {Create Movie}
::msgcat::mcset da {Create New Frame on Download} {Dan en ny ramme under hentning}
::msgcat::mcset da {Create}
::msgcat::mcset da {Crop Parameters}
::msgcat::mcset da {Crop}
-::msgcat::mcset da {Cross Point} {Punkt - kryds}
::msgcat::mcset da {Crosshair To} [encoding convertfrom iso8859-1 {Trådkors til}]
::msgcat::mcset da {Crosshair} [encoding convertfrom iso8859-1 {Trådkors}]
::msgcat::mcset da {Cross} {Kryds}
@@ -196,7 +193,6 @@
::msgcat::mcset da {Depth} {Dybde}
::msgcat::mcset da {Detector} {Detektor}
::msgcat::mcset da {Dialog Box} {Dialog vindue}
-::msgcat::mcset da {Diamond Point} {Punkt - ruder}
::msgcat::mcset da {Diamond} {Ruder}
::msgcat::mcset da {Dimension} {Dimension}
::msgcat::mcset da {Disconnect}
@@ -238,6 +234,7 @@
::msgcat::mcset da {Exclude} {Udelad}
::msgcat::mcset da {Executing TCL code is not enabled}
::msgcat::mcset da {Exit} {Luk}
+::msgcat::mcset da {Export Image}
::msgcat::mcset da {Extention}
::msgcat::mcset da {Exterior Axes} {Udvendige akser}
::msgcat::mcset da {Exterior Numerics} {Udvendige tal}
@@ -265,6 +262,7 @@
::msgcat::mcset da {Front} {Foran}
::msgcat::mcset da {Full Range} {Hele intervallet}
::msgcat::mcset da {Function} {Funktion}
+::msgcat::mcset da {GUI Font}
::msgcat::mcset da {Galactic} {Galaktisk}
::msgcat::mcset da {Gap}
::msgcat::mcset da {Gaussian} {Gaussisk}
@@ -318,6 +316,7 @@
::msgcat::mcset da {Interior Numerics} {Indre tal}
::msgcat::mcset da {Internal Parse Error}
::msgcat::mcset da {Interval} {Interval}
+::msgcat::mcset da {Invalid Column Name}
::msgcat::mcset da {Invalid formated multipart/mixed mime type message} {Forkert formatteret opdelt eller blandet mime type meddelelse}
::msgcat::mcset da {Invert Colormap} {Vend farvetabel}
::msgcat::mcset da {Invert Selection} {Inverter valg}
@@ -395,7 +394,7 @@
::msgcat::mcset da {Low High} [encoding convertfrom iso8859-1 {Lav høj}]
::msgcat::mcset da {Low} {lav}
::msgcat::mcset da {MIP}
-::msgcat::mcset da {MPEG Quality Factor} {MPEG kvalitetsfaktor}
+::msgcat::mcset da {MPEG}
::msgcat::mcset da {Magenta}
::msgcat::mcset da {Magnification}
::msgcat::mcset da {Magnifier} [encoding convertfrom iso8859-1 {Forstørrelse}]
@@ -425,7 +424,6 @@
::msgcat::mcset da {Math Function} {Matematisk funktion}
::msgcat::mcset da {Max Rows} {Maks antal rækker}
::msgcat::mcset da {Max} {Maks}
-::msgcat::mcset da {Menu Font} {Menu skrifttype}
::msgcat::mcset da {Menus and Buttons}
::msgcat::mcset da {Menu}
::msgcat::mcset da {Message Log}
@@ -474,7 +472,6 @@
::msgcat::mcset da {Normal} {Normal}
::msgcat::mcset da {North} {Nord}
::msgcat::mcset da {Not Found}
-::msgcat::mcset da {Not supported}
::msgcat::mcset da {No} {Nej}
::msgcat::mcset da {Number of Samples} {Antal}
::msgcat::mcset da {Number of Threads}
@@ -530,6 +527,8 @@
::msgcat::mcset da {Play} {Afspil}
::msgcat::mcset da {Please Select a Region}
::msgcat::mcset da {Please specify width, height, and either name or (ra,dec)} [encoding convertfrom iso8859-1 {angiv venligst bredde, højde, og enten navn eller (ra,dec)}]
+::msgcat::mcset da {Plot 2D}
+::msgcat::mcset da {Plot 3D}
::msgcat::mcset da {Plot Title} {Plot titel}
::msgcat::mcset da {Plot Tool} {Plotte funktion}
::msgcat::mcset da {Plotting Regions} [encoding convertfrom iso8859-1 {Plotte områder}]
@@ -603,11 +602,7 @@
::msgcat::mcset da {Save Contrast/Bias} {Gem kontrast/bias}
::msgcat::mcset da {Save Data} {Gem data}
::msgcat::mcset da {Save FITS on download} {Gem som FITS mens der hentes}
-::msgcat::mcset da {Save FITS} {gem som FITS}
-::msgcat::mcset da {Save Frame as Fits} {Gem vindue i FITS format}
-::msgcat::mcset da {Save Frames as MPEG} {Gem vindue i MPEG format}
::msgcat::mcset da {Save Image} {Gem billede}
-::msgcat::mcset da {Save MPEG} {gem MPEG}
::msgcat::mcset da {Save Regions} [encoding convertfrom iso8859-1 {Gem områder}]
::msgcat::mcset da {Save Template} {Gem skabelon}
::msgcat::mcset da {Save} {Gem}
@@ -672,6 +667,7 @@
::msgcat::mcset da {Table}
::msgcat::mcset da {Tabloid}
::msgcat::mcset da {Template}
+::msgcat::mcset da {Text Font}
::msgcat::mcset da {Text} {Tekst}
::msgcat::mcset da {Theme}
::msgcat::mcset da {Then} [encoding convertfrom iso8859-1 {Så}]
@@ -737,11 +733,11 @@
::msgcat::mcset da {Writing Catalog}
::msgcat::mcset da {X Axis Label} {X akse tekst}
::msgcat::mcset da {X Axis} {X akse}
-::msgcat::mcset da {X Point} {Punkt - X}
::msgcat::mcset da {XPA Information} {XPA information}
::msgcat::mcset da {XPA not initialized} {XPA ikke startet}
::msgcat::mcset da {XPA unable to verify hostname, setting XPA_METHOD to LOCAL}
::msgcat::mcset da {XPA}
+::msgcat::mcset da {X}
::msgcat::mcset da {Y Axis Label} {Y akse tekst}
::msgcat::mcset da {Y Axis} {Y akse}
::msgcat::mcset da {Yellow} {Gul}
diff --git a/msgs/de.msg b/msgs/de.msg
index b32ccac..440d98d 100644
--- a/msgs/de.msg
+++ b/msgs/de.msg
@@ -16,8 +16,8 @@
::msgcat::mcset de {An error has occurred during backup}
::msgcat::mcset de {An error has occurred during restore}
::msgcat::mcset de {An error has occurred invoking the Analysis task} {Beim Aufrufen des Analysetasks ist ein Fehler aufgetreten}
-::msgcat::mcset de {An error has occurred while creating image} {Beim Erstellen eines Bildes ist ein Fehler aufgetreten}
-::msgcat::mcset de {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen} {Beim Erstellen des Bildes ist ein Fehler aufgetreten. Stellen Sie sicher, dass das gesamte Bildfenster auf dem Bildschirm sichtbar ist.}
+::msgcat::mcset de {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}
+::msgcat::mcset de {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen.}
::msgcat::mcset de {An error has occurred while printing} {Beim Drucken ist ein Fehler aufgetreten}
::msgcat::mcset de {An error has occurred while saving} {Beim Speichern ist ein Fehler aufgetreten}
::msgcat::mcset de {An internal error has been detected}
@@ -36,7 +36,6 @@
::msgcat::mcset de {ArcSec} {Bogensekunde}
::msgcat::mcset de {Architecture} {Architektur}
::msgcat::mcset de {Archives} {Archive}
-::msgcat::mcset de {Arrow Point} {Pfeilpunkt}
::msgcat::mcset de {Arrow} {Pfeil}
::msgcat::mcset de {Astronomy}
::msgcat::mcset de {At Startup}
@@ -81,8 +80,7 @@
::msgcat::mcset de {Border} {Begrenzung}
::msgcat::mcset de {Box Annulus} {Viereck ring}
::msgcat::mcset de {Box Panda} {Viereckiger panda}
-::msgcat::mcset de {Box Point} {Viereckspunkt}
-::msgcat::mcset de {BoxCircle Point} {ViereckKreisPunkt}
+::msgcat::mcset de {BoxCircle}
::msgcat::mcset de {Boxcar}
::msgcat::mcset de {Box} {Viereck}
::msgcat::mcset de {Broadcast}
@@ -106,8 +104,6 @@
::msgcat::mcset de {Center} {Mittelpunkt}
::msgcat::mcset de {Centroid Parameters}
::msgcat::mcset de {Centroid}
-::msgcat::mcset de {Circle Point} {Kreispunkt}
-::msgcat::mcset de {Circle3d}
::msgcat::mcset de {Circle} {Kreis}
::msgcat::mcset de {Clear All} [encoding convertfrom iso8859-1 {Alle löschen}]
::msgcat::mcset de {Clear Analysis Commands} [encoding convertfrom iso8859-1 {Analysebefehle löschen}]
@@ -143,6 +139,7 @@
::msgcat::mcset de {Contours} {Konturen}
::msgcat::mcset de {Contour}
::msgcat::mcset de {Contrast} {Kontrast}
+::msgcat::mcset de {Contributed}
::msgcat::mcset de {Convert to Polygons} {Zu Polygonen konvertieren}
::msgcat::mcset de {Coordinate Grid Parameters} {Koordinatennetzparameter}
::msgcat::mcset de {Coordinate Grid} {Koordinatennetz}
@@ -152,11 +149,11 @@
::msgcat::mcset de {Copy Contours} {Konturen kopieren}
::msgcat::mcset de {Copy to Regions} {Zu Regionen kopieren}
::msgcat::mcset de {Copy} {Kopieren}
+::msgcat::mcset de {Create Movie}
::msgcat::mcset de {Create New Frame on Download} {Neuen rahmen bei Download}
::msgcat::mcset de {Create}
::msgcat::mcset de {Crop Parameters}
::msgcat::mcset de {Crop}
-::msgcat::mcset de {Cross Point} {Kreuzpunkt}
::msgcat::mcset de {Crosshair To} {Fadenkreuz auf}
::msgcat::mcset de {Crosshair} {Fadenkreuz}
::msgcat::mcset de {Cross} {Kreuz}
@@ -196,7 +193,6 @@
::msgcat::mcset de {Depth} {Tiefe}
::msgcat::mcset de {Detector} {Detektor}
::msgcat::mcset de {Dialog Box} {Dialogbox}
-::msgcat::mcset de {Diamond Point} {Rautenpunkt}
::msgcat::mcset de {Diamond} {Raute}
::msgcat::mcset de {Dimension}
::msgcat::mcset de {Disconnect}
@@ -238,6 +234,7 @@
::msgcat::mcset de {Exclude} {Ausschliessen}
::msgcat::mcset de {Executing TCL code is not enabled}
::msgcat::mcset de {Exit} [encoding convertfrom iso8859-1 {Schließen}]
+::msgcat::mcset de {Export Image}
::msgcat::mcset de {Extention}
::msgcat::mcset de {Exterior Axes} [encoding convertfrom iso8859-1 {Äußere Achsen}]
::msgcat::mcset de {Exterior Numerics} [encoding convertfrom iso8859-1 {Äußere Ziffern}]
@@ -265,6 +262,7 @@
::msgcat::mcset de {Front} {Vor}
::msgcat::mcset de {Full Range} {Ganzer Bereich}
::msgcat::mcset de {Function} {Funktion}
+::msgcat::mcset de {GUI Font}
::msgcat::mcset de {Galactic} {Galaktisch}
::msgcat::mcset de {Gap}
::msgcat::mcset de {Gaussian} {Gauss}
@@ -318,6 +316,7 @@
::msgcat::mcset de {Interior Numerics} {Innere Ziffern}
::msgcat::mcset de {Internal Parse Error}
::msgcat::mcset de {Interval} {Intervall}
+::msgcat::mcset de {Invalid Column Name}
::msgcat::mcset de {Invalid formated multipart/mixed mime type message} [encoding convertfrom iso8859-1 {Ungültig formatierter multipart/mixed MIME-Type}]
::msgcat::mcset de {Invert Colormap} {Farbpalette invertieren}
::msgcat::mcset de {Invert Selection} {Auswahl umkehren}
@@ -395,7 +394,7 @@
::msgcat::mcset de {Low High} {Niedrig Hoch}
::msgcat::mcset de {Low} {Niedrig}
::msgcat::mcset de {MIP}
-::msgcat::mcset de {MPEG Quality Factor} [encoding convertfrom iso8859-1 {MPEG Qualitätsfaktor}]
+::msgcat::mcset de {MPEG}
::msgcat::mcset de {Magenta}
::msgcat::mcset de {Magnification}
::msgcat::mcset de {Magnifier} [encoding convertfrom iso8859-1 {Vergrößerungsglas}]
@@ -425,7 +424,6 @@
::msgcat::mcset de {Math Function} {Math. Funktion}
::msgcat::mcset de {Max Rows} {Max. Reihen}
::msgcat::mcset de {Max}
-::msgcat::mcset de {Menu Font} {Menufont}
::msgcat::mcset de {Menus and Buttons}
::msgcat::mcset de {Menu}
::msgcat::mcset de {Message Log}
@@ -474,7 +472,6 @@
::msgcat::mcset de {Normal}
::msgcat::mcset de {North} {Norden}
::msgcat::mcset de {Not Found}
-::msgcat::mcset de {Not supported}
::msgcat::mcset de {No} {Nein}
::msgcat::mcset de {Number of Samples} {Anzahl der Stichproben}
::msgcat::mcset de {Number of Threads}
@@ -530,6 +527,8 @@
::msgcat::mcset de {Play} {Abspielen}
::msgcat::mcset de {Please Select a Region}
::msgcat::mcset de {Please specify width, height, and either name or (ra,dec)} [encoding convertfrom iso8859-1 {Bitte Weite, Höhe und entweder Namen oder (RA,Dec) angeben}]
+::msgcat::mcset de {Plot 2D}
+::msgcat::mcset de {Plot 3D}
::msgcat::mcset de {Plot Title} {Titel drucken}
::msgcat::mcset de {Plot Tool} {Zeichenwerkzeug}
::msgcat::mcset de {Plotting Regions} {Regionen drucken}
@@ -603,11 +602,7 @@
::msgcat::mcset de {Save Contrast/Bias} {Kontrast/Bias speichern}
::msgcat::mcset de {Save Data} {Daten speichern}
::msgcat::mcset de {Save FITS on download} {FITS bei Download speichern}
-::msgcat::mcset de {Save FITS}
-::msgcat::mcset de {Save Frame as Fits} {Rahmen speichern als Fits}
-::msgcat::mcset de {Save Frames as MPEG} {Rahmen speichern als MPEG}
::msgcat::mcset de {Save Image} {Bild speichern}
-::msgcat::mcset de {Save MPEG}
::msgcat::mcset de {Save Regions} {Regionen speichern}
::msgcat::mcset de {Save Template} {Vorlage speichern}
::msgcat::mcset de {Save} {Speichern}
@@ -672,6 +667,7 @@
::msgcat::mcset de {Table}
::msgcat::mcset de {Tabloid}
::msgcat::mcset de {Template}
+::msgcat::mcset de {Text Font}
::msgcat::mcset de {Text}
::msgcat::mcset de {Theme}
::msgcat::mcset de {Then} {dann}
@@ -737,11 +733,11 @@
::msgcat::mcset de {Writing Catalog}
::msgcat::mcset de {X Axis Label} {X-Achsenbeschriftung}
::msgcat::mcset de {X Axis} {X-Achse}
-::msgcat::mcset de {X Point} {X-Punkt}
::msgcat::mcset de {XPA Information}
::msgcat::mcset de {XPA not initialized} {XPA nicht initialisiert}
::msgcat::mcset de {XPA unable to verify hostname, setting XPA_METHOD to LOCAL}
::msgcat::mcset de {XPA}
+::msgcat::mcset de {X}
::msgcat::mcset de {Y Axis Label} {Y-Achsenbeschriftung}
::msgcat::mcset de {Y Axis} {Y-Achse}
::msgcat::mcset de {Yellow} {Gelb}
diff --git a/msgs/es.msg b/msgs/es.msg
index 3a2bc08..5fff635 100644
--- a/msgs/es.msg
+++ b/msgs/es.msg
@@ -16,8 +16,8 @@
::msgcat::mcset es {An error has occurred during backup}
::msgcat::mcset es {An error has occurred during restore}
::msgcat::mcset es {An error has occurred invoking the Analysis task} [encoding convertfrom iso8859-1 {Un error ha ocurrido mientras se invocaba la tarea de análisis}]
-::msgcat::mcset es {An error has occurred while creating image} {Un error ha ocurrido mientras se creaba la imagen}
-::msgcat::mcset es {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen} [encoding convertfrom iso8859-1 {Un error ha ocurrido mientras se creaba la imagen. Por favor asegúrese de que toda la ventana de la imagen es visible en pantalla}]
+::msgcat::mcset es {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}
+::msgcat::mcset es {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen.}
::msgcat::mcset es {An error has occurred while printing} {Un error ha ocurrido al imprimir}
::msgcat::mcset es {An error has occurred while saving} {Un error ha ocurrido al guardar}
::msgcat::mcset es {An internal error has been detected}
@@ -36,7 +36,6 @@
::msgcat::mcset es {ArcSec} {SegArc}
::msgcat::mcset es {Architecture} {Arquitectura}
::msgcat::mcset es {Archives} {Archivos}
-::msgcat::mcset es {Arrow Point} {Flecha indicadora}
::msgcat::mcset es {Arrow} {Flecha}
::msgcat::mcset es {Astronomy}
::msgcat::mcset es {At Startup}
@@ -81,8 +80,7 @@
::msgcat::mcset es {Border} {Borde}
::msgcat::mcset es {Box Annulus} {Caja con caja inscrita}
::msgcat::mcset es {Box Panda} {Caja con caja inscrita segmetada}
-::msgcat::mcset es {Box Point} {Cuadrado indicador}
-::msgcat::mcset es {BoxCircle Point} [encoding convertfrom iso8859-1 {Cuadrado con círculo inscrito indicador}]
+::msgcat::mcset es {BoxCircle}
::msgcat::mcset es {Boxcar}
::msgcat::mcset es {Box} {Casilla}
::msgcat::mcset es {Broadcast}
@@ -106,8 +104,6 @@
::msgcat::mcset es {Center} {Centrar}
::msgcat::mcset es {Centroid Parameters} [encoding convertfrom iso8859-1 {Párametros del centroide}]
::msgcat::mcset es {Centroid} {Centroide}
-::msgcat::mcset es {Circle Point} [encoding convertfrom iso8859-1 {Círculo indicador}]
-::msgcat::mcset es {Circle3d}
::msgcat::mcset es {Circle} [encoding convertfrom iso8859-1 {Círculo}]
::msgcat::mcset es {Clear All} {Despejar todos}
::msgcat::mcset es {Clear Analysis Commands} {Borrar las instrucciones de análisis}
@@ -143,6 +139,7 @@
::msgcat::mcset es {Contours} {Contornos}
::msgcat::mcset es {Contour}
::msgcat::mcset es {Contrast} {Contraste}
+::msgcat::mcset es {Contributed}
::msgcat::mcset es {Convert to Polygons} [encoding convertfrom iso8859-1 {Convertir a polígonos}]
::msgcat::mcset es {Coordinate Grid Parameters} [encoding convertfrom iso8859-1 {Parámetros de la cuadrícula de coordenadas}]
::msgcat::mcset es {Coordinate Grid} [encoding convertfrom iso8859-1 {Cuadrícula de coordenadas}]
@@ -152,11 +149,11 @@
::msgcat::mcset es {Copy Contours} {Copiar contornos}
::msgcat::mcset es {Copy to Regions} {Copiar a regiones}
::msgcat::mcset es {Copy} {Copiar}
+::msgcat::mcset es {Create Movie}
::msgcat::mcset es {Create New Frame on Download} {Crear un nuevo marco al transferir}
::msgcat::mcset es {Create}
::msgcat::mcset es {Crop Parameters}
::msgcat::mcset es {Crop}
-::msgcat::mcset es {Cross Point} {Cruz indicadora}
::msgcat::mcset es {Crosshair To} {Localizar con punto de mira}
::msgcat::mcset es {Crosshair} {Punto de mira}
::msgcat::mcset es {Cross} {Cruz}
@@ -196,7 +193,6 @@
::msgcat::mcset es {Depth} {Profundidad}
::msgcat::mcset es {Detector}
::msgcat::mcset es {Dialog Box} [encoding convertfrom iso8859-1 {Caja de diálogo}]
-::msgcat::mcset es {Diamond Point} {Diamante indicador}
::msgcat::mcset es {Diamond} {Diamante}
::msgcat::mcset es {Dimension} [encoding convertfrom iso8859-1 {Dimensión}]
::msgcat::mcset es {Disconnect}
@@ -238,6 +234,7 @@
::msgcat::mcset es {Exclude} {Excluir}
::msgcat::mcset es {Executing TCL code is not enabled}
::msgcat::mcset es {Exit} {Salir}
+::msgcat::mcset es {Export Image}
::msgcat::mcset es {Extention}
::msgcat::mcset es {Exterior Axes} {Ejes exteriores}
::msgcat::mcset es {Exterior Numerics} {Numeración exterior}
@@ -265,6 +262,7 @@
::msgcat::mcset es {Front} {Al frente}
::msgcat::mcset es {Full Range} {Rango completo}
::msgcat::mcset es {Function} [encoding convertfrom iso8859-1 {Función}]
+::msgcat::mcset es {GUI Font}
::msgcat::mcset es {Galactic} [encoding convertfrom iso8859-1 {Galáctico}]
::msgcat::mcset es {Gap}
::msgcat::mcset es {Gaussian} {Gausiana}
@@ -318,6 +316,7 @@
::msgcat::mcset es {Interior Numerics} [encoding convertfrom iso8859-1 {Numeración interior}]
::msgcat::mcset es {Internal Parse Error}
::msgcat::mcset es {Interval} {Intervalo}
+::msgcat::mcset es {Invalid Column Name}
::msgcat::mcset es {Invalid formated multipart/mixed mime type message}
::msgcat::mcset es {Invert Colormap} {Invertir mapa de colores}
::msgcat::mcset es {Invert Selection} [encoding convertfrom iso8859-1 {Invertir selección}]
@@ -395,7 +394,7 @@
::msgcat::mcset es {Low High} {Bajo Alto}
::msgcat::mcset es {Low} {Bajo}
::msgcat::mcset es {MIP}
-::msgcat::mcset es {MPEG Quality Factor} {Factor de calidad MPEG}
+::msgcat::mcset es {MPEG}
::msgcat::mcset es {Magenta}
::msgcat::mcset es {Magnification}
::msgcat::mcset es {Magnifier} {Ventanilla magnificadora}
@@ -425,7 +424,6 @@
::msgcat::mcset es {Math Function} [encoding convertfrom iso8859-1 {Función matemática}]
::msgcat::mcset es {Max Rows} [encoding convertfrom iso8859-1 {Máx filas}]
::msgcat::mcset es {Max} [encoding convertfrom iso8859-1 {Máx}]
-::msgcat::mcset es {Menu Font} [encoding convertfrom iso8859-1 {Fuente para Menús}]
::msgcat::mcset es {Menus and Buttons}
::msgcat::mcset es {Menu}
::msgcat::mcset es {Message Log}
@@ -474,7 +472,6 @@
::msgcat::mcset es {Normal}
::msgcat::mcset es {North} {Norte}
::msgcat::mcset es {Not Found}
-::msgcat::mcset es {Not supported}
::msgcat::mcset es {No}
::msgcat::mcset es {Number of Samples} [encoding convertfrom iso8859-1 {Número de muestreos}]
::msgcat::mcset es {Number of Threads}
@@ -530,6 +527,8 @@
::msgcat::mcset es {Play}
::msgcat::mcset es {Please Select a Region}
::msgcat::mcset es {Please specify width, height, and either name or (ra,dec)} {Por farvor, especifique el ancho, altura, y nombre o (A.R.,Dec.)}
+::msgcat::mcset es {Plot 2D}
+::msgcat::mcset es {Plot 3D}
::msgcat::mcset es {Plot Title} [encoding convertfrom iso8859-1 {Título de la gráfica}]
::msgcat::mcset es {Plot Tool} [encoding convertfrom iso8859-1 {Herramienta gráfica}]
::msgcat::mcset es {Plotting Regions} {Dibujando regiones}
@@ -603,11 +602,7 @@
::msgcat::mcset es {Save Contrast/Bias} {Guardar contraste/Bias}
::msgcat::mcset es {Save Data} {Guardar datos}
::msgcat::mcset es {Save FITS on download} {Guardar FITS al transferir}
-::msgcat::mcset es {Save FITS}
-::msgcat::mcset es {Save Frame as Fits} {Guardar marco como FITS}
-::msgcat::mcset es {Save Frames as MPEG} {Guardar marco como MPEG}
::msgcat::mcset es {Save Image} {Guardar imagen}
-::msgcat::mcset es {Save MPEG}
::msgcat::mcset es {Save Regions} {Guardar regiones}
::msgcat::mcset es {Save Template} {Guardar modelo}
::msgcat::mcset es {Save} {Guardar}
@@ -672,6 +667,7 @@
::msgcat::mcset es {Table}
::msgcat::mcset es {Tabloid}
::msgcat::mcset es {Template}
+::msgcat::mcset es {Text Font}
::msgcat::mcset es {Text} {Texto}
::msgcat::mcset es {Theme}
::msgcat::mcset es {Then} {Entonces}
@@ -737,11 +733,11 @@
::msgcat::mcset es {Writing Catalog}
::msgcat::mcset es {X Axis Label} {Etiqueta del eje X}
::msgcat::mcset es {X Axis} {Eje X}
-::msgcat::mcset es {X Point} {Cruz indicadora}
::msgcat::mcset es {XPA Information} [encoding convertfrom iso8859-1 {Información XPA}]
::msgcat::mcset es {XPA not initialized} {XPA no inicializado}
::msgcat::mcset es {XPA unable to verify hostname, setting XPA_METHOD to LOCAL}
::msgcat::mcset es {XPA}
+::msgcat::mcset es {X}
::msgcat::mcset es {Y Axis Label} {Etiqueta del eje Y}
::msgcat::mcset es {Y Axis} {Eje Y}
::msgcat::mcset es {Yellow} {Amarillo}
diff --git a/msgs/fr.msg b/msgs/fr.msg
index f556928..bdbb34b 100644
--- a/msgs/fr.msg
+++ b/msgs/fr.msg
@@ -16,8 +16,8 @@
::msgcat::mcset fr {An error has occurred during backup}
::msgcat::mcset fr {An error has occurred during restore}
::msgcat::mcset fr {An error has occurred invoking the Analysis task} [encoding convertfrom iso8859-1 {Une erreur s'est produite en invoquant la tâche d'analyse}]
-::msgcat::mcset fr {An error has occurred while creating image} [encoding convertfrom iso8859-1 {Une erreur s'est produite pendant la création d'image}]
-::msgcat::mcset fr {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen} [encoding convertfrom iso8859-1 {Une erreur s'est produite pendant la création d'image. Vérifiez que la fenêtre de l'image est entièrement visible sur l'écran}]
+::msgcat::mcset fr {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}
+::msgcat::mcset fr {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen.}
::msgcat::mcset fr {An error has occurred while printing} {Une erreur s'est produite pendant l'impression}
::msgcat::mcset fr {An error has occurred while saving} {Une erreur s'est produite pendant la sauvegarde}
::msgcat::mcset fr {An internal error has been detected}
@@ -36,7 +36,6 @@
::msgcat::mcset fr {ArcSec}
::msgcat::mcset fr {Architecture}
::msgcat::mcset fr {Archives}
-::msgcat::mcset fr {Arrow Point} [encoding convertfrom iso8859-1 {Point de flèche}]
::msgcat::mcset fr {Arrow} [encoding convertfrom iso8859-1 {Flèche}]
::msgcat::mcset fr {Astronomy}
::msgcat::mcset fr {At Startup}
@@ -81,8 +80,7 @@
::msgcat::mcset fr {Border} {Bordure}
::msgcat::mcset fr {Box Annulus} [encoding convertfrom iso8859-1 {Anneau de boîte}]
::msgcat::mcset fr {Box Panda}
-::msgcat::mcset fr {Box Point}
-::msgcat::mcset fr {BoxCircle Point}
+::msgcat::mcset fr {BoxCircle}
::msgcat::mcset fr {Boxcar}
::msgcat::mcset fr {Box} [encoding convertfrom iso8859-1 {Boîte}]
::msgcat::mcset fr {Broadcast}
@@ -106,8 +104,6 @@
::msgcat::mcset fr {Center} {Centrer}
::msgcat::mcset fr {Centroid Parameters}
::msgcat::mcset fr {Centroid}
-::msgcat::mcset fr {Circle Point} {Point de cercle}
-::msgcat::mcset fr {Circle3d}
::msgcat::mcset fr {Circle} {Cercle}
::msgcat::mcset fr {Clear All} {Tout effacer}
::msgcat::mcset fr {Clear Analysis Commands} {Effacer les commandes d'analyse}
@@ -143,6 +139,7 @@
::msgcat::mcset fr {Contours}
::msgcat::mcset fr {Contour}
::msgcat::mcset fr {Contrast} {Contraste}
+::msgcat::mcset fr {Contributed}
::msgcat::mcset fr {Convert to Polygons} {Convertir en polygones}
::msgcat::mcset fr {Coordinate Grid Parameters} [encoding convertfrom iso8859-1 {Paramètres de grille de coordonnées}]
::msgcat::mcset fr {Coordinate Grid} [encoding convertfrom iso8859-1 {Grille de coordonnées}]
@@ -152,11 +149,11 @@
::msgcat::mcset fr {Copy Contours} {Copier les contours}
::msgcat::mcset fr {Copy to Regions} [encoding convertfrom iso8859-1 {Copier vers Régions}]
::msgcat::mcset fr {Copy} {Copier}
+::msgcat::mcset fr {Create Movie}
::msgcat::mcset fr {Create New Frame on Download} [encoding convertfrom iso8859-1 {Créer une nouvelle fenêtre au téléchargement}]
::msgcat::mcset fr {Create}
::msgcat::mcset fr {Crop Parameters}
::msgcat::mcset fr {Crop}
-::msgcat::mcset fr {Cross Point} {Point de croisement}
::msgcat::mcset fr {Crosshair To} [encoding convertfrom iso8859-1 {Réticule vers}]
::msgcat::mcset fr {Crosshair} [encoding convertfrom iso8859-1 {Réticule}]
::msgcat::mcset fr {Cross} {Croisement}
@@ -196,7 +193,6 @@
::msgcat::mcset fr {Depth} {Profondeur}
::msgcat::mcset fr {Detector} {Detecteur}
::msgcat::mcset fr {Dialog Box} [encoding convertfrom iso8859-1 {Boîte de dialogue}]
-::msgcat::mcset fr {Diamond Point}
::msgcat::mcset fr {Diamond} {Losange}
::msgcat::mcset fr {Dimension} {Dimention}
::msgcat::mcset fr {Disconnect}
@@ -238,6 +234,7 @@
::msgcat::mcset fr {Exclude} {Exclure}
::msgcat::mcset fr {Executing TCL code is not enabled}
::msgcat::mcset fr {Exit} {Sortie}
+::msgcat::mcset fr {Export Image}
::msgcat::mcset fr {Extention}
::msgcat::mcset fr {Exterior Axes} {Axes exterieurs}
::msgcat::mcset fr {Exterior Numerics} {Chiffres exterieurs}
@@ -265,6 +262,7 @@
::msgcat::mcset fr {Front} {Avant}
::msgcat::mcset fr {Full Range}
::msgcat::mcset fr {Function} {Fonction}
+::msgcat::mcset fr {GUI Font}
::msgcat::mcset fr {Galactic} {Galactiques}
::msgcat::mcset fr {Gap}
::msgcat::mcset fr {Gaussian} {Gaussien}
@@ -318,6 +316,7 @@
::msgcat::mcset fr {Interior Numerics} [encoding convertfrom iso8859-1 {Chiffres intérieur}]
::msgcat::mcset fr {Internal Parse Error}
::msgcat::mcset fr {Interval} {Intervalle}
+::msgcat::mcset fr {Invalid Column Name}
::msgcat::mcset fr {Invalid formated multipart/mixed mime type message} {Message invalide de genre mixte/multipart}
::msgcat::mcset fr {Invert Colormap} {Plan de couleur inverti}
::msgcat::mcset fr {Invert Selection} {Selection inverti}
@@ -395,7 +394,7 @@
::msgcat::mcset fr {Low High} {Haut bas}
::msgcat::mcset fr {Low} {Bas}
::msgcat::mcset fr {MIP}
-::msgcat::mcset fr {MPEG Quality Factor} [encoding convertfrom iso8859-1 {Le facteur de qualité de MPEG}]
+::msgcat::mcset fr {MPEG}
::msgcat::mcset fr {Magenta}
::msgcat::mcset fr {Magnification}
::msgcat::mcset fr {Magnifier} {Magnificateur}
@@ -425,7 +424,6 @@
::msgcat::mcset fr {Math Function} {Fonction mathématique}
::msgcat::mcset fr {Max Rows} [encoding convertfrom iso8859-1 {Maximum de rangées}]
::msgcat::mcset fr {Max} {Maximum}
-::msgcat::mcset fr {Menu Font} {Font de menu}
::msgcat::mcset fr {Menus and Buttons}
::msgcat::mcset fr {Menu}
::msgcat::mcset fr {Message Log}
@@ -474,7 +472,6 @@
::msgcat::mcset fr {Normal}
::msgcat::mcset fr {North} {Nord}
::msgcat::mcset fr {Not Found}
-::msgcat::mcset fr {Not supported}
::msgcat::mcset fr {No} {Non}
::msgcat::mcset fr {Number of Samples} [encoding convertfrom iso8859-1 {Nombre d'échantillons}]
::msgcat::mcset fr {Number of Threads}
@@ -530,6 +527,8 @@
::msgcat::mcset fr {Play} {Jouer}
::msgcat::mcset fr {Please Select a Region}
::msgcat::mcset fr {Please specify width, height, and either name or (ra,dec)} {Specifiez largeur, longeur, et autre noms possibles ou (ra,dec)}
+::msgcat::mcset fr {Plot 2D}
+::msgcat::mcset fr {Plot 3D}
::msgcat::mcset fr {Plot Title} {Ecrire le titre}
::msgcat::mcset fr {Plot Tool} {Ecrire l'outil}
::msgcat::mcset fr {Plotting Regions} [encoding convertfrom iso8859-1 {Tracer les régions}]
@@ -603,11 +602,7 @@
::msgcat::mcset fr {Save Contrast/Bias}
::msgcat::mcset fr {Save Data}
::msgcat::mcset fr {Save FITS on download}
-::msgcat::mcset fr {Save FITS}
-::msgcat::mcset fr {Save Frame as Fits}
-::msgcat::mcset fr {Save Frames as MPEG}
::msgcat::mcset fr {Save Image}
-::msgcat::mcset fr {Save MPEG}
::msgcat::mcset fr {Save Regions}
::msgcat::mcset fr {Save Template}
::msgcat::mcset fr {Save} {Enregistrer}
@@ -672,6 +667,7 @@
::msgcat::mcset fr {Table}
::msgcat::mcset fr {Tabloid}
::msgcat::mcset fr {Template}
+::msgcat::mcset fr {Text Font}
::msgcat::mcset fr {Text} {Texte}
::msgcat::mcset fr {Theme}
::msgcat::mcset fr {Then}
@@ -737,11 +733,11 @@
::msgcat::mcset fr {Writing Catalog}
::msgcat::mcset fr {X Axis Label}
::msgcat::mcset fr {X Axis}
-::msgcat::mcset fr {X Point}
::msgcat::mcset fr {XPA Information}
::msgcat::mcset fr {XPA not initialized}
::msgcat::mcset fr {XPA unable to verify hostname, setting XPA_METHOD to LOCAL}
::msgcat::mcset fr {XPA}
+::msgcat::mcset fr {X}
::msgcat::mcset fr {Y Axis Label}
::msgcat::mcset fr {Y Axis}
::msgcat::mcset fr {Yellow}
diff --git a/msgs/ja.msg b/msgs/ja.msg
index ee76019..4a77831 100644
--- a/msgs/ja.msg
+++ b/msgs/ja.msg
@@ -16,8 +16,8 @@
::msgcat::mcset ja {An error has occurred during backup}
::msgcat::mcset ja {An error has occurred during restore}
::msgcat::mcset ja {An error has occurred invoking the Analysis task} [encoding convertfrom euc-jp "\xb2\xf2\xc0\xcf\xa5\xbf\xa5\xb9\xa5\xaf\xa4\xce\xb5\xaf\xc6\xb0\xa4\xcb\xbc\xba\xc7\xd4\xa4\xb7\xa4\xde\xa4\xb7\xa4\xbf\xa1\xa3"]
-::msgcat::mcset ja {An error has occurred while creating image} [encoding convertfrom euc-jp "\xa5\xa4\xa5\xe1\xa1\xbc\xa5\xb8\xba\xee\xc0\xae\xa4\xcb\xbc\xba\xc7\xd4\xa4\xb7\xa4\xde\xa4\xb7\xa4\xbf\xa1\xa3"]
-::msgcat::mcset ja {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen} [encoding convertfrom euc-jp "\xa5\xa4\xa5\xe1\xa1\xbc\xa5\xb8\xba\xee\xc0\xae\xa4\xcb\xbc\xba\xc7\xd4\xa4\xb7\xa4\xde\xa4\xb7\xa4\xbf\xa1\xa3\xb2\xe8\xcc\xcc\xa4\xcb\xa5\xa4\xa5\xe1\xa1\xbc\xa5\xb8\xc1\xb4\xc2\xce\xa4\xac\xb8\xab\xa4\xa8\xa4\xc6\xa4\xa4\xa4\xeb\xa4\xab\xb3\xce\xc7\xa7\xa4\xb7\xa4\xc6\xa4\xaf\xa4\xc0\xa4\xb5\xa4\xa4\xa1\xa3"]
+::msgcat::mcset ja {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}
+::msgcat::mcset ja {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen.}
::msgcat::mcset ja {An error has occurred while printing} [encoding convertfrom euc-jp "\xb0\xf5\xba\xfe\xa4\xcb\xbc\xba\xc7\xd4\xa4\xb7\xa4\xde\xa4\xb7\xa4\xbf\xa1\xa3"]
::msgcat::mcset ja {An error has occurred while saving} [encoding convertfrom euc-jp "\xca\xdd\xc2\xb8\xa4\xcb\xbc\xba\xc7\xd4\xa4\xb7\xa4\xde\xa4\xb7\xa4\xbf\xa1\xa3"]
::msgcat::mcset ja {An internal error has been detected}
@@ -36,7 +36,6 @@
::msgcat::mcset ja {ArcSec} [encoding convertfrom euc-jp "\xc9\xc3"]
::msgcat::mcset ja {Architecture} [encoding convertfrom euc-jp "\xa5\xa2\xa1\xbc\xa5\xad\xa5\xc6\xa5\xaf\xa5\xc1\xa5\xe3"]
::msgcat::mcset ja {Archives} [encoding convertfrom euc-jp "\xa5\xa2\xa1\xbc\xa5\xab\xa5\xa4\xa5\xd6"]
-::msgcat::mcset ja {Arrow Point} [encoding convertfrom euc-jp "\xcc\xf0\xb0\xf5"]
::msgcat::mcset ja {Arrow} [encoding convertfrom euc-jp "\xcc\xf0\xb0\xf5"]
::msgcat::mcset ja {Astronomy} [encoding convertfrom euc-jp "\xc5\xb7\xca\xb8\xb3\xd8"]
::msgcat::mcset ja {At Startup}
@@ -81,8 +80,7 @@
::msgcat::mcset ja {Border} [encoding convertfrom euc-jp "\xcf\xc8\xc0\xfe"]
::msgcat::mcset ja {Box Annulus} [encoding convertfrom euc-jp "\xc3\xe6\xc8\xb4\xa4\xad\xbb\xcd\xb3\xd1\xb7\xc1"]
::msgcat::mcset ja {Box Panda} [encoding convertfrom euc-jp "\xc9\xf4\xca\xac\xbb\xcd\xb3\xd1\xb7\xc1"]
-::msgcat::mcset ja {Box Point} [encoding convertfrom euc-jp "\xbb\xcd\xb3\xd1"]
-::msgcat::mcset ja {BoxCircle Point} [encoding convertfrom euc-jp "\xb4\xdd\xbb\xcd\xb3\xd1"]
+::msgcat::mcset ja {BoxCircle}
::msgcat::mcset ja {Boxcar} [encoding convertfrom euc-jp "\xa5\xdc\xa5\xc3\xa5\xaf\xa5\xb9\xa5\xab\xa1\xbc"]
::msgcat::mcset ja {Box} [encoding convertfrom euc-jp "\xbb\xcd\xb3\xd1\xb7\xc1"]
::msgcat::mcset ja {Broadcast}
@@ -106,8 +104,6 @@
::msgcat::mcset ja {Center} [encoding convertfrom euc-jp "\xc3\xe6\xbf\xb4"]
::msgcat::mcset ja {Centroid Parameters} [encoding convertfrom euc-jp "\xc3\xe6\xbf\xb4\xb9\xe7\xa4\xef\xa4\xbb\xc0\xdf\xc4\xea"]
::msgcat::mcset ja {Centroid}
-::msgcat::mcset ja {Circle Point} [encoding convertfrom euc-jp "\xb1\xdf"]
-::msgcat::mcset ja {Circle3d}
::msgcat::mcset ja {Circle} [encoding convertfrom euc-jp "\xb1\xdf"]
::msgcat::mcset ja {Clear All} [encoding convertfrom euc-jp "\xc1\xb4\xa4\xc6\xbe\xc3\xb5\xee"]
::msgcat::mcset ja {Clear Analysis Commands} [encoding convertfrom euc-jp "\xb2\xf2\xc0\xcf\xa5\xb3\xa5\xde\xa5\xf3\xa5\xc9\xa4\xf2\xbe\xc3\xb5\xee"]
@@ -143,6 +139,7 @@
::msgcat::mcset ja {Contours} [encoding convertfrom euc-jp "\xa5\xb3\xa5\xf3\xa5\xc8\xa5\xa2"]
::msgcat::mcset ja {Contour}
::msgcat::mcset ja {Contrast} [encoding convertfrom euc-jp "\xa5\xb3\xa5\xf3\xa5\xc8\xa5\xe9\xa5\xb9\xa5\xc8"]
+::msgcat::mcset ja {Contributed}
::msgcat::mcset ja {Convert to Polygons} [encoding convertfrom euc-jp "\xc2\xbf\xb3\xd1\xb7\xc1\xa4\xcb\xca\xd1\xb4\xb9"]
::msgcat::mcset ja {Coordinate Grid Parameters} [encoding convertfrom euc-jp "\xba\xc2\xc9\xb8\xa5\xb0\xa5\xea\xa5\xc3\xa5\xc9\xa4\xce\xc0\xdf\xc4\xea"]
::msgcat::mcset ja {Coordinate Grid} [encoding convertfrom euc-jp "\xba\xc2\xc9\xb8\xa5\xb0\xa5\xea\xa5\xc3\xa5\xc9"]
@@ -152,11 +149,11 @@
::msgcat::mcset ja {Copy Contours} [encoding convertfrom euc-jp "\xa5\xb3\xa5\xf3\xa5\xc8\xa5\xa2\xa4\xf2\xa5\xb3\xa5\xd4\xa1\xbc"]
::msgcat::mcset ja {Copy to Regions} [encoding convertfrom euc-jp "\xce\xce\xb0\xe8\xa4\xcb\xa5\xb3\xa5\xd4\xa1\xbc"]
::msgcat::mcset ja {Copy} [encoding convertfrom euc-jp "\xa5\xb3\xa5\xd4\xa1\xbc"]
+::msgcat::mcset ja {Create Movie}
::msgcat::mcset ja {Create New Frame on Download} [encoding convertfrom euc-jp "\xa5\xc0\xa5\xa6\xa5\xf3\xa5\xed\xa1\xbc\xa5\xc9\xbb\xfe\xa4\xcb\xbf\xb7\xa4\xb7\xa4\xa4\xa5\xd5\xa5\xec\xa1\xbc\xa5\xe0\xa4\xf2\xba\xee\xc0\xae"]
::msgcat::mcset ja {Create} [encoding convertfrom euc-jp "\xba\xee\xc0\xae"]
::msgcat::mcset ja {Crop Parameters}
::msgcat::mcset ja {Crop}
-::msgcat::mcset ja {Cross Point} [encoding convertfrom euc-jp "\xbd\xbd\xbb\xfa"]
::msgcat::mcset ja {Crosshair To} [encoding convertfrom euc-jp "\xa4\xbd\xa4\xb3\xa4\xcb\xbd\xbd\xbb\xfa\xc0\xfe"]
::msgcat::mcset ja {Crosshair} [encoding convertfrom euc-jp "\xbd\xbd\xbb\xfa\xa5\xab\xa1\xbc\xa5\xbd\xa5\xeb"]
::msgcat::mcset ja {Cross} [encoding convertfrom euc-jp "\xbd\xbd\xbb\xfa"]
@@ -196,7 +193,6 @@
::msgcat::mcset ja {Depth} [encoding convertfrom euc-jp "\xbf\xbc\xa4\xb5"]
::msgcat::mcset ja {Detector} [encoding convertfrom euc-jp "\xb8\xa1\xbd\xd0\xb4\xef\xba\xc2\xc9\xb8"]
::msgcat::mcset ja {Dialog Box} [encoding convertfrom euc-jp "\xa5\xdd\xa5\xc3\xa5\xd7\xa5\xa2\xa5\xc3\xa5\xd7\xa5\xe1\xa5\xcb\xa5\xe5\xa1\xbc"]
-::msgcat::mcset ja {Diamond Point} [encoding convertfrom euc-jp "\xc9\xa9\xb7\xc1"]
::msgcat::mcset ja {Diamond} [encoding convertfrom euc-jp "\xc9\xa9\xb7\xc1"]
::msgcat::mcset ja {Dimension} [encoding convertfrom euc-jp "\xbc\xa1\xb8\xb5"]
::msgcat::mcset ja {Disconnect} [encoding convertfrom euc-jp "\xc0\xdc\xc2\xb3\xbd\xaa\xce\xbb"]
@@ -238,6 +234,7 @@
::msgcat::mcset ja {Exclude} [encoding convertfrom euc-jp "\xb3\xb0\xc2\xa6"]
::msgcat::mcset ja {Executing TCL code is not enabled} [encoding convertfrom euc-jp "\x54\x43\x4c\x20\xa5\xb3\xa1\xbc\xa5\xc9\xa4\xce\xbc\xc2\xb9\xd4\xa4\xac\xb5\xf6\xb2\xc4\xa4\xb5\xa4\xec\xa4\xc6\xa4\xa4\xa4\xde\xa4\xbb\xa4\xf3"]
::msgcat::mcset ja {Exit} [encoding convertfrom euc-jp "\xbd\xaa\xce\xbb"]
+::msgcat::mcset ja {Export Image}
::msgcat::mcset ja {Extention}
::msgcat::mcset ja {Exterior Axes} [encoding convertfrom euc-jp "\xbc\xb4\xa4\xf2\xb3\xb0\xc2\xa6\xa4\xcb"]
::msgcat::mcset ja {Exterior Numerics} [encoding convertfrom euc-jp "\xbf\xf4\xc3\xcd\xa4\xf2\xb3\xb0\xc2\xa6\xa4\xcb"]
@@ -265,6 +262,7 @@
::msgcat::mcset ja {Front} [encoding convertfrom euc-jp "\xc1\xb4\xcc\xcc"]
::msgcat::mcset ja {Full Range} [encoding convertfrom euc-jp "\xc1\xb4\xc8\xcf\xb0\xcf"]
::msgcat::mcset ja {Function} [encoding convertfrom euc-jp "\xb4\xd8\xbf\xf4"]
+::msgcat::mcset ja {GUI Font}
::msgcat::mcset ja {Galactic} [encoding convertfrom euc-jp "\xb6\xe4\xb2\xcf\xba\xc2\xc9\xb8"]
::msgcat::mcset ja {Gap}
::msgcat::mcset ja {Gaussian} [encoding convertfrom euc-jp "\xa5\xac\xa5\xa6\xa5\xb7\xa5\xa2\xa5\xf3"]
@@ -318,6 +316,7 @@
::msgcat::mcset ja {Interior Numerics} [encoding convertfrom euc-jp "\xbf\xf4\xc3\xcd\xa4\xf2\xc6\xe2\xc2\xa6\xa4\xcb"]
::msgcat::mcset ja {Internal Parse Error} [encoding convertfrom euc-jp "\xc6\xe2\xc9\xf4\xb2\xf2\xbc\xe1\xa5\xa8\xa5\xe9\xa1\xbc"]
::msgcat::mcset ja {Interval} [encoding convertfrom euc-jp "\xb4\xd6\xb3\xd6"]
+::msgcat::mcset ja {Invalid Column Name}
::msgcat::mcset ja {Invalid formated multipart/mixed mime type message}
::msgcat::mcset ja {Invert Colormap} [encoding convertfrom euc-jp "\xbf\xa7\xc4\xb4\xa4\xf2\xc8\xbf\xc5\xbe"]
::msgcat::mcset ja {Invert Selection} [encoding convertfrom euc-jp "\xc1\xaa\xc2\xf2\xa4\xf2\xc8\xbf\xc5\xbe"]
@@ -395,7 +394,7 @@
::msgcat::mcset ja {Low High} [encoding convertfrom euc-jp "\xbe\xe5\xb8\xc2\xa1\xa6\xb2\xbc\xb8\xc2"]
::msgcat::mcset ja {Low} [encoding convertfrom euc-jp "\xb2\xbc\xb8\xc2"]
::msgcat::mcset ja {MIP}
-::msgcat::mcset ja {MPEG Quality Factor} [encoding convertfrom euc-jp "\x4d\x50\x45\x47\xa4\xce\xc9\xca\xbc\xc1"]
+::msgcat::mcset ja {MPEG}
::msgcat::mcset ja {Magenta} [encoding convertfrom euc-jp "\xc5\xed\xbf\xa7"]
::msgcat::mcset ja {Magnification}
::msgcat::mcset ja {Magnifier} [encoding convertfrom euc-jp "\xb3\xc8\xc2\xe7\xbf\xde"]
@@ -425,7 +424,6 @@
::msgcat::mcset ja {Math Function} [encoding convertfrom euc-jp "\xb4\xd8\xbf\xf4"]
::msgcat::mcset ja {Max Rows} [encoding convertfrom euc-jp "\xba\xc7\xc2\xe7\xb9\xd4\xbf\xf4"]
::msgcat::mcset ja {Max} [encoding convertfrom euc-jp "\xba\xc7\xc2\xe7"]
-::msgcat::mcset ja {Menu Font} [encoding convertfrom euc-jp "\xa5\xe1\xa5\xcb\xa5\xe5\xa1\xbc\xa4\xce\xa5\xd5\xa5\xa9\xa5\xf3\xa5\xc8"]
::msgcat::mcset ja {Menus and Buttons}
::msgcat::mcset ja {Menu} [encoding convertfrom euc-jp "\xa5\xe1\xa5\xcb\xa5\xe5\xa1\xbc"]
::msgcat::mcset ja {Message Log} [encoding convertfrom euc-jp "\xa5\xe1\xa5\xc3\xa5\xbb\xa1\xbc\xa5\xb8\xa4\xce\xb5\xad\xcf\xbf"]
@@ -474,7 +472,6 @@
::msgcat::mcset ja {Normal} [encoding convertfrom euc-jp "\xc9\xb8\xbd\xe0"]
::msgcat::mcset ja {North} [encoding convertfrom euc-jp "\xcb\xcc"]
::msgcat::mcset ja {Not Found}
-::msgcat::mcset ja {Not supported}
::msgcat::mcset ja {No} [encoding convertfrom euc-jp "\xa4\xa4\xa4\xa4\xa4\xa8"]
::msgcat::mcset ja {Number of Samples} [encoding convertfrom euc-jp "\xa5\xb5\xa5\xf3\xa5\xd7\xa5\xeb\xa4\xce\xbf\xf4"]
::msgcat::mcset ja {Number of Threads}
@@ -530,6 +527,8 @@
::msgcat::mcset ja {Play} [encoding convertfrom euc-jp "\xba\xc6\xc0\xb8"]
::msgcat::mcset ja {Please Select a Region} [encoding convertfrom euc-jp "\xce\xce\xb0\xe8\xa4\xf2\xbb\xd8\xc4\xea\xa4\xb7\xa4\xc6\xa4\xaf\xa4\xc0\xa4\xb5\xa4\xa4\xa1\xa3"]
::msgcat::mcset ja {Please specify width, height, and either name or (ra,dec)} [encoding convertfrom euc-jp "\xc9\xfd\xa1\xa2\xb9\xe2\xa4\xb5\xa1\xa2\xcc\xbe\xc1\xb0\xa4\xe2\xa4\xb7\xa4\xaf\xa4\xcf\x20\x28\x72\x61\x2c\x64\x65\x63\x29\x20\xa4\xf2\xbb\xd8\xc4\xea\xa4\xb7\xa4\xc6\xa4\xaf\xa4\xc0\xa4\xb5\xa4\xa4\xa1\xa3"]
+::msgcat::mcset ja {Plot 2D}
+::msgcat::mcset ja {Plot 3D}
::msgcat::mcset ja {Plot Title} [encoding convertfrom euc-jp "\xa5\xbf\xa5\xa4\xa5\xc8\xa5\xeb\xc9\xbd\xbc\xa8"]
::msgcat::mcset ja {Plot Tool} [encoding convertfrom euc-jp "\xa5\xd7\xa5\xed\xa5\xc3\xa5\xc8\xa5\xc4\xa1\xbc\xa5\xeb"]
::msgcat::mcset ja {Plotting Regions} [encoding convertfrom euc-jp "\xce\xce\xb0\xe8\xa4\xf2\xa5\xd7\xa5\xed\xa5\xc3\xa5\xc8\xa4\xb7\xa4\xc6\xa4\xa4\xa4\xde\xa4\xb9"]
@@ -603,11 +602,7 @@
::msgcat::mcset ja {Save Contrast/Bias} [encoding convertfrom euc-jp "\xa5\xb3\xa5\xf3\xa5\xc8\xa5\xe9\xa5\xb9\xa5\xc8\xa1\xa6\xa5\xd0\xa5\xa4\xa5\xa2\xa5\xb9\xa4\xf2\xca\xdd\xc2\xb8"]
::msgcat::mcset ja {Save Data} [encoding convertfrom euc-jp "\xa5\xc7\xa1\xbc\xa5\xbf\xa4\xf2\xca\xdd\xc2\xb8"]
::msgcat::mcset ja {Save FITS on download} [encoding convertfrom euc-jp "\xa5\xc0\xa5\xa6\xa5\xf3\xa5\xed\xa1\xbc\xa5\xc9\xa4\xb7\xa4\xbf\x46\x49\x54\x53\xa4\xf2\xca\xdd\xc2\xb8"]
-::msgcat::mcset ja {Save FITS} [encoding convertfrom euc-jp "\x46\x49\x54\x53\xa4\xf2\xca\xdd\xc2\xb8"]
-::msgcat::mcset ja {Save Frame as Fits} [encoding convertfrom euc-jp "\xa5\xd5\xa5\xec\xa1\xbc\xa5\xe0\xa4\xf2\x46\x49\x54\x53\xa4\xc8\xa4\xb7\xa4\xc6\xca\xdd\xc2\xb8"]
-::msgcat::mcset ja {Save Frames as MPEG} [encoding convertfrom euc-jp "\xa5\xd5\xa5\xec\xa1\xbc\xa5\xe0\xa4\xf2\x4d\x50\x45\x47\xa4\xc8\xa4\xb7\xa4\xc6\xca\xdd\xc2\xb8"]
::msgcat::mcset ja {Save Image} [encoding convertfrom euc-jp "\xa5\xa4\xa5\xe1\xa1\xbc\xa5\xb8\xa4\xf2\xca\xdd\xc2\xb8"]
-::msgcat::mcset ja {Save MPEG} [encoding convertfrom euc-jp "\x4d\x50\x45\x47\xa4\xf2\xca\xdd\xc2\xb8"]
::msgcat::mcset ja {Save Regions} [encoding convertfrom euc-jp "\xce\xce\xb0\xe8\xa4\xf2\xca\xdd\xc2\xb8"]
::msgcat::mcset ja {Save Template} [encoding convertfrom euc-jp "\xbf\xf7\xb7\xc1\xa4\xf2\xca\xdd\xc2\xb8"]
::msgcat::mcset ja {Save} [encoding convertfrom euc-jp "\xca\xdd\xc2\xb8"]
@@ -672,6 +667,7 @@
::msgcat::mcset ja {Table}
::msgcat::mcset ja {Tabloid} [encoding convertfrom euc-jp "\xa5\xbf\xa5\xd6\xa5\xed\xa5\xa4\xa5\xc9"]
::msgcat::mcset ja {Template} [encoding convertfrom euc-jp "\xbf\xf7\xb7\xc1"]
+::msgcat::mcset ja {Text Font}
::msgcat::mcset ja {Text} [encoding convertfrom euc-jp "\xca\xb8\xbb\xfa"]
::msgcat::mcset ja {Theme}
::msgcat::mcset ja {Then} [encoding convertfrom euc-jp "\xa4\xca\xa4\xe9"]
@@ -737,11 +733,11 @@
::msgcat::mcset ja {Writing Catalog} [encoding convertfrom euc-jp "\xa5\xab\xa5\xbf\xa5\xed\xa5\xb0\xa4\xf2\xbd\xf1\xa4\xad\xbd\xd0\xa4\xb7\xc3\xe6"]
::msgcat::mcset ja {X Axis Label} [encoding convertfrom euc-jp "\x58\xbc\xb4\xa5\xe9\xa5\xd9\xa5\xeb"]
::msgcat::mcset ja {X Axis} [encoding convertfrom euc-jp "\x58\xbc\xb4"]
-::msgcat::mcset ja {X Point} [encoding convertfrom euc-jp "\xa3\xd8\xbb\xfa"]
::msgcat::mcset ja {XPA Information} [encoding convertfrom euc-jp "\x58\x50\x41\xa4\xce\xbe\xf0\xca\xf3"]
::msgcat::mcset ja {XPA not initialized} [encoding convertfrom euc-jp "\x58\x50\x41\x20\xa4\xac\xbd\xe9\xb4\xfc\xb2\xbd\xa4\xb5\xa4\xec\xa4\xc6\xa4\xa4\xa4\xde\xa4\xbb\xa4\xf3\xa1\xa3"]
::msgcat::mcset ja {XPA unable to verify hostname, setting XPA_METHOD to LOCAL}
::msgcat::mcset ja {XPA} [encoding convertfrom euc-jp "\x58\x50\x41"]
+::msgcat::mcset ja {X}
::msgcat::mcset ja {Y Axis Label} [encoding convertfrom euc-jp "\x59\xbc\xb4\xa5\xe9\xa5\xd9\xa5\xeb"]
::msgcat::mcset ja {Y Axis} [encoding convertfrom euc-jp "\x59\xbc\xb4"]
::msgcat::mcset ja {Yellow} [encoding convertfrom euc-jp "\xb2\xab\xbf\xa7"]
diff --git a/msgs/pt.msg b/msgs/pt.msg
index d27ed43..464c1f3 100644
--- a/msgs/pt.msg
+++ b/msgs/pt.msg
@@ -16,8 +16,8 @@
::msgcat::mcset pt {An error has occurred during backup}
::msgcat::mcset pt {An error has occurred during restore}
::msgcat::mcset pt {An error has occurred invoking the Analysis task} [encoding convertfrom iso8859-1 {Um erro ocorreu ao chamar a tarefa de Análise}]
-::msgcat::mcset pt {An error has occurred while creating image} [encoding convertfrom iso8859-1 {Um erro ocorreu na criação da imagem}]
-::msgcat::mcset pt {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen} [encoding convertfrom iso8859-1 {Um erro ocorreu ao criar a imagem. Por favor, certifique-se que a janela inteira está visível na tela.}]
+::msgcat::mcset pt {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}
+::msgcat::mcset pt {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen.}
::msgcat::mcset pt {An error has occurred while printing} {Um erro ocorreu ao imprimir}
::msgcat::mcset pt {An error has occurred while saving} {Um erro ocorreu ao salvar}
::msgcat::mcset pt {An internal error has been detected}
@@ -36,7 +36,6 @@
::msgcat::mcset pt {ArcSec}
::msgcat::mcset pt {Architecture} {Arquitetura}
::msgcat::mcset pt {Archives} {Arquivos}
-::msgcat::mcset pt {Arrow Point} {Ponto da Seta}
::msgcat::mcset pt {Arrow} {Seta}
::msgcat::mcset pt {Astronomy}
::msgcat::mcset pt {At Startup}
@@ -81,8 +80,7 @@
::msgcat::mcset pt {Border} {Borda}
::msgcat::mcset pt {Box Annulus} {Annulus da Caixa}
::msgcat::mcset pt {Box Panda} {Panda Caixa}
-::msgcat::mcset pt {Box Point} {Ponto da Caixa}
-::msgcat::mcset pt {BoxCircle Point} [encoding convertfrom iso8859-1 {Ponto do Círculo-Caixa}]
+::msgcat::mcset pt {BoxCircle}
::msgcat::mcset pt {Boxcar}
::msgcat::mcset pt {Box} {Caixa}
::msgcat::mcset pt {Broadcast}
@@ -106,8 +104,6 @@
::msgcat::mcset pt {Center} {Centro}
::msgcat::mcset pt {Centroid Parameters}
::msgcat::mcset pt {Centroid}
-::msgcat::mcset pt {Circle Point} [encoding convertfrom iso8859-1 {Ponto do Círculo}]
-::msgcat::mcset pt {Circle3d}
::msgcat::mcset pt {Circle} {Circulo}
::msgcat::mcset pt {Clear All} {Limpar tudo}
::msgcat::mcset pt {Clear Analysis Commands} [encoding convertfrom iso8859-1 {Limpar Comandos de Análise}]
@@ -143,6 +139,7 @@
::msgcat::mcset pt {Contours} {Contornos}
::msgcat::mcset pt {Contour}
::msgcat::mcset pt {Contrast} {Contraste}
+::msgcat::mcset pt {Contributed}
::msgcat::mcset pt {Convert to Polygons} [encoding convertfrom iso8859-1 {Converter para polígonos}]
::msgcat::mcset pt {Coordinate Grid Parameters} [encoding convertfrom iso8859-1 {Parâmetros do Grid de Coordenadas}]
::msgcat::mcset pt {Coordinate Grid} {Grid de Coordenadas}
@@ -152,11 +149,11 @@
::msgcat::mcset pt {Copy Contours} {Copiar Contornos}
::msgcat::mcset pt {Copy to Regions} [encoding convertfrom iso8859-1 {Copiar para Regiões}]
::msgcat::mcset pt {Copy} {Copiar}
+::msgcat::mcset pt {Create Movie}
::msgcat::mcset pt {Create New Frame on Download} {Criar novo Frame ao carregar}
::msgcat::mcset pt {Create}
::msgcat::mcset pt {Crop Parameters}
::msgcat::mcset pt {Crop}
-::msgcat::mcset pt {Cross Point} {Ponto Transversal}
::msgcat::mcset pt {Crosshair To} {Cruz para}
::msgcat::mcset pt {Crosshair} {Cruz}
::msgcat::mcset pt {Cross} {Cruz}
@@ -196,7 +193,6 @@
::msgcat::mcset pt {Depth} {Profundidade}
::msgcat::mcset pt {Detector}
::msgcat::mcset pt {Dialog Box} {Box de dialog}
-::msgcat::mcset pt {Diamond Point} {Ponto Diamante}
::msgcat::mcset pt {Diamond} {Diamante}
::msgcat::mcset pt {Dimension} [encoding convertfrom iso8859-1 {Dimensão}]
::msgcat::mcset pt {Disconnect}
@@ -238,6 +234,7 @@
::msgcat::mcset pt {Exclude} {Excluir}
::msgcat::mcset pt {Executing TCL code is not enabled}
::msgcat::mcset pt {Exit} {Sair}
+::msgcat::mcset pt {Export Image}
::msgcat::mcset pt {Extention}
::msgcat::mcset pt {Exterior Axes} {Eixos exteriores}
::msgcat::mcset pt {Exterior Numerics} [encoding convertfrom iso8859-1 {Numeração exterior}]
@@ -265,6 +262,7 @@
::msgcat::mcset pt {Front} {Frente}
::msgcat::mcset pt {Full Range} {Intervalo completo}
::msgcat::mcset pt {Function} [encoding convertfrom iso8859-1 {Função}]
+::msgcat::mcset pt {GUI Font}
::msgcat::mcset pt {Galactic} [encoding convertfrom iso8859-1 {Galáctico}]
::msgcat::mcset pt {Gap}
::msgcat::mcset pt {Gaussian} {Gaussiano}
@@ -318,6 +316,7 @@
::msgcat::mcset pt {Interior Numerics} [encoding convertfrom iso8859-1 {Numeração Interior}]
::msgcat::mcset pt {Internal Parse Error}
::msgcat::mcset pt {Interval} {Intervalo}
+::msgcat::mcset pt {Invalid Column Name}
::msgcat::mcset pt {Invalid formated multipart/mixed mime type message} [encoding convertfrom iso8859-1 {Mensagem tipo MIME multiparte/mista em formato inválido}]
::msgcat::mcset pt {Invert Colormap} {Inverter mapa de cores}
::msgcat::mcset pt {Invert Selection} [encoding convertfrom iso8859-1 {Inverter Seleção}]
@@ -395,7 +394,7 @@
::msgcat::mcset pt {Low High} {Baixo Alto}
::msgcat::mcset pt {Low} {Baixo}
::msgcat::mcset pt {MIP}
-::msgcat::mcset pt {MPEG Quality Factor} {Fator de Qualidade MPEG}
+::msgcat::mcset pt {MPEG}
::msgcat::mcset pt {Magenta} {Magenta}
::msgcat::mcset pt {Magnification}
::msgcat::mcset pt {Magnifier} {Lente}
@@ -425,7 +424,6 @@
::msgcat::mcset pt {Math Function} [encoding convertfrom iso8859-1 {Função Matemática}]
::msgcat::mcset pt {Max Rows} [encoding convertfrom iso8859-1 {Máximas linhas}]
::msgcat::mcset pt {Max} [encoding convertfrom iso8859-1 {Máximo}]
-::msgcat::mcset pt {Menu Font}
::msgcat::mcset pt {Menus and Buttons}
::msgcat::mcset pt {Menu}
::msgcat::mcset pt {Message Log}
@@ -474,7 +472,6 @@
::msgcat::mcset pt {Normal}
::msgcat::mcset pt {North} {Norte}
::msgcat::mcset pt {Not Found}
-::msgcat::mcset pt {Not supported}
::msgcat::mcset pt {No} {Não}
::msgcat::mcset pt {Number of Samples}
::msgcat::mcset pt {Number of Threads}
@@ -530,6 +527,8 @@
::msgcat::mcset pt {Play} {Execute}
::msgcat::mcset pt {Please Select a Region}
::msgcat::mcset pt {Please specify width, height, and either name or (ra,dec)}
+::msgcat::mcset pt {Plot 2D}
+::msgcat::mcset pt {Plot 3D}
::msgcat::mcset pt {Plot Title} [encoding convertfrom iso8859-1 {Título}]
::msgcat::mcset pt {Plot Tool} {Ferramenta para Graficos}
::msgcat::mcset pt {Plotting Regions}
@@ -603,11 +602,7 @@
::msgcat::mcset pt {Save Contrast/Bias} {Salvar Contraste/Bias}
::msgcat::mcset pt {Save Data} {Salvar Dados}
::msgcat::mcset pt {Save FITS on download} {Salvar FITS ao carregar}
-::msgcat::mcset pt {Save FITS}
-::msgcat::mcset pt {Save Frame as Fits} {Salvar Frame como Fits}
-::msgcat::mcset pt {Save Frames as MPEG} {Salvar Frames como MPEG}
::msgcat::mcset pt {Save Image} {Salvar Imagem}
-::msgcat::mcset pt {Save MPEG}
::msgcat::mcset pt {Save Regions} [encoding convertfrom iso8859-1 {Salvar Regiões}]
::msgcat::mcset pt {Save Template}
::msgcat::mcset pt {Save} {Salvar}
@@ -672,6 +667,7 @@
::msgcat::mcset pt {Table}
::msgcat::mcset pt {Tabloid} [encoding convertfrom iso8859-1 {Tablóide}]
::msgcat::mcset pt {Template}
+::msgcat::mcset pt {Text Font}
::msgcat::mcset pt {Text} {Texto}
::msgcat::mcset pt {Theme}
::msgcat::mcset pt {Then} [encoding convertfrom iso8859-1 {Então}]
@@ -737,11 +733,11 @@
::msgcat::mcset pt {Writing Catalog}
::msgcat::mcset pt {X Axis Label} {Legenda do Eixo X}
::msgcat::mcset pt {X Axis} {Eixo X}
-::msgcat::mcset pt {X Point} {Ponto X}
::msgcat::mcset pt {XPA Information} [encoding convertfrom iso8859-1 {Informação sobre o XPA}]
::msgcat::mcset pt {XPA not initialized} [encoding convertfrom iso8859-1 {XPA não inicializado}]
::msgcat::mcset pt {XPA unable to verify hostname, setting XPA_METHOD to LOCAL}
::msgcat::mcset pt {XPA}
+::msgcat::mcset pt {X}
::msgcat::mcset pt {Y Axis Label} {Leganda do Eixo Y}
::msgcat::mcset pt {Y Axis} {Eixo Y}
::msgcat::mcset pt {Yellow} {Amarelo}
diff --git a/msgs/zh.msg b/msgs/zh.msg
index 175c22d..8212bea 100644
--- a/msgs/zh.msg
+++ b/msgs/zh.msg
@@ -16,8 +16,8 @@
::msgcat::mcset zh {An error has occurred during backup}
::msgcat::mcset zh {An error has occurred during restore}
::msgcat::mcset zh {An error has occurred invoking the Analysis task}
-::msgcat::mcset zh {An error has occurred while creating image}
-::msgcat::mcset zh {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen}
+::msgcat::mcset zh {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}
+::msgcat::mcset zh {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen.}
::msgcat::mcset zh {An error has occurred while printing}
::msgcat::mcset zh {An error has occurred while saving}
::msgcat::mcset zh {An internal error has been detected}
@@ -36,7 +36,6 @@
::msgcat::mcset zh {ArcSec}
::msgcat::mcset zh {Architecture}
::msgcat::mcset zh {Archives}
-::msgcat::mcset zh {Arrow Point}
::msgcat::mcset zh {Arrow}
::msgcat::mcset zh {Astronomy}
::msgcat::mcset zh {At Startup}
@@ -81,8 +80,7 @@
::msgcat::mcset zh {Border}
::msgcat::mcset zh {Box Annulus}
::msgcat::mcset zh {Box Panda}
-::msgcat::mcset zh {Box Point}
-::msgcat::mcset zh {BoxCircle Point}
+::msgcat::mcset zh {BoxCircle}
::msgcat::mcset zh {Boxcar}
::msgcat::mcset zh {Box}
::msgcat::mcset zh {Broadcast}
@@ -106,8 +104,6 @@
::msgcat::mcset zh {Center}
::msgcat::mcset zh {Centroid Parameters}
::msgcat::mcset zh {Centroid}
-::msgcat::mcset zh {Circle Point}
-::msgcat::mcset zh {Circle3d}
::msgcat::mcset zh {Circle}
::msgcat::mcset zh {Clear All}
::msgcat::mcset zh {Clear Analysis Commands}
@@ -143,6 +139,7 @@
::msgcat::mcset zh {Contours}
::msgcat::mcset zh {Contour}
::msgcat::mcset zh {Contrast}
+::msgcat::mcset zh {Contributed}
::msgcat::mcset zh {Convert to Polygons}
::msgcat::mcset zh {Coordinate Grid Parameters}
::msgcat::mcset zh {Coordinate Grid}
@@ -152,11 +149,11 @@
::msgcat::mcset zh {Copy Contours}
::msgcat::mcset zh {Copy to Regions}
::msgcat::mcset zh {Copy}
+::msgcat::mcset zh {Create Movie}
::msgcat::mcset zh {Create New Frame on Download}
::msgcat::mcset zh {Create}
::msgcat::mcset zh {Crop Parameters}
::msgcat::mcset zh {Crop}
-::msgcat::mcset zh {Cross Point}
::msgcat::mcset zh {Crosshair To}
::msgcat::mcset zh {Crosshair}
::msgcat::mcset zh {Cross}
@@ -196,7 +193,6 @@
::msgcat::mcset zh {Depth}
::msgcat::mcset zh {Detector}
::msgcat::mcset zh {Dialog Box}
-::msgcat::mcset zh {Diamond Point}
::msgcat::mcset zh {Diamond}
::msgcat::mcset zh {Dimension}
::msgcat::mcset zh {Disconnect}
@@ -238,6 +234,7 @@
::msgcat::mcset zh {Exclude}
::msgcat::mcset zh {Executing TCL code is not enabled}
::msgcat::mcset zh {Exit}
+::msgcat::mcset zh {Export Image}
::msgcat::mcset zh {Extention}
::msgcat::mcset zh {Exterior Axes}
::msgcat::mcset zh {Exterior Numerics}
@@ -265,6 +262,7 @@
::msgcat::mcset zh {Front}
::msgcat::mcset zh {Full Range}
::msgcat::mcset zh {Function}
+::msgcat::mcset zh {GUI Font}
::msgcat::mcset zh {Galactic}
::msgcat::mcset zh {Gap}
::msgcat::mcset zh {Gaussian}
@@ -318,6 +316,7 @@
::msgcat::mcset zh {Interior Numerics}
::msgcat::mcset zh {Internal Parse Error}
::msgcat::mcset zh {Interval}
+::msgcat::mcset zh {Invalid Column Name}
::msgcat::mcset zh {Invalid formated multipart/mixed mime type message}
::msgcat::mcset zh {Invert Colormap}
::msgcat::mcset zh {Invert Selection}
@@ -395,7 +394,7 @@
::msgcat::mcset zh {Low High}
::msgcat::mcset zh {Low}
::msgcat::mcset zh {MIP}
-::msgcat::mcset zh {MPEG Quality Factor}
+::msgcat::mcset zh {MPEG}
::msgcat::mcset zh {Magenta}
::msgcat::mcset zh {Magnification}
::msgcat::mcset zh {Magnifier}
@@ -425,7 +424,6 @@
::msgcat::mcset zh {Math Function}
::msgcat::mcset zh {Max Rows}
::msgcat::mcset zh {Max}
-::msgcat::mcset zh {Menu Font}
::msgcat::mcset zh {Menus and Buttons}
::msgcat::mcset zh {Menu}
::msgcat::mcset zh {Message Log}
@@ -474,7 +472,6 @@
::msgcat::mcset zh {Normal}
::msgcat::mcset zh {North}
::msgcat::mcset zh {Not Found}
-::msgcat::mcset zh {Not supported}
::msgcat::mcset zh {No}
::msgcat::mcset zh {Number of Samples}
::msgcat::mcset zh {Number of Threads}
@@ -530,6 +527,8 @@
::msgcat::mcset zh {Play}
::msgcat::mcset zh {Please Select a Region}
::msgcat::mcset zh {Please specify width, height, and either name or (ra,dec)}
+::msgcat::mcset zh {Plot 2D}
+::msgcat::mcset zh {Plot 3D}
::msgcat::mcset zh {Plot Title}
::msgcat::mcset zh {Plot Tool}
::msgcat::mcset zh {Plotting Regions}
@@ -603,11 +602,7 @@
::msgcat::mcset zh {Save Contrast/Bias}
::msgcat::mcset zh {Save Data}
::msgcat::mcset zh {Save FITS on download}
-::msgcat::mcset zh {Save FITS}
-::msgcat::mcset zh {Save Frame as Fits}
-::msgcat::mcset zh {Save Frames as MPEG}
::msgcat::mcset zh {Save Image}
-::msgcat::mcset zh {Save MPEG}
::msgcat::mcset zh {Save Regions}
::msgcat::mcset zh {Save Template}
::msgcat::mcset zh {Save}
@@ -672,6 +667,7 @@
::msgcat::mcset zh {Table}
::msgcat::mcset zh {Tabloid}
::msgcat::mcset zh {Template}
+::msgcat::mcset zh {Text Font}
::msgcat::mcset zh {Text}
::msgcat::mcset zh {Theme}
::msgcat::mcset zh {Then}
@@ -737,11 +733,11 @@
::msgcat::mcset zh {Writing Catalog}
::msgcat::mcset zh {X Axis Label}
::msgcat::mcset zh {X Axis}
-::msgcat::mcset zh {X Point}
::msgcat::mcset zh {XPA Information}
::msgcat::mcset zh {XPA not initialized}
::msgcat::mcset zh {XPA unable to verify hostname, setting XPA_METHOD to LOCAL}
::msgcat::mcset zh {XPA}
+::msgcat::mcset zh {X}
::msgcat::mcset zh {Y Axis Label}
::msgcat::mcset zh {Y Axis}
::msgcat::mcset zh {Yellow}
diff --git a/notes.txt b/notes.txt
index 0fdaf72..41ea51f 100644
--- a/notes.txt
+++ b/notes.txt
@@ -42,27 +42,29 @@ Build:
HTML Comment: <!-- something -->
Future:
- VO Image Arcive
+ VO Image Archive
+ VO/Chandra Footprint server
+ FOV (http://aladin.u-strasbg.fr/java/FOVs.xml)
+
Illustrate mode
- Reorder axes
Remote Observing
Windows64
Colorizer
- TIFF/JPEG/PNG frame support (LoadImage)
- Save TIFF/JPEG/PNG at high resolution
New Postscript print model
Non-Model File Browser
FITS structure viewer
- FOV (http://aladin.u-strasbg.fr/java/FOVs.xml)
Quick Look Tools (Imexamine)
2D surface plot
Topcat like plot
- CHANDRA foot-print server
+
List
-7.0beta
- wcs dialog
- slice>2
- naxis>2
+ catalog matching
+
+ command line for # threads
+ -auto?
+ prefs for AUTOSCAN value
+ tracy view grids problem
scale dialog (local/global)
cube
@@ -88,31 +90,20 @@ List
number of grid lines
3d regions
- ellipse
- box
- polygon
- point
line
plot
format wcs3
- save data in wcs3
ps crops x axis numerics
move zmin/zmax params to context level
keyContext vs context vs currentContext
mosaics
- faster render
- calculate zmin/zmax for each screen pixel
macros $url() | $image(3d)
fix mpeg
epanda issue (ds9.mosaic.fk4.reg)
- saveas tests (xpa.sh)
- allan's issue
- santiago's wcs issue
check saveas fits (LTMV?)
warp cursor weirdness (framebase)
- 3D-pdf
perspective
Magnifier- bitbit off by .5?
bin- test reblock
@@ -141,39 +132,26 @@ List
use threads
markers
- new regions
arrows
composite
handles
cb error
refresh
- saveas image
- use gs for linux/darwin
- 2d
- cube all/current?
- crop
- 3d
- cube all/current?
- crop
- savefitsCmd3d()
-
- save frame fits
- 2d cube current/all?
- crop
- 3d cube
- crop
-
- saveas mpeg
- 2d slice movie
- 3d rotation movie
-
windows
astAnnul too slow (for large data cubes)
refresh rate issue
-other
- consolidate point regions into one
+ -regions
+ cleanup- CB procs tcl
+ rm var(proc,distCB), var(proc,editCB)
+ line/projection/ruler
+ annulus/ellipse annulus/box annulus
+ panda/bpanda/epanda
+ vector
+ projection
+
xpa-talk
drop frametruecolor
colormap begin/motion/end? (lock colorbar)
@@ -214,6 +192,8 @@ List
HPX
- 7.1
+ savefits- crop
+
SIGBUS- look for EXC_BAD_ACCESS also
check/update blt
@@ -507,6 +487,15 @@ List
solar SOLX/SOLY,HPLN/HPLT,HGLN/HGLT,HRLN/HRLT
wcs editor- astrometry.net
+ header define AST (TPN=SCAMP)
+ ----- ------ ---
+ TAN+PV old SCAMP TPN+PV
+ noscamp TAN+PV?
+ TNX+Wat IRAF TPN+PV
+ TPV new SCAMP TPN+PV?
+ TAN+QV autoastrom TAN+PV?
+ TAN+SIP SIP PolyMap
+
Problem FITS WCS Files
wcssubs ast wcslib
------- --- ------
diff --git a/saotk/colorbar/colorbar.C b/saotk/colorbar/colorbar.C
index dab8072..909e8ee 100644
--- a/saotk/colorbar/colorbar.C
+++ b/saotk/colorbar/colorbar.C
@@ -179,6 +179,23 @@ void Colorbar::loadCmd(const char* fn, const char* type)
}
}
+void Colorbar::loadCmd(const char* fn, const char* type, const char* var)
+{
+ ColorMapInfo* map = newColorMap(fn, type);
+
+ if (map && map->load(var)) {
+ // add new colormap to end of the list
+ cmaps.append(map);
+ reset();
+ }
+ else {
+ // something has gone wrong, clean up, and bail out
+ delete map;
+ Tcl_AppendResult(interp, " unable to load colormap: ", fn, NULL);
+ result = TCL_ERROR;
+ }
+}
+
void Colorbar::mapCmd(char* which)
{
char* a = toLower(which);
@@ -291,24 +308,24 @@ void Colorbar::reset()
void Colorbar::loadDefaultCMaps()
{
- cmaps.append(new GreyColorMap());
- cmaps.append(new RedColorMap());
- cmaps.append(new GreenColorMap());
- cmaps.append(new BlueColorMap());
- cmaps.append(new AColorMap());
- cmaps.append(new BColorMap());
- cmaps.append(new BBColorMap());
- cmaps.append(new HEColorMap());
- cmaps.append(new I8ColorMap());
- cmaps.append(new AIPSColorMap());
- cmaps.append(new SLSColorMap());
- cmaps.append(new HSVColorMap());
- cmaps.append(new HeatColorMap());
- cmaps.append(new CoolColorMap());
- cmaps.append(new RainbowColorMap());
- cmaps.append(new StandardColorMap());
- cmaps.append(new StaircaseColorMap());
- cmaps.append(new ColorColorMap());
+ cmaps.append(new GreyColorMap(this));
+ cmaps.append(new RedColorMap(this));
+ cmaps.append(new GreenColorMap(this));
+ cmaps.append(new BlueColorMap(this));
+ cmaps.append(new AColorMap(this));
+ cmaps.append(new BColorMap(this));
+ cmaps.append(new BBColorMap(this));
+ cmaps.append(new HEColorMap(this));
+ cmaps.append(new I8ColorMap(this));
+ cmaps.append(new AIPSColorMap(this));
+ cmaps.append(new SLSColorMap(this));
+ cmaps.append(new HSVColorMap(this));
+ cmaps.append(new HeatColorMap(this));
+ cmaps.append(new CoolColorMap(this));
+ cmaps.append(new RainbowColorMap(this));
+ cmaps.append(new StandardColorMap(this));
+ cmaps.append(new StaircaseColorMap(this));
+ cmaps.append(new ColorColorMap(this));
cmaps.head();
}
@@ -335,9 +352,9 @@ ColorMapInfo* Colorbar::newColorMap(const char* fn, const char* type)
ptr = (char*)type;
if (strncmp(ptr, "lut", 3) == 0)
- map = new LUTColorMap();
+ map = new LUTColorMap(this);
else
- map = new SAOColorMap();
+ map = new SAOColorMap(this);
// Bail out if we don't have a new ColorMap
if (!map)
diff --git a/saotk/colorbar/colorbar.h b/saotk/colorbar/colorbar.h
index 4e5cf7f..53fb5b3 100644
--- a/saotk/colorbar/colorbar.h
+++ b/saotk/colorbar/colorbar.h
@@ -60,6 +60,7 @@ class Colorbar : public virtual ColorbarBase {
void listIDCmd();
void listNameCmd();
void loadCmd(const char*, const char*);
+ void loadCmd(const char*, const char*, const char*);
void mapCmd(char*);
void mapCmd(int);
void saveCmd(const char*);
diff --git a/saotk/colorbar/colorbarbase.h b/saotk/colorbar/colorbarbase.h
index 15dce67..3cbca6d 100644
--- a/saotk/colorbar/colorbarbase.h
+++ b/saotk/colorbar/colorbarbase.h
@@ -155,6 +155,7 @@ class ColorbarBase : public Widget {
virtual void listIDCmd() {}
virtual void listNameCmd() {}
virtual void loadCmd(const char*, const char*) {}
+ virtual void loadCmd(const char*, const char*, const char*) {}
virtual void mapCmd(char*) {}
virtual void mapCmd(int) {}
diff --git a/saotk/colorbar/colormap.C b/saotk/colorbar/colormap.C
index ab8f0db..b697ae8 100644
--- a/saotk/colorbar/colormap.C
+++ b/saotk/colorbar/colormap.C
@@ -9,7 +9,7 @@ static int squenceID = 1;
// ColorMapInfo
-ColorMapInfo::ColorMapInfo()
+ColorMapInfo::ColorMapInfo(Colorbar* p) : parent_(p)
{
id = squenceID++;
name =NULL;
diff --git a/saotk/colorbar/colormap.h b/saotk/colorbar/colormap.h
index 01441f0..2898831 100644
--- a/saotk/colorbar/colormap.h
+++ b/saotk/colorbar/colormap.h
@@ -15,10 +15,14 @@
#include <iomanip>
using namespace std;
+class Colorbar;
+
// ColorMapInfo
class ColorMapInfo {
protected:
+ Colorbar* parent_;
+
int id;
char* name;
char* fileName;
@@ -26,9 +30,11 @@ protected:
ColorMapInfo* previous_;
public:
- ColorMapInfo();
+ ColorMapInfo(Colorbar* p);
virtual ~ColorMapInfo();
+ Colorbar* parent() {return parent_;}
+
const char* getName() {return name;}
int getID() {return id;}
void setName(const char*);
@@ -46,6 +52,7 @@ public:
virtual ColorMapInfo* dup() =0;
virtual int load() =0;
+ virtual int load(const char*) =0;
virtual void save(const char*) =0;
virtual unsigned char getRedChar(int, int) =0;
diff --git a/saotk/colorbar/default.C b/saotk/colorbar/default.C
index 826aac8..141b86e 100644
--- a/saotk/colorbar/default.C
+++ b/saotk/colorbar/default.C
@@ -7,7 +7,7 @@
#include "default.h"
#include "util.h"
-GreyColorMap::GreyColorMap()
+GreyColorMap::GreyColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("grey");
fileName = dupstr("grey.sao");
@@ -22,7 +22,7 @@ GreyColorMap::GreyColorMap()
blue.append(new LIColor(1,1));
}
-RedColorMap::RedColorMap()
+RedColorMap::RedColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("red");
fileName = dupstr("red.sao");
@@ -37,7 +37,7 @@ RedColorMap::RedColorMap()
blue.append(new LIColor(0,0));
}
-GreenColorMap::GreenColorMap()
+GreenColorMap::GreenColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("green");
fileName = dupstr("green.sao");
@@ -52,7 +52,7 @@ GreenColorMap::GreenColorMap()
blue.append(new LIColor(0,0));
}
-BlueColorMap::BlueColorMap()
+BlueColorMap::BlueColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("blue");
fileName = dupstr("blue.sao");
@@ -67,7 +67,7 @@ BlueColorMap::BlueColorMap()
blue.append(new LIColor(1,1));
}
-AColorMap::AColorMap()
+AColorMap::AColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("a");
fileName = dupstr("a.sao");
@@ -91,7 +91,7 @@ AColorMap::AColorMap()
blue.append(new LIColor(1,0));
}
-BColorMap::BColorMap()
+BColorMap::BColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("b");
fileName = dupstr("b.sao");
@@ -113,7 +113,7 @@ BColorMap::BColorMap()
blue.append(new LIColor(1,1));
}
-BBColorMap::BBColorMap()
+BBColorMap::BBColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("bb");
fileName = dupstr("bb.sao");
@@ -132,7 +132,7 @@ BBColorMap::BBColorMap()
blue.append(new LIColor(1,1));
}
-HEColorMap::HEColorMap()
+HEColorMap::HEColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("he");
fileName = dupstr("he.sao");
@@ -158,7 +158,7 @@ HEColorMap::HEColorMap()
blue.append(new LIColor(1,1));
}
-I8ColorMap::I8ColorMap()
+I8ColorMap::I8ColorMap(Colorbar* p) : LUTColorMap(p)
{
name = dupstr("i8");
fileName = dupstr("i8.lut");
@@ -173,7 +173,7 @@ I8ColorMap::I8ColorMap()
colors.append(new RGBColor(1,1,1));
}
-AIPSColorMap::AIPSColorMap()
+AIPSColorMap::AIPSColorMap(Colorbar* p) : LUTColorMap(p)
{
name = dupstr("aips0");
fileName = dupstr("aips0.lut");
@@ -189,7 +189,7 @@ AIPSColorMap::AIPSColorMap()
colors.append(new RGBColor(1.00,.000,.000));
}
-HeatColorMap::HeatColorMap()
+HeatColorMap::HeatColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("heat");
fileName = dupstr("heat.sao");
@@ -207,7 +207,7 @@ HeatColorMap::HeatColorMap()
blue.append(new LIColor(1,1));
}
-CoolColorMap::CoolColorMap()
+CoolColorMap::CoolColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("cool");
fileName = dupstr("cool.sao");
@@ -227,7 +227,7 @@ CoolColorMap::CoolColorMap()
blue.append(new LIColor(1,1));
}
-RainbowColorMap::RainbowColorMap()
+RainbowColorMap::RainbowColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("rainbow");
fileName = dupstr("rainbow.sao");
@@ -250,7 +250,7 @@ RainbowColorMap::RainbowColorMap()
blue.append(new LIColor(1,0));
}
-StandardColorMap::StandardColorMap()
+StandardColorMap::StandardColorMap(Colorbar* p) : SAOColorMap(p)
{
name = dupstr("standard");
fileName = dupstr("standard.sao");
@@ -277,7 +277,7 @@ StandardColorMap::StandardColorMap()
blue.append(new LIColor(1,.3));
}
-StaircaseColorMap::StaircaseColorMap()
+StaircaseColorMap::StaircaseColorMap(Colorbar* p) : LUTColorMap(p)
{
name = dupstr("staircase");
fileName = dupstr("staircase.lut");
@@ -298,7 +298,7 @@ StaircaseColorMap::StaircaseColorMap()
}
}
-ColorColorMap::ColorColorMap()
+ColorColorMap::ColorColorMap(Colorbar* p) : LUTColorMap(p)
{
name = dupstr("color");
fileName = dupstr("color.lut");
@@ -321,7 +321,7 @@ ColorColorMap::ColorColorMap()
colors.append(new RGBColor(0.74902, 0.00000, 0.30980));
}
-SLSColorMap::SLSColorMap()
+SLSColorMap::SLSColorMap(Colorbar* p) : LUTColorMap(p)
{
name = dupstr("sls");
fileName = dupstr("sls.lut");
@@ -528,7 +528,7 @@ SLSColorMap::SLSColorMap()
colors.append(new RGBColor(1.000000, 1.000000, 1.000000));
}
-HSVColorMap::HSVColorMap()
+HSVColorMap::HSVColorMap(Colorbar* p) : LUTColorMap(p)
{
/* HSV: hue varies uniformly from 270 to 360 and back to 270.
* Value varies from zero to one using a cube root relation
diff --git a/saotk/colorbar/default.h b/saotk/colorbar/default.h
index 36e2ca9..6a2ae48 100644
--- a/saotk/colorbar/default.h
+++ b/saotk/colorbar/default.h
@@ -8,94 +8,96 @@
#include "sao.h"
#include "lut.h"
+class Colorbar;
+
class GreyColorMap : public SAOColorMap {
public:
- GreyColorMap();
+ GreyColorMap(Colorbar*);
};
class RedColorMap : public SAOColorMap {
public:
- RedColorMap();
+ RedColorMap(Colorbar*);
};
class GreenColorMap : public SAOColorMap {
public:
- GreenColorMap();
+ GreenColorMap(Colorbar*);
};
class BlueColorMap : public SAOColorMap {
public:
- BlueColorMap();
+ BlueColorMap(Colorbar*);
};
class AColorMap : public SAOColorMap {
public:
- AColorMap();
+ AColorMap(Colorbar*);
};
class BColorMap : public SAOColorMap {
public:
- BColorMap();
+ BColorMap(Colorbar*);
};
class BBColorMap : public SAOColorMap {
public:
- BBColorMap();
+ BBColorMap(Colorbar*);
};
class HEColorMap : public SAOColorMap {
public:
- HEColorMap();
+ HEColorMap(Colorbar*);
};
class I8ColorMap : public LUTColorMap {
public:
- I8ColorMap();
+ I8ColorMap(Colorbar*);
};
class AIPSColorMap : public LUTColorMap {
public:
- AIPSColorMap();
+ AIPSColorMap(Colorbar*);
};
class HeatColorMap : public SAOColorMap {
public:
- HeatColorMap();
+ HeatColorMap(Colorbar*);
};
class CoolColorMap : public SAOColorMap {
public:
- CoolColorMap();
+ CoolColorMap(Colorbar*);
};
class RainbowColorMap : public SAOColorMap {
public:
- RainbowColorMap();
+ RainbowColorMap(Colorbar*);
};
class StandardColorMap : public SAOColorMap {
public:
- StandardColorMap();
+ StandardColorMap(Colorbar*);
};
class StaircaseColorMap : public LUTColorMap {
public:
- StaircaseColorMap();
+ StaircaseColorMap(Colorbar*);
};
class ColorColorMap : public LUTColorMap {
public:
- ColorColorMap();
+ ColorColorMap(Colorbar*);
};
class SLSColorMap : public LUTColorMap {
public:
- SLSColorMap();
+ SLSColorMap(Colorbar*);
};
class HSVColorMap : public LUTColorMap {
public:
- HSVColorMap();
+ HSVColorMap(Colorbar*);
};
#endif
diff --git a/saotk/colorbar/lex.C b/saotk/colorbar/lex.C
index ed7cd09..c29d7a5 100644
--- a/saotk/colorbar/lex.C
+++ b/saotk/colorbar/lex.C
@@ -323,8 +323,8 @@ int yyFlexLexer::yywrap() { return 1; }
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 55
-#define YY_END_OF_BUFFER 56
+#define YY_NUM_RULES 56
+#define YY_END_OF_BUFFER 57
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -332,32 +332,32 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[212] =
+static yyconst flex_int16_t yy_accept[213] =
{ 0,
- 0, 0, 56, 54, 53, 55, 54, 54, 54, 54,
- 54, 45, 45, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 25, 54, 54, 54, 54, 54, 54,
- 54, 43, 54, 53, 52, 0, 52, 49, 0, 52,
- 50, 52, 45, 47, 46, 52, 52, 52, 52, 3,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 17, 52, 52, 52, 52, 52, 52, 52, 27, 52,
- 29, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 0, 52, 51, 49, 50, 52, 52, 46,
- 48, 52, 52, 52, 52, 52, 52, 52, 52, 52,
-
- 11, 52, 52, 52, 52, 19, 52, 52, 52, 52,
- 24, 52, 28, 52, 52, 52, 34, 52, 52, 52,
- 52, 52, 52, 52, 44, 51, 52, 47, 52, 2,
- 52, 5, 52, 52, 52, 52, 14, 12, 52, 16,
- 52, 52, 21, 22, 52, 26, 52, 52, 52, 52,
- 35, 36, 37, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 10, 13, 52, 52, 20, 52, 52, 31,
- 32, 52, 38, 52, 40, 41, 52, 1, 52, 52,
- 52, 52, 52, 15, 18, 23, 52, 52, 52, 42,
- 4, 52, 52, 52, 52, 52, 52, 39, 7, 6,
-
- 52, 9, 52, 52, 52, 52, 52, 8, 30, 33,
- 0
+ 0, 0, 57, 55, 54, 56, 55, 55, 55, 55,
+ 55, 46, 46, 55, 55, 55, 55, 55, 55, 55,
+ 55, 55, 55, 25, 55, 55, 55, 55, 55, 55,
+ 55, 44, 55, 54, 53, 0, 53, 50, 0, 53,
+ 51, 53, 46, 48, 47, 53, 53, 53, 53, 3,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 17, 53, 53, 53, 53, 53, 53, 53, 27, 53,
+ 29, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 0, 53, 52, 50, 51, 53, 53, 47,
+ 49, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+
+ 11, 53, 53, 53, 53, 19, 53, 53, 53, 53,
+ 24, 53, 28, 53, 53, 53, 34, 53, 53, 53,
+ 53, 39, 53, 53, 53, 45, 52, 53, 48, 53,
+ 2, 53, 5, 53, 53, 53, 53, 14, 12, 53,
+ 16, 53, 53, 21, 22, 53, 26, 53, 53, 53,
+ 53, 35, 36, 37, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 10, 13, 53, 53, 20, 53, 53,
+ 31, 32, 53, 38, 53, 41, 42, 53, 1, 53,
+ 53, 53, 53, 53, 15, 18, 23, 53, 53, 53,
+ 43, 4, 53, 53, 53, 53, 53, 53, 40, 7,
+
+ 6, 53, 9, 53, 53, 53, 53, 53, 8, 30,
+ 33, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -403,63 +403,63 @@ static yyconst flex_int32_t yy_meta[63] =
3, 3
} ;
-static yyconst flex_int16_t yy_base[219] =
+static yyconst flex_int16_t yy_base[220] =
{ 0,
- 0, 0, 162, 513, 151, 513, 0, 62, 64, 63,
+ 0, 0, 162, 514, 151, 514, 0, 62, 64, 63,
67, 72, 82, 69, 66, 76, 69, 84, 85, 87,
114, 116, 75, 109, 116, 88, 130, 131, 66, 135,
114, 133, 154, 116, 0, 111, 176, 0, 100, 178,
0, 176, 181, 185, 194, 203, 227, 161, 186, 0,
187, 165, 203, 194, 185, 204, 199, 218, 213, 230,
0, 214, 217, 216, 220, 243, 247, 232, 0, 241,
- 0, 230, 240, 233, 262, 244, 251, 247, 258, 259,
- 278, 259, 36, 289, 0, 513, 513, 286, 208, 298,
- 0, 260, 275, 285, 291, 288, 286, 287, 290, 304,
-
- 0, 286, 304, 307, 308, 0, 309, 299, 315, 305,
- 0, 316, 0, 303, 310, 325, 0, 320, 306, 336,
- 327, 332, 332, 353, 0, 513, 361, 369, 337, 0,
- 342, 0, 345, 346, 363, 367, 0, 0, 365, 0,
- 359, 365, 0, 0, 360, 0, 364, 364, 365, 373,
- 0, 0, 0, 383, 380, 382, 58, 376, 373, 388,
- 408, 394, 0, 0, 379, 380, 0, 380, 401, 0,
- 0, 385, 0, 396, 0, 0, 396, 0, 408, 423,
- 424, 414, 413, 0, 0, 0, 415, 414, 422, 0,
- 0, 420, 422, 438, 421, 432, 434, 0, 0, 0,
-
- 443, 0, 431, 436, 447, 434, 444, 0, 0, 0,
- 513, 65, 494, 497, 500, 503, 506, 509
+ 0, 230, 240, 233, 262, 244, 251, 247, 264, 253,
+ 278, 259, 36, 289, 0, 514, 514, 298, 208, 286,
+ 0, 260, 281, 288, 292, 292, 289, 289, 292, 306,
+
+ 0, 288, 306, 309, 312, 0, 313, 300, 316, 306,
+ 0, 317, 0, 305, 311, 325, 0, 323, 307, 342,
+ 330, 0, 333, 336, 356, 0, 514, 368, 383, 343,
+ 0, 348, 0, 346, 352, 363, 367, 0, 0, 365,
+ 0, 359, 365, 0, 0, 360, 0, 370, 370, 371,
+ 379, 0, 0, 0, 387, 386, 390, 58, 384, 384,
+ 399, 407, 404, 0, 0, 387, 388, 0, 385, 407,
+ 0, 0, 391, 0, 402, 0, 0, 396, 0, 409,
+ 423, 425, 420, 419, 0, 0, 0, 421, 420, 426,
+ 0, 0, 426, 430, 446, 432, 443, 444, 0, 0,
+
+ 0, 451, 0, 439, 441, 452, 439, 445, 0, 0,
+ 0, 514, 65, 495, 498, 501, 504, 507, 510
} ;
-static yyconst flex_int16_t yy_def[219] =
+static yyconst flex_int16_t yy_def[220] =
{ 0,
- 211, 1, 211, 211, 211, 211, 212, 213, 214, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 215, 211, 212, 216, 213, 212, 217, 214,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 218, 215, 212, 211, 211, 212, 212, 212,
- 47, 212, 212, 212, 212, 212, 212, 212, 212, 212,
-
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 211, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
-
- 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
- 0, 211, 211, 211, 211, 211, 211, 211
+ 212, 1, 212, 212, 212, 212, 213, 214, 215, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 216, 212, 213, 217, 214, 213, 218, 215,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 219, 216, 213, 212, 212, 213, 213, 213,
+ 47, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 212, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+
+ 213, 213, 213, 213, 213, 213, 213, 213, 213, 213,
+ 213, 0, 212, 212, 212, 212, 212, 212, 212
} ;
-static yyconst flex_int16_t yy_nxt[576] =
+static yyconst flex_int16_t yy_nxt[577] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
13, 13, 14, 15, 16, 17, 7, 18, 19, 20,
@@ -467,10 +467,10 @@ static yyconst flex_int16_t yy_nxt[576] =
29, 7, 30, 31, 7, 32, 14, 15, 16, 17,
7, 18, 19, 20, 21, 7, 7, 22, 23, 24,
25, 26, 27, 28, 29, 7, 30, 31, 7, 32,
- 33, 7, 36, 36, 39, 39, 38, 35, 176, 41,
+ 33, 7, 36, 36, 39, 39, 38, 35, 177, 41,
42, 43, 43, 43, 43, 44, 44, 44, 44, 45,
43, 43, 43, 43, 48, 54, 49, 67, 46, 45,
- 43, 43, 43, 43, 78, 51, 55, 126, 46, 50,
+ 43, 43, 43, 43, 78, 51, 55, 127, 46, 50,
52, 57, 53, 59, 56, 87, 47, 60, 48, 54,
49, 67, 46, 58, 72, 86, 73, 34, 78, 51,
@@ -478,55 +478,55 @@ static yyconst flex_int16_t yy_nxt[576] =
47, 60, 64, 70, 81, 69, 65, 58, 72, 62,
73, 71, 66, 76, 63, 68, 74, 79, 75, 82,
77, 80, 34, 61, 83, 83, 64, 70, 81, 69,
- 65, 211, 211, 62, 211, 71, 66, 76, 63, 211,
+ 65, 212, 212, 62, 212, 71, 66, 76, 63, 212,
74, 79, 75, 82, 77, 80, 36, 36, 39, 39,
- 38, 211, 92, 41, 44, 44, 44, 44, 45, 43,
+ 38, 212, 92, 41, 44, 44, 44, 44, 45, 43,
43, 43, 43, 44, 44, 44, 44, 46, 93, 94,
95, 88, 44, 44, 44, 44, 92, 98, 99, 89,
46, 90, 90, 90, 90, 85, 90, 90, 90, 90,
- 211, 46, 93, 94, 95, 88, 96, 100, 97, 101,
+ 212, 46, 93, 94, 95, 88, 96, 100, 97, 101,
102, 98, 99, 103, 46, 91, 91, 91, 91, 91,
91, 91, 91, 91, 91, 104, 105, 106, 107, 108,
96, 100, 97, 101, 102, 109, 112, 103, 113, 114,
115, 110, 116, 91, 91, 91, 91, 91, 91, 104,
105, 106, 107, 108, 111, 117, 118, 119, 120, 109,
- 112, 121, 113, 114, 115, 110, 116, 122, 125, 83,
- 83, 129, 127, 123, 128, 128, 128, 128, 111, 117,
-
- 118, 119, 120, 124, 130, 121, 90, 90, 90, 90,
- 131, 122, 125, 132, 133, 129, 134, 123, 135, 136,
- 137, 138, 139, 140, 141, 142, 211, 124, 130, 143,
- 144, 145, 146, 147, 131, 148, 151, 132, 133, 152,
- 134, 149, 135, 136, 137, 138, 139, 140, 141, 142,
- 85, 150, 153, 143, 144, 145, 146, 147, 154, 148,
- 151, 155, 156, 152, 157, 149, 159, 160, 158, 128,
- 128, 128, 128, 161, 162, 150, 153, 128, 128, 128,
- 128, 163, 154, 164, 165, 155, 156, 166, 167, 168,
- 159, 160, 158, 169, 170, 171, 172, 161, 162, 173,
-
- 174, 175, 177, 178, 179, 163, 183, 164, 165, 184,
- 185, 166, 167, 168, 186, 187, 188, 169, 170, 171,
- 172, 180, 189, 173, 174, 175, 177, 178, 179, 190,
- 183, 191, 181, 184, 185, 192, 193, 182, 186, 187,
- 188, 194, 195, 196, 197, 180, 189, 198, 199, 200,
- 201, 202, 203, 190, 204, 191, 181, 205, 206, 192,
- 193, 182, 207, 208, 209, 194, 195, 196, 197, 210,
- 211, 198, 199, 200, 201, 202, 203, 211, 204, 211,
- 211, 205, 206, 211, 211, 211, 207, 208, 209, 211,
- 211, 211, 211, 210, 37, 211, 37, 40, 211, 40,
-
- 84, 211, 84, 36, 211, 36, 39, 211, 39, 83,
- 211, 83, 3, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211
+ 112, 123, 113, 114, 115, 110, 116, 121, 126, 83,
+ 83, 130, 122, 124, 90, 90, 90, 90, 111, 117,
+
+ 118, 119, 120, 125, 128, 123, 129, 129, 129, 129,
+ 131, 121, 126, 132, 133, 130, 122, 124, 134, 135,
+ 136, 137, 138, 139, 140, 141, 212, 125, 142, 143,
+ 144, 145, 146, 147, 131, 148, 149, 132, 133, 152,
+ 153, 150, 134, 135, 136, 137, 138, 139, 140, 141,
+ 85, 151, 142, 143, 144, 145, 146, 147, 154, 148,
+ 149, 155, 156, 152, 153, 150, 157, 158, 212, 212,
+ 212, 159, 160, 161, 162, 151, 129, 129, 129, 129,
+ 163, 164, 154, 165, 166, 155, 156, 167, 168, 169,
+ 157, 129, 129, 129, 129, 159, 160, 161, 162, 170,
+
+ 171, 172, 173, 174, 163, 164, 175, 165, 166, 176,
+ 178, 167, 168, 169, 179, 180, 184, 185, 186, 187,
+ 181, 188, 189, 170, 171, 172, 173, 174, 190, 191,
+ 175, 182, 192, 176, 178, 193, 183, 194, 179, 180,
+ 184, 185, 186, 187, 181, 188, 189, 195, 196, 197,
+ 198, 199, 190, 191, 200, 182, 192, 201, 202, 193,
+ 183, 194, 203, 204, 205, 206, 207, 208, 209, 210,
+ 211, 195, 196, 197, 198, 199, 212, 212, 200, 212,
+ 212, 201, 202, 212, 212, 212, 203, 204, 205, 206,
+ 207, 208, 209, 210, 211, 37, 212, 37, 40, 212,
+
+ 40, 84, 212, 84, 36, 212, 36, 39, 212, 39,
+ 83, 212, 83, 3, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212
} ;
-static yyconst flex_int16_t yy_chk[576] =
+static yyconst flex_int16_t yy_chk[577] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -534,7 +534,7 @@ static yyconst flex_int16_t yy_chk[576] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 8, 8, 9, 9, 8, 212, 157, 9,
+ 1, 1, 8, 8, 9, 9, 8, 213, 158, 9,
10, 10, 10, 10, 10, 11, 11, 11, 11, 12,
12, 12, 12, 12, 14, 17, 15, 23, 12, 13,
13, 13, 13, 13, 29, 16, 18, 83, 13, 15,
@@ -558,39 +558,39 @@ static yyconst flex_int16_t yy_chk[576] =
53, 56, 53, 57, 58, 66, 68, 59, 70, 72,
73, 67, 74, 47, 47, 47, 47, 47, 47, 60,
62, 63, 64, 65, 67, 75, 76, 77, 78, 66,
- 68, 79, 70, 72, 73, 67, 74, 80, 82, 84,
- 84, 92, 88, 81, 88, 88, 88, 88, 67, 75,
-
- 76, 77, 78, 81, 93, 79, 90, 90, 90, 90,
- 94, 80, 82, 95, 96, 92, 97, 81, 98, 99,
- 100, 102, 103, 104, 105, 107, 0, 81, 93, 108,
- 109, 110, 112, 114, 94, 115, 118, 95, 96, 119,
- 97, 116, 98, 99, 100, 102, 103, 104, 105, 107,
- 84, 116, 120, 108, 109, 110, 112, 114, 121, 115,
- 118, 122, 123, 119, 124, 116, 129, 131, 124, 127,
- 127, 127, 127, 133, 134, 116, 120, 128, 128, 128,
- 128, 135, 121, 136, 139, 122, 123, 141, 142, 145,
- 129, 131, 124, 147, 148, 149, 150, 133, 134, 154,
-
- 155, 156, 158, 159, 160, 135, 162, 136, 139, 165,
- 166, 141, 142, 145, 168, 169, 172, 147, 148, 149,
- 150, 161, 174, 154, 155, 156, 158, 159, 160, 177,
- 162, 179, 161, 165, 166, 180, 181, 161, 168, 169,
- 172, 182, 183, 187, 188, 161, 174, 189, 192, 193,
- 194, 195, 196, 177, 197, 179, 161, 201, 203, 180,
- 181, 161, 204, 205, 206, 182, 183, 187, 188, 207,
- 0, 189, 192, 193, 194, 195, 196, 0, 197, 0,
- 0, 201, 203, 0, 0, 0, 204, 205, 206, 0,
- 0, 0, 0, 207, 213, 0, 213, 214, 0, 214,
-
- 215, 0, 215, 216, 0, 216, 217, 0, 217, 218,
- 0, 218, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211, 211, 211, 211, 211, 211,
- 211, 211, 211, 211, 211
+ 68, 80, 70, 72, 73, 67, 74, 79, 82, 84,
+ 84, 92, 79, 81, 90, 90, 90, 90, 67, 75,
+
+ 76, 77, 78, 81, 88, 80, 88, 88, 88, 88,
+ 93, 79, 82, 94, 95, 92, 79, 81, 96, 97,
+ 98, 99, 100, 102, 103, 104, 0, 81, 105, 107,
+ 108, 109, 110, 112, 93, 114, 115, 94, 95, 118,
+ 119, 116, 96, 97, 98, 99, 100, 102, 103, 104,
+ 84, 116, 105, 107, 108, 109, 110, 112, 120, 114,
+ 115, 121, 123, 118, 119, 116, 124, 125, 0, 0,
+ 0, 125, 130, 132, 134, 116, 128, 128, 128, 128,
+ 135, 136, 120, 137, 140, 121, 123, 142, 143, 146,
+ 124, 129, 129, 129, 129, 125, 130, 132, 134, 148,
+
+ 149, 150, 151, 155, 135, 136, 156, 137, 140, 157,
+ 159, 142, 143, 146, 160, 161, 163, 166, 167, 169,
+ 162, 170, 173, 148, 149, 150, 151, 155, 175, 178,
+ 156, 162, 180, 157, 159, 181, 162, 182, 160, 161,
+ 163, 166, 167, 169, 162, 170, 173, 183, 184, 188,
+ 189, 190, 175, 178, 193, 162, 180, 194, 195, 181,
+ 162, 182, 196, 197, 198, 202, 204, 205, 206, 207,
+ 208, 183, 184, 188, 189, 190, 0, 0, 193, 0,
+ 0, 194, 195, 0, 0, 0, 196, 197, 198, 202,
+ 204, 205, 206, 207, 208, 214, 0, 214, 215, 0,
+
+ 215, 216, 0, 216, 217, 0, 217, 218, 0, 218,
+ 219, 0, 219, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212
} ;
/* The intent behind this definition is that it'll catch
@@ -770,13 +770,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 212 )
+ if ( yy_current_state >= 213 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 211 );
+ while ( yy_current_state != 212 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -989,64 +989,69 @@ YY_RULE_SETUP
case 39:
YY_RULE_SETUP
#line 66 "lex.L"
-{return VERSION_;}
+{return VAR_;}
YY_BREAK
case 40:
YY_RULE_SETUP
#line 67 "lex.L"
-{return WIDTH_;}
+{return VERSION_;}
YY_BREAK
case 41:
YY_RULE_SETUP
#line 68 "lex.L"
-{return WIN32_;}
+{return WIDTH_;}
YY_BREAK
case 42:
YY_RULE_SETUP
#line 69 "lex.L"
-{return WINDOW_;}
+{return WIN32_;}
YY_BREAK
case 43:
YY_RULE_SETUP
#line 70 "lex.L"
-{return Y_;}
+{return WINDOW_;}
YY_BREAK
case 44:
YY_RULE_SETUP
#line 71 "lex.L"
-{return YES_;}
+{return Y_;}
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 73 "lex.L"
+#line 72 "lex.L"
+{return YES_;}
+ YY_BREAK
+case 46:
+YY_RULE_SETUP
+#line 74 "lex.L"
{ // Integer
cblval->integer = atoi(yytext);
return INT;
}
YY_BREAK
-case 46:
-#line 79 "lex.L"
case 47:
+#line 80 "lex.L"
+case 48:
YY_RULE_SETUP
-#line 79 "lex.L"
+#line 80 "lex.L"
{ // Real Number
cblval->real = atof(yytext);
return REAL;
}
YY_BREAK
-case 48:
+case 49:
YY_RULE_SETUP
-#line 84 "lex.L"
+#line 85 "lex.L"
{ // Pointer
cblval->ptr = (void*)strtoul(yytext,NULL,16);
return POINTER;
}
YY_BREAK
-case 49:
-#line 90 "lex.L"
case 50:
+#line 91 "lex.L"
+case 51:
YY_RULE_SETUP
-#line 90 "lex.L"
+#line 91 "lex.L"
{ // Quoted String
int ll = (yyleng-2)<(CBBUFSIZE-1) ? (yyleng-2):(CBBUFSIZE-1);
strncpy(cblval->str,yytext+1,ll); // skip the " "
@@ -1054,9 +1059,9 @@ YY_RULE_SETUP
return STRING;
}
YY_BREAK
-case 51:
+case 52:
YY_RULE_SETUP
-#line 97 "lex.L"
+#line 98 "lex.L"
{ // Quoted String
int ll = (yyleng-2)<(CBBUFSIZE-1) ? (yyleng-2):(CBBUFSIZE-1);
strncpy(cblval->str,yytext+1,ll); // skip the '{'
@@ -1064,9 +1069,9 @@ YY_RULE_SETUP
return STRING;
}
YY_BREAK
-case 52:
+case 53:
YY_RULE_SETUP
-#line 104 "lex.L"
+#line 105 "lex.L"
{ // General String-- at least 2 printable chars
int ll = yyleng <(CBBUFSIZE-1) ? yyleng:(CBBUFSIZE-1);
strncpy(cblval->str,yytext,ll);
@@ -1074,25 +1079,25 @@ YY_RULE_SETUP
return STRING;
}
YY_BREAK
-case 53:
+case 54:
YY_RULE_SETUP
-#line 111 "lex.L"
+#line 112 "lex.L"
{ // White Spaces
}
YY_BREAK
-case 54:
+case 55:
YY_RULE_SETUP
-#line 114 "lex.L"
+#line 115 "lex.L"
{ // Else, return the char
return yytext[0];
}
YY_BREAK
-case 55:
+case 56:
YY_RULE_SETUP
-#line 118 "lex.L"
+#line 119 "lex.L"
ECHO;
YY_BREAK
-#line 1096 "lex.C"
+#line 1101 "lex.C"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1474,7 +1479,7 @@ int yyFlexLexer::yy_get_next_buffer()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 212 )
+ if ( yy_current_state >= 213 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1502,11 +1507,11 @@ int yyFlexLexer::yy_get_next_buffer()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 212 )
+ if ( yy_current_state >= 213 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 211);
+ yy_is_jam = (yy_current_state == 212);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -1991,7 +1996,7 @@ void cbfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 118 "lex.L"
+#line 119 "lex.L"
diff --git a/saotk/colorbar/lex.L b/saotk/colorbar/lex.L
index 9e321f6..a81a666 100644
--- a/saotk/colorbar/lex.L
+++ b/saotk/colorbar/lex.L
@@ -63,6 +63,7 @@ save {return SAVE_;}
show {return SHOW_;}
true {return TRUE_;}
value {return VALUE_;}
+var {return VAR_;}
version {return VERSION_;}
width {return WIDTH_;}
win32 {return WIN32_;}
diff --git a/saotk/colorbar/lut.C b/saotk/colorbar/lut.C
index 453e8d9..588f2af 100644
--- a/saotk/colorbar/lut.C
+++ b/saotk/colorbar/lut.C
@@ -4,6 +4,7 @@
#include "lut.h"
#include "lutparser.H"
+#include "colorbar.h"
// LUT Parser Stuf
#undef yyFlexLexer
@@ -40,9 +41,8 @@ ostream& operator<<(ostream& str, RGBColor& cc)
// LUTColorMap
-LUTColorMap::LUTColorMap(const LUTColorMap& a)
+LUTColorMap::LUTColorMap(Colorbar* p) : ColorMapInfo(p)
{
- colors = a.colors;
}
void LUTColorMap::newRGBColor(float r, float g, float b)
@@ -66,6 +66,37 @@ int LUTColorMap::load()
return 1; // we found at least one RGBColor
}
+int LUTColorMap::load(const char* var)
+{
+ const char* ccmd = Tcl_GetVar(parent_->getInterp(), var,
+ TCL_GLOBAL_ONLY | TCL_LEAVE_ERR_MSG);
+ if (!ccmd)
+ return 0;
+
+ // only make command string as long as needed
+ // or the rest will be processed as garbage
+ int len = strlen(ccmd)+2;
+ char* buf = new char[len];
+ memcpy(buf, ccmd, len);
+
+ // add terminator to make parser happy
+ buf[len-2] = '\n';
+ buf[len-1] = NULL;
+
+ string x(buf);
+ istringstream istr(x);
+
+ rgbFlexLexer* ll = new rgbFlexLexer(&istr);
+ rgbparse(this, ll);
+ delete ll;
+ delete [] buf;
+
+ if (colors.isEmpty())
+ return 0; // bailout
+ else
+ return 1; // we found at least one RGBColor
+}
+
void LUTColorMap::save(const char* fn)
{
ofstream fstr(fn);
diff --git a/saotk/colorbar/lut.h b/saotk/colorbar/lut.h
index dd64ec2..e64a2b3 100644
--- a/saotk/colorbar/lut.h
+++ b/saotk/colorbar/lut.h
@@ -52,11 +52,11 @@ protected:
List<RGBColor> colors;
public:
- LUTColorMap() {};
- LUTColorMap(const LUTColorMap&);
+ LUTColorMap(Colorbar* p);
ColorMapInfo* dup() {return new LUTColorMap(*this);}
int load();
+ int load(const char* var);
void save(const char*);
unsigned char getRedChar(int, int);
diff --git a/saotk/colorbar/parser.C b/saotk/colorbar/parser.C
index 3960fa7..0ca28e3 100644
--- a/saotk/colorbar/parser.C
+++ b/saotk/colorbar/parser.C
@@ -116,12 +116,13 @@
SHOW_ = 297,
TRUE_ = 298,
VALUE_ = 299,
- VERSION_ = 300,
- WIDTH_ = 301,
- WIN32_ = 302,
- WINDOW_ = 303,
- Y_ = 304,
- YES_ = 305
+ VAR_ = 300,
+ VERSION_ = 301,
+ WIDTH_ = 302,
+ WIN32_ = 303,
+ WINDOW_ = 304,
+ Y_ = 305,
+ YES_ = 306
};
#endif
/* Tokens. */
@@ -167,12 +168,13 @@
#define SHOW_ 297
#define TRUE_ 298
#define VALUE_ 299
-#define VERSION_ 300
-#define WIDTH_ 301
-#define WIN32_ 302
-#define WINDOW_ 303
-#define Y_ 304
-#define YES_ 305
+#define VAR_ 300
+#define VERSION_ 301
+#define WIDTH_ 302
+#define WIN32_ 303
+#define WINDOW_ 304
+#define Y_ 305
+#define YES_ 306
@@ -223,7 +225,7 @@ typedef union YYSTYPE
void* ptr;
}
/* Line 193 of yacc.c. */
-#line 227 "parser.C"
+#line 229 "parser.C"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -236,7 +238,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */
-#line 240 "parser.C"
+#line 242 "parser.C"
#ifdef short
# undef short
@@ -449,22 +451,22 @@ union yyalloc
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 81
+#define YYFINAL 82
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 116
+#define YYLAST 123
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 51
+#define YYNTOKENS 52
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 18
+#define YYNNTS 19
/* YYNRULES -- Number of rules. */
-#define YYNRULES 77
+#define YYNRULES 80
/* YYNRULES -- Number of states. */
-#define YYNSTATES 116
+#define YYNSTATES 121
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 305
+#define YYMAXUTOK 306
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -502,7 +504,7 @@ static const yytype_uint8 yytranslate[] =
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50
+ 45, 46, 47, 48, 49, 50, 51
};
#if YYDEBUG
@@ -516,46 +518,49 @@ static const yytype_uint8 yyprhs[] =
76, 78, 80, 82, 84, 89, 98, 101, 104, 105,
108, 110, 112, 114, 116, 119, 123, 125, 127, 129,
131, 134, 137, 141, 143, 145, 147, 148, 150, 152,
- 154, 157, 160, 162, 165, 168, 170, 172, 174, 176,
- 179, 182, 185, 188, 190, 192, 194, 196
+ 154, 157, 160, 162, 165, 168, 171, 174, 178, 180,
+ 182, 184, 186, 189, 192, 195, 198, 200, 202, 204,
+ 206
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 52, 0, -1, 16, 54, -1, 7, 53, 53, -1,
- 13, 56, -1, 12, 57, -1, 17, 59, -1, 22,
- -1, 24, 55, -1, 25, 60, -1, 27, 61, -1,
- 28, 62, -1, 29, 63, -1, 30, 64, -1, 36,
- 66, -1, 38, -1, 40, 10, 5, -1, 41, 65,
- -1, 42, -1, 45, -1, 47, 68, -1, 4, -1,
- 3, -1, 35, -1, 34, -1, 3, -1, 50, -1,
- 49, -1, 35, -1, 43, -1, 33, -1, 31, -1,
- 34, -1, 19, -1, 3, 53, 53, 3, -1, 40,
- 53, 53, 53, 53, 53, 53, 3, -1, 26, 58,
- -1, 48, 5, -1, -1, 3, 6, -1, 8, -1,
+ 53, 0, -1, 16, 55, -1, 7, 54, 54, -1,
+ 13, 57, -1, 12, 58, -1, 17, 60, -1, 22,
+ -1, 24, 56, -1, 25, 61, -1, 27, 62, -1,
+ 28, 63, -1, 29, 65, -1, 30, 66, -1, 36,
+ 68, -1, 38, -1, 40, 10, 5, -1, 41, 67,
+ -1, 42, -1, 46, -1, 48, 70, -1, 4, -1,
+ 3, -1, 35, -1, 34, -1, 3, -1, 51, -1,
+ 50, -1, 35, -1, 43, -1, 33, -1, 31, -1,
+ 34, -1, 19, -1, 3, 54, 54, 3, -1, 40,
+ 54, 54, 54, 54, 54, 54, 3, -1, 26, 59,
+ -1, 49, 5, -1, -1, 3, 6, -1, 8, -1,
13, -1, 12, -1, 15, -1, 20, 32, -1, 20,
32, 3, -1, 21, -1, 23, -1, 24, -1, 32,
-1, 32, 3, -1, 40, 10, -1, 44, 3, 3,
- -1, 46, -1, 5, -1, 3, -1, -1, 23, -1,
+ -1, 47, -1, 5, -1, 3, -1, -1, 23, -1,
32, -1, 25, -1, 25, 23, -1, 25, 32, -1,
- 5, -1, 5, 5, -1, 25, 5, -1, 37, -1,
+ 5, -1, 5, 5, -1, 45, 64, -1, 25, 5,
+ -1, 5, 5, -1, 5, 5, 5, -1, 37, -1,
5, -1, 3, -1, 5, -1, 3, 5, -1, 14,
- 67, -1, 26, 3, -1, 39, 3, -1, 9, -1,
+ 69, -1, 26, 3, -1, 39, 3, -1, 9, -1,
18, -1, 40, -1, 11, -1, 37, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] =
{
- 0, 89, 89, 91, 92, 93, 94, 95, 96, 97,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 111, 112, 115, 116, 119, 121, 122, 123, 124,
- 126, 127, 128, 129, 132, 133, 137, 138, 141, 142,
- 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
- 155, 156, 157, 158, 161, 162, 165, 166, 167, 168,
- 169, 170, 173, 174, 175, 178, 185, 186, 189, 190,
- 192, 194, 195, 198, 199, 200, 201, 204
+ 0, 90, 90, 92, 93, 94, 95, 96, 97, 98,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 112, 113, 116, 117, 120, 122, 123, 124, 125,
+ 127, 128, 129, 130, 133, 134, 138, 139, 142, 143,
+ 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 162, 163, 166, 167, 168, 169,
+ 170, 171, 174, 175, 176, 177, 180, 181, 184, 191,
+ 192, 195, 196, 198, 200, 201, 204, 205, 206, 207,
+ 210
};
#endif
@@ -570,10 +575,10 @@ static const char *const yytname[] =
"HEIGHT_", "HIDE_", "ID_", "INVERT_", "ITT_", "LEVEL_", "LIST_", "LOAD_",
"MACOSX_", "MAP_", "N_", "NAME_", "NO_", "OFF_", "ON_", "POSTSCRIPT_",
"PRINT_", "RESET_", "RESOLUTION_", "RGB_", "SAVE_", "SHOW_", "TRUE_",
- "VALUE_", "VERSION_", "WIDTH_", "WIN32_", "WINDOW_", "Y_", "YES_",
- "$accept", "command", "numeric", "debug", "yesno", "colorbar",
- "colormap", "colormaplevel", "get", "itt", "list", "load", "macosx",
- "map", "save", "postscript", "pscolorspace", "win32", 0
+ "VALUE_", "VAR_", "VERSION_", "WIDTH_", "WIN32_", "WINDOW_", "Y_",
+ "YES_", "$accept", "command", "numeric", "debug", "yesno", "colorbar",
+ "colormap", "colormaplevel", "get", "itt", "list", "load", "loadVar",
+ "macosx", "map", "save", "postscript", "pscolorspace", "win32", 0
};
#endif
@@ -587,21 +592,22 @@ static const yytype_uint16 yytoknum[] =
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305
+ 305, 306
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 51, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
- 52, 53, 53, 54, 54, 55, 55, 55, 55, 55,
- 55, 55, 55, 55, 56, 56, 57, 57, 58, 58,
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
- 59, 59, 59, 59, 60, 60, 61, 61, 61, 61,
- 61, 61, 62, 62, 62, 63, 64, 64, 65, 65,
- 66, 66, 66, 67, 67, 67, 67, 68
+ 0, 52, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
+ 53, 54, 54, 55, 55, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 57, 57, 58, 58, 59, 59,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 61, 61, 62, 62, 62, 62,
+ 62, 62, 63, 63, 63, 63, 64, 64, 65, 66,
+ 66, 67, 67, 68, 68, 68, 69, 69, 69, 69,
+ 70
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -613,8 +619,9 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 4, 8, 2, 2, 0, 2,
1, 1, 1, 1, 2, 3, 1, 1, 1, 1,
2, 2, 3, 1, 1, 1, 0, 1, 1, 1,
- 2, 2, 1, 2, 2, 1, 1, 1, 1, 2,
- 2, 2, 2, 1, 1, 1, 1, 1
+ 2, 2, 1, 2, 2, 2, 2, 3, 1, 1,
+ 1, 1, 2, 2, 2, 2, 1, 1, 1, 1,
+ 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -628,45 +635,47 @@ static const yytype_uint8 yydefact[] =
24, 23, 2, 40, 42, 41, 43, 0, 46, 47,
48, 49, 0, 0, 53, 6, 25, 33, 31, 30,
32, 28, 29, 27, 26, 8, 55, 54, 9, 57,
- 59, 58, 10, 62, 0, 11, 65, 12, 67, 66,
- 13, 0, 0, 0, 14, 0, 0, 68, 17, 77,
- 20, 1, 3, 0, 36, 37, 0, 0, 44, 50,
- 51, 0, 60, 61, 63, 64, 73, 76, 74, 75,
- 70, 71, 72, 16, 69, 39, 0, 0, 45, 52,
- 34, 0, 0, 0, 0, 35
+ 59, 58, 10, 62, 0, 0, 11, 68, 12, 70,
+ 69, 13, 0, 0, 0, 14, 0, 0, 71, 17,
+ 80, 20, 1, 3, 0, 36, 37, 0, 0, 44,
+ 50, 51, 0, 60, 61, 63, 65, 0, 64, 76,
+ 79, 77, 78, 73, 74, 75, 16, 72, 39, 0,
+ 0, 45, 52, 66, 34, 0, 67, 0, 0, 0,
+ 35
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
- -1, 20, 23, 32, 55, 29, 26, 84, 45, 58,
- 62, 65, 67, 70, 78, 74, 100, 80
+ -1, 20, 23, 32, 55, 29, 26, 85, 45, 58,
+ 62, 66, 98, 68, 71, 79, 75, 103, 81
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -30
+#define YYPACT_NINF -31
static const yytype_int8 yypact[] =
{
- 69, 21, -12, -1, 23, 22, -30, -2, 17, -13,
- 1, -29, 18, -11, -30, 3, 46, -30, -30, -10,
- 38, -30, -30, 21, 41, 45, -30, 21, 21, -30,
- -30, -30, -30, -30, -30, -30, -30, 20, -30, -30,
- -30, 50, 49, 52, -30, -30, -30, -30, -30, -30,
- -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
- -16, -30, -30, 51, 55, -30, -30, -30, -30, -30,
- -30, 0, 58, 62, -30, 64, 65, -30, -30, -30,
- -30, -30, -30, 61, -30, -30, 21, 21, 68, -30,
- -30, 70, -30, -30, -30, -30, -30, -30, -30, -30,
- -30, -30, -30, -30, -30, -30, 71, 21, -30, -30,
- -30, 21, 21, 21, 72, -30
+ 30, 41, -14, -1, 27, 76, -31, -2, 3, -9,
+ 5, -30, 16, -11, -31, 10, 21, -31, -31, -12,
+ 34, -31, -31, 41, 24, 31, -31, 41, 41, -31,
+ -31, -31, -31, -31, -31, -31, -31, 6, -31, -31,
+ -31, 48, 43, 53, -31, -31, -31, -31, -31, -31,
+ -31, -31, -31, -31, -31, -31, -31, -31, -31, -31,
+ -10, -31, -31, 58, 62, 64, -31, -31, -31, -31,
+ -31, -31, 0, 70, 71, -31, 72, 74, -31, -31,
+ -31, -31, -31, -31, 69, -31, -31, 41, 41, 77,
+ -31, -31, 78, -31, -31, -31, -31, 80, -31, -31,
+ -31, -31, -31, -31, -31, -31, -31, -31, -31, 79,
+ 41, -31, -31, 81, -31, 41, -31, 41, 41, 87,
+ -31
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
- -30, -30, -23, -30, -30, -30, -30, -30, -30, -30,
- -30, -30, -30, -30, -30, -30, -30, -30
+ -31, -31, -23, -31, -31, -31, -31, -31, -31, -31,
+ -31, -31, -31, -31, -31, -31, -31, -31, -31
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -676,34 +685,36 @@ static const yytype_int8 yypgoto[] =
#define YYTABLE_NINF -1
static const yytype_uint8 yytable[] =
{
- 82, 46, 27, 71, 86, 87, 63, 92, 66, 96,
- 59, 97, 60, 75, 24, 72, 93, 47, 98, 61,
- 56, 68, 57, 69, 21, 22, 64, 79, 73, 48,
- 33, 49, 50, 51, 34, 35, 25, 36, 81, 28,
- 99, 52, 37, 38, 83, 39, 40, 53, 54, 76,
- 85, 77, 88, 89, 41, 91, 94, 30, 31, 90,
- 95, 101, 42, 106, 107, 102, 43, 105, 44, 103,
- 104, 108, 0, 109, 110, 115, 1, 0, 0, 0,
- 0, 2, 3, 0, 111, 4, 5, 0, 112, 113,
- 114, 6, 0, 7, 8, 0, 9, 10, 11, 12,
- 0, 0, 0, 0, 0, 13, 0, 14, 0, 15,
- 16, 17, 0, 0, 18, 0, 19
+ 83, 46, 27, 72, 87, 88, 56, 67, 57, 99,
+ 63, 100, 24, 93, 59, 73, 60, 47, 101, 69,
+ 76, 70, 94, 61, 77, 80, 78, 84, 74, 48,
+ 64, 49, 50, 51, 82, 25, 86, 1, 89, 28,
+ 102, 52, 2, 3, 21, 22, 4, 5, 53, 54,
+ 65, 90, 6, 91, 7, 8, 92, 9, 10, 11,
+ 12, 30, 31, 95, 109, 110, 13, 96, 14, 97,
+ 15, 16, 17, 104, 105, 108, 18, 106, 19, 107,
+ 111, 112, 114, 0, 33, 113, 116, 115, 34, 35,
+ 120, 36, 117, 0, 118, 119, 37, 38, 0, 39,
+ 40, 0, 0, 0, 0, 0, 0, 0, 41, 0,
+ 0, 0, 0, 0, 0, 0, 42, 0, 0, 0,
+ 43, 0, 0, 44
};
static const yytype_int8 yycheck[] =
{
- 23, 3, 3, 14, 27, 28, 5, 23, 37, 9,
- 23, 11, 25, 10, 26, 26, 32, 19, 18, 32,
- 3, 3, 5, 5, 3, 4, 25, 37, 39, 31,
- 8, 33, 34, 35, 12, 13, 48, 15, 0, 40,
- 40, 43, 20, 21, 3, 23, 24, 49, 50, 3,
- 5, 5, 32, 3, 32, 3, 5, 34, 35, 10,
- 5, 3, 40, 86, 87, 3, 44, 6, 46, 5,
- 5, 3, -1, 3, 3, 3, 7, -1, -1, -1,
- -1, 12, 13, -1, 107, 16, 17, -1, 111, 112,
- 113, 22, -1, 24, 25, -1, 27, 28, 29, 30,
- -1, -1, -1, -1, -1, 36, -1, 38, -1, 40,
- 41, 42, -1, -1, 45, -1, 47
+ 23, 3, 3, 14, 27, 28, 3, 37, 5, 9,
+ 5, 11, 26, 23, 23, 26, 25, 19, 18, 3,
+ 10, 5, 32, 32, 3, 37, 5, 3, 39, 31,
+ 25, 33, 34, 35, 0, 49, 5, 7, 32, 40,
+ 40, 43, 12, 13, 3, 4, 16, 17, 50, 51,
+ 45, 3, 22, 10, 24, 25, 3, 27, 28, 29,
+ 30, 34, 35, 5, 87, 88, 36, 5, 38, 5,
+ 40, 41, 42, 3, 3, 6, 46, 5, 48, 5,
+ 3, 3, 3, -1, 8, 5, 5, 110, 12, 13,
+ 3, 15, 115, -1, 117, 118, 20, 21, -1, 23,
+ 24, -1, -1, -1, -1, -1, -1, -1, 32, -1,
+ -1, -1, -1, -1, -1, -1, 40, -1, -1, -1,
+ 44, -1, -1, 47
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -711,17 +722,18 @@ static const yytype_int8 yycheck[] =
static const yytype_uint8 yystos[] =
{
0, 7, 12, 13, 16, 17, 22, 24, 25, 27,
- 28, 29, 30, 36, 38, 40, 41, 42, 45, 47,
- 52, 3, 4, 53, 26, 48, 57, 3, 40, 56,
- 34, 35, 54, 8, 12, 13, 15, 20, 21, 23,
- 24, 32, 40, 44, 46, 59, 3, 19, 31, 33,
- 34, 35, 43, 49, 50, 55, 3, 5, 60, 23,
- 25, 32, 61, 5, 25, 62, 37, 63, 3, 5,
- 64, 14, 26, 39, 66, 10, 3, 5, 65, 37,
- 68, 0, 53, 3, 58, 5, 53, 53, 32, 3,
- 10, 3, 23, 32, 5, 5, 9, 11, 18, 40,
- 67, 3, 3, 5, 5, 6, 53, 53, 3, 3,
- 3, 53, 53, 53, 53, 3
+ 28, 29, 30, 36, 38, 40, 41, 42, 46, 48,
+ 53, 3, 4, 54, 26, 49, 58, 3, 40, 57,
+ 34, 35, 55, 8, 12, 13, 15, 20, 21, 23,
+ 24, 32, 40, 44, 47, 60, 3, 19, 31, 33,
+ 34, 35, 43, 50, 51, 56, 3, 5, 61, 23,
+ 25, 32, 62, 5, 25, 45, 63, 37, 65, 3,
+ 5, 66, 14, 26, 39, 68, 10, 3, 5, 67,
+ 37, 70, 0, 54, 3, 59, 5, 54, 54, 32,
+ 3, 10, 3, 23, 32, 5, 5, 5, 64, 9,
+ 11, 18, 40, 69, 3, 3, 5, 5, 6, 54,
+ 54, 3, 3, 5, 3, 54, 5, 54, 54, 54,
+ 3
};
#define yyerrok (yyerrstatus = 0)
@@ -1549,257 +1561,267 @@ yyreduce:
switch (yyn)
{
case 3:
-#line 91 "parser.Y"
+#line 92 "parser.Y"
{cb->adjustCmd((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real));;}
break;
case 7:
-#line 95 "parser.Y"
+#line 96 "parser.Y"
{cb->hideCmd();;}
break;
case 8:
-#line 96 "parser.Y"
+#line 97 "parser.Y"
{cb->invertCmd((yyvsp[(2) - (2)].integer) );;}
break;
case 15:
-#line 103 "parser.Y"
+#line 104 "parser.Y"
{cb->resetCmd();;}
break;
case 16:
-#line 104 "parser.Y"
+#line 105 "parser.Y"
{cb->setRGBChannelCmd((yyvsp[(3) - (3)].str));;}
break;
case 18:
-#line 106 "parser.Y"
+#line 107 "parser.Y"
{cb->showCmd();;}
break;
case 19:
-#line 107 "parser.Y"
+#line 108 "parser.Y"
{cb->msg("Colorbar 1.0");;}
break;
case 21:
-#line 111 "parser.Y"
+#line 112 "parser.Y"
{(yyval.real)=(yyvsp[(1) - (1)].real);;}
break;
case 22:
-#line 112 "parser.Y"
+#line 113 "parser.Y"
{(yyval.real)=(yyvsp[(1) - (1)].integer);;}
break;
case 23:
-#line 115 "parser.Y"
+#line 116 "parser.Y"
{yydebug=1;;}
break;
case 24:
-#line 116 "parser.Y"
+#line 117 "parser.Y"
{yydebug=0;;}
break;
case 25:
-#line 119 "parser.Y"
+#line 120 "parser.Y"
{(yyval.integer)=((yyvsp[(1) - (1)].integer) ? 1 : 0);;}
break;
case 26:
-#line 121 "parser.Y"
+#line 122 "parser.Y"
{(yyval.integer)=1;;}
break;
case 27:
-#line 122 "parser.Y"
+#line 123 "parser.Y"
{(yyval.integer)=1;;}
break;
case 28:
-#line 123 "parser.Y"
+#line 124 "parser.Y"
{(yyval.integer)=1;;}
break;
case 29:
-#line 124 "parser.Y"
+#line 125 "parser.Y"
{(yyval.integer)=1;;}
break;
case 30:
-#line 126 "parser.Y"
+#line 127 "parser.Y"
{(yyval.integer)=0;;}
break;
case 31:
-#line 127 "parser.Y"
+#line 128 "parser.Y"
{(yyval.integer)=0;;}
break;
case 32:
-#line 128 "parser.Y"
+#line 129 "parser.Y"
{(yyval.integer)=0;;}
break;
case 33:
-#line 129 "parser.Y"
+#line 130 "parser.Y"
{(yyval.integer)=0;;}
break;
case 34:
-#line 132 "parser.Y"
+#line 133 "parser.Y"
{cb->setColorbarCmd((yyvsp[(1) - (4)].integer), (yyvsp[(2) - (4)].real), (yyvsp[(3) - (4)].real), (yyvsp[(4) - (4)].integer));;}
break;
case 35:
-#line 134 "parser.Y"
+#line 135 "parser.Y"
{cb->setColorbarCmd((yyvsp[(2) - (8)].real), (yyvsp[(3) - (8)].real), (yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].real), (yyvsp[(6) - (8)].real), (yyvsp[(7) - (8)].real), (yyvsp[(8) - (8)].integer));;}
break;
case 37:
-#line 138 "parser.Y"
+#line 139 "parser.Y"
{cb->setColormapWindowCmd((yyvsp[(2) - (2)].str));;}
break;
case 38:
-#line 141 "parser.Y"
+#line 142 "parser.Y"
{cb->setColormapLevelCmd();;}
break;
case 39:
-#line 142 "parser.Y"
+#line 143 "parser.Y"
{cb->setColormapLevelCmd((yyvsp[(1) - (2)].integer), (double*)(yyvsp[(2) - (2)].ptr));;}
break;
case 40:
-#line 145 "parser.Y"
+#line 146 "parser.Y"
{cb->getBiasCmd();;}
break;
case 41:
-#line 146 "parser.Y"
+#line 147 "parser.Y"
{cb->getColorbarCmd();;}
break;
case 42:
-#line 147 "parser.Y"
+#line 148 "parser.Y"
{cb->getColormapCmd();;}
break;
case 43:
-#line 148 "parser.Y"
+#line 149 "parser.Y"
{cb->getContrastCmd();;}
break;
case 44:
-#line 149 "parser.Y"
+#line 150 "parser.Y"
{cb->getCurrentFileNameCmd();;}
break;
case 45:
-#line 150 "parser.Y"
+#line 151 "parser.Y"
{cb->getColormapFileNameCmd((yyvsp[(3) - (3)].integer));;}
break;
case 46:
-#line 151 "parser.Y"
+#line 152 "parser.Y"
{cb->getHeightCmd();;}
break;
case 47:
-#line 152 "parser.Y"
+#line 153 "parser.Y"
{cb->getCurrentIDCmd();;}
break;
case 48:
-#line 153 "parser.Y"
+#line 154 "parser.Y"
{cb->getInvertCmd();;}
break;
case 49:
-#line 154 "parser.Y"
+#line 155 "parser.Y"
{cb->getCurrentNameCmd();;}
break;
case 50:
-#line 155 "parser.Y"
+#line 156 "parser.Y"
{cb->getColormapNameCmd((yyvsp[(2) - (2)].integer));;}
break;
case 51:
-#line 156 "parser.Y"
+#line 157 "parser.Y"
{cb->getRGBChannelCmd();;}
break;
case 52:
-#line 157 "parser.Y"
+#line 158 "parser.Y"
{cb->getValueCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
break;
case 53:
-#line 158 "parser.Y"
+#line 159 "parser.Y"
{cb->getWidthCmd();;}
break;
case 54:
-#line 161 "parser.Y"
+#line 162 "parser.Y"
{;}
break;
case 55:
-#line 162 "parser.Y"
+#line 163 "parser.Y"
{;}
break;
case 56:
-#line 165 "parser.Y"
+#line 166 "parser.Y"
{cb->listNameCmd();;}
break;
case 57:
-#line 166 "parser.Y"
+#line 167 "parser.Y"
{cb->listIDCmd();;}
break;
case 58:
-#line 167 "parser.Y"
+#line 168 "parser.Y"
{cb->listNameCmd();;}
break;
case 59:
-#line 168 "parser.Y"
+#line 169 "parser.Y"
{;}
break;
case 60:
-#line 169 "parser.Y"
+#line 170 "parser.Y"
{;}
break;
case 61:
-#line 170 "parser.Y"
+#line 171 "parser.Y"
{;}
break;
case 62:
-#line 173 "parser.Y"
+#line 174 "parser.Y"
{cb->loadCmd((yyvsp[(1) - (1)].str),NULL);;}
break;
case 63:
-#line 174 "parser.Y"
+#line 175 "parser.Y"
{cb->loadCmd((yyvsp[(1) - (2)].str),(yyvsp[(2) - (2)].str));;}
break;
- case 64:
-#line 175 "parser.Y"
+ case 65:
+#line 177 "parser.Y"
{;}
break;
- case 65:
-#line 178 "parser.Y"
+ case 66:
+#line 180 "parser.Y"
+ {cb->loadCmd((yyvsp[(1) - (2)].str),NULL,(yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 67:
+#line 181 "parser.Y"
+ {cb->loadCmd((yyvsp[(1) - (3)].str),(yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].str));;}
+ break;
+
+ case 68:
+#line 184 "parser.Y"
{
#ifdef _MACOSX
cb->macosxPrintCmd();
@@ -1807,63 +1829,63 @@ yyreduce:
;}
break;
- case 66:
-#line 185 "parser.Y"
+ case 69:
+#line 191 "parser.Y"
{cb->mapCmd((yyvsp[(1) - (1)].str));;}
break;
- case 67:
-#line 186 "parser.Y"
+ case 70:
+#line 192 "parser.Y"
{cb->mapCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 68:
-#line 189 "parser.Y"
+ case 71:
+#line 195 "parser.Y"
{cb->saveCmd((yyvsp[(1) - (1)].str));;}
break;
- case 69:
-#line 190 "parser.Y"
+ case 72:
+#line 196 "parser.Y"
{cb->saveCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].str));;}
break;
- case 70:
-#line 193 "parser.Y"
+ case 73:
+#line 199 "parser.Y"
{cb->psColorSpaceCmd((Widget::PSColorSpace)(yyvsp[(2) - (2)].integer));;}
break;
- case 71:
-#line 194 "parser.Y"
+ case 74:
+#line 200 "parser.Y"
{cb->psLevelCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 72:
-#line 195 "parser.Y"
+ case 75:
+#line 201 "parser.Y"
{cb->psResolutionCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 73:
-#line 198 "parser.Y"
+ case 76:
+#line 204 "parser.Y"
{(yyval.integer) = Widget::BW;;}
break;
- case 74:
-#line 199 "parser.Y"
+ case 77:
+#line 205 "parser.Y"
{(yyval.integer) = Widget::GRAY;;}
break;
- case 75:
-#line 200 "parser.Y"
+ case 78:
+#line 206 "parser.Y"
{(yyval.integer) = Widget::RGB;;}
break;
- case 76:
-#line 201 "parser.Y"
+ case 79:
+#line 207 "parser.Y"
{(yyval.integer) = Widget::CMYK;;}
break;
- case 77:
-#line 204 "parser.Y"
+ case 80:
+#line 210 "parser.Y"
{
#ifdef _WIN32
cb->win32PrintCmd();
@@ -1873,7 +1895,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 1877 "parser.C"
+#line 1899 "parser.C"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2087,6 +2109,6 @@ yyreturn:
}
-#line 211 "parser.Y"
+#line 217 "parser.Y"
diff --git a/saotk/colorbar/parser.H b/saotk/colorbar/parser.H
index d26f823..756ef59 100644
--- a/saotk/colorbar/parser.H
+++ b/saotk/colorbar/parser.H
@@ -81,12 +81,13 @@
SHOW_ = 297,
TRUE_ = 298,
VALUE_ = 299,
- VERSION_ = 300,
- WIDTH_ = 301,
- WIN32_ = 302,
- WINDOW_ = 303,
- Y_ = 304,
- YES_ = 305
+ VAR_ = 300,
+ VERSION_ = 301,
+ WIDTH_ = 302,
+ WIN32_ = 303,
+ WINDOW_ = 304,
+ Y_ = 305,
+ YES_ = 306
};
#endif
/* Tokens. */
@@ -132,12 +133,13 @@
#define SHOW_ 297
#define TRUE_ 298
#define VALUE_ 299
-#define VERSION_ 300
-#define WIDTH_ 301
-#define WIN32_ 302
-#define WINDOW_ 303
-#define Y_ 304
-#define YES_ 305
+#define VAR_ 300
+#define VERSION_ 301
+#define WIDTH_ 302
+#define WIN32_ 303
+#define WINDOW_ 304
+#define Y_ 305
+#define YES_ 306
@@ -153,7 +155,7 @@ typedef union YYSTYPE
void* ptr;
}
/* Line 1529 of yacc.c. */
-#line 157 "parser.H"
+#line 159 "parser.H"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
diff --git a/saotk/colorbar/parser.Y b/saotk/colorbar/parser.Y
index c9c08a7..388b87f 100644
--- a/saotk/colorbar/parser.Y
+++ b/saotk/colorbar/parser.Y
@@ -77,6 +77,7 @@ extern void cberror(ColorbarBase*, cbFlexLexer*, const char*);
%token SHOW_
%token TRUE_
%token VALUE_
+%token VAR_
%token VERSION_
%token WIDTH_
%token WIN32_
@@ -172,9 +173,14 @@ list : /* empty */ {cb->listNameCmd();}
load : STRING {cb->loadCmd($1,NULL);}
| STRING STRING {cb->loadCmd($1,$2);}
+ | VAR_ loadVar
| ITT_ STRING {}
;
+loadVar : STRING STRING {cb->loadCmd($1,NULL,$2);}
+ | STRING STRING STRING {cb->loadCmd($1,$2,$3);}
+ ;
+
macosx : PRINT_ {
#ifdef _MACOSX
cb->macosxPrintCmd();
diff --git a/saotk/colorbar/sao.C b/saotk/colorbar/sao.C
index 920019f..f3eeaff 100644
--- a/saotk/colorbar/sao.C
+++ b/saotk/colorbar/sao.C
@@ -4,6 +4,7 @@
#include "sao.h"
#include "saoparser.H"
+#include "colorbar.h"
SAOColorMap* cm;
@@ -33,19 +34,11 @@ ostream& operator<<(ostream& s, LIColor& c)
}
// SAOColorMap
-SAOColorMap::SAOColorMap()
+SAOColorMap::SAOColorMap(Colorbar* p) : ColorMapInfo(p)
{
current =&red;
}
-SAOColorMap::SAOColorMap(const SAOColorMap& a)
-{
- red = a.red;
- green = a.green;
- blue = a.blue;
- current = a.current;
-}
-
void SAOColorMap::newLIColor(float aa, float bb)
{
current->append(new LIColor(aa,bb));
@@ -82,6 +75,37 @@ int SAOColorMap::load()
return 1; // we found at least one LIColor for each RGB
}
+int SAOColorMap::load(const char* var)
+{
+ const char* ccmd = Tcl_GetVar(parent_->getInterp(), var,
+ TCL_GLOBAL_ONLY | TCL_LEAVE_ERR_MSG);
+ if (!ccmd)
+ return 0;
+
+ // only make command string as long as needed
+ // or the rest will be processed as garbage
+ int len = strlen(ccmd)+2;
+ char* buf = new char[len];
+ memcpy(buf, ccmd, len);
+
+ // add terminator to make parser happy
+ buf[len-2] = '\n';
+ buf[len-1] = NULL;
+
+ string x(buf);
+ istringstream istr(x);
+
+ liFlexLexer* ll = new liFlexLexer(&istr);
+ liparse(this, ll);
+ delete ll;
+ delete [] buf;
+
+ if (red.isEmpty() || green.isEmpty() || blue.isEmpty())
+ return 0; // something is missing, bailout
+ else
+ return 1; // we found at least one LIColor for each RGB
+}
+
void SAOColorMap::save(const char* fn)
{
ofstream f(fn);
diff --git a/saotk/colorbar/sao.h b/saotk/colorbar/sao.h
index 1c2f7b5..300fe4c 100644
--- a/saotk/colorbar/sao.h
+++ b/saotk/colorbar/sao.h
@@ -8,6 +8,8 @@
#include "colormap.h"
#include "list.h"
+class Colorbar;
+
// LIColor
class LIColor {
private:
@@ -58,11 +60,11 @@ protected:
unsigned short getColorShrt(int, int, List<LIColor>*);
public:
- SAOColorMap();
- SAOColorMap(const SAOColorMap&);
+ SAOColorMap(Colorbar* p);
ColorMapInfo* dup() {return new SAOColorMap(*this);}
int load();
+ int load(const char* var);
void save(const char*);
unsigned char getRedChar(int i, int c) {return getColorChar(i,c,&red);}
diff --git a/saotk/fitsy++/Makefile b/saotk/fitsy++/Makefile
index e41fe28..d524466 100644
--- a/saotk/fitsy++/Makefile
+++ b/saotk/fitsy++/Makefile
@@ -30,6 +30,7 @@ SS = \
outfile.C \
outfits.C \
outsocket.C \
+ photo.C \
plio.C \
rice.C \
share.C \
diff --git a/saotk/fitsy++/analysis.C b/saotk/fitsy++/analysis.C
index d339433..d8b3fa5 100644
--- a/saotk/fitsy++/analysis.C
+++ b/saotk/fitsy++/analysis.C
@@ -38,7 +38,7 @@ FitsAnalysis::FitsAnalysis(FitsFile* src)
return;
// clear memory
- memset(data_, '\0', size * sizeof(double));
+ memset(data_, 0, size*sizeof(double));
// made it this far, must be valid
orgFits_ = 0;
diff --git a/saotk/fitsy++/compress.C b/saotk/fitsy++/compress.C
index 9549d63..86ee9ad 100644
--- a/saotk/fitsy++/compress.C
+++ b/saotk/fitsy++/compress.C
@@ -534,6 +534,70 @@ template <> double FitsCompressm<double>::getValue(long long* ptr, double zs,
return hasScaling_ ? (*ptr)*zs + zz : *ptr;
}
+// getValue float
+
+template <class T> T FitsCompressm<T>::getValue(float* ptr, double zs,
+ double zz, int blank)
+{
+ return hasScaling_ ? T((*ptr)*zs + zz) : *ptr;
+}
+
+template <> float FitsCompressm<float>::getValue(float* ptr, double zs,
+ double zz, int blank)
+{
+ if (!hasBlank_ && !hasScaling_)
+ return *ptr;
+
+ if (hasBlank_ && *ptr == blank)
+ return getnanf();
+
+ return hasScaling_ ? (*ptr)*zs + zz : *ptr;
+}
+
+template <> double FitsCompressm<double>::getValue(float* ptr, double zs,
+ double zz, int blank)
+{
+ if (!hasBlank_ && !hasScaling_)
+ return *ptr;
+
+ if (hasBlank_ && *ptr == blank)
+ return getnand();
+
+ return hasScaling_ ? (*ptr)*zs + zz : *ptr;
+}
+
+// getValue double
+
+template <class T> T FitsCompressm<T>::getValue(double* ptr, double zs,
+ double zz, int blank)
+{
+ return hasScaling_ ? T((*ptr)*zs + zz) : *ptr;
+}
+
+template <> float FitsCompressm<float>::getValue(double* ptr, double zs,
+ double zz, int blank)
+{
+ if (!hasBlank_ && !hasScaling_)
+ return *ptr;
+
+ if (hasBlank_ && *ptr == blank)
+ return getnanf();
+
+ return hasScaling_ ? (*ptr)*zs + zz : *ptr;
+}
+
+template <> double FitsCompressm<double>::getValue(double* ptr, double zs,
+ double zz, int blank)
+{
+ if (!hasBlank_ && !hasScaling_)
+ return *ptr;
+
+ if (hasBlank_ && *ptr == blank)
+ return getnand();
+
+ return hasScaling_ ? (*ptr)*zs + zz : *ptr;
+}
+
template class FitsCompressm<unsigned char>;
template class FitsCompressm<short>;
template class FitsCompressm<unsigned short>;
diff --git a/saotk/fitsy++/compress.h b/saotk/fitsy++/compress.h
index 42904fb..16097af 100644
--- a/saotk/fitsy++/compress.h
+++ b/saotk/fitsy++/compress.h
@@ -20,7 +20,7 @@ class FitsCompress : public FitsFile {
double bzero_;
unsigned int blank_;
char* zmaskcmp_;
-
+
off_t tilesize_;
off_t size_;
@@ -58,6 +58,8 @@ class FitsCompressm : public FitsCompress {
T getValue(short*, double, double, int);
T getValue(int*, double, double, int);
T getValue(long long*, double, double, int);
+ T getValue(float*, double, double, int);
+ T getValue(double*, double, double, int);
public:
FitsCompressm(FitsFile*);
diff --git a/saotk/fitsy++/file.C b/saotk/fitsy++/file.C
index 526489c..03c9c2e 100644
--- a/saotk/fitsy++/file.C
+++ b/saotk/fitsy++/file.C
@@ -329,8 +329,11 @@ void FitsFile::setArrayByteSwap()
}
}
-int FitsFile::find(const char* name)
+int FitsFile::find(const char* name, FitsHead* alt)
{
+ if (alt)
+ return alt->find(name) ? 1 : 0;
+
if (head_)
if (head_->find(name))
return 1;
@@ -342,8 +345,11 @@ int FitsFile::find(const char* name)
return 0;
}
-int FitsFile::getLogical(const char* name, int def)
+int FitsFile::getLogical(const char* name, int def, FitsHead* alt)
{
+ if (alt)
+ return alt->getLogical(name,def);
+
if (head_) {
int r = head_->getLogical(name,def);
if (r != def)
@@ -356,8 +362,11 @@ int FitsFile::getLogical(const char* name, int def)
return def;
}
-int FitsFile::getInteger(const char* name, int def)
+int FitsFile::getInteger(const char* name, int def, FitsHead* alt)
{
+ if (alt)
+ return alt->getInteger(name,def);
+
if (head_) {
int r = head_->getInteger(name,def);
if (r != def)
@@ -370,8 +379,11 @@ int FitsFile::getInteger(const char* name, int def)
return def;
}
-double FitsFile::getReal(const char* name, double def)
+double FitsFile::getReal(const char* name, double def, FitsHead* alt)
{
+ if (alt)
+ return alt->getReal(name,def);
+
if (head_) {
double r = head_->getReal(name,def);
if (r != def)
@@ -385,8 +397,13 @@ double FitsFile::getReal(const char* name, double def)
}
void FitsFile::getComplex(const char* name, double* real, double* img,
- double rdef, double idef)
+ double rdef, double idef, FitsHead* alt)
{
+ if (alt) {
+ alt->getComplex(name, real, img, rdef, idef);
+ return;
+ }
+
if (head_) {
head_->getComplex(name, real, img, rdef, idef);
if (*real != rdef || *img != idef)
@@ -402,8 +419,11 @@ void FitsFile::getComplex(const char* name, double* real, double* img,
*img = idef;
}
-char* FitsFile::getString(const char* name)
+char* FitsFile::getString(const char* name, FitsHead* alt)
{
+ if (alt)
+ return alt->getString(name);
+
if (head_) {
char* r = head_->getString(name);
if (r)
@@ -416,8 +436,11 @@ char* FitsFile::getString(const char* name)
return NULL;
}
-char* FitsFile::getComment(const char* name)
+char* FitsFile::getComment(const char* name, FitsHead* alt)
{
+ if (alt)
+ return alt->getComment(name);
+
if (head_) {
char* r = head_->getComment(name);
if (r)
@@ -430,8 +453,11 @@ char* FitsFile::getComment(const char* name)
return NULL;
}
-char* FitsFile::getKeyword(const char* name)
+char* FitsFile::getKeyword(const char* name, FitsHead* alt)
{
+ if (alt)
+ return alt->getKeyword(name);
+
if (head_) {
char* r = head_->getKeyword(name);
if (r)
diff --git a/saotk/fitsy++/file.h b/saotk/fitsy++/file.h
index c52a6d4..629b9cd 100644
--- a/saotk/fitsy++/file.h
+++ b/saotk/fitsy++/file.h
@@ -168,15 +168,16 @@ public:
void setColMinMax(const char*, const Vector&);
- int find(const char* name);
- int getLogical(const char* name, int def);
- int getInteger(const char* name, int def);
- double getReal(const char* name, double def);
+ int find(const char* name, FitsHead* alt=NULL);
+
+ int getLogical(const char* name, int def, FitsHead* alt=NULL);
+ int getInteger(const char* name, int def, FitsHead* alt=NULL);
+ double getReal(const char* name, double def, FitsHead* alt=NULL);
void getComplex(const char* name, double* real, double* img,
- double rdef, double idef);
- char* getString(const char* name);
- char* getComment(const char* name);
- char* getKeyword(const char* name);
+ double rdef, double idef, FitsHead* alt=NULL);
+ char* getString(const char* name, FitsHead* alt=NULL);
+ char* getComment(const char* name, FitsHead* alt=NULL);
+ char* getKeyword(const char* name, FitsHead* alt=NULL);
int saveFitsImageFile(const char*, int);
int saveFitsImageChannel(Tcl_Interp*, const char*, int);
diff --git a/saotk/fitsy++/gzip.C b/saotk/fitsy++/gzip.C
index 406f9f4..9d91bde 100644
--- a/saotk/fitsy++/gzip.C
+++ b/saotk/fitsy++/gzip.C
@@ -14,6 +14,15 @@ using namespace std;
template<class T> FitsGzipm<T>::FitsGzipm(FitsFile* fits)
: FitsCompressm<T>(fits)
{
+ noquantize_ = 0;
+ char keyword[] = "ZQUANTIZ";
+ if (fits->find(keyword)) {
+ char* which = fits->getString(keyword);
+ if (!strncmp(which,"NONE",4))
+ noquantize_ = 1;
+ delete [] which;
+ }
+
FitsCompressm<T>::uncompress(fits);
}
@@ -128,27 +137,52 @@ template <class T> int FitsGzipm<T>::compressed(T* dest, char* sptr,
}
break;
case 4:
- for (int kk=kkstart; kk<kkstop; kk++)
- for (int jj=jjstart; jj<jjstop; jj++)
- for (int ii=iistart; ii<iistop; ii++,ll++) {
- // swap if needed
- if (FitsCompressm<T>::byteswap_) {
- const char* p = (const char*)((int*)obuf+ll);
- union {
- char c[4];
- int i;
- } u;
-
- u.c[3] = *p++;
- u.c[2] = *p++;
- u.c[1] = *p++;
- u.c[0] = *p;
-
- *((int*)obuf+ll) = u.i;
+ // special case
+ if (noquantize_) {
+ for (int kk=kkstart; kk<kkstop; kk++)
+ for (int jj=jjstart; jj<jjstop; jj++)
+ for (int ii=iistart; ii<iistop; ii++,ll++) {
+ // swap if needed
+ if (FitsCompressm<T>::byteswap_) {
+ const char* p = (const char*)((float*)obuf+ll);
+ union {
+ char c[4];
+ float i;
+ } u;
+
+ u.c[3] = *p++;
+ u.c[2] = *p++;
+ u.c[1] = *p++;
+ u.c[0] = *p;
+
+ *((float*)obuf+ll) = u.i;
+ }
+ dest[kk*FitsCompressm<T>::width_*FitsCompressm<T>::height_ + jj*FitsCompressm<T>::width_ + ii] = FitsCompressm<T>::getValue((float*)obuf+ll,zs,zz,blank);
}
-
- dest[kk*FitsCompressm<T>::width_*FitsCompressm<T>::height_ + jj*FitsCompressm<T>::width_ + ii] = FitsCompressm<T>::getValue((int*)obuf+ll,zs,zz,blank);
- }
+ }
+ else {
+ for (int kk=kkstart; kk<kkstop; kk++)
+ for (int jj=jjstart; jj<jjstop; jj++)
+ for (int ii=iistart; ii<iistop; ii++,ll++) {
+ // swap if needed
+ if (FitsCompressm<T>::byteswap_) {
+ const char* p = (const char*)((int*)obuf+ll);
+ union {
+ char c[4];
+ int i;
+ } u;
+
+ u.c[3] = *p++;
+ u.c[2] = *p++;
+ u.c[1] = *p++;
+ u.c[0] = *p;
+
+ *((int*)obuf+ll) = u.i;
+ }
+
+ dest[kk*FitsCompressm<T>::width_*FitsCompressm<T>::height_ + jj*FitsCompressm<T>::width_ + ii] = FitsCompressm<T>::getValue((int*)obuf+ll,zs,zz,blank);
+ }
+ }
break;
}
}
diff --git a/saotk/fitsy++/gzip.h b/saotk/fitsy++/gzip.h
index 772cc51..f4b2781 100644
--- a/saotk/fitsy++/gzip.h
+++ b/saotk/fitsy++/gzip.h
@@ -9,6 +9,9 @@
template<class T>
class FitsGzipm : public FitsCompressm<T> {
+ protected:
+ int noquantize_;
+
private:
int compressed(T*, char*, char*, int, int, int, int, int, int);
diff --git a/saotk/fitsy++/head.C b/saotk/fitsy++/head.C
index 00c2811..84ad674 100644
--- a/saotk/fitsy++/head.C
+++ b/saotk/fitsy++/head.C
@@ -12,8 +12,6 @@
#include "file.h"
#include "head.h"
-#define USEINDEX 1
-
FitsHead::FitsHead(char* raw, off_t bytes, Memory mem)
{
cards_ = raw;
@@ -39,9 +37,7 @@ FitsHead::FitsHead(char* raw, off_t bytes, Memory mem)
acard_ = ((ncard_+FTY_CARDS-1)/FTY_CARDS) * FTY_CARDS;
valid_ = 1;
- if (USEINDEX)
- buildIndex();
-
+ buildIndex();
updateHDU();
return;
}
@@ -74,9 +70,7 @@ FitsHead::FitsHead(char* raw, off_t bytes, char* mm,
acard_ = ((ncard_+FTY_CARDS-1)/FTY_CARDS) * FTY_CARDS;
valid_ = 1;
- if (USEINDEX)
- buildIndex();
-
+ buildIndex();
updateHDU();
return;
}
@@ -117,9 +111,7 @@ FitsHead::FitsHead(int width, int height, int depth, int bitpix, char* xtension)
hdu_ = NULL;
- if (USEINDEX)
- buildIndex();
-
+ buildIndex();
updateHDU();
}
@@ -152,9 +144,7 @@ FitsHead::FitsHead(int width, int height, int depth, int bitpix,
hdu_ = NULL;
- if (USEINDEX)
- buildIndex();
-
+ buildIndex();
updateHDU();
}
@@ -175,9 +165,7 @@ FitsHead::FitsHead(const FitsHead& a)
hdu_ = NULL;
- if (USEINDEX)
- buildIndex();
-
+ buildIndex();
updateHDU();
}
diff --git a/saotk/fitsy++/head.h b/saotk/fitsy++/head.h
index a9c3f3c..16fd669 100644
--- a/saotk/fitsy++/head.h
+++ b/saotk/fitsy++/head.h
@@ -75,9 +75,7 @@ public:
void updateCards() {if (hdu_) hdu_->updateCards(this);}
char* find(const char* name);
- char* findNext(const char* name);
char* findSeq(const char* name);
- char* fineSeqNext(const char* name);
char* findIndex(const char* name);
char* cardins(char* card, char* here);
diff --git a/saotk/fitsy++/photo.C b/saotk/fitsy++/photo.C
new file mode 100644
index 0000000..42da468
--- /dev/null
+++ b/saotk/fitsy++/photo.C
@@ -0,0 +1,139 @@
+// Copyright (C) 1999-2012
+// Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+// For conditions of distribution and use, see copyright notice in "copyright"
+
+#include <iostream>
+#include <sstream>
+#include <iomanip>
+using namespace std;
+
+#include "photo.h"
+
+FitsPhoto::FitsPhoto(Tcl_Interp* interp, const char* ph)
+{
+ // reset
+ valid_ = 0;
+
+ if (*ph == '\0') {
+ Tcl_AppendResult(interp, "bad image name ", NULL);
+ return;
+ }
+ Tk_PhotoHandle photo = Tk_FindPhoto(interp, ph);
+ if (!photo) {
+ Tcl_AppendResult(interp, "bad image handle ", NULL);
+ return;
+ }
+ Tk_PhotoImageBlock block;
+ if (!Tk_PhotoGetImage(photo,&block)) {
+ Tcl_AppendResult(interp, "bad image block ", NULL);
+ return;
+ }
+ int width =0;
+ int height =0;
+ Tk_PhotoGetSize(photo, &width, &height);
+
+ // new header
+ head_ = new FitsHead(width, height, 1, 8);
+ if (!head_->isValid())
+ return;
+
+ off_t size = width*height;
+ unsigned char* dest = new unsigned char[size];
+ data_ = dest;
+
+ unsigned char* src = block.pixelPtr;
+ for (int jj=height-1; jj>=0; jj--)
+ for (int ii=0; ii<width; ii++) {
+ int pp = (jj*width+ii)*block.pixelSize;
+ unsigned char rr = src[pp+block.offset[0]];
+ unsigned char gg = src[pp+block.offset[1]];
+ unsigned char bb = src[pp+block.offset[2]];
+ //unsigned char vv = (rr+gg+bb)/3.;
+ //unsigned char vv = .2126*rr + .7152*gg + .0722*bb;
+ unsigned char vv = .299*rr + .587*gg + .114*bb;
+ *dest++ = vv;
+ }
+
+ // made it this far, must be valid
+ byteswap_ = 0;
+ valid_ = 1;
+ orgFits_ = 0;
+}
+
+FitsPhoto::~FitsPhoto()
+{
+ if (data_)
+ delete [] (unsigned char*)data_;
+}
+
+FitsPhotoCube::FitsPhotoCube(Tcl_Interp* interp, const char* ph)
+{
+ // reset
+ valid_ = 0;
+
+ if (*ph == '\0') {
+ Tcl_AppendResult(interp, "bad image name ", NULL);
+ return;
+ }
+ Tk_PhotoHandle photo = Tk_FindPhoto(interp, ph);
+ if (!photo) {
+ Tcl_AppendResult(interp, "bad image handle ", NULL);
+ return;
+ }
+ Tk_PhotoImageBlock block;
+ if (!Tk_PhotoGetImage(photo,&block)) {
+ Tcl_AppendResult(interp, "bad image block ", NULL);
+ return;
+ }
+ int width =0;
+ int height =0;
+ int depth =3;
+ Tk_PhotoGetSize(photo, &width, &height);
+
+ // new header
+ head_ = new FitsHead(width, height, depth, 8);
+ if (!head_->isValid())
+ return;
+
+ off_t size = width*height*depth;
+ unsigned char* dest = new unsigned char[size];
+ data_ = dest;
+
+ for (int kk=0; kk<depth; kk++) {
+ unsigned char* src = block.pixelPtr;
+ for (int jj=height-1; jj>=0; jj--) {
+ for (int ii=0; ii<width; ii++) {
+ int pp = (jj*width+ii)*block.pixelSize;
+ *dest++ = src[pp+block.offset[kk]];
+ }
+ }
+ }
+
+ // made it this far, must be valid
+ byteswap_ = 0;
+ valid_ = 1;
+ orgFits_ = 0;
+}
+
+FitsPhotoCube::~FitsPhotoCube()
+{
+ if (data_)
+ delete [] (unsigned char*)data_;
+}
+
+FitsPhotoCubeNext::FitsPhotoCubeNext(FitsFile* prev)
+{
+ head_ = prev->head();
+ FitsImageHDU* hdu = (FitsImageHDU*)head_->hdu();
+
+ manageHead_ = 0;
+ primary_ = prev->primary();
+ managePrimary_ = 0;
+ ext_ = prev->ext();
+
+ inherit_ = head_->inherit();
+ data_ = (char*)prev->data() + hdu->imgbytes();
+
+ valid_ = 1;
+ return;
+}
diff --git a/saotk/fitsy++/photo.h b/saotk/fitsy++/photo.h
new file mode 100644
index 0000000..95df744
--- /dev/null
+++ b/saotk/fitsy++/photo.h
@@ -0,0 +1,29 @@
+// Copyright (C) 1999-2012
+// Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+// For conditions of distribution and use, see copyright notice in "copyright"
+
+#ifndef __fitsphoto_h__
+#define __fitsphoto_h__
+
+#include "vector.h"
+#include "file.h"
+
+class FitsPhoto : public FitsFile {
+ public:
+ FitsPhoto(Tcl_Interp* interp, const char*);
+ ~FitsPhoto();
+};
+
+class FitsPhotoCube : public FitsFile {
+ public:
+ FitsPhotoCube(Tcl_Interp* interp, const char*);
+ ~FitsPhotoCube();
+};
+
+class FitsPhotoCubeNext : public FitsFile {
+ public:
+ FitsPhotoCubeNext(FitsFile*);
+};
+
+#endif
+
diff --git a/saotk/frame/Makefile b/saotk/frame/Makefile
index 37080c2..2bf6b8f 100644
--- a/saotk/frame/Makefile
+++ b/saotk/frame/Makefile
@@ -22,7 +22,6 @@ SS = \
bpanda.C \
callback.C \
circle.C \
- circle3d.C \
colorscale.C \
colorscalergb.C \
colorscaletrue8.C \
diff --git a/saotk/frame/annulus.C b/saotk/frame/annulus.C
index 94d8e54..0428a51 100644
--- a/saotk/frame/annulus.C
+++ b/saotk/frame/annulus.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "annulus.h"
-#include "framebase.h"
#include "fitsimage.h"
Annulus::Annulus(const Annulus& a) : BaseEllipse(a) {}
@@ -24,7 +23,7 @@ Annulus::Annulus(Base* p, const Vector& ctr,
annuli_[i] = Vector(r,r);
}
- strcpy(type, "annulus");
+ strcpy(type_, "annulus");
numHandle = 4 + numAnnuli_;
updateBBox();
@@ -45,7 +44,7 @@ Annulus::Annulus(Base* p, const Vector& ctr,
annuli_[i] = Vector(r[i],r[i]);
sortAnnuli();
- strcpy(type, "annulus");
+ strcpy(type_, "annulus");
numHandle = 4 + numAnnuli_;
updateBBox();
@@ -91,20 +90,20 @@ int Annulus::addAnnuli(const Vector& v)
// list
-void Annulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Annulus::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ',';
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ',';
for (int i=0; i<numAnnuli_; i++) {
double r = ptr->mapLenFromRef(annuli_[i][0],sys);
str << r;
@@ -118,12 +117,12 @@ void Annulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] <<',';
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] <<',';
for (int i=0; i<numAnnuli_; i++) {
- double r = ptr->mapLenFromRef(annuli_[i][0],sys,ARCSEC);
+ double r = ptr->mapLenFromRef(annuli_[i][0],sys,Coord::ARCSEC);
str << r << "\"";
if (i!=numAnnuli_-1)
str << ',';
@@ -131,7 +130,7 @@ void Annulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
str << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -141,9 +140,9 @@ void Annulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
istringstream wcs(x);
wcs >> ra >> dec;
- str << type << '(' << ra << ',' << dec << ',' ;
+ str << type_ << '(' << ra << ',' << dec << ',' ;
for (int i=0; i<numAnnuli_; i++) {
- double r = ptr->mapLenFromRef(annuli_[i][0],sys,ARCSEC);
+ double r = ptr->mapLenFromRef(annuli_[i][0],sys,Coord::ARCSEC);
str << r << "\"";
if (i!=numAnnuli_-1)
str << ',';
@@ -155,7 +154,7 @@ void Annulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
}
else {
Vector v = ptr->mapFromRef(center,sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ',';
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ',';
for (int i=0; i<numAnnuli_; i++) {
double r = ptr->mapLenFromRef(annuli_[i][0],sys);
str << r;
@@ -170,13 +169,13 @@ void Annulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
listPost(str, conj, strip);
}
-void Annulus::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Annulus::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRowRadiusX(ptr,sys,annuli_,numAnnuli_);
@@ -185,23 +184,23 @@ void Annulus::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
XMLRowEnd(str);
}
-void Annulus::listCiao(ostream& str, CoordSystem sys, int strip)
+void Annulus::listCiao(ostream& str, Coord::CoordSystem sys, int strip)
{
FitsImage* ptr = parent->findFits();
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,PHYSICAL);
+ Vector v = ptr->mapFromRef(center,Coord::PHYSICAL);
for (int i=0; i<numAnnuli_-1; i++) {
listCiaoPre(str);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
- << ptr->mapLenFromRef(annuli_[i][0],PHYSICAL) << ','
- << ptr->mapLenFromRef(annuli_[i+1][0],PHYSICAL) << ')';
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ << ptr->mapLenFromRef(annuli_[i][0],Coord::PHYSICAL) << ','
+ << ptr->mapLenFromRef(annuli_[i+1][0],Coord::PHYSICAL) << ')';
listCiaoPost(str, strip);
}
@@ -211,7 +210,7 @@ void Annulus::listCiao(ostream& str, CoordSystem sys, int strip)
if (ptr->hasWCSCel(sys)) {
char buf[64];
- ptr->mapFromRef(center,sys,FK5,SEXAGESIMAL,buf,64);
+ ptr->mapFromRef(center,sys,Coord::FK5,Coord::SEXAGESIMAL,buf,64);
char ra[16];
char dec[16];
string x(buf);
@@ -221,9 +220,9 @@ void Annulus::listCiao(ostream& str, CoordSystem sys, int strip)
for (int i=0; i<numAnnuli_-1; i++) {
listCiaoPre(str);
- str << type << '(' << ra << ',' << dec << ','
- << ptr->mapLenFromRef(annuli_[i][0],sys,ARCMIN) << '\'' << ','
- << ptr->mapLenFromRef(annuli_[i+1][0],sys,ARCMIN) << '\'' << ')';
+ str << type_ << '(' << ra << ',' << dec << ','
+ << ptr->mapLenFromRef(annuli_[i][0],sys,Coord::ARCMIN) << '\'' << ','
+ << ptr->mapLenFromRef(annuli_[i+1][0],sys,Coord::ARCMIN) << '\'' << ')';
listCiaoPost(str, strip);
}
@@ -231,23 +230,23 @@ void Annulus::listCiao(ostream& str, CoordSystem sys, int strip)
}
}
-void Annulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Annulus::listPros(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
switch (sys) {
- case IMAGE:
- case DETECTOR:
- case AMPLIFIER:
- sys = IMAGE;
- case PHYSICAL:
+ case Coord::IMAGE:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
+ sys = Coord::IMAGE;
+ case Coord::PHYSICAL:
{
Vector v = ptr->mapFromRef(center,sys);
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << setprecision(8) << v;
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << setprecision(8) << v;
for (int i=0; i<numAnnuli_; i++) {
- double r = ptr->mapLenFromRef(annuli_[i][0],IMAGE);
+ double r = ptr->mapLenFromRef(annuli_[i][0],Coord::IMAGE);
str << r << ' ';
}
}
@@ -255,19 +254,19 @@ void Annulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << setprecision(8)
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << setprecision(8)
<< v[0] << "d " << v[1] <<"d";
for (int i=0; i<numAnnuli_; i++) {
- double r = ptr->mapLenFromRef(annuli_[i][0],sys,ARCSEC);
+ double r = ptr->mapLenFromRef(annuli_[i][0],sys,Coord::ARCSEC);
str << ' ' << r << '"';
}
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -280,10 +279,10 @@ void Annulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
if (dec[0]=='+')
dec++;
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << ra << ' ' << dec;
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << ra << ' ' << dec;
for (int i=0; i<numAnnuli_; i++) {
- double r = ptr->mapLenFromRef(annuli_[i][0],sys,ARCSEC);
+ double r = ptr->mapLenFromRef(annuli_[i][0],sys,Coord::ARCSEC);
str << ' ' << r << '"';
}
}
@@ -300,11 +299,11 @@ void Annulus::listSAOimage(ostream& str, int strip)
FitsImage* ptr = parent->findFits();
listSAOimagePre(str);
- Vector v = ptr->mapFromRef(center,IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ',';
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ',';
for (int i=0; i<numAnnuli_; i++) {
- double r = ptr->mapLenFromRef(annuli_[i][0],IMAGE);
+ double r = ptr->mapLenFromRef(annuli_[i][0],Coord::IMAGE);
str << r;
if (i!=numAnnuli_-1)
str << ',';
diff --git a/saotk/frame/annulus.h b/saotk/frame/annulus.h
index 9dd65ce..e5b228e 100644
--- a/saotk/frame/annulus.h
+++ b/saotk/frame/annulus.h
@@ -33,10 +33,10 @@ class Annulus : public BaseEllipse {
void rotate(const Vector& v, int h) {}
void rotateEnd() {}
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listCiao(ostream&, CoordSystem, int);
- void listPros(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void listCiao(ostream&, Coord::CoordSystem, int);
+ void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
void listSAOimage(ostream&, int);
// special composite funtionality
diff --git a/saotk/frame/base.C b/saotk/frame/base.C
index 97cc6b6..d57306e 100644
--- a/saotk/frame/base.C
+++ b/saotk/frame/base.C
@@ -64,7 +64,7 @@ Base::Base(Tcl_Interp* i, Tk_Canvas c, Tk_Item* item)
keyContext = NULL;
keyContextSet =0;
- orientation = NORMAL;
+ orientation = Coord::NORMAL;
zoom_ = Vector(1,1);
rotation = 0;
@@ -82,8 +82,8 @@ Base::Base(Tcl_Interp* i, Tk_Canvas c, Tk_Item* item)
pannerWidth = 0;
pannerHeight = 0;
pannerName[0] = '\0';
- pannerSystem = WCS;
- pannerSky = FK5;
+ pannerSystem = Coord::WCS;
+ pannerSky = Coord::FK5;
usePanner = 0;
pannerGC = XCreateGC(display, Tk_WindowId(tkwin), 0, NULL);
XSetLineAttributes(display, pannerGC, 1, LineSolid, CapButt, JoinMiter);
@@ -99,19 +99,19 @@ Base::Base(Tcl_Interp* i, Tk_Canvas c, Tk_Item* item)
useMagnifierCursor = 1;
magnifierColorName = dupstr("white");
- wcsSystem_ = WCS;
- wcsSky_ = FK5;
- wcsSkyFormat_ = DEGREES;
+ wcsSystem_ = Coord::WCS;
+ wcsSky_ = Coord::FK5;
+ wcsSkyFormat_ = Coord::DEGREES;
wcsAlign_ = 0;
wcsAlt_ =0;
- xySystem_ = IMAGE;
- xySky_ = FK5;
+ xySystem_ = Coord::IMAGE;
+ xySky_ = Coord::FK5;
- wcsOrientation = NORMAL;
+ wcsOrientation = Coord::NORMAL;
wcsRotation = 0;
- irafOrientation = (Orientation)-1;
+ irafOrientation = (Coord::Orientation)-1;
maskColorName = dupstr("red");
maskAlpha = 1;
@@ -249,7 +249,7 @@ Base::~Base()
void Base::alignWCS()
{
if (!wcsAlign_ || !context->cfits || !hasWCS(wcsSystem_)) {
- wcsOrientation = NORMAL;
+ wcsOrientation = Coord::NORMAL;
wcsOrientationMatrix.identity();
wcsRotation = 0;
return;
@@ -259,10 +259,10 @@ void Base::alignWCS()
&wcsOrientation, &wcsOrientationMatrix, &wcsRotation);
}
-void Base::alignWCS(CoordSystem sys, SkyFrame sky)
+void Base::alignWCS(Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (!wcsAlign_ || !context->cfits || !hasWCS(sys)) {
- wcsOrientation = NORMAL;
+ wcsOrientation = Coord::NORMAL;
wcsOrientationMatrix.identity();
wcsRotation = 0;
return;
@@ -272,10 +272,10 @@ void Base::alignWCS(CoordSystem sys, SkyFrame sky)
&wcsOrientation, &wcsOrientationMatrix, &wcsRotation);
}
-void Base::alignWCS(FitsImage* ptr, CoordSystem sys)
+void Base::alignWCS(FitsImage* ptr, Coord::CoordSystem sys)
{
if (!wcsAlign_ || !ptr || !context->cfits || !hasWCS(wcsSystem_)) {
- wcsOrientation = NORMAL;
+ wcsOrientation = Coord::NORMAL;
wcsOrientationMatrix.identity();
wcsRotation = 0;
return;
@@ -286,12 +286,12 @@ void Base::alignWCS(FitsImage* ptr, CoordSystem sys)
}
void Base::calcAlignWCS(FitsImage* fits1,
- CoordSystem sys1, SkyFrame sky,
- Orientation* orientation, Matrix* oo,
+ Coord::CoordSystem sys1, Coord::SkyFrame sky,
+ Coord::Orientation* orientation, Matrix* oo,
double* rotation)
{
// init
- *orientation = NORMAL;
+ *orientation = Coord::NORMAL;
oo->identity();
*rotation = 0;
@@ -301,10 +301,10 @@ void Base::calcAlignWCS(FitsImage* fits1,
// orientation
*orientation = fits1->getWCSOrientation(sys1,sky);
switch (*orientation) {
- case NORMAL:
+ case Coord::NORMAL:
oo->identity();
break;
- case XX:
+ case Coord::XX:
*oo = FlipX();
break;
}
@@ -314,12 +314,13 @@ void Base::calcAlignWCS(FitsImage* fits1,
}
void Base::calcAlignWCS(FitsImage* fits1, FitsImage* fits2,
- CoordSystem sys1, CoordSystem sys2, SkyFrame sky,
- Orientation* orientation, Matrix* oo,
+ Coord::CoordSystem sys1, Coord::CoordSystem sys2,
+ Coord::SkyFrame sky,
+ Coord::Orientation* orientation, Matrix* oo,
double* rotation, Vector* zoom)
{
// init
- *orientation = NORMAL;
+ *orientation = Coord::NORMAL;
oo->identity();
*rotation = 0;
@@ -335,10 +336,10 @@ void Base::calcAlignWCS(FitsImage* fits1, FitsImage* fits2,
// orientation
*orientation = fits2->getWCSOrientation(sys2,sky);
switch (*orientation) {
- case NORMAL:
+ case Coord::NORMAL:
oo->identity();
break;
- case XX:
+ case Coord::XX:
*oo = FlipX();
break;
}
@@ -359,7 +360,7 @@ void Base::calcAlignWCS(FitsImage* fits1, FitsImage* fits2,
(east[0]==0 && east[1]==0) ||
(diff[0]<.01 && diff[1]<.01)) {
*rotation = 0;
- *orientation = NORMAL;
+ *orientation = Coord::NORMAL;
oo->identity();
return;
}
@@ -377,7 +378,8 @@ void Base::calcAlignWCS(FitsImage* fits1, FitsImage* fits2,
}
Matrix Base::calcAlignWCS(FitsImage* fits1, FitsImage* fits2,
- CoordSystem sys1, CoordSystem sys2, SkyFrame sky)
+ Coord::CoordSystem sys1, Coord::CoordSystem sys2,
+ Coord::SkyFrame sky)
{
if ((!fits1 || !fits2) ||
(fits1 == fits2) ||
@@ -386,38 +388,40 @@ Matrix Base::calcAlignWCS(FitsImage* fits1, FitsImage* fits2,
return Matrix();
Vector org1 = fits1->center();
+ // Vector org1 = fits1->getWCScrpix(sys1);
Vector orval1 = fits1->pix2wcs(org1,sys1,sky);
Vector org2 = fits2->center();
+ // Vector org2 = fits2->getWCScrpix(sys2);
Vector orval2 = fits2->pix2wcs(org2,sys2,sky);
// orientation
- Orientation orientation =NORMAL;
+ Coord::Orientation orientation =Coord::NORMAL;
{
- Orientation o1 = fits1->getWCSOrientation(sys1,sky);
- Orientation o2 = fits2->getWCSOrientation(sys2,sky);
+ Coord::Orientation o1 = fits1->getWCSOrientation(sys1,sky);
+ Coord::Orientation o2 = fits2->getWCSOrientation(sys2,sky);
switch (o1) {
- case NORMAL:
+ case Coord::NORMAL:
{
switch (o2) {
- case NORMAL:
- orientation = NORMAL;
+ case Coord::NORMAL:
+ orientation = Coord::NORMAL;
break;
- case XX:
- orientation = XX;
+ case Coord::XX:
+ orientation = Coord::XX;
break;
}
}
break;
- case XX:
+ case Coord::XX:
{
switch (o2) {
- case NORMAL:
- orientation = XX;
+ case Coord::NORMAL:
+ orientation = Coord::XX;
break;
- case XX:
- orientation = NORMAL;
+ case Coord::XX:
+ orientation = Coord::NORMAL;
break;
}
}
@@ -484,7 +488,10 @@ Matrix Base::calcAlignWCS(FitsImage* fits1, FitsImage* fits2,
r2 = -(north.angle()-M_PI_2);
}
- rotation = r1-r2;
+ if ((fits1->getWCS(sys1))->imflip)
+ rotation = -(r1-r2);
+ else
+ rotation = r1-r2;
}
// origin
@@ -492,6 +499,8 @@ Matrix Base::calcAlignWCS(FitsImage* fits1, FitsImage* fits2,
{
Vector orpix1 = fits1->wcs2pix(orval2,sys1,sky) * imageToData;
Vector orpix2 = fits2->wcs2pix(orval2,sys2,sky) * imageToData;
+ // Vector orpix1 = fits1->getWCScrpix(sys1) * imageToData;
+ // Vector orpix2 = fits2->getWCScrpix(sys2) * imageToData;
origin = orpix1 - orpix2;
}
@@ -499,14 +508,17 @@ Matrix Base::calcAlignWCS(FitsImage* fits1, FitsImage* fits2,
{
Matrix flip;
switch (orientation) {
- case NORMAL:
+ case Coord::NORMAL:
break;
- case XX:
+ case Coord::XX:
flip = FlipX();
break;
}
Vector orpix2 = fits2->wcs2pix(orval2,sys2,sky) * imageToData;
+ // Vector orpix2 = fits2->center() * imageToData;
+
+ // cerr << orpix2 << radToDeg(rotation) << origin << endl;
return
Translate(-orpix2) *
flip *
@@ -559,11 +571,11 @@ void Base::centerImage()
// always center to center of pixel, even for even sized image
Vector bb = (aa*Translate(.5,.5)).floor();
// cursor is in REF coords
- cursor = keyContext->fits->mapToRef(bb,IMAGE,FK5);
+ cursor = keyContext->fits->mapToRef(bb,Coord::IMAGE,Coord::FK5);
}
void Base::coordToTclArray(FitsImage* ptr, const Vector3d& vv,
- CoordSystem out, Precision pp,
+ Coord::CoordSystem out, Precision pp,
const char* var, const char* base)
{
Vector rr = ptr->mapFromRef(vv, out);
@@ -572,7 +584,7 @@ void Base::coordToTclArray(FitsImage* ptr, const Vector3d& vv,
}
void Base::coord3ToTclArray(FitsImage* ptr, const Vector3d& vv,
- CoordSystem out, Precision pp,
+ Coord::CoordSystem out, Precision pp,
const char* var, const char* base)
{
double ss = ptr->mapFromRef3(((Vector3d&)vv)[2]+.5,out,2);
@@ -615,13 +627,13 @@ FitsImage* Base::findFits()
return keyContext->fits;
}
-FitsImage* Base::findFits(CoordSystem sys, const Vector& vv)
+FitsImage* Base::findFits(Coord::CoordSystem sys, const Vector& vv)
{
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
return findFits(vv);
default:
if (keyContext->fits && keyContext->fits->hasWCSCel(sys))
@@ -758,17 +770,17 @@ int Base::hasLTMV()
return currentContext->cfits && currentContext->cfits->hasLTMV();
}
-int Base::hasWCS(CoordSystem sys)
+int Base::hasWCS(Coord::CoordSystem sys)
{
return currentContext->cfits && currentContext->cfits->hasWCS(sys);
}
-int Base::hasWCSEqu(CoordSystem sys)
+int Base::hasWCSEqu(Coord::CoordSystem sys)
{
return currentContext->cfits && currentContext->cfits->hasWCSEqu(sys);
}
-int Base::hasWCSCel(CoordSystem sys)
+int Base::hasWCSCel(Coord::CoordSystem sys)
{
return currentContext->cfits && currentContext->cfits->hasWCSCel(sys);
}
@@ -832,7 +844,7 @@ int Base::isMosaic()
return currentContext->isMosaic();
}
-FitsImage* Base::isInFits(const Vector& vv, InternalSystem ref, Vector* rv)
+FitsImage* Base::isInFits(const Vector& vv, Coord::InternalSystem ref, Vector* rv)
{
Vector ss = mapToRef(vv,ref);
FitsImage* ptr = currentContext->cfits;
@@ -868,9 +880,9 @@ void Base::invalidPixmap()
needsUpdate = MATRIX;
}
-Orientation Base::IRAFOrientation(Orientation oo)
+Coord::Orientation Base::IRAFOrientation(Coord::Orientation oo)
{
- if (irafOrientation == (Orientation)-1)
+ if (irafOrientation == (Coord::Orientation)-1)
irafOrientation = oo;
return irafOrientation;
}
@@ -1006,9 +1018,9 @@ int Base::postscriptProc(int prepass)
return TCL_OK;
}
-void Base::printCoordSystem(CoordSystem sys)
+void Base::printCoordSystem(Coord::CoordSystem sys)
{
- Tcl_AppendResult(interp, coordSystemStr_[sys], NULL);
+ Tcl_AppendResult(interp, coord.coordSystemStr(sys), NULL);
}
void Base::printDouble(double d, Precision p)
@@ -1038,19 +1050,19 @@ void Base::printInteger(int i)
Tcl_AppendResult(interp, str.str().c_str(), NULL);
}
-void Base::printSkyFrame(SkyFrame sky)
+void Base::printSkyFrame(Coord::SkyFrame sky)
{
- Tcl_AppendResult(interp, skyFrameStr_[sky], NULL);
+ Tcl_AppendResult(interp, coord.skyFrameStr(sky), NULL);
}
-void Base::printSkyFormat(SkyFormat format)
+void Base::printSkyFormat(Coord::SkyFormat format)
{
- Tcl_AppendResult(interp, skyFormatStr_[format], NULL);
+ Tcl_AppendResult(interp, coord.skyFormatStr(format), NULL);
}
-void Base::printSkyDist(SkyDist dist)
+void Base::printSkyDist(Coord::SkyDist dist)
{
- Tcl_AppendResult(interp, skyDistStr_[dist], NULL);
+ Tcl_AppendResult(interp, coord.skyDistStr(dist), NULL);
}
void Base::printVector(const Vector& v, Precision p)
@@ -1077,24 +1089,25 @@ void Base::printVector(const Vector& v, Precision p)
}
void Base::printFromRef(FitsImage* ptr, const Vector& v,
- CoordSystem sys, SkyFrame sky, SkyFormat format,
+ Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format,
Precision p)
{
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
printVector(ptr->mapFromRef(v, sys, sky), p);
return;
default:
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
printVector(ptr->mapFromRef(v, sys, sky), p);
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
buf[0] = '\0';
@@ -1202,7 +1215,7 @@ void Base::psCrosshair(PSColorSpace mode)
if (!useCrosshair)
return;
- Vector rr = mapFromRef(crosshair,WIDGET);
+ Vector rr = mapFromRef(crosshair, Coord::WIDGET);
Vector aa = Vector(rr[0],1) * widgetToCanvas;
Vector bb = Vector(rr[0],options->height) * widgetToCanvas;
Vector cc = Vector(1,rr[1]) * widgetToCanvas;
@@ -1256,7 +1269,7 @@ void Base::psImage(Filter& filter, PSColorSpace mode,
{
pushPSMatrices(scale, width, height);
- unsigned char* img = fillImage(width, height, PS);
+ unsigned char* img = fillImage(width, height, Coord::PS);
if (!img)
return;
unsigned char* ptr = img;
@@ -1375,7 +1388,7 @@ void Base::pushPSMatrices(float scale, int width, int height)
}
}
-void Base::renderContours(Pixmap pm, InternalSystem sys, int width, int height)
+void Base::renderContours(Pixmap pm, Coord::InternalSystem sys, int width, int height)
{
// render from back to front
// aux contours
@@ -1390,7 +1403,7 @@ void Base::renderContours(Pixmap pm, InternalSystem sys, int width, int height)
currentContext->contour->render(pm, sys, width, height);
}
-void Base::renderCrosshair(Pixmap pm, InternalSystem sys, int width, int height)
+void Base::renderCrosshair(Pixmap pm, Coord::InternalSystem sys, int width, int height)
{
if (useCrosshair) {
Vector rr = mapFromRef(crosshair,sys);
@@ -1429,7 +1442,7 @@ void Base::reset()
crosshair = cursor;
invert = 0;
- orientation = NORMAL;
+ orientation = Coord::NORMAL;
orientationMatrix.identity();
zoom_ = Vector(1,1);
rotation = 0;
@@ -1437,7 +1450,7 @@ void Base::reset()
wcsAlign_ = 0;
wcsAlt_ =0;
- wcsOrientation = NORMAL;
+ wcsOrientation = Coord::NORMAL;
wcsOrientationMatrix.identity();
wcsRotation = 0;
@@ -1521,7 +1534,7 @@ void Base::unloadFits()
delete grid;
grid = NULL;
- irafOrientation = (Orientation)-1;
+ irafOrientation = (Coord::Orientation)-1;
updateColorScale();
}
@@ -1593,7 +1606,7 @@ void Base::updateBase()
}
if (doRender())
- ximageToPixmap(basePixmap, baseXImage, WIDGET);
+ ximageToPixmap(basePixmap, baseXImage, Coord::WIDGET);
else {
XSetForeground(display, gc, getColor(bgColorName));
XFillRectangle(display, basePixmap, gc, 0,0,options->width,options->height);
@@ -1740,11 +1753,11 @@ void Base::updateMagnifier(const Vector& vv)
// render crosshair
if (useCrosshair)
- renderCrosshair(magnifierPixmap, MAGNIFIER,
+ renderCrosshair(magnifierPixmap, Coord::MAGNIFIER,
magnifierWidth, magnifierHeight);
// render contours
- renderContours(magnifierPixmap, MAGNIFIER,
+ renderContours(magnifierPixmap, Coord::MAGNIFIER,
magnifierWidth, magnifierHeight);
}
@@ -1908,7 +1921,7 @@ void Base::updatePanner()
{
if (usePanner) {
if (doRender())
- ximageToPixmap(pannerPixmap, pannerXImage, PANNER);
+ ximageToPixmap(pannerPixmap, pannerXImage, Coord::PANNER);
else {
XSetForeground(display, pannerGC, getColor(bgColorName));
XFillRectangle(display, pannerPixmap, pannerGC, 0, 0,
@@ -1978,7 +1991,7 @@ void Base::updatePM(const BBox& bbox)
grid->render();
// contours
- renderContours(pixmap, WIDGET, options->width, options->height);
+ renderContours(pixmap, Coord::WIDGET, options->width, options->height);
// markers
if (showMarkers) {
@@ -1987,7 +2000,7 @@ void Base::updatePM(const BBox& bbox)
}
// crosshair
- renderCrosshair(pixmap, WIDGET, options->width, options->height);
+ renderCrosshair(pixmap, Coord::WIDGET, options->width, options->height);
// highlite bbox
renderHighlite();
@@ -2006,7 +2019,7 @@ char* Base::varcat(char* buf, char* base, char id, char* mod)
return buf;
}
-void Base::ximageToPixmap(Pixmap pmap, XImage* xmap, InternalSystem sys)
+void Base::ximageToPixmap(Pixmap pmap, XImage* xmap, Coord::InternalSystem sys)
{
buildXImage(xmap, sys);
XPutImage(display, pmap, gc, xmap, 0, 0, 0, 0, xmap->width, xmap->height);
@@ -2014,7 +2027,7 @@ void Base::ximageToPixmap(Pixmap pmap, XImage* xmap, InternalSystem sys)
void Base::ximageToPixmapMagnifier()
{
- ximageToPixmap (magnifierPixmap, magnifierXImage, MAGNIFIER);
+ ximageToPixmap (magnifierPixmap, magnifierXImage, Coord::MAGNIFIER);
}
#ifdef _MACOSX
@@ -2174,7 +2187,7 @@ void Base::win32Crosshair()
if (!useCrosshair)
return;
- Vector rr = mapFromRef(crosshair,WIDGET);
+ Vector rr = mapFromRef(crosshair,Coord::WIDGET);
Vector aa = Vector(rr[0],1) * widgetToCanvas;
Vector bb = Vector(rr[0],options->height) * widgetToCanvas;
Vector cc = Vector(1,rr[1]) * widgetToCanvas;
@@ -2196,7 +2209,7 @@ void Base::win32Image(float scale, int width, int height,
pushPSMatrices(scale, width, height);
// source
- unsigned char* src = fillImage(width, height, PS);
+ unsigned char* src = fillImage(width, height, Coord::PS);
if (!src)
return;
diff --git a/saotk/frame/base.h b/saotk/frame/base.h
index 600d485..8794682 100644
--- a/saotk/frame/base.h
+++ b/saotk/frame/base.h
@@ -19,6 +19,7 @@
#include "list.h"
#include "tag.h"
#include "util.h"
+#include "point.h"
extern int DebugAST;
extern int DebugMosaic;
@@ -66,15 +67,7 @@ class EllipseAnnulus;
class Epanda;
class Line;
class Point;
-class CirclePoint;
-class BoxPoint;
-class DiamondPoint;
-class CrossPoint;
-class ExPoint;
-class ArrowPoint;
-class BoxCirclePoint;
class Projection;
-class Circle3d;
class Polygon;
class Ruler;
class Text;
@@ -109,15 +102,7 @@ class Base : public Widget {
friend class Epanda;
friend class Line;
friend class Point;
- friend class CirclePoint;
- friend class BoxPoint;
- friend class DiamondPoint;
- friend class CrossPoint;
- friend class ExPoint;
- friend class ArrowPoint;
- friend class BoxCirclePoint;
friend class Projection;
- friend class Circle3d;
friend class Polygon;
friend class Ruler;
friend class Text;
@@ -133,10 +118,11 @@ public:
enum UpdateType {MATRIX, BASE, PIXMAP, NOUPDATE};
enum MemType {ALLOC, ALLOCGZ, CHANNEL, MMAP, SMMAP, MMAPINCR,
- SHARE, SSHARE, SOCKET, SOCKETGZ, VAR, HIST, COMPRESS};
+ SHARE, SSHARE, SOCKET, SOCKETGZ, VAR, HIST, COMPRESS, PHOTO};
enum MosaicType {NOMOSAIC, IRAF, WCSMOSAIC, WFPC2};
enum LayerType {IMG, MASK};
enum LoadMethod {LOADALL, INCR};
+ enum Precision {DEFAULT, FIXED, SCIENTIFIC, INTEGER};
private:
InverseScale* inverseScale;
@@ -178,7 +164,7 @@ public:
Context* keyContext;
int keyContextSet;
- Orientation orientation; // current image orientation
+ Coord::Orientation orientation; // current image orientation
Matrix orientationMatrix; // current image orientation matrix
double rotation; // current image rotation angle
@@ -199,8 +185,8 @@ public:
int pannerWidth; // panner width
int pannerHeight; // panner height
char pannerName[32]; // panner widget name
- CoordSystem pannerSystem; // panner wcs coord system
- SkyFrame pannerSky; // panner wcs sky frame
+ Coord::CoordSystem pannerSystem; // panner wcs coord system
+ Coord::SkyFrame pannerSky; // panner wcs sky frame
int usePanner; // panner status
GC pannerGC;
@@ -219,20 +205,20 @@ public:
Vector cropBegin;
Vector cropEnd;
- CoordSystem wcsSystem_;
- SkyFrame wcsSky_;
- SkyFormat wcsSkyFormat_;
+ Coord::CoordSystem wcsSystem_;
+ Coord::SkyFrame wcsSky_;
+ Coord::SkyFormat wcsSkyFormat_;
int wcsAlt_; // flag to indicate an alternative wcs current
int wcsAlign_; // flag to indicate wcs alignment
- CoordSystem xySystem_; // default marker sys (RAWXY)
- SkyFrame xySky_; // default marker sky (RAWXY)
+ Coord::CoordSystem xySystem_; // default marker sys (RAWXY)
+ Coord::SkyFrame xySky_; // default marker sky (RAWXY)
- Orientation wcsOrientation; // wcs image orientation
+ Coord::Orientation wcsOrientation; // wcs image orientation
Matrix wcsOrientationMatrix; // wcs image orientation matrix
double wcsRotation; // wcs image rotation angle
- Orientation irafOrientation; // orientation of first iraf segment
+ Coord::Orientation irafOrientation; // orientation of first iraf segment
char* maskColorName;
float maskAlpha;
@@ -331,23 +317,19 @@ public:
protected:
virtual void alignWCS();
- virtual void alignWCS(CoordSystem, SkyFrame);
- virtual void alignWCS(FitsImage*, CoordSystem);
+ virtual void alignWCS(Coord::CoordSystem, Coord::SkyFrame);
+ virtual void alignWCS(FitsImage*, Coord::CoordSystem);
- void bltCut(char*, char*, Orientation, const Vector&);
- void bltCutFits(double*, double*, int, Orientation, const Vector&);
- void bltProjection(char*, char*, char*, char*, Projection*);
- int bltProjFits(double**, double**, double**, double**, Projection*);
- void bltCircle3d(char*, char*, char*, Circle3d*);
- int bltCircle3dFits(double**, double**, double**, Circle3d*);
- virtual void buildXImage(XImage*, InternalSystem) =0;
+ void bltCut(char*, char*, Coord::Orientation, const Vector&);
+ void bltCutFits(double*, double*, int, Coord::Orientation, const Vector&);
+ virtual void buildXImage(XImage*, Coord::InternalSystem) =0;
virtual void centerImage();
double calcZoom(Vector,Vector);
virtual double calcZoomPanner() =0;
- void coordToTclArray(FitsImage*, const Vector3d&, CoordSystem, Precision,
+ void coordToTclArray(FitsImage*, const Vector3d&, Coord::CoordSystem, Precision,
const char*, const char*);
- void coord3ToTclArray(FitsImage*, const Vector3d&, CoordSystem, Precision,
+ void coord3ToTclArray(FitsImage*, const Vector3d&, Coord::CoordSystem, Precision,
const char*, const char*);
void createMarker(Marker*);
void createTemplate(const Vector&, istream&);
@@ -360,27 +342,27 @@ public:
virtual void encodeTrueColor(XColor*, char*) =0;
virtual void encodeTrueColor(unsigned char*, XImage*) =0;
- virtual unsigned char* fillImage(int, int, InternalSystem) =0;
+ virtual unsigned char* fillImage(int, int, Coord::InternalSystem) =0;
- Orientation getOrientation() {return orientation;}
+ Coord::Orientation getOrientation() {return orientation;}
double getRotation() {return rotation + wcsRotation;}
- Orientation getWCSOrientation() {return wcsOrientation;}
+ Coord::Orientation getWCSOrientation() {return wcsOrientation;}
int hasATMV();
int hasContour();
int hasContourAux();
int hasDTMV();
int hasLTMV();
- int hasWCS(CoordSystem);
- int hasWCSEqu(CoordSystem);
- int hasWCSCel(CoordSystem);
+ int hasWCS(Coord::CoordSystem);
+ int hasWCSEqu(Coord::CoordSystem);
+ int hasWCSCel(Coord::CoordSystem);
virtual BBox imageBBox(FrScale::ScanMode);
Vector imageCenter(FrScale::ScanMode);
Vector imageSize(FrScale::ScanMode);
virtual int isIIS();
- FitsImage* isInFits(const Vector&, InternalSystem, Vector*);
+ FitsImage* isInFits(const Vector&, Coord::InternalSystem, Vector*);
virtual int isAzElZero() {return 1;}
virtual int isFrame() {return 0;}
virtual int isFrame3d() {return 0;}
@@ -388,39 +370,43 @@ public:
void loadDone(int, LayerType);
- double mapDistFromRef(const Vector&, const Vector&, InternalSystem);
- double mapLenFromRef(double, InternalSystem);
- Vector mapLenFromRef(const Vector&, InternalSystem);
- double mapLenToRef(double, InternalSystem);
- Vector mapLenToRef(const Vector&, InternalSystem);
- void markerListHeader(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void markerListXMLHeader(ostream&, CoordSystem, SkyFrame, SkyFormat);
+ int markerAnalysisPlot2d(double**, double**, double**, double**, Marker*,
+ Vector&, Vector&, int);
+ int markerAnalysisPlot3d(double**, double**, Marker*, const BBox&);
+
+ double mapDistFromRef(const Vector&, const Vector&, Coord::InternalSystem);
+ double mapLenFromRef(double, Coord::InternalSystem);
+ Vector mapLenFromRef(const Vector&, Coord::InternalSystem);
+ double mapLenToRef(double, Coord::InternalSystem);
+ Vector mapLenToRef(const Vector&, Coord::InternalSystem);
+ void markerListHeader(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ void markerListXMLHeader(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
void markerListXMLFooter(ostream&);
- void markerListCiaoHeader(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void markerListSAOtngHeader(ostream&,CoordSystem, SkyFrame, SkyFormat, int);
- void markerPrintCoord(const Vector&, InternalSystem);
+ void markerListCiaoHeader(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ void markerListSAOtngHeader(ostream&,Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ void markerPrintCoord(const Vector&, Coord::InternalSystem);
void markerPrintCoord(const Vector&, const Vector&,
- CoordSystem, SkyFrame, SkyFormat);
- void markerPrintDouble(double, InternalSystem);
- void markerPrintDouble(const Vector&, double, CoordSystem, SkyDist);
- void markerPrintDouble(const Vector&, const Vector&, InternalSystem);
+ Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void markerPrintDouble(double, Coord::InternalSystem);
+ void markerPrintDouble(const Vector&, double, Coord::CoordSystem, Coord::SkyDist);
+ void markerPrintDouble(const Vector&, const Vector&, Coord::InternalSystem);
void markerPrintDouble(const Vector&, const Vector&, const Vector&,
- CoordSystem, SkyDist);
- void markerPrintVector(const Vector&,InternalSystem);
- void markerPrintVector(const Vector&, const Vector&, CoordSystem, SkyDist);
+ Coord::CoordSystem, Coord::SkyDist);
+ void markerPrintVector(const Vector&,Coord::InternalSystem);
+ void markerPrintVector(const Vector&, const Vector&, Coord::CoordSystem, Coord::SkyDist);
void markerUndo(Marker*, UndoMarkerType);
void parseMarker(MarkerFormat,istream&);
FitsHead* parseWCS(istream&);
int postscriptProc(int prepass);
- void printCoordSystem(CoordSystem);
+ void printCoordSystem(Coord::CoordSystem);
void printDouble(double, Precision);
- void printFromRef(FitsImage*, const Vector&, CoordSystem, SkyFrame,
- SkyFormat, Precision);
+ void printFromRef(FitsImage*, const Vector&, Coord::CoordSystem, Coord::SkyFrame,
+ Coord::SkyFormat, Precision);
void printInteger(int);
- void printSkyFrame(SkyFrame);
- void printSkyFormat(SkyFormat);
- void printSkyDist(SkyDist);
+ void printSkyFrame(Coord::SkyFrame);
+ void printSkyFormat(Coord::SkyFormat);
+ void printSkyDist(Coord::SkyDist);
void printVector(const Vector&, Precision);
void ps();
void psContours(PSColorSpace);
@@ -434,8 +420,8 @@ public:
virtual void pushPannerMatrices();
virtual void pushPSMatrices(float, int, int);
- void renderContours(Pixmap, InternalSystem, int, int);
- void renderCrosshair(Pixmap, InternalSystem, int, int);
+ void renderContours(Pixmap, Coord::InternalSystem, int, int);
+ void renderCrosshair(Pixmap, Coord::InternalSystem, int, int);
void renderDash(GC, int);
virtual void renderHighlite();
void renderMagnifierMarkers(List<Marker>*, const BBox& bb);
@@ -487,14 +473,14 @@ public:
void xmlSetProps(unsigned short*, unsigned short, char*);
int xmlCount(const char*);
Vector xmlPoint(FitsImage*, const char* x, const char* y,
- CoordSystem sys, SkyFrame sky, SkyFormat format, int which=0);
+ Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format, int which=0);
List<Vertex>* xmlVertex(FitsImage*, const char*, const char*,
- CoordSystem, SkyFrame, SkyFormat);
- double xmlAngle(const char*, int, double, AngleFormat, CoordSystem, SkyFrame);
- double* xmlAngles(const char*, int, double, int, AngleFormat, CoordSystem, SkyFrame);
- double* xmlDistance(FitsImage*, const char*, int, CoordSystem, SkyDist);
- Vector* xmlDistance(FitsImage*, const char*, const char*, int, CoordSystem, SkyDist);
- void ximageToPixmap(Pixmap pmap, XImage* xmap, InternalSystem);
+ Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ double xmlAngle(const char*, int, double, Coord::AngleFormat, Coord::CoordSystem, Coord::SkyFrame);
+ double* xmlAngles(const char*, int, double, int, Coord::AngleFormat, Coord::CoordSystem, Coord::SkyFrame);
+ double* xmlDistance(FitsImage*, const char*, int, Coord::CoordSystem, Coord::SkyDist);
+ Vector* xmlDistance(FitsImage*, const char*, const char*, int, Coord::CoordSystem, Coord::SkyDist);
+ void ximageToPixmap(Pixmap pmap, XImage* xmap, Coord::InternalSystem);
virtual void ximageToPixmapMagnifier();
Vector zoom() {return zoom_;}
@@ -520,43 +506,43 @@ public:
Base(Tcl_Interp* i, Tk_Canvas c, Tk_Item* item);
virtual ~Base();
- void calcAlignWCS(FitsImage*, CoordSystem, SkyFrame,
- Orientation*, Matrix*, double*);
- void calcAlignWCS(FitsImage*, FitsImage*, CoordSystem, CoordSystem, SkyFrame,
- Orientation*, Matrix*, double*, Vector*);
- Matrix calcAlignWCS(FitsImage*, FitsImage*, CoordSystem, CoordSystem, SkyFrame);
+ void calcAlignWCS(FitsImage*, Coord::CoordSystem, Coord::SkyFrame,
+ Coord::Orientation*, Matrix*, double*);
+ void calcAlignWCS(FitsImage*, FitsImage*, Coord::CoordSystem, Coord::CoordSystem, Coord::SkyFrame,
+ Coord::Orientation*, Matrix*, double*, Vector*);
+ Matrix calcAlignWCS(FitsImage*, FitsImage*, Coord::CoordSystem, Coord::CoordSystem, Coord::SkyFrame);
Vector centroid(const Vector&);
FitsImage* findFits();
- FitsImage* findFits(CoordSystem, const Vector&);
+ FitsImage* findFits(Coord::CoordSystem, const Vector&);
FitsImage* findFits(const Vector&);
FitsImage* findFits(int);
int findFits(FitsImage*);
FitsImage* findAllFits(int);
int fitsCount();
- Orientation IRAFOrientation(Orientation);
+ Coord::Orientation IRAFOrientation(Coord::Orientation);
int isMosaic();
int isCube();
int isBinTable();
- virtual Vector mapFromRef(const Vector&, InternalSystem) =0;
- virtual Vector3d mapFromRef3d(const Vector&, InternalSystem) =0;
- virtual Vector mapToRef(const Vector&, InternalSystem) =0;
- virtual Vector3d mapToRef3d(const Vector&, InternalSystem) =0;
- double mapAngleFromRef(double, CoordSystem, SkyFrame =FK5);
- double mapAngleToRef(double, CoordSystem, SkyFrame =FK5);
+ virtual Vector mapFromRef(const Vector&, Coord::InternalSystem) =0;
+ virtual Vector3d mapFromRef3d(const Vector&, Coord::InternalSystem) =0;
+ virtual Vector mapToRef(const Vector&, Coord::InternalSystem) =0;
+ virtual Vector3d mapToRef3d(const Vector&, Coord::InternalSystem) =0;
+ double mapAngleFromRef(double, Coord::CoordSystem, Coord::SkyFrame =Coord::FK5);
+ double mapAngleToRef(double, Coord::CoordSystem, Coord::SkyFrame =Coord::FK5);
int parse(istringstream&);
void resetCompositeMarker() {compositeMarker = NULL;}
- CoordSystem wcsSystem() {return wcsSystem_;}
- SkyFrame wcsSky() {return wcsSky_;}
- SkyFormat wcsSkyFormat() {return wcsSkyFormat_;}
+ Coord::CoordSystem wcsSystem() {return wcsSystem_;}
+ Coord::SkyFrame wcsSky() {return wcsSky_;}
+ Coord::SkyFormat wcsSkyFormat() {return wcsSkyFormat_;}
- CoordSystem xySystem() {return xySystem_;}
- SkyFrame xySky() {return xySky_;}
+ Coord::CoordSystem xySystem() {return xySystem_;}
+ Coord::SkyFrame xySky() {return xySky_;}
// Background Commands
void bgColorCmd(const char*);
@@ -592,6 +578,7 @@ public:
void getBinColsMinMaxCmd(const char*);
void getBinColsDimCmd(const char*);
void getBinListCmd();
+ void hasBinColCmd(const char*);
// Clip Commands
void clipMinMaxModeCmd(FrScale::MinMaxMode);
@@ -639,14 +626,14 @@ public:
// Contour Commands
void contourAuxHeadCmd();
void contourAuxNextCmd();
- void contourAuxSaveCmd(const char*, CoordSystem, SkyFrame);
- void contourCopyCmd(CoordSystem, SkyFrame);
+ void contourAuxSaveCmd(const char*, Coord::CoordSystem, Coord::SkyFrame);
+ void contourCopyCmd(Coord::CoordSystem, Coord::SkyFrame);
void contourCreateCmd(const char*, int, int, FVContour::Method, int, int, FrScale::ColorScaleType, float, float, Vector, const char*);
void contourDeleteCmd();
void contourDeleteAllCmd();
- void contourLoadCmd(const char*, int, int, const char*, CoordSystem,SkyFrame);
- void contourPasteCmd(const char*, int, int, void*, CoordSystem, SkyFrame);
- void contourSaveCmd(const char*, CoordSystem, SkyFrame);
+ void contourLoadCmd(const char*, int, int, const char*, Coord::CoordSystem,Coord::SkyFrame);
+ void contourPasteCmd(const char*, int, int, void*, Coord::CoordSystem, Coord::SkyFrame);
+ void contourSaveCmd(const char*, Coord::CoordSystem, Coord::SkyFrame);
void contourSetDashCmd(int);
void contourSetColorCmd(const char*);
void contourSetLineWidthCmd(int);
@@ -654,7 +641,7 @@ public:
void getContourAuxColorNameCmd();
void getContourAuxDashCmd();
void getContourAuxLineWidthCmd();
- void getContourCmd(CoordSystem sys, SkyFrame sky);
+ void getContourCmd(Coord::CoordSystem sys, Coord::SkyFrame sky);
void getContourClipCmd();
void getContourClipModeCmd();
void getContourColorNameCmd();
@@ -671,48 +658,48 @@ public:
// Coordinate Commands
void getWCSCmd();
- void wcsCmd(CoordSystem, SkyFrame, SkyFormat);
- void getWCSNameCmd(CoordSystem);
+ void wcsCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void getWCSNameCmd(Coord::CoordSystem);
void getWCSAlignCmd();
void getWCSAlignPointerCmd();
- void getCoordCmd(const Vector&, CoordSystem, SkyFrame, SkyFormat);
- void getCoordFromRefCmd(double, CoordSystem, int);
- void getCoordToRefCmd(double, CoordSystem, int);
- virtual void getCursorCmd(InternalSystem) =0;
- virtual void getCursorCmd(CoordSystem, SkyFrame, SkyFormat, Precision) =0;
- void hasSystemCmd(CoordSystem);
+ void getCoordCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void getCoordFromRefCmd(double, Coord::CoordSystem, int);
+ void getCoordToRefCmd(double, Coord::CoordSystem, int);
+ virtual void getCursorCmd(Coord::InternalSystem) =0;
+ virtual void getCursorCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Precision) =0;
+ void hasSystemCmd(Coord::CoordSystem);
void hasAmplifierCmd();
void hasDetectorCmd();
void hasPhysicalCmd();
void hasWCSAltCmd();
- void hasWCSCmd(CoordSystem);
- void hasWCSEquCmd(CoordSystem);
- void hasWCSCelCmd(CoordSystem);
+ void hasWCSCmd(Coord::CoordSystem);
+ void hasWCSEquCmd(Coord::CoordSystem);
+ void hasWCSCelCmd(Coord::CoordSystem);
// Crop Commands
void cropCmd();
- void cropCmd(const Vector&, const Vector&, CoordSystem, SkyFrame);
- void cropCenterCmd(const Vector&, CoordSystem, SkyFrame, const Vector&, CoordSystem, SkyDist);
+ void cropCmd(const Vector&, const Vector&, Coord::CoordSystem, Coord::SkyFrame);
+ void cropCenterCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame, const Vector&, Coord::CoordSystem, Coord::SkyDist);
void cropBeginCmd(const Vector&);
void cropMotionCmd(const Vector&);
void cropEndCmd(const Vector&);
void crop3dCmd();
- void crop3dCmd(double, double, CoordSystem);
+ void crop3dCmd(double, double, Coord::CoordSystem);
virtual void crop3dBeginCmd(const Vector&, int) {}
virtual void crop3dMotionCmd(const Vector&, int) {}
virtual void crop3dEndCmd(const Vector&, int) {}
- void getCropCmd(CoordSystem, SkyFrame, SkyFormat);
- void getCropCenterCmd(CoordSystem, SkyFrame, SkyFormat, CoordSystem, SkyDist);
- void getCrop3dCmd(CoordSystem);
+ void getCropCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void getCropCenterCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Coord::CoordSystem, Coord::SkyDist);
+ void getCrop3dCmd(Coord::CoordSystem);
void hasCropCmd();
// CrossHair Commands
void crosshairCmd(int);
- void crosshairCmd(const Vector&, InternalSystem);
- void crosshairCmd(const Vector&, CoordSystem, SkyFrame =FK5);
+ void crosshairCmd(const Vector&, Coord::InternalSystem);
+ void crosshairCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame =Coord::FK5);
void crosshairWarpCmd(const Vector&);
- void getCrosshairCmd(InternalSystem);
- void getCrosshairCmd(CoordSystem, SkyFrame, SkyFormat, Precision);
+ void getCrosshairCmd(Coord::InternalSystem);
+ void getCrosshairCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Precision);
void getCrosshairStatusCmd();
// DATASEC Commands
@@ -721,26 +708,26 @@ public:
void hasDATASECCmd();
// Data Values
- void getDataValuesCmd(int, const Vector&, CoordSystem,
- SkyFrame, const Vector&, char*);
- void getDataValuesCmd(const Vector&, InternalSystem, const Vector&);
+ void getDataValuesCmd(int, const Vector&, Coord::CoordSystem,
+ Coord::SkyFrame, const Vector&, char*);
+ void getDataValuesCmd(const Vector&, Coord::InternalSystem, const Vector&);
// Fits Commands
void getBitpixCmd();
void getFitsNAxesCmd();
void getFitsCountCmd();
- void getFitsCenterCmd(CoordSystem, SkyFrame, SkyFormat, Precision);
+ void getFitsCenterCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Precision);
void getFitsDepthCmd(int);
- void getFitsExtCmd(const Vector&, InternalSystem);
+ void getFitsExtCmd(const Vector&, Coord::InternalSystem);
void getFitsFileNameCmd(FileNameType);
void getFitsFileNameCmd(int,FileNameType);
- void getFitsFileNameCmd(const Vector&, InternalSystem, FileNameType);
+ void getFitsFileNameCmd(const Vector&, Coord::InternalSystem, FileNameType);
void getFitsHeaderCmd(int);
void getFitsHeaderWCSCmd(int);
void getFitsHeaderKeywordCmd(int,const char*);
void getFitsObjectNameCmd();
void getFitsSizeCmd();
- void getFitsSizeCmd(CoordSystem, SkyFrame, SkyDist, Precision);
+ void getFitsSizeCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyDist, Precision);
void getFitsSliceCmd(int);
void hasFitsCmd();
void hasFitsHPXCmd();
@@ -770,6 +757,8 @@ public:
void loadArrSocketGZCmd(int, const char*, LayerType);
void loadArrVarCmd(const char*, const char*, LayerType);
+ virtual void loadPhotoCmd(const char*, const char*);
+
void loadExtCubeAllocCmd(const char*, const char*);
void loadExtCubeAllocGZCmd(const char*, const char*);
void loadExtCubeChannelCmd(const char*, const char*);
@@ -792,47 +781,47 @@ public:
void loadSliceSocketGZCmd(int, const char*);
void loadSliceVarCmd(const char*, const char*, LoadMethod);
- void loadMosaicImageAllocCmd(MosaicType, CoordSystem, const char*,
+ void loadMosaicImageAllocCmd(MosaicType, Coord::CoordSystem, const char*,
const char*, LayerType);
- void loadMosaicImageAllocGZCmd(MosaicType, CoordSystem, const char*,
+ void loadMosaicImageAllocGZCmd(MosaicType, Coord::CoordSystem, const char*,
const char*, LayerType);
- void loadMosaicImageChannelCmd(MosaicType, CoordSystem, const char*,
+ void loadMosaicImageChannelCmd(MosaicType, Coord::CoordSystem, const char*,
const char*, LayerType);
- void loadMosaicImageMMapCmd(MosaicType, CoordSystem, const char*,
+ void loadMosaicImageMMapCmd(MosaicType, Coord::CoordSystem, const char*,
LoadMethod, LayerType);
- void loadMosaicImageMMapIncrCmd(MosaicType, CoordSystem, const char*,
+ void loadMosaicImageMMapIncrCmd(MosaicType, Coord::CoordSystem, const char*,
LoadMethod, LayerType);
- void loadMosaicImageShareCmd(MosaicType, CoordSystem, ShmType, int,
+ void loadMosaicImageShareCmd(MosaicType, Coord::CoordSystem, ShmType, int,
const char*, LoadMethod, LayerType);
- void loadMosaicImageSocketCmd(MosaicType, CoordSystem, int, const char*,
+ void loadMosaicImageSocketCmd(MosaicType, Coord::CoordSystem, int, const char*,
LayerType);
- void loadMosaicImageSocketGZCmd(MosaicType, CoordSystem, int, const char*,
+ void loadMosaicImageSocketGZCmd(MosaicType, Coord::CoordSystem, int, const char*,
LayerType);
- void loadMosaicImageVarCmd(MosaicType, CoordSystem, const char*,const char*,
+ void loadMosaicImageVarCmd(MosaicType, Coord::CoordSystem, const char*,const char*,
LoadMethod, LayerType);
- void loadMosaicAllocCmd(MosaicType, CoordSystem, const char*, const char*,
+ void loadMosaicAllocCmd(MosaicType, Coord::CoordSystem, const char*, const char*,
LayerType);
- void loadMosaicAllocGZCmd(MosaicType, CoordSystem, const char*, const char*,
+ void loadMosaicAllocGZCmd(MosaicType, Coord::CoordSystem, const char*, const char*,
LayerType);
- void loadMosaicChannelCmd(MosaicType, CoordSystem, const char*, const char*,
+ void loadMosaicChannelCmd(MosaicType, Coord::CoordSystem, const char*, const char*,
LayerType);
- void loadMosaicMMapCmd(MosaicType, CoordSystem, const char*, LoadMethod,
+ void loadMosaicMMapCmd(MosaicType, Coord::CoordSystem, const char*, LoadMethod,
LayerType);
- void loadMosaicSMMapCmd(MosaicType, CoordSystem, const char*, const char*,
+ void loadMosaicSMMapCmd(MosaicType, Coord::CoordSystem, const char*, const char*,
LoadMethod, LayerType);
- void loadMosaicMMapIncrCmd(MosaicType, CoordSystem, const char*, LoadMethod,
+ void loadMosaicMMapIncrCmd(MosaicType, Coord::CoordSystem, const char*, LoadMethod,
LayerType);
- void loadMosaicShareCmd(MosaicType, CoordSystem, ShmType, int, const char*,
+ void loadMosaicShareCmd(MosaicType, Coord::CoordSystem, ShmType, int, const char*,
LoadMethod, LayerType);
- void loadMosaicSShareCmd(MosaicType, CoordSystem, ShmType, int, int,
+ void loadMosaicSShareCmd(MosaicType, Coord::CoordSystem, ShmType, int, int,
const char*, LoadMethod, LayerType);
- void loadMosaicSocketCmd(MosaicType, CoordSystem, int, const char*,
+ void loadMosaicSocketCmd(MosaicType, Coord::CoordSystem, int, const char*,
LayerType);
- void loadMosaicSocketGZCmd(MosaicType, CoordSystem, int, const char*,
+ void loadMosaicSocketGZCmd(MosaicType, Coord::CoordSystem, int, const char*,
LayerType);
- void loadMosaicVarCmd(MosaicType, CoordSystem, const char*, const char*,
+ void loadMosaicVarCmd(MosaicType, Coord::CoordSystem, const char*, const char*,
LoadMethod, LayerType);
void loadMosaicImageWFPC2AllocCmd(const char*, const char*);
@@ -878,6 +867,8 @@ public:
virtual void loadArrRGBCubeSocketGZCmd(int, const char*) {}
virtual void loadArrRGBCubeVarCmd(const char*, const char*) {}
+ virtual void savePhotoCmd(const char*) {}
+
void saveFitsImageFileCmd(const char*, int);
void saveFitsImageChannelCmd(const char*, int);
void saveFitsImageSocketCmd(int, int);
@@ -909,11 +900,11 @@ public:
void warpToCmd(const Vector&);
// Graph Commands
- void getHorzCutCmd(char*, char*, const Vector&, InternalSystem);
- void getVertCutCmd(char*, char*, const Vector&, InternalSystem);
+ void getHorzCutCmd(char*, char*, const Vector&, Coord::InternalSystem);
+ void getVertCutCmd(char*, char*, const Vector&, Coord::InternalSystem);
// Grid Commands
- virtual void gridCmd(CoordSystem, SkyFrame, SkyFormat, Grid::GridType, const char*) =0;
+ virtual void gridCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Grid::GridType, const char*) =0;
void gridDeleteCmd();
void getGridCmd();
void getGridOptionCmd();
@@ -930,8 +921,8 @@ public:
virtual void iisGetFileNameCmd(const Vector&) {}
virtual void iisMessageCmd(const char*) {}
virtual void iisSetCmd(const char*, int, int, int, int) {}
- virtual void iisSetCursorCmd(const Vector&, InternalSystem) {}
- virtual void iisSetCursorCmd(const Vector&, CoordSystem) {}
+ virtual void iisSetCursorCmd(const Vector&, Coord::InternalSystem) {}
+ virtual void iisSetCursorCmd(const Vector&, Coord::CoordSystem) {}
virtual void iisSetFileNameCmd(const char*) {}
virtual void iisSetFileNameCmd(const char*,int) {}
virtual void iisUpdateCmd() {}
@@ -940,9 +931,9 @@ public:
// Info Commands
void getInfoCmd(char*);
- virtual void getInfoCmd(const Vector&, InternalSystem, char*);
+ virtual void getInfoCmd(const Vector&, Coord::InternalSystem, char*);
void getInfoClipCmd();
- void getValueCmd(const Vector&, InternalSystem);
+ void getValueCmd(const Vector&, Coord::InternalSystem);
// loadIncr is only used by LICK OBS
// maintained for backward compatibility
@@ -960,38 +951,94 @@ public:
void updateMagnifierCmd(const Vector& v);
// Marker Commands
+ // Basic Regions
void createCircleCmd(const Vector&,
double,
const char*, int*, int, const char*,
const char*, unsigned short, const char*,
const List<Tag>&, const List<CallBack>& cb);
- void createAnnulusCmd(const Vector&,
- double, double, int,
+ void createEllipseCmd(const Vector&,
+ const Vector&,
+ double,
const char*, int*, int, const char*,
const char*, unsigned short, const char*,
const List<Tag>&, const List<CallBack>& cb);
- void createAnnulusCmd(const Vector&,
- int, double*,
+ void createBoxCmd(const Vector&,
+ const Vector&,
+ double,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createPolygonCmd(const Vector&,
+ const Vector&,
const char*, int*, int, const char*,
const char*, unsigned short, const char*,
const List<Tag>&, const List<CallBack>& cb);
- void createCpandaCmd(const Vector&,
- double, double, int,
- double, double, int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
- void createCpandaCmd(const Vector&,
- int, double*,
- int, double*,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
+ void createPolygonCmd(const List<Vertex>&,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createContourPolygonCmd(const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&,
+ const List<CallBack>& cb);
+ void createLineCmd(const Vector&,
+ const Vector&,
+ int, int,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createVectCmd(const Vector&,
+ const Vector&,
+ int,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createVectCmd(const Vector&,
+ double mag, double ang,
+ int,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createTextCmd(const Vector&,
+ double, int,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createPointCmd(const Vector&, Point::PointShape, int,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&,
+ const List<CallBack>& cb);
+ // Measurement Regions
+ void createRulerCmd(const Vector&, const Vector&,
+ Coord::CoordSystem, Coord::SkyFrame, Coord::CoordSystem, Coord::SkyDist,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createCompassCmd(const Vector&, double,
+ const char*, const char*,
+ int, int,
+ Coord::CoordSystem, Coord::SkyFrame,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createProjectionCmd(const Vector&, const Vector&,
+ double,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&,
+ const List<CallBack>& cb);
- void createEllipseCmd(const Vector&,
- const Vector&,
- double,
+ // Annulus Regions
+ void createAnnulusCmd(const Vector&,
+ double, double, int,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createAnnulusCmd(const Vector&,
+ int, double*,
const char*, int*, int, const char*,
const char*, unsigned short, const char*,
const List<Tag>&, const List<CallBack>& cb);
@@ -1009,28 +1056,6 @@ public:
const char*, unsigned short, const char*,
const List<Tag>&,
const List<CallBack>& cb);
- void createEpandaCmd(const Vector&,
- double, double, int,
- const Vector&, const Vector&, int,
- double,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
- void createEpandaCmd(const Vector&,
- int, double*,
- int, Vector*,
- double,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
-
-
- void createBoxCmd(const Vector&,
- const Vector&,
- double,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
void createBoxAnnulusCmd(const Vector&,
const Vector&, const Vector&, int,
double,
@@ -1045,6 +1070,34 @@ public:
const char*, unsigned short, const char*,
const List<Tag>&,
const List<CallBack>& cb);
+
+ // Panda Regions
+ void createCpandaCmd(const Vector&,
+ double, double, int,
+ double, double, int,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createCpandaCmd(const Vector&,
+ int, double*,
+ int, double*,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createEpandaCmd(const Vector&,
+ double, double, int,
+ const Vector&, const Vector&, int,
+ double,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
+ void createEpandaCmd(const Vector&,
+ int, double*,
+ int, Vector*,
+ double,
+ const char*, int*, int, const char*,
+ const char*, unsigned short, const char*,
+ const List<Tag>&, const List<CallBack>& cb);
void createBpandaCmd(const Vector&,
double, double, int,
const Vector&, const Vector&, int,
@@ -1060,110 +1113,7 @@ public:
const char*, unsigned short, const char*,
const List<Tag>&, const List<CallBack>& cb);
-
- void createLineCmd(const Vector&,
- const Vector&,
- int, int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
- void createVectCmd(const Vector&,
- const Vector&,
- int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
- void createVectCmd(const Vector&,
- double mag, double ang,
- int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
- void createProjectionCmd(const Vector&,
- const Vector&,
- double,
- const char*, const char*,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&,
- const List<CallBack>& cb);
- void createCircle3dCmd(const Vector&,
- double,
- const char*, const char*,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&,
- const List<CallBack>& cb);
- void createRulerCmd(const Vector&,
- const Vector&,
- CoordSystem, SkyFrame, CoordSystem, SkyDist,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
-
- void createCirclePointCmd(const Vector&, int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&,
- const List<CallBack>& cb);
- void createBoxPointCmd(const Vector&, int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
- void createDiamondPointCmd(const Vector&, int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&,
- const List<CallBack>& cb);
- void createCrossPointCmd(const Vector&, int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&,
- const List<CallBack>& cb);
- void createExPointCmd(const Vector&, int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
- void createArrowPointCmd(const Vector&, int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&,
- const List<CallBack>& cb);
- void createBoxCirclePointCmd(const Vector&, int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&,
- const List<CallBack>& cb);
-
- void createTextCmd(const Vector&,
- double, int,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
-
- void createPolygonCmd(const Vector&,
- const Vector&,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
- void createPolygonCmd(const List<Vertex>&,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
- void createContourPolygonCmd(const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&,
- const List<CallBack>& cb);
-
- void createCompassCmd(const Vector&,
- double,
- const char*, const char*,
- int, int,
- CoordSystem, SkyFrame,
- const char*, int*, int, const char*,
- const char*, unsigned short, const char*,
- const List<Tag>&, const List<CallBack>& cb);
-
+ // Composite Regions
void createCompositeCmd(const Vector&, double, int,
const char*, int*, int, const char*,
const char*, unsigned short, const char*,
@@ -1173,89 +1123,90 @@ public:
const char*, unsigned short, const char*,
const List<Tag>&, const List<CallBack>& cb);
+ // Template Regions
void createTemplateCmd(const Vector&, const char*);
- void createTemplateCmd(const Vector&, CoordSystem, SkyFrame, const char*);
+ void createTemplateCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame, const char*);
void createTemplateVarCmd(const Vector&, const char* var);
+ void getMarkerAnalysisPlot2dCmd(int, char*, char*, char*, char*);
+ void getMarkerAnalysisPlot3dCmd(int, char*, char*);
+ void getMarkerAnalysisParamCmd(int id);
+ void getMarkerAnalysisSystemCmd(int id);
+
void getMarkerAngleCmd(int);
- void getMarkerAngleCmd(int, CoordSystem, SkyFrame);
- void getMarkerAnnulusRadiusCmd(int, InternalSystem);
- void getMarkerAnnulusRadiusCmd(int, CoordSystem, SkyDist);
- void getMarkerBoxAnnulusRadiusCmd(int, InternalSystem);
- void getMarkerBoxAnnulusRadiusCmd(int, CoordSystem, SkyDist);
- void getMarkerBoxRadiusCmd(int, InternalSystem);
- void getMarkerBoxRadiusCmd(int, CoordSystem, SkyDist);
+ void getMarkerAngleCmd(int, Coord::CoordSystem, Coord::SkyFrame);
+ void getMarkerAnnulusRadiusCmd(int, Coord::InternalSystem);
+ void getMarkerAnnulusRadiusCmd(int, Coord::CoordSystem, Coord::SkyDist);
+ void getMarkerBoxAnnulusRadiusCmd(int, Coord::InternalSystem);
+ void getMarkerBoxAnnulusRadiusCmd(int, Coord::CoordSystem, Coord::SkyDist);
+ void getMarkerBoxRadiusCmd(int, Coord::InternalSystem);
+ void getMarkerBoxRadiusCmd(int, Coord::CoordSystem, Coord::SkyDist);
void getMarkerBpandaAnglesCmd(int);
- void getMarkerBpandaAnglesCmd(int, CoordSystem, SkyFrame);
- void getMarkerBpandaRadiusCmd(int, InternalSystem);
- void getMarkerBpandaRadiusCmd(int, CoordSystem, SkyDist);
- void getMarkerCenterCmd(int, InternalSystem);
- void getMarkerCenterCmd(int, CoordSystem, SkyFrame, SkyFormat);
+ void getMarkerBpandaAnglesCmd(int, Coord::CoordSystem, Coord::SkyFrame);
+ void getMarkerBpandaRadiusCmd(int, Coord::InternalSystem);
+ void getMarkerBpandaRadiusCmd(int, Coord::CoordSystem, Coord::SkyDist);
+ void getMarkerCenterCmd(int, Coord::InternalSystem);
+ void getMarkerCenterCmd(int, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
void getMarkerCentroidAutoCmd();
void getMarkerCentroidRadiusCmd();
void getMarkerCentroidIterationCmd();
void getMarkerCentroidOptionCmd();
- void getMarkerCircleRadiusCmd(int, InternalSystem);
- void getMarkerCircleRadiusCmd(int, CoordSystem, SkyDist);
- void getMarkerCircle3dCmd(int, char*, char*, char*);
- void getMarkerCircle3dMethodCmd(int);
- void getMarkerCircle3dRadiusCmd(int, CoordSystem, SkyDist);
- void getMarkerCircle3dSystemCmd(int);
+ void getMarkerCircleRadiusCmd(int, Coord::InternalSystem);
+ void getMarkerCircleRadiusCmd(int, Coord::CoordSystem, Coord::SkyDist);
void getMarkerColorCmd();
void getMarkerColorCmd(const char*);
void getMarkerColorCmd(int);
void getMarkerCompassArrowCmd(int);
void getMarkerCompassLabelCmd(int);
- void getMarkerCompassRadiusCmd(int, InternalSystem);
- void getMarkerCompassRadiusCmd(int, CoordSystem, SkyDist);
+ void getMarkerCompassRadiusCmd(int, Coord::InternalSystem);
+ void getMarkerCompassRadiusCmd(int, Coord::CoordSystem, Coord::SkyDist);
void getMarkerCompassSystemCmd(int);
void getMarkerCompositeCmd(int);
void getMarkerCpandaAnglesCmd(int);
- void getMarkerCpandaAnglesCmd(int, CoordSystem, SkyFrame);
- void getMarkerCpandaRadiusCmd(int, InternalSystem);
- void getMarkerCpandaRadiusCmd(int, CoordSystem, SkyDist);
- void getMarkerEllipseRadiusCmd(int, InternalSystem);
- void getMarkerEllipseRadiusCmd(int, CoordSystem, SkyDist);
- void getMarkerEllipseAnnulusRadiusCmd(int, InternalSystem);
- void getMarkerEllipseAnnulusRadiusCmd(int, CoordSystem, SkyDist);
+ void getMarkerCpandaAnglesCmd(int, Coord::CoordSystem, Coord::SkyFrame);
+ void getMarkerCpandaRadiusCmd(int, Coord::InternalSystem);
+ void getMarkerCpandaRadiusCmd(int, Coord::CoordSystem, Coord::SkyDist);
+ void getMarkerEllipseRadiusCmd(int, Coord::InternalSystem);
+ void getMarkerEllipseRadiusCmd(int, Coord::CoordSystem, Coord::SkyDist);
+ void getMarkerEllipseAnnulusRadiusCmd(int, Coord::InternalSystem);
+ void getMarkerEllipseAnnulusRadiusCmd(int, Coord::CoordSystem, Coord::SkyDist);
void getMarkerEpandaAnglesCmd(int);
- void getMarkerEpandaAnglesCmd(int, CoordSystem, SkyFrame);
- void getMarkerEpandaRadiusCmd(int, InternalSystem);
- void getMarkerEpandaRadiusCmd(int, CoordSystem, SkyDist);
+ void getMarkerEpandaAnglesCmd(int, Coord::CoordSystem, Coord::SkyFrame);
+ void getMarkerEpandaRadiusCmd(int, Coord::InternalSystem);
+ void getMarkerEpandaRadiusCmd(int, Coord::CoordSystem, Coord::SkyDist);
void getMarkerFontCmd();
void getMarkerFontCmd(const char*);
void getMarkerFontCmd(int);
void getMarkerIdCmd(const char*);
void getMarkerIdCmd(const Vector&);
void getMarkerIdAllCmd();
- void getMarkerLineCmd(int, InternalSystem);
- void getMarkerLineCmd(int, CoordSystem, SkyFrame, SkyFormat);
+ void getMarkerLineCmd(int, Coord::InternalSystem);
+ void getMarkerLineCmd(int, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
void getMarkerLineArrowCmd(int);
- void getMarkerLineLengthCmd(int, InternalSystem);
- void getMarkerLineLengthCmd(int, CoordSystem, SkyDist);
+ void getMarkerLineLengthCmd(int, Coord::InternalSystem);
+ void getMarkerLineLengthCmd(int, Coord::CoordSystem, Coord::SkyDist);
void getMarkerLineWidthCmd();
void getMarkerLineWidthCmd(int);
- void getMarkerMapLenFromRefCmd(int, double, CoordSystem, SkyDist);
+ void getMarkerMapLenFromRefCmd(int, double, Coord::CoordSystem, Coord::SkyDist);
void getMarkerNumberCmd();
+ void getMarkerPointShapeCmd(int);
void getMarkerPointSizeCmd(int);
void getMarkerPolygonSegmentCmd(const Vector&);
void getMarkerPreserveCmd();
- void getMarkerProjectionCmd(int, char*, char*, char*, char*);
- void getMarkerProjectionPointsCmd(int, InternalSystem);
- void getMarkerProjectionPointsCmd(int, CoordSystem, SkyFrame, SkyFormat);
- void getMarkerProjectionLengthCmd(int, InternalSystem);
- void getMarkerProjectionLengthCmd(int, CoordSystem, SkyDist);
+ void getMarkerProjectionPointsCmd(int, Coord::InternalSystem);
+ void getMarkerProjectionPointsCmd(int, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void getMarkerProjectionLengthCmd(int, Coord::InternalSystem);
+ void getMarkerProjectionLengthCmd(int, Coord::CoordSystem, Coord::SkyDist);
void getMarkerProjectionMethodCmd(int);
- void getMarkerProjectionWidthCmd(int, InternalSystem);
- void getMarkerProjectionWidthCmd(int, CoordSystem, SkyDist);
- void getMarkerProjectionSystemCmd(int);
+ void getMarkerProjectionWidthCmd(int, Coord::InternalSystem);
+ void getMarkerProjectionWidthCmd(int, Coord::CoordSystem, Coord::SkyDist);
void getMarkerPropertyCmd(unsigned short);
void getMarkerPropertyCmd(const char*, unsigned short);
void getMarkerPropertyCmd(int, unsigned short);
- void getMarkerRulerLengthCmd(int, InternalSystem);
- void getMarkerRulerLengthCmd(int, CoordSystem, SkyDist);
- void getMarkerRulerPointCmd(int, InternalSystem);
- void getMarkerRulerPointCmd(int, CoordSystem, SkyFrame, SkyFormat);
+ void getMarkerRulerLengthCmd(int, Coord::InternalSystem);
+ void getMarkerRulerLengthCmd(int, Coord::CoordSystem, Coord::SkyDist);
+ void getMarkerRulerPointCmd(int, Coord::InternalSystem);
+ void getMarkerRulerPointCmd(int, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
void getMarkerRulerSystemCmd(int);
void getMarkerSelectedCmd();
void getMarkerSelectedCmd(int);
@@ -1277,11 +1228,11 @@ public:
void getMarkerTextCmd(int);
void getMarkerTextRotateCmd(int);
void getMarkerTypeCmd(int);
- void getMarkerVectorCmd(int, InternalSystem);
- void getMarkerVectorCmd(int, CoordSystem, SkyFrame, SkyFormat);
+ void getMarkerVectorCmd(int, Coord::InternalSystem);
+ void getMarkerVectorCmd(int, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
void getMarkerVectorArrowCmd(int);
- void getMarkerVectorLengthCmd(int, InternalSystem);
- void getMarkerVectorLengthCmd(int, CoordSystem, SkyDist);
+ void getMarkerVectorLengthCmd(int, Coord::InternalSystem);
+ void getMarkerVectorLengthCmd(int, Coord::CoordSystem, Coord::SkyDist);
void hasMarkerHighlitedCmd();
void hasMarkerPasteCmd();
@@ -1290,26 +1241,31 @@ public:
void markerLayerCmd(MarkerLayer);
+ void markerAnalysisCmd(int, Marker::AnalysisMethod, int);
+ void markerAnalysisParamCmd(int, Marker::AnalysisParamType);
+ void markerAnalysisSystemCmd(int, Coord::CoordSystem,
+ Coord::SkyFrame =Coord::FK5);
+
void markerAngleCmd(int, double);
- void markerAngleCmd(int, double, CoordSystem, SkyFrame);
+ void markerAngleCmd(int, double, Coord::CoordSystem, Coord::SkyFrame);
void markerAnnulusCreateRadiusCmd(int, const Vector&);
void markerAnnulusDeleteRadiusCmd(int, int);
- void markerAnnulusRadiusCmd(int, double, double, int, InternalSystem);
- void markerAnnulusRadiusCmd(int, double, double, int, CoordSystem, SkyDist);
- void markerAnnulusRadiusCmd(int, const char*, CoordSystem, SkyDist);
+ void markerAnnulusRadiusCmd(int, double, double, int, Coord::InternalSystem);
+ void markerAnnulusRadiusCmd(int, double, double, int, Coord::CoordSystem, Coord::SkyDist);
+ void markerAnnulusRadiusCmd(int, const char*, Coord::CoordSystem, Coord::SkyDist);
void markerBackCmd();
void markerBackCmd(const char*);
void markerBackCmd(int);
void markerBoxAnnulusRadiusCmd(int, const Vector&, const Vector&, int,
- InternalSystem);
+ Coord::InternalSystem);
void markerBoxAnnulusRadiusCmd(int, const Vector&, const Vector&, int,
- CoordSystem, SkyDist);
- void markerBoxAnnulusRadiusCmd(int, const char*, CoordSystem, SkyDist);
+ Coord::CoordSystem, Coord::SkyDist);
+ void markerBoxAnnulusRadiusCmd(int, const char*, Coord::CoordSystem, Coord::SkyDist);
void markerBoxAnnulusCreateRadiusCmd(int, const Vector&);
void markerBoxAnnulusDeleteRadiusCmd(int, int);
- void markerBoxRadiusCmd(int, const Vector&, InternalSystem);
- void markerBoxRadiusCmd(int, const Vector&, CoordSystem, SkyDist);
+ void markerBoxRadiusCmd(int, const Vector&, Coord::InternalSystem);
+ void markerBoxRadiusCmd(int, const Vector&, Coord::CoordSystem, Coord::SkyDist);
void markerBpandaCreateAnglesCmd(int, const Vector&);
void markerBpandaCreateRadiusCmd(int, const Vector&);
void markerBpandaDeleteCmd(int, int);
@@ -1317,10 +1273,10 @@ public:
const Vector&, const Vector&, int);
void markerBpandaEditCmd(int, double, double, int,
const Vector&, const Vector&, int,
- CoordSystem, SkyFrame);
+ Coord::CoordSystem, Coord::SkyFrame);
void markerBpandaEditCmd(int, const char*, const char*,
- CoordSystem, SkyFrame,
- CoordSystem, SkyDist);
+ Coord::CoordSystem, Coord::SkyFrame,
+ Coord::CoordSystem, Coord::SkyDist);
void markerCallBackCmd(int, CallBack::Type, const char*, const char*);
void markerCentroidCmd();
@@ -1329,19 +1285,16 @@ public:
void markerCentroidAutoCmd(int);
void markerCentroidRadiusCmd(float);
void markerCentroidIterationCmd(int);
- void markerCircleRadiusCmd(int, double, InternalSystem);
- void markerCircleRadiusCmd(int, double, CoordSystem, SkyDist);
- void markerCircle3dCmd(int, double, InternalSystem, int);
- void markerCircle3dCmd(int, double, CoordSystem, SkyDist,int);
- void markerCircle3dSystemCmd(int, CoordSystem);
+ void markerCircleRadiusCmd(int, double, Coord::InternalSystem);
+ void markerCircleRadiusCmd(int, double, Coord::CoordSystem, Coord::SkyDist);
void markerColorCmd(const char*);
void markerColorCmd(const char*, const char*);
void markerColorCmd(int, const char*);
void markerCompassArrowCmd(int, int, int);
void markerCompassLabelCmd(int, const char*, const char*);
- void markerCompassRadiusCmd(int, double, InternalSystem);
- void markerCompassRadiusCmd(int, double, CoordSystem, SkyDist);
- void markerCompassSystemCmd(int, CoordSystem, SkyFrame);
+ void markerCompassRadiusCmd(int, double, Coord::InternalSystem);
+ void markerCompassRadiusCmd(int, double, Coord::CoordSystem, Coord::SkyDist);
+ void markerCompassSystemCmd(int, Coord::CoordSystem, Coord::SkyFrame);
void markerCompositeCmd(int, int);
void markerCompositeDeleteCmd();
void markerCommandCmd(MarkerFormat, const char*);
@@ -1353,9 +1306,9 @@ public:
void markerCpandaDeleteCmd(int, int);
void markerCpandaEditCmd(int, double, double, int, double, double, int);
void markerCpandaEditCmd(int, double, double, int, double, double, int,
- CoordSystem, SkyFrame);
+ Coord::CoordSystem, Coord::SkyFrame);
void markerCpandaEditCmd(int, const char*, const char*,
- CoordSystem, SkyFrame,CoordSystem, SkyDist);
+ Coord::CoordSystem, Coord::SkyFrame,Coord::CoordSystem, Coord::SkyDist);
void markerCutCmd();
void markerCutCmd(const char*);
@@ -1373,14 +1326,14 @@ public:
void markerEditBeginCmd(const Vector&, int);
void markerEditMotionCmd(const Vector&, int);
void markerEditEndCmd();
- void markerEllipseRadiusCmd(int, const Vector&, InternalSystem);
- void markerEllipseRadiusCmd(int, const Vector&, CoordSystem, SkyDist);
+ void markerEllipseRadiusCmd(int, const Vector&, Coord::InternalSystem);
+ void markerEllipseRadiusCmd(int, const Vector&, Coord::CoordSystem, Coord::SkyDist);
void markerEllipseAnnulusRadiusCmd(int, const Vector&, const Vector&, int,
- InternalSystem);
+ Coord::InternalSystem);
void markerEllipseAnnulusRadiusCmd(int, const Vector&, const Vector&, int,
- CoordSystem, SkyDist);
+ Coord::CoordSystem, Coord::SkyDist);
void markerEllipseAnnulusRadiusCmd(int, const char*,
- CoordSystem, SkyDist);
+ Coord::CoordSystem, Coord::SkyDist);
void markerEllipseAnnulusCreateRadiusCmd(int, const Vector&);
void markerEllipseAnnulusDeleteRadiusCmd(int, int);
void markerEpandaCreateAnglesCmd(int, const Vector&);
@@ -1390,10 +1343,10 @@ public:
const Vector&, const Vector&, int);
void markerEpandaEditCmd(int, double, double, int,
const Vector&, const Vector&, int,
- CoordSystem, SkyFrame);
+ Coord::CoordSystem, Coord::SkyFrame);
void markerEpandaEditCmd(int, const char*, const char*,
- CoordSystem, SkyFrame,
- CoordSystem, SkyDist);
+ Coord::CoordSystem, Coord::SkyFrame,
+ Coord::CoordSystem, Coord::SkyDist);
void markerFontCmd(const char*);
void markerFontCmd(const char*, const char*);
@@ -1413,18 +1366,18 @@ public:
void markerKeyCmd();
void markerKeyCmd(const Vector&);
- void markerLineCmd(int, const Vector&, const Vector&, InternalSystem);
- void markerLineCmd(int, const Vector&, const Vector&, CoordSystem, SkyFrame);
+ void markerLineCmd(int, const Vector&, const Vector&, Coord::InternalSystem);
+ void markerLineCmd(int, const Vector&, const Vector&, Coord::CoordSystem, Coord::SkyFrame);
void markerLineArrowCmd(int, int, int);
void markerLineWidthCmd(int);
void markerLineWidthCmd(int, int);
- void markerListCmd(MarkerFormat, CoordSystem, SkyFrame, SkyFormat,
+ void markerListCmd(MarkerFormat, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat,
int strip, int select,
unsigned short, unsigned short, List<Tag>&);
void markerLoadCmd(MarkerFormat,const char*);
- void markerLoadCmd(MarkerFormat,const char*,CoordSystem,SkyFrame);
+ void markerLoadCmd(MarkerFormat,const char*,Coord::CoordSystem,Coord::SkyFrame);
void markerLoadCmd(MarkerFormat,int);
- void markerLoadCmd(MarkerFormat,int,CoordSystem,SkyFrame);
+ void markerLoadCmd(MarkerFormat,int,Coord::CoordSystem,Coord::SkyFrame);
void markerLoadFitsCmd(const char*, const char*, int*, int, const char*);
void markerMoveCmd(const Vector&);
@@ -1436,44 +1389,44 @@ public:
void markerMoveMotionCmd(int, const Vector&);
void markerMoveEndCmd();
void markerMoveEndCmd(int);
- void markerMoveToCmd(const Vector&, InternalSystem);
- void markerMoveToCmd(const Vector&, CoordSystem, SkyFrame);
- void markerMoveToCmd(const char*, const Vector&, InternalSystem);
- void markerMoveToCmd(const char*, const Vector&, CoordSystem, SkyFrame);
- void markerMoveToCmd(int, const Vector&, InternalSystem);
- void markerMoveToCmd(int, const Vector&, CoordSystem, SkyFrame);
+ void markerMoveToCmd(const Vector&, Coord::InternalSystem);
+ void markerMoveToCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame);
+ void markerMoveToCmd(const char*, const Vector&, Coord::InternalSystem);
+ void markerMoveToCmd(const char*, const Vector&, Coord::CoordSystem, Coord::SkyFrame);
+ void markerMoveToCmd(int, const Vector&, Coord::InternalSystem);
+ void markerMoveToCmd(int, const Vector&, Coord::CoordSystem, Coord::SkyFrame);
void markerPasteCmd();
- void markerPasteCmd(CoordSystem, CoordSystem);
- void markerPointSizeCmd(int,int);
+ void markerPasteCmd(Coord::CoordSystem, Coord::CoordSystem);
+ void markerPointShapeCmd(int, Point::PointShape);
+ void markerPointSizeCmd(int, int);
void markerPolygonCreateVertexCmd(int, int, const Vector&);
void markerPolygonDeleteVertexCmd(int, int);
- void markerPolygonResetCmd(int, const Vector&, InternalSystem);
- void markerPolygonResetCmd(int, const Vector&, CoordSystem, SkyDist);
+ void markerPolygonResetCmd(int, const Vector&, Coord::InternalSystem);
+ void markerPolygonResetCmd(int, const Vector&, Coord::CoordSystem, Coord::SkyDist);
void markerPreserveCmd(int r) {preserveMarkers = r;}
void markerPropertyCmd(unsigned short, int);
void markerPropertyCmd(const char*, unsigned short, int);
void markerPropertyCmd(int, unsigned short, int);
void markerPropertyCmd(unsigned short, int, const Vector&);
void markerProjectionCmd(int, const Vector&, const Vector&,
- InternalSystem, double, int);
+ Coord::InternalSystem, double);
void markerProjectionCmd(int, const Vector&, const Vector&,
- CoordSystem, SkyFrame,
- double, int, CoordSystem, SkyDist);
- void markerProjectionSystemCmd(int, CoordSystem, SkyFrame);
+ Coord::CoordSystem, Coord::SkyFrame,
+ double, Coord::CoordSystem, Coord::SkyDist);
void markerRotateBeginCmd(int);
void markerRotateBeginCmd(const Vector&);
void markerRotateMotionCmd(const Vector&, int h);
void markerRotateEndCmd();
void markerRulerPointCmd(int, const Vector&, const Vector&,
- CoordSystem, SkyFrame);
- void markerRulerPointCmd(int, const Vector&, const Vector&, InternalSystem);
- void markerRulerSystemCmd(int, CoordSystem, SkyFrame,
- CoordSystem, SkyDist);
+ Coord::CoordSystem, Coord::SkyFrame);
+ void markerRulerPointCmd(int, const Vector&, const Vector&, Coord::InternalSystem);
+ void markerRulerSystemCmd(int, Coord::CoordSystem, Coord::SkyFrame,
+ Coord::CoordSystem, Coord::SkyDist);
- void markerSaveCmd(const char*, MarkerFormat, CoordSystem, SkyFrame,
- SkyFormat, int strip);
+ void markerSaveCmd(const char*, MarkerFormat, Coord::CoordSystem, Coord::SkyFrame,
+ Coord::SkyFormat, int strip);
void markerSaveTemplateCmd(const char*);
void markerSelectAllCmd();
void markerSelectCmd(int); // not used
@@ -1503,9 +1456,9 @@ public:
void markerUnselectCmd(int); // not used
void markerUnselectCmd(const char*); // not used
- void markerVectorCmd(int, const Vector&, InternalSystem, double, double);
- void markerVectorCmd(int, const Vector&, CoordSystem, SkyFrame,
- double, CoordSystem, SkyDist, double);
+ void markerVectorCmd(int, const Vector&, Coord::InternalSystem, double, double);
+ void markerVectorCmd(int, const Vector&, Coord::CoordSystem, Coord::SkyFrame,
+ double, Coord::CoordSystem, Coord::SkyDist, double);
void markerVectorArrowCmd(int, int);
void regionHighliteBeginCmd(const Vector& v) {regionSelectBeginCmd(v);}
@@ -1537,12 +1490,12 @@ public:
void getRotateCmd(Precision);
void getPanPreserveCmd();
void getZoomCmd(Precision);
- void orientCmd(Orientation);
+ void orientCmd(Coord::Orientation);
virtual void panCmd(const Vector&) =0;
virtual void panCmd(const Vector&, const Vector&) =0;
- virtual void panCmd(const Vector&, CoordSystem, SkyFrame) =0;
+ virtual void panCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame) =0;
virtual void panToCmd(const Vector&) =0;
- virtual void panToCmd(const Vector&, CoordSystem, SkyFrame) =0;
+ virtual void panToCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame) =0;
void panBeginCmd(const Vector&);
void panMotionCmd(const Vector&);
virtual void panEndCmd(const Vector&) =0;
@@ -1555,26 +1508,26 @@ public:
void rotateToCmd(double);
void wcsAlignCmd(int);
// used by backup
- void wcsAlignCmd(int, CoordSystem, SkyFrame);
- void wcsAlignCmd(int, FitsImage*, CoordSystem);
+ void wcsAlignCmd(int, Coord::CoordSystem, Coord::SkyFrame);
+ void wcsAlignCmd(int, FitsImage*, Coord::CoordSystem);
void zoomCmd(const Vector&);
void zoomToCmd(const Vector&);
virtual void zoomAboutCmd(const Vector&, const Vector&) =0;
virtual void zoomAboutCmd(const Vector&, const Vector&,
- CoordSystem, SkyFrame) =0;
+ Coord::CoordSystem, Coord::SkyFrame) =0;
virtual void zoomToAboutCmd(const Vector&, const Vector&) =0;
virtual void zoomToAboutCmd(const Vector&, const Vector&,
- CoordSystem, SkyFrame) =0;
+ Coord::CoordSystem, Coord::SkyFrame) =0;
virtual void zoomToFitCmd(double) =0;
// Panner Commands
void pannerCmd(int);
void pannerCmd(char*, int, int);
- void pannerCmd(CoordSystem, SkyFrame);
+ void pannerCmd(Coord::CoordSystem, Coord::SkyFrame);
void updatePannerCmd();
// Pixel Table Commands
- void getPixelTableCmd(const Vector&, InternalSystem, int, int, char*);
+ void getPixelTableCmd(const Vector&, Coord::InternalSystem, int, int, char*);
// Print Commands
#ifdef _MACOSX
@@ -1589,7 +1542,7 @@ public:
void colorScaleLogCmd(double);
void getColorMapLevelCmd(int);
void getColorMapLevelCmd(int, double, double, FrScale::ColorScaleType, float);
- void getColorMapLevelCmd(int, const Vector&, InternalSystem);
+ void getColorMapLevelCmd(int, const Vector&, Coord::InternalSystem);
void getColorScaleCmd();
void getColorScaleLevelCmd(int, double, double,
FrScale::ColorScaleType, float);
@@ -1617,7 +1570,7 @@ public:
virtual void getRGBSystemCmd() =0;
virtual void setRGBChannelCmd(const char*) {}
virtual void setRGBViewCmd(int, int, int) {}
- virtual void setRGBSystemCmd(CoordSystem) {}
+ virtual void setRGBSystemCmd(Coord::CoordSystem) {}
// 3d
virtual void get3dHighliteCmd() =0;
diff --git a/saotk/frame/basebox.C b/saotk/frame/basebox.C
index ff0a3c0..3eb5516 100644
--- a/saotk/frame/basebox.C
+++ b/saotk/frame/basebox.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "basebox.h"
-#include "framebase.h"
#include "fitsimage.h"
BaseBox::BaseBox(const BaseBox& a) : BaseMarker(a)
@@ -29,7 +28,7 @@ BaseBox::~BaseBox()
deleteVertices();
}
-void BaseBox::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void BaseBox::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
GC lgc = renderXGC(mode);
@@ -54,7 +53,7 @@ void BaseBox::renderPS(int mode)
newVertices();
for (int ii=0; ii<numAnnuli_; ii++) {
for (int jj=0; jj<numPoints_; jj++) {
- Vector v = parent->mapFromRef(vertices_[ii][jj],CANVAS);
+ Vector v = parent->mapFromRef(vertices_[ii][jj],Coord::CANVAS);
ostringstream str;
if (jj==0)
@@ -98,7 +97,7 @@ void BaseBox::renderWIN32()
for (int ii=0; ii<numAnnuli_; ii++) {
Vector vv[numPoints_];
for (int jj=0; jj<numPoints_; jj++)
- vv[jj] = parent->mapFromRef(vertices_[ii][jj],CANVAS);
+ vv[jj] = parent->mapFromRef(vertices_[ii][jj],Coord::CANVAS);
win32DrawLines(vv, numPoints_);
}
deleteVertices();
@@ -125,29 +124,28 @@ void BaseBox::updateHandles()
}
Vector& s = max;
- handle[0] = fwdMap(Vector(-s[0],-s[1])/2,CANVAS);
- handle[1] = fwdMap(Vector( s[0],-s[1])/2,CANVAS);
- handle[2] = fwdMap(Vector( s[0], s[1])/2,CANVAS);
- handle[3] = fwdMap(Vector(-s[0], s[1])/2,CANVAS);
+ handle[0] = fwdMap(Vector(-s[0],-s[1])/2,Coord::CANVAS);
+ handle[1] = fwdMap(Vector( s[0],-s[1])/2,Coord::CANVAS);
+ handle[2] = fwdMap(Vector( s[0], s[1])/2,Coord::CANVAS);
+ handle[3] = fwdMap(Vector(-s[0], s[1])/2,Coord::CANVAS);
// annuli
if (numAnnuli_>1)
for (int ii=0; ii<numAnnuli_; ii++)
- handle[ii+4] = fwdMap(Vector((annuli_[ii][0])/2.,0),CANVAS);
+ handle[ii+4] = fwdMap(Vector((annuli_[ii][0])/2.,0),Coord::CANVAS);
}
-int BaseBox::isIn(const Vector& v)
+int BaseBox::isIn(const Vector& vv, Coord::InternalSystem sys)
{
- // v is in canvas coords
- Vector s = annuli_[numAnnuli_-1];
+ Vector ss = annuli_[numAnnuli_-1];
// zero radius
- if (!s[0] || !s[1])
+ if (!ss[0] || !ss[1])
return 0;
- Vector p = bckMap(v,CANVAS);
+ Vector pp = bckMap(vv,sys);
- if (p[0]<-s[0]/2 || p[0]>s[0]/2 || p[1]<-s[1]/2 || p[1]>s[1]/2)
+ if (pp[0]<-ss[0]/2 || pp[0]>ss[0]/2 || pp[1]<-ss[1]/2 || pp[1]>ss[1]/2)
return 0;
else
return 1;
diff --git a/saotk/frame/basebox.h b/saotk/frame/basebox.h
index 9f31473..2e90c63 100644
--- a/saotk/frame/basebox.h
+++ b/saotk/frame/basebox.h
@@ -27,7 +27,7 @@ protected:
virtual void updateHandles();
Vector intersect(Vector, double);
- void renderX(Drawable, InternalSystem, RenderMode);
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
void renderPS(int);
#ifdef _MACOSX
void renderMACOSX();
@@ -48,7 +48,8 @@ public:
virtual Marker* dup() =0;
- int isIn(const Vector&);
+ int isIn(const Vector& vv) {return isIn(vv, Coord::CANVAS);}
+ int isIn(const Vector&, Coord::InternalSystem);
};
#endif
diff --git a/saotk/frame/basecommand.C b/saotk/frame/basecommand.C
index e45b51b..eb940f7 100644
--- a/saotk/frame/basecommand.C
+++ b/saotk/frame/basecommand.C
@@ -369,6 +369,7 @@ void Base::cropCmd()
sptr = sptr->nextSlice();
}
+ currentContext->frScale.clearHistogram();
currentContext->updateClip();
currentContext->updateContours();
updateColorScale();
@@ -380,7 +381,7 @@ void Base::cropCmd()
// used for Backup
void Base::cropCmd(const Vector& aa, const Vector& bb,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
FitsImage* ptr = currentContext->fits;
if (!ptr)
@@ -399,6 +400,7 @@ void Base::cropCmd(const Vector& aa, const Vector& bb,
sptr = sptr->nextSlice();
}
+ currentContext->frScale.clearHistogram();
currentContext->updateClip();
currentContext->updateContours();
updateColorScale();
@@ -408,8 +410,8 @@ void Base::cropCmd(const Vector& aa, const Vector& bb,
updateMarkerCBs(&catalogMarkers);
}
-void Base::cropCenterCmd(const Vector& vv, CoordSystem sys, SkyFrame sky,
- const Vector& wh, CoordSystem dsys, SkyDist dist)
+void Base::cropCenterCmd(const Vector& vv, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ const Vector& wh, Coord::CoordSystem dsys, Coord::SkyDist dist)
{
FitsImage* ptr = currentContext->fits;
if (!ptr)
@@ -429,6 +431,7 @@ void Base::cropCenterCmd(const Vector& vv, CoordSystem sys, SkyFrame sky,
sptr = sptr->nextSlice();
}
+ currentContext->frScale.clearHistogram();
currentContext->updateClip();
currentContext->updateContours();
updateColorScale();
@@ -446,16 +449,16 @@ void Base::cropBeginCmd(const Vector& vv)
void Base::cropMotionCmd(const Vector& vv)
{
- Vector ss = mapToRef(cropBegin,CANVAS);
+ Vector ss = mapToRef(cropBegin, Coord::CANVAS);
// erase
if (cropBegin[0]!=cropEnd[0] || cropBegin[1]!=cropEnd[1]) {
- Vector tt = mapToRef(cropEnd,CANVAS);
+ Vector tt = mapToRef(cropEnd, Coord::CANVAS);
- Vector ll = mapFromRef(ss,CANVAS);
- Vector lr = mapFromRef(Vector(tt[0],ss[1]),CANVAS);
- Vector ur = mapFromRef(tt,CANVAS);
- Vector ul = mapFromRef(Vector(ss[0],tt[1]),CANVAS);
+ Vector ll = mapFromRef(ss, Coord::CANVAS);
+ Vector lr = mapFromRef(Vector(tt[0],ss[1]), Coord::CANVAS);
+ Vector ur = mapFromRef(tt, Coord::CANVAS);
+ Vector ul = mapFromRef(Vector(ss[0],tt[1]), Coord::CANVAS);
BBox bb(ll);
bb.bound(lr);
@@ -468,12 +471,12 @@ void Base::cropMotionCmd(const Vector& vv)
cropEnd = vv;
// and draw to window
{
- Vector tt = mapToRef(cropEnd,CANVAS);
+ Vector tt = mapToRef(cropEnd, Coord::CANVAS);
- Vector ll = mapFromRef(ss,WINDOW);
- Vector lr = mapFromRef(Vector(tt[0],ss[1]),WINDOW);
- Vector ur = mapFromRef(tt,WINDOW);
- Vector ul = mapFromRef(Vector(ss[0],tt[1]),WINDOW);
+ Vector ll = mapFromRef(ss, Coord::WINDOW);
+ Vector lr = mapFromRef(Vector(tt[0],ss[1]), Coord::WINDOW);
+ Vector ur = mapFromRef(tt, Coord::WINDOW);
+ Vector ul = mapFromRef(Vector(ss[0],tt[1]), Coord::WINDOW);
XDrawLine(display,Tk_WindowId(tkwin),selectGCXOR,ll[0],ll[1],lr[0],lr[1]);
XDrawLine(display,Tk_WindowId(tkwin),selectGCXOR,lr[0],lr[1],ur[0],ur[1]);
@@ -484,16 +487,16 @@ void Base::cropMotionCmd(const Vector& vv)
void Base::cropEndCmd(const Vector& vv)
{
- Vector ss = mapToRef(cropBegin,CANVAS);
+ Vector ss = mapToRef(cropBegin, Coord::CANVAS);
// erase
if (cropBegin[0]!=cropEnd[0] || cropBegin[1]!=cropEnd[1]) {
- Vector tt = mapToRef(cropEnd,CANVAS);
+ Vector tt = mapToRef(cropEnd, Coord::CANVAS);
- Vector ll = mapFromRef(ss,CANVAS);
- Vector lr = mapFromRef(Vector(tt[0],ss[1]),CANVAS);
- Vector ur = mapFromRef(tt,CANVAS);
- Vector ul = mapFromRef(Vector(ss[0],tt[1]),CANVAS);
+ Vector ll = mapFromRef(ss, Coord::CANVAS);
+ Vector lr = mapFromRef(Vector(tt[0],ss[1]), Coord::CANVAS);
+ Vector ur = mapFromRef(tt, Coord::CANVAS);
+ Vector ul = mapFromRef(Vector(ss[0],tt[1]), Coord::CANVAS);
BBox bb(ll);
bb.bound(lr);
@@ -506,7 +509,7 @@ void Base::cropEndCmd(const Vector& vv)
cropEnd = vv;
if (cropBegin[0]!=cropEnd[0] || cropBegin[1]!=cropEnd[1]) {
- Vector tt = mapToRef(cropEnd,CANVAS);
+ Vector tt = mapToRef(cropEnd, Coord::CANVAS);
if (!isMosaic()) {
currentContext->frScale.setScanMode(FrScale::CROPSEC);
@@ -522,8 +525,8 @@ void Base::cropEndCmd(const Vector& vv)
else {
FitsImage* ptr1 =NULL;
FitsImage* ptr2 =NULL;
- if ((ptr1=isInFits(cropBegin,CANVAS,NULL)) ==
- (ptr2=isInFits(cropEnd,CANVAS,NULL))) {
+ if ((ptr1=isInFits(cropBegin,Coord::CANVAS,NULL)) ==
+ (ptr2=isInFits(cropEnd,Coord::CANVAS,NULL))) {
currentContext->frScale.setScanMode(FrScale::CROPSEC);
// clear any previous params
@@ -560,6 +563,7 @@ void Base::cropEndCmd(const Vector& vv)
}
}
+ currentContext->frScale.clearHistogram();
currentContext->updateClip();
currentContext->updateContours();
updateColorScale();
@@ -580,6 +584,7 @@ void Base::crop3dCmd()
sptr = sptr->nextSlice();
}
+ currentContext->frScale.clearHistogram();
currentContext->updateClip();
currentContext->updateContours();
updateColorScale();
@@ -589,7 +594,7 @@ void Base::crop3dCmd()
updateMarkerCBs(&catalogMarkers);
}
-void Base::crop3dCmd(double z0, double z1, CoordSystem sys)
+void Base::crop3dCmd(double z0, double z1, Coord::CoordSystem sys)
{
// use first slice
FitsImage* ptr = currentContext->fits;
@@ -618,6 +623,7 @@ void Base::crop3dCmd(double z0, double z1, CoordSystem sys)
setSlice(2,tt+.5);
currentContext->frScale.setScanMode(FrScale::CROPSEC);
+ currentContext->frScale.clearHistogram();
currentContext->updateClip();
updateColorScale();
update(MATRIX);
@@ -632,14 +638,14 @@ void Base::crosshairCmd(int which)
update(PIXMAP);
}
-void Base::crosshairCmd(const Vector& vv, InternalSystem sys)
+void Base::crosshairCmd(const Vector& vv, Coord::InternalSystem sys)
{
useCrosshair = 1;
crosshair = mapToRef(vv, sys);
update(PIXMAP);
}
-void Base::crosshairCmd(const Vector& v, CoordSystem sys, SkyFrame sky)
+void Base::crosshairCmd(const Vector& v, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
useCrosshair = 1;
if (currentContext->cfits)
@@ -690,7 +696,7 @@ void Base::contourAuxNextCmd()
currentContext->contourAuxNext();
}
-void Base::contourAuxSaveCmd(const char* fn, CoordSystem sys, SkyFrame sky)
+void Base::contourAuxSaveCmd(const char* fn, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (currentContext->cfits && hasContourAux()) {
ofstream str(fn);
@@ -712,7 +718,7 @@ void Base::contourAuxSaveCmd(const char* fn, CoordSystem sys, SkyFrame sky)
}
}
-void Base::contourCopyCmd(CoordSystem sys, SkyFrame sky)
+void Base::contourCopyCmd(Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (currentContext->cfits && hasContour()) {
List<Vertex>* v = new List<Vertex>(currentContext->contour->contours());
@@ -820,7 +826,7 @@ void Base::contourDeleteAllCmd()
}
void Base::contourLoadCmd(const char* color, int w, int d, const char* fn,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (!currentContext->cfits)
return;
@@ -856,7 +862,7 @@ void Base::contourLoadCmd(const char* color, int w, int d, const char* fn,
}
void Base::contourPasteCmd(const char* c, int w, int d, void* u,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (!currentContext->cfits)
return;
@@ -876,7 +882,7 @@ void Base::contourPasteCmd(const char* c, int w, int d, void* u,
update(PIXMAP);
}
-void Base::contourSaveCmd(const char* fn, CoordSystem sys, SkyFrame sky)
+void Base::contourSaveCmd(const char* fn, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (currentContext->cfits && hasContour()) {
ofstream str(fn);
@@ -1185,7 +1191,7 @@ void Base::getColorMapLevelCmd(int count)
currentContext->frScale.expo());
}
-void Base::getColorMapLevelCmd(int count, const Vector& vv, InternalSystem ref)
+void Base::getColorMapLevelCmd(int count, const Vector& vv, Coord::InternalSystem ref)
{
if (currentContext->cfits) {
if (FitsImage* ptr=isInFits(vv,ref,NULL)) {
@@ -1329,7 +1335,7 @@ void Base::getColorScaleLogCmd()
Tcl_AppendResult(interp, str.str().c_str(), NULL);
}
-void Base::getContourCmd(CoordSystem sys, SkyFrame sky)
+void Base::getContourCmd(Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (currentContext->cfits && hasContour()) {
List<Vertex>& v = (List<Vertex>&)(currentContext->contour->contours());
@@ -1486,14 +1492,14 @@ void Base::getContourScaleLogCmd()
}
}
-void Base::getCoordCmd(const Vector& vv, CoordSystem out,
- SkyFrame sky, SkyFormat format)
+void Base::getCoordCmd(const Vector& vv, Coord::CoordSystem out,
+ Coord::SkyFrame sky, Coord::SkyFormat format)
{
- if (FitsImage* ptr=isInFits(vv,CANVAS,NULL))
- printFromRef(ptr, mapToRef(vv,CANVAS), out, sky, format, DEFAULT);
+ if (FitsImage* ptr=isInFits(vv,Coord::CANVAS,NULL))
+ printFromRef(ptr, mapToRef(vv,Coord::CANVAS), out, sky, format, DEFAULT);
}
-void Base::getCoordFromRefCmd(double vv, CoordSystem out, int ss)
+void Base::getCoordFromRefCmd(double vv, Coord::CoordSystem out, int ss)
{
if (currentContext->cfits)
// use first slice
@@ -1502,7 +1508,7 @@ void Base::getCoordFromRefCmd(double vv, CoordSystem out, int ss)
printDouble(0,DEFAULT);
}
-void Base::getCoordToRefCmd(double vv, CoordSystem in, int ss)
+void Base::getCoordToRefCmd(double vv, Coord::CoordSystem in, int ss)
{
if (currentContext->cfits)
// use first slice
@@ -1512,7 +1518,7 @@ void Base::getCoordToRefCmd(double vv, CoordSystem in, int ss)
}
// used for Backup
-void Base::getCropCmd(CoordSystem sys, SkyFrame sky, SkyFormat format)
+void Base::getCropCmd(Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format)
{
FitsImage* ptr = currentContext->fits;
if (!ptr)
@@ -1527,8 +1533,8 @@ void Base::getCropCmd(CoordSystem sys, SkyFrame sky, SkyFormat format)
printFromRef(ptr, ur*ptr->dataToRef, sys, sky, format, DEFAULT);
}
-void Base::getCropCenterCmd(CoordSystem sys, SkyFrame sky, SkyFormat format,
- CoordSystem dcoord, SkyDist dist)
+void Base::getCropCenterCmd(Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
+ Coord::CoordSystem dcoord, Coord::SkyDist dist)
{
FitsImage* ptr = currentContext->fits;
if (!ptr)
@@ -1545,7 +1551,7 @@ void Base::getCropCenterCmd(CoordSystem sys, SkyFrame sky, SkyFormat format,
printVector(ptr->mapLenFromImage(dd, dcoord, dist), DEFAULT);
}
-void Base::getCrop3dCmd(CoordSystem sys)
+void Base::getCrop3dCmd(Coord::CoordSystem sys)
{
// use first slice
FitsImage* ptr = currentContext->fits;
@@ -1561,13 +1567,13 @@ void Base::getCrop3dCmd(CoordSystem sys)
Tcl_AppendResult(interp, str.str().c_str(), NULL);
}
-void Base::getCrosshairCmd(InternalSystem sys)
+void Base::getCrosshairCmd(Coord::InternalSystem sys)
{
printVector(mapFromRef(crosshair, sys), DEFAULT);
}
-void Base::getCrosshairCmd(CoordSystem sys, SkyFrame sky,
- SkyFormat format, Precision pp)
+void Base::getCrosshairCmd(Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, Precision pp)
{
if (currentContext->cfits)
printFromRef(currentContext->cfits, crosshair, sys, sky, format, pp);
@@ -1591,7 +1597,7 @@ void Base::getDATASECCmd()
Tcl_AppendResult(interp, "0", NULL);
}
-void Base::getDataValuesCmd(const Vector& vv, InternalSystem ref,
+void Base::getDataValuesCmd(const Vector& vv, Coord::InternalSystem ref,
const Vector& ss)
{
Vector rr;
@@ -1616,8 +1622,8 @@ void Base::getDataValuesCmd(const Vector& vv, InternalSystem ref,
CLEARSIGBUS
}
-void Base::getDataValuesCmd(int which, const Vector& vv, CoordSystem sys,
- SkyFrame sky, const Vector& dd, char* var)
+void Base::getDataValuesCmd(int which, const Vector& vv, Coord::CoordSystem sys,
+ Coord::SkyFrame sky, const Vector& dd, char* var)
{
// clear an previous values
Tcl_UnsetVar(interp,var,0);
@@ -1633,7 +1639,7 @@ void Base::getDataValuesCmd(int which, const Vector& vv, CoordSystem sys,
result = TCL_ERROR;
return;
}
- Vector ll = base->mapLenToRef(dd,sys,DEGREE);
+ Vector ll = base->mapLenToRef(dd,sys,Coord::DEGREE);
Vector bb = base->mapToRef(vv,sys,sky);
SETSIGBUS
@@ -1675,7 +1681,7 @@ void Base::getFitsNAxesCmd()
printInteger(currentContext->naxes());
}
-void Base::getFitsCenterCmd(CoordSystem sys, SkyFrame sky, SkyFormat format,
+void Base::getFitsCenterCmd(Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
Precision pp)
{
if (keyContext && keyContext->fits)
@@ -1701,7 +1707,7 @@ void Base::getFitsDepthCmd(int ii)
printInteger(1);
}
-void Base::getFitsExtCmd(const Vector& vv, InternalSystem ref)
+void Base::getFitsExtCmd(const Vector& vv, Coord::InternalSystem ref)
{
if (FitsImage* ptr=isInFits(vv,ref,NULL)) {
ostringstream str;
@@ -1817,7 +1823,7 @@ void Base::getFitsFileNameCmd(int which, FileNameType type)
result = TCL_ERROR;
}
-void Base::getFitsFileNameCmd(const Vector& vv, InternalSystem ref,
+void Base::getFitsFileNameCmd(const Vector& vv, Coord::InternalSystem ref,
FileNameType type)
{
if (FitsImage* ptr=isInFits(vv,ref,NULL)) {
@@ -1861,7 +1867,7 @@ void Base::getFitsSizeCmd()
printVector(Vector(), DEFAULT);
}
-void Base::getFitsSizeCmd(CoordSystem sys, SkyFrame sky, SkyDist dist,
+void Base::getFitsSizeCmd(Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyDist dist,
Precision pp)
{
if (keyContext->fits) {
@@ -1911,12 +1917,12 @@ void Base::getFitsSizeCmd(CoordSystem sys, SkyFrame sky, SkyDist dist,
keyContext->fits->wcsdist(wbb.ll,wbb.ul(),sys));
switch (dist) {
- case DEGREES:
+ case Coord::DEGREE:
break;
- case ARCMIN:
+ case Coord::ARCMIN:
ss *= 60;
break;
- case ARCSEC:
+ case Coord::ARCSEC:
ss *= 60*60;
break;
}
@@ -1939,11 +1945,11 @@ void Base::getFitsSliceCmd(int ii)
void Base::getGridCmd()
{
if (grid) {
- Tcl_AppendElement(interp, coordSystemStr_[(grid->system())]);
+ Tcl_AppendElement(interp, coord.coordSystemStr((grid->system())));
- Tcl_AppendElement(interp, skyFrameStr_[(grid->sky())]);
+ Tcl_AppendElement(interp, coord.skyFrameStr((grid->sky())));
- Tcl_AppendElement(interp, skyFormatStr_[grid->skyFormat()]);
+ Tcl_AppendElement(interp, coord.skyFormatStr(grid->skyFormat()));
switch (grid->type()) {
case Grid::ANALYSIS:
@@ -1974,16 +1980,15 @@ void Base::getHeightCmd()
void Base::getHistogramCmd(char* xName, char* yName)
{
- currentContext->bltHist(interp,xName,yName);
- printDouble((currentContext->frScale.max()-currentContext->frScale.min())/256., DEFAULT);
+ currentContext->bltHist(xName, yName, 256);
}
void Base::getHorzCutCmd(char* xx, char* yy, const Vector& vv,
- InternalSystem ref)
+ Coord::InternalSystem ref)
{
Vector rr;
if (FitsImage* ptr = isInFits(vv, ref, &rr))
- bltCut(xx, yy, XX, rr);
+ bltCut(xx, yy, Coord::XX, rr);
}
void Base::getInfoCmd(char* var)
@@ -2004,7 +2009,7 @@ void Base::getInfoCmd(char* var)
getInfoClearValue(var);
}
-void Base::getInfoCmd(const Vector& vv, InternalSystem ref, char* var)
+void Base::getInfoCmd(const Vector& vv, Coord::InternalSystem ref, char* var)
{
FitsBound* params;
int mosaic;
@@ -2056,18 +2061,18 @@ void Base::getInfoCmd(const Vector& vv, InternalSystem ref, char* var)
Tcl_SetVar2(interp,var,"value",(char*)sptr->getValue(img),0);
CLEARSIGBUS
- coordToTclArray(sptr,rr,IMAGE,FIXED,var,"image");
+ coordToTclArray(sptr,rr,Coord::IMAGE,FIXED,var,"image");
// use first slice
- coord3ToTclArray(ptr,rr,IMAGE,FIXED,var,"image");
+ coord3ToTclArray(ptr,rr,Coord::IMAGE,FIXED,var,"image");
- coordToTclArray(sptr,rr,PHYSICAL,FIXED,var,"physical");
+ coordToTclArray(sptr,rr,Coord::PHYSICAL,FIXED,var,"physical");
// use first slice
- coord3ToTclArray(ptr,rr,PHYSICAL,FIXED,var,"physical");
+ coord3ToTclArray(ptr,rr,Coord::PHYSICAL,FIXED,var,"physical");
if (hasATMV()) {
- coordToTclArray(sptr,rr,AMPLIFIER,FIXED,var,"amplifier");
+ coordToTclArray(sptr,rr,Coord::AMPLIFIER,FIXED,var,"amplifier");
// use first slice
- coord3ToTclArray(ptr,rr,AMPLIFIER,FIXED,var,"amplifier");
+ coord3ToTclArray(ptr,rr,Coord::AMPLIFIER,FIXED,var,"amplifier");
}
else {
Tcl_SetVar2(interp,var,"amplifier,x","",0);
@@ -2076,9 +2081,9 @@ void Base::getInfoCmd(const Vector& vv, InternalSystem ref, char* var)
}
if (hasDTMV()) {
- coordToTclArray(sptr,rr,DETECTOR,FIXED,var,"detector");
+ coordToTclArray(sptr,rr,Coord::DETECTOR,FIXED,var,"detector");
// use first slice
- coord3ToTclArray(ptr,rr,DETECTOR,FIXED,var,"detector");
+ coord3ToTclArray(ptr,rr,Coord::DETECTOR,FIXED,var,"detector");
}
else {
Tcl_SetVar2(interp,var,"detector,x","",0);
@@ -2089,7 +2094,7 @@ void Base::getInfoCmd(const Vector& vv, InternalSystem ref, char* var)
for (int i=0; i<MULTWCS; i++) {
char buf[64];
char w = !i ? NULL : '`'+i;
- CoordSystem www = (CoordSystem)(WCS+i);
+ Coord::CoordSystem www = (Coord::CoordSystem)(Coord::WCS+i);
if (hasWCS(www)) {
char buff[128];
@@ -2194,16 +2199,16 @@ void Base::getNANColorCmd()
void Base::getOrientCmd()
{
switch (orientation) {
- case NORMAL:
+ case Coord::NORMAL:
Tcl_AppendResult(interp, "none", NULL);
return;
- case XX:
+ case Coord::XX:
Tcl_AppendResult(interp, "x", NULL);
return;
- case YY:
+ case Coord::YY:
Tcl_AppendResult(interp, "y", NULL);
return;
- case XY:
+ case Coord::XY:
Tcl_AppendResult(interp, "xy", NULL);
return;
}
@@ -2217,7 +2222,7 @@ void Base::getPanPreserveCmd()
Tcl_AppendResult(interp, "0", NULL);
}
-void Base::getPixelTableCmd(const Vector& vv, InternalSystem ref,
+void Base::getPixelTableCmd(const Vector& vv, Coord::InternalSystem ref,
int ww, int hh, char* var)
{
Vector rr;
@@ -2332,7 +2337,7 @@ void Base::getSmoothRadiusCmd()
printInteger(smoothRadius_);
}
-void Base::getValueCmd(const Vector& vv, InternalSystem sys)
+void Base::getValueCmd(const Vector& vv, Coord::InternalSystem sys)
{
Vector rr;
SETSIGBUS
@@ -2342,18 +2347,18 @@ void Base::getValueCmd(const Vector& vv, InternalSystem sys)
}
void Base::getVertCutCmd(char* xx, char* yy, const Vector& vv,
- InternalSystem ref)
+ Coord::InternalSystem ref)
{
Vector rr;
if (FitsImage* ptr = isInFits(vv, ref, &rr))
- bltCut(xx, yy, YY, rr);
+ bltCut(xx, yy, Coord::YY, rr);
}
void Base::getWCSCmd()
{
- Tcl_AppendResult(interp, coordSystemStr_[wcsSystem_], " ",
- skyFrameStr_[wcsSky_], " ",
- skyFormatStr_[wcsSkyFormat_], NULL);
+ Tcl_AppendResult(interp, coord.coordSystemStr(wcsSystem_), " ",
+ coord.skyFrameStr(wcsSky_), " ",
+ coord.skyFormatStr(wcsSkyFormat_), NULL);
}
void Base::getWCSAlignCmd()
@@ -2371,10 +2376,10 @@ void Base::getWCSAlignPointerCmd()
Tcl_AppendResult(interp, (wcsAlign_ ? "1" : "0"), " ",
str.str().c_str(), " ",
- coordSystemStr_[wcsSystem_], NULL);
+ coord.coordSystemStr(wcsSystem_), NULL);
}
-void Base::getWCSNameCmd(CoordSystem sys)
+void Base::getWCSNameCmd(Coord::CoordSystem sys)
{
if (currentContext->cfits && currentContext->cfits->hasWCS(sys)) {
char* wcsname = (char*)currentContext->cfits->getWCSName(sys);
@@ -2414,6 +2419,17 @@ void Base::hasAmplifierCmd()
Tcl_AppendResult(interp, "0", NULL);
}
+void Base::hasBinColCmd(const char* str)
+{
+ if (currentContext->fits) {
+ if (currentContext->fits->hasBinCol(str)) {
+ Tcl_AppendResult(interp, "1", NULL);
+ return;
+ }
+ }
+ Tcl_AppendResult(interp, "0", NULL);
+}
+
void Base::hasContourCmd()
{
if (hasContour())
@@ -2547,19 +2563,19 @@ void Base::hasSmoothCmd()
Tcl_AppendResult(interp, "0", NULL);
}
-void Base::hasSystemCmd(CoordSystem sys)
+void Base::hasSystemCmd(Coord::CoordSystem sys)
{
switch (sys) {
- case IMAGE:
+ case Coord::IMAGE:
Tcl_AppendResult(interp, "1", NULL);
return;
- case PHYSICAL:
+ case Coord::PHYSICAL:
hasPhysicalCmd();
return;
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
hasAmplifierCmd();
return;
- case DETECTOR:
+ case Coord::DETECTOR:
hasDetectorCmd();
return;
default:
@@ -2568,7 +2584,7 @@ void Base::hasSystemCmd(CoordSystem sys)
}
}
-void Base::hasWCSCmd(CoordSystem sys)
+void Base::hasWCSCmd(Coord::CoordSystem sys)
{
Tcl_AppendResult(interp, (hasWCS(sys) ? "1" : "0"), NULL);
}
@@ -2578,12 +2594,12 @@ void Base::hasWCSAltCmd()
Tcl_AppendResult(interp, (wcsAlt_ ? "1" : "0"), NULL);
}
-void Base::hasWCSEquCmd(CoordSystem sys)
+void Base::hasWCSEquCmd(Coord::CoordSystem sys)
{
Tcl_AppendResult(interp, (hasWCSEqu(sys) ? "1" : "0"), NULL);
}
-void Base::hasWCSCelCmd(CoordSystem sys)
+void Base::hasWCSCelCmd(Coord::CoordSystem sys)
{
Tcl_AppendResult(interp, (hasWCSCel(sys) ? "1" : "0"), NULL);
}
@@ -2749,21 +2765,21 @@ void Base::nanColorCmd(const char* color)
update(BASE);
}
-void Base::orientCmd(Orientation which)
+void Base::orientCmd(Coord::Orientation which)
{
orientation = which;
switch (orientation) {
- case NORMAL:
+ case Coord::NORMAL:
orientationMatrix.identity();
break;
- case XX:
+ case Coord::XX:
orientationMatrix = FlipX();
break;
- case YY:
+ case Coord::YY:
orientationMatrix = FlipY();
break;
- case XY:
+ case Coord::XY:
orientationMatrix = FlipXY();
break;
}
@@ -2872,7 +2888,7 @@ void Base::pannerCmd(char* n, int w, int h)
update(MATRIX);
}
-void Base::pannerCmd(CoordSystem sys, SkyFrame sky)
+void Base::pannerCmd(Coord::CoordSystem sys, Coord::SkyFrame sky)
{
pannerSystem = sys;
pannerSky = sky;
@@ -3052,10 +3068,10 @@ void Base::updateFitsCmd(int which, BBox bb, int now)
if (ptr) {
BBox bbb = bb*ptr->imageToRef;
- Vector ll = mapFromRef(bbb.ll,CANVAS);
- Vector lr = mapFromRef(bbb.lr(),CANVAS);
- Vector ur = mapFromRef(bbb.ur,CANVAS);
- Vector ul = mapFromRef(bbb.ul(),CANVAS);
+ Vector ll = mapFromRef(bbb.ll,Coord::CANVAS);
+ Vector lr = mapFromRef(bbb.lr(),Coord::CANVAS);
+ Vector ur = mapFromRef(bbb.ur,Coord::CANVAS);
+ Vector ul = mapFromRef(bbb.ul(),Coord::CANVAS);
BBox rr(ll);
rr.bound(lr);
@@ -3094,7 +3110,7 @@ void Base::warpToCmd(const Vector& vv)
XWarpPointer(display, None, Tk_WindowId(tkwin), 0, 0, 0, 0, aa[0], aa[1]);
}
-void Base::wcsCmd(CoordSystem sys, SkyFrame sky, SkyFormat format)
+void Base::wcsCmd(Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format)
{
wcsSystem_ = sys;
wcsSky_ = sky;
@@ -3110,7 +3126,7 @@ void Base::wcsAlignCmd(int which)
}
// used by backup
-void Base::wcsAlignCmd(int which, CoordSystem sys, SkyFrame sky)
+void Base::wcsAlignCmd(int which, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
wcsAlign_ = which;
@@ -3118,7 +3134,7 @@ void Base::wcsAlignCmd(int which, CoordSystem sys, SkyFrame sky)
update(MATRIX);
}
-void Base::wcsAlignCmd(int which, FitsImage* ptr, CoordSystem sys)
+void Base::wcsAlignCmd(int which, FitsImage* ptr, Coord::CoordSystem sys)
{
wcsAlign_ = which;
@@ -3141,7 +3157,10 @@ void Base::wcsAppendCmd(int which, int fd)
FitsImage* rr = findAllFits(which);
if (rr) {
FitsHead* hh = parseWCS(str);
- rr->appendWCS(hh);
+ while (rr) {
+ rr->appendWCS(hh);
+ rr=rr->nextSlice();
+ }
delete hh;
}
else
@@ -3163,7 +3182,10 @@ void Base::wcsAppendCmd(int which, const char* fn)
FitsImage* rr = findAllFits(which);
if (rr) {
FitsHead* hh = parseWCS(str);
- rr->appendWCS(hh);
+ while (rr) {
+ rr->appendWCS(hh);
+ rr=rr->nextSlice();
+ }
delete hh;
}
else
@@ -3185,7 +3207,10 @@ void Base::wcsAppendTxtCmd(int which, const char* txt)
FitsImage* rr = findAllFits(which);
if (rr) {
FitsHead* hh = parseWCS(str);
- rr->appendWCS(hh);
+ while (rr) {
+ rr->appendWCS(hh);
+ rr=rr->nextSlice();
+ }
delete hh;
}
else
@@ -3201,7 +3226,10 @@ void Base::wcsResetCmd(int which)
FitsImage* rr = findAllFits(which);
if (rr)
- rr->resetWCS();
+ while (rr) {
+ rr->resetWCS();
+ rr=rr->nextSlice();
+ }
else
result = TCL_ERROR;
}
@@ -3221,7 +3249,10 @@ void Base::wcsReplaceCmd(int which, int fd)
FitsImage* rr = findAllFits(which);
if (rr) {
FitsHead* hh = parseWCS(str);
- rr->replaceWCS(hh);
+ while (rr) {
+ rr->replaceWCS(hh);
+ rr=rr->nextSlice();
+ }
delete hh;
wcsAlt_ =1;
@@ -3245,7 +3276,10 @@ void Base::wcsReplaceCmd(int which, const char* fn)
FitsImage* rr = findAllFits(which);
if (rr) {
FitsHead* hh = parseWCS(str);
- rr->replaceWCS(hh);
+ while (rr) {
+ rr->replaceWCS(hh);
+ rr=rr->nextSlice();
+ }
delete hh;
wcsAlt_ =1;
}
@@ -3268,7 +3302,10 @@ void Base::wcsReplaceTxtCmd(int which, const char* txt)
FitsImage* rr = findAllFits(which);
if (rr) {
FitsHead* hh = parseWCS(str);
- rr->replaceWCS(hh);
+ while (rr) {
+ rr->replaceWCS(hh);
+ rr=rr->nextSlice();
+ }
delete hh;
wcsAlt_ =1;
}
@@ -3289,4 +3326,3 @@ void Base::zoomToCmd(const Vector& z)
zoom_ = ((Vector&)z).abs();
update(MATRIX);
}
-
diff --git a/saotk/frame/baseellipse.C b/saotk/frame/baseellipse.C
index 2bf79c1..9af162e 100644
--- a/saotk/frame/baseellipse.C
+++ b/saotk/frame/baseellipse.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "baseellipse.h"
-#include "framebase.h"
#include "fitsimage.h"
BaseEllipse::BaseEllipse(const BaseEllipse& a) : BaseMarker(a) {}
@@ -14,19 +13,23 @@ BaseEllipse::BaseEllipse(Base* p, const Vector& ctr,
int w, const char* f,
const char* t, unsigned short prop, const char* c,
const List<Tag>& tag, const List<CallBack>& cb)
- : BaseMarker(p, ctr, ang, clr, dsh, w, f, t, prop, c, tag, cb) {}
+ : BaseMarker(p, ctr, ang, clr, dsh, w, f, t, prop, c, tag, cb)
+{
+}
-BaseEllipse::~BaseEllipse() {}
+BaseEllipse::~BaseEllipse()
+{
+}
-void BaseEllipse::renderX(Drawable drawable, InternalSystem sys,
+void BaseEllipse::renderX(Drawable drawable, Coord::InternalSystem sys,
RenderMode mode)
{
double ang = calcAngle();
Vector r = annuli_[numAnnuli_-1];
Vector z = parent->zoom();
- int isOrient = parent->getOrientation() == NORMAL &&
- parent->getWCSOrientation() == NORMAL;
+ int isOrient = parent->getOrientation() == Coord::NORMAL &&
+ parent->getWCSOrientation() == Coord::NORMAL;
int isRound = r[0] == r[1];
int isScale = z[0] == z[1];
int isAngle = teq(ang,0,FLT_EPSILON) || teq(ang,M_PI,FLT_EPSILON);
@@ -39,7 +42,7 @@ void BaseEllipse::renderX(Drawable drawable, InternalSystem sys,
renderXEllipseCurve(drawable, sys, mode);
}
-void BaseEllipse::renderXCircle(Drawable drawable, InternalSystem sys,
+void BaseEllipse::renderXCircle(Drawable drawable, Coord::InternalSystem sys,
double ang, RenderMode mode)
{
GC lgc = renderXGC(mode);
@@ -75,7 +78,7 @@ void BaseEllipse::renderXCircle(Drawable drawable, InternalSystem sys,
}
}
-void BaseEllipse::renderXEllipse(Drawable drawable, InternalSystem sys,
+void BaseEllipse::renderXEllipse(Drawable drawable, Coord::InternalSystem sys,
double ang, RenderMode mode)
{
GC lgc = renderXGC(mode);
@@ -109,7 +112,7 @@ void BaseEllipse::renderXEllipse(Drawable drawable, InternalSystem sys,
}
}
-void BaseEllipse::renderXEllipseCurve(Drawable drawable, InternalSystem sys,
+void BaseEllipse::renderXEllipseCurve(Drawable drawable, Coord::InternalSystem sys,
RenderMode mode)
{
double a1 = startAng_;
@@ -139,7 +142,7 @@ void BaseEllipse::renderXEllipseCurve(Drawable drawable, InternalSystem sys,
}
}
-void BaseEllipse::renderXEllipsePrep(Drawable drawable, InternalSystem sys,
+void BaseEllipse::renderXEllipsePrep(Drawable drawable, Coord::InternalSystem sys,
RenderMode mode,
double a1, double a2,
double b1, double b2,
@@ -158,7 +161,7 @@ void BaseEllipse::renderXEllipsePrep(Drawable drawable, InternalSystem sys,
renderXEllipseArc(drawable, sys, mode, a1,a2,r);
}
-void BaseEllipse::renderXEllipseArc(Drawable drawable, InternalSystem sys,
+void BaseEllipse::renderXEllipseArc(Drawable drawable, Coord::InternalSystem sys,
RenderMode mode,
double a1, double a2, Vector& rr)
{
@@ -190,7 +193,7 @@ void BaseEllipse::renderXEllipseArc(Drawable drawable, InternalSystem sys,
XDrawCurve(drawable, mode, tt0, xx1, xx2, tt1);
}
-void BaseEllipse::renderXInclude(Drawable drawable, InternalSystem sys,
+void BaseEllipse::renderXInclude(Drawable drawable, Coord::InternalSystem sys,
RenderMode mode)
{
if (!(properties & INCLUDE)) {
@@ -216,8 +219,8 @@ void BaseEllipse::renderPS(int mode) {
Vector r = annuli_[numAnnuli_-1];
Vector z = parent->zoom();
- int isOrient = parent->getOrientation() == NORMAL &&
- parent->getWCSOrientation() == NORMAL;
+ int isOrient = parent->getOrientation() == Coord::NORMAL &&
+ parent->getWCSOrientation() == Coord::NORMAL;
int isRound = r[0] == r[1];
int isScale = z[0] == z[1];
@@ -231,13 +234,13 @@ void BaseEllipse::renderPSCircle(int mode)
{
renderPSGC(mode);
- Vector cc = parent->mapFromRef(center,CANVAS);
+ Vector cc = parent->mapFromRef(center,Coord::CANVAS);
double ang = calcAngle();
for (int ii=0; ii<numAnnuli_; ii++) {
Vector r = annuli_[ii];
- Vector ur = fwdMap(r,CANVAS);
+ Vector ur = fwdMap(r,Coord::CANVAS);
double l = (ur-cc).length() * cos(M_PI_4);
// don't render zero length arcs
@@ -330,10 +333,10 @@ void BaseEllipse::renderPSEllipseArc(double a1, double a2, Vector& rr)
rr[1]*(sin(aa2)-bcp*cos(aa2)));
Vector t1 = intersect(rr,a2);
- Vector tt0 = fwdMap(t0*FlipY(),CANVAS);
- Vector xx1 = fwdMap(x1*FlipY(),CANVAS);
- Vector xx2 = fwdMap(x2*FlipY(),CANVAS);
- Vector tt1 = fwdMap(t1*FlipY(),CANVAS);
+ Vector tt0 = fwdMap(t0*FlipY(),Coord::CANVAS);
+ Vector xx1 = fwdMap(x1*FlipY(),Coord::CANVAS);
+ Vector xx2 = fwdMap(x2*FlipY(),Coord::CANVAS);
+ Vector tt1 = fwdMap(t1*FlipY(),Coord::CANVAS);
ostringstream str;
str <<
@@ -356,10 +359,10 @@ void BaseEllipse::renderPSInclude(int mode)
double theta = degToRad(45);
Vector r1 = fwdMap(Vector(annuli_[numAnnuli_-1][0]*cos(theta),
annuli_[numAnnuli_-1][1]*sin(theta)),
- CANVAS);
+ Coord::CANVAS);
Vector r2 = fwdMap(Vector(-annuli_[numAnnuli_-1][0]*cos(theta),
-annuli_[numAnnuli_-1][1]*sin(theta)),
- CANVAS);
+ Coord::CANVAS);
renderPSColor(mode, parent->getXColor("red"));
@@ -377,8 +380,8 @@ void BaseEllipse::renderMACOSX() {
Vector r = annuli_[numAnnuli_-1];
Vector z = parent->zoom();
- int isOrient = parent->getOrientation() == NORMAL &&
- parent->getWCSOrientation() == NORMAL;
+ int isOrient = parent->getOrientation() == Coord::NORMAL &&
+ parent->getWCSOrientation() == Coord::NORMAL;
int isRound = r[0] == r[1];
int isScale = z[0] == z[1];
@@ -392,13 +395,13 @@ void BaseEllipse::renderMACOSXCircle()
{
renderMACOSXGC();
- Vector cc = parent->mapFromRef(center,CANVAS);
+ Vector cc = parent->mapFromRef(center,Coord::CANVAS);
double ang = calcAngle();
for (int ii=0; ii<numAnnuli_; ii++) {
Vector r = annuli_[ii];
- Vector ur = fwdMap(r,CANVAS);
+ Vector ur = fwdMap(r,Coord::CANVAS);
double l = (ur-cc).length() * cos(M_PI_4);
// don't render zero length arcs
@@ -484,10 +487,10 @@ void BaseEllipse::renderMACOSXEllipseArc(double a1, double a2, Vector& rr)
rr[1]*(sin(aa2)-bcp*cos(aa2)));
Vector t1 = intersect(rr,a2);
- Vector tt0 = fwdMap(t0*FlipY(),CANVAS);
- Vector xx1 = fwdMap(x1*FlipY(),CANVAS);
- Vector xx2 = fwdMap(x2*FlipY(),CANVAS);
- Vector tt1 = fwdMap(t1*FlipY(),CANVAS);
+ Vector tt0 = fwdMap(t0*FlipY(),Coord::CANVAS);
+ Vector xx1 = fwdMap(x1*FlipY(),Coord::CANVAS);
+ Vector xx2 = fwdMap(x2*FlipY(),Coord::CANVAS);
+ Vector tt1 = fwdMap(t1*FlipY(),Coord::CANVAS);
macosxDrawCurve(tt0, xx1, xx2, tt1);
}
@@ -498,10 +501,10 @@ void BaseEllipse::renderMACOSXInclude()
double theta = degToRad(45);
Vector r1 = fwdMap(Vector(annuli_[numAnnuli_-1][0]*cos(theta),
annuli_[numAnnuli_-1][1]*sin(theta)),
- CANVAS);
+ Coord::CANVAS);
Vector r2 = fwdMap(Vector(-annuli_[numAnnuli_-1][0]*cos(theta),
-annuli_[numAnnuli_-1][1]*sin(theta)),
- CANVAS);
+ Coord::CANVAS);
macosxColor(parent->getXColor("red"));
macosxDrawLine(r1,r2);
@@ -514,8 +517,8 @@ void BaseEllipse::renderWIN32() {
Vector r = annuli_[numAnnuli_-1];
Vector z = parent->zoom();
- int isOrient = parent->getOrientation() == NORMAL &&
- parent->getWCSOrientation() == NORMAL;
+ int isOrient = parent->getOrientation() == Coord::NORMAL &&
+ parent->getWCSOrientation() == Coord::NORMAL;
int isRound = r[0] == r[1];
int isScale = z[0] == z[1];
@@ -529,13 +532,13 @@ void BaseEllipse::renderWIN32Circle()
{
renderWIN32GC();
- Vector cc = parent->mapFromRef(center,CANVAS);
+ Vector cc = parent->mapFromRef(center,Coord::CANVAS);
double ang = calcAngle();
for (int i=0; i<numAnnuli_; i++) {
Vector r = annuli_[i];
- Vector ur = fwdMap(r,CANVAS);
+ Vector ur = fwdMap(r,Coord::CANVAS);
double l = (ur-cc).length() * cos(M_PI_4);
// don't render zero length arcs
@@ -621,10 +624,10 @@ void BaseEllipse::renderWIN32EllipseArc(double a1, double a2, Vector& rr)
rr[1]*(sin(aa2)-bcp*cos(aa2)));
Vector t1 = intersect(rr,a2);
- Vector tt0 = fwdMap(t0*FlipY(),CANVAS);
- Vector xx1 = fwdMap(x1*FlipY(),CANVAS);
- Vector xx2 = fwdMap(x2*FlipY(),CANVAS);
- Vector tt1 = fwdMap(t1*FlipY(),CANVAS);
+ Vector tt0 = fwdMap(t0*FlipY(),Coord::CANVAS);
+ Vector xx1 = fwdMap(x1*FlipY(),Coord::CANVAS);
+ Vector xx2 = fwdMap(x2*FlipY(),Coord::CANVAS);
+ Vector tt1 = fwdMap(t1*FlipY(),Coord::CANVAS);
win32DrawCurve(tt0, xx1, xx2, tt1);
}
@@ -635,10 +638,10 @@ void BaseEllipse::renderWIN32Include()
double theta = degToRad(45);
Vector r1 = fwdMap(Vector(annuli_[numAnnuli_-1][0]*cos(theta),
annuli_[numAnnuli_-1][1]*sin(theta)),
- CANVAS);
+ Coord::CANVAS);
Vector r2 = fwdMap(Vector(-annuli_[numAnnuli_-1][0]*cos(theta),
-annuli_[numAnnuli_-1][1]*sin(theta)),
- CANVAS);
+ Coord::CANVAS);
win32Color(parent->getXColor("red"));
win32DrawLine(r1,r2);
@@ -662,29 +665,28 @@ void BaseEllipse::updateHandles()
max = annuli_[ii];
Vector& r = max;
- handle[0] = fwdMap(Vector(-r[0],-r[1]),CANVAS);
- handle[1] = fwdMap(Vector( r[0],-r[1]),CANVAS);
- handle[2] = fwdMap(Vector( r[0], r[1]),CANVAS);
- handle[3] = fwdMap(Vector(-r[0], r[1]),CANVAS);
+ handle[0] = fwdMap(Vector(-r[0],-r[1]),Coord::CANVAS);
+ handle[1] = fwdMap(Vector( r[0],-r[1]),Coord::CANVAS);
+ handle[2] = fwdMap(Vector( r[0], r[1]),Coord::CANVAS);
+ handle[3] = fwdMap(Vector(-r[0], r[1]),Coord::CANVAS);
// annuli_
if (numAnnuli_>1)
for (int ii=0; ii<numAnnuli_; ii++)
- handle[ii+4] = fwdMap(Vector(annuli_[ii][0],0),CANVAS);
+ handle[ii+4] = fwdMap(Vector(annuli_[ii][0],0),Coord::CANVAS);
}
-int BaseEllipse::isIn(const Vector& v)
+int BaseEllipse::isIn(const Vector& vv, Coord::InternalSystem sys)
{
- // v is in canvas coords
- Vector r = annuli_[numAnnuli_-1];
+ Vector rr = annuli_[numAnnuli_-1];
// zero radius
- if (!r[0] || !r[1])
+ if (!rr[0] || !rr[1])
return 0;
- Vector p = bckMap(v,CANVAS);
+ Vector pp = bckMap(vv,sys);
- if ((p[0]*p[0])/(r[0]*r[0]) + (p[1]*p[1])/(r[1]*r[1]) <= 1)
+ if ((pp[0]*pp[0])/(rr[0]*rr[0]) + (pp[1]*pp[1])/(rr[1]*rr[1]) <= 1)
return 1;
else
return 0;
diff --git a/saotk/frame/baseellipse.h b/saotk/frame/baseellipse.h
index 75ba206..ce4e911 100644
--- a/saotk/frame/baseellipse.h
+++ b/saotk/frame/baseellipse.h
@@ -12,14 +12,14 @@ class BaseEllipse : public BaseMarker {
double xyz(Vector rr, double ang);
void XDrawCurve(Drawable, RenderMode, Vector&, Vector&, Vector&, Vector&);
- void renderXCircle(Drawable, InternalSystem, double, RenderMode);
- void renderXEllipse(Drawable, InternalSystem, double, RenderMode);
- void renderXEllipseCurve(Drawable, InternalSystem, RenderMode);
- void renderXEllipsePrep(Drawable, InternalSystem, RenderMode,
+ void renderXCircle(Drawable, Coord::InternalSystem, double, RenderMode);
+ void renderXEllipse(Drawable, Coord::InternalSystem, double, RenderMode);
+ void renderXEllipseCurve(Drawable, Coord::InternalSystem, RenderMode);
+ void renderXEllipsePrep(Drawable, Coord::InternalSystem, RenderMode,
double, double, double, double, Vector&);
- void renderXEllipseArc(Drawable, InternalSystem, RenderMode,
+ void renderXEllipseArc(Drawable, Coord::InternalSystem, RenderMode,
double, double, Vector&);
- void renderXInclude(Drawable, InternalSystem, RenderMode);
+ void renderXInclude(Drawable, Coord::InternalSystem, RenderMode);
void renderPSCircle(int);
void renderPSEllipseCurve(int);
@@ -44,7 +44,7 @@ class BaseEllipse : public BaseMarker {
#endif
protected:
- void renderX(Drawable, InternalSystem, RenderMode);
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
void renderPS(int);
#ifdef _MACOSX
void renderMACOSX();
@@ -67,7 +67,9 @@ class BaseEllipse : public BaseMarker {
virtual ~BaseEllipse();
virtual Marker* dup() =0;
- int isIn(const Vector&);
+
+ int isIn(const Vector& vv) {return isIn(vv, Coord::CANVAS);}
+ int isIn(const Vector&, Coord::InternalSystem);
};
#endif
diff --git a/saotk/frame/baseline.C b/saotk/frame/baseline.C
index 1617ef4..e2a121b 100644
--- a/saotk/frame/baseline.C
+++ b/saotk/frame/baseline.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "baseline.h"
-#include "framebase.h"
#include "fitsimage.h"
BaseLine::BaseLine(const BaseLine& a) : Marker(a)
@@ -63,8 +62,8 @@ void BaseLine::moveTo(const Vector& v)
int BaseLine::isIn(const Vector& v)
{
// do this in canvas coords, not ref coords
- Vector l1 = parent->mapFromRef(p1,CANVAS);
- Vector l2 = parent->mapFromRef(p2,CANVAS);
+ Vector l1 = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector l2 = parent->mapFromRef(p2,Coord::CANVAS);
double a = (l2-l1).angle();
Matrix m = Translate(-l1) * Rotate(a);
diff --git a/saotk/frame/baseline.h b/saotk/frame/baseline.h
index 1551060..2801549 100644
--- a/saotk/frame/baseline.h
+++ b/saotk/frame/baseline.h
@@ -12,7 +12,7 @@ protected:
Vector p1;
Vector p2;
- void renderXInclude(Drawable, InternalSystem, RenderMode) {}
+ void renderXInclude(Drawable, Coord::InternalSystem, RenderMode) {}
void renderPSInclude(int) {}
diff --git a/saotk/frame/basemarker.C b/saotk/frame/basemarker.C
index f6ead56..191915d 100644
--- a/saotk/frame/basemarker.C
+++ b/saotk/frame/basemarker.C
@@ -3,7 +3,7 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "basemarker.h"
-#include "framebase.h"
+#include "base.h"
// Base Markers Public
@@ -175,7 +175,7 @@ Matrix BaseMarker::bckMatrix()
return Marker::bckMatrix();
}
-Vector BaseMarker::fwdMap(const Vector& vv, InternalSystem sys)
+Vector BaseMarker::fwdMap(const Vector& vv, Coord::InternalSystem sys)
{
if (properties & FIXED) {
Vector cc = center * parent->refToCanvas;
@@ -187,7 +187,7 @@ Vector BaseMarker::fwdMap(const Vector& vv, InternalSystem sys)
return Marker::fwdMap(vv,sys);
}
-Vector BaseMarker::bckMap(const Vector& vv, InternalSystem sys)
+Vector BaseMarker::bckMap(const Vector& vv, Coord::InternalSystem sys)
{
if (properties & FIXED) {
Vector aa = parent->mapToRef(vv,sys);
diff --git a/saotk/frame/basemarker.h b/saotk/frame/basemarker.h
index 53d4fb5..3de5e37 100644
--- a/saotk/frame/basemarker.h
+++ b/saotk/frame/basemarker.h
@@ -24,8 +24,8 @@ protected:
Matrix fwdMatrix();
Matrix bckMatrix();
- Vector fwdMap(const Vector&, InternalSystem);
- Vector bckMap(const Vector&, InternalSystem);
+ Vector fwdMap(const Vector&, Coord::InternalSystem);
+ Vector bckMap(const Vector&, Coord::InternalSystem);
public:
BaseMarker(const BaseMarker&);
diff --git a/saotk/frame/basepanda.C b/saotk/frame/basepanda.C
index a657331..0cd768a 100644
--- a/saotk/frame/basepanda.C
+++ b/saotk/frame/basepanda.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "basepanda.h"
-#include "framebase.h"
#include "fitsimage.h"
BasePanda::BasePanda(const BasePanda& a)
diff --git a/saotk/frame/box.C b/saotk/frame/box.C
index 386a603..2e44ff3 100644
--- a/saotk/frame/box.C
+++ b/saotk/frame/box.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "box.h"
-#include "framebase.h"
#include "fitsimage.h"
Box::Box(const Box& a) : BaseBox(a) {}
@@ -21,7 +20,7 @@ Box::Box(Base* p, const Vector& ctr,
annuli_ = new Vector[1];
annuli_[0] = seg;
- strcpy(type,"box");
+ strcpy(type_,"box");
numHandle = 4;
updateBBox();
@@ -70,23 +69,60 @@ void Box::editEnd()
doCallBack(CallBack::EDITENDCB);
}
+void Box::analysis(AnalysisMethod mm, int which)
+{
+ switch (mm) {
+ case PLOT3D:
+ if (!analysisPlot3d_ && which) {
+ addCallBack(CallBack::MOVECB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::EDITCB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::ROTATECB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::DELETECB, analysisPlot3dCB_[1],
+ parent->options->cmdName);
+ }
+ if (analysisPlot3d_ && !which) {
+ deleteCallBack(CallBack::MOVECB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::EDITCB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::ROTATECB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::DELETECB, analysisPlot3dCB_[1]);
+ }
+
+ analysisPlot3d_ = which;
+ break;
+ }
+}
+
+void Box::analysisPlot3d(char* xname, char* yname)
+{
+ double* x;
+ double* y;
+ Vector ll = -annuli_[0] * Rotate(angle) * Translate(center);
+ Vector ur = annuli_[0] * Rotate(angle) * Translate(center);
+ BBox bb(ll,ur);
+ int num = parent->markerAnalysisPlot3d(&x, &y, this, bb);
+ analysisPlot3dResult(xname, yname, x, y, num);
+}
+
// list
-void Box::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Box::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
Vector r = ptr->mapLenFromRef(annuli_[0],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r[0] << ',' << r[1] << ','
<< radToDeg(parent->mapAngleFromRef(angle,sys)) << ')';
}
@@ -95,16 +131,16 @@ void Box::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- Vector r = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector r = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r[0] << "\"" << ',' << r[1] << "\"" << ','
<< radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -114,8 +150,8 @@ void Box::list(ostream& str, CoordSystem sys, SkyFrame sky,
istringstream wcs(x);
wcs >> ra >> dec;
- Vector r = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- str << type << '(' << ra << ',' << dec << ','
+ Vector r = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ str << type_ << '(' << ra << ',' << dec << ','
<< r[0] << "\""<< ',' << r[1] << "\""<< ','
<< radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
}
@@ -125,7 +161,7 @@ void Box::list(ostream& str, CoordSystem sys, SkyFrame sky,
else {
Vector v = ptr->mapFromRef(center,sys);
Vector r = ptr->mapLenFromRef(annuli_[0],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r[0] << ',' << r[1] << ','
<< radToDeg(parent->mapAngleFromRef(angle,sys)) << ')';
}
@@ -135,13 +171,13 @@ void Box::list(ostream& str, CoordSystem sys, SkyFrame sky,
listPost(str, conj, strip);
}
-void Box::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Box::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRowRadius(ptr,sys,annuli_[0]);
@@ -151,29 +187,29 @@ void Box::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
XMLRowEnd(str);
}
-void Box::listCiao(ostream& str, CoordSystem sys, int strip)
+void Box::listCiao(ostream& str, Coord::CoordSystem sys, int strip)
{
FitsImage* ptr = parent->findFits();
listCiaoPre(str);
// radius is always in image coords
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,PHYSICAL);
- Vector s = ptr->mapLenFromRef(annuli_[0],PHYSICAL);
+ Vector v = ptr->mapFromRef(center,Coord::PHYSICAL);
+ Vector s = ptr->mapLenFromRef(annuli_[0],Coord::PHYSICAL);
str << "rotbox(" << setprecision(8) << v[0] << ',' << v[1] << ','
<< s[0] << ',' << s[1] << ',' << radToDeg(angle) << ')';
}
break;
default:
if (ptr->hasWCSCel(sys)) {
- Vector s = ptr->mapLenFromRef(annuli_[0],sys,ARCMIN);
+ Vector s = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCMIN);
char buf[64];
- ptr->mapFromRef(center,sys,FK5,SEXAGESIMAL,buf,64);
+ ptr->mapFromRef(center,sys,Coord::FK5,Coord::SEXAGESIMAL,buf,64);
char ra[16];
char dec[16];
string x(buf);
@@ -188,47 +224,47 @@ void Box::listCiao(ostream& str, CoordSystem sys, int strip)
listCiaoPost(str, strip);
}
-void Box::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Box::listSAOtng(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
listSAOtngPre(str, strip);
// radius is always in image coords
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,IMAGE);
- Vector s = ptr->mapLenFromRef(annuli_[0],IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
+ Vector s = ptr->mapLenFromRef(annuli_[0],Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< s[0] << ',' << s[1] << ',' << radToDeg(angle) << ')';
}
break;
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- Vector s = ptr->mapLenFromRef(annuli_[0],IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector s = ptr->mapLenFromRef(annuli_[0],Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< s[0] << ',' << s[1] << ',' << radToDeg(angle) << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
- Vector s = ptr->mapLenFromRef(annuli_[0],IMAGE);
+ Vector s = ptr->mapLenFromRef(annuli_[0],Coord::IMAGE);
char ra[16];
char dec[16];
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << type << '(' << ra << ',' << dec << ','
+ str << type_ << '(' << ra << ',' << dec << ','
<< s[0] << ',' << s[1] << ',' << radToDeg(angle) << ')';
}
break;
@@ -239,39 +275,39 @@ void Box::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
listSAOtngPost(str,strip);
}
-void Box::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Box::listPros(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
switch (sys) {
- case IMAGE:
- case DETECTOR:
- case AMPLIFIER:
- sys = IMAGE;
- case PHYSICAL:
+ case Coord::IMAGE:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
+ sys = Coord::IMAGE;
+ case Coord::PHYSICAL:
{
Vector v = ptr->mapFromRef(center,sys);
- Vector r = ptr->mapLenFromRef(annuli_[0],IMAGE);
- listProsCoordSystem(str,sys,sky);
- str << "; "<< type << ' ' << setprecision(8) << v << r
+ Vector r = ptr->mapLenFromRef(annuli_[0],Coord::IMAGE);
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; "<< type_ << ' ' << setprecision(8) << v << r
<< radToDeg(angle);
}
break;
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- Vector r = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << setprecision(8)
+ Vector r = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << setprecision(8)
<< v[0] << "d " << v[1] << "d "
<< r[0] << "\" " << r[1] << "\" " << radToDeg(angle);
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -284,9 +320,9 @@ void Box::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
if (dec[0]=='+')
dec++;
- Vector r = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << ra << ' ' << dec << ' '
+ Vector r = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << ra << ' ' << dec << ' '
<< r[0] << "\" " << r[1] << "\" " << radToDeg(angle);
}
break;
@@ -302,8 +338,8 @@ void Box::listSAOimage(ostream& str, int strip)
FitsImage* ptr = parent->findFits();
listSAOimagePre(str);
- Vector v = ptr->mapFromRef(center,IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< annuli_[0][0] << ',' << annuli_[0][1] << ','
<< radToDeg(angle) << ')';
diff --git a/saotk/frame/box.h b/saotk/frame/box.h
index 32b6c91..9d7524d 100644
--- a/saotk/frame/box.h
+++ b/saotk/frame/box.h
@@ -18,17 +18,20 @@ public:
unsigned short prop, const char* cmt,
const List<Tag>& tg, const List<CallBack>& cb);
- Marker* dup() {return new Box(*this);}
+ virtual Marker* dup() {return new Box(*this);}
void editBegin(int);
void edit(const Vector&, int);
void editEnd();
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listCiao(ostream&, CoordSystem, int);
- void listSAOtng(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void listPros(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void listSAOimage(ostream&, int);
+ void analysis(AnalysisMethod, int);
+ void analysisPlot3d(char*, char*);
+
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ virtual void listCiao(ostream&, Coord::CoordSystem, int);
+ virtual void listSAOtng(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ virtual void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ virtual void listSAOimage(ostream&, int);
};
#endif
diff --git a/saotk/frame/boxannulus.C b/saotk/frame/boxannulus.C
index 3c8df5f..241d5b5 100644
--- a/saotk/frame/boxannulus.C
+++ b/saotk/frame/boxannulus.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "boxannulus.h"
-#include "framebase.h"
#include "fitsimage.h"
BoxAnnulus::BoxAnnulus(const BoxAnnulus& a) : BaseBox(a) {}
@@ -21,7 +20,7 @@ BoxAnnulus::BoxAnnulus(Base* p, const Vector& ctr,
annuli_ = new Vector[1];
annuli_[0] = s;
- strcpy(type,"boxannulus");
+ strcpy(type_,"boxannulus");
numHandle = 4;
updateBBox();
@@ -42,7 +41,7 @@ BoxAnnulus::BoxAnnulus(Base* p, const Vector& ctr,
for (int i=0; i<numAnnuli_; i++)
annuli_[i] = ((outer-inner)/num)*i+inner;
- strcpy(type,"boxannulus");
+ strcpy(type_,"boxannulus");
numHandle = 4 + numAnnuli_;
updateBBox();
@@ -64,7 +63,7 @@ BoxAnnulus::BoxAnnulus(Base* p, const Vector& ctr,
annuli_[i] = s[i];
sortAnnuli();
- strcpy(type, "boxannulus");
+ strcpy(type_, "boxannulus");
numHandle = 4 + numAnnuli_;
updateBBox();
@@ -147,17 +146,17 @@ int BoxAnnulus::addAnnuli(const Vector& v)
// list
-void BoxAnnulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void BoxAnnulus::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
str << "box(" << setprecision(8) << v[0] << ',' << v[1] << ',';
@@ -172,18 +171,18 @@ void BoxAnnulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
str << "box(" << setprecision(8) << v[0] << ',' << v[1] << ',';
for (int i=0; i<numAnnuli_; i++) {
- Vector r = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
str << r[0] << "\"" << ',' << r[1] << "\"" << ',' ;
}
str << radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -195,7 +194,7 @@ void BoxAnnulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
str << "box(" << ra << ',' << dec << ',' ;
for (int i=0; i<numAnnuli_; i++) {
- Vector r = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
str << r[0] << "\""<< ',' << r[1] << "\""<< ',' ;
}
str << radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
@@ -218,13 +217,13 @@ void BoxAnnulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
listPost(str, conj, strip);
}
-void BoxAnnulus::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void BoxAnnulus::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRowRadius(ptr,sys,annuli_,numAnnuli_);
@@ -234,28 +233,28 @@ void BoxAnnulus::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
XMLRowEnd(str);
}
-void BoxAnnulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void BoxAnnulus::listPros(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
switch (sys) {
- case IMAGE:
- case DETECTOR:
- case AMPLIFIER:
- sys = IMAGE;
- case PHYSICAL:
+ case Coord::IMAGE:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
+ sys = Coord::IMAGE;
+ case Coord::PHYSICAL:
{
Vector v = ptr->mapFromRef(center,sys);
for (int i=0; i<numAnnuli_; i++) {
- listProsCoordSystem(str,sys,sky);
+ coord.listProsCoordSystem(str,sys,sky);
str << "; ";
- Vector r = ptr->mapLenFromRef(annuli_[i],IMAGE);
+ Vector r = ptr->mapLenFromRef(annuli_[i],Coord::IMAGE);
str << "box " << setprecision(8) << v << r << radToDeg(angle);
if (i!=0) {
- Vector r1 = ptr->mapLenFromRef(annuli_[i-1],IMAGE);
+ Vector r1 = ptr->mapLenFromRef(annuli_[i-1],Coord::IMAGE);
str << " & !box " << setprecision(8) << v << r1 << radToDeg(angle);
}
@@ -266,19 +265,19 @@ void BoxAnnulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
for (int i=0; i<numAnnuli_; i++) {
- listProsCoordSystem(str,sys,sky);
+ coord.listProsCoordSystem(str,sys,sky);
str << "; ";
- Vector r = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
str << "box " << setprecision(8) << v[0] << "d " << v[1] << "d "
<< r[0] << "\" " << r[1] << "\" " << radToDeg(angle);
if (i!=0) {
- Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,ARCSEC);
+ Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,Coord::ARCSEC);
str << " & !box " << setprecision(8)
<< v[0] << "d " << v[1] << "d "
<< r1[0] << "\" " << r1[1] << "\" " << radToDeg(angle);
@@ -288,7 +287,7 @@ void BoxAnnulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -302,15 +301,15 @@ void BoxAnnulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
dec++;
for (int i=0; i<numAnnuli_; i++) {
- listProsCoordSystem(str,sys,sky);
+ coord.listProsCoordSystem(str,sys,sky);
str << "; ";
- Vector r = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
str << "box " << ra << ' ' << dec << ' '
<< r[0] << "\" " << r[1] << "\" " << radToDeg(angle);
if (i!=0) {
- Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,ARCSEC);
+ Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,Coord::ARCSEC);
str << " & !box " << ra << ' ' << dec << ' '
<< r1[0] << "\" " << r1[1] << "\" " << radToDeg(angle);
}
@@ -330,7 +329,7 @@ void BoxAnnulus::listSAOimage(ostream& str, int strip)
listSAOimagePre(str);
for (int i=0; i<numAnnuli_; i++) {
- Vector v = ptr->mapFromRef(center,IMAGE);
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
str << "box(" << setprecision(8) << v[0] << ',' << v[1] << ','
<< annuli_[i][0] << ',' << annuli_[i][1] << ',' << radToDeg(angle) << ')';
diff --git a/saotk/frame/boxannulus.h b/saotk/frame/boxannulus.h
index e348765..ed70c04 100644
--- a/saotk/frame/boxannulus.h
+++ b/saotk/frame/boxannulus.h
@@ -39,9 +39,9 @@ public:
int addAnnuli(const Vector&);
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listPros(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
void listSAOimage(ostream&, int);
};
diff --git a/saotk/frame/bpanda.C b/saotk/frame/bpanda.C
index d8756b0..614f194 100644
--- a/saotk/frame/bpanda.C
+++ b/saotk/frame/bpanda.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "bpanda.h"
-#include "framebase.h"
#include "fitsimage.h"
Bpanda::Bpanda(const Bpanda& a) : BasePanda(a), BaseBox(a) {}
@@ -25,7 +24,7 @@ Bpanda::Bpanda(Base* p, const Vector& ctr,
for (int i=0; i<numAnnuli_; i++)
annuli_[i] = ((r2-r1)/rn)*i+r1;
- strcpy(type, "bpanda");
+ strcpy(type_, "bpanda");
numHandle = 4 + numAnnuli_ + numAngles_;
startAng_ = angles_[0];
@@ -52,7 +51,7 @@ Bpanda::Bpanda(Base* p, const Vector& ctr,
annuli_[i] = r[i];
sortAnnuli();
- strcpy(type, "bpanda");
+ strcpy(type_, "bpanda");
numHandle = 4 + numAnnuli_ + numAngles_;
startAng_ = angles_[0];
@@ -61,7 +60,7 @@ Bpanda::Bpanda(Base* p, const Vector& ctr,
updateBBox();
}
-void Bpanda::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Bpanda::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
BaseBox::renderX(drawable, sys, mode);
@@ -101,8 +100,8 @@ void Bpanda::renderPS(int mode)
Vector r1 = annuli_[numAnnuli_-1]/2;
for (int ii=0; ii<numAngles_; ii++) {
- Vector rr0 = fwdMap(intersect(r0,angles_[ii]),CANVAS);
- Vector rr1 = fwdMap(intersect(r1,angles_[ii]),CANVAS);
+ Vector rr0 = fwdMap(intersect(r0,angles_[ii]),Coord::CANVAS);
+ Vector rr1 = fwdMap(intersect(r1,angles_[ii]),Coord::CANVAS);
ostringstream str;
str << "newpath "
@@ -143,8 +142,8 @@ void Bpanda::renderWIN32()
Vector r1 = annuli_[numAnnuli_-1]/2;
for (int ii=0; ii<numAngles_; ii++) {
- Vector rr0 = fwdMap(intersect(r0,angles_[ii]),CANVAS);
- Vector rr1 = fwdMap(intersect(r1,angles_[ii]),CANVAS);
+ Vector rr0 = fwdMap(intersect(r0,angles_[ii]),Coord::CANVAS);
+ Vector rr1 = fwdMap(intersect(r1,angles_[ii]),Coord::CANVAS);
win32DrawLine(rr0,rr1);
}
@@ -161,7 +160,7 @@ void Bpanda::updateHandles()
// which will cause problems with intersect()
Vector rr = (annuli_[numAnnuli_-1]/2).abs();
for (int ii=0; ii<numAngles_; ii++)
- handle[ii+4+numAnnuli_] = fwdMap(intersect(rr,angles_[ii]),CANVAS);
+ handle[ii+4+numAnnuli_] = fwdMap(intersect(rr,angles_[ii]),Coord::CANVAS);
}
void Bpanda::editBegin(int h)
@@ -361,8 +360,8 @@ void Bpanda::deleteAnglesAnnuli(int h)
// list
-void Bpanda::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Bpanda::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
int regular = 1;
if (numAngles_>2) {
@@ -403,17 +402,17 @@ void Bpanda::list(ostream& str, CoordSystem sys, SkyFrame sky,
listB(str, sys, sky, format, conj, strip);
}
-void Bpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Bpanda::listA(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
double ang1 = radToDeg(parent->mapAngleFromRef(angles_[0],sys));
double ang2 = radToDeg(parent->mapAngleFromRef(angles_[numAngles_-1],sys));
@@ -424,7 +423,7 @@ void Bpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
Vector v = ptr->mapFromRef(center,sys);
Vector r1 = ptr->mapLenFromRef(annuli_[0],sys);
Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ',' << numAngles_-1 << ','
<< r1[0] << ',' << r1[1] << ',' << r2[0] << ',' << r2[1] << ','
<< numAnnuli_-1 << ','
@@ -435,7 +434,7 @@ void Bpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
double ang1 = radToDeg(parent->mapAngleFromRef(angles_[0],sys,sky));
double ang2 = radToDeg(parent->mapAngleFromRef(angles_[numAngles_-1],sys,sky));
@@ -444,9 +443,9 @@ void Bpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
ang2 += 360;
Vector v = ptr->mapFromRef(center,sys,sky);
- Vector r1 = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys,ARCSEC);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector r1 = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys,Coord::ARCSEC);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 <<',' << numAngles_-1 << ','
<< r1[0] << '"' << ',' << r1[1] << '"' << ','
<< r2[0] << '"' << ',' << r2[1] << '"' << ','
@@ -454,7 +453,7 @@ void Bpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
<< radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -470,9 +469,9 @@ void Bpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
if (ang2<=ang1+FLT_EPSILON)
ang2 += 360;
- Vector r1 = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys,ARCSEC);
- str << type << '(' << ra << ',' << dec << ','
+ Vector r1 = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys,Coord::ARCSEC);
+ str << type_ << '(' << ra << ',' << dec << ','
<< ang1 << ',' << ang2 <<',' << numAngles_-1 << ','
<< r1[0] << '"' << ',' << r1[1] << '"' << ','
<< r2[0] << '"' << ',' << r2[1] << '"' << ','
@@ -492,7 +491,7 @@ void Bpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
Vector v = ptr->mapFromRef(center,sys);
Vector r1 = ptr->mapLenFromRef(annuli_[0],sys);
Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 <<',' << numAngles_-1 << ','
<< r1[0] << ',' << r1[1] << ',' << r2[0] << ',' << r2[1] << ','
<< numAnnuli_-1 << ','
@@ -504,16 +503,16 @@ void Bpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
listPost(str, conj, strip);
}
-void Bpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Bpanda::listB(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
for (int j=1; j<numAngles_; j++) {
@@ -528,7 +527,7 @@ void Bpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys);
Vector r2 = ptr->mapLenFromRef(annuli_[i],sys);
- str << type << '(' << setprecision(8)
+ str << type_ << '(' << setprecision(8)
<< v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ",1,"
<< r1[0] << ',' << r1[1] << ',' << r2[0] << ',' << r2[1] << ','
@@ -576,7 +575,7 @@ void Bpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
for (int j=1; j<numAngles_; j++) {
@@ -589,9 +588,9 @@ void Bpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
for (int i=1; i<numAnnuli_; i++) {
listPre(str, sys, sky, ptr, strip, 0);
- Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,ARCSEC);
- Vector r2 = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
- str << type << '(' << setprecision(8)
+ Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,Coord::ARCSEC);
+ Vector r2 = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
+ str << type_ << '(' << setprecision(8)
<< v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ",1,"
<< r1[0] << '"' << ',' << r1[1] << '"' <<','
@@ -612,7 +611,7 @@ void Bpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
<< ((k<numAngles_-1) ? ' ' : ')');
str << '(';
for (int k=0; k<numAnnuli_; k++) {
- Vector r = ptr->mapLenFromRef(annuli_[k],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[k],sys,Coord::ARCSEC);
str << r[0] << '"' << ' ' << r[1] << '"'
<< ((k<numAnnuli_-1) ? ' ' : ')');
}
@@ -636,7 +635,7 @@ void Bpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -656,9 +655,9 @@ void Bpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
for (int i=1; i<numAnnuli_; i++) {
listPre(str, sys, sky, ptr, strip, 0);
- Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,ARCSEC);
- Vector r2 = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
- str << type << '(' << ra << ',' << dec << ','
+ Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,Coord::ARCSEC);
+ Vector r2 = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
+ str << type_ << '(' << ra << ',' << dec << ','
<< ang1 << ',' << ang2 << ",1,"
<< r1[0] << '"' << ',' << r1[1] << '"' << ','
<< r2[0] << '"' << ',' << r2[1] << '"' << ','
@@ -678,7 +677,7 @@ void Bpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
<< ((k<numAngles_-1) ? ' ' : ')');
str << '(';
for (int k=0; k<numAnnuli_; k++) {
- Vector r = ptr->mapLenFromRef(annuli_[k],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[k],sys,Coord::ARCSEC);
str << r[0] << '"' << ' ' << r[1] << '"'
<< ((k<numAnnuli_-1) ? ' ' : ')');
}
@@ -719,7 +718,7 @@ void Bpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys);
Vector r2 = ptr->mapLenFromRef(annuli_[i],sys);
- str << type << '(' << setprecision(8)
+ str << type_ << '(' << setprecision(8)
<< v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ",1,"
<< r1[0] << ',' << r1[1] << ',' << r2[0] << ',' << r2[1] << ','
@@ -764,13 +763,13 @@ void Bpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
-void Bpanda::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Bpanda::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRowRadius(ptr,sys,annuli_,numAnnuli_);
diff --git a/saotk/frame/bpanda.h b/saotk/frame/bpanda.h
index 0da4495..8caa45c 100644
--- a/saotk/frame/bpanda.h
+++ b/saotk/frame/bpanda.h
@@ -10,7 +10,7 @@
class Bpanda : public BasePanda, public BaseBox {
private:
- void renderX(Drawable, InternalSystem, RenderMode);
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
void renderPS(int);
#ifdef _MACOSX
void renderMACOSX();
@@ -21,8 +21,8 @@ class Bpanda : public BasePanda, public BaseBox {
void updateHandles();
- void listA(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listB(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
+ void listA(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listB(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
public:
Bpanda(const Bpanda&);
@@ -56,8 +56,8 @@ class Bpanda : public BasePanda, public BaseBox {
void setAnglesAnnuli(const double*, int, const Vector*, int);
void deleteAnglesAnnuli(int h);
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
};
#endif
diff --git a/saotk/frame/ciaoparser.C b/saotk/frame/ciaoparser.C
index c268d32..57ea1e5 100644
--- a/saotk/frame/ciaoparser.C
+++ b/saotk/frame/ciaoparser.C
@@ -1558,28 +1558,28 @@ yyreduce:
case 28:
#line 145 "ciaoparser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), PHYSICAL);;}
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::PHYSICAL);;}
break;
case 29:
#line 146 "ciaoparser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), WCS, DEGREE);;}
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::WCS, Coord::DEGREE);;}
break;
case 30:
#line 147 "ciaoparser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), WCS, ARCMIN);;}
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::WCS, Coord::ARCMIN);;}
break;
case 31:
#line 148 "ciaoparser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), WCS, ARCSEC);;}
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::WCS, Coord::ARCSEC);;}
break;
case 32:
#line 152 "ciaoparser.Y"
{
- Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::PHYSICAL);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1589,7 +1589,7 @@ yyreduce:
case 33:
#line 159 "ciaoparser.Y"
{
- Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), WCS, ARCMIN);
+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::WCS, Coord::ARCMIN);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1599,7 +1599,7 @@ yyreduce:
case 34:
#line 166 "ciaoparser.Y"
{
- Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), WCS, ARCSEC);
+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::WCS, Coord::ARCSEC);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1624,7 +1624,7 @@ yyreduce:
case 38:
#line 184 "ciaoparser.Y"
{
- Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)),WCS,FK5);
+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), Coord::WCS,Coord::FK5);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1634,7 +1634,7 @@ yyreduce:
case 39:
#line 191 "ciaoparser.Y"
{
- Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),WCS,FK5);
+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::WCS,Coord::FK5);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1644,7 +1644,7 @@ yyreduce:
case 40:
#line 198 "ciaoparser.Y"
{
- Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::PHYSICAL);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1698,8 +1698,8 @@ yyreduce:
case 47:
#line 240 "ciaoparser.Y"
- {fr->createBoxCirclePointCmd(Vector((yyvsp[(3) - (3)].vector)),
- POINTSIZE, color,dash,1,font,text,props,NULL,taglist,cblist);;}
+ {fr->createPointCmd(Vector((yyvsp[(3) - (3)].vector)), Point::BOXCIRCLE, POINTSIZE,
+ color,dash,1,font,text,props,NULL,taglist,cblist);;}
break;
case 48:
diff --git a/saotk/frame/ciaoparser.Y b/saotk/frame/ciaoparser.Y
index b31352d..6a867c6 100644
--- a/saotk/frame/ciaoparser.Y
+++ b/saotk/frame/ciaoparser.Y
@@ -142,29 +142,29 @@ init: {
angle : numeric {$$ = degToRad($1);}
;
-value : numeric {$$ = FITSPTR->mapLenToRef($1, PHYSICAL);}
- | ANGDEGREE {$$ = FITSPTR->mapLenToRef($1, WCS, DEGREE);}
- | ARCMINUTE {$$ = FITSPTR->mapLenToRef($1, WCS, ARCMIN);}
- | ARCSECOND {$$ = FITSPTR->mapLenToRef($1, WCS, ARCSEC);}
+value : numeric {$$ = FITSPTR->mapLenToRef($1, Coord::PHYSICAL);}
+ | ANGDEGREE {$$ = FITSPTR->mapLenToRef($1, Coord::WCS, Coord::DEGREE);}
+ | ARCMINUTE {$$ = FITSPTR->mapLenToRef($1, Coord::WCS, Coord::ARCMIN);}
+ | ARCSECOND {$$ = FITSPTR->mapLenToRef($1, Coord::WCS, Coord::ARCSEC);}
;
vvalue : numeric sp numeric
{
- Vector r = FITSPTR->mapLenToRef(Vector($1,$3), PHYSICAL);
+ Vector r = FITSPTR->mapLenToRef(Vector($1,$3), Coord::PHYSICAL);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| ARCMINUTE sp ARCMINUTE
{
- Vector r = FITSPTR->mapLenToRef(Vector($1,$3), WCS, ARCMIN);
+ Vector r = FITSPTR->mapLenToRef(Vector($1,$3), Coord::WCS, Coord::ARCMIN);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| ARCSECOND sp ARCSECOND
{
- Vector r = FITSPTR->mapLenToRef(Vector($1,$3), WCS, ARCSEC);
+ Vector r = FITSPTR->mapLenToRef(Vector($1,$3), Coord::WCS, Coord::ARCSEC);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
@@ -182,21 +182,21 @@ dms : DMSSTR {$$ = parseDMSStr($1);}
coord : sexagesimal sp sexagesimal
{
- Vector r = FITSPTR->mapToRef(Vector($1*360./24.,$3),WCS,FK5);
+ Vector r = FITSPTR->mapToRef(Vector($1*360./24.,$3), Coord::WCS,Coord::FK5);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| hms sp dms
{
- Vector r = FITSPTR->mapToRef(Vector($1,$3),WCS,FK5);
+ Vector r = FITSPTR->mapToRef(Vector($1,$3), Coord::WCS,Coord::FK5);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| numeric sp numeric
{
- Vector r = FITSPTR->mapToRef(Vector($1,$3), PHYSICAL);
+ Vector r = FITSPTR->mapToRef(Vector($1,$3), Coord::PHYSICAL);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
@@ -237,8 +237,8 @@ shape : CIRCLE_ bp coord sp value
color,dash,1,font,text,props,NULL,taglist,cblist);}
| POINT_ bp coord
- {fr->createBoxCirclePointCmd(Vector($3),
- POINTSIZE, color,dash,1,font,text,props,NULL,taglist,cblist);}
+ {fr->createPointCmd(Vector($3), Point::BOXCIRCLE, POINTSIZE,
+ color,dash,1,font,text,props,NULL,taglist,cblist);}
| POLYGON_ {polylist.deleteAll();} bp polyNodes
{fr->createPolygonCmd(polylist,
diff --git a/saotk/frame/circle.C b/saotk/frame/circle.C
index ac5e3a3..5ebb9bf 100644
--- a/saotk/frame/circle.C
+++ b/saotk/frame/circle.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "circle.h"
-#include "framebase.h"
#include "fitsimage.h"
Circle::Circle(const Circle& a) : BaseEllipse(a) {}
@@ -20,7 +19,7 @@ Circle::Circle(Base* p, const Vector& ctr,
annuli_ = new Vector[numAnnuli_];
annuli_[0] = Vector(r,r);
- strcpy(type, "circle");
+ strcpy(type_, "circle");
numHandle = 4;
updateBBox();
@@ -39,23 +38,57 @@ void Circle::edit(const Vector& v, int h)
doCallBack(CallBack::EDITCB);
}
+void Circle::analysis(AnalysisMethod mm, int which)
+{
+ switch (mm) {
+ case PLOT3D:
+ if (!analysisPlot3d_ && which) {
+ addCallBack(CallBack::MOVECB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::EDITCB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::DELETECB, analysisPlot3dCB_[1],
+ parent->options->cmdName);
+ }
+ if (analysisPlot3d_ && !which) {
+ deleteCallBack(CallBack::MOVECB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::EDITCB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::DELETECB, analysisPlot3dCB_[1]);
+ }
+
+ analysisPlot3d_ = which;
+ break;
+ }
+}
+
+void Circle::analysisPlot3d(char* xname, char* yname)
+{
+ double* x;
+ double* y;
+ Vector ll = -annuli_[0] * Translate(center);
+ Vector ur = annuli_[0] * Translate(center);
+ BBox bb(ll,ur) ;
+ int num = parent->markerAnalysisPlot3d(&x, &y, this, bb);
+ analysisPlot3dResult(xname, yname, x, y, num);
+}
+
// list
-void Circle::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Circle::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
double r = ptr->mapLenFromRef(annuli_[0][0],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r << ')';
}
break;
@@ -63,15 +96,15 @@ void Circle::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- double r = ptr->mapLenFromRef(annuli_[0][0],sys,ARCSEC);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] <<','
+ double r = ptr->mapLenFromRef(annuli_[0][0],sys,Coord::ARCSEC);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] <<','
<< r << '"' << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -80,8 +113,8 @@ void Circle::list(ostream& str, CoordSystem sys, SkyFrame sky,
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- double r = ptr->mapLenFromRef(annuli_[0][0],sys,ARCSEC);
- str << type << '(' << ra << ',' << dec << ',' << r << '"' << ')';
+ double r = ptr->mapLenFromRef(annuli_[0][0],sys,Coord::ARCSEC);
+ str << type_ << '(' << ra << ',' << dec << ',' << r << '"' << ')';
}
break;
}
@@ -89,7 +122,7 @@ void Circle::list(ostream& str, CoordSystem sys, SkyFrame sky,
else {
Vector v = ptr->mapFromRef(center,sys);
double r = ptr->mapLenFromRef(annuli_[0][0],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] <<','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] <<','
<< r << ')';
}
}
@@ -98,13 +131,13 @@ void Circle::list(ostream& str, CoordSystem sys, SkyFrame sky,
listPost(str, conj, strip);
}
-void Circle::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Circle::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRowRadiusX(ptr,sys,annuli_[0]);
@@ -113,81 +146,81 @@ void Circle::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
XMLRowEnd(str);
}
-void Circle::listCiao(ostream& str, CoordSystem sys, int strip)
+void Circle::listCiao(ostream& str, Coord::CoordSystem sys, int strip)
{
FitsImage* ptr = parent->findFits();
listCiaoPre(str);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,PHYSICAL);
- double r = ptr->mapLenFromRef(annuli_[0][0],PHYSICAL);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector v = ptr->mapFromRef(center,Coord::PHYSICAL);
+ double r = ptr->mapLenFromRef(annuli_[0][0],Coord::PHYSICAL);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r << ')';
}
break;
default:
if (ptr->hasWCSCel(sys)) {
- double r = ptr->mapLenFromRef(annuli_[0][0],sys,ARCMIN);
+ double r = ptr->mapLenFromRef(annuli_[0][0],sys,Coord::ARCMIN);
char buf[64];
- ptr->mapFromRef(center,sys,FK5,SEXAGESIMAL,buf,64);
+ ptr->mapFromRef(center,sys,Coord::FK5,Coord::SEXAGESIMAL,buf,64);
char ra[16];
char dec[16];
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << type << '(' << ra << ',' << dec << ',' << r << '\'' << ')';
+ str << type_ << '(' << ra << ',' << dec << ',' << r << '\'' << ')';
}
}
listCiaoPost(str, strip);
}
-void Circle::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Circle::listSAOtng(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
listSAOtngPre(str, strip);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,IMAGE);
- double r = ptr->mapLenFromRef(annuli_[0][0],IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
+ double r = ptr->mapLenFromRef(annuli_[0][0],Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r << ')';
}
break;
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- double r = ptr->mapLenFromRef(annuli_[0][0],IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ double r = ptr->mapLenFromRef(annuli_[0][0],Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
- double r = ptr->mapLenFromRef(annuli_[0][0],IMAGE);
+ double r = ptr->mapLenFromRef(annuli_[0][0],Coord::IMAGE);
char ra[16];
char dec[16];
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << type << '(' << ra << ',' << dec << ',' << r << ')';
+ str << type_ << '(' << ra << ',' << dec << ',' << r << ')';
}
break;
}
@@ -197,38 +230,38 @@ void Circle::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
listSAOtngPost(str,strip);
}
-void Circle::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Circle::listPros(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
switch (sys) {
- case IMAGE:
- case DETECTOR:
- case AMPLIFIER:
- sys = IMAGE;
- case PHYSICAL:
+ case Coord::IMAGE:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
+ sys = Coord::IMAGE;
+ case Coord::PHYSICAL:
{
Vector v = ptr->mapFromRef(center,sys);
- double r = ptr->mapLenFromRef(annuli_[0][0],IMAGE);
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << setprecision(8) << v << r;
+ double r = ptr->mapLenFromRef(annuli_[0][0],Coord::IMAGE);
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << setprecision(8) << v << r;
}
break;
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- double r = ptr->mapLenFromRef(annuli_[0][0],sys,ARCSEC);
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << setprecision(8)
+ double r = ptr->mapLenFromRef(annuli_[0][0],sys,Coord::ARCSEC);
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << setprecision(8)
<< v[0] << "d " << v[1] << "d "
<< r << "\" ";
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -241,9 +274,9 @@ void Circle::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
if (dec[0]=='+')
dec++;
- double r = ptr->mapLenFromRef(annuli_[0][0],sys,ARCSEC);
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << ra << ' ' << dec << ' '
+ double r = ptr->mapLenFromRef(annuli_[0][0],sys,Coord::ARCSEC);
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << ra << ' ' << dec << ' '
<< r << "\" ";
}
break;
@@ -259,8 +292,8 @@ void Circle::listSAOimage(ostream& str, int strip)
FitsImage* ptr = parent->findFits();
listSAOimagePre(str);
- Vector v = ptr->mapFromRef(center,IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< annuli_[0][0] << ')';
listSAOimagePost(str, strip);
diff --git a/saotk/frame/circle.h b/saotk/frame/circle.h
index 6def03e..f177c84 100644
--- a/saotk/frame/circle.h
+++ b/saotk/frame/circle.h
@@ -17,19 +17,22 @@ public:
unsigned short prop, const char* cmt,
const List<Tag>& tg, const List<CallBack>& cb);
- Marker* dup() {return new Circle(*this);}
+ virtual Marker* dup() {return new Circle(*this);}
void edit(const Vector&, int);
void rotateBegin() {}
void rotate(const Vector& v, int h) {}
void rotateEnd() {}
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listCiao(ostream&, CoordSystem, int);
- void listSAOtng(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void listPros(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void listSAOimage(ostream&, int);
+ void analysis(AnalysisMethod, int);
+ void analysisPlot3d(char*, char*);
+
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ virtual void listCiao(ostream&, Coord::CoordSystem, int);
+ virtual void listSAOtng(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ virtual void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ virtual void listSAOimage(ostream&, int);
// special composite funtionality
void setComposite(const Matrix&, double);
diff --git a/saotk/frame/circle3d.C b/saotk/frame/circle3d.C
deleted file mode 100644
index 7e64714..0000000
--- a/saotk/frame/circle3d.C
+++ /dev/null
@@ -1,153 +0,0 @@
-// Copyright (C) 1999-2012
-// Smithsonian Astrophysical Observatory, Cambridge, MA, USA
-// For conditions of distribution and use, see copyright notice in "copyright"
-
-#include "circle3d.h"
-#include "framebase.h"
-#include "fitsimage.h"
-
-Circle3d::Circle3d(const Circle3d& a) : BaseEllipse(a)
-{
- method = a.method;
- system = a.system;
-}
-
-Circle3d::Circle3d(Base* p, const Vector& ctr,
- double r,
- const char* mvcb, const char* delcb,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb)
- : BaseEllipse(p, ctr, 0, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
-{
- method = AVERAGE;
-
- system = PHYSICAL;
-
- numAnnuli_ = 1;
- annuli_ = new Vector[numAnnuli_];
- annuli_[0] = Vector(r,r);
-
- strcpy(type, "circle3d");
- numHandle = 4;
-
- if (mvcb && *mvcb) {
- addCallBack(CallBack::MOVECB, mvcb, parent->options->cmdName);
- addCallBack(CallBack::EDITCB, mvcb, parent->options->cmdName);
- addCallBack(CallBack::UPDATECB, mvcb, parent->options->cmdName);
- }
- if (delcb && *delcb)
- addCallBack(CallBack::DELETECB, delcb, parent->options->cmdName);
-
- updateBBox();
-}
-
-void Circle3d::edit(const Vector& v, int h)
-{
- Matrix mm = bckMatrix();
-
- // calc dist between edge of circle3d and handle
- double d = annuli_[0].length() - annuli_[0][0];
- double r = (v * mm).length() - d;
- annuli_[0] = Vector(r,r);
-
- updateBBox();
- doCallBack(CallBack::EDITCB);
-}
-
-void Circle3d::setMethod(int m)
-{
- method = (Method)m;
-
- updateBBox();
- doCallBack(CallBack::EDITCB);
-}
-
-// list
-
-void Circle3d::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
-{
- if (!strip) {
- FitsImage* ptr = parent->findFits(sys,center);
- listPre(str, sys, sky, ptr, strip, 1);
-
- switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
- {
- Vector v = ptr->mapFromRef(center,sys);
- double r = ptr->mapLenFromRef(annuli_[0][0],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
- << r << ')';
- }
- break;
- default:
- if (ptr->hasWCS(sys)) {
- if (ptr->hasWCSCel(sys)) {
- switch (format) {
- case DEGREES:
- {
- Vector v = ptr->mapFromRef(center,sys,sky);
- double r = ptr->mapLenFromRef(annuli_[0][0],sys,ARCSEC);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] <<','
- << r << '"' << ')';
- }
- break;
- case SEXAGESIMAL:
- {
- char buf[64];
- ptr->mapFromRef(center,sys,sky,format,buf,64);
- char ra[16];
- char dec[16];
- string x(buf);
- istringstream wcs(x);
- wcs >> ra >> dec;
- double r = ptr->mapLenFromRef(annuli_[0][0],sys,ARCSEC);
- str << type << '(' << ra << ',' << dec << ',' << r << '"' << ')';
- }
- break;
- }
- }
- else {
- Vector v = ptr->mapFromRef(center,sys);
- double r = ptr->mapLenFromRef(annuli_[0][0],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] <<','
- << r << ')';
- }
- }
- }
-
- if (conj)
- str << " ||";
-
- listProperties(str, 0);
- }
-}
-
-void Circle3d::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
-{
- FitsImage* ptr = parent->findFits(sys,center);
-
- XMLRowInit();
- XMLRow(XMLSHAPE,type);
-
- XMLRowCenter(ptr,sys,sky,format);
- XMLRowRadiusX(ptr,sys,annuli_[0]);
-
- XMLRowProps(ptr,sys);
- XMLRowEnd(str);
-}
-
-// special composite funtionallity
-
-void Circle3d::setComposite(const Matrix& mx, double aa)
-{
- center *= mx;
- updateBBox();
-}
-
diff --git a/saotk/frame/circle3d.h b/saotk/frame/circle3d.h
deleted file mode 100644
index 127e246..0000000
--- a/saotk/frame/circle3d.h
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 1999-2012
-// Smithsonian Astrophysical Observatory, Cambridge, MA, USA
-// For conditions of distribution and use, see copyright notice in "copyright"
-
-#ifndef __circle3d_h__
-#define __circle3d_h__
-
-#include "baseellipse.h"
-
-class Circle3d : public BaseEllipse {
- public:
- enum Method {SUM,AVERAGE};
-
- private:
- Method method;
- CoordSystem system;
-
- public:
- Circle3d(const Circle3d&);
- Circle3d(Base* p, const Vector& ctr,
- double r,
- const char* mvcb, const char* delcb,
- const char* clr, int *dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb);
-
- Marker* dup() {return new Circle3d(*this);}
- void edit(const Vector&, int);
-
- void rotateBegin() {}
- void rotate(const Vector& v, int h) {}
- void rotateEnd() {}
-
- void setMethod(int);
- int getMethod() {return method;}
-
- CoordSystem getSystem() {return system;}
- void setSystem(CoordSystem sys) {system = sys;}
-
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
-
- // special composite funtionality
- void setComposite(const Matrix&, double);
-};
-
-#endif
diff --git a/saotk/frame/colorscalepseudo8.C b/saotk/frame/colorscalepseudo8.C
index 705f09f..1c317bf 100644
--- a/saotk/frame/colorscalepseudo8.C
+++ b/saotk/frame/colorscalepseudo8.C
@@ -3,7 +3,7 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "colorscalepseudo8.h"
-#include "framebase.h"
+#include "base.h"
ColorScalePseudoColor8::ColorScalePseudoColor8(int s) : ColorScale(s)
{
@@ -75,7 +75,7 @@ SinhScalePseudoColor8::SinhScalePseudoColor8(int s,
ColorScalePseudoColor8(s),
ColorScale(s) {}
-IISScalePseudoColor8::IISScalePseudoColor8(FrameBase* parent,
+IISScalePseudoColor8::IISScalePseudoColor8(Base* parent,
unsigned short* indexCells,
unsigned char* colorCells,
int count)
diff --git a/saotk/frame/colorscalepseudo8.h b/saotk/frame/colorscalepseudo8.h
index f69339f..dc16f38 100644
--- a/saotk/frame/colorscalepseudo8.h
+++ b/saotk/frame/colorscalepseudo8.h
@@ -7,7 +7,7 @@
#include "colorscale.h"
-class FrameBase;
+class Base;
class ColorScalePseudoColor8 : public virtual ColorScale {
public:
@@ -76,7 +76,7 @@ public virtual ColorScale,
public IISScale,
public ColorScalePseudoColor8 {
public:
- IISScalePseudoColor8(FrameBase*,unsigned short*, unsigned char*, int);
+ IISScalePseudoColor8(Base*,unsigned short*, unsigned char*, int);
};
class HistEquScalePseudoColor8 :
diff --git a/saotk/frame/compass.C b/saotk/frame/compass.C
index 7d0f6e1..31e74a0 100644
--- a/saotk/frame/compass.C
+++ b/saotk/frame/compass.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "compass.h"
-#include "framebase.h"
#include "fitsimage.h"
Compass::Compass(const Compass& a) : Marker(a)
@@ -24,7 +23,7 @@ Compass::Compass(const Compass& a) : Marker(a)
Compass::Compass(Base* p, const Vector& ctr,
double r,
const char* n, const char* e, int na, int ea,
- CoordSystem sys, SkyFrame sky,
+ Coord::CoordSystem sys, Coord::SkyFrame sky,
const char* clr, int* dsh,
int w, const char* f, const char* t,
unsigned short prop, const char* c,
@@ -40,7 +39,7 @@ Compass::Compass(Base* p, const Vector& ctr,
northArrow = na;
eastArrow = ea;
- strcpy(type,"compass");
+ strcpy(type_,"compass");
handle = new Vector[3];
numHandle = 3;
@@ -56,7 +55,7 @@ Compass::~Compass()
delete [] eastText;
}
-void Compass::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Compass::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
GC lgc = renderXGC(mode);
@@ -130,20 +129,20 @@ void Compass::renderPS(int mode)
{
renderPSGC(mode);
- Vector aa = parent->mapFromRef(center,CANVAS);
- Vector bb = parent->mapFromRef(p1,CANVAS);
- Vector cc = parent->mapFromRef(p2,CANVAS);
- Vector dd = parent->mapFromRef(pp1,CANVAS);
- Vector ee = parent->mapFromRef(pp2,CANVAS);
+ Vector aa = parent->mapFromRef(center,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector cc = parent->mapFromRef(p2,Coord::CANVAS);
+ Vector dd = parent->mapFromRef(pp1,Coord::CANVAS);
+ Vector ee = parent->mapFromRef(pp2,Coord::CANVAS);
if (northArrow) {
- bb = modifyArrow(center,p1,CANVAS);
- renderPSArrow(center,p1,CANVAS);
+ bb = modifyArrow(center,p1,Coord::CANVAS);
+ renderPSArrow(center,p1,Coord::CANVAS);
}
if (eastArrow) {
- cc = modifyArrow(center,p2,CANVAS);
- renderPSArrow(center,p2,CANVAS);
+ cc = modifyArrow(center,p2,Coord::CANVAS);
+ renderPSArrow(center,p2,Coord::CANVAS);
}
{
@@ -255,20 +254,20 @@ void Compass::renderMACOSX()
{
renderMACOSXGC();
- Vector aa = parent->mapFromRef(center,CANVAS);
- Vector bb = parent->mapFromRef(p1,CANVAS);
- Vector cc = parent->mapFromRef(p2,CANVAS);
- Vector dd = parent->mapFromRef(pp1,CANVAS);
- Vector ee = parent->mapFromRef(pp2,CANVAS);
+ Vector aa = parent->mapFromRef(center,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector cc = parent->mapFromRef(p2,Coord::CANVAS);
+ Vector dd = parent->mapFromRef(pp1,Coord::CANVAS);
+ Vector ee = parent->mapFromRef(pp2,Coord::CANVAS);
if (northArrow) {
- bb = modifyArrow(center,p1,CANVAS);
- renderMACOSXArrow(center,p1,CANVAS);
+ bb = modifyArrow(center,p1,Coord::CANVAS);
+ renderMACOSXArrow(center,p1,Coord::CANVAS);
}
if (eastArrow) {
- cc = modifyArrow(center,p2,CANVAS);
- renderMACOSXArrow(center,p2,CANVAS);
+ cc = modifyArrow(center,p2,Coord::CANVAS);
+ renderMACOSXArrow(center,p2,Coord::CANVAS);
}
macosxDrawLine(aa,bb);
@@ -320,20 +319,20 @@ void Compass::renderWIN32()
{
renderWIN32GC();
- Vector aa = parent->mapFromRef(center,CANVAS);
- Vector bb = parent->mapFromRef(p1,CANVAS);
- Vector cc = parent->mapFromRef(p2,CANVAS);
- Vector dd = parent->mapFromRef(pp1,CANVAS);
- Vector ee = parent->mapFromRef(pp2,CANVAS);
+ Vector aa = parent->mapFromRef(center,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector cc = parent->mapFromRef(p2,Coord::CANVAS);
+ Vector dd = parent->mapFromRef(pp1,Coord::CANVAS);
+ Vector ee = parent->mapFromRef(pp2,Coord::CANVAS);
if (northArrow) {
- bb = modifyArrow(center,p1,CANVAS);
- renderWIN32Arrow(center,p1,CANVAS);
+ bb = modifyArrow(center,p1,Coord::CANVAS);
+ renderWIN32Arrow(center,p1,Coord::CANVAS);
}
if (eastArrow) {
- cc = modifyArrow(center,p2,CANVAS);
- renderWIN32Arrow(center,p2,CANVAS);
+ cc = modifyArrow(center,p2,Coord::CANVAS);
+ renderWIN32Arrow(center,p2,Coord::CANVAS);
}
win32DrawLine(aa,bb);
@@ -398,9 +397,9 @@ void Compass::updateHandles()
pp2 = p2 + east*rr;
// generate handles
- handle[0] = parent->mapFromRef(center,CANVAS);
- handle[1] = parent->mapFromRef(p1,CANVAS);
- handle[2] = parent->mapFromRef(p2,CANVAS);
+ handle[0] = parent->mapFromRef(center,Coord::CANVAS);
+ handle[1] = parent->mapFromRef(p1,Coord::CANVAS);
+ handle[2] = parent->mapFromRef(p2,Coord::CANVAS);
}
void Compass::calcAllBBox()
@@ -409,11 +408,11 @@ void Compass::calcAllBBox()
Tk_FontMetrics metrics;
Tk_GetFontMetrics(tkfont_, &metrics);
- Vector a = parent->mapFromRef(center,CANVAS);
- Vector b = parent->mapFromRef(p1,CANVAS);
- Vector c = parent->mapFromRef(p2,CANVAS);
- Vector bb = parent->mapFromRef(pp1,CANVAS);
- Vector cc = parent->mapFromRef(pp2,CANVAS);
+ Vector a = parent->mapFromRef(center,Coord::CANVAS);
+ Vector b = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector c = parent->mapFromRef(p2,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(pp1,Coord::CANVAS);
+ Vector cc = parent->mapFromRef(pp2,Coord::CANVAS);
if (northText) {
float r1 = Tk_TextWidth(tkfont_, northText, strlen(northText))/2.;
@@ -468,7 +467,7 @@ int Compass::isIn(const Vector& vv)
Points on a edge are considered inside.
*/
- Vector v = parent->mapToRef(vv,CANVAS);
+ Vector v = parent->mapToRef(vv,Coord::CANVAS);
int crossings = 0; // number of crossings
Vector bb[4];
@@ -533,7 +532,7 @@ void Compass::setLabels(const char* n, const char* e)
doCallBack(CallBack::EDITCB);
}
-void Compass::setCoordSystem(CoordSystem sys, SkyFrame sky)
+void Compass::setCoordSystem(Coord::CoordSystem sys, Coord::SkyFrame sky)
{
coordSystem = sys;
skyFrame = sky;
@@ -543,21 +542,21 @@ void Compass::setCoordSystem(CoordSystem sys, SkyFrame sky)
// list
-void Compass::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Compass::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
if (!strip) {
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 1);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ptr->mapLenFromRef(radius,sys) << ')';
}
break;
@@ -565,14 +564,14 @@ void Compass::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
- << ptr->mapLenFromRef(radius,sys,ARCSEC) << '"' << ')';
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ << ptr->mapLenFromRef(radius,sys,Coord::ARCSEC) << '"' << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -581,8 +580,8 @@ void Compass::list(ostream& str, CoordSystem sys, SkyFrame sky,
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << type << '(' << ra << ',' << dec << ','
- << ptr->mapLenFromRef(radius,sys,ARCSEC)
+ str << type_ << '(' << ra << ',' << dec << ','
+ << ptr->mapLenFromRef(radius,sys,Coord::ARCSEC)
<< '"' << ')';
}
break;
@@ -590,7 +589,7 @@ void Compass::list(ostream& str, CoordSystem sys, SkyFrame sky,
}
else {
Vector v = ptr->mapFromRef(center,sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ptr->mapLenFromRef(radius,sys) << ')';
}
}
@@ -600,24 +599,24 @@ void Compass::list(ostream& str, CoordSystem sys, SkyFrame sky,
str << " ||";
str << " compass=";
- listCoordSystem(str, coordSystem, skyFrame, 1, ptr->hasWCSCel(coordSystem));
+ coord.listCoordSystem(str, coordSystem, skyFrame, 1, ptr->hasWCSCel(coordSystem));
str << " {" << northText << "} {" << eastText << "} "
<< northArrow << ' ' << eastArrow;
listProperties(str, 0);
}
}
-void Compass::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Compass::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
- double rr = ptr->mapLenFromRef(radius,sys,ARCSEC);
+ double rr = ptr->mapLenFromRef(radius,sys,Coord::ARCSEC);
ostringstream pstr;
- listCoordSystem(pstr, coordSystem, skyFrame, 0, ptr->hasWCSCel(coordSystem));
+ coord.listCoordSystem(pstr, coordSystem, skyFrame, 0, ptr->hasWCSCel(coordSystem));
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRow(XMLR,rr);
diff --git a/saotk/frame/compass.h b/saotk/frame/compass.h
index 0fbb863..4db77c6 100644
--- a/saotk/frame/compass.h
+++ b/saotk/frame/compass.h
@@ -15,8 +15,8 @@ private:
Vector pp2;
double radius;
- CoordSystem coordSystem;
- SkyFrame skyFrame;
+ Coord::CoordSystem coordSystem;
+ Coord::SkyFrame skyFrame;
char* northText;
char* eastText;
@@ -24,8 +24,8 @@ private:
int eastArrow;
private:
- void renderX(Drawable, InternalSystem, RenderMode);
- void renderXInclude(Drawable, InternalSystem, RenderMode) {}
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
+ void renderXInclude(Drawable, Coord::InternalSystem, RenderMode) {}
GC renderXGC(RenderMode);
void renderPS(int);
@@ -51,7 +51,7 @@ public:
Compass(Base* parent, const Vector& ctr,
double r,
const char* n, const char* e, int na, int ea,
- CoordSystem, SkyFrame,
+ Coord::CoordSystem, Coord::SkyFrame,
const char* clr, int* dsh,
int w, const char* f, const char* t,
unsigned short prop, const char* c,
@@ -70,18 +70,18 @@ public:
double getRadius() {return radius;}
void setRadius(double);
- void setCoordSystem(CoordSystem, SkyFrame);
+ void setCoordSystem(Coord::CoordSystem, Coord::SkyFrame);
void setLabels(const char*, const char*);
void setArrows(int,int);
- CoordSystem getSystem() {return coordSystem;}
- SkyFrame getSkyFrame() {return skyFrame;}
+ Coord::CoordSystem getSystem() {return coordSystem;}
+ Coord::SkyFrame getSkyFrame() {return skyFrame;}
const char* getNorthText() {return northText;}
const char* getEastText() {return eastText;}
int getNorthArrow() {return northArrow;}
int getEastArrow() {return eastArrow;}
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
};
#endif
diff --git a/saotk/frame/composite.C b/saotk/frame/composite.C
index b9cd7ac..7c43131 100644
--- a/saotk/frame/composite.C
+++ b/saotk/frame/composite.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "composite.h"
-#include "framebase.h"
#include "fitsimage.h"
Composite::Composite(const Composite& a) : Marker(a)
@@ -20,7 +19,7 @@ Composite::Composite(Base* p, const Vector& ctr,
const List<Tag>& tg, const List<CallBack>& cb)
: Marker(p, ctr, ang, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
{
- strcpy(type, "composite");
+ strcpy(type_, "composite");
global = gl;
@@ -30,7 +29,7 @@ Composite::Composite(Base* p, const Vector& ctr,
updateBBox();
}
-void Composite::draw(Drawable drawable, InternalSystem sys,
+void Composite::draw(Drawable drawable, Coord::InternalSystem sys,
int tt, RenderMode mode, HandleMode hh)
{
if (hh==HANDLES)
@@ -115,16 +114,16 @@ void Composite::updateHandles()
Marker* m = mk->dup();
m->setComposite(fwdMatrix(), angle);
for(int ii=0; ii<m->getNumHandle(); ii++)
- bb.bound(bckMap(m->getHandle(ii),CANVAS));
+ bb.bound(bckMap(m->getHandle(ii),Coord::CANVAS));
delete m;
mk=mk->next();
}
bb.expand(3); // a little more room around the edges
- handle[0] = fwdMap(bb.ll,CANVAS);
- handle[1] = fwdMap(bb.lr(),CANVAS);
- handle[2] = fwdMap(bb.ur,CANVAS);
- handle[3] = fwdMap(bb.ul(),CANVAS);
+ handle[0] = fwdMap(bb.ll,Coord::CANVAS);
+ handle[1] = fwdMap(bb.lr(),Coord::CANVAS);
+ handle[2] = fwdMap(bb.ur,Coord::CANVAS);
+ handle[3] = fwdMap(bb.ul(),Coord::CANVAS);
}
void Composite::updateCoords(const Matrix& mx)
@@ -182,21 +181,21 @@ Marker* Composite::extract()
// list
-void Composite::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Composite::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
if (!strip) {
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 1);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< radToDeg(parent->mapAngleFromRef(angle,sys)) << ')';
}
break;
@@ -204,15 +203,15 @@ void Composite::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1]
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1]
<< ','
<< radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -221,7 +220,7 @@ void Composite::list(ostream& str, CoordSystem sys, SkyFrame sky,
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << type << '(' << ra << ',' << dec << ','
+ str << type_ << '(' << ra << ',' << dec << ','
<< radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
}
break;
@@ -229,7 +228,7 @@ void Composite::list(ostream& str, CoordSystem sys, SkyFrame sky,
}
else {
Vector v = ptr->mapFromRef(center,sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< radToDeg(parent->mapAngleFromRef(angle,sys)) << ')';
}
}
@@ -246,12 +245,12 @@ void Composite::list(ostream& str, CoordSystem sys, SkyFrame sky,
mk=mk->next();
m->setComposite(fwdMatrix(), angle);
- m->list(str, sys, sky, format, (mk?1:0), strip);
+ m->list(str, sys, sky, format, 1, strip);
delete m;
}
}
-void Composite::listCiao(ostream& str, CoordSystem sys, int strip)
+void Composite::listCiao(ostream& str, Coord::CoordSystem sys, int strip)
{
Marker* mk=members.head();
while (mk) {
@@ -264,8 +263,8 @@ void Composite::listCiao(ostream& str, CoordSystem sys, int strip)
}
}
-void Composite::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Composite::listPros(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
Marker* mk=members.head();
while (mk) {
@@ -278,8 +277,8 @@ void Composite::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
-void Composite::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Composite::listSAOtng(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
Marker* mk=members.head();
while (mk) {
@@ -305,8 +304,8 @@ void Composite::listSAOimage(ostream& str, int strip)
}
}
-void Composite::listXY(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Composite::listXY(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
Marker* mk=members.head();
while (mk) {
diff --git a/saotk/frame/composite.h b/saotk/frame/composite.h
index e7a0108..5b49dcb 100644
--- a/saotk/frame/composite.h
+++ b/saotk/frame/composite.h
@@ -13,7 +13,7 @@ class Composite : public Marker {
List<Marker> members;
int global;
- void renderX(Drawable, InternalSystem, RenderMode) {}
+ void renderX(Drawable, Coord::InternalSystem, RenderMode) {}
void renderPS(int mode) {}
#ifdef _MACOSX
void renderMACOSX() {}
@@ -36,7 +36,7 @@ public:
Marker* dup() {return new Composite(*this);}
- void draw(Drawable, InternalSystem, int, RenderMode, HandleMode);
+ void draw(Drawable, Coord::InternalSystem, int, RenderMode, HandleMode);
void ps(int,int);
#ifdef _MACOSX
void macosx(int);
@@ -54,13 +54,13 @@ public:
void setGlobal(int w) {global = w ? 1 : 0;}
int getGlobal() {return global;}
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat) {}
- void listCiao(ostream&, CoordSystem, int);
- void listSAOtng(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat) {}
+ void listCiao(ostream&, Coord::CoordSystem, int);
+ void listSAOtng(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
void listSAOimage(ostream&, int);
- void listPros(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void listXY(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
+ void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ void listXY(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
};
diff --git a/saotk/frame/context.C b/saotk/frame/context.C
index 5366ca4..8fa6fec 100644
--- a/saotk/frame/context.C
+++ b/saotk/frame/context.C
@@ -32,7 +32,7 @@ Context::Context()
}
mosaicType = Base::NOMOSAIC;
- mosaicSystem = WCS;
+ mosaicSystem = Coord::WCS;
contour = NULL;
}
@@ -130,7 +130,7 @@ void Context::unload()
}
mosaicType = Base::NOMOSAIC;
- mosaicSystem = WCS;
+ mosaicSystem = Coord::WCS;
if (contour)
delete contour;
@@ -164,7 +164,7 @@ void Context::updateBin(Base* parent)
}
// finish bin
- loadInit(Base::NOMOSAIC,WCS);
+ loadInit(Base::NOMOSAIC,Coord::WCS);
for (int ii=0; ii<2; ii++)
naxis_[ii] =fits->naxis(ii);
@@ -383,32 +383,22 @@ void Context::updateClip(FrScale* fr, int force)
}
}
-void Context::bltHist(Tcl_Interp* interp, char* xname, char* yname)
+void Context::bltHist(char* xname, char* yname, int num)
{
- int num = 256;
-
if (!fits)
return;
frScale.histogram(fits,num);
+ double* x = frScale.histogramX();
+ double* y = frScale.histogramY();
Blt_Vector* xx;
- if (Blt_GetVector(interp, xname, &xx) != TCL_OK)
- return;
-
- if (Blt_ResetVector(xx, frScale.histogramX(), num, num*sizeof(double),
- TCL_STATIC)
- != TCL_OK)
- return;
+ Blt_GetVector(parent_->interp, xname, &xx);
+ Blt_ResetVector(xx, x, num, num*sizeof(double), TCL_STATIC);
Blt_Vector* yy;
- if (Blt_GetVector(interp, yname, &yy) != TCL_OK)
- return;
-
- if (Blt_ResetVector(yy, frScale.histogramY(), num, num*sizeof(double),
- TCL_STATIC)
- != TCL_OK)
- return;
+ Blt_GetVector(parent_->interp, yname, &yy);
+ Blt_ResetVector(yy, y, num, num*sizeof(double), TCL_STATIC);
}
Vector Context::getClip()
@@ -447,7 +437,7 @@ int Context::nhdu()
return dd;
}
-void Context::loadInit(Base::MosaicType type, CoordSystem sys)
+void Context::loadInit(Base::MosaicType type, Coord::CoordSystem sys)
{
cfits = fits;
mosaicCount_ = 1;
@@ -474,7 +464,7 @@ int Context::load(Base* parent, Base::MemType which,
switch (ll) {
case Base::IMG:
fits = img;
- loadInit(Base::NOMOSAIC,WCS);
+ loadInit(Base::NOMOSAIC,Coord::WCS);
for (int ii=0; ii<FTY_MAXAXES; ii++)
naxis_[ii] = img->naxis(ii);
break;
@@ -532,6 +522,9 @@ int Context::load(Base* parent, Base::MemType which,
case Base::COMPRESS:
next = new FitsImageFitsNextCompress(parent, img, ptr->baseFile(), ii+1);
break;
+ case Base::PHOTO:
+ next = new FitsImagePhotoCubeNext(parent, fn, ptr->baseFile(), ii+1);
+ break;
}
if (next && next->isValid()) {
@@ -576,7 +569,7 @@ int Context::loadExtCube(Base* parent, Base::MemType which,
}
fits = img;
- loadInit(Base::NOMOSAIC,WCS);
+ loadInit(Base::NOMOSAIC,Coord::WCS);
for (int ii=0; ii<2; ii++)
naxis_[ii] = img->naxis(ii);
naxis_[2] =1;
@@ -671,7 +664,7 @@ int Context::loadSlice(Base* parent, Base::MemType which, const char* fn,
}
else {
fits = img;
- loadInit(Base::NOMOSAIC,WCS);
+ loadInit(Base::NOMOSAIC,Coord::WCS);
for (int ii=0; ii<2; ii++)
naxis_[ii] = img->naxis(ii);
naxis_[2] =1;
@@ -700,7 +693,7 @@ int Context::loadSlice(Base* parent, Base::MemType which, const char* fn,
int Context::loadMosaic(Base* parent, Base::MemType which,
const char* fn, FitsImage* img, Base::LayerType ll,
- Base::MosaicType type, CoordSystem sys)
+ Base::MosaicType type, Coord::CoordSystem sys)
{
if (!img || !img->isValid()) {
if (img)
@@ -834,7 +827,7 @@ int Context::loadMosaic(Base* parent, Base::MemType which,
int Context::loadMosaicImage(Base* parent, Base::MemType which,
const char* fn, FitsImage* img, Base::LayerType ll,
- Base::MosaicType type, CoordSystem sys)
+ Base::MosaicType type, Coord::CoordSystem sys)
{
if (!img || !img->isValid()) {
if (img)
@@ -1116,7 +1109,7 @@ int Context::loadMosaicWFPC2(Base* parent, Base::MemType which,
// Its legal, save it
fits = img;
- loadInit(Base::WFPC2,WCS);
+ loadInit(Base::WFPC2,Coord::WCS);
// remember in case of compress
Base::MemType sav = which;
@@ -1282,7 +1275,7 @@ int Context::loadMosaicWFPC2(Base* parent, Base::MemType which,
// fix fitsimage params
ptr->replaceWCS(r);
- ptr->processKeywordsWCS(fits, WCS);
+ ptr->processKeywordsWCS(fits, Coord::WCS);
delete r;
ptr = ptr->nextMosaic();
diff --git a/saotk/frame/context.h b/saotk/frame/context.h
index 23e4e97..8f6004d 100644
--- a/saotk/frame/context.h
+++ b/saotk/frame/context.h
@@ -35,7 +35,7 @@ class Context {
int slice_[FTY_MAXAXES]; // the first two are ignored
Base::MosaicType mosaicType;
- CoordSystem mosaicSystem;
+ Coord::CoordSystem mosaicSystem;
int nhdu();
void updateClip(FrScale*, int);
@@ -48,7 +48,7 @@ class Context {
void analysis();
- void bltHist(Tcl_Interp*, char*, char*);
+ void bltHist(char*, char*, int);
int calcSlice();
void clearContour();
@@ -71,11 +71,11 @@ class Context {
int loadExtCube(Base*, Base::MemType, const char*, FitsImage*);
int loadSlice(Base*, Base::MemType, const char*, FitsImage*);
int loadMosaic(Base*, Base::MemType, const char*, FitsImage*,
- Base::LayerType, Base::MosaicType, CoordSystem);
+ Base::LayerType, Base::MosaicType, Coord::CoordSystem);
int loadMosaicImage(Base*, Base::MemType, const char*, FitsImage*,
- Base::LayerType, Base::MosaicType, CoordSystem);
+ Base::LayerType, Base::MosaicType, Coord::CoordSystem);
int loadMosaicWFPC2(Base*, Base::MemType, const char*, FitsImage*);
- void loadInit(Base::MosaicType, CoordSystem);
+ void loadInit(Base::MosaicType, Coord::CoordSystem);
void loadFinish();
void loadFinishMask();
diff --git a/saotk/frame/contour.C b/saotk/frame/contour.C
index 76541ec..7ef4e10 100644
--- a/saotk/frame/contour.C
+++ b/saotk/frame/contour.C
@@ -40,7 +40,7 @@ Contour::~Contour()
delete [] colorName;
}
-void Contour::render(Pixmap pmap, InternalSystem sys, int width, int height)
+void Contour::render(Pixmap pmap, Coord::InternalSystem sys, int width, int height)
{
if (contours_.head()) {
XSetForeground(parent->display, parent->contourGC, color);
@@ -119,7 +119,7 @@ void Contour::ps(int mode)
Vector u = contours_.current()->vector;
if (u[0] != DBL_MAX) {
ostringstream str;
- Vector v = parent->mapFromRef(u,CANVAS);
+ Vector v = parent->mapFromRef(u,Coord::CANVAS);
str << "newpath " << endl
<< v.TkCanvasPs(parent->canvas) << " moveto" << endl << ends;
Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
@@ -128,7 +128,7 @@ void Contour::ps(int mode)
Vector uu = contours_.current()->vector;
if (uu[0] != DBL_MAX) {
ostringstream str;
- Vector vv = parent->mapFromRef(uu,CANVAS);
+ Vector vv = parent->mapFromRef(uu,Coord::CANVAS);
str << vv.TkCanvasPs(parent->canvas) << " lineto"
<< endl << ends;
Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
@@ -161,8 +161,8 @@ void Contour::macosx()
while (contours_.next()) {
Vector u2 = contours_.current()->vector;
if (u1[0] != DBL_MAX && u2[0] != DBL_MAX) {
- Vector v1 = parent->mapFromRef(u1,CANVAS);
- Vector v2 = parent->mapFromRef(u2,CANVAS);
+ Vector v1 = parent->mapFromRef(u1,Coord::CANVAS);
+ Vector v2 = parent->mapFromRef(u2,Coord::CANVAS);
macosxDrawLine(v1,v2);
}
@@ -191,8 +191,8 @@ void Contour::win32()
while (contours_.next()) {
Vector u2 = contours_.current()->vector;
if (u1[0] != DBL_MAX && u2[0] != DBL_MAX) {
- Vector v1 = parent->mapFromRef(u1,CANVAS);
- Vector v2 = parent->mapFromRef(u2,CANVAS);
+ Vector v1 = parent->mapFromRef(u1,Coord::CANVAS);
+ Vector v2 = parent->mapFromRef(u2,Coord::CANVAS);
win32DrawLine(v1,v2);
}
diff --git a/saotk/frame/contour.h b/saotk/frame/contour.h
index bbd6ca9..81d3f10 100644
--- a/saotk/frame/contour.h
+++ b/saotk/frame/contour.h
@@ -32,7 +32,7 @@ class Contour {
Contour(Base*, const char*, int, int, const List<Vertex>&);
virtual ~Contour();
- void render(Pixmap, InternalSystem, int, int);
+ void render(Pixmap, Coord::InternalSystem, int, int);
void ps(int);
#ifdef _MACOSX
void macosx();
diff --git a/saotk/frame/coord.C b/saotk/frame/coord.C
index 6ba5126..763d0a1 100644
--- a/saotk/frame/coord.C
+++ b/saotk/frame/coord.C
@@ -5,7 +5,10 @@
#include "coord.h"
#include "util.h"
-char *coordSystemStr_[] = {
+Coord coord;
+
+char* Coord::coordSystemStr_[] = {
+ "data",
"image",
"physical",
"amplifier",
@@ -40,7 +43,7 @@ char *coordSystemStr_[] = {
"wcs0"
};
-char *skyFrameStr_[] = {
+char* Coord::skyFrameStr_[] = {
"fk4",
"fk4-no-e",
"fk5",
@@ -52,18 +55,18 @@ char *skyFrameStr_[] = {
"gappt"
};
-char *skyFormatStr_[] = {
+char* Coord::skyFormatStr_[] = {
"degrees",
"sexagesimal",
};
-char *skyDistStr_[] = {
+char* Coord::skyDistStr_[] = {
"degrees",
"arcmin",
"arcsec"
};
-void listCoordSystem(ostream& str, CoordSystem sys, SkyFrame sky,
+void Coord::listCoordSystem(ostream& str, CoordSystem sys, SkyFrame sky,
int wcs, int wcsequ)
{
switch (sys) {
@@ -121,7 +124,7 @@ void listCoordSystem(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
-void listDistSystem(ostream& str, CoordSystem sys, SkyDist format, int wcsequ)
+void Coord::listDistSystem(ostream& str, CoordSystem sys, SkyDist format, int wcsequ)
{
switch (sys) {
case IMAGE:
@@ -156,7 +159,7 @@ void listDistSystem(ostream& str, CoordSystem sys, SkyDist format, int wcsequ)
}
}
-void listProsCoordSystem(ostream& str, CoordSystem sys, SkyFrame sky)
+ void Coord::listProsCoordSystem(ostream& str, CoordSystem sys, SkyFrame sky)
{
switch (sys) {
case IMAGE:
@@ -201,8 +204,8 @@ void listProsCoordSystem(ostream& str, CoordSystem sys, SkyFrame sky)
}
}
-void strToCoordSystem(const char* str, CoordSystem wcssys,
- CoordSystem* sys, SkyFrame* sky)
+ void Coord::strToCoordSystem(const char* str, CoordSystem wcssys,
+ CoordSystem* sys, SkyFrame* sky)
{
if (!str) {
*sys = PHYSICAL;
@@ -270,7 +273,7 @@ void strToCoordSystem(const char* str, CoordSystem wcssys,
}
}
-void strToSkyFormat(const char* str, SkyFormat* format)
+void Coord::strToSkyFormat(const char* str, SkyFormat* format)
{
if (!str)
*format = DEGREES;
@@ -296,7 +299,7 @@ void strToSkyFormat(const char* str, SkyFormat* format)
*format = DEGREES;
}
-void strToSkyDist(const char* str, SkyDist* dist)
+void Coord::strToSkyDist(const char* str, SkyDist* dist)
{
if (!str)
*dist = DEGREE;
@@ -318,7 +321,7 @@ void strToSkyDist(const char* str, SkyDist* dist)
*dist = DEGREE;
}
-void strToAngleFormat(const char* str, AngleFormat* format)
+ void Coord::strToAngleFormat(const char* str, AngleFormat* format)
{
if (!str)
*format = DEG;
@@ -336,8 +339,8 @@ void strToAngleFormat(const char* str, AngleFormat* format)
*format = DEG;
}
-void strToDistSystem(const char* str, CoordSystem wcssys,
- CoordSystem* sys, SkyDist* dist)
+void Coord::strToDistSystem(const char* str, CoordSystem wcssys,
+ CoordSystem* sys, SkyDist* dist)
{
if (!str) {
*sys = PHYSICAL;
diff --git a/saotk/frame/coord.h b/saotk/frame/coord.h
index c84d592..6c13a78 100644
--- a/saotk/frame/coord.h
+++ b/saotk/frame/coord.h
@@ -12,36 +12,46 @@
#include <iomanip>
using namespace std;
-enum InternalSystem {WINDOW, CANVAS, WIDGET, USER, REF, DATA,
- PANNER, MAGNIFIER, PS};
-enum CoordSystem {IMAGE, PHYSICAL, AMPLIFIER, DETECTOR, WCS,
- WCSA, WCSB, WCSC, WCSD, WCSE, WCSF, WCSG, WCSH, WCSI,
- WCSJ, WCSK, WCSL, WCSM, WCSN, WCSO, WCSP, WCSQ, WCSR,
- WCSS, WCST, WCSU, WCSV, WCSW, WCSX, WCSY, WCSZ, WCS0};
-enum SkyFrame {FK4, FK4_NO_E, FK5, ICRS, GALACTIC, SUPERGALACTIC,
- ECLIPTIC, HELIOECLIPTIC};
-enum SkyFormat {DEGREES, SEXAGESIMAL};
-enum SkyDist {DEGREE, ARCMIN, ARCSEC};
-enum Precision {DEFAULT, FIXED, SCIENTIFIC, INTEGER};
-enum AngleFormat {DEG, RAD};
-
-enum Orientation {NORMAL, XX, YY, XY};
-
-// SkyFrame SkyFormat strings
-
-extern char *coordSystemStr_[];
-extern char *skyFrameStr_[];
-extern char *skyFormatStr_[];
-extern char *skyDistStr_[];
-
-void listCoordSystem(ostream&, CoordSystem, SkyFrame, int, int);
-void listDistSystem(ostream&, CoordSystem, SkyDist, int);
-void listProsCoordSystem(ostream&, CoordSystem, SkyFrame);
-
-void strToCoordSystem(const char*, CoordSystem, CoordSystem*, SkyFrame*);
-void strToSkyFormat(const char*, SkyFormat*);
-void strToSkyDist(const char*, SkyDist*);
-void strToAngleFormat(const char*, AngleFormat*);
-void strToDistSystem(const char*, CoordSystem, CoordSystem*, SkyDist*);
+class Coord {
+ public:
+ enum InternalSystem {WINDOW, CANVAS, WIDGET, USER, REF,
+ PANNER, MAGNIFIER, PS};
+
+ enum CoordSystem {DATA, IMAGE, PHYSICAL, AMPLIFIER, DETECTOR, WCS,
+ WCSA, WCSB, WCSC, WCSD, WCSE, WCSF, WCSG, WCSH, WCSI,
+ WCSJ, WCSK, WCSL, WCSM, WCSN, WCSO, WCSP, WCSQ, WCSR,
+ WCSS, WCST, WCSU, WCSV, WCSW, WCSX, WCSY, WCSZ, WCS0};
+
+ enum SkyFrame {FK4, FK4_NO_E, FK5, ICRS, GALACTIC, SUPERGALACTIC,
+ ECLIPTIC, HELIOECLIPTIC};
+
+ enum SkyFormat {DEGREES, SEXAGESIMAL};
+ enum SkyDist {DEGREE, ARCMIN, ARCSEC};
+ enum AngleFormat {DEG, RAD};
+ enum Orientation {NORMAL, XX, YY, XY};
+
+ static char *coordSystemStr_[];
+ static char *skyFrameStr_[];
+ static char *skyFormatStr_[];
+ static char *skyDistStr_[];
+
+ public:
+ void listCoordSystem(ostream&, CoordSystem, SkyFrame, int, int);
+ void listDistSystem(ostream&, CoordSystem, SkyDist, int);
+ void listProsCoordSystem(ostream&, CoordSystem, SkyFrame);
+
+ void strToCoordSystem(const char*, CoordSystem, CoordSystem*, SkyFrame*);
+ void strToSkyFormat(const char*, SkyFormat*);
+ void strToSkyDist(const char*, SkyDist*);
+ void strToDistSystem(const char*, CoordSystem, CoordSystem*, SkyDist*);
+ void strToAngleFormat(const char*, AngleFormat*);
+
+ char* coordSystemStr(int ii) {return coordSystemStr_[ii];}
+ char* skyFrameStr(int ii) {return skyFrameStr_[ii];}
+ char* skyFormatStr(int ii) {return skyFormatStr_[ii];}
+ char* skyDistStr(int ii) {return skyDistStr_[ii];}
+};
+
+extern Coord coord;
#endif
diff --git a/saotk/frame/cpanda.C b/saotk/frame/cpanda.C
index b99b350..9fd2bbb 100644
--- a/saotk/frame/cpanda.C
+++ b/saotk/frame/cpanda.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "cpanda.h"
-#include "framebase.h"
#include "fitsimage.h"
Cpanda::Cpanda(const Cpanda& a) : BasePanda(a), BaseEllipse(a) {}
@@ -26,7 +25,7 @@ Cpanda::Cpanda(Base* p, const Vector& ctr,
annuli_[ii] = Vector(r,r);
}
- strcpy(type, "panda");
+ strcpy(type_, "panda");
numHandle = 4 + numAnnuli_ + numAngles_;
startAng_ = angles_[0];
@@ -52,7 +51,7 @@ Cpanda::Cpanda(Base* p, const Vector& ctr,
annuli_[ii] = Vector(r[ii],r[ii]);
sortAnnuli();
- strcpy(type, "panda");
+ strcpy(type_, "panda");
numHandle = 4 + numAnnuli_ + numAngles_;
startAng_ = angles_[0];
@@ -61,7 +60,7 @@ Cpanda::Cpanda(Base* p, const Vector& ctr,
updateBBox();
}
-void Cpanda::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Cpanda::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
BaseEllipse::renderX(drawable, sys, mode);
@@ -102,9 +101,9 @@ void Cpanda::renderPS(int mode)
for (int ii=0; ii<numAngles_; ii++) {
Vector rr0 = fwdMap(Vector(r0[0]*cos(-angles_[ii]),r0[1]*sin(-angles_[ii])),
- CANVAS);
+ Coord::CANVAS);
Vector rr1 = fwdMap(Vector(r1[0]*cos(-angles_[ii]),r1[1]*sin(-angles_[ii])),
- CANVAS);
+ Coord::CANVAS);
ostringstream str;
str << "newpath "
@@ -125,9 +124,9 @@ void Cpanda::renderMACOSX()
for (int ii=0; ii<numAngles_; ii++) {
Vector rr0 = fwdMap(Vector(r0[0]*cos(-angles_[ii]),r0[1]*sin(-angles_[ii])),
- CANVAS);
+ Coord::CANVAS);
Vector rr1 = fwdMap(Vector(r1[0]*cos(-angles_[ii]),r1[1]*sin(-angles_[ii])),
- CANVAS);
+ Coord::CANVAS);
macosxDrawLine(rr0,rr1);
}
@@ -145,10 +144,10 @@ void Cpanda::renderWIN32()
for (int ii=0; ii<numAngles_; ii++) {
Vector rr0 = fwdMap(Vector(r0[0]*cos(-angles_[ii]),
r0[1]*sin(-angles_[ii])),
- CANVAS);
+ Coord::CANVAS);
Vector rr1 = fwdMap(Vector(r1[0]*cos(-angles_[ii]),
r1[1]*sin(-angles_[ii])),
- CANVAS);
+ Coord::CANVAS);
win32DrawLine(rr0,rr1);
}
@@ -171,18 +170,18 @@ void Cpanda::updateHandles()
max = annuli_[ii];
Vector& r = max;
- handle[0] = fwdMap(Vector(-r[0],-r[1]),CANVAS);
- handle[1] = fwdMap(Vector( r[0],-r[1]),CANVAS);
- handle[2] = fwdMap(Vector( r[0], r[1]),CANVAS);
- handle[3] = fwdMap(Vector(-r[0], r[1]),CANVAS);
+ handle[0] = fwdMap(Vector(-r[0],-r[1]),Coord::CANVAS);
+ handle[1] = fwdMap(Vector( r[0],-r[1]),Coord::CANVAS);
+ handle[2] = fwdMap(Vector( r[0], r[1]),Coord::CANVAS);
+ handle[3] = fwdMap(Vector(-r[0], r[1]),Coord::CANVAS);
for (int ii=0; ii<numAnnuli_; ii++)
- handle[ii+4] = fwdMap(Vector(annuli_[ii][0],0),CANVAS);
+ handle[ii+4] = fwdMap(Vector(annuli_[ii][0],0),Coord::CANVAS);
Vector rr = annuli_[numAnnuli_-1];
for (int ii=0; ii<numAngles_; ii++)
handle[4+numAnnuli_+ii] =
- fwdMap(Vector(rr[0]*cos(-angles_[ii]),rr[1]*sin(-angles_[ii])),CANVAS);
+ fwdMap(Vector(rr[0]*cos(-angles_[ii]),rr[1]*sin(-angles_[ii])),Coord::CANVAS);
}
void Cpanda::edit(const Vector& v, int h)
@@ -346,8 +345,8 @@ void Cpanda::deleteAnglesAnnuli(int h)
}
// list
-void Cpanda::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Cpanda::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
int regular = 1;
if (numAngles_>2) {
@@ -388,17 +387,17 @@ void Cpanda::list(ostream& str, CoordSystem sys, SkyFrame sky,
listB(str, sys, sky, format, conj, strip);
}
-void Cpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Cpanda::listA(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
double ang1 = radToDeg(parent->mapAngleFromRef(angles_[0],sys));
double ang2 = radToDeg(parent->mapAngleFromRef(angles_[numAngles_-1],sys));
@@ -406,7 +405,7 @@ void Cpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
ang2 += 360;
Vector v = ptr->mapFromRef(center,sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ',' << numAngles_-1 << ','
<< ptr->mapLenFromRef(annuli_[0][0],sys) << ','
<< ptr->mapLenFromRef(annuli_[numAnnuli_-1][0],sys) << ','
@@ -417,7 +416,7 @@ void Cpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
double ang1 = radToDeg(parent->mapAngleFromRef(angles_[0],sys,sky));
double ang2 = radToDeg(parent->mapAngleFromRef(angles_[numAngles_-1],sys,sky));
@@ -426,14 +425,14 @@ void Cpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
ang2 += 360;
Vector v = ptr->mapFromRef(center,sys,sky);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 <<',' << numAngles_-1 << ','
- << ptr->mapLenFromRef(annuli_[0][0],sys,ARCSEC) << '"' << ','
- << ptr->mapLenFromRef(annuli_[numAnnuli_-1][0],sys,ARCSEC)<< '"'<<','
+ << ptr->mapLenFromRef(annuli_[0][0],sys,Coord::ARCSEC) << '"' << ','
+ << ptr->mapLenFromRef(annuli_[numAnnuli_-1][0],sys,Coord::ARCSEC)<< '"'<<','
<< numAnnuli_-1 << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -449,10 +448,10 @@ void Cpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
if (ang2<=ang1+FLT_EPSILON)
ang2 += 360;
- str << type << '(' << ra << ',' << dec << ','
+ str << type_ << '(' << ra << ',' << dec << ','
<< ang1 << ',' << ang2 <<',' << numAngles_-1 << ','
- << ptr->mapLenFromRef(annuli_[0][0],sys,ARCSEC) << '"' << ','
- << ptr->mapLenFromRef(annuli_[numAnnuli_-1][0],sys,ARCSEC)<< '"'<<','
+ << ptr->mapLenFromRef(annuli_[0][0],sys,Coord::ARCSEC) << '"' << ','
+ << ptr->mapLenFromRef(annuli_[numAnnuli_-1][0],sys,Coord::ARCSEC)<< '"'<<','
<< numAnnuli_-1 << ')';
}
break;
@@ -466,7 +465,7 @@ void Cpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
ang2 += 360;
Vector v = ptr->mapFromRef(center,sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 <<',' << numAngles_-1 << ','
<< ptr->mapLenFromRef(annuli_[0][0],sys) << ','
<< ptr->mapLenFromRef(annuli_[numAnnuli_-1][0],sys)<< ','
@@ -478,16 +477,16 @@ void Cpanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
listPost(str, conj, strip);
}
-void Cpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Cpanda::listB(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
for (int j=1; j<numAngles_; j++) {
@@ -500,7 +499,7 @@ void Cpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
for (int i=1; i<numAnnuli_; i++) {
listPre(str, sys, sky, ptr, strip, 0);
- str << type << '(' << setprecision(8)
+ str << type_ << '(' << setprecision(8)
<< v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ",1,"
<< ptr->mapLenFromRef(annuli_[i-1][0],sys) << ','
@@ -543,7 +542,7 @@ void Cpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
for (int j=1; j<numAngles_; j++) {
@@ -556,11 +555,11 @@ void Cpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
for (int i=1; i<numAnnuli_; i++) {
listPre(str, sys, sky, ptr, strip, 0);
- str << type << '(' << setprecision(8)
+ str << type_ << '(' << setprecision(8)
<< v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ",1,"
- << ptr->mapLenFromRef(annuli_[i-1][0],sys,ARCSEC) << '"' <<','
- << ptr->mapLenFromRef(annuli_[i][0],sys,ARCSEC) << '"' <<",1)";
+ << ptr->mapLenFromRef(annuli_[i-1][0],sys,Coord::ARCSEC) << '"' <<','
+ << ptr->mapLenFromRef(annuli_[i][0],sys,Coord::ARCSEC) << '"' <<",1)";
if (!strip) {
if (conj)
@@ -575,7 +574,7 @@ void Cpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
<< ((k<numAngles_-1) ? ' ' : ')');
str << '(';
for (int k=0; k<numAnnuli_; k++)
- str << ptr->mapLenFromRef(annuli_[k][0],sys,ARCSEC) << '"'
+ str << ptr->mapLenFromRef(annuli_[k][0],sys,Coord::ARCSEC) << '"'
<< ((k<numAnnuli_-1) ? ' ' : ')');
listProps(str);
@@ -595,7 +594,7 @@ void Cpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -616,10 +615,10 @@ void Cpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
listPre(str, sys, sky, ptr, strip, 0);
- str << type << '(' << ra << ',' << dec << ','
+ str << type_ << '(' << ra << ',' << dec << ','
<< ang1 << ',' << ang2 << ",1,"
- << ptr->mapLenFromRef(annuli_[i-1][0],sys,ARCSEC) << '"' <<','
- << ptr->mapLenFromRef(annuli_[i][0],sys,ARCSEC) << '"' <<",1)";
+ << ptr->mapLenFromRef(annuli_[i-1][0],sys,Coord::ARCSEC) << '"' <<','
+ << ptr->mapLenFromRef(annuli_[i][0],sys,Coord::ARCSEC) << '"' <<",1)";
if (!strip) {
if (conj)
@@ -634,7 +633,7 @@ void Cpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
<< ((k<numAngles_-1) ? ' ' : ')');
str << '(';
for (int k=0; k<numAnnuli_; k++)
- str << ptr->mapLenFromRef(annuli_[k][0],sys,ARCSEC) << '"'
+ str << ptr->mapLenFromRef(annuli_[k][0],sys,Coord::ARCSEC) << '"'
<< ((k<numAnnuli_-1) ? ' ' : ')');
listProps(str);
@@ -669,7 +668,7 @@ void Cpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
for (int i=1; i<numAnnuli_; i++) {
listPre(str, sys, sky, ptr, strip, 0);
- str << type << '(' << setprecision(8)
+ str << type_ << '(' << setprecision(8)
<< v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ",1,"
<< ptr->mapLenFromRef(annuli_[i-1][0],sys) <<','
@@ -710,13 +709,13 @@ void Cpanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
-void Cpanda::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Cpanda::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRowRadiusX(ptr,sys,annuli_,numAnnuli_);
@@ -726,17 +725,17 @@ void Cpanda::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
XMLRowEnd(str);
}
-void Cpanda::listCiao(ostream& str, CoordSystem sys, int strip)
+void Cpanda::listCiao(ostream& str, Coord::CoordSystem sys, int strip)
{
FitsImage* ptr = parent->findFits();
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,PHYSICAL);
+ Vector v = ptr->mapFromRef(center,Coord::PHYSICAL);
for (int i=0; i<numAnnuli_-1; i++)
for (int j=0; j<numAngles_-1; j++) {
listCiaoPre(str);
@@ -748,8 +747,8 @@ void Cpanda::listCiao(ostream& str, CoordSystem sys, int strip)
ang2 += 360;
str << "pie(" << setprecision(8) << v[0] << ',' << v[1] << ','
- << ptr->mapLenFromRef(annuli_[i][0],PHYSICAL) << ','
- << ptr->mapLenFromRef(annuli_[i+1][0],PHYSICAL) << ','
+ << ptr->mapLenFromRef(annuli_[i][0],Coord::PHYSICAL) << ','
+ << ptr->mapLenFromRef(annuli_[i+1][0],Coord::PHYSICAL) << ','
<< ang1 << ',' << ang2 << ')';
listCiaoPost(str, strip);
@@ -760,7 +759,7 @@ void Cpanda::listCiao(ostream& str, CoordSystem sys, int strip)
if (ptr->hasWCSCel(sys)) {
char buf[64];
- ptr->mapFromRef(center,sys,FK5,SEXAGESIMAL, buf, 64);
+ ptr->mapFromRef(center,sys,Coord::FK5,Coord::SEXAGESIMAL, buf, 64);
char ra[16];
char dec[16];
string x(buf);
@@ -778,8 +777,8 @@ void Cpanda::listCiao(ostream& str, CoordSystem sys, int strip)
ang2 += 360;
str << "pie(" << ra << ',' << dec << ','
- << ptr->mapLenFromRef(annuli_[i][0],sys,ARCMIN) << '\'' << ','
- << ptr->mapLenFromRef(annuli_[i+1][0],sys,ARCMIN) << '\'' << ','
+ << ptr->mapLenFromRef(annuli_[i][0],sys,Coord::ARCMIN) << '\'' << ','
+ << ptr->mapLenFromRef(annuli_[i+1][0],sys,Coord::ARCMIN) << '\'' << ','
<< ang1 << ',' << ang2 << ')';
listCiaoPost(str, strip);
diff --git a/saotk/frame/cpanda.h b/saotk/frame/cpanda.h
index 9e65d3f..d5f3f89 100644
--- a/saotk/frame/cpanda.h
+++ b/saotk/frame/cpanda.h
@@ -10,7 +10,7 @@
class Cpanda : public BasePanda, public BaseEllipse {
private:
- void renderX(Drawable, InternalSystem, RenderMode);
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
void renderPS(int);
#ifdef _MACOSX
void renderMACOSX();
@@ -21,8 +21,8 @@ class Cpanda : public BasePanda, public BaseEllipse {
void updateHandles();
- void listA(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listB(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
+ void listA(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listB(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
public:
Cpanda(const Cpanda&);
@@ -57,9 +57,9 @@ class Cpanda : public BasePanda, public BaseEllipse {
void setAnglesAnnuli(const double*, int, const Vector*, int);
void deleteAnglesAnnuli(int h);
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listCiao(ostream&, CoordSystem, int);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void listCiao(ostream&, Coord::CoordSystem, int);
// special composite funtionality
void setComposite(const Matrix&, double);
diff --git a/saotk/frame/ds9parser.C b/saotk/frame/ds9parser.C
index 352da09..a3aa5ce 100644
--- a/saotk/frame/ds9parser.C
+++ b/saotk/frame/ds9parser.C
@@ -148,57 +148,56 @@
POINT_ = 329,
POLYGON_ = 330,
PROJECTION_ = 331,
- PROJECTION3D_ = 332,
- PROPERTY_ = 333,
- ROTATE_ = 334,
- ROTBOX_ = 335,
- RULER_ = 336,
- SELECT_ = 337,
- SOURCE_ = 338,
- SUPERGALACTIC_ = 339,
- TAG_ = 340,
- TEXT_ = 341,
- TEXTANGLE_ = 342,
- TEXTROTATE_ = 343,
- TILE_ = 344,
- TRUE_ = 345,
- VECTOR_ = 346,
- VERSION_ = 347,
- UNHIGHLITE_ = 348,
- UNSELECT_ = 349,
- UPDATE_ = 350,
- WCS_ = 351,
- WCSA_ = 352,
- WCSB_ = 353,
- WCSC_ = 354,
- WCSD_ = 355,
- WCSE_ = 356,
- WCSF_ = 357,
- WCSG_ = 358,
- WCSH_ = 359,
- WCSI_ = 360,
- WCSJ_ = 361,
- WCSK_ = 362,
- WCSL_ = 363,
- WCSM_ = 364,
- WCSN_ = 365,
- WCSO_ = 366,
- WCSP_ = 367,
- WCSQ_ = 368,
- WCSR_ = 369,
- WCSS_ = 370,
- WCST_ = 371,
- WCSU_ = 372,
- WCSV_ = 373,
- WCSW_ = 374,
- WCSX_ = 375,
- WCSY_ = 376,
- WCSZ_ = 377,
- WCS0_ = 378,
- WIDTH_ = 379,
- X_ = 380,
- Y_ = 381,
- YES_ = 382
+ PROPERTY_ = 332,
+ ROTATE_ = 333,
+ ROTBOX_ = 334,
+ RULER_ = 335,
+ SELECT_ = 336,
+ SOURCE_ = 337,
+ SUPERGALACTIC_ = 338,
+ TAG_ = 339,
+ TEXT_ = 340,
+ TEXTANGLE_ = 341,
+ TEXTROTATE_ = 342,
+ TILE_ = 343,
+ TRUE_ = 344,
+ VECTOR_ = 345,
+ VERSION_ = 346,
+ UNHIGHLITE_ = 347,
+ UNSELECT_ = 348,
+ UPDATE_ = 349,
+ WCS_ = 350,
+ WCSA_ = 351,
+ WCSB_ = 352,
+ WCSC_ = 353,
+ WCSD_ = 354,
+ WCSE_ = 355,
+ WCSF_ = 356,
+ WCSG_ = 357,
+ WCSH_ = 358,
+ WCSI_ = 359,
+ WCSJ_ = 360,
+ WCSK_ = 361,
+ WCSL_ = 362,
+ WCSM_ = 363,
+ WCSN_ = 364,
+ WCSO_ = 365,
+ WCSP_ = 366,
+ WCSQ_ = 367,
+ WCSR_ = 368,
+ WCSS_ = 369,
+ WCST_ = 370,
+ WCSU_ = 371,
+ WCSV_ = 372,
+ WCSW_ = 373,
+ WCSX_ = 374,
+ WCSY_ = 375,
+ WCSZ_ = 376,
+ WCS0_ = 377,
+ WIDTH_ = 378,
+ X_ = 379,
+ Y_ = 380,
+ YES_ = 381
};
#endif
/* Tokens. */
@@ -276,57 +275,56 @@
#define POINT_ 329
#define POLYGON_ 330
#define PROJECTION_ 331
-#define PROJECTION3D_ 332
-#define PROPERTY_ 333
-#define ROTATE_ 334
-#define ROTBOX_ 335
-#define RULER_ 336
-#define SELECT_ 337
-#define SOURCE_ 338
-#define SUPERGALACTIC_ 339
-#define TAG_ 340
-#define TEXT_ 341
-#define TEXTANGLE_ 342
-#define TEXTROTATE_ 343
-#define TILE_ 344
-#define TRUE_ 345
-#define VECTOR_ 346
-#define VERSION_ 347
-#define UNHIGHLITE_ 348
-#define UNSELECT_ 349
-#define UPDATE_ 350
-#define WCS_ 351
-#define WCSA_ 352
-#define WCSB_ 353
-#define WCSC_ 354
-#define WCSD_ 355
-#define WCSE_ 356
-#define WCSF_ 357
-#define WCSG_ 358
-#define WCSH_ 359
-#define WCSI_ 360
-#define WCSJ_ 361
-#define WCSK_ 362
-#define WCSL_ 363
-#define WCSM_ 364
-#define WCSN_ 365
-#define WCSO_ 366
-#define WCSP_ 367
-#define WCSQ_ 368
-#define WCSR_ 369
-#define WCSS_ 370
-#define WCST_ 371
-#define WCSU_ 372
-#define WCSV_ 373
-#define WCSW_ 374
-#define WCSX_ 375
-#define WCSY_ 376
-#define WCSZ_ 377
-#define WCS0_ 378
-#define WIDTH_ 379
-#define X_ 380
-#define Y_ 381
-#define YES_ 382
+#define PROPERTY_ 332
+#define ROTATE_ 333
+#define ROTBOX_ 334
+#define RULER_ 335
+#define SELECT_ 336
+#define SOURCE_ 337
+#define SUPERGALACTIC_ 338
+#define TAG_ 339
+#define TEXT_ 340
+#define TEXTANGLE_ 341
+#define TEXTROTATE_ 342
+#define TILE_ 343
+#define TRUE_ 344
+#define VECTOR_ 345
+#define VERSION_ 346
+#define UNHIGHLITE_ 347
+#define UNSELECT_ 348
+#define UPDATE_ 349
+#define WCS_ 350
+#define WCSA_ 351
+#define WCSB_ 352
+#define WCSC_ 353
+#define WCSD_ 354
+#define WCSE_ 355
+#define WCSF_ 356
+#define WCSG_ 357
+#define WCSH_ 358
+#define WCSI_ 359
+#define WCSJ_ 360
+#define WCSK_ 361
+#define WCSL_ 362
+#define WCSM_ 363
+#define WCSN_ 364
+#define WCSO_ 365
+#define WCSP_ 366
+#define WCSQ_ 367
+#define WCSR_ 368
+#define WCSS_ 369
+#define WCST_ 370
+#define WCSU_ 371
+#define WCSV_ 372
+#define WCSW_ 373
+#define WCSX_ 374
+#define WCSY_ 375
+#define WCSZ_ 376
+#define WCS0_ 377
+#define WIDTH_ 378
+#define X_ 379
+#define Y_ 380
+#define YES_ 381
@@ -346,6 +344,7 @@
#include "base.h"
#include "fitsimage.h"
#include "basemarker.h"
+#include "point.h"
#undef yyFlexLexer
#define yyFlexLexer mkFlexLexer
@@ -355,11 +354,11 @@ extern int mklex(void*, mkFlexLexer*);
extern void mkerror(Base*, mkFlexLexer*, const char*);
extern void mkDiscard(int);
-static CoordSystem globalSystem;
-static CoordSystem globalWCS;
-static SkyFrame globalSky;
-static CoordSystem localSystem;
-static SkyFrame localSky;
+static Coord::CoordSystem globalSystem;
+static Coord::CoordSystem globalWCS;
+static Coord::SkyFrame globalSky;
+static Coord::CoordSystem localSystem;
+static Coord::SkyFrame localSky;
static int globalTile;
@@ -404,23 +403,23 @@ static double localTextAngle;
static int globalTextRotate;
static int localTextRotate;
-static CoordSystem globalRulerCoordSystem;
-static CoordSystem localRulerCoordSystem;
-static SkyFrame globalRulerSkyFrame;
-static SkyFrame localRulerSkyFrame;
-static CoordSystem globalRulerDistSystem;
-static CoordSystem localRulerDistSystem;
-static SkyDist globalRulerDistFormat;
-static SkyDist localRulerDistFormat;
-
-static CoordSystem globalCompassCoordSystem;
-static SkyFrame globalCompassSkyFrame;
+static Coord::CoordSystem globalRulerCoordSystem;
+static Coord::CoordSystem localRulerCoordSystem;
+static Coord::SkyFrame globalRulerSkyFrame;
+static Coord::SkyFrame localRulerSkyFrame;
+static Coord::CoordSystem globalRulerDistSystem;
+static Coord::CoordSystem localRulerDistSystem;
+static Coord::SkyDist globalRulerDistFormat;
+static Coord::SkyDist localRulerDistFormat;
+
+static Coord::CoordSystem globalCompassCoordSystem;
+static Coord::SkyFrame globalCompassSkyFrame;
static char globalCompassNorth[80];
static char globalCompassEast[80];
static int globalCompassNArrow;
static int globalCompassEArrow;
-static CoordSystem localCompassCoordSystem;
-static SkyFrame localCompassSkyFrame;
+static Coord::CoordSystem localCompassCoordSystem;
+static Coord::SkyFrame localCompassSkyFrame;
static char localCompassNorth[80];
static char localCompassEast[80];
static int localCompassNArrow;
@@ -453,10 +452,8 @@ static char aText[80];
static char aComment[80];
static void setProps(unsigned short* props, unsigned short prop, int value);
-static CoordSystem checkWCSSystem();
-static SkyFrame checkWCSSky();
-
-enum {CIRCLE,BOX,DIAMOND,CROSS,XPT,ARROW,BOXCIRCLE};
+static Coord::CoordSystem checkWCSSystem();
+static Coord::SkyFrame checkWCSSky();
/* Enabling traces. */
@@ -479,7 +476,7 @@ enum {CIRCLE,BOX,DIAMOND,CROSS,XPT,ARROW,BOXCIRCLE};
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 136 "ds9parser.Y"
+#line 135 "ds9parser.Y"
{
#define MKBUFSIZE 2048
double real;
@@ -488,7 +485,7 @@ typedef union YYSTYPE
double vector[3];
}
/* Line 193 of yacc.c. */
-#line 492 "ds9parser.C"
+#line 489 "ds9parser.C"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -501,7 +498,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */
-#line 505 "ds9parser.C"
+#line 502 "ds9parser.C"
#ifdef short
# undef short
@@ -716,10 +713,10 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2559
+#define YYLAST 2552
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 140
+#define YYNTOKENS 139
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 71
/* YYNRULES -- Number of rules. */
@@ -729,7 +726,7 @@ union yyalloc
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 382
+#define YYMAXUTOK 381
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -738,18 +735,18 @@ union yyalloc
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 129, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 128, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 139, 2, 128, 2, 2, 138, 2,
- 132, 133, 2, 136, 131, 137, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 130,
- 2, 135, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 138, 2, 127, 2, 2, 137, 2,
+ 131, 132, 2, 135, 130, 136, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 129,
+ 2, 134, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 134, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 133, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -775,7 +772,7 @@ static const yytype_uint8 yytranslate[] =
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127
+ 125, 126
};
#if YYDEBUG
@@ -809,185 +806,185 @@ static const yytype_uint16 yyprhs[] =
623, 627, 632, 635, 638, 641, 644, 647, 650, 652,
654, 657, 659, 661, 663, 664, 672, 674, 675, 686,
688, 689, 700, 702, 703, 705, 707, 709, 711, 713,
- 715, 717, 719, 721, 728, 737, 748, 759, 768, 777,
- 786, 795, 806, 819, 832, 851, 862, 875, 890, 905,
- 924, 945, 956, 967, 980, 995, 1010, 1029, 1050, 1059,
- 1066, 1074, 1082, 1090, 1098, 1106, 1114, 1122, 1123, 1131,
- 1142, 1155, 1168, 1174, 1181, 1182, 1192, 1201, 1212, 1223,
- 1232, 1241, 1250, 1254, 1256, 1258, 1262, 1264, 1266, 1270,
+ 715, 717, 719, 721, 732, 739, 748, 757, 768, 777,
+ 786, 795, 804, 815, 826, 837, 838, 846, 855, 866,
+ 873, 874, 884, 891, 899, 907, 915, 923, 931, 939,
+ 947, 956, 965, 976, 987, 1000, 1013, 1026, 1041, 1056,
+ 1075, 1088, 1103, 1118, 1137, 1156, 1177, 1198, 1209, 1222,
+ 1235, 1241, 1250, 1254, 1256, 1258, 1262, 1264, 1266, 1270,
1272, 1274, 1278, 1280, 1284
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 141, 0, -1, 184, 142, 210, -1, 142, 143, 157,
- -1, 143, 157, -1, -1, 37, 159, -1, 92, -1,
- 55, 180, 149, -1, 89, 3, -1, -1, 174, 144,
- 149, -1, -1, 176, 145, 149, -1, -1, 65, 146,
- 149, -1, 195, 199, -1, 195, 197, 199, -1, 195,
- 128, 147, -1, 198, -1, 197, 198, -1, 89, 3,
- -1, -1, 148, 5, -1, -1, -1, 128, 150, 5,
- -1, 210, -1, -1, 128, 152, 5, 210, -1, 128,
- 185, 210, -1, -1, 128, 185, 153, 5, 210, -1,
- 210, -1, -1, 155, 5, 210, -1, 185, 210, -1,
- -1, 185, 156, 5, 210, -1, 129, -1, 130, -1,
+ 140, 0, -1, 183, 141, 209, -1, 141, 142, 156,
+ -1, 142, 156, -1, -1, 37, 158, -1, 91, -1,
+ 55, 179, 148, -1, 88, 3, -1, -1, 173, 143,
+ 148, -1, -1, 175, 144, 148, -1, -1, 65, 145,
+ 148, -1, 194, 198, -1, 194, 196, 198, -1, 194,
+ 127, 146, -1, 197, -1, 196, 197, -1, 88, 3,
+ -1, -1, 147, 5, -1, -1, -1, 127, 149, 5,
+ -1, 209, -1, -1, 127, 151, 5, 209, -1, 127,
+ 184, 209, -1, -1, 127, 184, 152, 5, 209, -1,
+ 209, -1, -1, 154, 5, 209, -1, 184, 209, -1,
+ -1, 184, 155, 5, 209, -1, 128, -1, 129, -1,
15, -1, 4, -1, 3, -1, 70, -1, 69, -1,
- 3, -1, 127, -1, 126, -1, 70, -1, 90, -1,
- 68, -1, 67, -1, 69, -1, 47, -1, -1, 131,
- -1, -1, 132, -1, -1, 133, -1, -1, 134, -1,
- 134, 134, -1, -1, 166, -1, 158, -1, 6, -1,
- 7, -1, 158, -1, 10, -1, 11, -1, 6, -1,
- 8, -1, 9, -1, 158, 161, 158, -1, 10, 161,
- 10, -1, 11, 161, 11, -1, 6, 161, 6, -1,
- 8, 161, 8, -1, 9, 161, 9, -1, 67, 135,
- 3, -1, 12, -1, 13, -1, 14, -1, 170, 161,
- 170, -1, 171, 161, 172, -1, 172, 161, 172, -1,
- 158, 161, 158, -1, 6, 161, 6, -1, 11, 161,
- 11, -1, 10, 161, 10, -1, 60, -1, 71, -1,
- 40, -1, 16, -1, 175, -1, 96, -1, 97, -1,
- 98, -1, 99, -1, 100, -1, 101, -1, 102, -1,
- 103, -1, 104, -1, 105, -1, 106, -1, 107, -1,
- 108, -1, 109, -1, 110, -1, 111, -1, 112, -1,
- 113, -1, 114, -1, 115, -1, 116, -1, 117, -1,
- 118, -1, 119, -1, 120, -1, 121, -1, 122, -1,
- 123, -1, 50, -1, 21, -1, 51, -1, 52, -1,
- 62, -1, 58, -1, 54, -1, 84, -1, 42, -1,
- 56, -1, 38, -1, 18, -1, 19, -1, 82, -1,
+ 3, -1, 126, -1, 125, -1, 70, -1, 89, -1,
+ 68, -1, 67, -1, 69, -1, 47, -1, -1, 130,
+ -1, -1, 131, -1, -1, 132, -1, -1, 133, -1,
+ 133, 133, -1, -1, 165, -1, 157, -1, 6, -1,
+ 7, -1, 157, -1, 10, -1, 11, -1, 6, -1,
+ 8, -1, 9, -1, 157, 160, 157, -1, 10, 160,
+ 10, -1, 11, 160, 11, -1, 6, 160, 6, -1,
+ 8, 160, 8, -1, 9, 160, 9, -1, 67, 134,
+ 3, -1, 12, -1, 13, -1, 14, -1, 169, 160,
+ 169, -1, 170, 160, 171, -1, 171, 160, 171, -1,
+ 157, 160, 157, -1, 6, 160, 6, -1, 11, 160,
+ 11, -1, 10, 160, 10, -1, 60, -1, 71, -1,
+ 40, -1, 16, -1, 174, -1, 95, -1, 96, -1,
+ 97, -1, 98, -1, 99, -1, 100, -1, 101, -1,
+ 102, -1, 103, -1, 104, -1, 105, -1, 106, -1,
+ 107, -1, 108, -1, 109, -1, 110, -1, 111, -1,
+ 112, -1, 113, -1, 114, -1, 115, -1, 116, -1,
+ 117, -1, 118, -1, 119, -1, 120, -1, 121, -1,
+ 122, -1, 50, -1, 21, -1, 51, -1, 52, -1,
+ 62, -1, 58, -1, 54, -1, 83, -1, 42, -1,
+ 56, -1, 38, -1, 18, -1, 19, -1, 81, -1,
57, -1, 35, -1, 49, -1, 43, -1, 66, -1,
- 79, -1, 39, -1, 61, -1, 83, -1, 82, -1,
- 94, -1, 57, -1, 93, -1, 23, 66, -1, 66,
+ 78, -1, 39, -1, 61, -1, 82, -1, 81, -1,
+ 93, -1, 57, -1, 92, -1, 23, 66, -1, 66,
-1, 45, 66, -1, 23, 43, -1, 43, -1, 45,
- 43, -1, 23, 79, -1, 79, -1, 45, 79, -1,
- 39, -1, 86, -1, 30, -1, 124, -1, 78, -1,
- 53, -1, 63, -1, 95, -1, 180, 161, 181, -1,
- 181, -1, 178, 135, 160, -1, 30, 135, 5, -1,
- 30, 135, 128, 5, -1, 36, 135, 3, 3, -1,
- 124, 135, 3, -1, 53, 135, 5, -1, 86, 135,
- 5, -1, 35, -1, 83, -1, 22, -1, 74, 135,
- 196, -1, 74, 135, 196, 3, -1, 64, 135, 3,
- 3, -1, 91, 135, 3, -1, 32, 135, 3, -1,
- 81, 135, 182, -1, 31, 135, 183, 5, 5, 3,
- 3, -1, 87, 135, 166, -1, 88, 135, 3, -1,
- 96, 135, 175, -1, 174, 176, 174, 177, -1, 174,
- 174, -1, 174, 177, -1, 176, 174, -1, 176, 177,
- -1, 65, 174, -1, 65, 177, -1, 177, -1, 73,
- -1, 174, 176, -1, 174, -1, 176, -1, 65, -1,
- -1, 185, 161, 186, -1, 186, -1, 178, 135, 160,
- -1, 30, 135, 5, -1, 30, 135, 128, 5, -1,
- 36, 135, 3, 3, -1, 124, 135, 3, -1, 53,
- 135, 5, -1, 86, 135, 5, -1, 85, 135, 5,
- -1, 27, 135, 179, 5, 5, -1, 35, -1, 83,
- -1, 22, -1, 74, 135, 196, -1, 74, 135, 196,
- 3, -1, 64, 135, 3, 3, -1, 91, 135, 3,
- -1, 32, 135, 3, -1, 81, 135, 187, -1, 31,
- 135, 188, 5, 5, 3, 3, -1, 87, 135, 166,
- -1, 88, 135, 3, -1, 33, 135, 189, -1, 46,
- 135, 191, -1, 26, 135, 193, -1, 174, 176, 174,
- 177, -1, 174, 174, -1, 174, 177, -1, 176, 174,
- -1, 176, 177, -1, 65, 174, -1, 65, 177, -1,
- 177, -1, 73, -1, 174, 176, -1, 174, -1, 176,
- -1, 65, -1, -1, 190, 132, 206, 133, 132, 204,
- 133, -1, 59, -1, -1, 192, 132, 206, 133, 132,
- 208, 133, 132, 166, 133, -1, 59, -1, -1, 194,
- 132, 206, 133, 132, 208, 133, 132, 166, 133, -1,
+ 43, -1, 23, 78, -1, 78, -1, 45, 78, -1,
+ 39, -1, 85, -1, 30, -1, 123, -1, 77, -1,
+ 53, -1, 63, -1, 94, -1, 179, 160, 180, -1,
+ 180, -1, 177, 134, 159, -1, 30, 134, 5, -1,
+ 30, 134, 127, 5, -1, 36, 134, 3, 3, -1,
+ 123, 134, 3, -1, 53, 134, 5, -1, 85, 134,
+ 5, -1, 35, -1, 82, -1, 22, -1, 74, 134,
+ 195, -1, 74, 134, 195, 3, -1, 64, 134, 3,
+ 3, -1, 90, 134, 3, -1, 32, 134, 3, -1,
+ 80, 134, 181, -1, 31, 134, 182, 5, 5, 3,
+ 3, -1, 86, 134, 165, -1, 87, 134, 3, -1,
+ 95, 134, 174, -1, 173, 175, 173, 176, -1, 173,
+ 173, -1, 173, 176, -1, 175, 173, -1, 175, 176,
+ -1, 65, 173, -1, 65, 176, -1, 176, -1, 73,
+ -1, 173, 175, -1, 173, -1, 175, -1, 65, -1,
+ -1, 184, 160, 185, -1, 185, -1, 177, 134, 159,
+ -1, 30, 134, 5, -1, 30, 134, 127, 5, -1,
+ 36, 134, 3, 3, -1, 123, 134, 3, -1, 53,
+ 134, 5, -1, 85, 134, 5, -1, 84, 134, 5,
+ -1, 27, 134, 178, 5, 5, -1, 35, -1, 82,
+ -1, 22, -1, 74, 134, 195, -1, 74, 134, 195,
+ 3, -1, 64, 134, 3, 3, -1, 90, 134, 3,
+ -1, 32, 134, 3, -1, 80, 134, 186, -1, 31,
+ 134, 187, 5, 5, 3, 3, -1, 86, 134, 165,
+ -1, 87, 134, 3, -1, 33, 134, 188, -1, 46,
+ 134, 190, -1, 26, 134, 192, -1, 173, 175, 173,
+ 176, -1, 173, 173, -1, 173, 176, -1, 175, 173,
+ -1, 175, 176, -1, 65, 173, -1, 65, 176, -1,
+ 176, -1, 73, -1, 173, 175, -1, 173, -1, 175,
+ -1, 65, -1, -1, 189, 131, 205, 132, 131, 203,
+ 132, -1, 59, -1, -1, 191, 131, 205, 132, 131,
+ 207, 132, 131, 165, 132, -1, 59, -1, -1, 193,
+ 131, 205, 132, 131, 207, 132, 131, 165, 132, -1,
59, -1, -1, 28, -1, 24, -1, 41, -1, 34,
- -1, 125, -1, 20, -1, 25, -1, 136, -1, 137,
- -1, 86, 162, 173, 163, 164, 154, -1, 32, 162,
- 173, 161, 165, 163, 164, 154, -1, 91, 162, 173,
- 161, 167, 161, 166, 163, 164, 154, -1, 76, 162,
- 173, 161, 173, 161, 167, 163, 164, 154, -1, 81,
- 162, 173, 161, 173, 163, 164, 154, -1, 31, 162,
- 173, 161, 167, 163, 164, 154, -1, 29, 162, 173,
- 161, 167, 163, 164, 154, -1, 28, 162, 173, 161,
- 167, 163, 164, 151, -1, 17, 162, 173, 161, 167,
- 161, 167, 163, 164, 151, -1, 17, 162, 173, 161,
- 167, 161, 167, 161, 204, 163, 164, 151, -1, 17,
- 162, 173, 161, 167, 161, 167, 161, 169, 163, 164,
- 151, -1, 33, 162, 173, 161, 166, 161, 166, 161,
- 3, 161, 167, 161, 167, 161, 3, 163, 164, 151,
- -1, 44, 162, 173, 161, 168, 161, 165, 163, 164,
- 151, -1, 44, 162, 173, 161, 168, 161, 168, 161,
- 165, 163, 164, 151, -1, 44, 162, 173, 161, 168,
- 161, 168, 161, 169, 161, 165, 163, 164, 151, -1,
- 44, 162, 173, 161, 168, 161, 168, 161, 208, 161,
- 165, 163, 164, 151, -1, 44, 162, 173, 161, 168,
- 161, 165, 163, 138, 139, 44, 162, 173, 161, 168,
- 161, 165, 163, -1, 46, 162, 173, 161, 166, 161,
- 166, 161, 3, 161, 168, 161, 168, 161, 3, 161,
- 165, 163, 164, 151, -1, 24, 162, 173, 161, 168,
- 161, 165, 163, 164, 151, -1, 80, 162, 173, 161,
- 168, 161, 165, 163, 164, 151, -1, 24, 162, 173,
- 161, 168, 161, 168, 161, 165, 163, 164, 151, -1,
- 24, 162, 173, 161, 168, 161, 168, 161, 208, 161,
- 165, 163, 164, 151, -1, 24, 162, 173, 161, 168,
- 161, 168, 161, 169, 161, 165, 163, 164, 151, -1,
- 24, 162, 173, 161, 168, 161, 165, 163, 138, 139,
- 24, 162, 173, 161, 168, 161, 165, 163, -1, 26,
- 162, 173, 161, 166, 161, 166, 161, 3, 161, 168,
- 161, 168, 161, 3, 161, 165, 163, 164, 151, -1,
- 64, 162, 173, 161, 173, 163, 164, 151, -1, 74,
- 162, 173, 163, 164, 151, -1, 28, 74, 162, 173,
- 163, 164, 151, -1, 24, 74, 162, 173, 163, 164,
- 151, -1, 41, 74, 162, 173, 163, 164, 151, -1,
- 34, 74, 162, 173, 163, 164, 151, -1, 125, 74,
- 162, 173, 163, 164, 151, -1, 20, 74, 162, 173,
- 163, 164, 151, -1, 25, 74, 162, 173, 163, 164,
- 151, -1, -1, 75, 200, 162, 202, 163, 164, 151,
- -1, 72, 162, 173, 161, 166, 161, 166, 163, 164,
- 151, -1, 72, 162, 173, 161, 166, 161, 166, 161,
- 206, 163, 164, 151, -1, 72, 162, 173, 161, 166,
- 161, 166, 161, 169, 163, 164, 151, -1, 48, 162,
- 163, 164, 151, -1, 86, 162, 173, 163, 164, 151,
- -1, -1, 86, 162, 173, 161, 5, 163, 201, 164,
- 151, -1, 32, 162, 173, 161, 165, 163, 164, 151,
- -1, 91, 162, 173, 161, 167, 161, 166, 163, 164,
- 151, -1, 76, 162, 173, 161, 173, 161, 167, 163,
- 164, 151, -1, 81, 162, 173, 161, 173, 163, 164,
- 151, -1, 31, 162, 173, 161, 167, 163, 164, 151,
- -1, 29, 162, 173, 161, 167, 163, 164, 151, -1,
- 202, 161, 203, -1, 203, -1, 173, -1, 204, 161,
- 205, -1, 205, -1, 167, -1, 206, 161, 207, -1,
- 207, -1, 166, -1, 208, 161, 209, -1, 209, -1,
- 167, 161, 167, -1, -1
+ -1, 124, -1, 20, -1, 25, -1, 135, -1, 136,
+ -1, 90, 161, 172, 160, 166, 160, 165, 162, 163,
+ 153, -1, 85, 161, 172, 162, 163, 153, -1, 80,
+ 161, 172, 160, 172, 162, 163, 153, -1, 31, 161,
+ 172, 160, 166, 162, 163, 153, -1, 76, 161, 172,
+ 160, 172, 160, 166, 162, 163, 153, -1, 29, 161,
+ 172, 160, 166, 162, 163, 153, -1, 32, 161, 172,
+ 160, 164, 162, 163, 153, -1, 28, 161, 172, 160,
+ 166, 162, 163, 150, -1, 29, 161, 172, 160, 166,
+ 162, 163, 150, -1, 44, 161, 172, 160, 167, 160,
+ 164, 162, 163, 150, -1, 24, 161, 172, 160, 167,
+ 160, 164, 162, 163, 150, -1, 79, 161, 172, 160,
+ 167, 160, 164, 162, 163, 150, -1, -1, 75, 199,
+ 161, 201, 162, 163, 150, -1, 64, 161, 172, 160,
+ 172, 162, 163, 150, -1, 90, 161, 172, 160, 166,
+ 160, 165, 162, 163, 150, -1, 85, 161, 172, 162,
+ 163, 150, -1, -1, 85, 161, 172, 160, 5, 162,
+ 200, 163, 150, -1, 74, 161, 172, 162, 163, 150,
+ -1, 28, 74, 161, 172, 162, 163, 150, -1, 24,
+ 74, 161, 172, 162, 163, 150, -1, 41, 74, 161,
+ 172, 162, 163, 150, -1, 34, 74, 161, 172, 162,
+ 163, 150, -1, 124, 74, 161, 172, 162, 163, 150,
+ -1, 20, 74, 161, 172, 162, 163, 150, -1, 25,
+ 74, 161, 172, 162, 163, 150, -1, 80, 161, 172,
+ 160, 172, 162, 163, 150, -1, 31, 161, 172, 160,
+ 166, 162, 163, 150, -1, 76, 161, 172, 160, 172,
+ 160, 166, 162, 163, 150, -1, 17, 161, 172, 160,
+ 166, 160, 166, 162, 163, 150, -1, 17, 161, 172,
+ 160, 166, 160, 166, 160, 203, 162, 163, 150, -1,
+ 17, 161, 172, 160, 166, 160, 166, 160, 168, 162,
+ 163, 150, -1, 44, 161, 172, 160, 167, 160, 167,
+ 160, 164, 162, 163, 150, -1, 44, 161, 172, 160,
+ 167, 160, 167, 160, 168, 160, 164, 162, 163, 150,
+ -1, 44, 161, 172, 160, 167, 160, 167, 160, 207,
+ 160, 164, 162, 163, 150, -1, 44, 161, 172, 160,
+ 167, 160, 164, 162, 137, 138, 44, 161, 172, 160,
+ 167, 160, 164, 162, -1, 24, 161, 172, 160, 167,
+ 160, 167, 160, 164, 162, 163, 150, -1, 24, 161,
+ 172, 160, 167, 160, 167, 160, 207, 160, 164, 162,
+ 163, 150, -1, 24, 161, 172, 160, 167, 160, 167,
+ 160, 168, 160, 164, 162, 163, 150, -1, 24, 161,
+ 172, 160, 167, 160, 164, 162, 137, 138, 24, 161,
+ 172, 160, 167, 160, 164, 162, -1, 33, 161, 172,
+ 160, 165, 160, 165, 160, 3, 160, 166, 160, 166,
+ 160, 3, 162, 163, 150, -1, 46, 161, 172, 160,
+ 165, 160, 165, 160, 3, 160, 167, 160, 167, 160,
+ 3, 160, 164, 162, 163, 150, -1, 26, 161, 172,
+ 160, 165, 160, 165, 160, 3, 160, 167, 160, 167,
+ 160, 3, 160, 164, 162, 163, 150, -1, 72, 161,
+ 172, 160, 165, 160, 165, 162, 163, 150, -1, 72,
+ 161, 172, 160, 165, 160, 165, 160, 205, 162, 163,
+ 150, -1, 72, 161, 172, 160, 165, 160, 165, 160,
+ 168, 162, 163, 150, -1, 48, 161, 162, 163, 150,
+ -1, 32, 161, 172, 160, 164, 162, 163, 150, -1,
+ 201, 160, 202, -1, 202, -1, 172, -1, 203, 160,
+ 204, -1, 204, -1, 166, -1, 205, 160, 206, -1,
+ 206, -1, 165, -1, 207, 160, 208, -1, 208, -1,
+ 166, 160, 166, -1, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 296, 296, 299, 300, 303, 304, 305, 307, 308,
- 310, 310, 311, 311, 312, 312, 314, 315, 316, 319,
- 320, 321, 322, 322, 325, 326, 326, 329, 330, 330,
- 331, 332, 332, 336, 337, 337, 338, 339, 339, 342,
- 343, 344, 347, 348, 351, 352, 355, 357, 358, 359,
- 360, 362, 363, 364, 365, 368, 369, 372, 373, 376,
- 377, 380, 381, 382, 385, 386, 389, 390, 391, 394,
- 395, 396, 397, 398, 399, 402, 409, 416, 423, 430,
- 437, 446, 449, 452, 455, 458, 471, 479, 487, 494,
- 502, 509, 517, 518, 519, 520, 521, 524, 525, 526,
- 527, 528, 529, 530, 531, 532, 533, 534, 535, 536,
- 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
- 547, 548, 549, 550, 551, 554, 555, 556, 557, 558,
- 559, 560, 561, 562, 563, 566, 567, 568, 571, 572,
- 573, 574, 575, 576, 577, 578, 579, 580, 583, 584,
- 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
- 595, 596, 597, 598, 599, 600, 601, 602, 603, 606,
- 607, 610, 615, 620, 625, 630, 631, 636, 641, 646,
- 651, 656, 657, 662, 667, 668, 672, 673, 682, 683,
- 684, 687, 694, 701, 708, 715, 722, 729, 736, 743,
- 752, 757, 762, 767, 774, 816, 817, 820, 821, 822,
- 826, 831, 832, 833, 834, 835, 837, 838, 839, 841,
- 842, 843, 844, 845, 846, 847, 854, 855, 856, 857,
- 858, 861, 868, 875, 882, 889, 896, 903, 910, 917,
- 926, 931, 936, 941, 948, 948, 949, 952, 952, 954,
- 957, 957, 959, 962, 1011, 1012, 1013, 1014, 1015, 1016,
- 1017, 1020, 1021, 1024, 1029, 1034, 1040, 1050, 1057, 1065,
- 1076, 1081, 1086, 1096, 1102, 1125, 1148, 1158, 1168, 1181,
- 1188, 1213, 1236, 1242, 1252, 1264, 1275, 1282, 1307, 1314,
- 1354, 1358, 1362, 1366, 1370, 1374, 1378, 1383, 1383, 1389,
- 1390, 1391, 1393, 1395, 1400, 1400, 1406, 1411, 1417, 1427,
- 1434, 1442, 1453, 1454, 1457, 1460, 1461, 1464, 1471, 1472,
- 1475, 1482, 1483, 1486, 1490
+ 0, 294, 294, 297, 298, 301, 302, 303, 305, 306,
+ 308, 308, 309, 309, 310, 310, 312, 313, 314, 317,
+ 318, 319, 320, 320, 323, 324, 324, 327, 328, 328,
+ 329, 330, 330, 334, 335, 335, 336, 337, 337, 340,
+ 341, 342, 345, 346, 349, 350, 353, 355, 356, 357,
+ 358, 360, 361, 362, 363, 366, 367, 370, 371, 374,
+ 375, 378, 379, 380, 383, 384, 387, 388, 389, 392,
+ 393, 394, 395, 396, 397, 400, 407, 414, 421, 428,
+ 435, 444, 447, 450, 453, 456, 469, 477, 485, 492,
+ 500, 507, 515, 516, 517, 518, 519, 522, 523, 524,
+ 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
+ 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
+ 545, 546, 547, 548, 549, 552, 553, 554, 555, 556,
+ 557, 558, 559, 560, 561, 564, 565, 566, 569, 570,
+ 571, 572, 573, 574, 575, 576, 577, 578, 581, 582,
+ 583, 584, 585, 586, 587, 588, 589, 590, 591, 592,
+ 593, 594, 595, 596, 597, 598, 599, 600, 601, 604,
+ 605, 608, 613, 618, 623, 628, 629, 634, 639, 644,
+ 649, 654, 655, 660, 665, 666, 670, 671, 680, 681,
+ 682, 685, 692, 699, 706, 713, 720, 727, 734, 741,
+ 750, 755, 760, 765, 772, 814, 815, 818, 819, 820,
+ 824, 829, 830, 831, 832, 833, 835, 836, 837, 839,
+ 840, 841, 842, 843, 844, 845, 852, 853, 854, 855,
+ 856, 859, 866, 873, 880, 887, 894, 901, 908, 915,
+ 924, 929, 934, 939, 946, 946, 947, 950, 950, 952,
+ 955, 955, 957, 960, 1009, 1010, 1011, 1012, 1013, 1014,
+ 1015, 1018, 1019, 1022, 1030, 1037, 1046, 1056, 1064, 1072,
+ 1081, 1088, 1096, 1119, 1142, 1151, 1151, 1159, 1167, 1175,
+ 1182, 1182, 1190, 1197, 1204, 1211, 1218, 1225, 1232, 1239,
+ 1246, 1255, 1265, 1273, 1280, 1290, 1298, 1308, 1318, 1330,
+ 1338, 1348, 1360, 1370, 1379, 1401, 1425, 1450, 1451, 1452,
+ 1454, 1456, 1465, 1466, 1469, 1472, 1473, 1476, 1483, 1484,
+ 1487, 1494, 1495, 1498, 1502
};
#endif
@@ -1008,15 +1005,15 @@ static const char *const yytname[] =
"HELIOECLIPTIC_", "HIGHLITE_", "ICRS_", "IGNORE_", "IMAGE_", "INCLUDE_",
"J2000_", "KEY_", "LINE_", "LINEAR_", "MOVE_", "N_", "NO_", "OFF_",
"ON_", "PHYSICAL_", "PIE_", "PIXELS_", "POINT_", "POLYGON_",
- "PROJECTION_", "PROJECTION3D_", "PROPERTY_", "ROTATE_", "ROTBOX_",
- "RULER_", "SELECT_", "SOURCE_", "SUPERGALACTIC_", "TAG_", "TEXT_",
- "TEXTANGLE_", "TEXTROTATE_", "TILE_", "TRUE_", "VECTOR_", "VERSION_",
- "UNHIGHLITE_", "UNSELECT_", "UPDATE_", "WCS_", "WCSA_", "WCSB_", "WCSC_",
- "WCSD_", "WCSE_", "WCSF_", "WCSG_", "WCSH_", "WCSI_", "WCSJ_", "WCSK_",
- "WCSL_", "WCSM_", "WCSN_", "WCSO_", "WCSP_", "WCSQ_", "WCSR_", "WCSS_",
- "WCST_", "WCSU_", "WCSV_", "WCSW_", "WCSX_", "WCSY_", "WCSZ_", "WCS0_",
- "WIDTH_", "X_", "Y_", "YES_", "'#'", "'\\n'", "';'", "','", "'('", "')'",
- "'|'", "'='", "'+'", "'-'", "'&'", "'!'", "$accept", "start", "commands",
+ "PROJECTION_", "PROPERTY_", "ROTATE_", "ROTBOX_", "RULER_", "SELECT_",
+ "SOURCE_", "SUPERGALACTIC_", "TAG_", "TEXT_", "TEXTANGLE_",
+ "TEXTROTATE_", "TILE_", "TRUE_", "VECTOR_", "VERSION_", "UNHIGHLITE_",
+ "UNSELECT_", "UPDATE_", "WCS_", "WCSA_", "WCSB_", "WCSC_", "WCSD_",
+ "WCSE_", "WCSF_", "WCSG_", "WCSH_", "WCSI_", "WCSJ_", "WCSK_", "WCSL_",
+ "WCSM_", "WCSN_", "WCSO_", "WCSP_", "WCSQ_", "WCSR_", "WCSS_", "WCST_",
+ "WCSU_", "WCSV_", "WCSW_", "WCSX_", "WCSY_", "WCSZ_", "WCS0_", "WIDTH_",
+ "X_", "Y_", "YES_", "'#'", "'\\n'", "';'", "','", "'('", "')'", "'|'",
+ "'='", "'+'", "'-'", "'&'", "'!'", "$accept", "start", "commands",
"command", "@1", "@2", "@3", "hash", "@4", "comment", "@5",
"shapeComment", "@6", "@7", "nonshapeComment", "@8", "@9", "terminator",
"numeric", "debug", "yesno", "sp", "bp", "ep", "conjuction", "optangle",
@@ -1025,7 +1022,7 @@ static const char *const yytname[] =
"callBack", "global", "globalProperty", "globalRuler", "globalCompass",
"initGlobal", "local", "localProperty", "localRuler", "localCompass",
"localCpanda", "@10", "localEpanda", "@11", "localBpanda", "@12",
- "initLocal", "pointProp", "include", "nonshape", "shape", "@13", "@14",
+ "initLocal", "pointShape", "include", "nonshape", "shape", "@13", "@14",
"polyNodes", "polyNode", "aRads", "aRad", "aAngs", "aAng", "vRads",
"vRad", "postLocal", 0
};
@@ -1048,47 +1045,47 @@ static const yytype_uint16 yytoknum[] =
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
- 375, 376, 377, 378, 379, 380, 381, 382, 35, 10,
- 59, 44, 40, 41, 124, 61, 43, 45, 38, 33
+ 375, 376, 377, 378, 379, 380, 381, 35, 10, 59,
+ 44, 40, 41, 124, 61, 43, 45, 38, 33
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 140, 141, 142, 142, 143, 143, 143, 143, 143,
- 144, 143, 145, 143, 146, 143, 143, 143, 143, 147,
- 147, 147, 148, 147, 149, 150, 149, 151, 152, 151,
- 151, 153, 151, 154, 155, 154, 154, 156, 154, 157,
- 157, 157, 158, 158, 159, 159, 160, 160, 160, 160,
- 160, 160, 160, 160, 160, 161, 161, 162, 162, 163,
- 163, 164, 164, 164, 165, 165, 166, 166, 166, 167,
- 167, 167, 167, 167, 167, 168, 168, 168, 168, 168,
- 168, 169, 170, 171, 172, 173, 173, 173, 173, 173,
- 173, 173, 174, 174, 174, 174, 174, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
- 175, 175, 175, 175, 175, 176, 176, 176, 176, 176,
- 176, 176, 176, 176, 176, 177, 177, 177, 178, 178,
- 178, 178, 178, 178, 178, 178, 178, 178, 179, 179,
- 179, 179, 179, 179, 179, 179, 179, 179, 179, 179,
- 179, 179, 179, 179, 179, 179, 179, 179, 179, 180,
+ 0, 139, 140, 141, 141, 142, 142, 142, 142, 142,
+ 143, 142, 144, 142, 145, 142, 142, 142, 142, 146,
+ 146, 146, 147, 146, 148, 149, 148, 150, 151, 150,
+ 150, 152, 150, 153, 154, 153, 153, 155, 153, 156,
+ 156, 156, 157, 157, 158, 158, 159, 159, 159, 159,
+ 159, 159, 159, 159, 159, 160, 160, 161, 161, 162,
+ 162, 163, 163, 163, 164, 164, 165, 165, 165, 166,
+ 166, 166, 166, 166, 166, 167, 167, 167, 167, 167,
+ 167, 168, 169, 170, 171, 172, 172, 172, 172, 172,
+ 172, 172, 173, 173, 173, 173, 173, 174, 174, 174,
+ 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
+ 174, 174, 174, 174, 174, 174, 174, 174, 174, 174,
+ 174, 174, 174, 174, 174, 175, 175, 175, 175, 175,
+ 175, 175, 175, 175, 175, 176, 176, 176, 177, 177,
+ 177, 177, 177, 177, 177, 177, 177, 177, 178, 178,
+ 178, 178, 178, 178, 178, 178, 178, 178, 178, 178,
+ 178, 178, 178, 178, 178, 178, 178, 178, 178, 179,
+ 179, 180, 180, 180, 180, 180, 180, 180, 180, 180,
+ 180, 180, 180, 180, 180, 180, 180, 180, 180, 180,
180, 181, 181, 181, 181, 181, 181, 181, 181, 181,
- 181, 181, 181, 181, 181, 181, 181, 181, 181, 181,
- 181, 182, 182, 182, 182, 182, 182, 182, 182, 182,
- 183, 183, 183, 183, 184, 185, 185, 186, 186, 186,
- 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
- 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
- 186, 187, 187, 187, 187, 187, 187, 187, 187, 187,
- 188, 188, 188, 188, 190, 189, 189, 192, 191, 191,
- 194, 193, 193, 195, 196, 196, 196, 196, 196, 196,
- 196, 197, 197, 198, 198, 198, 198, 198, 198, 198,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 200, 199, 199,
- 199, 199, 199, 199, 201, 199, 199, 199, 199, 199,
- 199, 199, 202, 202, 203, 204, 204, 205, 206, 206,
- 207, 208, 208, 209, 210
+ 182, 182, 182, 182, 183, 184, 184, 185, 185, 185,
+ 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
+ 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
+ 185, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 187, 187, 187, 187, 189, 188, 188, 191, 190, 190,
+ 193, 192, 192, 194, 195, 195, 195, 195, 195, 195,
+ 195, 196, 196, 197, 197, 197, 197, 197, 197, 197,
+ 198, 198, 198, 198, 198, 199, 198, 198, 198, 198,
+ 200, 198, 198, 198, 198, 198, 198, 198, 198, 198,
+ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
+ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
+ 198, 198, 201, 201, 202, 203, 203, 204, 205, 205,
+ 206, 207, 207, 208, 209
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1120,12 +1117,12 @@ static const yytype_uint8 yyr2[] =
3, 4, 2, 2, 2, 2, 2, 2, 1, 1,
2, 1, 1, 1, 0, 7, 1, 0, 10, 1,
0, 10, 1, 0, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 6, 8, 10, 10, 8, 8, 8,
- 8, 10, 12, 12, 18, 10, 12, 14, 14, 18,
- 20, 10, 10, 12, 14, 14, 18, 20, 8, 6,
- 7, 7, 7, 7, 7, 7, 7, 0, 7, 10,
- 12, 12, 5, 6, 0, 9, 8, 10, 10, 8,
- 8, 8, 3, 1, 1, 3, 1, 1, 3, 1,
+ 1, 1, 1, 10, 6, 8, 8, 10, 8, 8,
+ 8, 8, 10, 10, 10, 0, 7, 8, 10, 6,
+ 0, 9, 6, 7, 7, 7, 7, 7, 7, 7,
+ 8, 8, 10, 10, 12, 12, 12, 14, 14, 18,
+ 12, 14, 14, 18, 18, 20, 20, 10, 12, 12,
+ 5, 8, 3, 1, 1, 3, 1, 1, 3, 1,
1, 3, 1, 3, 0
};
@@ -1145,7 +1142,7 @@ static const yytype_uint16 yydefact[] =
0, 0, 0, 0, 0, 0, 55, 170, 24, 9,
0, 2, 41, 39, 40, 4, 24, 24, 57, 0,
57, 0, 57, 57, 57, 57, 57, 57, 0, 0,
- 57, 57, 57, 57, 57, 57, 297, 57, 57, 57,
+ 57, 57, 57, 57, 57, 57, 275, 57, 57, 57,
57, 57, 0, 22, 261, 262, 0, 16, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 25, 56, 8, 0, 15, 3, 11,
@@ -1172,7 +1169,7 @@ static const yytype_uint16 yydefact[] =
0, 89, 91, 90, 88, 85, 86, 87, 72, 73,
74, 70, 71, 69, 55, 61, 61, 55, 55, 55,
55, 55, 55, 55, 61, 55, 61, 59, 59, 59,
- 59, 65, 55, 61, 61, 55, 55, 63, 28, 302,
+ 59, 65, 55, 61, 61, 55, 55, 63, 28, 310,
27, 59, 55, 324, 0, 61, 55, 55, 59, 59,
324, 55, 61, 0, 0, 64, 0, 0, 61, 0,
0, 191, 0, 324, 324, 0, 0, 0, 0, 0,
@@ -1180,44 +1177,44 @@ static const yytype_uint16 yydefact[] =
324, 324, 64, 0, 218, 0, 0, 0, 0, 0,
0, 216, 0, 0, 0, 0, 0, 0, 217, 0,
0, 0, 0, 0, 0, 0, 0, 55, 206, 61,
- 0, 289, 312, 324, 0, 64, 61, 304, 303, 0,
+ 0, 282, 312, 324, 0, 64, 61, 280, 279, 0,
324, 59, 59, 59, 55, 59, 324, 55, 187, 55,
- 295, 291, 78, 79, 80, 76, 77, 75, 67, 66,
- 59, 55, 296, 55, 290, 324, 324, 324, 324, 55,
- 293, 292, 59, 55, 55, 250, 0, 0, 0, 0,
+ 288, 284, 78, 79, 80, 76, 77, 75, 67, 66,
+ 59, 55, 289, 55, 283, 324, 324, 324, 324, 55,
+ 286, 285, 59, 55, 55, 250, 0, 0, 0, 0,
244, 0, 247, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 324, 0, 0, 0, 30, 324, 55,
- 298, 59, 59, 324, 61, 59, 294, 61, 61, 61,
- 0, 61, 263, 0, 55, 33, 0, 0, 61, 61,
- 64, 0, 270, 311, 310, 306, 0, 61, 64, 0,
+ 276, 59, 59, 324, 61, 59, 287, 61, 61, 61,
+ 0, 61, 264, 0, 55, 33, 0, 0, 61, 61,
+ 64, 0, 270, 271, 291, 311, 0, 61, 64, 0,
252, 230, 0, 0, 163, 161, 156, 0, 166, 150,
167, 153, 165, 159, 148, 162, 151, 149, 168, 164,
0, 208, 0, 243, 241, 242, 0, 223, 246, 228,
0, 0, 249, 229, 0, 212, 0, 219, 0, 239,
0, 0, 238, 224, 214, 213, 226, 227, 222, 211,
- 29, 207, 324, 205, 288, 0, 61, 61, 61, 309,
+ 29, 207, 324, 205, 277, 0, 61, 61, 61, 290,
324, 61, 324, 324, 324, 59, 324, 324, 0, 36,
59, 0, 317, 59, 55, 316, 324, 0, 324, 72,
69, 59, 55, 55, 55, 322, 55, 55, 0, 324,
59, 55, 55, 55, 0, 155, 152, 158, 157, 154,
160, 0, 209, 240, 0, 0, 210, 0, 221, 220,
236, 237, 232, 0, 233, 234, 235, 32, 320, 59,
- 59, 319, 324, 324, 324, 305, 324, 269, 268, 264,
- 61, 267, 35, 324, 61, 0, 61, 0, 61, 271,
- 0, 281, 61, 0, 64, 64, 0, 0, 0, 275,
+ 59, 319, 324, 324, 324, 281, 324, 268, 266, 269,
+ 61, 265, 35, 324, 61, 0, 61, 0, 61, 293,
+ 0, 273, 61, 0, 64, 64, 0, 0, 0, 272,
61, 64, 64, 0, 55, 215, 0, 55, 55, 0,
- 61, 0, 61, 299, 308, 282, 307, 324, 38, 324,
+ 61, 0, 61, 307, 292, 274, 278, 324, 38, 324,
81, 324, 315, 324, 57, 324, 323, 59, 59, 321,
55, 55, 57, 324, 59, 59, 55, 0, 0, 0,
- 0, 231, 324, 318, 324, 266, 265, 273, 272, 0,
- 283, 61, 61, 0, 0, 0, 276, 61, 61, 0,
- 0, 225, 0, 0, 301, 300, 55, 324, 324, 55,
- 55, 55, 324, 324, 55, 55, 55, 55, 0, 285,
- 284, 0, 0, 0, 277, 278, 0, 0, 0, 245,
+ 0, 231, 324, 318, 324, 267, 263, 295, 294, 0,
+ 300, 61, 61, 0, 0, 0, 296, 61, 61, 0,
+ 0, 225, 0, 0, 309, 308, 55, 324, 324, 55,
+ 55, 55, 324, 324, 55, 55, 55, 55, 0, 302,
+ 301, 0, 0, 0, 297, 298, 0, 0, 0, 245,
0, 55, 55, 59, 55, 55, 0, 0, 64, 64,
61, 64, 64, 0, 0, 59, 59, 324, 59, 59,
- 251, 248, 286, 61, 274, 279, 61, 324, 324, 287,
- 280
+ 251, 248, 303, 61, 304, 299, 61, 324, 324, 306,
+ 305
};
/* YYDEFGOTO[NTERM-NUM]. */
@@ -1235,105 +1232,105 @@ static const yytype_int16 yydefgoto[] =
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -676
+#define YYPACT_NINF -615
static const yytype_int16 yypact[] =
{
- -676, 63, 1543, -676, -676, -676, 33, -676, -676, -676,
- -676, -676, -676, 1011, -676, -676, -676, -676, -676, -676,
- -676, 68, -676, -676, -676, -676, -676, -676, -676, -676,
- -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
- -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
- -676, 1372, 38, -676, -676, -676, 1149, -676, -676, -676,
- -676, -102, -47, -42, -39, -17, -676, -676, -676, -13,
- -676, -676, 0, -676, 1, -676, 4, -676, 16, 37,
- 44, 47, 48, 51, 61, 65, 123, -676, 70, -676,
- 38, -676, -676, -676, -676, -676, 70, 70, 69, 137,
- -40, 145, 69, -38, 69, 69, 69, 69, 150, 151,
- 69, 69, 69, 69, 69, 69, -676, 69, 69, 69,
- 69, 69, 154, 261, -676, -676, 760, -676, 24, 1982,
- 226, 229, 231, 240, 305, 1658, 243, 301, 252, 258,
- 2436, 260, 140, -676, -676, -676, 1011, -676, -676, -676,
- -676, -676, 472, 69, 69, 472, 69, 472, 69, 472,
- 472, 472, 472, 472, 69, 69, 472, 472, 131, 472,
- 472, 472, 69, 472, 472, 472, 472, 472, 69, 69,
- 69, 69, 69, 69, 69, 262, 69, -676, 272, 19,
- -676, -676, -676, 274, -676, 577, -676, 275, -676, 267,
- -676, 285, -676, -676, -676, -676, -676, -676, -676, 288,
- -676, -676, -676, 2198, -676, 1874, 2198, -676, -676, -676,
- -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
- -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
- 290, -676, 166, 166, 166, -676, -676, -676, 166, 166,
- 166, 166, 166, 472, 472, 166, 472, 166, 472, 166,
- 166, 166, 166, 166, 472, 472, 166, 166, -676, 164,
- 166, 166, 131, 472, 166, 166, 166, 14, 166, 472,
- 472, 472, 472, 472, 472, 472, -676, 472, -676, -676,
- -676, -676, 297, -676, -676, -676, -676, -676, -676, 2306,
- -676, -676, -676, -676, 303, 293, 302, 103, 300, 309,
- 309, 358, 131, 131, 457, 131, 301, 131, 358, 358,
- 358, 301, 301, 131, 131, 457, 301, 180, 191, 472,
- 301, 164, -676, 84, -676, 472, 457, 472, 319, 164,
- 358, 131, 166, 166, 166, 166, 166, 131, 166, 323,
- 36, -676, -676, -676, -676, -676, -676, -676, -676, -676,
- -676, -676, -676, -676, 166, 164, 164, 166, 166, 166,
- 166, 166, 166, 166, 164, 166, 164, 131, 131, 131,
- 131, -676, 166, 164, 164, 166, 166, -676, 2308, -676,
- -676, 131, 166, 191, 472, 164, 166, 166, 131, 131,
- 191, 166, 164, 358, 358, 301, 472, 472, 164, 358,
- 324, -676, 358, 191, 191, 325, 327, 331, 326, 330,
- 103, 532, 191, 301, 191, 164, 164, 164, 164, 301,
- 191, 191, 532, 301, -676, 208, 210, 216, 218, 219,
- 222, -39, 223, 224, 225, 228, 237, 238, 16, 241,
- 245, 255, 257, 259, 264, 370, 266, 30, -676, 164,
- 301, -676, -676, 191, 358, 301, 164, -676, -676, 301,
- 191, 131, 131, 131, 166, 131, 1491, 166, -676, 84,
- -676, -676, -676, -676, -676, -676, -676, -676, 22, 23,
- 131, 166, -676, 166, -676, 191, 191, 191, 191, 166,
- -676, -676, 131, 166, 166, 328, 2407, 27, 2090, 392,
- 337, 397, 347, 404, 407, 305, 1766, 406, 409, 301,
- 412, 413, 416, -676, 140, 415, 2308, -676, 191, 84,
- -676, 131, 131, 191, 164, 131, -676, 164, 164, 164,
- 358, 164, -676, 417, 75, -676, 301, 375, 164, -76,
- 265, 418, -676, -676, -676, -676, 420, -74, 265, 428,
- -676, -676, 304, 35, -676, -676, -676, 55, -676, -676,
- -676, -676, -676, -676, -676, -676, -676, -676, -676, -676,
- 427, -676, 429, -676, 577, -676, 430, -676, -676, -676,
- 306, 434, -676, -676, 308, -676, 438, 441, 2198, -676,
- 1874, 2198, -676, -676, -676, -676, -676, -676, -676, -676,
- -676, -676, -676, -676, -676, 234, 164, 164, 164, -676,
- 191, 164, 1491, 1491, 1491, 131, 1491, -676, 442, -676,
- 131, 311, -676, 131, 84, -676, 191, 310, 191, 116,
- 188, 131, 166, 166, 166, -676, 166, 166, 315, 191,
- 131, 166, 166, 166, 301, -676, -676, -676, -676, -676,
- -676, 443, -676, -676, 445, 301, -676, 301, -676, -676,
- -676, -676, -676, 2306, -676, -676, -676, -676, -676, 131,
- 66, -676, 191, 191, 191, -676, 191, -676, -676, -676,
- 164, -676, -676, -676, 164, 454, 164, 358, 164, -676,
- 435, -676, 164, 358, 301, 614, 457, 358, 426, -676,
- 164, 301, 614, 457, -93, -676, 459, -7, -6, 36,
- 164, 301, 164, -676, -676, -676, -676, 1491, -676, 1491,
- -676, 191, -676, 191, 69, 191, -676, 131, 131, -676,
- 166, 166, 69, 191, 131, 131, 166, 339, 469, 341,
- 345, -676, 191, -676, 191, -676, -676, -676, -676, 472,
- -676, 164, 164, 457, 358, 472, -676, 164, 164, 457,
- 358, -676, 358, 358, -676, -676, 166, 191, 191, 166,
- 166, 166, 191, 191, 166, 9, 13, 62, 457, -676,
- -676, 476, 478, 457, -676, -676, 484, 356, 358, -676,
- 357, 166, 166, 131, 166, 166, 301, 301, 301, 301,
- 164, 301, 301, 359, 360, 131, 131, 191, 131, 131,
- -676, -676, -676, 164, -676, -676, 164, 191, 191, -676,
- -676
+ -615, 60, 1544, -615, -615, -615, 50, -615, -615, -615,
+ -615, -615, -615, 2401, -615, -615, -615, -615, -615, -615,
+ -615, 47, -615, -615, -615, -615, -615, -615, -615, -615,
+ -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+ -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+ -615, 1372, 39, -615, -615, -615, 1150, -615, -615, -615,
+ -615, -63, -56, -39, -35, -31, -615, -615, -615, -28,
+ -615, -615, 5, -615, 6, -615, 17, -615, 20, 38,
+ 45, 53, 67, 76, 80, 81, 123, -615, -13, -615,
+ 39, -615, -615, -615, -615, -615, -13, -13, 16, 126,
+ -27, 145, 16, -26, 16, 16, 16, 16, 146, 148,
+ 16, 16, 16, 16, 16, 16, -615, 16, 16, 16,
+ 16, 16, 150, 403, -615, -615, 753, -615, 33, 1979,
+ 222, 226, 225, 229, 93, 1658, 231, 119, 251, 252,
+ 2430, 258, 139, -615, -615, -615, 2401, -615, -615, -615,
+ -615, -615, 518, 16, 16, 518, 16, 518, 16, 518,
+ 518, 518, 518, 518, 16, 16, 518, 518, 131, 518,
+ 518, 518, 16, 518, 518, 518, 518, 518, 16, 16,
+ 16, 16, 16, 16, 16, 263, 16, -615, 262, 261,
+ -615, -615, -615, 274, -615, 578, -615, 275, -615, 265,
+ -615, 268, -615, -615, -615, -615, -615, -615, -615, 285,
+ -615, -615, -615, 2193, -615, 1872, 2193, -615, -615, -615,
+ -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+ -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+ 286, -615, 165, 165, 165, -615, -615, -615, 165, 165,
+ 165, 165, 165, 518, 518, 165, 518, 165, 518, 165,
+ 165, 165, 165, 165, 518, 518, 165, 165, -615, 164,
+ 165, 165, 131, 518, 165, 165, 165, 14, 165, 518,
+ 518, 518, 518, 518, 518, 518, -615, 518, -615, -615,
+ -615, -615, 293, -615, -615, -615, -615, -615, -615, 2300,
+ -615, -615, -615, -615, 296, 294, 292, 125, 302, 291,
+ 291, 358, 131, 131, 375, 131, 119, 131, 358, 358,
+ 358, 119, 119, 131, 131, 375, 119, 185, 198, 518,
+ 119, 164, -615, 116, -615, 518, 375, 518, 321, 164,
+ 358, 131, 165, 165, 165, 165, 165, 131, 165, 324,
+ 97, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+ -615, -615, -615, -615, 165, 164, 164, 165, 165, 165,
+ 165, 165, 165, 165, 164, 165, 164, 131, 131, 131,
+ 131, -615, 165, 164, 164, 165, 165, -615, 2302, -615,
+ -615, 131, 165, 198, 518, 164, 165, 165, 131, 131,
+ 198, 165, 164, 358, 358, 119, 518, 518, 164, 358,
+ 326, -615, 358, 198, 198, 333, 332, 334, 335, 331,
+ 125, 659, 198, 119, 198, 164, 164, 164, 164, 119,
+ 198, 198, 659, 119, -615, 213, 216, 218, 219, 220,
+ 223, -35, 224, 238, 239, 241, 242, 253, 20, 256,
+ 260, 264, 267, 272, 276, 354, 277, 75, -615, 164,
+ 119, -615, -615, 198, 358, 119, 164, -615, -615, 119,
+ 198, 131, 131, 131, 165, 131, 1490, 165, -615, 116,
+ -615, -615, -615, -615, -615, -615, -615, -615, 22, 29,
+ 131, 165, -615, 165, -615, 198, 198, 198, 198, 165,
+ -615, -615, 131, 165, 165, 301, 1017, 34, 2086, 360,
+ 336, 389, 337, 392, 396, 93, 1765, 395, 404, 119,
+ 411, 412, 413, -615, 139, 414, 2302, -615, 198, 116,
+ -615, 131, 131, 198, 164, 131, -615, 164, 164, 164,
+ 358, 164, -615, 415, 83, -615, 119, 313, 164, -71,
+ 266, 418, -615, -615, -615, -615, 419, -64, 266, 420,
+ -615, -615, 299, -8, -615, -615, -615, 58, -615, -615,
+ -615, -615, -615, -615, -615, -615, -615, -615, -615, -615,
+ 426, -615, 431, -615, 578, -615, 432, -615, -615, -615,
+ 307, 437, -615, -615, 310, -615, 439, 441, 2193, -615,
+ 1872, 2193, -615, -615, -615, -615, -615, -615, -615, -615,
+ -615, -615, -615, -615, -615, 234, 164, 164, 164, -615,
+ 198, 164, 1490, 1490, 1490, 131, 1490, -615, 442, -615,
+ 131, 312, -615, 131, 116, -615, 198, 311, 198, 180,
+ 203, 131, 165, 165, 165, -615, 165, 165, 316, 198,
+ 131, 165, 165, 165, 119, -615, -615, -615, -615, -615,
+ -615, 443, -615, -615, 445, 119, -615, 119, -615, -615,
+ -615, -615, -615, 2300, -615, -615, -615, -615, -615, 131,
+ 23, -615, 198, 198, 198, -615, 198, -615, -615, -615,
+ 164, -615, -615, -615, 164, 454, 164, 358, 164, -615,
+ 435, -615, 164, 358, 119, 678, 375, 358, 416, -615,
+ 164, 119, 678, 375, -96, -615, 458, -58, -53, 97,
+ 164, 119, 164, -615, -615, -615, -615, 1490, -615, 1490,
+ -615, 198, -615, 198, 16, 198, -615, 131, 131, -615,
+ 165, 165, 16, 198, 131, 131, 165, 339, 459, 340,
+ 341, -615, 198, -615, 198, -615, -615, -615, -615, 518,
+ -615, 164, 164, 375, 358, 518, -615, 164, 164, 375,
+ 358, -615, 358, 358, -615, -615, 165, 198, 198, 165,
+ 165, 165, 198, 198, 165, -20, 13, 66, 375, -615,
+ -615, 460, 462, 375, -615, -615, 463, 342, 358, -615,
+ 344, 165, 165, 131, 165, 165, 119, 119, 119, 119,
+ 164, 119, 119, 345, 346, 131, 131, 198, 131, 131,
+ -615, -615, -615, 164, -615, -615, 164, 198, 198, -615,
+ -615
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -676, -676, -676, 440, -676, -676, -676, -676, -676, 32,
- -676, 608, -676, -676, -507, -676, -676, 408, 183, -676,
- -24, -86, -97, 586, 585, -356, -95, -170, -324, -511,
- 198, -676, -197, 591, -83, 367, -104, -172, -9, -676,
- -676, 364, -676, -676, -676, 124, -15, -676, -676, -676,
- -676, -676, -676, -676, -676, -676, -1, 393, 332, 396,
- -676, -676, -676, 130, -247, -171, -588, -193, -547, -675,
+ -615, -615, -615, 417, -615, -615, -615, -615, -615, -33,
+ -615, 608, -615, -615, -530, -615, -615, 377, 183, -615,
+ -48, -86, -97, 586, 585, -356, -95, -170, -324, -513,
+ 173, -615, -127, 591, -83, 347, -104, -172, -9, -615,
+ -615, 338, -615, -615, -615, 94, -41, -615, -615, -615,
+ -615, -615, -615, -615, -615, -615, -29, 366, 303, 372,
+ -615, -615, -615, 106, -266, -190, -614, -211, -547, -605,
-49
};
@@ -1346,73 +1343,73 @@ static const yytype_int16 yytable[] =
{
146, 385, 91, 155, 85, 157, 159, 160, 161, 162,
163, 652, 397, 166, 167, 168, 169, 170, 171, -55,
- 173, 174, 175, 176, 177, 196, -55, -55, -55, 192,
- 739, 216, 581, 128, 154, -31, 158, 739, 144, 643,
- 747, 297, 225, 300, 302, -324, 195, 651, 179, 473,
- 180, 181, 215, 92, 210, 211, 253, 254, 327, 256,
- 327, 258, 637, 3, 648, 490, 714, 264, 265, -55,
- -55, 89, -55, -55, 212, 273, 502, 717, 655, 718,
- -37, 279, 280, 281, 282, 283, 284, 285, 129, 287,
- -324, 291, 151, 130, 151, 182, -140, 491, 658, -59,
- 183, 656, 57, 58, 679, 184, 220, 221, 503, 532,
- 186, 299, 356, 357, 657, 687, 688, 689, 131, 691,
- 147, 659, 132, 739, 144, 144, 749, 750, 149, 150,
- 296, -67, 298, 301, 660, 133, 134, 85, -24, 135,
- 144, 364, 797, 230, 144, 144, 799, 268, 377, 378,
- 379, -147, 193, 144, 144, 582, 304, 305, 306, -324,
- -324, 144, 307, 308, 309, 310, 311, 93, 94, 314,
+ 173, 174, 175, 176, 177, 196, -55, -55, -55, -55,
+ -55, 216, -55, -55, 144, 655, 747, 643, 192, 581,
+ 714, 297, 225, 300, 302, 651, 195, 154, 158, 473,
+ 89, 717, 215, 718, 92, 147, 253, 254, 656, 256,
+ 3, 258, 327, 149, 150, 490, 637, 264, 265, 327,
+ 657, 128, 144, 648, 749, 273, 502, 144, 129, 750,
+ -31, 279, 280, 281, 282, 283, 284, 285, -37, 287,
+ -324, 291, 687, 688, 689, 130, 691, 491, -324, -140,
+ 739, 658, 679, 131, 151, 151, 132, 739, 503, 532,
+ 144, 299, 797, 202, 143, 210, 211, 203, 204, 57,
+ 58, 205, 220, 221, 659, 222, 223, 206, 220, 221,
+ 296, -59, 298, 301, 207, 212, 660, 85, -24, 133,
+ 134, 364, 230, 144, 144, 799, 268, 151, 377, 378,
+ 379, 135, 144, 144, -147, 268, 304, 305, 306, 144,
+ 193, 582, 307, 308, 309, 310, 311, 93, 94, 314,
401, 316, 136, 318, 319, 320, 321, 322, 411, 137,
- 325, 326, 138, 139, 329, 330, 140, 231, 335, 336,
- 337, 338, 340, 144, 641, 800, 141, 144, 143, 268,
- 142, 151, 650, -66, -324, -324, 144, 232, 233, 234,
- 235, 153, -59, -59, -59, 144, 350, 268, -59, 156,
- 755, 375, 756, 785, 164, 165, 787, 382, 178, 198,
- 236, 386, 199, 471, 472, 392, 200, 220, 221, 477,
- 222, 223, 479, 201, -67, -67, -67, 394, 219, -67,
- -67, 143, -24, -24, 144, 226, 403, 404, 405, 406,
- 407, 227, 409, 229, 268, 286, 237, 238, 220, 221,
- 293, 639, 223, 359, 360, 361, 362, 288, 412, 290,
- 292, 415, 416, 417, 418, 419, 420, 421, 294, 423,
- 179, 295, 180, 181, 531, 303, 429, 144, 327, 432,
- 433, 631, 349, 352, 220, 221, 460, 222, 223, 351,
- 464, 465, 245, 353, 387, 469, -66, -66, -66, 388,
- 224, -66, -66, 247, 399, 202, 410, 478, 493, 203,
- 204, 482, 631, 205, 499, 483, 485, 182, 504, 206,
- 484, 486, 183, 505, 602, 506, 207, 184, 737, 738,
- 185, 507, 186, 508, 509, 744, 745, 510, 511, 512,
- 513, 220, 221, 514, 358, 529, 359, 360, 361, 362,
- 625, 526, 515, 516, 535, 523, 517, 632, 220, 221,
- 518, 358, 740, 359, 360, 361, 362, 560, 540, 746,
- 519, 546, 520, 547, 521, 587, 588, 124, 125, 522,
- 591, 524, 415, 420, 585, 550, 592, 551, 527, 595,
- 596, 604, 601, 556, 605, 607, 608, 558, 559, 609,
- 612, 646, 627, 647, 606, 584, 671, 545, 674, 676,
- 208, 653, 661, 600, 662, 664, 654, 666, 665, 779,
- 667, 668, 631, 615, 669, 784, 695, 693, 715, 700,
+ 325, 326, 356, 357, 329, 330, 231, 138, 335, 336,
+ 337, 338, 340, 739, 641, -67, 144, 755, 800, 756,
+ 153, 139, 650, -324, -324, 144, 232, 233, 234, 235,
+ 140, -324, -324, 144, 141, 142, 350, 208, -66, 156,
+ 164, 375, 165, 785, 178, 198, 787, 382, 236, 199,
+ 200, 386, 201, 471, 472, 392, 219, 220, 221, 477,
+ 222, 223, 479, -59, -59, -59, 144, 394, 268, -59,
+ 143, -24, -24, 144, 226, 227, 403, 404, 405, 406,
+ 407, 229, 409, 268, 237, 238, 286, 288, 293, 220,
+ 221, 294, 639, 223, 359, 360, 361, 362, 412, 290,
+ 292, 415, 416, 417, 418, 419, 420, 421, 295, 423,
+ 179, 303, 180, 181, 531, 144, 429, 327, 349, 432,
+ 433, 631, 351, 353, 352, 247, 460, -67, -67, -67,
+ 464, 465, -67, -67, 245, 469, 220, 221, 387, 358,
+ 224, 359, 360, 361, 362, 388, 399, 410, 493, 478,
+ -66, -66, -66, 631, 499, -66, -66, 182, 504, 482,
+ 483, 183, 486, 484, 602, 485, 184, 505, 737, 738,
+ 506, 186, 507, 508, 509, 744, 745, 510, 511, 523,
+ 560, 220, 221, 587, 358, 529, 359, 360, 361, 362,
+ 625, 526, 512, 513, 535, 514, 515, 632, 220, 221,
+ 631, 367, 740, 368, 369, 370, 371, 516, 540, 746,
+ 517, 546, 591, 547, 518, 588, 592, 595, 519, 596,
+ 604, 520, 415, 420, 585, 550, 521, 551, 527, 605,
+ 522, 524, 601, 556, 607, 608, 609, 558, 559, 612,
+ 627, 646, 647, 653, 606, 584, 671, 545, 674, 676,
+ 654, 661, 179, 600, 180, 181, 662, 664, 665, 779,
+ 666, 667, 668, 615, 669, 784, 695, 693, 715, 700,
716, 630, 815, 816, 708, 818, 819, 730, 526, 734,
- 220, 221, 748, 367, 801, 368, 369, 370, 371, 804,
- 742, 770, 771, 772, 610, 220, 221, 773, 242, 802,
- 663, 803, 243, 244, 245, 246, 247, 805, 806, 807,
- 354, 90, 820, 821, 363, 629, 673, 372, 148, 224,
- 611, 363, 363, 363, 224, 224, 355, 228, 372, 224,
- 241, 613, 457, 224, 597, 670, 189, 672, 675, 372,
- 678, 289, 191, 363, 462, 786, 732, 632, 753, 0,
- 0, 0, 0, 736, 0, 220, 221, 741, 488, 223,
- 368, 369, 370, 371, 0, 0, 0, 751, 697, 0,
+ 742, 748, 771, 802, 801, 803, 805, 148, 90, 804,
+ 770, 772, 773, 806, 610, 807, 611, 820, 821, 182,
+ 663, 355, 457, 183, 241, 613, 597, 228, 184, 189,
+ 354, 185, 289, 186, 363, 629, 673, 372, 191, 224,
+ 462, 363, 363, 363, 224, 224, 786, 732, 372, 224,
+ 753, 0, 0, 224, 0, 670, 0, 672, 675, 372,
+ 678, 220, 221, 363, 242, 0, 0, 632, 243, 244,
+ 245, 246, 247, 736, 0, 0, 0, 741, 124, 125,
+ 0, 0, 0, 0, 0, 0, 0, 751, 697, 0,
0, 0, 0, 0, 0, 0, 703, 704, 705, 678,
706, 707, 0, 677, 0, 711, 712, 713, 0, 0,
678, 0, 678, 545, 545, 545, 0, 545, 692, 0,
0, 0, 0, 0, 0, 0, 363, 363, 224, 0,
- 719, 0, 363, 0, 780, 363, 0, 0, 5, 0,
+ 719, 0, 363, 0, 780, 363, 0, 0, 0, 5,
0, 0, 632, 487, 489, 0, 224, 0, 0, 0,
- 0, 0, 224, 0, 0, 489, 224, 220, 221, 8,
- 639, 223, 359, 360, 361, 362, 678, 9, 10, 11,
- 0, 12, 0, 14, 0, 15, 0, 759, 0, 17,
- 0, 0, 0, 224, 728, 765, 0, 363, 224, 0,
+ 0, 0, 224, 0, 0, 489, 224, 0, 0, 0,
+ 8, 0, 0, 0, 0, 0, 678, 0, 9, 10,
+ 11, 0, 12, 0, 14, 0, 15, 759, 0, 0,
+ 17, 0, 0, 224, 728, 765, 0, 363, 224, 0,
0, 0, 224, 0, 763, 764, 0, 0, 0, 0,
- 769, 20, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 545, 0,
- 545, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 769, 20, 220, 221, 0, 488, 223, 368, 369, 370,
+ 371, 0, 0, 0, 0, 0, 0, 0, 545, 0,
+ 545, 220, 221, 0, 639, 223, 359, 360, 361, 362,
788, 0, 0, 791, 792, 793, 0, 0, 796, 798,
697, 798, 224, 0, 0, 0, 0, 0, 0, 0,
0, 813, 814, 0, 0, 808, 809, 0, 811, 812,
@@ -1421,18 +1418,18 @@ static const yytype_int16 yytable[] =
0, 640, 0, 252, 0, 0, 255, 0, 257, 0,
259, 260, 261, 262, 263, 0, 0, 266, 267, 0,
270, 271, 272, 0, 274, 275, 276, 277, 278, 0,
- 0, 0, 0, 0, 0, 0, 0, 98, 0, 0,
- 99, 0, 0, 0, 100, 101, 102, 0, 103, 104,
- 0, 105, 106, 107, 108, 0, 0, 0, 224, 0,
- 0, 109, 0, 0, 110, 0, 111, 0, 112, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 113, 0, 0, 0, 0, 0,
- 0, 0, 114, 0, 115, 116, 117, 224, 0, 0,
- 118, 119, 0, 0, 312, 313, 120, 315, 224, 317,
- 224, 121, 0, 0, 0, 323, 324, 0, 331, 0,
+ 98, 0, 0, 99, 0, 0, 0, 100, 101, 102,
+ 0, 103, 104, 0, 105, 106, 107, 108, 0, 0,
+ 0, 0, 0, 0, 109, 0, 0, 110, 224, 111,
+ 0, 112, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 113, 0, 0,
+ 0, 0, 0, 0, 0, 114, 0, 115, 116, 117,
+ 0, 0, 118, 119, 0, 0, 0, 224, 120, 0,
+ 0, 0, 0, 121, 312, 313, 0, 315, 224, 317,
+ 224, 0, 0, 0, 0, 323, 324, 0, 331, 0,
0, 0, 0, 339, 0, 0, 0, 0, 0, 0,
- 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
- 363, 0, 0, 0, 0, 122, 363, 224, 640, 372,
+ 341, 342, 343, 344, 345, 346, 347, 122, 348, 0,
+ 363, 0, 0, 0, 0, 0, 363, 224, 640, 372,
363, 0, 0, 0, 224, 640, 372, 0, 365, 366,
0, 374, 0, 376, 224, 0, 0, 0, 0, 383,
384, 0, 0, 0, 0, 0, 393, 0, 0, 395,
@@ -1447,26 +1444,26 @@ static const yytype_int16 yytable[] =
0, 461, 0, 0, 0, 0, 0, 0, 468, 0,
495, 496, 497, 498, 0, 0, 0, 0, 0, 0,
0, 480, 481, 0, 0, 0, 0, 0, 0, 0,
- 492, 0, 494, 60, 0, 0, 0, 0, 500, 501,
- 0, 61, 62, 63, 528, 0, 64, 65, 0, 0,
- 66, 533, 0, 0, 67, 0, 0, 537, 538, 539,
- 68, 541, 0, 0, 69, 548, 0, 0, 70, 0,
- 0, 530, 71, 0, 0, 72, 549, 73, 536, 0,
- 0, 0, 0, 0, 0, 74, 0, 0, 557, 0,
- 75, 0, 76, 77, 78, 0, 0, 79, 80, 81,
- 0, 0, 82, 552, 553, 554, 555, 83, 0, 0,
- 0, 0, 0, 0, 0, 616, 0, 617, 618, 620,
+ 492, 0, 494, 0, 0, 0, 0, 0, 500, 501,
+ 563, 0, 0, 0, 528, 0, 0, 564, 0, 0,
+ 0, 533, 0, 0, 0, 0, 565, 537, 538, 539,
+ 566, 541, 567, 0, 0, 548, 0, 0, 0, 0,
+ 568, 530, 0, 0, 569, 0, 549, 0, 536, 0,
+ 570, 0, 0, 571, 0, 0, 0, 0, 557, 0,
+ 0, 0, 0, 0, 572, 573, 0, 0, 574, 0,
+ 0, 0, 575, 552, 553, 554, 555, 0, 0, 576,
+ 577, 578, 0, 0, 0, 616, 0, 617, 618, 620,
0, 621, 622, 623, 624, 0, 626, 0, 0, 0,
- 0, 0, 0, 636, 638, 84, 614, 0, 0, 0,
- 0, 619, 649, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 636, 638, 0, 614, 0, 0, 0,
+ 579, 619, 649, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 98, 0, 0, 99,
- 0, 0, 0, 100, 101, 102, 0, 103, 104, 0,
- 105, 106, 107, 108, 0, 0, 0, 0, 0, 0,
- 109, 0, 0, 110, 0, 111, 0, 112, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 98, 0, 0,
+ 99, 0, 0, 0, 100, 101, 102, 0, 103, 104,
+ 0, 105, 106, 107, 108, 0, 0, 0, 0, 0,
+ 0, 109, 0, 0, 110, 0, 111, 0, 112, 0,
0, 682, 683, 684, 0, 0, 686, 0, 0, 0,
- 0, 690, 0, 113, 0, 0, 694, 0, 0, 696,
- 698, 114, 0, 115, 116, 117, 0, 702, 685, 118,
+ 0, 690, 0, 0, 113, 0, 694, 0, 0, 696,
+ 698, 0, 114, 0, 115, 116, 117, 702, 685, 118,
119, 0, 0, 0, 0, 120, 710, 0, 0, 0,
121, 0, 0, 0, 699, 0, 701, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 709, 0, 0,
@@ -1489,23 +1486,23 @@ static const yytype_int16 yytable[] =
0, 0, 9, 10, 11, 824, 12, 13, 14, 0,
15, 0, 16, 0, 17, 829, 830, 18, 0, 0,
0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 20, 0, 0, 0,
- 0, 21, 0, 0, 22, 0, 0, 0, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, -34, 0, 0, 0,
- 0, -5, -5, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 434, 0, 0, 0, 435, 436, 0,
- 0, 437, 438, 439, 440, 0, 441, 442, 0, 0,
- 66, 0, 0, 0, 67, 0, 0, 443, 0, 0,
- 68, 0, 0, 0, 444, 0, 0, 0, 70, 0,
- 0, 0, 71, 0, 0, 445, 0, 73, -5, 4,
- 0, 0, 0, 0, 5, 446, 0, 0, 0, 0,
- 75, 0, 447, 77, 448, 0, 449, 450, 451, 452,
- 6, 0, 453, 7, 0, 8, 0, 0, 0, 0,
- 0, 0, 0, 9, 10, 11, 0, 12, 13, 14,
- 0, 15, 0, 16, 0, 17, 0, 0, 18, 0,
- 0, 0, 0, 0, 19, 454, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
+ 21, 0, 0, 22, 0, 0, 0, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, -34, 0, 0, 0, 0,
+ -5, -5, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 434, 0, 0, 0, 435, 436, 0, 0,
+ 437, 438, 439, 440, 0, 441, 442, 0, 0, 66,
+ 0, 0, 0, 67, 0, 0, 443, 0, 0, 68,
+ 0, 0, 0, 444, 0, 0, 0, 70, 0, 0,
+ 0, 71, 0, 0, 445, 0, 73, 0, 0, -5,
+ 4, 0, 0, 0, 446, 5, 0, 0, 75, 0,
+ 447, 77, 448, 0, 449, 450, 451, 452, 0, 0,
+ 453, 6, 0, 0, 7, 0, 8, 0, 0, 0,
+ 0, 0, 0, 0, 9, 10, 11, 0, 12, 13,
+ 14, 0, 15, 0, 16, 0, 17, 0, 0, 18,
+ 0, 0, 0, 454, 0, 19, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 20, 0, 0,
0, 0, 21, 0, 0, 22, 0, 0, 0, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
@@ -1518,161 +1515,161 @@ static const yytype_int16 yytable[] =
11, 0, 12, 0, 14, 0, 15, 0, 16, 0,
17, 0, 0, 213, 0, 0, 0, 0, 0, 19,
0, 214, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 20, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 50, 4, 0, 210, 211, 0, 5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 212, 0, 7, 0, 8, 0, 0,
+ 0, 0, 0, 0, 0, 9, 10, 11, 0, 12,
+ 0, 14, 0, 15, 0, 16, 0, 17, 0, 0,
+ 598, 0, 0, 0, 0, 0, 19, 0, 599, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 20, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 4, 0,
+ 210, 211, 0, 5, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 212, 0, 7, 0, 8, 0, 0, 0, 0, 0,
+ 0, 0, 9, 10, 11, 0, 12, 0, 14, 0,
+ 15, 0, 16, 0, 17, 0, 0, 0, 0, 0,
+ 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 20, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 23, 24, 25,
+ 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 4, 0, 0, 0, 0,
+ 5, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,
+ 0, 8, 0, 0, 0, 0, 0, 0, 0, 9,
+ 10, 11, 0, 12, 0, 14, 0, 15, 0, 16,
+ 0, 17, 0, 0, 194, 0, 0, 0, 0, 0,
+ 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 4, 0, 210, 211, 0, 5, 0, 0,
+ 49, 50, 4, 0, 0, 0, 0, 5, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 212, 0, 7, 0, 8, 0,
+ 0, 0, 0, 0, 0, 0, 7, 0, 8, 0,
0, 0, 0, 0, 0, 0, 9, 10, 11, 0,
12, 0, 14, 0, 15, 0, 16, 0, 17, 0,
- 0, 598, 0, 0, 0, 0, 0, 19, 0, 599,
+ 0, 583, 0, 0, 0, 0, 0, 19, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 20,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 20, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 4, 0, 210, 211, 0, 5, 0, 0, 0, 0,
+ 0, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 4,
+ 0, 210, 211, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 212, 0, 7, 0, 8, 0, 0, 0,
- 0, 0, 0, 0, 9, 10, 11, 0, 12, 0,
- 14, 0, 15, 0, 16, 0, 17, 0, 0, 0,
- 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 20, 0,
+ 0, 212, 0, 7, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 4, 0,
- 0, 0, 0, 5, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 19, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 7, 0, 8, 0, 0, 0, 0, 0,
- 0, 0, 9, 10, 11, 0, 12, 0, 14, 0,
- 15, 0, 16, 0, 17, 0, 0, 194, 0, 0,
- 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 20, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 4, 0, 0, 0,
- 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 7, 0, 8, 0, 0, 0, 0, 0, 0, 0,
- 9, 10, 11, 0, 12, 0, 14, 0, 15, 0,
- 16, 0, 17, 0, 0, 583, 0, 0, 0, 0,
- 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 20, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 4, 0, 210, 211, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 212, 0, 7, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 19,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 4, 0, 0, 0, 0, 0, 0, 0,
- 434, 0, 0, 0, 435, 436, 0, 0, 437, 438,
- 439, 440, 0, 441, 442, 0, 7, 66, 0, 0,
- 0, 67, 0, 0, 443, 0, 0, 68, 0, 0,
- 0, 444, 0, 0, 0, 70, 16, 0, 0, 71,
- 0, 0, 445, 0, 73, 0, 0, 19, 0, 0,
- 0, 0, 446, 0, 0, 0, 0, 75, 0, 447,
- 77, 448, 0, 449, 450, 451, 452, 0, 0, 453,
- 0, 0, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 563, 0, 454, 0, 0, 0, 0, 564, 0, 0,
- 0, 0, 0, 0, 0, 0, 565, 0, 0, 0,
- 566, 0, 567, 0, 0, 0, 0, 0, 0, 0,
- 568, 0, 0, 0, 569, 0, 0, 0, 0, 0,
- 570, 0, 0, 571, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 572, 573, 0, 0, 574,
- 0, 0, 0, 575, 0, 0, 0, 0, 0, 0,
- 576, 577, 578, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 434, 0, 0, 0, 435, 436,
+ 0, 0, 437, 438, 439, 440, 0, 441, 442, 0,
+ 7, 66, 0, 0, 0, 67, 0, 0, 443, 0,
+ 0, 68, 0, 0, 0, 444, 0, 0, 0, 70,
+ 16, 0, 0, 71, 0, 0, 445, 0, 73, 0,
+ 0, 19, 0, 0, 0, 0, 446, 0, 0, 0,
+ 75, 0, 447, 77, 448, 0, 449, 450, 451, 452,
+ 0, 0, 453, 0, 0, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 60, 0, 454, 0, 0, 0, 0,
+ 0, 61, 62, 63, 0, 0, 64, 65, 0, 0,
+ 66, 0, 0, 0, 67, 0, 0, 0, 0, 0,
+ 68, 0, 0, 0, 69, 0, 0, 0, 70, 0,
+ 0, 0, 71, 0, 0, 72, 0, 73, 0, 0,
+ 0, 0, 0, 0, 0, 74, 0, 0, 0, 75,
+ 0, 76, 77, 78, 0, 0, 79, 80, 81, 0,
+ 0, 82, 0, 0, 0, 0, 83, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 579, 23, 24, 25, 26, 27, 28, 29, 30,
- 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
+ 0, 0, 0, 0, 84, 23, 24, 25, 26, 27,
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50
};
static const yytype_int16 yycheck[] =
{
86, 325, 51, 100, 13, 102, 103, 104, 105, 106,
107, 558, 336, 110, 111, 112, 113, 114, 115, 5,
- 117, 118, 119, 120, 121, 129, 3, 4, 6, 5,
- 705, 135, 5, 135, 74, 5, 74, 712, 131, 550,
- 133, 213, 137, 215, 216, 15, 129, 558, 29, 405,
- 31, 32, 135, 15, 18, 19, 153, 154, 134, 156,
- 134, 158, 138, 0, 138, 421, 654, 164, 165, 3,
- 4, 3, 6, 7, 38, 172, 432, 665, 43, 667,
- 5, 178, 179, 180, 181, 182, 183, 184, 135, 186,
- 15, 195, 132, 135, 132, 76, 135, 421, 43, 15,
- 81, 66, 69, 70, 615, 86, 3, 4, 432, 465,
- 91, 215, 309, 310, 79, 622, 623, 624, 135, 626,
- 88, 66, 135, 798, 131, 131, 133, 133, 96, 97,
- 213, 15, 215, 216, 79, 135, 135, 146, 15, 135,
- 131, 311, 133, 3, 131, 131, 133, 133, 318, 319,
- 320, 135, 128, 131, 131, 128, 242, 243, 244, 129,
- 130, 131, 248, 249, 250, 251, 252, 129, 130, 255,
- 340, 257, 135, 259, 260, 261, 262, 263, 350, 135,
- 266, 267, 135, 135, 270, 271, 135, 47, 274, 275,
- 276, 277, 278, 131, 550, 133, 135, 131, 128, 133,
- 135, 132, 558, 15, 129, 130, 131, 67, 68, 69,
- 70, 74, 128, 129, 130, 131, 299, 133, 134, 74,
- 727, 316, 729, 770, 74, 74, 773, 322, 74, 3,
- 90, 326, 3, 403, 404, 330, 5, 3, 4, 409,
- 6, 7, 412, 3, 128, 129, 130, 333, 5, 133,
- 134, 128, 129, 130, 131, 3, 342, 343, 344, 345,
- 346, 3, 348, 3, 133, 3, 126, 127, 3, 4,
- 3, 6, 7, 8, 9, 10, 11, 5, 364, 5,
+ 117, 118, 119, 120, 121, 129, 3, 4, 6, 6,
+ 7, 135, 3, 4, 130, 43, 132, 550, 5, 5,
+ 654, 213, 137, 215, 216, 558, 129, 74, 74, 405,
+ 3, 665, 135, 667, 15, 88, 153, 154, 66, 156,
+ 0, 158, 133, 96, 97, 421, 137, 164, 165, 133,
+ 78, 134, 130, 137, 132, 172, 432, 130, 134, 132,
+ 5, 178, 179, 180, 181, 182, 183, 184, 5, 186,
+ 15, 195, 622, 623, 624, 134, 626, 421, 15, 134,
+ 705, 43, 615, 134, 131, 131, 134, 712, 432, 465,
+ 130, 215, 132, 20, 127, 18, 19, 24, 25, 69,
+ 70, 28, 3, 4, 66, 6, 7, 34, 3, 4,
+ 213, 15, 215, 216, 41, 38, 78, 146, 15, 134,
+ 134, 311, 3, 130, 130, 132, 132, 131, 318, 319,
+ 320, 134, 130, 130, 134, 132, 242, 243, 244, 130,
+ 127, 127, 248, 249, 250, 251, 252, 128, 129, 255,
+ 340, 257, 134, 259, 260, 261, 262, 263, 350, 134,
+ 266, 267, 309, 310, 270, 271, 47, 134, 274, 275,
+ 276, 277, 278, 798, 550, 15, 130, 727, 132, 729,
+ 74, 134, 558, 128, 129, 130, 67, 68, 69, 70,
+ 134, 128, 129, 130, 134, 134, 299, 124, 15, 74,
+ 74, 316, 74, 770, 74, 3, 773, 322, 89, 3,
+ 5, 326, 3, 403, 404, 330, 5, 3, 4, 409,
+ 6, 7, 412, 127, 128, 129, 130, 333, 132, 133,
+ 127, 128, 129, 130, 3, 3, 342, 343, 344, 345,
+ 346, 3, 348, 132, 125, 126, 3, 5, 3, 3,
+ 4, 3, 6, 7, 8, 9, 10, 11, 364, 5,
5, 367, 368, 369, 370, 371, 372, 373, 3, 375,
- 29, 3, 31, 32, 464, 5, 382, 131, 134, 385,
- 386, 67, 5, 10, 3, 4, 392, 6, 7, 6,
- 396, 397, 12, 11, 134, 401, 128, 129, 130, 128,
- 137, 133, 134, 14, 5, 20, 3, 3, 423, 24,
- 25, 6, 67, 28, 429, 8, 10, 76, 433, 34,
- 9, 11, 81, 135, 516, 135, 41, 86, 704, 705,
- 89, 135, 91, 135, 135, 711, 712, 135, 135, 135,
- 135, 3, 4, 135, 6, 460, 8, 9, 10, 11,
- 540, 457, 135, 135, 469, 5, 135, 547, 3, 4,
- 135, 6, 706, 8, 9, 10, 11, 59, 474, 713,
- 135, 477, 135, 479, 135, 3, 59, 136, 137, 135,
- 3, 135, 488, 489, 508, 491, 59, 493, 457, 5,
- 3, 5, 516, 499, 5, 3, 3, 503, 504, 3,
- 5, 3, 5, 3, 519, 508, 598, 476, 600, 601,
- 125, 3, 5, 516, 5, 5, 132, 3, 132, 763,
- 132, 3, 67, 529, 3, 769, 135, 5, 5, 139,
- 5, 546, 808, 809, 139, 811, 812, 3, 544, 24,
- 3, 4, 3, 6, 788, 8, 9, 10, 11, 793,
- 44, 132, 3, 132, 523, 3, 4, 132, 6, 3,
- 584, 3, 10, 11, 12, 13, 14, 3, 132, 132,
- 307, 51, 133, 133, 311, 544, 600, 314, 90, 316,
- 524, 318, 319, 320, 321, 322, 308, 140, 325, 326,
- 146, 526, 388, 330, 515, 598, 123, 600, 601, 336,
- 615, 189, 126, 340, 394, 772, 697, 697, 721, -1,
- -1, -1, -1, 703, -1, 3, 4, 707, 6, 7,
- 8, 9, 10, 11, -1, -1, -1, 719, 634, -1,
+ 29, 5, 31, 32, 464, 130, 382, 133, 5, 385,
+ 386, 67, 6, 11, 10, 14, 392, 127, 128, 129,
+ 396, 397, 132, 133, 12, 401, 3, 4, 133, 6,
+ 137, 8, 9, 10, 11, 127, 5, 3, 423, 3,
+ 127, 128, 129, 67, 429, 132, 133, 76, 433, 6,
+ 8, 80, 11, 9, 516, 10, 85, 134, 704, 705,
+ 134, 90, 134, 134, 134, 711, 712, 134, 134, 5,
+ 59, 3, 4, 3, 6, 460, 8, 9, 10, 11,
+ 540, 457, 134, 134, 469, 134, 134, 547, 3, 4,
+ 67, 6, 706, 8, 9, 10, 11, 134, 474, 713,
+ 134, 477, 3, 479, 134, 59, 59, 5, 134, 3,
+ 5, 134, 488, 489, 508, 491, 134, 493, 457, 5,
+ 134, 134, 516, 499, 3, 3, 3, 503, 504, 5,
+ 5, 3, 3, 3, 519, 508, 598, 476, 600, 601,
+ 131, 5, 29, 516, 31, 32, 5, 5, 131, 763,
+ 3, 131, 3, 529, 3, 769, 134, 5, 5, 138,
+ 5, 546, 808, 809, 138, 811, 812, 3, 544, 24,
+ 44, 3, 3, 3, 788, 3, 3, 90, 51, 793,
+ 131, 131, 131, 131, 523, 131, 524, 132, 132, 76,
+ 584, 308, 388, 80, 146, 526, 515, 140, 85, 123,
+ 307, 88, 189, 90, 311, 544, 600, 314, 126, 316,
+ 394, 318, 319, 320, 321, 322, 772, 697, 325, 326,
+ 721, -1, -1, 330, -1, 598, -1, 600, 601, 336,
+ 615, 3, 4, 340, 6, -1, -1, 697, 10, 11,
+ 12, 13, 14, 703, -1, -1, -1, 707, 135, 136,
+ -1, -1, -1, -1, -1, -1, -1, 719, 634, -1,
-1, -1, -1, -1, -1, -1, 642, 643, 644, 654,
646, 647, -1, 612, -1, 651, 652, 653, -1, -1,
665, -1, 667, 622, 623, 624, -1, 626, 627, -1,
-1, -1, -1, -1, -1, -1, 403, 404, 405, -1,
- 673, -1, 409, -1, 764, 412, -1, -1, 21, -1,
+ 673, -1, 409, -1, 764, 412, -1, -1, -1, 21,
-1, -1, 772, 420, 421, -1, 423, -1, -1, -1,
- -1, -1, 429, -1, -1, 432, 433, 3, 4, 42,
- 6, 7, 8, 9, 10, 11, 721, 50, 51, 52,
- -1, 54, -1, 56, -1, 58, -1, 734, -1, 62,
- -1, -1, -1, 460, 693, 742, -1, 464, 465, -1,
+ -1, -1, 429, -1, -1, 432, 433, -1, -1, -1,
+ 42, -1, -1, -1, -1, -1, 721, -1, 50, 51,
+ 52, -1, 54, -1, 56, -1, 58, 734, -1, -1,
+ 62, -1, -1, 460, 693, 742, -1, 464, 465, -1,
-1, -1, 469, -1, 740, 741, -1, -1, -1, -1,
- 746, 84, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 727, -1,
- 729, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 746, 83, 3, 4, -1, 6, 7, 8, 9, 10,
+ 11, -1, -1, -1, -1, -1, -1, -1, 727, -1,
+ 729, 3, 4, -1, 6, 7, 8, 9, 10, 11,
776, -1, -1, 779, 780, 781, -1, -1, 784, 785,
786, 787, 519, -1, -1, -1, -1, -1, -1, -1,
-1, 806, 807, -1, -1, 801, 802, -1, 804, 805,
@@ -1681,18 +1678,18 @@ static const yytype_int16 yycheck[] =
-1, 558, -1, 152, -1, -1, 155, -1, 157, -1,
159, 160, 161, 162, 163, -1, -1, 166, 167, -1,
169, 170, 171, -1, 173, 174, 175, 176, 177, -1,
- -1, -1, -1, -1, -1, -1, -1, 17, -1, -1,
- 20, -1, -1, -1, 24, 25, 26, -1, 28, 29,
- -1, 31, 32, 33, 34, -1, -1, -1, 615, -1,
- -1, 41, -1, -1, 44, -1, 46, -1, 48, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 64, -1, -1, -1, -1, -1,
- -1, -1, 72, -1, 74, 75, 76, 654, -1, -1,
- 80, 81, -1, -1, 253, 254, 86, 256, 665, 258,
- 667, 91, -1, -1, -1, 264, 265, -1, 272, -1,
+ 17, -1, -1, 20, -1, -1, -1, 24, 25, 26,
+ -1, 28, 29, -1, 31, 32, 33, 34, -1, -1,
+ -1, -1, -1, -1, 41, -1, -1, 44, 615, 46,
+ -1, 48, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 64, -1, -1,
+ -1, -1, -1, -1, -1, 72, -1, 74, 75, 76,
+ -1, -1, 79, 80, -1, -1, -1, 654, 85, -1,
+ -1, -1, -1, 90, 253, 254, -1, 256, 665, 258,
+ 667, -1, -1, -1, -1, 264, 265, -1, 272, -1,
-1, -1, -1, 277, -1, -1, -1, -1, -1, -1,
- 279, 280, 281, 282, 283, 284, 285, -1, 287, -1,
- 697, -1, -1, -1, -1, 125, 703, 704, 705, 706,
+ 279, 280, 281, 282, 283, 284, 285, 124, 287, -1,
+ 697, -1, -1, -1, -1, -1, 703, 704, 705, 706,
707, -1, -1, -1, 711, 712, 713, -1, 312, 313,
-1, 315, -1, 317, 721, -1, -1, -1, -1, 323,
324, -1, -1, -1, -1, -1, 331, -1, -1, 333,
@@ -1707,32 +1704,32 @@ static const yytype_int16 yycheck[] =
-1, 393, -1, -1, -1, -1, -1, -1, 400, -1,
425, 426, 427, 428, -1, -1, -1, -1, -1, -1,
-1, 413, 414, -1, -1, -1, -1, -1, -1, -1,
- 422, -1, 424, 22, -1, -1, -1, -1, 430, 431,
- -1, 30, 31, 32, 459, -1, 35, 36, -1, -1,
- 39, 466, -1, -1, 43, -1, -1, 471, 472, 473,
- 49, 475, -1, -1, 53, 479, -1, -1, 57, -1,
- -1, 463, 61, -1, -1, 64, 490, 66, 470, -1,
- -1, -1, -1, -1, -1, 74, -1, -1, 502, -1,
- 79, -1, 81, 82, 83, -1, -1, 86, 87, 88,
- -1, -1, 91, 495, 496, 497, 498, 96, -1, -1,
- -1, -1, -1, -1, -1, 529, -1, 531, 532, 534,
+ 422, -1, 424, -1, -1, -1, -1, -1, 430, 431,
+ 23, -1, -1, -1, 459, -1, -1, 30, -1, -1,
+ -1, 466, -1, -1, -1, -1, 39, 471, 472, 473,
+ 43, 475, 45, -1, -1, 479, -1, -1, -1, -1,
+ 53, 463, -1, -1, 57, -1, 490, -1, 470, -1,
+ 63, -1, -1, 66, -1, -1, -1, -1, 502, -1,
+ -1, -1, -1, -1, 77, 78, -1, -1, 81, -1,
+ -1, -1, 85, 495, 496, 497, 498, -1, -1, 92,
+ 93, 94, -1, -1, -1, 529, -1, 531, 532, 534,
-1, 535, 537, 538, 539, -1, 541, -1, -1, -1,
- -1, -1, -1, 548, 549, 124, 528, -1, -1, -1,
- -1, 533, 557, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 548, 549, -1, 528, -1, -1, -1,
+ 123, 533, 557, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 17, -1, -1, 20,
- -1, -1, -1, 24, 25, 26, -1, 28, 29, -1,
- 31, 32, 33, 34, -1, -1, -1, -1, -1, -1,
- 41, -1, -1, 44, -1, 46, -1, 48, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 17, -1, -1,
+ 20, -1, -1, -1, 24, 25, 26, -1, 28, 29,
+ -1, 31, 32, 33, 34, -1, -1, -1, -1, -1,
+ -1, 41, -1, -1, 44, -1, 46, -1, 48, -1,
-1, 616, 617, 618, -1, -1, 621, -1, -1, -1,
- -1, 625, -1, 64, -1, -1, 630, -1, -1, 633,
- 634, 72, -1, 74, 75, 76, -1, 641, 620, 80,
- 81, -1, -1, -1, -1, 86, 650, -1, -1, -1,
- 91, -1, -1, -1, 636, -1, 638, -1, -1, -1,
+ -1, 625, -1, -1, 64, -1, 630, -1, -1, 633,
+ 634, -1, 72, -1, 74, 75, 76, 641, 620, 79,
+ 80, -1, -1, -1, -1, 85, 650, -1, -1, -1,
+ 90, -1, -1, -1, 636, -1, 638, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 649, -1, -1,
-1, -1, -1, -1, -1, 679, 680, -1, -1, -1,
- -1, -1, -1, -1, 125, 690, -1, 128, -1, 694,
- -1, 696, -1, 698, -1, 136, 137, 702, -1, -1,
+ -1, -1, -1, -1, 124, 690, -1, 127, -1, 694,
+ -1, 696, -1, 698, -1, 135, 136, 702, -1, -1,
682, 683, 684, -1, 686, 710, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 720, -1, 722, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
@@ -1749,207 +1746,207 @@ static const yytype_int16 yycheck[] =
-1, -1, 50, 51, 52, 817, 54, 55, 56, -1,
58, -1, 60, -1, 62, 827, 828, 65, -1, -1,
-1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 84, -1, -1, -1,
- -1, 89, -1, -1, 92, -1, -1, -1, 96, 97,
+ -1, -1, -1, -1, -1, 83, -1, -1, -1, -1,
+ 88, -1, -1, 91, -1, -1, -1, 95, 96, 97,
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 5, -1, -1, -1,
- -1, 129, 130, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 22, -1, -1, -1, 26, 27, -1,
- -1, 30, 31, 32, 33, -1, 35, 36, -1, -1,
- 39, -1, -1, -1, 43, -1, -1, 46, -1, -1,
- 49, -1, -1, -1, 53, -1, -1, -1, 57, -1,
- -1, -1, 61, -1, -1, 64, -1, 66, 15, 16,
- -1, -1, -1, -1, 21, 74, -1, -1, -1, -1,
- 79, -1, 81, 82, 83, -1, 85, 86, 87, 88,
- 37, -1, 91, 40, -1, 42, -1, -1, -1, -1,
- -1, -1, -1, 50, 51, 52, -1, 54, 55, 56,
- -1, 58, -1, 60, -1, 62, -1, -1, 65, -1,
- -1, -1, -1, -1, 71, 124, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 84, -1, -1,
- -1, -1, 89, -1, -1, 92, -1, -1, -1, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, -1, -1, -1,
- -1, -1, 129, 130, 16, -1, 18, 19, -1, 21,
+ 118, 119, 120, 121, 122, 5, -1, -1, -1, -1,
+ 128, 129, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 22, -1, -1, -1, 26, 27, -1, -1,
+ 30, 31, 32, 33, -1, 35, 36, -1, -1, 39,
+ -1, -1, -1, 43, -1, -1, 46, -1, -1, 49,
+ -1, -1, -1, 53, -1, -1, -1, 57, -1, -1,
+ -1, 61, -1, -1, 64, -1, 66, -1, -1, 15,
+ 16, -1, -1, -1, 74, 21, -1, -1, 78, -1,
+ 80, 81, 82, -1, 84, 85, 86, 87, -1, -1,
+ 90, 37, -1, -1, 40, -1, 42, -1, -1, -1,
+ -1, -1, -1, -1, 50, 51, 52, -1, 54, 55,
+ 56, -1, 58, -1, 60, -1, 62, -1, -1, 65,
+ -1, -1, -1, 123, -1, 71, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 83, -1, -1,
+ -1, -1, 88, -1, -1, 91, -1, -1, -1, 95,
+ 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
+ 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, -1, -1, -1,
+ -1, -1, 128, 129, 16, -1, 18, 19, -1, 21,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, 38, -1, 40, -1,
42, -1, -1, -1, -1, -1, -1, -1, 50, 51,
52, -1, 54, -1, 56, -1, 58, -1, 60, -1,
62, -1, -1, 65, -1, -1, -1, -1, -1, 71,
-1, 73, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 84, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
+ -1, 83, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 95, 96, 97, 98, 99, 100, 101,
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 16, -1, 18, 19, -1, 21, -1, -1,
+ 122, 16, -1, 18, 19, -1, 21, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 38, -1, 40, -1, 42, -1,
- -1, -1, -1, -1, -1, -1, 50, 51, 52, -1,
- 54, -1, 56, -1, 58, -1, 60, -1, 62, -1,
- -1, 65, -1, -1, -1, -1, -1, 71, -1, 73,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 16, -1, 18, 19, -1, 21, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 38, -1, 40, -1, 42, -1, -1, -1,
- -1, -1, -1, -1, 50, 51, 52, -1, 54, -1,
- 56, -1, 58, -1, 60, -1, 62, -1, -1, -1,
- -1, -1, -1, -1, -1, 71, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 84, -1,
+ -1, -1, -1, 38, -1, 40, -1, 42, -1, -1,
+ -1, -1, -1, -1, -1, 50, 51, 52, -1, 54,
+ -1, 56, -1, 58, -1, 60, -1, 62, -1, -1,
+ 65, -1, -1, -1, -1, -1, 71, -1, 73, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 83, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 16, -1,
- -1, -1, -1, 21, -1, -1, -1, -1, -1, -1,
+ 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 120, 121, 122, 16, -1,
+ 18, 19, -1, 21, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 40, -1, 42, -1, -1, -1, -1, -1,
+ 38, -1, 40, -1, 42, -1, -1, -1, -1, -1,
-1, -1, 50, 51, 52, -1, 54, -1, 56, -1,
- 58, -1, 60, -1, 62, -1, -1, 65, -1, -1,
+ 58, -1, 60, -1, 62, -1, -1, -1, -1, -1,
-1, -1, -1, 71, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 84, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 96, 97,
+ -1, -1, -1, -1, -1, 83, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 95, 96, 97,
98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 122, 123, 16, -1, -1, -1,
- -1, 21, -1, -1, -1, -1, -1, -1, -1, -1,
+ 118, 119, 120, 121, 122, 16, -1, -1, -1, -1,
+ 21, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 40,
+ -1, 42, -1, -1, -1, -1, -1, -1, -1, 50,
+ 51, 52, -1, 54, -1, 56, -1, 58, -1, 60,
+ -1, 62, -1, -1, 65, -1, -1, -1, -1, -1,
+ 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 83, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 95, 96, 97, 98, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+ 121, 122, 16, -1, -1, -1, -1, 21, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 40, -1, 42, -1, -1, -1, -1, -1, -1, -1,
- 50, 51, 52, -1, 54, -1, 56, -1, 58, -1,
- 60, -1, 62, -1, -1, 65, -1, -1, -1, -1,
- -1, 71, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 84, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 16, -1, 18, 19, -1, -1,
+ -1, -1, -1, -1, -1, -1, 40, -1, 42, -1,
+ -1, -1, -1, -1, -1, -1, 50, 51, 52, -1,
+ 54, -1, 56, -1, 58, -1, 60, -1, 62, -1,
+ -1, 65, -1, -1, -1, -1, -1, 71, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 38, -1, 40, -1,
+ -1, 95, 96, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 16,
+ -1, 18, 19, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 60, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 71,
+ -1, 38, -1, 40, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 60, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 71, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 16, -1, -1, -1, -1, -1, -1, -1,
- 22, -1, -1, -1, 26, 27, -1, -1, 30, 31,
- 32, 33, -1, 35, 36, -1, 40, 39, -1, -1,
- -1, 43, -1, -1, 46, -1, -1, 49, -1, -1,
- -1, 53, -1, -1, -1, 57, 60, -1, -1, 61,
- -1, -1, 64, -1, 66, -1, -1, 71, -1, -1,
- -1, -1, 74, -1, -1, -1, -1, 79, -1, 81,
- 82, 83, -1, 85, 86, 87, 88, -1, -1, 91,
- -1, -1, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 23, -1, 124, -1, -1, -1, -1, 30, -1, -1,
- -1, -1, -1, -1, -1, -1, 39, -1, -1, -1,
- 43, -1, 45, -1, -1, -1, -1, -1, -1, -1,
- 53, -1, -1, -1, 57, -1, -1, -1, -1, -1,
- 63, -1, -1, 66, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 78, 79, -1, -1, 82,
- -1, -1, -1, 86, -1, -1, -1, -1, -1, -1,
- 93, 94, 95, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, 120, 121, 122, 16, -1, -1, -1,
+ -1, -1, -1, -1, 22, -1, -1, -1, 26, 27,
+ -1, -1, 30, 31, 32, 33, -1, 35, 36, -1,
+ 40, 39, -1, -1, -1, 43, -1, -1, 46, -1,
+ -1, 49, -1, -1, -1, 53, -1, -1, -1, 57,
+ 60, -1, -1, 61, -1, -1, 64, -1, 66, -1,
+ -1, 71, -1, -1, -1, -1, 74, -1, -1, -1,
+ 78, -1, 80, 81, 82, -1, 84, 85, 86, 87,
+ -1, -1, 90, -1, -1, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 22, -1, 123, -1, -1, -1, -1,
+ -1, 30, 31, 32, -1, -1, 35, 36, -1, -1,
+ 39, -1, -1, -1, 43, -1, -1, -1, -1, -1,
+ 49, -1, -1, -1, 53, -1, -1, -1, 57, -1,
+ -1, -1, 61, -1, -1, 64, -1, 66, -1, -1,
+ -1, -1, -1, -1, -1, 74, -1, -1, -1, 78,
+ -1, 80, 81, 82, -1, -1, 85, 86, 87, -1,
+ -1, 90, -1, -1, -1, -1, 95, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 124, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123
+ -1, -1, -1, -1, 123, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 141, 184, 0, 16, 21, 37, 40, 42, 50,
+ 0, 140, 183, 0, 16, 21, 37, 40, 42, 50,
51, 52, 54, 55, 56, 58, 60, 62, 65, 71,
- 84, 89, 92, 96, 97, 98, 99, 100, 101, 102,
- 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 142, 143, 174, 175, 176, 195, 69, 70, 159,
+ 83, 88, 91, 95, 96, 97, 98, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 141, 142, 173, 174, 175, 194, 69, 70, 158,
22, 30, 31, 32, 35, 36, 39, 43, 49, 53,
- 57, 61, 64, 66, 74, 79, 81, 82, 83, 86,
- 87, 88, 91, 96, 124, 178, 180, 181, 146, 3,
- 143, 210, 15, 129, 130, 157, 144, 145, 17, 20,
+ 57, 61, 64, 66, 74, 78, 80, 81, 82, 85,
+ 86, 87, 90, 95, 123, 177, 179, 180, 145, 3,
+ 142, 209, 15, 128, 129, 156, 143, 144, 17, 20,
24, 25, 26, 28, 29, 31, 32, 33, 34, 41,
- 44, 46, 48, 64, 72, 74, 75, 76, 80, 81,
- 86, 91, 125, 128, 136, 137, 197, 199, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 128, 131, 149, 161, 149, 157, 149,
- 149, 132, 162, 74, 74, 162, 74, 162, 74, 162,
- 162, 162, 162, 162, 74, 74, 162, 162, 162, 162,
- 162, 162, 200, 162, 162, 162, 162, 162, 74, 29,
- 31, 32, 76, 81, 86, 89, 91, 147, 148, 197,
- 198, 199, 5, 128, 65, 174, 176, 183, 3, 3,
- 5, 3, 20, 24, 25, 28, 34, 41, 125, 196,
- 18, 19, 38, 65, 73, 174, 176, 177, 182, 5,
- 3, 4, 6, 7, 158, 166, 3, 3, 175, 3,
- 3, 47, 67, 68, 69, 70, 90, 126, 127, 160,
- 150, 181, 6, 10, 11, 12, 13, 14, 158, 170,
- 171, 172, 173, 162, 162, 173, 162, 173, 162, 173,
- 173, 173, 173, 173, 162, 162, 173, 173, 133, 163,
- 173, 173, 173, 162, 173, 173, 173, 173, 173, 162,
- 162, 162, 162, 162, 162, 162, 3, 162, 5, 198,
- 5, 176, 5, 3, 3, 3, 174, 177, 174, 176,
- 177, 174, 177, 5, 161, 161, 161, 161, 161, 161,
- 161, 161, 173, 173, 161, 173, 161, 173, 161, 161,
- 161, 161, 161, 173, 173, 161, 161, 134, 164, 161,
- 161, 163, 173, 202, 203, 161, 161, 161, 161, 163,
- 161, 173, 173, 173, 173, 173, 173, 173, 173, 5,
- 174, 6, 10, 11, 158, 170, 172, 172, 6, 8,
- 9, 10, 11, 158, 167, 163, 163, 6, 8, 9,
- 10, 11, 158, 168, 163, 166, 163, 167, 167, 167,
- 165, 166, 166, 163, 163, 168, 166, 134, 128, 151,
- 210, 173, 166, 164, 161, 163, 173, 168, 173, 5,
- 164, 167, 163, 161, 161, 161, 161, 161, 163, 161,
- 3, 177, 161, 164, 164, 161, 161, 161, 161, 161,
- 161, 161, 164, 161, 164, 163, 163, 163, 163, 161,
- 164, 164, 161, 161, 22, 26, 27, 30, 31, 32,
- 33, 35, 36, 46, 53, 64, 74, 81, 83, 85,
- 86, 87, 88, 91, 124, 152, 178, 185, 186, 163,
- 161, 151, 203, 164, 161, 161, 163, 163, 151, 161,
- 164, 167, 167, 165, 173, 173, 164, 167, 3, 167,
- 151, 151, 6, 8, 9, 10, 11, 158, 6, 158,
- 165, 168, 151, 166, 151, 164, 164, 164, 164, 166,
- 151, 151, 165, 168, 166, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 5, 135, 153, 161, 210, 164, 166,
- 151, 167, 165, 164, 201, 166, 151, 163, 163, 163,
- 161, 163, 154, 155, 185, 210, 161, 161, 163, 163,
- 161, 161, 151, 151, 151, 151, 161, 163, 161, 161,
- 59, 193, 194, 23, 30, 39, 43, 45, 53, 57,
- 63, 66, 78, 79, 82, 86, 93, 94, 95, 124,
- 179, 5, 128, 65, 174, 176, 188, 3, 59, 189,
- 190, 3, 59, 191, 192, 5, 3, 196, 65, 73,
- 174, 176, 177, 187, 5, 5, 166, 3, 3, 3,
- 210, 160, 5, 186, 151, 161, 163, 163, 163, 151,
- 164, 163, 164, 164, 164, 167, 164, 5, 156, 210,
- 166, 67, 167, 169, 204, 205, 164, 138, 164, 6,
- 158, 165, 167, 169, 208, 209, 3, 3, 138, 164,
- 165, 169, 208, 3, 132, 43, 66, 79, 43, 66,
- 79, 5, 5, 176, 5, 132, 3, 132, 3, 3,
- 174, 177, 174, 176, 177, 174, 177, 210, 166, 169,
- 206, 207, 164, 164, 164, 151, 164, 154, 154, 154,
- 163, 154, 210, 5, 163, 135, 163, 161, 163, 151,
- 139, 151, 163, 161, 161, 161, 161, 161, 139, 151,
- 163, 161, 161, 161, 206, 5, 5, 206, 206, 174,
- 163, 161, 163, 151, 151, 151, 151, 164, 210, 164,
- 3, 164, 205, 164, 24, 164, 167, 165, 165, 209,
- 168, 167, 44, 164, 165, 165, 168, 133, 3, 133,
- 133, 177, 164, 207, 164, 154, 154, 151, 151, 162,
- 151, 163, 163, 161, 161, 162, 151, 163, 163, 161,
- 132, 3, 132, 132, 151, 151, 173, 164, 164, 168,
- 167, 173, 164, 164, 168, 208, 204, 208, 161, 151,
- 151, 161, 161, 161, 151, 151, 161, 133, 161, 133,
- 133, 168, 3, 3, 168, 3, 132, 132, 161, 161,
- 163, 161, 161, 166, 166, 165, 165, 164, 165, 165,
- 133, 133, 163, 163, 151, 163, 163, 164, 164, 151,
- 151
+ 44, 46, 48, 64, 72, 74, 75, 76, 79, 80,
+ 85, 90, 124, 127, 135, 136, 196, 198, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 127, 130, 148, 160, 148, 156, 148,
+ 148, 131, 161, 74, 74, 161, 74, 161, 74, 161,
+ 161, 161, 161, 161, 74, 74, 161, 161, 161, 161,
+ 161, 161, 199, 161, 161, 161, 161, 161, 74, 29,
+ 31, 32, 76, 80, 85, 88, 90, 146, 147, 196,
+ 197, 198, 5, 127, 65, 173, 175, 182, 3, 3,
+ 5, 3, 20, 24, 25, 28, 34, 41, 124, 195,
+ 18, 19, 38, 65, 73, 173, 175, 176, 181, 5,
+ 3, 4, 6, 7, 157, 165, 3, 3, 174, 3,
+ 3, 47, 67, 68, 69, 70, 89, 125, 126, 159,
+ 149, 180, 6, 10, 11, 12, 13, 14, 157, 169,
+ 170, 171, 172, 161, 161, 172, 161, 172, 161, 172,
+ 172, 172, 172, 172, 161, 161, 172, 172, 132, 162,
+ 172, 172, 172, 161, 172, 172, 172, 172, 172, 161,
+ 161, 161, 161, 161, 161, 161, 3, 161, 5, 197,
+ 5, 175, 5, 3, 3, 3, 173, 176, 173, 175,
+ 176, 173, 176, 5, 160, 160, 160, 160, 160, 160,
+ 160, 160, 172, 172, 160, 172, 160, 172, 160, 160,
+ 160, 160, 160, 172, 172, 160, 160, 133, 163, 160,
+ 160, 162, 172, 201, 202, 160, 160, 160, 160, 162,
+ 160, 172, 172, 172, 172, 172, 172, 172, 172, 5,
+ 173, 6, 10, 11, 157, 169, 171, 171, 6, 8,
+ 9, 10, 11, 157, 166, 162, 162, 6, 8, 9,
+ 10, 11, 157, 167, 162, 165, 162, 166, 166, 166,
+ 164, 165, 165, 162, 162, 167, 165, 133, 127, 150,
+ 209, 172, 165, 163, 160, 162, 172, 167, 172, 5,
+ 163, 166, 162, 160, 160, 160, 160, 160, 162, 160,
+ 3, 176, 160, 163, 163, 160, 160, 160, 160, 160,
+ 160, 160, 163, 160, 163, 162, 162, 162, 162, 160,
+ 163, 163, 160, 160, 22, 26, 27, 30, 31, 32,
+ 33, 35, 36, 46, 53, 64, 74, 80, 82, 84,
+ 85, 86, 87, 90, 123, 151, 177, 184, 185, 162,
+ 160, 150, 202, 163, 160, 160, 162, 162, 150, 160,
+ 163, 166, 166, 164, 172, 172, 163, 166, 3, 166,
+ 150, 150, 6, 8, 9, 10, 11, 157, 6, 157,
+ 164, 167, 150, 165, 150, 163, 163, 163, 163, 165,
+ 150, 150, 164, 167, 165, 134, 134, 134, 134, 134,
+ 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
+ 134, 134, 134, 5, 134, 152, 160, 209, 163, 165,
+ 150, 166, 164, 163, 200, 165, 150, 162, 162, 162,
+ 160, 162, 153, 154, 184, 209, 160, 160, 162, 162,
+ 160, 160, 150, 150, 150, 150, 160, 162, 160, 160,
+ 59, 192, 193, 23, 30, 39, 43, 45, 53, 57,
+ 63, 66, 77, 78, 81, 85, 92, 93, 94, 123,
+ 178, 5, 127, 65, 173, 175, 187, 3, 59, 188,
+ 189, 3, 59, 190, 191, 5, 3, 195, 65, 73,
+ 173, 175, 176, 186, 5, 5, 165, 3, 3, 3,
+ 209, 159, 5, 185, 150, 160, 162, 162, 162, 150,
+ 163, 162, 163, 163, 163, 166, 163, 5, 155, 209,
+ 165, 67, 166, 168, 203, 204, 163, 137, 163, 6,
+ 157, 164, 166, 168, 207, 208, 3, 3, 137, 163,
+ 164, 168, 207, 3, 131, 43, 66, 78, 43, 66,
+ 78, 5, 5, 175, 5, 131, 3, 131, 3, 3,
+ 173, 176, 173, 175, 176, 173, 176, 209, 165, 168,
+ 205, 206, 163, 163, 163, 150, 163, 153, 153, 153,
+ 162, 153, 209, 5, 162, 134, 162, 160, 162, 150,
+ 138, 150, 162, 160, 160, 160, 160, 160, 138, 150,
+ 162, 160, 160, 160, 205, 5, 5, 205, 205, 173,
+ 162, 160, 162, 150, 150, 150, 150, 163, 209, 163,
+ 3, 163, 204, 163, 24, 163, 166, 164, 164, 208,
+ 167, 166, 44, 163, 164, 164, 167, 132, 3, 132,
+ 132, 176, 163, 206, 163, 153, 153, 150, 150, 161,
+ 150, 162, 162, 160, 160, 161, 150, 162, 162, 160,
+ 131, 3, 131, 131, 150, 150, 172, 163, 163, 167,
+ 166, 172, 163, 163, 167, 207, 203, 207, 160, 150,
+ 150, 160, 160, 160, 150, 150, 160, 132, 160, 132,
+ 132, 167, 3, 3, 167, 3, 131, 131, 160, 160,
+ 162, 160, 160, 165, 165, 164, 164, 163, 164, 164,
+ 132, 132, 162, 162, 150, 162, 162, 163, 163, 150,
+ 150
};
#define yyerrok (yyerrstatus = 0)
@@ -2777,229 +2774,229 @@ yyreduce:
switch (yyn)
{
case 7:
-#line 305 "ds9parser.Y"
+#line 303 "ds9parser.Y"
{cerr << "DS9 Regions File 3.2" << endl;;}
break;
case 9:
-#line 308 "ds9parser.Y"
+#line 306 "ds9parser.Y"
{globalTile = (yyvsp[(2) - (2)].integer);;}
break;
case 10:
-#line 310 "ds9parser.Y"
- {globalSystem=(CoordSystem)(yyvsp[(1) - (1)].integer);;}
+#line 308 "ds9parser.Y"
+ {globalSystem=(Coord::CoordSystem)(yyvsp[(1) - (1)].integer);;}
break;
case 12:
-#line 311 "ds9parser.Y"
- {globalSystem=globalWCS; globalSky=(SkyFrame)(yyvsp[(1) - (1)].integer);;}
+#line 309 "ds9parser.Y"
+ {globalSystem=globalWCS; globalSky=(Coord::SkyFrame)(yyvsp[(1) - (1)].integer);;}
break;
case 14:
-#line 312 "ds9parser.Y"
- {globalSystem=globalWCS; globalSky=FK5;;}
+#line 310 "ds9parser.Y"
+ {globalSystem=globalWCS; globalSky=Coord::FK5;;}
break;
case 21:
-#line 321 "ds9parser.Y"
+#line 319 "ds9parser.Y"
{globalTile = (yyvsp[(2) - (2)].integer);;}
break;
case 22:
-#line 322 "ds9parser.Y"
+#line 320 "ds9parser.Y"
{DISCARD_(1);}
break;
case 25:
-#line 326 "ds9parser.Y"
+#line 324 "ds9parser.Y"
{DISCARD_(1);}
break;
case 28:
-#line 330 "ds9parser.Y"
+#line 328 "ds9parser.Y"
{DISCARD_(1);}
break;
case 29:
-#line 330 "ds9parser.Y"
+#line 328 "ds9parser.Y"
{strncpy(localComment,(yyvsp[(3) - (4)].str),80);}
break;
case 31:
-#line 332 "ds9parser.Y"
+#line 330 "ds9parser.Y"
{DISCARD_(1);}
break;
case 32:
-#line 333 "ds9parser.Y"
+#line 331 "ds9parser.Y"
{strncpy(localComment,(yyvsp[(4) - (5)].str),80);}
break;
case 34:
-#line 337 "ds9parser.Y"
+#line 335 "ds9parser.Y"
{DISCARD_(1);}
break;
case 35:
-#line 337 "ds9parser.Y"
+#line 335 "ds9parser.Y"
{strncpy(localComment,(yyvsp[(2) - (3)].str),80);}
break;
case 37:
-#line 339 "ds9parser.Y"
+#line 337 "ds9parser.Y"
{DISCARD_(1);}
break;
case 38:
-#line 339 "ds9parser.Y"
+#line 337 "ds9parser.Y"
{strncpy(localComment,(yyvsp[(3) - (4)].str),80);}
break;
case 41:
-#line 344 "ds9parser.Y"
+#line 342 "ds9parser.Y"
{YYACCEPT;;}
break;
case 42:
-#line 347 "ds9parser.Y"
+#line 345 "ds9parser.Y"
{(yyval.real)=(yyvsp[(1) - (1)].real);;}
break;
case 43:
-#line 348 "ds9parser.Y"
+#line 346 "ds9parser.Y"
{(yyval.real)=(yyvsp[(1) - (1)].integer);;}
break;
case 44:
-#line 351 "ds9parser.Y"
+#line 349 "ds9parser.Y"
{yydebug=1;;}
break;
case 45:
-#line 352 "ds9parser.Y"
+#line 350 "ds9parser.Y"
{yydebug=0;;}
break;
case 46:
-#line 355 "ds9parser.Y"
+#line 353 "ds9parser.Y"
{(yyval.integer)=((yyvsp[(1) - (1)].integer) ? 1 : 0);;}
break;
case 47:
-#line 357 "ds9parser.Y"
+#line 355 "ds9parser.Y"
{(yyval.integer)=1;;}
break;
case 48:
-#line 358 "ds9parser.Y"
+#line 356 "ds9parser.Y"
{(yyval.integer)=1;;}
break;
case 49:
-#line 359 "ds9parser.Y"
+#line 357 "ds9parser.Y"
{(yyval.integer)=1;;}
break;
case 50:
-#line 360 "ds9parser.Y"
+#line 358 "ds9parser.Y"
{(yyval.integer)=1;;}
break;
case 51:
-#line 362 "ds9parser.Y"
+#line 360 "ds9parser.Y"
{(yyval.integer)=0;;}
break;
case 52:
-#line 363 "ds9parser.Y"
+#line 361 "ds9parser.Y"
{(yyval.integer)=0;;}
break;
case 53:
-#line 364 "ds9parser.Y"
+#line 362 "ds9parser.Y"
{(yyval.integer)=0;;}
break;
case 54:
-#line 365 "ds9parser.Y"
+#line 363 "ds9parser.Y"
{(yyval.integer)=0;;}
break;
case 61:
-#line 380 "ds9parser.Y"
+#line 378 "ds9parser.Y"
{cStatus = 0;;}
break;
case 62:
-#line 381 "ds9parser.Y"
+#line 379 "ds9parser.Y"
{cStatus = 1;;}
break;
case 63:
-#line 382 "ds9parser.Y"
+#line 380 "ds9parser.Y"
{cStatus = 1;;}
break;
case 64:
-#line 385 "ds9parser.Y"
+#line 383 "ds9parser.Y"
{(yyval.real) = fr->mapAngleToRef(0,localSystem,localSky);;}
break;
case 65:
-#line 386 "ds9parser.Y"
+#line 384 "ds9parser.Y"
{(yyval.real) = (yyvsp[(1) - (1)].real);;}
break;
case 66:
-#line 389 "ds9parser.Y"
+#line 387 "ds9parser.Y"
{(yyval.real) = fr->mapAngleToRef(degToRad((yyvsp[(1) - (1)].real)),localSystem,localSky);;}
break;
case 67:
-#line 390 "ds9parser.Y"
+#line 388 "ds9parser.Y"
{(yyval.real) = fr->mapAngleToRef(degToRad((yyvsp[(1) - (1)].real)),localSystem,localSky);;}
break;
case 68:
-#line 391 "ds9parser.Y"
+#line 389 "ds9parser.Y"
{(yyval.real) = fr->mapAngleToRef((yyvsp[(1) - (1)].real),localSystem,localSky);;}
break;
case 69:
-#line 394 "ds9parser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), localSystem, DEGREE);;}
+#line 392 "ds9parser.Y"
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), localSystem, Coord::DEGREE);;}
break;
case 70:
-#line 395 "ds9parser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), PHYSICAL);;}
+#line 393 "ds9parser.Y"
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::PHYSICAL);;}
break;
case 71:
-#line 396 "ds9parser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), IMAGE);;}
+#line 394 "ds9parser.Y"
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::IMAGE);;}
break;
case 72:
-#line 397 "ds9parser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), DEGREE);;}
+#line 395 "ds9parser.Y"
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), Coord::DEGREE);;}
break;
case 73:
-#line 398 "ds9parser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCMIN);;}
+#line 396 "ds9parser.Y"
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), Coord::ARCMIN);;}
break;
case 74:
-#line 399 "ds9parser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCSEC);;}
+#line 397 "ds9parser.Y"
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), Coord::ARCSEC);;}
break;
case 75:
-#line 403 "ds9parser.Y"
+#line 401 "ds9parser.Y"
{
- Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, DEGREE);
+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, Coord::DEGREE);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -3007,9 +3004,9 @@ yyreduce:
break;
case 76:
-#line 410 "ds9parser.Y"
+#line 408 "ds9parser.Y"
{
- Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::PHYSICAL);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -3017,9 +3014,9 @@ yyreduce:
break;
case 77:
-#line 417 "ds9parser.Y"
+#line 415 "ds9parser.Y"
{
- Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::IMAGE);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -3027,9 +3024,9 @@ yyreduce:
break;
case 78:
-#line 424 "ds9parser.Y"
+#line 422 "ds9parser.Y"
{
- Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),DEGREE);
+ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),Coord::DEGREE);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -3037,9 +3034,9 @@ yyreduce:
break;
case 79:
-#line 431 "ds9parser.Y"
+#line 429 "ds9parser.Y"
{
- Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCMIN);
+ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),Coord::ARCMIN);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -3047,9 +3044,9 @@ yyreduce:
break;
case 80:
-#line 438 "ds9parser.Y"
+#line 436 "ds9parser.Y"
{
- Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCSEC);
+ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),Coord::ARCSEC);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -3057,32 +3054,32 @@ yyreduce:
break;
case 81:
-#line 446 "ds9parser.Y"
+#line 444 "ds9parser.Y"
{(yyval.integer) = (yyvsp[(3) - (3)].integer);;}
break;
case 82:
-#line 449 "ds9parser.Y"
+#line 447 "ds9parser.Y"
{(yyval.real) = parseSEXStr((yyvsp[(1) - (1)].str));;}
break;
case 83:
-#line 452 "ds9parser.Y"
+#line 450 "ds9parser.Y"
{(yyval.real) = parseHMSStr((yyvsp[(1) - (1)].str));;}
break;
case 84:
-#line 455 "ds9parser.Y"
+#line 453 "ds9parser.Y"
{(yyval.real) = parseDMSStr((yyvsp[(1) - (1)].str));;}
break;
case 85:
-#line 459 "ds9parser.Y"
+#line 457 "ds9parser.Y"
{
Vector r;
- CoordSystem sys = checkWCSSystem();
- SkyFrame sky = checkWCSSky();
- if (sky == GALACTIC || sky == ECLIPTIC)
+ Coord::CoordSystem sys = checkWCSSystem();
+ Coord::SkyFrame sky = checkWCSSky();
+ if (sky == Coord::GALACTIC || sky == Coord::ECLIPTIC)
r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), sys, sky);
else
r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), sys, sky);
@@ -3093,7 +3090,7 @@ yyreduce:
break;
case 86:
-#line 472 "ds9parser.Y"
+#line 470 "ds9parser.Y"
{
Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),
checkWCSSystem(), checkWCSSky());
@@ -3104,7 +3101,7 @@ yyreduce:
break;
case 87:
-#line 480 "ds9parser.Y"
+#line 478 "ds9parser.Y"
{
Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),
checkWCSSystem(), checkWCSSky());
@@ -3115,7 +3112,7 @@ yyreduce:
break;
case 88:
-#line 488 "ds9parser.Y"
+#line 486 "ds9parser.Y"
{
Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), localSystem, localSky);
(yyval.vector)[0] = r[0];
@@ -3125,7 +3122,7 @@ yyreduce:
break;
case 89:
-#line 495 "ds9parser.Y"
+#line 493 "ds9parser.Y"
{
Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),
checkWCSSystem(), checkWCSSky());
@@ -3136,9 +3133,9 @@ yyreduce:
break;
case 90:
-#line 503 "ds9parser.Y"
+#line 501 "ds9parser.Y"
{
- Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::IMAGE);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -3146,401 +3143,401 @@ yyreduce:
break;
case 91:
-#line 510 "ds9parser.Y"
+#line 508 "ds9parser.Y"
{
- Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), PHYSICAL);
+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::PHYSICAL);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
;}
break;
case 92:
-#line 517 "ds9parser.Y"
- {(yyval.integer) = IMAGE;;}
+#line 515 "ds9parser.Y"
+ {(yyval.integer) = Coord::IMAGE;;}
break;
case 93:
-#line 518 "ds9parser.Y"
- {(yyval.integer) = PHYSICAL;;}
+#line 516 "ds9parser.Y"
+ {(yyval.integer) = Coord::PHYSICAL;;}
break;
case 94:
-#line 519 "ds9parser.Y"
- {(yyval.integer) = DETECTOR;;}
+#line 517 "ds9parser.Y"
+ {(yyval.integer) = Coord::DETECTOR;;}
break;
case 95:
-#line 520 "ds9parser.Y"
- {(yyval.integer) = AMPLIFIER;;}
+#line 518 "ds9parser.Y"
+ {(yyval.integer) = Coord::AMPLIFIER;;}
break;
case 96:
-#line 521 "ds9parser.Y"
- {(yyval.integer) = (yyvsp[(1) - (1)].integer); globalWCS = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
+#line 519 "ds9parser.Y"
+ {(yyval.integer) = (yyvsp[(1) - (1)].integer); globalWCS = (Coord::CoordSystem)(yyvsp[(1) - (1)].integer);;}
break;
case 97:
-#line 524 "ds9parser.Y"
- {(yyval.integer) = WCS;;}
+#line 522 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCS;;}
break;
case 98:
-#line 525 "ds9parser.Y"
- {(yyval.integer) = WCSA;;}
+#line 523 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSA;;}
break;
case 99:
-#line 526 "ds9parser.Y"
- {(yyval.integer) = WCSB;;}
+#line 524 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSB;;}
break;
case 100:
-#line 527 "ds9parser.Y"
- {(yyval.integer) = WCSC;;}
+#line 525 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSC;;}
break;
case 101:
-#line 528 "ds9parser.Y"
- {(yyval.integer) = WCSD;;}
+#line 526 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSD;;}
break;
case 102:
-#line 529 "ds9parser.Y"
- {(yyval.integer) = WCSE;;}
+#line 527 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSE;;}
break;
case 103:
-#line 530 "ds9parser.Y"
- {(yyval.integer) = WCSF;;}
+#line 528 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSF;;}
break;
case 104:
-#line 531 "ds9parser.Y"
- {(yyval.integer) = WCSG;;}
+#line 529 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSG;;}
break;
case 105:
-#line 532 "ds9parser.Y"
- {(yyval.integer) = WCSH;;}
+#line 530 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSH;;}
break;
case 106:
-#line 533 "ds9parser.Y"
- {(yyval.integer) = WCSI;;}
+#line 531 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSI;;}
break;
case 107:
-#line 534 "ds9parser.Y"
- {(yyval.integer) = WCSJ;;}
+#line 532 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSJ;;}
break;
case 108:
-#line 535 "ds9parser.Y"
- {(yyval.integer) = WCSK;;}
+#line 533 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSK;;}
break;
case 109:
-#line 536 "ds9parser.Y"
- {(yyval.integer) = WCSL;;}
+#line 534 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSL;;}
break;
case 110:
-#line 537 "ds9parser.Y"
- {(yyval.integer) = WCSM;;}
+#line 535 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSM;;}
break;
case 111:
-#line 538 "ds9parser.Y"
- {(yyval.integer) = WCSN;;}
+#line 536 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSN;;}
break;
case 112:
-#line 539 "ds9parser.Y"
- {(yyval.integer) = WCSO;;}
+#line 537 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSO;;}
break;
case 113:
-#line 540 "ds9parser.Y"
- {(yyval.integer) = WCSP;;}
+#line 538 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSP;;}
break;
case 114:
-#line 541 "ds9parser.Y"
- {(yyval.integer) = WCSQ;;}
+#line 539 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSQ;;}
break;
case 115:
-#line 542 "ds9parser.Y"
- {(yyval.integer) = WCSR;;}
+#line 540 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSR;;}
break;
case 116:
-#line 543 "ds9parser.Y"
- {(yyval.integer) = WCSS;;}
+#line 541 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSS;;}
break;
case 117:
-#line 544 "ds9parser.Y"
- {(yyval.integer) = WCST;;}
+#line 542 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCST;;}
break;
case 118:
-#line 545 "ds9parser.Y"
- {(yyval.integer) = WCSU;;}
+#line 543 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSU;;}
break;
case 119:
-#line 546 "ds9parser.Y"
- {(yyval.integer) = WCSV;;}
+#line 544 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSV;;}
break;
case 120:
-#line 547 "ds9parser.Y"
- {(yyval.integer) = WCSW;;}
+#line 545 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSW;;}
break;
case 121:
-#line 548 "ds9parser.Y"
- {(yyval.integer) = WCSX;;}
+#line 546 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSX;;}
break;
case 122:
-#line 549 "ds9parser.Y"
- {(yyval.integer) = WCSY;;}
+#line 547 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSY;;}
break;
case 123:
-#line 550 "ds9parser.Y"
- {(yyval.integer) = WCSZ;;}
+#line 548 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCSZ;;}
break;
case 124:
-#line 551 "ds9parser.Y"
- {(yyval.integer) = WCS0;;}
+#line 549 "ds9parser.Y"
+ {(yyval.integer) = Coord::WCS0;;}
break;
case 125:
-#line 554 "ds9parser.Y"
- {(yyval.integer) = FK4;;}
+#line 552 "ds9parser.Y"
+ {(yyval.integer) = Coord::FK4;;}
break;
case 126:
-#line 555 "ds9parser.Y"
- {(yyval.integer) = FK4;;}
+#line 553 "ds9parser.Y"
+ {(yyval.integer) = Coord::FK4;;}
break;
case 127:
-#line 556 "ds9parser.Y"
- {(yyval.integer) = FK4_NO_E;;}
+#line 554 "ds9parser.Y"
+ {(yyval.integer) = Coord::FK4_NO_E;;}
break;
case 128:
-#line 557 "ds9parser.Y"
- {(yyval.integer) = FK5;;}
+#line 555 "ds9parser.Y"
+ {(yyval.integer) = Coord::FK5;;}
break;
case 129:
-#line 558 "ds9parser.Y"
- {(yyval.integer) = FK5;;}
+#line 556 "ds9parser.Y"
+ {(yyval.integer) = Coord::FK5;;}
break;
case 130:
-#line 559 "ds9parser.Y"
- {(yyval.integer) = ICRS;;}
+#line 557 "ds9parser.Y"
+ {(yyval.integer) = Coord::ICRS;;}
break;
case 131:
-#line 560 "ds9parser.Y"
- {(yyval.integer) = GALACTIC;;}
+#line 558 "ds9parser.Y"
+ {(yyval.integer) = Coord::GALACTIC;;}
break;
case 132:
-#line 561 "ds9parser.Y"
- {(yyval.integer) = SUPERGALACTIC;;}
+#line 559 "ds9parser.Y"
+ {(yyval.integer) = Coord::SUPERGALACTIC;;}
break;
case 133:
-#line 562 "ds9parser.Y"
- {(yyval.integer) = ECLIPTIC;;}
+#line 560 "ds9parser.Y"
+ {(yyval.integer) = Coord::ECLIPTIC;;}
break;
case 134:
-#line 563 "ds9parser.Y"
- {(yyval.integer) = HELIOECLIPTIC;;}
+#line 561 "ds9parser.Y"
+ {(yyval.integer) = Coord::HELIOECLIPTIC;;}
break;
case 135:
-#line 566 "ds9parser.Y"
- {(yyval.integer)=DEGREE;;}
+#line 564 "ds9parser.Y"
+ {(yyval.integer)=Coord::DEGREE;;}
break;
case 136:
-#line 567 "ds9parser.Y"
- {(yyval.integer)=ARCMIN;;}
+#line 565 "ds9parser.Y"
+ {(yyval.integer)=Coord::ARCMIN;;}
break;
case 137:
-#line 568 "ds9parser.Y"
- {(yyval.integer)=ARCSEC;;}
+#line 566 "ds9parser.Y"
+ {(yyval.integer)=Coord::ARCSEC;;}
break;
case 138:
-#line 571 "ds9parser.Y"
+#line 569 "ds9parser.Y"
{(yyval.integer) = Marker::SELECT;;}
break;
case 139:
-#line 572 "ds9parser.Y"
+#line 570 "ds9parser.Y"
{(yyval.integer) = Marker::HIGHLITE;;}
break;
case 140:
-#line 573 "ds9parser.Y"
+#line 571 "ds9parser.Y"
{(yyval.integer) = Marker::DASH;;}
break;
case 141:
-#line 574 "ds9parser.Y"
+#line 572 "ds9parser.Y"
{(yyval.integer) = Marker::FIXED;;}
break;
case 142:
-#line 575 "ds9parser.Y"
+#line 573 "ds9parser.Y"
{(yyval.integer) = Marker::EDIT;;}
break;
case 143:
-#line 576 "ds9parser.Y"
+#line 574 "ds9parser.Y"
{(yyval.integer) = Marker::MOVE;;}
break;
case 144:
-#line 577 "ds9parser.Y"
+#line 575 "ds9parser.Y"
{(yyval.integer) = Marker::ROTATE;;}
break;
case 145:
-#line 578 "ds9parser.Y"
+#line 576 "ds9parser.Y"
{(yyval.integer) = Marker::DELETE;;}
break;
case 146:
-#line 579 "ds9parser.Y"
+#line 577 "ds9parser.Y"
{(yyval.integer) = Marker::INCLUDE;;}
break;
case 147:
-#line 580 "ds9parser.Y"
+#line 578 "ds9parser.Y"
{(yyval.integer) = Marker::SOURCE;;}
break;
case 148:
-#line 583 "ds9parser.Y"
+#line 581 "ds9parser.Y"
{(yyval.integer) = CallBack::SELECTCB;;}
break;
case 149:
-#line 584 "ds9parser.Y"
+#line 582 "ds9parser.Y"
{(yyval.integer) = CallBack::UNSELECTCB;;}
break;
case 150:
-#line 585 "ds9parser.Y"
+#line 583 "ds9parser.Y"
{(yyval.integer) = CallBack::HIGHLITECB;;}
break;
case 151:
-#line 586 "ds9parser.Y"
+#line 584 "ds9parser.Y"
{(yyval.integer) = CallBack::UNHIGHLITECB;;}
break;
case 152:
-#line 587 "ds9parser.Y"
+#line 585 "ds9parser.Y"
{(yyval.integer) = CallBack::MOVEBEGINCB;;}
break;
case 153:
-#line 588 "ds9parser.Y"
+#line 586 "ds9parser.Y"
{(yyval.integer) = CallBack::MOVECB;;}
break;
case 154:
-#line 589 "ds9parser.Y"
+#line 587 "ds9parser.Y"
{(yyval.integer) = CallBack::MOVEENDCB;;}
break;
case 155:
-#line 590 "ds9parser.Y"
+#line 588 "ds9parser.Y"
{(yyval.integer) = CallBack::EDITBEGINCB;;}
break;
case 156:
-#line 591 "ds9parser.Y"
+#line 589 "ds9parser.Y"
{(yyval.integer) = CallBack::EDITCB;;}
break;
case 157:
-#line 592 "ds9parser.Y"
+#line 590 "ds9parser.Y"
{(yyval.integer) = CallBack::EDITENDCB;;}
break;
case 158:
-#line 593 "ds9parser.Y"
+#line 591 "ds9parser.Y"
{(yyval.integer) = CallBack::ROTATEBEGINCB;;}
break;
case 159:
-#line 594 "ds9parser.Y"
+#line 592 "ds9parser.Y"
{(yyval.integer) = CallBack::ROTATECB;;}
break;
case 160:
-#line 595 "ds9parser.Y"
+#line 593 "ds9parser.Y"
{(yyval.integer) = CallBack::ROTATEENDCB;;}
break;
case 161:
-#line 596 "ds9parser.Y"
+#line 594 "ds9parser.Y"
{(yyval.integer) = CallBack::DELETECB;;}
break;
case 162:
-#line 597 "ds9parser.Y"
+#line 595 "ds9parser.Y"
{(yyval.integer) = CallBack::TEXTCB;;}
break;
case 163:
-#line 598 "ds9parser.Y"
+#line 596 "ds9parser.Y"
{(yyval.integer) = CallBack::COLORCB;;}
break;
case 164:
-#line 599 "ds9parser.Y"
+#line 597 "ds9parser.Y"
{(yyval.integer) = CallBack::LINEWIDTHCB;;}
break;
case 165:
-#line 600 "ds9parser.Y"
+#line 598 "ds9parser.Y"
{(yyval.integer) = CallBack::PROPERTYCB;;}
break;
case 166:
-#line 601 "ds9parser.Y"
+#line 599 "ds9parser.Y"
{(yyval.integer) = CallBack::FONTCB;;}
break;
case 167:
-#line 602 "ds9parser.Y"
+#line 600 "ds9parser.Y"
{(yyval.integer) = CallBack::KEYCB;;}
break;
case 168:
-#line 603 "ds9parser.Y"
+#line 601 "ds9parser.Y"
{(yyval.integer) = CallBack::UPDATECB;;}
break;
case 171:
-#line 611 "ds9parser.Y"
+#line 609 "ds9parser.Y"
{
setProps(&globalProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));
setProps(&localProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));
@@ -3548,7 +3545,7 @@ yyreduce:
break;
case 172:
-#line 616 "ds9parser.Y"
+#line 614 "ds9parser.Y"
{
strncpy(globalColor,(yyvsp[(3) - (3)].str),16);
strncpy(localColor,(yyvsp[(3) - (3)].str),16);
@@ -3556,7 +3553,7 @@ yyreduce:
break;
case 173:
-#line 620 "ds9parser.Y"
+#line 618 "ds9parser.Y"
{
strcpy(globalColor,"#");
strncat(globalColor,(yyvsp[(4) - (4)].str),16);
@@ -3565,7 +3562,7 @@ yyreduce:
break;
case 174:
-#line 626 "ds9parser.Y"
+#line 624 "ds9parser.Y"
{
globalDash[0] = localDash[0] =(yyvsp[(3) - (4)].integer);
globalDash[1] = localDash[1] =(yyvsp[(4) - (4)].integer);
@@ -3573,12 +3570,12 @@ yyreduce:
break;
case 175:
-#line 630 "ds9parser.Y"
+#line 628 "ds9parser.Y"
{globalWidth = localWidth = (yyvsp[(3) - (3)].integer);;}
break;
case 176:
-#line 632 "ds9parser.Y"
+#line 630 "ds9parser.Y"
{
strncpy(globalFont,(yyvsp[(3) - (3)].str),32);
strncpy(localFont,(yyvsp[(3) - (3)].str),32);
@@ -3586,7 +3583,7 @@ yyreduce:
break;
case 177:
-#line 637 "ds9parser.Y"
+#line 635 "ds9parser.Y"
{
strncpy(globalText,(yyvsp[(3) - (3)].str),80);
strncpy(localText,(yyvsp[(3) - (3)].str),80);
@@ -3594,7 +3591,7 @@ yyreduce:
break;
case 178:
-#line 642 "ds9parser.Y"
+#line 640 "ds9parser.Y"
{
setProps(&globalProps,Marker::DASH,1);
setProps(&localProps,Marker::DASH,1);
@@ -3602,7 +3599,7 @@ yyreduce:
break;
case 179:
-#line 647 "ds9parser.Y"
+#line 645 "ds9parser.Y"
{
setProps(&globalProps,Marker::SOURCE,1);
setProps(&localProps,Marker::SOURCE,1);
@@ -3610,7 +3607,7 @@ yyreduce:
break;
case 180:
-#line 652 "ds9parser.Y"
+#line 650 "ds9parser.Y"
{
setProps(&globalProps,Marker::SOURCE,0);
setProps(&localProps,Marker::SOURCE,0);
@@ -3618,12 +3615,12 @@ yyreduce:
break;
case 181:
-#line 656 "ds9parser.Y"
+#line 654 "ds9parser.Y"
{globalPoint = localPoint = (yyvsp[(3) - (3)].integer);;}
break;
case 182:
-#line 658 "ds9parser.Y"
+#line 656 "ds9parser.Y"
{
globalPoint = localPoint = (yyvsp[(3) - (4)].integer);
globalPointSize = localPointSize = (yyvsp[(4) - (4)].integer);
@@ -3631,7 +3628,7 @@ yyreduce:
break;
case 183:
-#line 663 "ds9parser.Y"
+#line 661 "ds9parser.Y"
{
globalLine1 = localLine1 = (yyvsp[(3) - (4)].integer);
globalLine2 = localLine2 = (yyvsp[(4) - (4)].integer);
@@ -3639,24 +3636,24 @@ yyreduce:
break;
case 184:
-#line 667 "ds9parser.Y"
+#line 665 "ds9parser.Y"
{globalVector = localVector = (yyvsp[(3) - (3)].integer);;}
break;
case 185:
-#line 669 "ds9parser.Y"
+#line 667 "ds9parser.Y"
{
globalComposite = localComposite = (yyvsp[(3) - (3)].integer);
;}
break;
case 186:
-#line 672 "ds9parser.Y"
+#line 670 "ds9parser.Y"
{;}
break;
case 187:
-#line 674 "ds9parser.Y"
+#line 672 "ds9parser.Y"
{
strncpy(globalCompassNorth,(yyvsp[(4) - (7)].str),80);
strncpy(globalCompassEast,(yyvsp[(5) - (7)].str),80);
@@ -3668,147 +3665,147 @@ yyreduce:
break;
case 188:
-#line 682 "ds9parser.Y"
+#line 680 "ds9parser.Y"
{globalTextAngle = localTextAngle = (yyvsp[(3) - (3)].real);;}
break;
case 189:
-#line 683 "ds9parser.Y"
+#line 681 "ds9parser.Y"
{globalTextRotate = localTextRotate = (yyvsp[(3) - (3)].integer);;}
break;
case 190:
-#line 684 "ds9parser.Y"
- {globalWCS = (CoordSystem)(yyvsp[(3) - (3)].integer);;}
+#line 682 "ds9parser.Y"
+ {globalWCS = (Coord::CoordSystem)(yyvsp[(3) - (3)].integer);;}
break;
case 191:
-#line 688 "ds9parser.Y"
+#line 686 "ds9parser.Y"
{
- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (4)].integer);
- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)(yyvsp[(2) - (4)].integer);
- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(3) - (4)].integer);
- globalRulerDistFormat = localRulerDistFormat = (SkyDist)(yyvsp[(4) - (4)].integer);
+ globalRulerCoordSystem = localRulerCoordSystem = (Coord::CoordSystem)(yyvsp[(1) - (4)].integer);
+ globalRulerSkyFrame = localRulerSkyFrame = (Coord::SkyFrame)(yyvsp[(2) - (4)].integer);
+ globalRulerDistSystem = localRulerDistSystem = (Coord::CoordSystem)(yyvsp[(3) - (4)].integer);
+ globalRulerDistFormat = localRulerDistFormat = (Coord::SkyDist)(yyvsp[(4) - (4)].integer);
;}
break;
case 192:
-#line 695 "ds9parser.Y"
+#line 693 "ds9parser.Y"
{
- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- globalRulerDistFormat = localRulerDistFormat = DEGREE;
+ globalRulerCoordSystem = localRulerCoordSystem = (Coord::CoordSystem)(yyvsp[(1) - (2)].integer);
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = (Coord::CoordSystem)(yyvsp[(2) - (2)].integer);
+ globalRulerDistFormat = localRulerDistFormat = Coord::DEGREE;
;}
break;
case 193:
-#line 702 "ds9parser.Y"
+#line 700 "ds9parser.Y"
{
- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = WCS;
- globalRulerDistFormat = localRulerDistFormat = (SkyDist)(yyvsp[(2) - (2)].integer);
+ globalRulerCoordSystem = localRulerCoordSystem = (Coord::CoordSystem)(yyvsp[(1) - (2)].integer);
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = Coord::WCS;
+ globalRulerDistFormat = localRulerDistFormat = (Coord::SkyDist)(yyvsp[(2) - (2)].integer);
;}
break;
case 194:
-#line 709 "ds9parser.Y"
+#line 707 "ds9parser.Y"
{
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- globalRulerDistFormat = localRulerDistFormat = DEGREE;
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::WCS;
+ globalRulerSkyFrame = localRulerSkyFrame = (Coord::SkyFrame)(yyvsp[(1) - (2)].integer);
+ globalRulerDistSystem = localRulerDistSystem = (Coord::CoordSystem)(yyvsp[(2) - (2)].integer);
+ globalRulerDistFormat = localRulerDistFormat = Coord::DEGREE;
;}
break;
case 195:
-#line 716 "ds9parser.Y"
+#line 714 "ds9parser.Y"
{
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
- globalRulerDistSystem = localRulerDistSystem = WCS;
- globalRulerDistFormat = localRulerDistFormat = (SkyDist)(yyvsp[(2) - (2)].integer);
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::WCS;
+ globalRulerSkyFrame = localRulerSkyFrame = (Coord::SkyFrame)(yyvsp[(1) - (2)].integer);
+ globalRulerDistSystem = localRulerDistSystem = Coord::WCS;
+ globalRulerDistFormat = localRulerDistFormat = (Coord::SkyDist)(yyvsp[(2) - (2)].integer);
;}
break;
case 196:
-#line 723 "ds9parser.Y"
+#line 721 "ds9parser.Y"
{
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- globalRulerDistFormat = localRulerDistFormat = DEGREE;
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::WCS;
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = (Coord::CoordSystem)(yyvsp[(2) - (2)].integer);
+ globalRulerDistFormat = localRulerDistFormat = Coord::DEGREE;
;}
break;
case 197:
-#line 730 "ds9parser.Y"
+#line 728 "ds9parser.Y"
{
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = WCS;
- globalRulerDistFormat = localRulerDistFormat = (SkyDist)(yyvsp[(2) - (2)].integer);
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::WCS;
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = Coord::WCS;
+ globalRulerDistFormat = localRulerDistFormat = (Coord::SkyDist)(yyvsp[(2) - (2)].integer);
;}
break;
case 198:
-#line 737 "ds9parser.Y"
+#line 735 "ds9parser.Y"
{
- globalRulerCoordSystem = localRulerCoordSystem = IMAGE;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = WCS;
- globalRulerDistFormat = localRulerDistFormat = (SkyDist)(yyvsp[(1) - (1)].integer);
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::IMAGE;
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = Coord::WCS;
+ globalRulerDistFormat = localRulerDistFormat = (Coord::SkyDist)(yyvsp[(1) - (1)].integer);
;}
break;
case 199:
-#line 744 "ds9parser.Y"
+#line 742 "ds9parser.Y"
{
- globalRulerCoordSystem = localRulerCoordSystem = IMAGE;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = IMAGE;
- globalRulerDistFormat = localRulerDistFormat = DEGREE;
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::IMAGE;
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = Coord::IMAGE;
+ globalRulerDistFormat = localRulerDistFormat = Coord::DEGREE;
;}
break;
case 200:
-#line 753 "ds9parser.Y"
+#line 751 "ds9parser.Y"
{
- globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
- globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)(yyvsp[(2) - (2)].integer);
+ globalCompassCoordSystem = localCompassCoordSystem = (Coord::CoordSystem)(yyvsp[(1) - (2)].integer);
+ globalCompassSkyFrame = localCompassSkyFrame = (Coord::SkyFrame)(yyvsp[(2) - (2)].integer);
;}
break;
case 201:
-#line 758 "ds9parser.Y"
+#line 756 "ds9parser.Y"
{
- globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);
- globalCompassSkyFrame = localCompassSkyFrame = FK5;
+ globalCompassCoordSystem = localCompassCoordSystem = (Coord::CoordSystem)(yyvsp[(1) - (1)].integer);
+ globalCompassSkyFrame = localCompassSkyFrame = Coord::FK5;
;}
break;
case 202:
-#line 763 "ds9parser.Y"
+#line 761 "ds9parser.Y"
{
- globalCompassCoordSystem = localCompassCoordSystem = WCS;
- globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)(yyvsp[(1) - (1)].integer);
+ globalCompassCoordSystem = localCompassCoordSystem = Coord::WCS;
+ globalCompassSkyFrame = localCompassSkyFrame = (Coord::SkyFrame)(yyvsp[(1) - (1)].integer);
;}
break;
case 203:
-#line 768 "ds9parser.Y"
+#line 766 "ds9parser.Y"
{
- globalCompassCoordSystem = localCompassCoordSystem = WCS;
- globalCompassSkyFrame = localCompassSkyFrame = FK5;
+ globalCompassCoordSystem = localCompassCoordSystem = Coord::WCS;
+ globalCompassSkyFrame = localCompassSkyFrame = Coord::FK5;
;}
break;
case 204:
-#line 774 "ds9parser.Y"
+#line 772 "ds9parser.Y"
{
// global properties
- globalSystem = PHYSICAL;
+ globalSystem = Coord::PHYSICAL;
globalWCS = fr->wcsSystem();
globalSky = fr->wcsSky();
globalTile = 1;
@@ -3828,17 +3825,17 @@ yyreduce:
globalLine2 = 0;
globalVector = 1;
globalComposite = 1;
- globalRulerCoordSystem = PHYSICAL;
- globalRulerSkyFrame = FK5;
- globalRulerDistSystem = PHYSICAL;
- globalRulerDistFormat = DEGREE;
- globalCompassCoordSystem = PHYSICAL;
- globalCompassSkyFrame = FK5;
+ globalRulerCoordSystem = Coord::PHYSICAL;
+ globalRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = Coord::PHYSICAL;
+ globalRulerDistFormat = Coord::DEGREE;
+ globalCompassCoordSystem = Coord::PHYSICAL;
+ globalCompassSkyFrame = Coord::FK5;
strcpy(globalCompassNorth,"N");
strcpy(globalCompassEast,"E");
globalCompassNArrow = 1;
globalCompassEArrow = 1;
- globalPoint = BOXCIRCLE;
+ globalPoint = Point::BOXCIRCLE;
globalPointSize = POINTSIZE;
globalTextAngle=0;
globalTextRotate=1;
@@ -3849,17 +3846,17 @@ yyreduce:
break;
case 207:
-#line 820 "ds9parser.Y"
+#line 818 "ds9parser.Y"
{setProps(&localProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
break;
case 208:
-#line 821 "ds9parser.Y"
+#line 819 "ds9parser.Y"
{strncpy(localColor,(yyvsp[(3) - (3)].str),16);;}
break;
case 209:
-#line 822 "ds9parser.Y"
+#line 820 "ds9parser.Y"
{
strcpy(localColor,"#");
strncat(localColor,(yyvsp[(4) - (4)].str),16);
@@ -3867,7 +3864,7 @@ yyreduce:
break;
case 210:
-#line 827 "ds9parser.Y"
+#line 825 "ds9parser.Y"
{
localDash[0] =(yyvsp[(3) - (4)].integer);
localDash[1] =(yyvsp[(4) - (4)].integer);
@@ -3875,73 +3872,73 @@ yyreduce:
break;
case 211:
-#line 831 "ds9parser.Y"
+#line 829 "ds9parser.Y"
{localWidth = (yyvsp[(3) - (3)].integer);;}
break;
case 212:
-#line 832 "ds9parser.Y"
+#line 830 "ds9parser.Y"
{strncpy(localFont,(yyvsp[(3) - (3)].str),32);;}
break;
case 213:
-#line 833 "ds9parser.Y"
+#line 831 "ds9parser.Y"
{strncpy(localText,(yyvsp[(3) - (3)].str),80);;}
break;
case 214:
-#line 834 "ds9parser.Y"
+#line 832 "ds9parser.Y"
{taglist.append(new Tag((yyvsp[(3) - (3)].str)));;}
break;
case 215:
-#line 835 "ds9parser.Y"
+#line 833 "ds9parser.Y"
{cblist.append(
new CallBack(fr->getInterp(),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str)));;}
break;
case 216:
-#line 837 "ds9parser.Y"
+#line 835 "ds9parser.Y"
{setProps(&localProps,Marker::DASH,1);;}
break;
case 217:
-#line 838 "ds9parser.Y"
+#line 836 "ds9parser.Y"
{setProps(&localProps,Marker::SOURCE,1);;}
break;
case 218:
-#line 839 "ds9parser.Y"
+#line 837 "ds9parser.Y"
{setProps(&localProps,Marker::SOURCE,0);;}
break;
case 219:
-#line 841 "ds9parser.Y"
+#line 839 "ds9parser.Y"
{localPoint = (yyvsp[(3) - (3)].integer);;}
break;
case 220:
-#line 842 "ds9parser.Y"
+#line 840 "ds9parser.Y"
{localPoint = (yyvsp[(3) - (4)].integer); localPointSize = (yyvsp[(4) - (4)].integer);;}
break;
case 221:
-#line 843 "ds9parser.Y"
+#line 841 "ds9parser.Y"
{localLine1=(yyvsp[(3) - (4)].integer); localLine2=(yyvsp[(4) - (4)].integer);;}
break;
case 222:
-#line 844 "ds9parser.Y"
+#line 842 "ds9parser.Y"
{localVector=(yyvsp[(3) - (3)].integer);;}
break;
case 223:
-#line 845 "ds9parser.Y"
+#line 843 "ds9parser.Y"
{localComposite=(yyvsp[(3) - (3)].integer);;}
break;
case 225:
-#line 848 "ds9parser.Y"
+#line 846 "ds9parser.Y"
{
strncpy(localCompassNorth,(yyvsp[(4) - (7)].str),80);
strncpy(localCompassEast,(yyvsp[(5) - (7)].str),80);
@@ -3951,184 +3948,184 @@ yyreduce:
break;
case 226:
-#line 854 "ds9parser.Y"
+#line 852 "ds9parser.Y"
{localTextAngle=(yyvsp[(3) - (3)].real);;}
break;
case 227:
-#line 855 "ds9parser.Y"
+#line 853 "ds9parser.Y"
{localTextRotate=(yyvsp[(3) - (3)].integer);;}
break;
case 231:
-#line 862 "ds9parser.Y"
+#line 860 "ds9parser.Y"
{
- localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (4)].integer);
- localRulerSkyFrame = (SkyFrame)(yyvsp[(2) - (4)].integer);
- localRulerDistSystem = (CoordSystem)(yyvsp[(3) - (4)].integer);
- localRulerDistFormat = (SkyDist)(yyvsp[(4) - (4)].integer);
+ localRulerCoordSystem = (Coord::CoordSystem)(yyvsp[(1) - (4)].integer);
+ localRulerSkyFrame = (Coord::SkyFrame)(yyvsp[(2) - (4)].integer);
+ localRulerDistSystem = (Coord::CoordSystem)(yyvsp[(3) - (4)].integer);
+ localRulerDistFormat = (Coord::SkyDist)(yyvsp[(4) - (4)].integer);
;}
break;
case 232:
-#line 869 "ds9parser.Y"
+#line 867 "ds9parser.Y"
{
- localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
- localRulerSkyFrame = FK5;
- localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- localRulerDistFormat = DEGREE;
+ localRulerCoordSystem = (Coord::CoordSystem)(yyvsp[(1) - (2)].integer);
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = (Coord::CoordSystem)(yyvsp[(2) - (2)].integer);
+ localRulerDistFormat = Coord::DEGREE;
;}
break;
case 233:
-#line 876 "ds9parser.Y"
+#line 874 "ds9parser.Y"
{
- localRulerCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
- localRulerSkyFrame = FK5;
- localRulerDistSystem = WCS;
- localRulerDistFormat = (SkyDist)(yyvsp[(2) - (2)].integer);
+ localRulerCoordSystem = (Coord::CoordSystem)(yyvsp[(1) - (2)].integer);
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = Coord::WCS;
+ localRulerDistFormat = (Coord::SkyDist)(yyvsp[(2) - (2)].integer);
;}
break;
case 234:
-#line 883 "ds9parser.Y"
+#line 881 "ds9parser.Y"
{
- localRulerCoordSystem = WCS;
- localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
- localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- localRulerDistFormat = DEGREE;
+ localRulerCoordSystem = Coord::WCS;
+ localRulerSkyFrame = (Coord::SkyFrame)(yyvsp[(1) - (2)].integer);
+ localRulerDistSystem = (Coord::CoordSystem)(yyvsp[(2) - (2)].integer);
+ localRulerDistFormat = Coord::DEGREE;
;}
break;
case 235:
-#line 890 "ds9parser.Y"
+#line 888 "ds9parser.Y"
{
- localRulerCoordSystem = WCS;
- localRulerSkyFrame = (SkyFrame)(yyvsp[(1) - (2)].integer);
- localRulerDistSystem = WCS;
- localRulerDistFormat = (SkyDist)(yyvsp[(2) - (2)].integer);
+ localRulerCoordSystem = Coord::WCS;
+ localRulerSkyFrame = (Coord::SkyFrame)(yyvsp[(1) - (2)].integer);
+ localRulerDistSystem = Coord::WCS;
+ localRulerDistFormat = (Coord::SkyDist)(yyvsp[(2) - (2)].integer);
;}
break;
case 236:
-#line 897 "ds9parser.Y"
+#line 895 "ds9parser.Y"
{
- localRulerCoordSystem = WCS;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = (CoordSystem)(yyvsp[(2) - (2)].integer);
- localRulerDistFormat = DEGREE;
+ localRulerCoordSystem = Coord::WCS;
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = (Coord::CoordSystem)(yyvsp[(2) - (2)].integer);
+ localRulerDistFormat = Coord::DEGREE;
;}
break;
case 237:
-#line 904 "ds9parser.Y"
+#line 902 "ds9parser.Y"
{
- localRulerCoordSystem = WCS;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = WCS;
- localRulerDistFormat = (SkyDist)(yyvsp[(2) - (2)].integer);
+ localRulerCoordSystem = Coord::WCS;
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = Coord::WCS;
+ localRulerDistFormat = (Coord::SkyDist)(yyvsp[(2) - (2)].integer);
;}
break;
case 238:
-#line 911 "ds9parser.Y"
+#line 909 "ds9parser.Y"
{
- localRulerCoordSystem = IMAGE;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = WCS;
- localRulerDistFormat = (SkyDist)(yyvsp[(1) - (1)].integer);
+ localRulerCoordSystem = Coord::IMAGE;
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = Coord::WCS;
+ localRulerDistFormat = (Coord::SkyDist)(yyvsp[(1) - (1)].integer);
;}
break;
case 239:
-#line 918 "ds9parser.Y"
+#line 916 "ds9parser.Y"
{
- localRulerCoordSystem = IMAGE;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = IMAGE;
- localRulerDistFormat = DEGREE;
+ localRulerCoordSystem = Coord::IMAGE;
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = Coord::IMAGE;
+ localRulerDistFormat = Coord::DEGREE;
;}
break;
case 240:
-#line 927 "ds9parser.Y"
+#line 925 "ds9parser.Y"
{
- localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (2)].integer);
- localCompassSkyFrame = (SkyFrame)(yyvsp[(2) - (2)].integer);
+ localCompassCoordSystem = (Coord::CoordSystem)(yyvsp[(1) - (2)].integer);
+ localCompassSkyFrame = (Coord::SkyFrame)(yyvsp[(2) - (2)].integer);
;}
break;
case 241:
-#line 932 "ds9parser.Y"
+#line 930 "ds9parser.Y"
{
- localCompassCoordSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);
- localCompassSkyFrame = FK5;
+ localCompassCoordSystem = (Coord::CoordSystem)(yyvsp[(1) - (1)].integer);
+ localCompassSkyFrame = Coord::FK5;
;}
break;
case 242:
-#line 937 "ds9parser.Y"
+#line 935 "ds9parser.Y"
{
- localCompassCoordSystem = WCS;
- localCompassSkyFrame = (SkyFrame)(yyvsp[(1) - (1)].integer);
+ localCompassCoordSystem = Coord::WCS;
+ localCompassSkyFrame = (Coord::SkyFrame)(yyvsp[(1) - (1)].integer);
;}
break;
case 243:
-#line 942 "ds9parser.Y"
+#line 940 "ds9parser.Y"
{
- localCompassCoordSystem = WCS;
- localCompassSkyFrame = FK5;
+ localCompassCoordSystem = Coord::WCS;
+ localCompassSkyFrame = Coord::FK5;
;}
break;
case 244:
-#line 948 "ds9parser.Y"
+#line 946 "ds9parser.Y"
{aNum=0; aAngNum=0;;}
break;
case 245:
-#line 948 "ds9parser.Y"
+#line 946 "ds9parser.Y"
{localCpanda = 2;;}
break;
case 246:
-#line 949 "ds9parser.Y"
+#line 947 "ds9parser.Y"
{localCpanda=0;;}
break;
case 247:
-#line 952 "ds9parser.Y"
+#line 950 "ds9parser.Y"
{aNum=0; aAngNum=0, aAngle=0;;}
break;
case 248:
-#line 953 "ds9parser.Y"
+#line 951 "ds9parser.Y"
{aAngle=(yyvsp[(9) - (10)].real);localEpanda=2;;}
break;
case 249:
-#line 954 "ds9parser.Y"
+#line 952 "ds9parser.Y"
{localEpanda=0;;}
break;
case 250:
-#line 957 "ds9parser.Y"
+#line 955 "ds9parser.Y"
{aNum=0; aAngNum=0, aAngle=0;;}
break;
case 251:
-#line 958 "ds9parser.Y"
+#line 956 "ds9parser.Y"
{aAngle=(yyvsp[(9) - (10)].real);localBpanda=2;;}
break;
case 252:
-#line 959 "ds9parser.Y"
+#line 957 "ds9parser.Y"
{localBpanda=0;;}
break;
case 253:
-#line 962 "ds9parser.Y"
+#line 960 "ds9parser.Y"
{
// reset maperr flag
maperr = 0;
@@ -4179,183 +4176,151 @@ yyreduce:
break;
case 254:
-#line 1011 "ds9parser.Y"
- {(yyval.integer) = CIRCLE;;}
+#line 1009 "ds9parser.Y"
+ {(yyval.integer) = Point::CIRCLE;;}
break;
case 255:
-#line 1012 "ds9parser.Y"
- {(yyval.integer) = BOX;;}
+#line 1010 "ds9parser.Y"
+ {(yyval.integer) = Point::BOX;;}
break;
case 256:
-#line 1013 "ds9parser.Y"
- {(yyval.integer) = DIAMOND;;}
+#line 1011 "ds9parser.Y"
+ {(yyval.integer) = Point::DIAMOND;;}
break;
case 257:
-#line 1014 "ds9parser.Y"
- {(yyval.integer) = CROSS;;}
+#line 1012 "ds9parser.Y"
+ {(yyval.integer) = Point::CROSS;;}
break;
case 258:
-#line 1015 "ds9parser.Y"
- {(yyval.integer) = XPT;;}
+#line 1013 "ds9parser.Y"
+ {(yyval.integer) = Point::EX;;}
break;
case 259:
-#line 1016 "ds9parser.Y"
- {(yyval.integer) = ARROW;;}
+#line 1014 "ds9parser.Y"
+ {(yyval.integer) = Point::ARROW;;}
break;
case 260:
-#line 1017 "ds9parser.Y"
- {(yyval.integer) = BOXCIRCLE;;}
+#line 1015 "ds9parser.Y"
+ {(yyval.integer) = Point::BOXCIRCLE;;}
break;
case 261:
-#line 1020 "ds9parser.Y"
+#line 1018 "ds9parser.Y"
{setProps(&localProps, Marker::INCLUDE, 1);;}
break;
case 262:
-#line 1021 "ds9parser.Y"
+#line 1019 "ds9parser.Y"
{setProps(&localProps, Marker::INCLUDE, 0);;}
break;
case 263:
-#line 1025 "ds9parser.Y"
- {fr->createTextCmd(Vector((yyvsp[(3) - (6)].vector)),
- localTextAngle,localTextRotate,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
+#line 1023 "ds9parser.Y"
+ {
+ fr->createVectCmd(Vector((yyvsp[(3) - (10)].vector)),
+ (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),
+ localVector,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
break;
case 264:
-#line 1030 "ds9parser.Y"
- {fr->createCompositeCmd(Vector((yyvsp[(3) - (8)].vector)),
- (yyvsp[(5) - (8)].real), localComposite,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
+#line 1031 "ds9parser.Y"
+ {
+ fr->createTextCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localTextAngle,localTextRotate,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
break;
case 265:
-#line 1035 "ds9parser.Y"
- {fr->createVectCmd(Vector((yyvsp[(3) - (10)].vector)),
- (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),
- localVector,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
+#line 1038 "ds9parser.Y"
+ {
+ fr->createRulerCmd(Vector((yyvsp[(3) - (8)].vector)),
+ Vector((yyvsp[(5) - (8)].vector)),
+ localRulerCoordSystem, localRulerSkyFrame,
+ localRulerDistSystem, localRulerDistFormat,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
break;
case 266:
-#line 1041 "ds9parser.Y"
+#line 1047 "ds9parser.Y"
{
- // hard coded into projection.tcl
- fr->createProjectionCmd(Vector((yyvsp[(3) - (10)].vector)),
- Vector((yyvsp[(5) - (10)].vector)),
- (yyvsp[(7) - (10)].real),
- "ProjectionPlotCB", "ProjectionPlotDeleteCB",
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ fr->createCompassCmd(Vector((yyvsp[(3) - (8)].vector)),
+ (yyvsp[(5) - (8)].real),
+ localCompassNorth, localCompassEast,
+ localCompassNArrow, localCompassEArrow,
+ localCompassCoordSystem, localCompassSkyFrame,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
;}
break;
case 267:
-#line 1051 "ds9parser.Y"
- {fr->createRulerCmd(Vector((yyvsp[(3) - (8)].vector)),
- Vector((yyvsp[(5) - (8)].vector)),
- localRulerCoordSystem, localRulerSkyFrame,
- localRulerDistSystem, localRulerDistFormat,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
+#line 1057 "ds9parser.Y"
+ {
+ fr->createProjectionCmd(Vector((yyvsp[(3) - (10)].vector)),
+ Vector((yyvsp[(5) - (10)].vector)),
+ (yyvsp[(7) - (10)].real),
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
break;
case 268:
-#line 1058 "ds9parser.Y"
- {fr->createCompassCmd(Vector((yyvsp[(3) - (8)].vector)),
- (yyvsp[(5) - (8)].real),
- localCompassNorth, localCompassEast,
- localCompassNArrow, localCompassEArrow,
- localCompassCoordSystem, localCompassSkyFrame,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
+#line 1065 "ds9parser.Y"
+ {
+ // backward compatibility
+ fr->createCircleCmd(Vector((yyvsp[(3) - (8)].vector)),
+ (yyvsp[(5) - (8)].real),
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
break;
case 269:
-#line 1066 "ds9parser.Y"
+#line 1073 "ds9parser.Y"
{
- // hard coded into circle3d.tcl
- fr->createCircle3dCmd(Vector((yyvsp[(3) - (8)].vector)),
- (yyvsp[(5) - (8)].real),
- "Circle3dPlotCB", "Circle3dPlotDeleteCB",
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ fr->createCompositeCmd(Vector((yyvsp[(3) - (8)].vector)),
+ (yyvsp[(5) - (8)].real), localComposite,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
;}
break;
case 270:
-#line 1077 "ds9parser.Y"
- {fr->createCircleCmd(Vector((yyvsp[(3) - (8)].vector)),
- (yyvsp[(5) - (8)].real),
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 271:
#line 1082 "ds9parser.Y"
- {fr->createAnnulusCmd(Vector((yyvsp[(3) - (10)].vector)),
- (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),1,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 272:
-#line 1088 "ds9parser.Y"
{
- aAnnuli[0] = (yyvsp[(5) - (12)].real);
- aAnnuli[1] = (yyvsp[(7) - (12)].real);
- fr->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
- aNum,aAnnuli,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ fr->createCircleCmd(Vector((yyvsp[(3) - (8)].vector)),
+ (yyvsp[(5) - (8)].real),
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
;}
break;
- case 273:
-#line 1098 "ds9parser.Y"
- {fr->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
- (yyvsp[(5) - (12)].real),(yyvsp[(7) - (12)].real),(yyvsp[(9) - (12)].integer),
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 274:
-#line 1104 "ds9parser.Y"
+ case 271:
+#line 1089 "ds9parser.Y"
{
- switch (localCpanda) {
- case 0: /* ignore it */
- break;
- case 1: /* normal cpanda */
- fr->createCpandaCmd(Vector((yyvsp[(3) - (18)].vector)),
- (yyvsp[(5) - (18)].real),(yyvsp[(7) - (18)].real),(yyvsp[(9) - (18)].integer),
- (yyvsp[(11) - (18)].real),(yyvsp[(13) - (18)].real),(yyvsp[(15) - (18)].integer),
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case 2: /* one of our special pandas */
- fr->createCpandaCmd(Vector((yyvsp[(3) - (18)].vector)),
- aAngNum,aAngles,
- aNum,aAnnuli,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- }
+ // backwards compatibility
+ fr->createCircleCmd(Vector((yyvsp[(3) - (8)].vector)),
+ (yyvsp[(5) - (8)].real),
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
;}
break;
- case 275:
-#line 1126 "ds9parser.Y"
+ case 272:
+#line 1097 "ds9parser.Y"
{
// for ellipse annulus
aStatus = 1;
@@ -4373,15 +4338,262 @@ yyreduce:
aProps = localProps;
fr->createEllipseCmd(Vector((yyvsp[(3) - (10)].vector)),
- Vector((yyvsp[(5) - (10)].vector)),
- (yyvsp[(7) - (10)].real),
+ Vector((yyvsp[(5) - (10)].vector)),
+ (yyvsp[(7) - (10)].real),
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 273:
+#line 1120 "ds9parser.Y"
+ {
+ // for box annulus
+ aStatus = 3;
+ aCenter = Vector((yyvsp[(3) - (10)].vector));
+ aAngles[0] = (yyvsp[(7) - (10)].real);
+ aVector[0] = Vector((yyvsp[(5) - (10)].vector));
+ aNumsao = 1;
+ strncpy(aColor,localColor,16);
+ aDash[0] = localDash[0];
+ aDash[1] = localDash[1];
+ aWidth = localWidth;
+ strncpy(aFont,localFont,32);
+ strncpy(aText,localText,80);
+ strncpy(aComment,localComment,80);
+ aProps = localProps;
+
+ fr->createBoxCmd(Vector((yyvsp[(3) - (10)].vector)),
+ Vector((yyvsp[(5) - (10)].vector)),
+ (yyvsp[(7) - (10)].real),
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 274:
+#line 1143 "ds9parser.Y"
+ {
+ // backwards compatibility
+ fr->createBoxCmd(Vector((yyvsp[(3) - (10)].vector)),
+ Vector((yyvsp[(5) - (10)].vector)),
+ (yyvsp[(7) - (10)].real),
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 275:
+#line 1151 "ds9parser.Y"
+ {polylist.deleteAll();;}
+ break;
+
+ case 276:
+#line 1153 "ds9parser.Y"
+ {
+ fr->createPolygonCmd(polylist,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 277:
+#line 1160 "ds9parser.Y"
+ {
+ fr->createLineCmd(Vector((yyvsp[(3) - (8)].vector)),
+ Vector((yyvsp[(5) - (8)].vector)),
+ localLine1,localLine2,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 278:
+#line 1168 "ds9parser.Y"
+ {
+ fr->createVectCmd(Vector((yyvsp[(3) - (10)].vector)),
+ (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),
+ localVector,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 279:
+#line 1176 "ds9parser.Y"
+ {
+ fr->createTextCmd(Vector((yyvsp[(3) - (6)].vector)),
+ localTextAngle,localTextRotate,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 280:
+#line 1182 "ds9parser.Y"
+ {strncpy(localText,(yyvsp[(5) - (6)].str),80);;}
+ break;
+
+ case 281:
+#line 1184 "ds9parser.Y"
+ {
+ fr->createTextCmd(Vector((yyvsp[(3) - (9)].vector)),
+ localTextAngle,localTextRotate,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 282:
+#line 1191 "ds9parser.Y"
+ {
+ fr->createPointCmd(Vector((yyvsp[(3) - (6)].vector)),
+ (Point::PointShape)localPoint, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 283:
+#line 1198 "ds9parser.Y"
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector((yyvsp[(4) - (7)].vector)), Point::CIRCLE, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 284:
+#line 1205 "ds9parser.Y"
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector((yyvsp[(4) - (7)].vector)), Point::BOX, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 285:
+#line 1212 "ds9parser.Y"
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector((yyvsp[(4) - (7)].vector)), Point::DIAMOND, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 286:
+#line 1219 "ds9parser.Y"
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector((yyvsp[(4) - (7)].vector)), Point::CROSS, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 287:
+#line 1226 "ds9parser.Y"
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector((yyvsp[(4) - (7)].vector)), Point::EX, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 288:
+#line 1233 "ds9parser.Y"
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector((yyvsp[(4) - (7)].vector)), Point::ARROW, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 289:
+#line 1240 "ds9parser.Y"
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector((yyvsp[(4) - (7)].vector)), Point::BOXCIRCLE, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 290:
+#line 1247 "ds9parser.Y"
+ {
+ fr->createRulerCmd(Vector((yyvsp[(3) - (8)].vector)),
+ Vector((yyvsp[(5) - (8)].vector)),
+ localRulerCoordSystem, localRulerSkyFrame,
+ localRulerDistSystem, localRulerDistFormat,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 291:
+#line 1256 "ds9parser.Y"
+ {
+ fr->createCompassCmd(Vector((yyvsp[(3) - (8)].vector)),
+ (yyvsp[(5) - (8)].real),
+ localCompassNorth, localCompassEast,
+ localCompassNArrow, localCompassEArrow,
+ localCompassCoordSystem, localCompassSkyFrame,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 292:
+#line 1266 "ds9parser.Y"
+ {
+ fr->createProjectionCmd(Vector((yyvsp[(3) - (10)].vector)),
+ Vector((yyvsp[(5) - (10)].vector)),
+ (yyvsp[(7) - (10)].real),
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 293:
+#line 1274 "ds9parser.Y"
+ {
+ fr->createAnnulusCmd(Vector((yyvsp[(3) - (10)].vector)),
+ (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),1,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 294:
+#line 1282 "ds9parser.Y"
+ {
+ aAnnuli[0] = (yyvsp[(5) - (12)].real);
+ aAnnuli[1] = (yyvsp[(7) - (12)].real);
+ fr->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
+ aNum,aAnnuli,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
;}
break;
- case 276:
-#line 1150 "ds9parser.Y"
+ case 295:
+#line 1292 "ds9parser.Y"
+ {
+ fr->createAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
+ (yyvsp[(5) - (12)].real),(yyvsp[(7) - (12)].real),(yyvsp[(9) - (12)].integer),
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ ;}
+ break;
+
+ case 296:
+#line 1300 "ds9parser.Y"
{
// prefered syntax
fr->createEllipseAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
@@ -4392,8 +4604,8 @@ yyreduce:
;}
break;
- case 277:
-#line 1160 "ds9parser.Y"
+ case 297:
+#line 1310 "ds9parser.Y"
{
// prefered syntax
fr->createEllipseAnnulusCmd(Vector((yyvsp[(3) - (14)].vector)),
@@ -4404,8 +4616,8 @@ yyreduce:
;}
break;
- case 278:
-#line 1170 "ds9parser.Y"
+ case 298:
+#line 1320 "ds9parser.Y"
{
// prefered syntax
aVector[0] = Vector((yyvsp[(5) - (14)].vector));
@@ -4418,78 +4630,18 @@ yyreduce:
;}
break;
- case 279:
-#line 1183 "ds9parser.Y"
+ case 299:
+#line 1332 "ds9parser.Y"
{
+ // backwards compatibility
// old saoimage syntax
aStatus = 2;
aVector[aNumsao++] = Vector((yyvsp[(5) - (18)].vector));
;}
break;
- case 280:
-#line 1190 "ds9parser.Y"
- {
- switch (localEpanda) {
- case 0: /* ignore it */
- break;
- case 1: /* normal epanda */
- fr->createEpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
- (yyvsp[(5) - (20)].real),(yyvsp[(7) - (20)].real),(yyvsp[(9) - (20)].integer),
- Vector((yyvsp[(11) - (20)].vector)),Vector((yyvsp[(13) - (20)].vector)),(yyvsp[(15) - (20)].integer),
- (yyvsp[(17) - (20)].real),
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case 2: /* one of our special pandas */
- fr->createEpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
- aAngNum,aAngles,
- aNum,aVector,
- aAngle,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- }
- ;}
- break;
-
- case 281:
-#line 1214 "ds9parser.Y"
- {
- // for box annulus
- aStatus = 3;
- aCenter = Vector((yyvsp[(3) - (10)].vector));
- aAngles[0] = (yyvsp[(7) - (10)].real);
- aVector[0] = Vector((yyvsp[(5) - (10)].vector));
- aNumsao = 1;
- strncpy(aColor,localColor,16);
- aDash[0] = localDash[0];
- aDash[1] = localDash[1];
- aWidth = localWidth;
- strncpy(aFont,localFont,32);
- strncpy(aText,localText,80);
- strncpy(aComment,localComment,80);
- aProps = localProps;
-
- fr->createBoxCmd(Vector((yyvsp[(3) - (10)].vector)),
- Vector((yyvsp[(5) - (10)].vector)),
- (yyvsp[(7) - (10)].real),
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- ;}
- break;
-
- case 282:
-#line 1237 "ds9parser.Y"
- {fr->createBoxCmd(Vector((yyvsp[(3) - (10)].vector)),
- Vector((yyvsp[(5) - (10)].vector)),
- (yyvsp[(7) - (10)].real),
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 283:
-#line 1244 "ds9parser.Y"
+ case 300:
+#line 1340 "ds9parser.Y"
{
// prefered syntax
fr->createBoxAnnulusCmd(Vector((yyvsp[(3) - (12)].vector)),
@@ -4500,8 +4652,8 @@ yyreduce:
;}
break;
- case 284:
-#line 1254 "ds9parser.Y"
+ case 301:
+#line 1350 "ds9parser.Y"
{
// prefered syntax
aVector[0] = Vector((yyvsp[(5) - (14)].vector));
@@ -4514,8 +4666,8 @@ yyreduce:
;}
break;
- case 285:
-#line 1266 "ds9parser.Y"
+ case 302:
+#line 1362 "ds9parser.Y"
{
// prefered syntax
fr->createBoxAnnulusCmd(Vector((yyvsp[(3) - (14)].vector)),
@@ -4526,34 +4678,33 @@ yyreduce:
;}
break;
- case 286:
-#line 1277 "ds9parser.Y"
+ case 303:
+#line 1372 "ds9parser.Y"
{
- // old saoimage syntax
+ // backwards compatibility
+ // old saoimage syntax
aStatus = 4;
aVector[aNumsao++] = Vector((yyvsp[(5) - (18)].vector));
;}
break;
- case 287:
-#line 1284 "ds9parser.Y"
+ case 304:
+#line 1381 "ds9parser.Y"
{
- switch (localBpanda) {
+ switch (localCpanda) {
case 0: /* ignore it */
break;
- case 1: /* normal bpanda */
- fr->createBpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
- (yyvsp[(5) - (20)].real),(yyvsp[(7) - (20)].real),(yyvsp[(9) - (20)].integer),
- Vector((yyvsp[(11) - (20)].vector)),Vector((yyvsp[(13) - (20)].vector)),(yyvsp[(15) - (20)].integer),
- (yyvsp[(17) - (20)].real),
+ case 1: /* normal cpanda */
+ fr->createCpandaCmd(Vector((yyvsp[(3) - (18)].vector)),
+ (yyvsp[(5) - (18)].real),(yyvsp[(7) - (18)].real),(yyvsp[(9) - (18)].integer),
+ (yyvsp[(11) - (18)].real),(yyvsp[(13) - (18)].real),(yyvsp[(15) - (18)].integer),
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
case 2: /* one of our special pandas */
- fr->createBpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
+ fr->createCpandaCmd(Vector((yyvsp[(3) - (18)].vector)),
aAngNum,aAngles,
- aNum,aVector,
- aAngle,
+ aNum,aAnnuli,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
@@ -4561,51 +4712,51 @@ yyreduce:
;}
break;
- case 288:
-#line 1308 "ds9parser.Y"
- {fr->createLineCmd(Vector((yyvsp[(3) - (8)].vector)),
- Vector((yyvsp[(5) - (8)].vector)),
- localLine1,localLine2,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 289:
-#line 1315 "ds9parser.Y"
+ case 305:
+#line 1403 "ds9parser.Y"
{
- switch (localPoint) {
- case CIRCLE:
- fr->createCirclePointCmd(Vector((yyvsp[(3) - (6)].vector)), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case BOX:
- fr->createBoxPointCmd(Vector((yyvsp[(3) - (6)].vector)), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ switch (localEpanda) {
+ case 0: /* ignore it */
break;
- case DIAMOND:
- fr->createDiamondPointCmd(Vector((yyvsp[(3) - (6)].vector)), localPointSize,
+ case 1: /* normal epanda */
+ fr->createEpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
+ (yyvsp[(5) - (20)].real),(yyvsp[(7) - (20)].real),(yyvsp[(9) - (20)].integer),
+ Vector((yyvsp[(11) - (20)].vector)),Vector((yyvsp[(13) - (20)].vector)),(yyvsp[(15) - (20)].integer),
+ (yyvsp[(17) - (20)].real),
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
- case CROSS:
- fr->createCrossPointCmd(Vector((yyvsp[(3) - (6)].vector)), localPointSize,
+ case 2: /* one of our special pandas */
+ fr->createEpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
+ aAngNum,aAngles,
+ aNum,aVector,
+ aAngle,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
- case XPT:
- fr->createExPointCmd(Vector((yyvsp[(3) - (6)].vector)), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ }
+ ;}
+ break;
+
+ case 306:
+#line 1427 "ds9parser.Y"
+ {
+ switch (localBpanda) {
+ case 0: /* ignore it */
break;
- case ARROW:
- fr->createArrowPointCmd(Vector((yyvsp[(3) - (6)].vector)), localPointSize,
+ case 1: /* normal bpanda */
+ fr->createBpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
+ (yyvsp[(5) - (20)].real),(yyvsp[(7) - (20)].real),(yyvsp[(9) - (20)].integer),
+ Vector((yyvsp[(11) - (20)].vector)),Vector((yyvsp[(13) - (20)].vector)),(yyvsp[(15) - (20)].integer),
+ (yyvsp[(17) - (20)].real),
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
- case BOXCIRCLE:
- fr->createBoxCirclePointCmd(Vector((yyvsp[(3) - (6)].vector)), localPointSize,
+ case 2: /* one of our special pandas */
+ fr->createBpandaCmd(Vector((yyvsp[(3) - (20)].vector)),
+ aAngNum,aAngles,
+ aNum,aVector,
+ aAngle,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
@@ -4613,158 +4764,23 @@ yyreduce:
;}
break;
- case 290:
-#line 1355 "ds9parser.Y"
- {fr->createCirclePointCmd(Vector((yyvsp[(4) - (7)].vector)), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 291:
-#line 1359 "ds9parser.Y"
- {fr->createBoxPointCmd(Vector((yyvsp[(4) - (7)].vector)), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 292:
-#line 1363 "ds9parser.Y"
- {fr->createDiamondPointCmd(Vector((yyvsp[(4) - (7)].vector)), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 293:
-#line 1367 "ds9parser.Y"
- {fr->createCrossPointCmd(Vector((yyvsp[(4) - (7)].vector)), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 294:
-#line 1371 "ds9parser.Y"
- {fr->createExPointCmd(Vector((yyvsp[(4) - (7)].vector)), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 295:
-#line 1375 "ds9parser.Y"
- {fr->createArrowPointCmd(Vector((yyvsp[(4) - (7)].vector)), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 296:
-#line 1379 "ds9parser.Y"
- {fr->createBoxCirclePointCmd(Vector((yyvsp[(4) - (7)].vector)), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 297:
-#line 1383 "ds9parser.Y"
- {polylist.deleteAll();;}
- break;
-
- case 298:
-#line 1385 "ds9parser.Y"
- {fr->createPolygonCmd(polylist,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 303:
-#line 1396 "ds9parser.Y"
- {fr->createTextCmd(Vector((yyvsp[(3) - (6)].vector)),
- localTextAngle,localTextRotate,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 304:
-#line 1400 "ds9parser.Y"
- {strncpy(localText,(yyvsp[(5) - (6)].str),80);;}
- break;
-
- case 305:
-#line 1402 "ds9parser.Y"
- {fr->createTextCmd(Vector((yyvsp[(3) - (9)].vector)),
- localTextAngle,localTextRotate,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 306:
-#line 1407 "ds9parser.Y"
- {fr->createCompositeCmd(Vector((yyvsp[(3) - (8)].vector)),
- (yyvsp[(5) - (8)].real), localComposite,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 307:
-#line 1412 "ds9parser.Y"
- {fr->createVectCmd(Vector((yyvsp[(3) - (10)].vector)),
- (yyvsp[(5) - (10)].real),(yyvsp[(7) - (10)].real),
- localVector,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 308:
-#line 1418 "ds9parser.Y"
- {
- // hard coded into projection.tcl
- fr->createProjectionCmd(Vector((yyvsp[(3) - (10)].vector)),
- Vector((yyvsp[(5) - (10)].vector)),
- (yyvsp[(7) - (10)].real),
- "ProjectionPlotCB", "ProjectionPlotDeleteCB",
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- ;}
- break;
-
- case 309:
-#line 1428 "ds9parser.Y"
- {fr->createRulerCmd(Vector((yyvsp[(3) - (8)].vector)),
- Vector((yyvsp[(5) - (8)].vector)),
- localRulerCoordSystem, localRulerSkyFrame,
- localRulerDistSystem, localRulerDistFormat,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
- case 310:
-#line 1435 "ds9parser.Y"
- {fr->createCompassCmd(Vector((yyvsp[(3) - (8)].vector)),
- (yyvsp[(5) - (8)].real),
- localCompassNorth, localCompassEast,
- localCompassNArrow, localCompassEArrow,
- localCompassCoordSystem, localCompassSkyFrame,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);;}
- break;
-
case 311:
-#line 1443 "ds9parser.Y"
+#line 1457 "ds9parser.Y"
{
- // hard coded into circle3d.tcl
- fr->createCircle3dCmd(Vector((yyvsp[(3) - (8)].vector)),
- (yyvsp[(5) - (8)].real),
- "Circle3dPlotCB", "Circle3dPlotDeleteCB",
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ fr->createCompositeCmd(Vector((yyvsp[(3) - (8)].vector)),
+ (yyvsp[(5) - (8)].real), localComposite,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
;}
break;
case 314:
-#line 1457 "ds9parser.Y"
+#line 1469 "ds9parser.Y"
{polylist.append(new Vertex((yyvsp[(1) - (1)].vector)));;}
break;
case 317:
-#line 1465 "ds9parser.Y"
+#line 1477 "ds9parser.Y"
{
if (aNum < MAXANNULI)
aAnnuli[aNum++] = (yyvsp[(1) - (1)].real);
@@ -4772,7 +4788,7 @@ yyreduce:
break;
case 320:
-#line 1476 "ds9parser.Y"
+#line 1488 "ds9parser.Y"
{
if (aAngNum < MAXANGLES)
aAngles[aAngNum++] = (yyvsp[(1) - (1)].real);
@@ -4780,12 +4796,12 @@ yyreduce:
break;
case 323:
-#line 1486 "ds9parser.Y"
+#line 1498 "ds9parser.Y"
{aVector[aNum++] = Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real));;}
break;
case 324:
-#line 1490 "ds9parser.Y"
+#line 1502 "ds9parser.Y"
{
// old style annulus
switch (aStatus) {
@@ -4816,7 +4832,7 @@ yyreduce:
/* Line 1267 of yacc.c. */
-#line 4820 "ds9parser.C"
+#line 4836 "ds9parser.C"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -5030,7 +5046,7 @@ yyreturn:
}
-#line 1517 "ds9parser.Y"
+#line 1529 "ds9parser.Y"
static void setProps(unsigned short* props, unsigned short prop, int value)
@@ -5041,23 +5057,23 @@ static void setProps(unsigned short* props, unsigned short prop, int value)
*props &= ~prop;
}
-static CoordSystem checkWCSSystem()
+static Coord::CoordSystem checkWCSSystem()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return WCS;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::WCS;
default:
return localSystem;
}
}
-static SkyFrame checkWCSSky()
+static Coord::SkyFrame checkWCSSky()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return FK5;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::FK5;
default:
return localSky;
}
diff --git a/saotk/frame/ds9parser.H b/saotk/frame/ds9parser.H
index dfa8fc8..4521f2a 100644
--- a/saotk/frame/ds9parser.H
+++ b/saotk/frame/ds9parser.H
@@ -113,57 +113,56 @@
POINT_ = 329,
POLYGON_ = 330,
PROJECTION_ = 331,
- PROJECTION3D_ = 332,
- PROPERTY_ = 333,
- ROTATE_ = 334,
- ROTBOX_ = 335,
- RULER_ = 336,
- SELECT_ = 337,
- SOURCE_ = 338,
- SUPERGALACTIC_ = 339,
- TAG_ = 340,
- TEXT_ = 341,
- TEXTANGLE_ = 342,
- TEXTROTATE_ = 343,
- TILE_ = 344,
- TRUE_ = 345,
- VECTOR_ = 346,
- VERSION_ = 347,
- UNHIGHLITE_ = 348,
- UNSELECT_ = 349,
- UPDATE_ = 350,
- WCS_ = 351,
- WCSA_ = 352,
- WCSB_ = 353,
- WCSC_ = 354,
- WCSD_ = 355,
- WCSE_ = 356,
- WCSF_ = 357,
- WCSG_ = 358,
- WCSH_ = 359,
- WCSI_ = 360,
- WCSJ_ = 361,
- WCSK_ = 362,
- WCSL_ = 363,
- WCSM_ = 364,
- WCSN_ = 365,
- WCSO_ = 366,
- WCSP_ = 367,
- WCSQ_ = 368,
- WCSR_ = 369,
- WCSS_ = 370,
- WCST_ = 371,
- WCSU_ = 372,
- WCSV_ = 373,
- WCSW_ = 374,
- WCSX_ = 375,
- WCSY_ = 376,
- WCSZ_ = 377,
- WCS0_ = 378,
- WIDTH_ = 379,
- X_ = 380,
- Y_ = 381,
- YES_ = 382
+ PROPERTY_ = 332,
+ ROTATE_ = 333,
+ ROTBOX_ = 334,
+ RULER_ = 335,
+ SELECT_ = 336,
+ SOURCE_ = 337,
+ SUPERGALACTIC_ = 338,
+ TAG_ = 339,
+ TEXT_ = 340,
+ TEXTANGLE_ = 341,
+ TEXTROTATE_ = 342,
+ TILE_ = 343,
+ TRUE_ = 344,
+ VECTOR_ = 345,
+ VERSION_ = 346,
+ UNHIGHLITE_ = 347,
+ UNSELECT_ = 348,
+ UPDATE_ = 349,
+ WCS_ = 350,
+ WCSA_ = 351,
+ WCSB_ = 352,
+ WCSC_ = 353,
+ WCSD_ = 354,
+ WCSE_ = 355,
+ WCSF_ = 356,
+ WCSG_ = 357,
+ WCSH_ = 358,
+ WCSI_ = 359,
+ WCSJ_ = 360,
+ WCSK_ = 361,
+ WCSL_ = 362,
+ WCSM_ = 363,
+ WCSN_ = 364,
+ WCSO_ = 365,
+ WCSP_ = 366,
+ WCSQ_ = 367,
+ WCSR_ = 368,
+ WCSS_ = 369,
+ WCST_ = 370,
+ WCSU_ = 371,
+ WCSV_ = 372,
+ WCSW_ = 373,
+ WCSX_ = 374,
+ WCSY_ = 375,
+ WCSZ_ = 376,
+ WCS0_ = 377,
+ WIDTH_ = 378,
+ X_ = 379,
+ Y_ = 380,
+ YES_ = 381
};
#endif
/* Tokens. */
@@ -241,64 +240,63 @@
#define POINT_ 329
#define POLYGON_ 330
#define PROJECTION_ 331
-#define PROJECTION3D_ 332
-#define PROPERTY_ 333
-#define ROTATE_ 334
-#define ROTBOX_ 335
-#define RULER_ 336
-#define SELECT_ 337
-#define SOURCE_ 338
-#define SUPERGALACTIC_ 339
-#define TAG_ 340
-#define TEXT_ 341
-#define TEXTANGLE_ 342
-#define TEXTROTATE_ 343
-#define TILE_ 344
-#define TRUE_ 345
-#define VECTOR_ 346
-#define VERSION_ 347
-#define UNHIGHLITE_ 348
-#define UNSELECT_ 349
-#define UPDATE_ 350
-#define WCS_ 351
-#define WCSA_ 352
-#define WCSB_ 353
-#define WCSC_ 354
-#define WCSD_ 355
-#define WCSE_ 356
-#define WCSF_ 357
-#define WCSG_ 358
-#define WCSH_ 359
-#define WCSI_ 360
-#define WCSJ_ 361
-#define WCSK_ 362
-#define WCSL_ 363
-#define WCSM_ 364
-#define WCSN_ 365
-#define WCSO_ 366
-#define WCSP_ 367
-#define WCSQ_ 368
-#define WCSR_ 369
-#define WCSS_ 370
-#define WCST_ 371
-#define WCSU_ 372
-#define WCSV_ 373
-#define WCSW_ 374
-#define WCSX_ 375
-#define WCSY_ 376
-#define WCSZ_ 377
-#define WCS0_ 378
-#define WIDTH_ 379
-#define X_ 380
-#define Y_ 381
-#define YES_ 382
+#define PROPERTY_ 332
+#define ROTATE_ 333
+#define ROTBOX_ 334
+#define RULER_ 335
+#define SELECT_ 336
+#define SOURCE_ 337
+#define SUPERGALACTIC_ 338
+#define TAG_ 339
+#define TEXT_ 340
+#define TEXTANGLE_ 341
+#define TEXTROTATE_ 342
+#define TILE_ 343
+#define TRUE_ 344
+#define VECTOR_ 345
+#define VERSION_ 346
+#define UNHIGHLITE_ 347
+#define UNSELECT_ 348
+#define UPDATE_ 349
+#define WCS_ 350
+#define WCSA_ 351
+#define WCSB_ 352
+#define WCSC_ 353
+#define WCSD_ 354
+#define WCSE_ 355
+#define WCSF_ 356
+#define WCSG_ 357
+#define WCSH_ 358
+#define WCSI_ 359
+#define WCSJ_ 360
+#define WCSK_ 361
+#define WCSL_ 362
+#define WCSM_ 363
+#define WCSN_ 364
+#define WCSO_ 365
+#define WCSP_ 366
+#define WCSQ_ 367
+#define WCSR_ 368
+#define WCSS_ 369
+#define WCST_ 370
+#define WCSU_ 371
+#define WCSV_ 372
+#define WCSW_ 373
+#define WCSX_ 374
+#define WCSY_ 375
+#define WCSZ_ 376
+#define WCS0_ 377
+#define WIDTH_ 378
+#define X_ 379
+#define Y_ 380
+#define YES_ 381
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
-#line 136 "ds9parser.Y"
+#line 135 "ds9parser.Y"
{
#define MKBUFSIZE 2048
double real;
@@ -307,7 +305,7 @@ typedef union YYSTYPE
double vector[3];
}
/* Line 1529 of yacc.c. */
-#line 311 "ds9parser.H"
+#line 309 "ds9parser.H"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
diff --git a/saotk/frame/ds9parser.Y b/saotk/frame/ds9parser.Y
index 95ed877..48eceff 100644
--- a/saotk/frame/ds9parser.Y
+++ b/saotk/frame/ds9parser.Y
@@ -20,6 +20,7 @@
#include "base.h"
#include "fitsimage.h"
#include "basemarker.h"
+#include "point.h"
#undef yyFlexLexer
#define yyFlexLexer mkFlexLexer
@@ -29,11 +30,11 @@ extern int mklex(void*, mkFlexLexer*);
extern void mkerror(Base*, mkFlexLexer*, const char*);
extern void mkDiscard(int);
-static CoordSystem globalSystem;
-static CoordSystem globalWCS;
-static SkyFrame globalSky;
-static CoordSystem localSystem;
-static SkyFrame localSky;
+static Coord::CoordSystem globalSystem;
+static Coord::CoordSystem globalWCS;
+static Coord::SkyFrame globalSky;
+static Coord::CoordSystem localSystem;
+static Coord::SkyFrame localSky;
static int globalTile;
@@ -78,23 +79,23 @@ static double localTextAngle;
static int globalTextRotate;
static int localTextRotate;
-static CoordSystem globalRulerCoordSystem;
-static CoordSystem localRulerCoordSystem;
-static SkyFrame globalRulerSkyFrame;
-static SkyFrame localRulerSkyFrame;
-static CoordSystem globalRulerDistSystem;
-static CoordSystem localRulerDistSystem;
-static SkyDist globalRulerDistFormat;
-static SkyDist localRulerDistFormat;
-
-static CoordSystem globalCompassCoordSystem;
-static SkyFrame globalCompassSkyFrame;
+static Coord::CoordSystem globalRulerCoordSystem;
+static Coord::CoordSystem localRulerCoordSystem;
+static Coord::SkyFrame globalRulerSkyFrame;
+static Coord::SkyFrame localRulerSkyFrame;
+static Coord::CoordSystem globalRulerDistSystem;
+static Coord::CoordSystem localRulerDistSystem;
+static Coord::SkyDist globalRulerDistFormat;
+static Coord::SkyDist localRulerDistFormat;
+
+static Coord::CoordSystem globalCompassCoordSystem;
+static Coord::SkyFrame globalCompassSkyFrame;
static char globalCompassNorth[80];
static char globalCompassEast[80];
static int globalCompassNArrow;
static int globalCompassEArrow;
-static CoordSystem localCompassCoordSystem;
-static SkyFrame localCompassSkyFrame;
+static Coord::CoordSystem localCompassCoordSystem;
+static Coord::SkyFrame localCompassSkyFrame;
static char localCompassNorth[80];
static char localCompassEast[80];
static int localCompassNArrow;
@@ -127,10 +128,8 @@ static char aText[80];
static char aComment[80];
static void setProps(unsigned short* props, unsigned short prop, int value);
-static CoordSystem checkWCSSystem();
-static SkyFrame checkWCSSky();
-
-enum {CIRCLE,BOX,DIAMOND,CROSS,XPT,ARROW,BOXCIRCLE};
+static Coord::CoordSystem checkWCSSystem();
+static Coord::SkyFrame checkWCSSky();
%}
%union {
@@ -158,7 +157,7 @@ enum {CIRCLE,BOX,DIAMOND,CROSS,XPT,ARROW,BOXCIRCLE};
%type <integer> skyDist
%type <integer> property
%type <integer> callBack
-%type <integer> pointProp
+%type <integer> pointShape
%type <integer> numberof
%token <integer> INT
@@ -239,7 +238,6 @@ enum {CIRCLE,BOX,DIAMOND,CROSS,XPT,ARROW,BOXCIRCLE};
%token POINT_
%token POLYGON_
%token PROJECTION_
-%token PROJECTION3D_
%token PROPERTY_
%token ROTATE_
%token ROTBOX_
@@ -307,9 +305,9 @@ command : /* empty */
| GLOBAL_ global comment
| TILE_ INT {globalTile = $2;}
- | coordSystem {globalSystem=(CoordSystem)$1;} comment
- | skyFrame {globalSystem=globalWCS; globalSky=(SkyFrame)$1;} comment
- | LINEAR_ {globalSystem=globalWCS; globalSky=FK5;} comment
+ | coordSystem {globalSystem=(Coord::CoordSystem)$1;} comment
+ | skyFrame {globalSystem=globalWCS; globalSky=(Coord::SkyFrame)$1;} comment
+ | LINEAR_ {globalSystem=globalWCS; globalSky=Coord::FK5;} comment
| initLocal shape
| initLocal include shape
@@ -391,52 +389,52 @@ angle : numeric {$$ = fr->mapAngleToRef(degToRad($1),localSystem,localSky);}
| ANGRADIAN {$$ = fr->mapAngleToRef($1,localSystem,localSky);}
;
-value : numeric {$$ = FITSPTR->mapLenToRef($1, localSystem, DEGREE);}
- | PHYCOORD {$$ = FITSPTR->mapLenToRef($1, PHYSICAL);}
- | IMGCOORD {$$ = FITSPTR->mapLenToRef($1, IMAGE);}
- | ANGDEGREE {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), DEGREE);}
- | ARCMINUTE {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), ARCMIN);}
- | ARCSECOND {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), ARCSEC);}
+value : numeric {$$ = FITSPTR->mapLenToRef($1, localSystem, Coord::DEGREE);}
+ | PHYCOORD {$$ = FITSPTR->mapLenToRef($1, Coord::PHYSICAL);}
+ | IMGCOORD {$$ = FITSPTR->mapLenToRef($1, Coord::IMAGE);}
+ | ANGDEGREE {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), Coord::DEGREE);}
+ | ARCMINUTE {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), Coord::ARCMIN);}
+ | ARCSECOND {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), Coord::ARCSEC);}
;
vvalue : numeric sp numeric
{
- Vector r = FITSPTR->mapLenToRef(Vector($1,$3), localSystem, DEGREE);
+ Vector r = FITSPTR->mapLenToRef(Vector($1,$3), localSystem, Coord::DEGREE);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| PHYCOORD sp PHYCOORD
{
- Vector r = FITSPTR->mapLenToRef(Vector($1,$3), PHYSICAL);
+ Vector r = FITSPTR->mapLenToRef(Vector($1,$3), Coord::PHYSICAL);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| IMGCOORD sp IMGCOORD
{
- Vector r = FITSPTR->mapLenToRef(Vector($1,$3), IMAGE);
+ Vector r = FITSPTR->mapLenToRef(Vector($1,$3), Coord::IMAGE);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| ANGDEGREE sp ANGDEGREE
{
- Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),DEGREE);
+ Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),Coord::DEGREE);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| ARCMINUTE sp ARCMINUTE
{
- Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),ARCMIN);
+ Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),Coord::ARCMIN);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| ARCSECOND sp ARCSECOND
{
- Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),ARCSEC);
+ Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),Coord::ARCSEC);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
@@ -458,9 +456,9 @@ dms : DMSSTR {$$ = parseDMSStr($1);}
coord : sexagesimal sp sexagesimal
{
Vector r;
- CoordSystem sys = checkWCSSystem();
- SkyFrame sky = checkWCSSky();
- if (sky == GALACTIC || sky == ECLIPTIC)
+ Coord::CoordSystem sys = checkWCSSystem();
+ Coord::SkyFrame sky = checkWCSSky();
+ if (sky == Coord::GALACTIC || sky == Coord::ECLIPTIC)
r = FITSPTR->mapToRef(Vector($1,$3), sys, sky);
else
r = FITSPTR->mapToRef(Vector($1*360./24.,$3), sys, sky);
@@ -501,71 +499,71 @@ coord : sexagesimal sp sexagesimal
}
| IMGCOORD sp IMGCOORD
{
- Vector r = FITSPTR->mapToRef(Vector($1,$3), IMAGE);
+ Vector r = FITSPTR->mapToRef(Vector($1,$3), Coord::IMAGE);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| PHYCOORD sp PHYCOORD
{
- Vector r = FITSPTR->mapToRef(Vector($1,$3), PHYSICAL);
+ Vector r = FITSPTR->mapToRef(Vector($1,$3), Coord::PHYSICAL);
$$[0] = r[0];
$$[1] = r[1];
}
;
-coordSystem :IMAGE_ {$$ = IMAGE;}
- | PHYSICAL_ {$$ = PHYSICAL;}
- | DETECTOR_ {$$ = DETECTOR;}
- | AMPLIFIER_ {$$ = AMPLIFIER;}
- | wcsSystem {$$ = $1; globalWCS = (CoordSystem)$1;}
+coordSystem :IMAGE_ {$$ = Coord::IMAGE;}
+ | PHYSICAL_ {$$ = Coord::PHYSICAL;}
+ | DETECTOR_ {$$ = Coord::DETECTOR;}
+ | AMPLIFIER_ {$$ = Coord::AMPLIFIER;}
+ | wcsSystem {$$ = $1; globalWCS = (Coord::CoordSystem)$1;}
;
-wcsSystem : WCS_ {$$ = WCS;}
- | WCSA_ {$$ = WCSA;}
- | WCSB_ {$$ = WCSB;}
- | WCSC_ {$$ = WCSC;}
- | WCSD_ {$$ = WCSD;}
- | WCSE_ {$$ = WCSE;}
- | WCSF_ {$$ = WCSF;}
- | WCSG_ {$$ = WCSG;}
- | WCSH_ {$$ = WCSH;}
- | WCSI_ {$$ = WCSI;}
- | WCSJ_ {$$ = WCSJ;}
- | WCSK_ {$$ = WCSK;}
- | WCSL_ {$$ = WCSL;}
- | WCSM_ {$$ = WCSM;}
- | WCSN_ {$$ = WCSN;}
- | WCSO_ {$$ = WCSO;}
- | WCSP_ {$$ = WCSP;}
- | WCSQ_ {$$ = WCSQ;}
- | WCSR_ {$$ = WCSR;}
- | WCSS_ {$$ = WCSS;}
- | WCST_ {$$ = WCST;}
- | WCSU_ {$$ = WCSU;}
- | WCSV_ {$$ = WCSV;}
- | WCSW_ {$$ = WCSW;}
- | WCSX_ {$$ = WCSX;}
- | WCSY_ {$$ = WCSY;}
- | WCSZ_ {$$ = WCSZ;}
- | WCS0_ {$$ = WCS0;}
+wcsSystem : WCS_ {$$ = Coord::WCS;}
+ | WCSA_ {$$ = Coord::WCSA;}
+ | WCSB_ {$$ = Coord::WCSB;}
+ | WCSC_ {$$ = Coord::WCSC;}
+ | WCSD_ {$$ = Coord::WCSD;}
+ | WCSE_ {$$ = Coord::WCSE;}
+ | WCSF_ {$$ = Coord::WCSF;}
+ | WCSG_ {$$ = Coord::WCSG;}
+ | WCSH_ {$$ = Coord::WCSH;}
+ | WCSI_ {$$ = Coord::WCSI;}
+ | WCSJ_ {$$ = Coord::WCSJ;}
+ | WCSK_ {$$ = Coord::WCSK;}
+ | WCSL_ {$$ = Coord::WCSL;}
+ | WCSM_ {$$ = Coord::WCSM;}
+ | WCSN_ {$$ = Coord::WCSN;}
+ | WCSO_ {$$ = Coord::WCSO;}
+ | WCSP_ {$$ = Coord::WCSP;}
+ | WCSQ_ {$$ = Coord::WCSQ;}
+ | WCSR_ {$$ = Coord::WCSR;}
+ | WCSS_ {$$ = Coord::WCSS;}
+ | WCST_ {$$ = Coord::WCST;}
+ | WCSU_ {$$ = Coord::WCSU;}
+ | WCSV_ {$$ = Coord::WCSV;}
+ | WCSW_ {$$ = Coord::WCSW;}
+ | WCSX_ {$$ = Coord::WCSX;}
+ | WCSY_ {$$ = Coord::WCSY;}
+ | WCSZ_ {$$ = Coord::WCSZ;}
+ | WCS0_ {$$ = Coord::WCS0;}
;
-skyFrame : FK4_ {$$ = FK4;}
- | B1950_ {$$ = FK4;}
- | FK4_NO_E_ {$$ = FK4_NO_E;}
- | FK5_ {$$ = FK5;}
- | J2000_ {$$ = FK5;}
- | ICRS_ {$$ = ICRS;}
- | GALACTIC_ {$$ = GALACTIC;}
- | SUPERGALACTIC_ {$$ = SUPERGALACTIC;}
- | ECLIPTIC_ {$$ = ECLIPTIC;}
- | HELIOECLIPTIC_ {$$ = HELIOECLIPTIC;}
+skyFrame : FK4_ {$$ = Coord::FK4;}
+ | B1950_ {$$ = Coord::FK4;}
+ | FK4_NO_E_ {$$ = Coord::FK4_NO_E;}
+ | FK5_ {$$ = Coord::FK5;}
+ | J2000_ {$$ = Coord::FK5;}
+ | ICRS_ {$$ = Coord::ICRS;}
+ | GALACTIC_ {$$ = Coord::GALACTIC;}
+ | SUPERGALACTIC_ {$$ = Coord::SUPERGALACTIC;}
+ | ECLIPTIC_ {$$ = Coord::ECLIPTIC;}
+ | HELIOECLIPTIC_ {$$ = Coord::HELIOECLIPTIC;}
;
-skyDist : DEGREES_ {$$=DEGREE;}
- | ARCMIN_ {$$=ARCMIN;}
- | ARCSEC_ {$$=ARCSEC;}
+skyDist : DEGREES_ {$$=Coord::DEGREE;}
+ | ARCMIN_ {$$=Coord::ARCMIN;}
+ | ARCSEC_ {$$=Coord::ARCSEC;}
;
property : SELECT_ {$$ = Marker::SELECT;}
@@ -653,8 +651,8 @@ globalProperty : property '=' yesno
setProps(&globalProps,Marker::SOURCE,0);
setProps(&localProps,Marker::SOURCE,0);
}
- | POINT_ '=' pointProp {globalPoint = localPoint = $3;}
- | POINT_ '=' pointProp INT
+ | POINT_ '=' pointShape {globalPoint = localPoint = $3;}
+ | POINT_ '=' pointShape INT
{
globalPoint = localPoint = $3;
globalPointSize = localPointSize = $4;
@@ -681,99 +679,99 @@ globalProperty : property '=' yesno
}
| TEXTANGLE_ '=' angle {globalTextAngle = localTextAngle = $3;}
| TEXTROTATE_ '=' INT {globalTextRotate = localTextRotate = $3;}
- | WCS_ '=' wcsSystem {globalWCS = (CoordSystem)$3;}
+ | WCS_ '=' wcsSystem {globalWCS = (Coord::CoordSystem)$3;}
;
globalRuler : coordSystem skyFrame coordSystem skyDist
{
- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)$1;
- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)$2;
- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)$3;
- globalRulerDistFormat = localRulerDistFormat = (SkyDist)$4;
+ globalRulerCoordSystem = localRulerCoordSystem = (Coord::CoordSystem)$1;
+ globalRulerSkyFrame = localRulerSkyFrame = (Coord::SkyFrame)$2;
+ globalRulerDistSystem = localRulerDistSystem = (Coord::CoordSystem)$3;
+ globalRulerDistFormat = localRulerDistFormat = (Coord::SkyDist)$4;
}
| coordSystem coordSystem
{
- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)$1;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)$2;
- globalRulerDistFormat = localRulerDistFormat = DEGREE;
+ globalRulerCoordSystem = localRulerCoordSystem = (Coord::CoordSystem)$1;
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = (Coord::CoordSystem)$2;
+ globalRulerDistFormat = localRulerDistFormat = Coord::DEGREE;
}
| coordSystem skyDist
{
- globalRulerCoordSystem = localRulerCoordSystem = (CoordSystem)$1;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = WCS;
- globalRulerDistFormat = localRulerDistFormat = (SkyDist)$2;
+ globalRulerCoordSystem = localRulerCoordSystem = (Coord::CoordSystem)$1;
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = Coord::WCS;
+ globalRulerDistFormat = localRulerDistFormat = (Coord::SkyDist)$2;
}
| skyFrame coordSystem
{
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)$1;
- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)$2;
- globalRulerDistFormat = localRulerDistFormat = DEGREE;
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::WCS;
+ globalRulerSkyFrame = localRulerSkyFrame = (Coord::SkyFrame)$1;
+ globalRulerDistSystem = localRulerDistSystem = (Coord::CoordSystem)$2;
+ globalRulerDistFormat = localRulerDistFormat = Coord::DEGREE;
}
| skyFrame skyDist
{
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
- globalRulerSkyFrame = localRulerSkyFrame = (SkyFrame)$1;
- globalRulerDistSystem = localRulerDistSystem = WCS;
- globalRulerDistFormat = localRulerDistFormat = (SkyDist)$2;
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::WCS;
+ globalRulerSkyFrame = localRulerSkyFrame = (Coord::SkyFrame)$1;
+ globalRulerDistSystem = localRulerDistSystem = Coord::WCS;
+ globalRulerDistFormat = localRulerDistFormat = (Coord::SkyDist)$2;
}
| LINEAR_ coordSystem
{
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = (CoordSystem)$2;
- globalRulerDistFormat = localRulerDistFormat = DEGREE;
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::WCS;
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = (Coord::CoordSystem)$2;
+ globalRulerDistFormat = localRulerDistFormat = Coord::DEGREE;
}
| LINEAR_ skyDist
{
- globalRulerCoordSystem = localRulerCoordSystem = WCS;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = WCS;
- globalRulerDistFormat = localRulerDistFormat = (SkyDist)$2;
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::WCS;
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = Coord::WCS;
+ globalRulerDistFormat = localRulerDistFormat = (Coord::SkyDist)$2;
}
| skyDist
{
- globalRulerCoordSystem = localRulerCoordSystem = IMAGE;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = WCS;
- globalRulerDistFormat = localRulerDistFormat = (SkyDist)$1;
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::IMAGE;
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = Coord::WCS;
+ globalRulerDistFormat = localRulerDistFormat = (Coord::SkyDist)$1;
}
| PIXELS_
{
- globalRulerCoordSystem = localRulerCoordSystem = IMAGE;
- globalRulerSkyFrame = localRulerSkyFrame = FK5;
- globalRulerDistSystem = localRulerDistSystem = IMAGE;
- globalRulerDistFormat = localRulerDistFormat = DEGREE;
+ globalRulerCoordSystem = localRulerCoordSystem = Coord::IMAGE;
+ globalRulerSkyFrame = localRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = localRulerDistSystem = Coord::IMAGE;
+ globalRulerDistFormat = localRulerDistFormat = Coord::DEGREE;
}
;
globalCompass : coordSystem skyFrame
{
- globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)$1;
- globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)$2;
+ globalCompassCoordSystem = localCompassCoordSystem = (Coord::CoordSystem)$1;
+ globalCompassSkyFrame = localCompassSkyFrame = (Coord::SkyFrame)$2;
}
| coordSystem
{
- globalCompassCoordSystem = localCompassCoordSystem = (CoordSystem)$1;
- globalCompassSkyFrame = localCompassSkyFrame = FK5;
+ globalCompassCoordSystem = localCompassCoordSystem = (Coord::CoordSystem)$1;
+ globalCompassSkyFrame = localCompassSkyFrame = Coord::FK5;
}
| skyFrame
{
- globalCompassCoordSystem = localCompassCoordSystem = WCS;
- globalCompassSkyFrame = localCompassSkyFrame = (SkyFrame)$1;
+ globalCompassCoordSystem = localCompassCoordSystem = Coord::WCS;
+ globalCompassSkyFrame = localCompassSkyFrame = (Coord::SkyFrame)$1;
}
| LINEAR_
{
- globalCompassCoordSystem = localCompassCoordSystem = WCS;
- globalCompassSkyFrame = localCompassSkyFrame = FK5;
+ globalCompassCoordSystem = localCompassCoordSystem = Coord::WCS;
+ globalCompassSkyFrame = localCompassSkyFrame = Coord::FK5;
}
;
initGlobal:{
// global properties
- globalSystem = PHYSICAL;
+ globalSystem = Coord::PHYSICAL;
globalWCS = fr->wcsSystem();
globalSky = fr->wcsSky();
globalTile = 1;
@@ -793,17 +791,17 @@ initGlobal:{
globalLine2 = 0;
globalVector = 1;
globalComposite = 1;
- globalRulerCoordSystem = PHYSICAL;
- globalRulerSkyFrame = FK5;
- globalRulerDistSystem = PHYSICAL;
- globalRulerDistFormat = DEGREE;
- globalCompassCoordSystem = PHYSICAL;
- globalCompassSkyFrame = FK5;
+ globalRulerCoordSystem = Coord::PHYSICAL;
+ globalRulerSkyFrame = Coord::FK5;
+ globalRulerDistSystem = Coord::PHYSICAL;
+ globalRulerDistFormat = Coord::DEGREE;
+ globalCompassCoordSystem = Coord::PHYSICAL;
+ globalCompassSkyFrame = Coord::FK5;
strcpy(globalCompassNorth,"N");
strcpy(globalCompassEast,"E");
globalCompassNArrow = 1;
globalCompassEArrow = 1;
- globalPoint = BOXCIRCLE;
+ globalPoint = Point::BOXCIRCLE;
globalPointSize = POINTSIZE;
globalTextAngle=0;
globalTextRotate=1;
@@ -838,8 +836,8 @@ localProperty : property '=' yesno {setProps(&localProps,$1,$3);}
| SOURCE_ {setProps(&localProps,Marker::SOURCE,1);}
| BACKGROUND_ {setProps(&localProps,Marker::SOURCE,0);}
- | POINT_ '=' pointProp {localPoint = $3;}
- | POINT_ '=' pointProp INT {localPoint = $3; localPointSize = $4;}
+ | POINT_ '=' pointShape {localPoint = $3;}
+ | POINT_ '=' pointShape INT {localPoint = $3; localPointSize = $4;}
| LINE_ '=' INT INT {localLine1=$3; localLine2=$4;}
| VECTOR_ '=' INT {localVector=$3;}
| COMPOSITE_ '=' INT {localComposite=$3;}
@@ -860,88 +858,88 @@ localProperty : property '=' yesno {setProps(&localProps,$1,$3);}
localRuler : coordSystem skyFrame coordSystem skyDist
{
- localRulerCoordSystem = (CoordSystem)$1;
- localRulerSkyFrame = (SkyFrame)$2;
- localRulerDistSystem = (CoordSystem)$3;
- localRulerDistFormat = (SkyDist)$4;
+ localRulerCoordSystem = (Coord::CoordSystem)$1;
+ localRulerSkyFrame = (Coord::SkyFrame)$2;
+ localRulerDistSystem = (Coord::CoordSystem)$3;
+ localRulerDistFormat = (Coord::SkyDist)$4;
}
| coordSystem coordSystem
{
- localRulerCoordSystem = (CoordSystem)$1;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = (CoordSystem)$2;
- localRulerDistFormat = DEGREE;
+ localRulerCoordSystem = (Coord::CoordSystem)$1;
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = (Coord::CoordSystem)$2;
+ localRulerDistFormat = Coord::DEGREE;
}
| coordSystem skyDist
{
- localRulerCoordSystem = (CoordSystem)$1;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = WCS;
- localRulerDistFormat = (SkyDist)$2;
+ localRulerCoordSystem = (Coord::CoordSystem)$1;
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = Coord::WCS;
+ localRulerDistFormat = (Coord::SkyDist)$2;
}
| skyFrame coordSystem
{
- localRulerCoordSystem = WCS;
- localRulerSkyFrame = (SkyFrame)$1;
- localRulerDistSystem = (CoordSystem)$2;
- localRulerDistFormat = DEGREE;
+ localRulerCoordSystem = Coord::WCS;
+ localRulerSkyFrame = (Coord::SkyFrame)$1;
+ localRulerDistSystem = (Coord::CoordSystem)$2;
+ localRulerDistFormat = Coord::DEGREE;
}
| skyFrame skyDist
{
- localRulerCoordSystem = WCS;
- localRulerSkyFrame = (SkyFrame)$1;
- localRulerDistSystem = WCS;
- localRulerDistFormat = (SkyDist)$2;
+ localRulerCoordSystem = Coord::WCS;
+ localRulerSkyFrame = (Coord::SkyFrame)$1;
+ localRulerDistSystem = Coord::WCS;
+ localRulerDistFormat = (Coord::SkyDist)$2;
}
| LINEAR_ coordSystem
{
- localRulerCoordSystem = WCS;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = (CoordSystem)$2;
- localRulerDistFormat = DEGREE;
+ localRulerCoordSystem = Coord::WCS;
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = (Coord::CoordSystem)$2;
+ localRulerDistFormat = Coord::DEGREE;
}
| LINEAR_ skyDist
{
- localRulerCoordSystem = WCS;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = WCS;
- localRulerDistFormat = (SkyDist)$2;
+ localRulerCoordSystem = Coord::WCS;
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = Coord::WCS;
+ localRulerDistFormat = (Coord::SkyDist)$2;
}
| skyDist
{
- localRulerCoordSystem = IMAGE;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = WCS;
- localRulerDistFormat = (SkyDist)$1;
+ localRulerCoordSystem = Coord::IMAGE;
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = Coord::WCS;
+ localRulerDistFormat = (Coord::SkyDist)$1;
}
| PIXELS_
{
- localRulerCoordSystem = IMAGE;
- localRulerSkyFrame = FK5;
- localRulerDistSystem = IMAGE;
- localRulerDistFormat = DEGREE;
+ localRulerCoordSystem = Coord::IMAGE;
+ localRulerSkyFrame = Coord::FK5;
+ localRulerDistSystem = Coord::IMAGE;
+ localRulerDistFormat = Coord::DEGREE;
}
;
localCompass : coordSystem skyFrame
{
- localCompassCoordSystem = (CoordSystem)$1;
- localCompassSkyFrame = (SkyFrame)$2;
+ localCompassCoordSystem = (Coord::CoordSystem)$1;
+ localCompassSkyFrame = (Coord::SkyFrame)$2;
}
| coordSystem
{
- localCompassCoordSystem = (CoordSystem)$1;
- localCompassSkyFrame = FK5;
+ localCompassCoordSystem = (Coord::CoordSystem)$1;
+ localCompassSkyFrame = Coord::FK5;
}
| skyFrame
{
- localCompassCoordSystem = WCS;
- localCompassSkyFrame = (SkyFrame)$1;
+ localCompassCoordSystem = Coord::WCS;
+ localCompassSkyFrame = (Coord::SkyFrame)$1;
}
| LINEAR_
{
- localCompassCoordSystem = WCS;
- localCompassSkyFrame = FK5;
+ localCompassCoordSystem = Coord::WCS;
+ localCompassSkyFrame = Coord::FK5;
}
;
@@ -1008,120 +1006,93 @@ initLocal : {
}
;
-pointProp : CIRCLE_ {$$ = CIRCLE;}
- | BOX_ {$$ = BOX;}
- | DIAMOND_ {$$ = DIAMOND;}
- | CROSS_ {$$ = CROSS;}
- | X_ {$$ = XPT;}
- | ARROW_ {$$ = ARROW;}
- | BOXCIRCLE_ {$$ = BOXCIRCLE;}
+pointShape : CIRCLE_ {$$ = Point::CIRCLE;}
+ | BOX_ {$$ = Point::BOX;}
+ | DIAMOND_ {$$ = Point::DIAMOND;}
+ | CROSS_ {$$ = Point::CROSS;}
+ | X_ {$$ = Point::EX;}
+ | ARROW_ {$$ = Point::ARROW;}
+ | BOXCIRCLE_ {$$ = Point::BOXCIRCLE;}
;
include : '+' {setProps(&localProps, Marker::INCLUDE, 1);}
| '-' {setProps(&localProps, Marker::INCLUDE, 0);}
;
-nonshape : TEXT_ bp coord ep conjuction nonshapeComment
- {fr->createTextCmd(Vector($3),
- localTextAngle,localTextRotate,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | COMPOSITE_ bp coord sp optangle ep conjuction nonshapeComment
- {fr->createCompositeCmd(Vector($3),
- $5, localComposite,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | VECTOR_ bp coord sp value sp angle ep conjuction nonshapeComment
- {fr->createVectCmd(Vector($3),
- $5,$7,
- localVector,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | PROJECTION_ bp coord sp coord sp value ep conjuction nonshapeComment
+nonshape : VECTOR_ bp coord sp value sp angle ep conjuction nonshapeComment
{
- // hard coded into projection.tcl
- fr->createProjectionCmd(Vector($3),
- Vector($5),
- $7,
- "ProjectionPlotCB", "ProjectionPlotDeleteCB",
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ fr->createVectCmd(Vector($3),
+ $5,$7,
+ localVector,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | TEXT_ bp coord ep conjuction nonshapeComment
+ {
+ fr->createTextCmd(Vector($3),
+ localTextAngle,localTextRotate,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
}
| RULER_ bp coord sp coord ep conjuction nonshapeComment
- {fr->createRulerCmd(Vector($3),
- Vector($5),
- localRulerCoordSystem, localRulerSkyFrame,
- localRulerDistSystem, localRulerDistFormat,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
+ {
+ fr->createRulerCmd(Vector($3),
+ Vector($5),
+ localRulerCoordSystem, localRulerSkyFrame,
+ localRulerDistSystem, localRulerDistFormat,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
| COMPASS_ bp coord sp value ep conjuction nonshapeComment
- {fr->createCompassCmd(Vector($3),
- $5,
- localCompassNorth, localCompassEast,
- localCompassNArrow, localCompassEArrow,
- localCompassCoordSystem, localCompassSkyFrame,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
+ {
+ fr->createCompassCmd(Vector($3),
+ $5,
+ localCompassNorth, localCompassEast,
+ localCompassNArrow, localCompassEArrow,
+ localCompassCoordSystem, localCompassSkyFrame,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | PROJECTION_ bp coord sp coord sp value ep conjuction nonshapeComment
+ {
+ fr->createProjectionCmd(Vector($3),
+ Vector($5),
+ $7,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
| CIRCLE3D_ bp coord sp value ep conjuction nonshapeComment
{
- // hard coded into circle3d.tcl
- fr->createCircle3dCmd(Vector($3),
- $5,
- "Circle3dPlotCB", "Circle3dPlotDeleteCB",
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ // backward compatibility
+ fr->createCircleCmd(Vector($3),
+ $5,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | COMPOSITE_ bp coord sp optangle ep conjuction nonshapeComment
+ {
+ fr->createCompositeCmd(Vector($3),
+ $5, localComposite,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
}
;
shape : CIRCLE_ bp coord sp value ep conjuction shapeComment
- {fr->createCircleCmd(Vector($3),
- $5,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | ANNULUS_ bp coord sp value sp value ep conjuction shapeComment
- {fr->createAnnulusCmd(Vector($3),
- $5,$7,1,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | ANNULUS_ bp coord sp value sp value sp aRads ep conjuction
- shapeComment
{
- aAnnuli[0] = $5;
- aAnnuli[1] = $7;
- fr->createAnnulusCmd(Vector($3),
- aNum,aAnnuli,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ fr->createCircleCmd(Vector($3),
+ $5,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
}
- | ANNULUS_ bp coord sp value sp value sp numberof ep conjuction
- shapeComment
- {fr->createAnnulusCmd(Vector($3),
- $5,$7,$9,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | CPANDA_ bp coord sp angle sp angle sp INT sp
- value sp value sp INT ep conjuction shapeComment
+ | CIRCLE3D_ bp coord sp value ep conjuction shapeComment
{
- switch (localCpanda) {
- case 0: /* ignore it */
- break;
- case 1: /* normal cpanda */
- fr->createCpandaCmd(Vector($3),
- $5,$7,$9,
- $11,$13,$15,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case 2: /* one of our special pandas */
- fr->createCpandaCmd(Vector($3),
- aAngNum,aAngles,
- aNum,aAnnuli,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- }
+ // backwards compatibility
+ fr->createCircleCmd(Vector($3),
+ $5,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
}
-
| ELLIPSE_ bp coord sp vvalue sp optangle ep conjuction shapeComment
{
// for ellipse annulus
@@ -1140,11 +1111,190 @@ shape : CIRCLE_ bp coord sp value ep conjuction shapeComment
aProps = localProps;
fr->createEllipseCmd(Vector($3),
- Vector($5),
- $7,
+ Vector($5),
+ $7,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | BOX_ bp coord sp vvalue sp optangle ep conjuction shapeComment
+ {
+ // for box annulus
+ aStatus = 3;
+ aCenter = Vector($3);
+ aAngles[0] = $7;
+ aVector[0] = Vector($5);
+ aNumsao = 1;
+ strncpy(aColor,localColor,16);
+ aDash[0] = localDash[0];
+ aDash[1] = localDash[1];
+ aWidth = localWidth;
+ strncpy(aFont,localFont,32);
+ strncpy(aText,localText,80);
+ strncpy(aComment,localComment,80);
+ aProps = localProps;
+
+ fr->createBoxCmd(Vector($3),
+ Vector($5),
+ $7,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | ROTBOX_ bp coord sp vvalue sp optangle ep conjuction shapeComment
+ {
+ // backwards compatibility
+ fr->createBoxCmd(Vector($3),
+ Vector($5),
+ $7,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | POLYGON_ {polylist.deleteAll();} bp polyNodes ep conjuction
+ shapeComment
+ {
+ fr->createPolygonCmd(polylist,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+
+ | LINE_ bp coord sp coord ep conjuction shapeComment
+ {
+ fr->createLineCmd(Vector($3),
+ Vector($5),
+ localLine1,localLine2,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | VECTOR_ bp coord sp value sp angle ep conjuction shapeComment
+ {
+ fr->createVectCmd(Vector($3),
+ $5,$7,
+ localVector,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | TEXT_ bp coord ep conjuction shapeComment
+ {
+ fr->createTextCmd(Vector($3),
+ localTextAngle,localTextRotate,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | TEXT_ bp coord sp STRING ep {strncpy(localText,$5,80);} conjuction
+ shapeComment
+ {
+ fr->createTextCmd(Vector($3),
+ localTextAngle,localTextRotate,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | POINT_ bp coord ep conjuction shapeComment
+ {
+ fr->createPointCmd(Vector($3),
+ (Point::PointShape)localPoint, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | CIRCLE_ POINT_ bp coord ep conjuction shapeComment
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector($4), Point::CIRCLE, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | BOX_ POINT_ bp coord ep conjuction shapeComment
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector($4), Point::BOX, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | DIAMOND_ POINT_ bp coord ep conjuction shapeComment
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector($4), Point::DIAMOND, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | CROSS_ POINT_ bp coord ep conjuction shapeComment
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector($4), Point::CROSS, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | X_ POINT_ bp coord ep conjuction shapeComment
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector($4), Point::EX, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | ARROW_ POINT_ bp coord ep conjuction shapeComment
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector($4), Point::ARROW, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | BOXCIRCLE_ POINT_ bp coord ep conjuction shapeComment
+ {
+ // backwards compatibility
+ fr->createPointCmd(Vector($4), Point::BOXCIRCLE, localPointSize,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | RULER_ bp coord sp coord ep conjuction shapeComment
+ {
+ fr->createRulerCmd(Vector($3),
+ Vector($5),
+ localRulerCoordSystem, localRulerSkyFrame,
+ localRulerDistSystem, localRulerDistFormat,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | COMPASS_ bp coord sp value ep conjuction shapeComment
+ {
+ fr->createCompassCmd(Vector($3),
+ $5,
+ localCompassNorth, localCompassEast,
+ localCompassNArrow, localCompassEArrow,
+ localCompassCoordSystem, localCompassSkyFrame,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | PROJECTION_ bp coord sp coord sp value ep conjuction shapeComment
+ {
+ fr->createProjectionCmd(Vector($3),
+ Vector($5),
+ $7,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | ANNULUS_ bp coord sp value sp value ep conjuction shapeComment
+ {
+ fr->createAnnulusCmd(Vector($3),
+ $5,$7,1,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
+ | ANNULUS_ bp coord sp value sp value sp aRads ep conjuction
+ shapeComment
+ {
+ aAnnuli[0] = $5;
+ aAnnuli[1] = $7;
+ fr->createAnnulusCmd(Vector($3),
+ aNum,aAnnuli,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
}
+ | ANNULUS_ bp coord sp value sp value sp numberof ep conjuction
+ shapeComment
+ {
+ fr->createAnnulusCmd(Vector($3),
+ $5,$7,$9,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
+ }
| ELLIPSE_ bp coord sp vvalue sp vvalue sp optangle ep conjuction
shapeComment
{
@@ -1177,68 +1327,14 @@ shape : CIRCLE_ bp coord sp value ep conjuction shapeComment
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
}
-
| ELLIPSE_ bp coord sp vvalue sp optangle ep '&' '!'
ELLIPSE_ bp coord sp vvalue sp optangle ep
{
+ // backwards compatibility
// old saoimage syntax
aStatus = 2;
aVector[aNumsao++] = Vector($5);
}
- | EPANDA_ bp coord sp angle sp angle sp INT sp
- vvalue sp vvalue sp INT sp optangle ep conjuction shapeComment
- {
- switch (localEpanda) {
- case 0: /* ignore it */
- break;
- case 1: /* normal epanda */
- fr->createEpandaCmd(Vector($3),
- $5,$7,$9,
- Vector($11),Vector($13),$15,
- $17,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case 2: /* one of our special pandas */
- fr->createEpandaCmd(Vector($3),
- aAngNum,aAngles,
- aNum,aVector,
- aAngle,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- }
- }
-
- | BOX_ bp coord sp vvalue sp optangle ep conjuction shapeComment
- {
- // for box annulus
- aStatus = 3;
- aCenter = Vector($3);
- aAngles[0] = $7;
- aVector[0] = Vector($5);
- aNumsao = 1;
- strncpy(aColor,localColor,16);
- aDash[0] = localDash[0];
- aDash[1] = localDash[1];
- aWidth = localWidth;
- strncpy(aFont,localFont,32);
- strncpy(aText,localText,80);
- strncpy(aComment,localComment,80);
- aProps = localProps;
-
- fr->createBoxCmd(Vector($3),
- Vector($5),
- $7,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- }
- | ROTBOX_ bp coord sp vvalue sp optangle ep conjuction shapeComment
- {fr->createBoxCmd(Vector($3),
- Vector($5),
- $7,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
| BOX_ bp coord sp vvalue sp vvalue sp optangle ep conjuction
shapeComment
{
@@ -1271,120 +1367,85 @@ shape : CIRCLE_ bp coord sp value ep conjuction shapeComment
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
}
-
| BOX_ bp coord sp vvalue sp optangle ep '&' '!'
BOX_ bp coord sp vvalue sp optangle ep
{
- // old saoimage syntax
+ // backwards compatibility
+ // old saoimage syntax
aStatus = 4;
aVector[aNumsao++] = Vector($5);
}
- | BPANDA_ bp coord sp angle sp angle sp INT sp
- vvalue sp vvalue sp INT sp optangle ep conjuction shapeComment
+
+ | CPANDA_ bp coord sp angle sp angle sp INT sp
+ value sp value sp INT ep conjuction shapeComment
{
- switch (localBpanda) {
+ switch (localCpanda) {
case 0: /* ignore it */
break;
- case 1: /* normal bpanda */
- fr->createBpandaCmd(Vector($3),
+ case 1: /* normal cpanda */
+ fr->createCpandaCmd(Vector($3),
$5,$7,$9,
- Vector($11),Vector($13),$15,
- $17,
+ $11,$13,$15,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
case 2: /* one of our special pandas */
- fr->createBpandaCmd(Vector($3),
+ fr->createCpandaCmd(Vector($3),
aAngNum,aAngles,
- aNum,aVector,
- aAngle,
+ aNum,aAnnuli,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
}
}
-
- | LINE_ bp coord sp coord ep conjuction shapeComment
- {fr->createLineCmd(Vector($3),
- Vector($5),
- localLine1,localLine2,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
-
- | POINT_ bp coord ep conjuction shapeComment
+ | EPANDA_ bp coord sp angle sp angle sp INT sp
+ vvalue sp vvalue sp INT sp optangle ep conjuction shapeComment
{
- switch (localPoint) {
- case CIRCLE:
- fr->createCirclePointCmd(Vector($3), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- break;
- case BOX:
- fr->createBoxPointCmd(Vector($3), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ switch (localEpanda) {
+ case 0: /* ignore it */
break;
- case DIAMOND:
- fr->createDiamondPointCmd(Vector($3), localPointSize,
+ case 1: /* normal epanda */
+ fr->createEpandaCmd(Vector($3),
+ $5,$7,$9,
+ Vector($11),Vector($13),$15,
+ $17,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
- case CROSS:
- fr->createCrossPointCmd(Vector($3), localPointSize,
+ case 2: /* one of our special pandas */
+ fr->createEpandaCmd(Vector($3),
+ aAngNum,aAngles,
+ aNum,aVector,
+ aAngle,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
- case XPT:
- fr->createExPointCmd(Vector($3), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ }
+ }
+ | BPANDA_ bp coord sp angle sp angle sp INT sp
+ vvalue sp vvalue sp INT sp optangle ep conjuction shapeComment
+ {
+ switch (localBpanda) {
+ case 0: /* ignore it */
break;
- case ARROW:
- fr->createArrowPointCmd(Vector($3), localPointSize,
+ case 1: /* normal bpanda */
+ fr->createBpandaCmd(Vector($3),
+ $5,$7,$9,
+ Vector($11),Vector($13),$15,
+ $17,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
- case BOXCIRCLE:
- fr->createBoxCirclePointCmd(Vector($3), localPointSize,
+ case 2: /* one of our special pandas */
+ fr->createBpandaCmd(Vector($3),
+ aAngNum,aAngles,
+ aNum,aVector,
+ aAngle,
localColor,localDash,localWidth,localFont,
localText,localProps,localComment,taglist,cblist);
break;
}
}
- | CIRCLE_ POINT_ bp coord ep conjuction shapeComment
- {fr->createCirclePointCmd(Vector($4), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | BOX_ POINT_ bp coord ep conjuction shapeComment
- {fr->createBoxPointCmd(Vector($4), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | DIAMOND_ POINT_ bp coord ep conjuction shapeComment
- {fr->createDiamondPointCmd(Vector($4), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | CROSS_ POINT_ bp coord ep conjuction shapeComment
- {fr->createCrossPointCmd(Vector($4), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | X_ POINT_ bp coord ep conjuction shapeComment
- {fr->createExPointCmd(Vector($4), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | ARROW_ POINT_ bp coord ep conjuction shapeComment
- {fr->createArrowPointCmd(Vector($4), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | BOXCIRCLE_ POINT_ bp coord ep conjuction shapeComment
- {fr->createBoxCirclePointCmd(Vector($4), localPointSize,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
-
- | POLYGON_ {polylist.deleteAll();} bp polyNodes ep conjuction
- shapeComment
- {fr->createPolygonCmd(polylist,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
| PIE_ bp coord sp angle sp angle ep conjuction shapeComment
| PIE_ bp coord sp angle sp angle sp aAngs ep conjuction shapeComment
@@ -1392,61 +1453,12 @@ shape : CIRCLE_ bp coord sp value ep conjuction shapeComment
shapeComment
| FIELD_ bp ep conjuction shapeComment
- | TEXT_ bp coord ep conjuction shapeComment
- {fr->createTextCmd(Vector($3),
- localTextAngle,localTextRotate,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | TEXT_ bp coord sp STRING ep {strncpy(localText,$5,80);} conjuction
- shapeComment
- {fr->createTextCmd(Vector($3),
- localTextAngle,localTextRotate,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
| COMPOSITE_ bp coord sp optangle ep conjuction shapeComment
- {fr->createCompositeCmd(Vector($3),
- $5, localComposite,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | VECTOR_ bp coord sp value sp angle ep conjuction shapeComment
- {fr->createVectCmd(Vector($3),
- $5,$7,
- localVector,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | PROJECTION_ bp coord sp coord sp value ep conjuction shapeComment
{
- // hard coded into projection.tcl
- fr->createProjectionCmd(Vector($3),
- Vector($5),
- $7,
- "ProjectionPlotCB", "ProjectionPlotDeleteCB",
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
- }
- | RULER_ bp coord sp coord ep conjuction shapeComment
- {fr->createRulerCmd(Vector($3),
- Vector($5),
- localRulerCoordSystem, localRulerSkyFrame,
- localRulerDistSystem, localRulerDistFormat,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | COMPASS_ bp coord sp value ep conjuction shapeComment
- {fr->createCompassCmd(Vector($3),
- $5,
- localCompassNorth, localCompassEast,
- localCompassNArrow, localCompassEArrow,
- localCompassCoordSystem, localCompassSkyFrame,
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);}
- | CIRCLE3D_ bp coord sp value ep conjuction shapeComment
- {
- // hard coded into circle3d.tcl
- fr->createCircle3dCmd(Vector($3),
- $5,
- "Circle3dPlotCB", "Circle3dPlotDeleteCB",
- localColor,localDash,localWidth,localFont,
- localText,localProps,localComment,taglist,cblist);
+ fr->createCompositeCmd(Vector($3),
+ $5, localComposite,
+ localColor,localDash,localWidth,localFont,
+ localText,localProps,localComment,taglist,cblist);
}
;
@@ -1524,23 +1536,23 @@ static void setProps(unsigned short* props, unsigned short prop, int value)
*props &= ~prop;
}
-static CoordSystem checkWCSSystem()
+static Coord::CoordSystem checkWCSSystem()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return WCS;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::WCS;
default:
return localSystem;
}
}
-static SkyFrame checkWCSSky()
+static Coord::SkyFrame checkWCSSky()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return FK5;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::FK5;
default:
return localSky;
}
diff --git a/saotk/frame/ellipse.C b/saotk/frame/ellipse.C
index e93bddb..8f3cebb 100644
--- a/saotk/frame/ellipse.C
+++ b/saotk/frame/ellipse.C
@@ -3,14 +3,12 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "ellipse.h"
-#include "framebase.h"
#include "fitsimage.h"
Ellipse::Ellipse(const Ellipse& a) : BaseEllipse(a) {}
Ellipse::Ellipse(Base* p, const Vector& ctr,
- const Vector& r,
- double ang,
+ const Vector& r, double ang,
const char* clr, int* dsh,
int wth, const char* fnt, const char* txt,
unsigned short prop, const char* cmt,
@@ -21,7 +19,7 @@ Ellipse::Ellipse(Base* p, const Vector& ctr,
annuli_ = new Vector[numAnnuli_];
annuli_[0] = r;
- strcpy(type,"ellipse");
+ strcpy(type_,"ellipse");
numHandle = 4;
updateBBox();
@@ -36,23 +34,60 @@ void Ellipse::edit(const Vector& v, int h)
doCallBack(CallBack::EDITCB);
}
+void Ellipse::analysis(AnalysisMethod mm, int which)
+{
+ switch (mm) {
+ case PLOT3D:
+ if (!analysisPlot3d_ && which) {
+ addCallBack(CallBack::MOVECB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::EDITCB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::ROTATECB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::DELETECB, analysisPlot3dCB_[1],
+ parent->options->cmdName);
+ }
+ if (analysisPlot3d_ && !which) {
+ deleteCallBack(CallBack::MOVECB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::EDITCB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::ROTATECB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::DELETECB, analysisPlot3dCB_[1]);
+ }
+
+ analysisPlot3d_ = which;
+ break;
+ }
+}
+
+void Ellipse::analysisPlot3d(char* xname, char* yname)
+{
+ double* x;
+ double* y;
+ Vector ll = -annuli_[0] * Rotate(angle) * Translate(center);
+ Vector ur = annuli_[0] * Rotate(angle) * Translate(center);
+ BBox bb(ll,ur);
+ int num = parent->markerAnalysisPlot3d(&x, &y, this, bb);
+ analysisPlot3dResult(xname, yname, x, y, num);
+}
+
// list
-void Ellipse::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Ellipse::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
Vector r = ptr->mapLenFromRef(annuli_[0],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r[0] << ',' << r[1] << ','
<< radToDeg(parent->mapAngleFromRef(angle,sys)) << ')';
}
@@ -61,16 +96,16 @@ void Ellipse::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- Vector r = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector r = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r[0] << "\"" << ',' << r[1] << "\"" << ','
<< radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -79,8 +114,8 @@ void Ellipse::list(ostream& str, CoordSystem sys, SkyFrame sky,
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- Vector r = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- str << type << '(' << ra << ',' << dec << ','
+ Vector r = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ str << type_ << '(' << ra << ',' << dec << ','
<< r[0] << "\""<< ',' << r[1] << "\""<< ','
<< radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
}
@@ -90,7 +125,7 @@ void Ellipse::list(ostream& str, CoordSystem sys, SkyFrame sky,
else {
Vector v = ptr->mapFromRef(center,sys);
Vector r = ptr->mapLenFromRef(annuli_[0],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r[0] << ',' << r[1] << ','
<< radToDeg(parent->mapAngleFromRef(angle,sys)) << ')';
}
@@ -100,13 +135,13 @@ void Ellipse::list(ostream& str, CoordSystem sys, SkyFrame sky,
listPost(str, conj, strip);
}
-void Ellipse::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Ellipse::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRowRadius(ptr,sys,annuli_[0]);
@@ -116,7 +151,7 @@ void Ellipse::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
XMLRowEnd(str);
}
-void Ellipse::listCiao(ostream& str, CoordSystem sys, int strip)
+void Ellipse::listCiao(ostream& str, Coord::CoordSystem sys, int strip)
{
FitsImage* ptr = parent->findFits();
listCiaoPre(str);
@@ -124,28 +159,28 @@ void Ellipse::listCiao(ostream& str, CoordSystem sys, int strip)
// radius is always in image coords
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,PHYSICAL);
- Vector r = ptr->mapLenFromRef(annuli_[0],PHYSICAL);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector v = ptr->mapFromRef(center,Coord::PHYSICAL);
+ Vector r = ptr->mapLenFromRef(annuli_[0],Coord::PHYSICAL);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r[0] << ',' << r[1] << ',' << radToDeg(angle) << ')';
}
break;
default:
if (ptr->hasWCSCel(sys)) {
- Vector r = ptr->mapLenFromRef(annuli_[0],sys,ARCMIN);
+ Vector r = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCMIN);
char buf[64];
- ptr->mapFromRef(center,sys,FK5,SEXAGESIMAL,buf,64);
+ ptr->mapFromRef(center,sys,Coord::FK5,Coord::SEXAGESIMAL,buf,64);
char ra[16];
char dec[16];
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << type << '(' << ra << ',' << dec << ','
+ str << type_ << '(' << ra << ',' << dec << ','
<< r[0] << '\'' << ',' << r[1] << '\'' << ','
<< radToDeg(angle) << ')';
}
@@ -155,8 +190,8 @@ void Ellipse::listCiao(ostream& str, CoordSystem sys, int strip)
listCiaoPost(str, strip);
}
-void Ellipse::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Ellipse::listSAOtng(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
listSAOtngPre(str, strip);
@@ -164,39 +199,39 @@ void Ellipse::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
// radius is always in image coords
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,IMAGE);
- Vector r = ptr->mapLenFromRef(annuli_[0],IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
+ Vector r = ptr->mapLenFromRef(annuli_[0],Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r[0] << ',' << r[1] << ',' << radToDeg(angle) << ')';
}
break;
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- Vector r = ptr->mapLenFromRef(annuli_[0],IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector r = ptr->mapLenFromRef(annuli_[0],Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< r[0] << ',' << r[1] << ',' << radToDeg(angle) << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
- Vector r = ptr->mapLenFromRef(annuli_[0],IMAGE);
+ Vector r = ptr->mapLenFromRef(annuli_[0],Coord::IMAGE);
char ra[16];
char dec[16];
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << type << '(' << ra << ',' << dec << ','
+ str << type_ << '(' << ra << ',' << dec << ','
<< r[0] << ',' << r[1] << ',' << radToDeg(angle) << ')';
}
break;
@@ -208,39 +243,39 @@ void Ellipse::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
listSAOtngPost(str, strip);
}
-void Ellipse::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Ellipse::listPros(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
switch (sys) {
- case IMAGE:
- case DETECTOR:
- case AMPLIFIER:
- sys = IMAGE;
- case PHYSICAL:
+ case Coord::IMAGE:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
+ sys = Coord::IMAGE;
+ case Coord::PHYSICAL:
{
Vector v = ptr->mapFromRef(center,sys);
- Vector r = ptr->mapLenFromRef(annuli_[0],IMAGE);
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << setprecision(8) << v << r
+ Vector r = ptr->mapLenFromRef(annuli_[0],Coord::IMAGE);
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << setprecision(8) << v << r
<< radToDeg(angle);
}
break;
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- Vector r = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << setprecision(8)
+ Vector r = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << setprecision(8)
<< v[0] << "d " << v[1] << "d "
<< r[0] << "\" " << r[1] << "\" " << radToDeg(angle);
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -253,9 +288,9 @@ void Ellipse::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
if (dec[0]=='+')
dec++;
- Vector r = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ' << ra << ' ' << dec << ' '
+ Vector r = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ' << ra << ' ' << dec << ' '
<< r[0] << "\" " << r[1] << "\" "
<< radToDeg(angle);
}
@@ -272,8 +307,8 @@ void Ellipse::listSAOimage(ostream& str, int strip)
FitsImage* ptr = parent->findFits();
listSAOimagePre(str);
- Vector v = ptr->mapFromRef(center,IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< annuli_[0][0] << ',' << annuli_[0][1] << ','
<< radToDeg(angle) << ')';
diff --git a/saotk/frame/ellipse.h b/saotk/frame/ellipse.h
index bcab40b..4183962 100644
--- a/saotk/frame/ellipse.h
+++ b/saotk/frame/ellipse.h
@@ -17,15 +17,18 @@ public:
unsigned short prop, const char* cmt,
const List<Tag>& tg, const List<CallBack>& cb);
- Marker* dup() {return new Ellipse(*this);}
+ virtual Marker* dup() {return new Ellipse(*this);}
void edit(const Vector&, int);
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listCiao(ostream&, CoordSystem, int);
- void listSAOtng(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void listPros(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void listSAOimage(ostream&, int);
+ void analysis(AnalysisMethod, int);
+ void analysisPlot3d(char*, char*);
+
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ virtual void listCiao(ostream&, Coord::CoordSystem, int);
+ virtual void listSAOtng(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ virtual void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ virtual void listSAOimage(ostream&, int);
};
#endif
diff --git a/saotk/frame/ellipseannulus.C b/saotk/frame/ellipseannulus.C
index 8ca4594..8ba62df 100644
--- a/saotk/frame/ellipseannulus.C
+++ b/saotk/frame/ellipseannulus.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "ellipseannulus.h"
-#include "framebase.h"
#include "fitsimage.h"
EllipseAnnulus::EllipseAnnulus(const EllipseAnnulus& a) : BaseEllipse(a) {}
@@ -22,7 +21,7 @@ EllipseAnnulus::EllipseAnnulus(Base* p, const Vector& ctr,
annuli_[0] = r;
- strcpy(type,"ellipseannulus");
+ strcpy(type_,"ellipseannulus");
numHandle = 4;
updateBBox();
@@ -43,7 +42,7 @@ EllipseAnnulus::EllipseAnnulus(Base* p, const Vector& ctr,
for (int i=0; i<numAnnuli_; i++)
annuli_[i] = ((outer-inner)/num)*i+inner;
- strcpy(type, "ellipseannulus");
+ strcpy(type_, "ellipseannulus");
numHandle = 4 + numAnnuli_;
updateBBox();
@@ -66,7 +65,7 @@ EllipseAnnulus::EllipseAnnulus(Base* p, const Vector& ctr,
annuli_[i] = r[i];
sortAnnuli();
- strcpy(type, "ellipseannulus");
+ strcpy(type_, "ellipseannulus");
numHandle = 4 + numAnnuli_;
updateBBox();
@@ -117,17 +116,17 @@ int EllipseAnnulus::addAnnuli(const Vector& v)
// list
-void EllipseAnnulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void EllipseAnnulus::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
str << "ellipse(" << setprecision(8) << v[0] << ',' << v[1] << ',';
@@ -142,18 +141,18 @@ void EllipseAnnulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
str << "ellipse(" << setprecision(8) << v[0] << ',' << v[1] << ',';
for (int i=0; i<numAnnuli_; i++) {
- Vector r = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
str << r[0] << "\"" << ',' << r[1] << "\"" << ',' ;
}
str << radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -165,7 +164,7 @@ void EllipseAnnulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
str << "ellipse(" << ra << ',' << dec << ',' ;
for (int i=0; i<numAnnuli_; i++) {
- Vector r = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
str << r[0] << "\""<< ',' << r[1] << "\""<< ',';
}
str << radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
@@ -188,13 +187,13 @@ void EllipseAnnulus::list(ostream& str, CoordSystem sys, SkyFrame sky,
listPost(str, conj, strip);
}
-void EllipseAnnulus::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void EllipseAnnulus::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRowRadius(ptr,sys,annuli_,numAnnuli_);
@@ -204,28 +203,28 @@ void EllipseAnnulus::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
XMLRowEnd(str);
}
-void EllipseAnnulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void EllipseAnnulus::listPros(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
switch (sys) {
- case IMAGE:
- case DETECTOR:
- case AMPLIFIER:
- sys = IMAGE;
- case PHYSICAL:
+ case Coord::IMAGE:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
+ sys = Coord::IMAGE;
+ case Coord::PHYSICAL:
{
Vector v = ptr->mapFromRef(center,sys);
for (int i=0; i<numAnnuli_; i++) {
- listProsCoordSystem(str,sys,sky);
+ coord.listProsCoordSystem(str,sys,sky);
str << "; ";
- Vector r = ptr->mapLenFromRef(annuli_[i],IMAGE);
+ Vector r = ptr->mapLenFromRef(annuli_[i],Coord::IMAGE);
str << "ellipse " << setprecision(8) << v << r << radToDeg(angle);
if (i!=0) {
- Vector r1 = ptr->mapLenFromRef(annuli_[i-1],IMAGE);
+ Vector r1 = ptr->mapLenFromRef(annuli_[i-1],Coord::IMAGE);
str << " & !ellipse " << setprecision(8) << v << r1<<radToDeg(angle);
}
@@ -236,19 +235,19 @@ void EllipseAnnulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
for (int i=0; i<numAnnuli_; i++) {
- listProsCoordSystem(str,sys,sky);
+ coord.listProsCoordSystem(str,sys,sky);
str << "; ";
- Vector r = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
str << "ellipse " << setprecision(8) << v[0] << "d " << v[1]<<"d "
<< r[0] << "\" " << r[1] << "\" " << radToDeg(angle);
if (i!=0) {
- Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,ARCSEC);
+ Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,Coord::ARCSEC);
str << " & !ellipse " << setprecision(8)
<< v[0] << "d " << v[1] << "d "
<< r1[0] << "\" " << r1[1] << "\" " << radToDeg(angle);
@@ -258,7 +257,7 @@ void EllipseAnnulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -272,15 +271,15 @@ void EllipseAnnulus::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
dec++;
for (int i=0; i<numAnnuli_; i++) {
- listProsCoordSystem(str,sys,sky);
+ coord.listProsCoordSystem(str,sys,sky);
str << "; ";
- Vector r = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
str << "ellipse " << ra << ' ' << dec << ' '
<< r[0] << "\" " << r[1] << "\" " << radToDeg(angle);
if (i!=0) {
- Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,ARCSEC);
+ Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,Coord::ARCSEC);
str << " & !ellipse " << ra << ' ' << dec << ' '
<< r1[0] << "\" " << r1[1] << "\" " << radToDeg(angle);
}
@@ -300,7 +299,7 @@ void EllipseAnnulus::listSAOimage(ostream& str, int strip)
listSAOimagePre(str);
for (int i=0; i<numAnnuli_; i++) {
- Vector v = ptr->mapFromRef(center,IMAGE);
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
str << "ellipse(" << setprecision(8) << v[0] << ',' << v[1] << ','
<< annuli_[i][0] << ',' << annuli_[i][1] << ',' << radToDeg(angle) << ')';
diff --git a/saotk/frame/ellipseannulus.h b/saotk/frame/ellipseannulus.h
index 2014593..cf80d5f 100644
--- a/saotk/frame/ellipseannulus.h
+++ b/saotk/frame/ellipseannulus.h
@@ -38,9 +38,9 @@ public:
int addAnnuli(const Vector&);
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listPros(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
void listSAOimage(ostream&, int);
};
diff --git a/saotk/frame/epanda.C b/saotk/frame/epanda.C
index bcc3c0f..0b70fa8 100644
--- a/saotk/frame/epanda.C
+++ b/saotk/frame/epanda.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "epanda.h"
-#include "framebase.h"
#include "fitsimage.h"
Epanda::Epanda(const Epanda& a) : BasePanda(a), BaseEllipse(a) {}
@@ -25,7 +24,7 @@ Epanda::Epanda(Base* p, const Vector& ctr,
for (int ii=0; ii<numAnnuli_; ii++)
annuli_[ii] = ((r2-r1)/rn)*ii+r1;
- strcpy(type, "epanda");
+ strcpy(type_, "epanda");
numHandle = 4 + numAnnuli_ + numAngles_;
startAng_ = angles_[0];
@@ -52,7 +51,7 @@ Epanda::Epanda(Base* p, const Vector& ctr,
annuli_[ii] = r[ii];
sortAnnuli();
- strcpy(type, "epanda");
+ strcpy(type_, "epanda");
numHandle = 4 + numAnnuli_ + numAngles_;
startAng_ = angles_[0];
@@ -61,7 +60,7 @@ Epanda::Epanda(Base* p, const Vector& ctr,
updateBBox();
}
-void Epanda::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Epanda::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
BaseEllipse::renderX(drawable, sys, mode);
@@ -101,8 +100,8 @@ void Epanda::renderPS(int mode)
Vector r1 = annuli_[numAnnuli_-1];
for (int ii=0; ii<numAngles_; ii++) {
- Vector rr0 = fwdMap(intersect(r0,-angles_[ii]),CANVAS);
- Vector rr1 = fwdMap(intersect(r1,-angles_[ii]),CANVAS);
+ Vector rr0 = fwdMap(intersect(r0,-angles_[ii]),Coord::CANVAS);
+ Vector rr1 = fwdMap(intersect(r1,-angles_[ii]),Coord::CANVAS);
ostringstream str;
str << "newpath "
@@ -124,8 +123,8 @@ void Epanda::renderMACOSX()
Vector r1 = annuli_[numAnnuli_-1];
for (int ii=0; ii<numAngles_; ii++) {
- Vector rr0 = fwdMap(intersect(r0,-angles_[ii]),CANVAS);
- Vector rr1 = fwdMap(intersect(r1,-angles_[ii]),CANVAS);
+ Vector rr0 = fwdMap(intersect(r0,-angles_[ii]),Coord::CANVAS);
+ Vector rr1 = fwdMap(intersect(r1,-angles_[ii]),Coord::CANVAS);
macosxDrawLine(rr0,rr1);
}
@@ -143,8 +142,8 @@ void Epanda::renderWIN32()
Vector r1 = annuli_[numAnnuli_-1];
for (int ii=0; ii<numAngles_; ii++) {
- Vector rr0 = fwdMap(intersect(r0,-angles_[ii]),CANVAS);
- Vector rr1 = fwdMap(intersect(r1,-angles_[ii]),CANVAS);
+ Vector rr0 = fwdMap(intersect(r0,-angles_[ii]),Coord::CANVAS);
+ Vector rr1 = fwdMap(intersect(r1,-angles_[ii]),Coord::CANVAS);
win32DrawLine(rr0,rr1);
}
@@ -159,7 +158,7 @@ void Epanda::updateHandles()
Vector rr = annuli_[numAnnuli_-1];
for (int ii=0; ii<numAngles_; ii++)
- handle[ii+4+numAnnuli_] = fwdMap(intersect(rr,-angles_[ii]),CANVAS);
+ handle[ii+4+numAnnuli_] = fwdMap(intersect(rr,-angles_[ii]),Coord::CANVAS);
}
void Epanda::edit(const Vector& v, int h)
@@ -326,8 +325,8 @@ void Epanda::deleteAnglesAnnuli(int h)
// list
-void Epanda::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Epanda::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
int regular = 1;
if (numAngles_>2) {
@@ -368,17 +367,17 @@ void Epanda::list(ostream& str, CoordSystem sys, SkyFrame sky,
listB(str, sys, sky, format, conj, strip);
}
-void Epanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Epanda::listA(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
double ang1 = radToDeg(parent->mapAngleFromRef(angles_[0],sys));
double ang2 = radToDeg(parent->mapAngleFromRef(angles_[numAngles_-1],sys));
@@ -388,7 +387,7 @@ void Epanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
Vector v = ptr->mapFromRef(center,sys);
Vector r1 = ptr->mapLenFromRef(annuli_[0],sys);
Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ',' << numAngles_-1 << ','
<< r1[0] << ',' << r1[1] << ',' << r2[0] << ',' << r2[1] << ','
<< numAnnuli_-1 << ','
@@ -399,7 +398,7 @@ void Epanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
double ang1 = radToDeg(parent->mapAngleFromRef(angles_[0],sys,sky));
double ang2 = radToDeg(parent->mapAngleFromRef(angles_[numAngles_-1],sys,sky));
@@ -408,9 +407,9 @@ void Epanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
ang2 += 360;
Vector v = ptr->mapFromRef(center,sys,sky);
- Vector r1 = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys,ARCSEC);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ Vector r1 = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys,Coord::ARCSEC);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 <<',' << numAngles_-1 << ','
<< r1[0] << '"' << ',' << r1[1] << '"' << ','
<< r2[0] << '"' << ',' << r2[1] << '"' << ','
@@ -418,7 +417,7 @@ void Epanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
<< radToDeg(parent->mapAngleFromRef(angle,sys,sky)) << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -434,9 +433,9 @@ void Epanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
if (ang2<=ang1+FLT_EPSILON)
ang2 += 360;
- Vector r1 = ptr->mapLenFromRef(annuli_[0],sys,ARCSEC);
- Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys,ARCSEC);
- str << type << '(' << ra << ',' << dec << ','
+ Vector r1 = ptr->mapLenFromRef(annuli_[0],sys,Coord::ARCSEC);
+ Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys,Coord::ARCSEC);
+ str << type_ << '(' << ra << ',' << dec << ','
<< ang1 << ',' << ang2 <<',' << numAngles_-1 << ','
<< r1[0] << '"' << ',' << r1[1] << '"' << ','
<< r2[0] << '"' << ',' << r2[1] << '"' << ','
@@ -456,7 +455,7 @@ void Epanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
Vector v = ptr->mapFromRef(center,sys);
Vector r1 = ptr->mapLenFromRef(annuli_[0],sys);
Vector r2 = ptr->mapLenFromRef(annuli_[numAnnuli_-1],sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 <<',' << numAngles_-1 << ','
<< r1[0] << ',' << r1[1] << ',' << r2[0] << ',' << r2[1] << ','
<< numAnnuli_-1 << ','
@@ -468,16 +467,16 @@ void Epanda::listA(ostream& str, CoordSystem sys, SkyFrame sky,
listPost(str, conj, strip);
}
-void Epanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Epanda::listB(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
for (int j=1; j<numAngles_; j++) {
@@ -492,7 +491,7 @@ void Epanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys);
Vector r2 = ptr->mapLenFromRef(annuli_[i],sys);
- str << type << '(' << setprecision(8)
+ str << type_ << '(' << setprecision(8)
<< v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ",1,"
<< r1[0] << ',' << r1[1] << ',' << r2[0] << ',' << r2[1] << ','
@@ -540,7 +539,7 @@ void Epanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
for (int j=1; j<numAngles_; j++) {
@@ -553,9 +552,9 @@ void Epanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
for (int i=1; i<numAnnuli_; i++) {
listPre(str, sys, sky, ptr, strip, 0);
- Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,ARCSEC);
- Vector r2 = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
- str << type << '(' << setprecision(8)
+ Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,Coord::ARCSEC);
+ Vector r2 = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
+ str << type_ << '(' << setprecision(8)
<< v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ",1,"
<< r1[0] << '"' << ',' << r1[1] << '"' << ','
@@ -576,7 +575,7 @@ void Epanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
<< ((k<numAngles_-1) ? ' ' : ')');
str << '(';
for (int k=0; k<numAnnuli_; k++) {
- Vector r = ptr->mapLenFromRef(annuli_[k],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[k],sys,Coord::ARCSEC);
str << r[0] << '"' << ' ' << r[1] << '"'
<< ((k<numAnnuli_-1) ? ' ' : ')');
}
@@ -600,7 +599,7 @@ void Epanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -620,9 +619,9 @@ void Epanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
for (int i=1; i<numAnnuli_; i++) {
listPre(str, sys, sky, ptr, strip, 0);
- Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,ARCSEC);
- Vector r2 = ptr->mapLenFromRef(annuli_[i],sys,ARCSEC);
- str << type << '(' << ra << ',' << dec << ','
+ Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys,Coord::ARCSEC);
+ Vector r2 = ptr->mapLenFromRef(annuli_[i],sys,Coord::ARCSEC);
+ str << type_ << '(' << ra << ',' << dec << ','
<< ang1 << ',' << ang2 << ",1,"
<< r1[0] << '"' << ',' << r1[1] << '"' <<','
<< r2[0] << '"' << ',' << r2[1] << '"' <<','
@@ -642,7 +641,7 @@ void Epanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
<< ((k<numAngles_-1) ? ' ' : ')');
str << '(';
for (int k=0; k<numAnnuli_; k++) {
- Vector r = ptr->mapLenFromRef(annuli_[k],sys,ARCSEC);
+ Vector r = ptr->mapLenFromRef(annuli_[k],sys,Coord::ARCSEC);
str << r[0] << '"' << ' ' << r[1] << '"'
<< ((k<numAnnuli_-1) ? ' ' : ')');
}
@@ -683,7 +682,7 @@ void Epanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
Vector r1 = ptr->mapLenFromRef(annuli_[i-1],sys);
Vector r2 = ptr->mapLenFromRef(annuli_[i],sys);
- str << type << '(' << setprecision(8)
+ str << type_ << '(' << setprecision(8)
<< v[0] << ',' << v[1] << ','
<< ang1 << ',' << ang2 << ",1,"
<< r1[0] << ',' << r1[1] << ',' << r2[0] << ',' << r2[1] << ','
@@ -728,13 +727,13 @@ void Epanda::listB(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
-void Epanda::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Epanda::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRowRadius(ptr,sys,annuli_,numAnnuli_);
diff --git a/saotk/frame/epanda.h b/saotk/frame/epanda.h
index 31ea3dd..4447b13 100644
--- a/saotk/frame/epanda.h
+++ b/saotk/frame/epanda.h
@@ -10,7 +10,7 @@
class Epanda : public BasePanda, public BaseEllipse {
private:
- void renderX(Drawable, InternalSystem, RenderMode);
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
void renderPS(int);
#ifdef _MACOSX
void renderMACOSX();
@@ -21,8 +21,8 @@ class Epanda : public BasePanda, public BaseEllipse {
void updateHandles();
- void listA(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listB(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
+ void listA(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listB(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
public:
Epanda(const Epanda&);
@@ -55,8 +55,8 @@ class Epanda : public BasePanda, public BaseEllipse {
void setAnglesAnnuli(const double*, int, const Vector*, int);
void deleteAnglesAnnuli(int h);
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
};
#endif
diff --git a/saotk/frame/fitsbin.C b/saotk/frame/fitsbin.C
index 701c05d..35bcef3 100644
--- a/saotk/frame/fitsbin.C
+++ b/saotk/frame/fitsbin.C
@@ -82,6 +82,18 @@ void FitsImage::initHist()
nextHist(getHistCenter());
}
+int FitsImage::hasBinCol(const char* str)
+{
+ if (fits_) {
+ FitsHead* head = fits_->head();
+ if (head) {
+ FitsTableHDU* hdu = (FitsTableHDU*)head->hdu();
+ return hdu->find(str) ? 1 : 0;
+ }
+ }
+ return 0;
+}
+
void FitsImage::setBinCursor(const Vector& v)
{
histCursor = v * refToPhysical;
diff --git a/saotk/frame/fitsdata.C b/saotk/frame/fitsdata.C
index e1bfa1a..9277c8d 100644
--- a/saotk/frame/fitsdata.C
+++ b/saotk/frame/fitsdata.C
@@ -7,8 +7,6 @@
#include "NaN.h"
-#define AUTOCUTSIZE 2048
-
// ZSCALE
#define ZSMAX(a,b) ((a) > (b) ? (a) : (b))
@@ -83,8 +81,6 @@ FitsData::FitsData(FitsFile* fits, Base* p)
zLine = 5;
zscaleValid = 0;
- autoCutHist = NULL;
- autoCutTotal = 0;
autoCutValid = 0;
autoCutPer = 0;
@@ -116,8 +112,6 @@ FitsData::FitsData(FitsFile* fits, Base* p)
FitsData::~FitsData()
{
- if (autoCutHist)
- delete [] autoCutHist;
}
const char* FitsData::getLow()
@@ -152,38 +146,34 @@ int FitsData::getIncr()
}
// AutoCut
+#define AUTOCUTSIZE 10240
void FitsData::autoCut(FitsBound* params)
{
double amin = getMinDouble();
double amax = getMaxDouble();
- if (!autoCutHist) {
- // bin it up
- autoCutHist = new double[AUTOCUTSIZE];
- for (int i=0; i<AUTOCUTSIZE; i++)
- autoCutHist[i] = 0;
- bin(autoCutHist, AUTOCUTSIZE, amin, amax, params);
-
- // find total number of pixels
- {
- autoCutTotal = 0;
- for (int i=0; i<AUTOCUTSIZE; i++)
- autoCutTotal += autoCutHist[i];
- }
- }
+ // bin it up
+ double hist[AUTOCUTSIZE];
+ memset(hist,0,sizeof(double)*AUTOCUTSIZE);
+ bin(hist, AUTOCUTSIZE, amin, amax, params);
+
+ // find total number of pixels
+ int total = 0;
+ for (int ii=0; ii<AUTOCUTSIZE; ii++)
+ total += hist[ii];
// calc cut off
- int cutoff = (autoCutTotal*(100.-autoCutPer)/100.)/2.;
+ int cutoff = (total*(100.-autoCutPer)/100.)/2.;
int count;
int ll, hh;
for (ll=0,count=0; ll<AUTOCUTSIZE; ll++) {
- count += autoCutHist[ll];
+ count += hist[ll];
if (count > cutoff)
break;
}
- for (hh=AUTOCUTSIZE-1,count=0; hh>=0; hh--) {
- count += autoCutHist[hh];
+ for (hh=AUTOCUTSIZE-1,count=0; hh>ll+1; hh--) {
+ count += hist[hh];
if (count > cutoff)
break;
}
diff --git a/saotk/frame/fitsdata.h b/saotk/frame/fitsdata.h
index 5b0f87c..42d232f 100644
--- a/saotk/frame/fitsdata.h
+++ b/saotk/frame/fitsdata.h
@@ -66,8 +66,6 @@ protected:
int zLine;
int zscaleValid;
- double* autoCutHist;
- int autoCutTotal;
int autoCutValid;
float autoCutPer;
diff --git a/saotk/frame/fitsimage.C b/saotk/frame/fitsimage.C
index 4ab568f..344db4a 100644
--- a/saotk/frame/fitsimage.C
+++ b/saotk/frame/fitsimage.C
@@ -20,6 +20,7 @@
#include "hist.h"
#include "compress.h"
#include "analysis.h"
+#include "photo.h"
#define MAXPV 99
@@ -501,6 +502,32 @@ FitsImageArrVar::FitsImageArrVar(Base* p, Tcl_Interp* interp,
process(fn,id);
}
+// Photo
+
+FitsImagePhoto::FitsImagePhoto(Base* p, Tcl_Interp* interp,
+ const char* ph, const char* fn, int id)
+ : FitsImage(p)
+{
+ fits_ = new FitsPhoto(interp, ph);
+ process(fn,id);
+}
+
+FitsImagePhotoCube::FitsImagePhotoCube(Base* p, Tcl_Interp* interp,
+ const char* ph, const char* fn, int id)
+ : FitsImage(p)
+{
+ fits_ = new FitsPhotoCube(interp, ph);
+ process(fn,id);
+}
+
+FitsImagePhotoCubeNext::FitsImagePhotoCubeNext(Base* p, const char* fn,
+ FitsFile* prev, int id)
+ : FitsImage(p)
+{
+ fits_ = new FitsPhotoCubeNext(prev);
+ process(fn,id);
+}
+
// Mosaic
FitsImageMosaicAlloc::FitsImageMosaicAlloc(Base* p,
@@ -1077,13 +1104,13 @@ void FitsImage::initWCS(FitsHead* head, FitsHead* primary)
void FitsImage::initWCS0(const Vector& pix)
{
- int ii = WCS0-WCS;
+ int ii = Coord::WCS0-Coord::WCS;
if (wcs[ii])
wcsfree(wcs[ii]);
wcs[ii] = NULL;
if (wcs[0]) {
- Vector cc = mapFromRef(pix, IMAGE, FK5);
+ Vector cc = mapFromRef(pix, Coord::IMAGE, Coord::FK5);
WorldCoor* ww = wcs[0];
wcs[ii] = wcskinit(ww->nxpix, ww->nypix, "RA---TAN", "DEC--TAN",
cc[0], cc[1], 0, 0, ww->cd, 0, 0, 0, 2000, 2000);
@@ -1155,30 +1182,30 @@ void FitsImage::load()
processKeywords();
}
-Matrix& FitsImage::matrixToData(InternalSystem sys)
+Matrix& FitsImage::matrixToData(Coord::InternalSystem sys)
{
switch (sys) {
- case WIDGET:
+ case Coord::WIDGET:
return widgetToData;
- case PANNER:
+ case Coord::PANNER:
return pannerToData;
- case MAGNIFIER:
+ case Coord::MAGNIFIER:
return magnifierToData;
- case PS:
+ case Coord::PS:
return psToData;
}
}
-Matrix3d& FitsImage::matrixToData3d(InternalSystem sys)
+Matrix3d& FitsImage::matrixToData3d(Coord::InternalSystem sys)
{
switch (sys) {
- case WIDGET:
+ case Coord::WIDGET:
return widgetToData3d;
- case PANNER:
+ case Coord::PANNER:
return pannerToData3d;
- case MAGNIFIER:
+ case Coord::MAGNIFIER:
return magnifierToData3d;
- case PS:
+ case Coord::PS:
return psToData3d;
}
}
@@ -1438,8 +1465,8 @@ void FitsImage::processKeywords()
int FitsImage::processKeywordsIRAF(FitsImage* fits)
{
// DETSEC
- Orientation orientation = NORMAL;
- Orientation mo = NORMAL;
+ Coord::Orientation orientation = Coord::NORMAL;
+ Coord::Orientation mo = Coord::NORMAL;
char* detstr = image_->getString("DETSEC");
Vector dv1,dv2;
@@ -1455,13 +1482,13 @@ int FitsImage::processKeywordsIRAF(FitsImage* fits)
int yy = (dv1[1] < dv2[1]);
if (xx && yy)
- orientation = NORMAL;
+ orientation = Coord::NORMAL;
else if (!xx && yy)
- orientation = XX;
+ orientation = Coord::XX;
else if (!xx && !yy)
- orientation = XY;
+ orientation = Coord::XY;
else if (xx && !yy)
- orientation = YY;
+ orientation = Coord::YY;
// DETSIZE
char* sizestr = image_->getString("DETSIZE");
@@ -1500,15 +1527,15 @@ int FitsImage::processKeywordsIRAF(FitsImage* fits)
Matrix flip;
switch (orientation) {
- case NORMAL:
+ case Coord::NORMAL:
break;
- case XX:
+ case Coord::XX:
flip = FlipX();
break;
- case YY:
+ case Coord::YY:
flip = FlipY();
break;
- case XY:
+ case Coord::XY:
flip = FlipXY();
break;
}
@@ -1516,15 +1543,15 @@ int FitsImage::processKeywordsIRAF(FitsImage* fits)
// internal flip
Matrix mflip;
switch (parent->IRAFOrientation(orientation)) {
- case NORMAL:
+ case Coord::NORMAL:
break;
- case XX:
+ case Coord::XX:
mflip = FlipX();
break;
- case YY:
+ case Coord::YY:
mflip = FlipY();
break;
- case XY:
+ case Coord::XY:
mflip = FlipXY();
break;
}
@@ -1563,12 +1590,12 @@ int FitsImage::processKeywordsIRAF(FitsImage* fits)
return 1;
}
-int FitsImage::processKeywordsWCS(FitsImage* fits, CoordSystem sys)
+int FitsImage::processKeywordsWCS(FitsImage* fits, Coord::CoordSystem sys)
{
if (!fits->hasWCS(sys))
return 0;
- wcsToRef = parent->calcAlignWCS(fits, this, sys, sys, FK5);
+ wcsToRef = parent->calcAlignWCS(fits, this, sys, sys, Coord::FK5);
if (DebugMosaic)
cerr << "ProcessKeywordsWCS " << endl
@@ -1640,7 +1667,7 @@ void FitsImage::resetWCS()
void FitsImage::resetWCS0()
{
- int ii = WCS0-WCS;
+ int ii = Coord::WCS0-Coord::WCS;
if (wcs[ii])
wcsfree(wcs[ii]);
wcs[ii] = NULL;
@@ -2198,10 +2225,38 @@ void FitsImage::updatePS(Matrix3d ps)
// WCS
-Vector FitsImage::getWCScdelt(CoordSystem sys)
+Vector FitsImage::getWCScrpix(Coord::CoordSystem sys)
+{
+ if (hasWCS(sys)) {
+ int i = sys-Coord::WCS;
+
+ if (!wcs[i]->coorflip)
+ return Vector(wcs[i]->crpix[0], wcs[i]->crpix[1]);
+ else
+ return Vector(wcs[i]->crpix[1], wcs[i]->crpix[0]);
+ }
+ else
+ return Vector();
+}
+
+Vector FitsImage::getWCScrval(Coord::CoordSystem sys)
+{
+ if (hasWCS(sys)) {
+ int i = sys-Coord::WCS;
+
+ if (!wcs[i]->coorflip)
+ return Vector(wcs[i]->crval[0], wcs[i]->crval[1]);
+ else
+ return Vector(wcs[i]->crval[1], wcs[i]->crval[0]);
+ }
+ else
+ return Vector();
+}
+
+Vector FitsImage::getWCScdelt(Coord::CoordSystem sys)
{
if (hasWCS(sys)) {
- int i = sys-WCS;
+ int i = sys-Coord::WCS;
if (!wcs[i]->coorflip)
return Vector(wcs[i]->cdelt[0], wcs[i]->cdelt[1]);
@@ -2212,7 +2267,7 @@ Vector FitsImage::getWCScdelt(CoordSystem sys)
return Vector();
}
-Orientation FitsImage::getWCSOrientation(CoordSystem sys, SkyFrame sky)
+Coord::Orientation FitsImage::getWCSOrientation(Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (hasWCS(sys)) {
Vector orpix = center();
@@ -2228,19 +2283,19 @@ Orientation FitsImage::getWCSOrientation(CoordSystem sys, SkyFrame sky)
if ((north[0]==0 && north[1]==0) ||
(east[0]==0 && east[1]==0) ||
(diff[0]<.01 && diff[1]<.01))
- return NORMAL;
+ return Coord::NORMAL;
// take the cross product and see which way the 3rd axis is pointing
double w = east[0]*north[1]-east[1]*north[0];
if (!hasWCSCel(sys))
- return w>0 ? NORMAL : XX;
+ return w>0 ? Coord::NORMAL : Coord::XX;
else
- return w<0 ? NORMAL : XX;
+ return w<0 ? Coord::NORMAL : Coord::XX;
}
}
-double FitsImage::getWCSRotation(CoordSystem sys, SkyFrame sky)
+double FitsImage::getWCSRotation(Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (hasWCS(sys)) {
Vector orpix = center();
@@ -2258,7 +2313,7 @@ double FitsImage::getWCSRotation(CoordSystem sys, SkyFrame sky)
(diff[0]<.01 && diff[1]<.01))
return 0;
- if (wcs[sys-WCS]->imflip)
+ if (wcs[sys-Coord::WCS]->imflip)
return (north.angle()-M_PI_2);
else
return -(north.angle()-M_PI_2);
@@ -2267,11 +2322,11 @@ double FitsImage::getWCSRotation(CoordSystem sys, SkyFrame sky)
}
// AST
-Vector FitsImage::ASTpix2wcs(Vector in, CoordSystem sys, SkyFrame sky)
+Vector FitsImage::ASTpix2wcs(Vector in, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
astClearStatus;
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && ast && ast[ii]) {
double xx =0;
double yy =0;
@@ -2295,7 +2350,7 @@ Vector FitsImage::ASTpix2wcs(Vector in, CoordSystem sys, SkyFrame sky)
}
Vector* FitsImage::ASTpix2wcs(Vector* in, int num,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
astClearStatus;
double xin[num];
@@ -2309,7 +2364,7 @@ Vector* FitsImage::ASTpix2wcs(Vector* in, int num,
yin[ii] = (in[ii])[1];
}
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && ast && ast[ii]) {
double xx =0;
double yy =0;
@@ -2338,12 +2393,12 @@ Vector* FitsImage::ASTpix2wcs(Vector* in, int num,
return out;
}
-char* FitsImage::ASTpix2wcs(Vector in, CoordSystem sys, SkyFrame sky,
- SkyFormat format, char* lbuf, int len)
+char* FitsImage::ASTpix2wcs(Vector in, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, char* lbuf, int len)
{
astClearStatus;
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && ast && ast[ii]) {
double xx =0;
double yy =0;
@@ -2357,28 +2412,28 @@ char* FitsImage::ASTpix2wcs(Vector in, CoordSystem sys, SkyFrame sky,
}
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
xx =radToDeg(xx); // 0 to 360
yy *=180./M_PI;
str << setprecision(8) << xx << ' ' << yy
- << ' ' << skyFrameStr_[sky] << ends;
+ << ' ' << coord.skyFrameStr(sky) << ends;
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
switch (sky) {
- case FK4:
- case FK4_NO_E:
- case FK5:
- case ICRS:
+ case Coord::FK4:
+ case Coord::FK4_NO_E:
+ case Coord::FK5:
+ case Coord::ICRS:
xx = zeroTWOPI(xx);
setAstFormat(ast[ii],1,"hms.3");
setAstFormat(ast[ii],2,"+dms.2");
break;
- case GALACTIC:
- case SUPERGALACTIC:
- case ECLIPTIC:
- case HELIOECLIPTIC:
+ case Coord::GALACTIC:
+ case Coord::SUPERGALACTIC:
+ case Coord::ECLIPTIC:
+ case Coord::HELIOECLIPTIC:
xx = zeroTWOPI(xx);
setAstFormat(ast[ii],1,"+dms.3");
setAstFormat(ast[ii],2,"+dms.3");
@@ -2386,7 +2441,7 @@ char* FitsImage::ASTpix2wcs(Vector in, CoordSystem sys, SkyFrame sky,
}
str << astFormat(ast[ii], 1, xx) << ' ' << astFormat(ast[ii], 2, yy)
- << ' ' << skyFrameStr_[sky] << ends;
+ << ' ' << coord.skyFrameStr(sky) << ends;
break;
}
}
@@ -2405,11 +2460,11 @@ char* FitsImage::ASTpix2wcs(Vector in, CoordSystem sys, SkyFrame sky,
return lbuf;
}
-Vector FitsImage::ASTwcs2pix(Vector in, CoordSystem sys, SkyFrame sky)
+Vector FitsImage::ASTwcs2pix(Vector in, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
astClearStatus;
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && ast && ast[ii]) {
double xx =0;
double yy =0;
@@ -2434,7 +2489,7 @@ Vector FitsImage::ASTwcs2pix(Vector in, CoordSystem sys, SkyFrame sky)
}
Vector* FitsImage::ASTwcs2pix(Vector* in, int num,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
astClearStatus;
double xin[num];
@@ -2448,7 +2503,7 @@ Vector* FitsImage::ASTwcs2pix(Vector* in, int num,
yin[ii] = (in[ii])[1];
}
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && ast && ast[ii]) {
double xx =0;
double yy =0;
@@ -2481,11 +2536,11 @@ Vector* FitsImage::ASTwcs2pix(Vector* in, int num,
return out;
}
-double FitsImage::ASTwcsdist(Vector a, Vector b, CoordSystem sys)
+double FitsImage::ASTwcsdist(Vector a, Vector b, Coord::CoordSystem sys)
{
astClearStatus;
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
double rr=0;
if (ii>=0 && ast && ast[ii]) {
if (astIsASkyFrame(astGetFrame(ast[ii], AST__CURRENT))) {
@@ -2506,12 +2561,12 @@ double FitsImage::ASTwcsdist(Vector a, Vector b, CoordSystem sys)
}
// WCSSUB
-Vector FitsImage::WCSpix2wcs(Vector in, CoordSystem sys, SkyFrame sky)
+Vector FitsImage::WCSpix2wcs(Vector in, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && wcs && wcs[ii]) {
if (hasWCSCel(sys))
- wcsoutinit(wcs[ii], skyFrameStr_[sky]);
+ wcsoutinit(wcs[ii], coord.skyFrameStr(sky));
else
wcsoutinit(wcs[ii], ::getradecsys(wcs[ii]));
@@ -2526,20 +2581,20 @@ Vector FitsImage::WCSpix2wcs(Vector in, CoordSystem sys, SkyFrame sky)
return Vector();
}
-char* FitsImage::WCSpix2wcs(Vector in, CoordSystem sys, SkyFrame sky,
- SkyFormat format, char* lbuf, int len)
+char* FitsImage::WCSpix2wcs(Vector in, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, char* lbuf, int len)
{
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && wcs && wcs[ii]) {
if (hasWCSCel(sys)) {
- wcsoutinit(wcs[ii], skyFrameStr_[sky]);
+ wcsoutinit(wcs[ii], coord.skyFrameStr(sky));
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
setwcsdeg(wcs[ii],1);
wcs[ii]->ndec = 5;
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
setwcsdeg(wcs[ii],0);
wcs[ii]->ndec = 3;
break;
@@ -2556,12 +2611,12 @@ char* FitsImage::WCSpix2wcs(Vector in, CoordSystem sys, SkyFrame sky,
return lbuf;
}
-Vector FitsImage::WCSwcs2pix(Vector in, CoordSystem sys, SkyFrame sky)
+Vector FitsImage::WCSwcs2pix(Vector in, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && wcs && wcs[ii]) {
if (hasWCSCel(sys))
- wcsininit(wcs[ii], skyFrameStr_[sky]);
+ wcsininit(wcs[ii], coord.skyFrameStr(sky));
else
wcsininit(wcs[ii], ::getradecsys(wcs[ii]));
@@ -2582,9 +2637,9 @@ Vector FitsImage::WCSwcs2pix(Vector in, CoordSystem sys, SkyFrame sky)
return Vector();
}
-double FitsImage::WCSwcsdist(Vector a, Vector b, CoordSystem sys)
+double FitsImage::WCSwcsdist(Vector a, Vector b, Coord::CoordSystem sys)
{
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && wcs && wcs[ii])
return ::wcsdist(a[0],a[1],b[0],b[1]);
@@ -2592,17 +2647,17 @@ double FitsImage::WCSwcsdist(Vector a, Vector b, CoordSystem sys)
return 0;
}
-int FitsImage::hasWCS(CoordSystem sys)
+int FitsImage::hasWCS(Coord::CoordSystem sys)
{
- int ii = sys-WCS;
- return (sys>=WCS && ast && ast[ii]) ? 1 : 0;
+ int ii = sys-Coord::WCS;
+ return (sys>=Coord::WCS && ast && ast[ii]) ? 1 : 0;
}
-int FitsImage::hasWCSEqu(CoordSystem sys)
+int FitsImage::hasWCSEqu(Coord::CoordSystem sys)
{
astClearStatus;
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && ast && ast[ii])
if (astIsASkyFrame(astGetFrame(ast[ii], AST__CURRENT))) {
// special case of xLON/xLAT
@@ -2629,11 +2684,11 @@ int FitsImage::hasWCSEqu(CoordSystem sys)
return 0;
}
-int FitsImage::hasWCSCel(CoordSystem sys)
+int FitsImage::hasWCSCel(Coord::CoordSystem sys)
{
astClearStatus;
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
if (ii>=0 && ast && ast[ii])
if (astIsASkyFrame(astGetFrame(ast[ii], AST__CURRENT)))
return 1;
@@ -2643,19 +2698,19 @@ int FitsImage::hasWCSCel(CoordSystem sys)
// WCSX
-int FitsImage::hasWCSx(CoordSystem sys, int ss)
+int FitsImage::hasWCSx(Coord::CoordSystem sys, int ss)
{
int rr = ss-2;
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
int kk = WCSXMAX*rr+ii;
- return (rr<WCSXMAX && sys>=WCS && wcsx[kk]) ? 1 : 0;
+ return (rr<WCSXMAX && sys>=Coord::WCS && wcsx[kk]) ? 1 : 0;
}
-double FitsImage::pix2wcsx(double in, CoordSystem sys, int ss)
+double FitsImage::pix2wcsx(double in, Coord::CoordSystem sys, int ss)
{
if (hasWCSx(sys,ss)) {
int rr = ss-2;
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
int kk = WCSXMAX*rr+ii;
return (in-crpixx[kk])*cdx[kk] + crvalx[kk];
}
@@ -2663,11 +2718,11 @@ double FitsImage::pix2wcsx(double in, CoordSystem sys, int ss)
return in;
}
-double FitsImage::wcs2pixx(double in, CoordSystem sys, int ss)
+double FitsImage::wcs2pixx(double in, Coord::CoordSystem sys, int ss)
{
if (hasWCSx(sys,ss)) {
int rr = ss-2;
- int ii = sys-WCS;
+ int ii = sys-Coord::WCS;
int kk = WCSXMAX*rr+ii;
return (in-crvalx[kk])/cdx[kk] + crpixx[kk];
}
@@ -2734,8 +2789,9 @@ void FitsImage::astinit(int ii)
return;
}
- // DSS goes straight to AST
- if (wcs[ii]->prjcode==WCS_DSS)
+ // DSS and HPX goes straight to AST
+ if (wcs[ii]->prjcode==WCS_DSS ||
+ (wcs[ii]->prjcode==WCS_LIN && !strncmp(wcs[ii]->ptype,"HPX",3)))
ast[ii] = fits2ast();
else
ast[ii] = wcs2ast(ii);
@@ -2745,7 +2801,7 @@ void FitsImage::astinit(int ii)
// set default skyframe
if (astIsASkyFrame(astGetFrame(ast[ii], AST__CURRENT)))
- setAstSkyFrame(ast[ii],FK5);
+ setAstSkyFrame(ast[ii],Coord::FK5);
if (DebugAST)
astShow(ast[ii]);
@@ -2774,7 +2830,7 @@ void FitsImage::setAstFormat(AstFrameSet* aa, int id, const char* format)
astSet(aa, str.str().c_str());
}
-void FitsImage::setAstSkyFrame(AstFrameSet* aa, SkyFrame sky)
+void FitsImage::setAstSkyFrame(AstFrameSet* aa, Coord::SkyFrame sky)
{
// is sky frame
if (!astIsASkyFrame(astGetFrame(aa, AST__CURRENT)))
@@ -2789,44 +2845,44 @@ void FitsImage::setAstSkyFrame(AstFrameSet* aa, SkyFrame sky)
return;
switch (sky) {
- case FK4_NO_E:
+ case Coord::FK4_NO_E:
if (!strncmp(str,"FK4-NO-E",8))
return;
astSet(aa, "System=FK4-NO-E, Equinox=B1950");
return;
- case FK4:
+ case Coord::FK4:
if (!strncmp(str,"FK4",3))
return;
astSet(aa, "System=FK4, Equinox=B1950");
return;
- case FK5:
+ case Coord::FK5:
if (!strncmp(str,"FK5",3))
return;
astSet(aa, "System=FK5, Equinox=J2000");
return;
- case ICRS:
+ case Coord::ICRS:
if (!strncmp(str,"ICRS",4))
return;
astSet(aa, "System=ICRS");
return;
- case GALACTIC:
+ case Coord::GALACTIC:
if (!strncmp(str,"GALACTIC",8))
return;
astSet(aa, "System=GALACTIC");
return;
- case SUPERGALACTIC:
+ case Coord::SUPERGALACTIC:
if (!strncmp(str,"SUPERGALACTIC",13))
return;
astSet(aa, "System=SUPERGALACTIC");
return;
- case ECLIPTIC:
+ case Coord::ECLIPTIC:
if (!strncmp(str,"ECLIPTIC",8))
return;
astSet(aa, "System=ECLIPTIC");
// get AST to agree with WCSSUBS
astSetD(aa, "EQUINOX", astGetD(aa, "EPOCH"));
return;
- case HELIOECLIPTIC:
+ case Coord::HELIOECLIPTIC:
if (!strncmp(str,"HELIOECLIPTIC",13))
return;
astSet(aa, "System=HELIOECLIPTIC");
@@ -2916,10 +2972,10 @@ AstFrameSet* FitsImage::wcs2ast(int ii)
putFitsCard(chan, "CTYPE2", str.str().c_str());
}
}
- else if (wcs[ii]->prjcode == WCS_LIN && wcs[ii]->distcode) {
- // this is not a mistake, WCS manges the ctype[0]
- putFitsCard(chan, "CTYPE1", wcs[ii]->ctype[1]);
- putFitsCard(chan, "CTYPE2", wcs[ii]->ctype[1]);
+ else if (wcs[ii]->prjcode == WCS_PIX || wcs[ii]->prjcode == WCS_LIN) {
+ // this is not a mistake, WCS manges the ctype[0] and ctype[1]
+ putFitsCard(chan, "CTYPE1", wcs[ii]->c1type);
+ putFitsCard(chan, "CTYPE2", wcs[ii]->c2type);
}
else {
putFitsCard(chan, "CTYPE1", wcs[ii]->ctype[0]);
@@ -2943,7 +2999,7 @@ AstFrameSet* FitsImage::wcs2ast(int ii)
ostringstream pc;
pc << "PC1_1" << alt << ends;
- if (fits->find(cd.str().c_str())) {
+ if (fits->find(cd.str().c_str(), wcsHeader)) {
if (!wcs[ii]->cd[1] && !wcs[ii]->cd[2] && !wcs[ii]->rot &&
wcs[ii]->latpole == 999 && wcs[ii]->longpole == 999) {
// simple case
@@ -2957,29 +3013,41 @@ AstFrameSet* FitsImage::wcs2ast(int ii)
putFitsCard(chan, "CD2_2", wcs[ii]->cd[3]);
}
}
- else if (fits->find(cdelt.str().c_str())) {
+ else if (fits->find(cdelt.str().c_str(), wcsHeader)) {
putFitsCard(chan, "CDELT1", wcs[ii]->cdelt[0]);
putFitsCard(chan, "CDELT2", wcs[ii]->cdelt[1]);
- if (fits->find(pc.str().c_str())) {
+ if (fits->find(pc.str().c_str(), wcsHeader)) {
putFitsCard(chan, "PC1_1", wcs[ii]->pc[0]);
putFitsCard(chan, "PC1_2", wcs[ii]->pc[1]);
putFitsCard(chan, "PC2_1", wcs[ii]->pc[2]);
putFitsCard(chan, "PC2_2", wcs[ii]->pc[3]);
}
- else if (!ii && fits->find("PC001001")) {
+ else if (!ii && fits->find("PC001001", wcsHeader)) {
putFitsCard(chan, "PC001001", wcs[ii]->pc[0]);
putFitsCard(chan, "PC001002", wcs[ii]->pc[1]);
putFitsCard(chan, "PC002001", wcs[ii]->pc[2]);
putFitsCard(chan, "PC002002", wcs[ii]->pc[3]);
}
else {
- if (!ii && fits->find("CROTA1"))
+ if (!ii && fits->find("CROTA1", wcsHeader))
putFitsCard(chan, "CROTA1", wcs[ii]->rot);
- if (!ii && fits->find("CROTA2"))
+ if (!ii && fits->find("CROTA2", wcsHeader))
putFitsCard(chan, "CROTA2", wcs[ii]->rot);
}
}
+ else if (!wcs[ii]->cd[0] &&
+ !wcs[ii]->cd[1] &&
+ !wcs[ii]->cd[2] &&
+ !wcs[ii]->cd[3]) {
+ // sanity check
+ putFitsCard(chan, "CDELT1", wcs[ii]->cdelt[0]);
+ putFitsCard(chan, "CDELT2", wcs[ii]->cdelt[1]);
+ putFitsCard(chan, "PC1_1", wcs[ii]->pc[0]);
+ putFitsCard(chan, "PC1_2", wcs[ii]->pc[1]);
+ putFitsCard(chan, "PC2_1", wcs[ii]->pc[2]);
+ putFitsCard(chan, "PC2_2", wcs[ii]->pc[3]);
+ }
else {
putFitsCard(chan, "CD1_1", wcs[ii]->cd[0]);
putFitsCard(chan, "CD1_2", wcs[ii]->cd[1]);
@@ -3031,8 +3099,8 @@ AstFrameSet* FitsImage::wcs2ast(int ii)
ostringstream str,str2;
str << "PV" << i << '_' << m << alt << ends;
str2 << "PV" << i << '_' << m << ends;
- if (fits->find(str.str().c_str())) {
- double val = fits->getReal(str.str().c_str(),0);
+ if (fits->find(str.str().c_str(), wcsHeader)) {
+ double val = fits->getReal(str.str().c_str(),0, wcsHeader);
putFitsCard(chan, str2.str().c_str(), val);
}
}
@@ -3044,8 +3112,8 @@ AstFrameSet* FitsImage::wcs2ast(int ii)
ostringstream str,str2;
str << "QV" << i << '_' << m << alt << ends;
str2 << "QV" << i << '_' << m << ends;
- if (fits->find(str.str().c_str())) {
- double val = fits->getReal(str.str().c_str(),0);
+ if (fits->find(str.str().c_str(), wcsHeader)) {
+ double val = fits->getReal(str.str().c_str(),0, wcsHeader);
putFitsCard(chan, str2.str().c_str(), val);
}
}
@@ -3057,8 +3125,8 @@ AstFrameSet* FitsImage::wcs2ast(int ii)
for (int ii=1; ii<=9; ii++) {
ostringstream str;
str << "WAT" << jj << "_00" << ii << ends;
- if (fits->find(str.str().c_str())) {
- char* val = fits->getString(str.str().c_str());
+ if (fits->find(str.str().c_str(), wcsHeader)) {
+ char* val = fits->getString(str.str().c_str(), wcsHeader);
if (val) {
putFitsCard(chan, str.str().c_str(), val);
delete [] val;
@@ -3071,29 +3139,29 @@ AstFrameSet* FitsImage::wcs2ast(int ii)
// -SIP (only primary)
if (!ii && wcs[ii]->distcode
&& (wcs[ii]->prjcode == WCS_TAN || wcs[ii]->prjcode == WCS_LIN)) {
- if (fits->find("A_ORDER")) {
- int val = fits->getInteger("A_ORDER",0);
+ if (fits->find("A_ORDER", wcsHeader)) {
+ int val = fits->getInteger("A_ORDER",0, wcsHeader);
putFitsCard(chan, "A_ORDER", val);
}
- if (fits->find("AP_ORDER")) {
- int val = fits->getInteger("AP_ORDER",0);
+ if (fits->find("AP_ORDER", wcsHeader)) {
+ int val = fits->getInteger("AP_ORDER",0, wcsHeader);
putFitsCard(chan, "AP_ORDER", val);
}
- if (fits->find("A_DMAX")) {
- double val = fits->getReal("A_DMAX",0.);
+ if (fits->find("A_DMAX", wcsHeader)) {
+ double val = fits->getReal("A_DMAX",0, wcsHeader);
putFitsCard(chan, "A_DMAX", val);
}
- if (fits->find("B_ORDER")) {
- int val = fits->getInteger("B_ORDER",0);
+ if (fits->find("B_ORDER", wcsHeader)) {
+ int val = fits->getInteger("B_ORDER",0, wcsHeader);
putFitsCard(chan, "B_ORDER", val);
}
- if (fits->find("BP_ORDER")) {
- int val = fits->getInteger("BP_ORDER",0);
+ if (fits->find("BP_ORDER", wcsHeader)) {
+ int val = fits->getInteger("BP_ORDER",0, wcsHeader);
putFitsCard(chan, "BP_ORDER", val);
}
- if (fits->find("B_DMAX")) {
- double val = fits->getReal("B_DMAX",0.);
+ if (fits->find("B_DMAX", wcsHeader)) {
+ double val = fits->getReal("B_DMAX",0, wcsHeader);
putFitsCard(chan, "B_DMAX", val);
}
@@ -3102,32 +3170,32 @@ AstFrameSet* FitsImage::wcs2ast(int ii)
{
ostringstream str;
str << "A_" << jj << "_" << ii << ends;
- if (fits->find(str.str().c_str())) {
- double val = fits->getReal(str.str().c_str(),0.);
+ if (fits->find(str.str().c_str(), wcsHeader)) {
+ double val = fits->getReal(str.str().c_str(),0, wcsHeader);
putFitsCard(chan, str.str().c_str(), val);
}
}
{
ostringstream str;
str << "AP_" << jj << "_" << ii << ends;
- if (fits->find(str.str().c_str())) {
- double val = fits->getReal(str.str().c_str(),0.);
+ if (fits->find(str.str().c_str(), wcsHeader)) {
+ double val = fits->getReal(str.str().c_str(),0, wcsHeader);
putFitsCard(chan, str.str().c_str(), val);
}
}
{
ostringstream str;
str << "B_" << jj << "_" << ii << ends;
- if (fits->find(str.str().c_str())) {
- double val = fits->getReal(str.str().c_str(),0.);
+ if (fits->find(str.str().c_str(), wcsHeader)) {
+ double val = fits->getReal(str.str().c_str(),0, wcsHeader);
putFitsCard(chan, str.str().c_str(), val);
}
}
{
ostringstream str;
str << "BP_" << jj << "_" << ii << ends;
- if (fits->find(str.str().c_str())) {
- double val = fits->getReal(str.str().c_str(),0.);
+ if (fits->find(str.str().c_str(), wcsHeader)) {
+ double val = fits->getReal(str.str().c_str(),0, wcsHeader);
putFitsCard(chan, str.str().c_str(), val);
}
}
diff --git a/saotk/frame/fitsimage.h b/saotk/frame/fitsimage.h
index 3cb78ce..b7944ed 100644
--- a/saotk/frame/fitsimage.h
+++ b/saotk/frame/fitsimage.h
@@ -119,23 +119,23 @@ class FitsImage {
void wcsShow(WorldCoor*);
void astinit(int);
int checkAst(double, double);
- AstFrameSet* fits2ast();
+ AstFrameSet* fits2ast();
AstFrameSet* wcs2ast(int);
void putFitsCard(void* chan, const char* key, const char* value);
void putFitsCard(void* chan, const char* key, int value);
void putFitsCard(void* chan, const char* key, double value);
- char* ASTpix2wcs(Vector, CoordSystem, SkyFrame, SkyFormat, char*, int);
- Vector ASTpix2wcs(Vector, CoordSystem, SkyFrame);
- Vector* ASTpix2wcs(Vector*, int, CoordSystem, SkyFrame);
- Vector ASTwcs2pix(Vector, CoordSystem, SkyFrame);
- Vector* ASTwcs2pix(Vector*, int, CoordSystem, SkyFrame);
- double ASTwcsdist(Vector, Vector, CoordSystem);
+ char* ASTpix2wcs(Vector, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, char*, int);
+ Vector ASTpix2wcs(Vector, Coord::CoordSystem, Coord::SkyFrame);
+ Vector* ASTpix2wcs(Vector*, int, Coord::CoordSystem, Coord::SkyFrame);
+ Vector ASTwcs2pix(Vector, Coord::CoordSystem, Coord::SkyFrame);
+ Vector* ASTwcs2pix(Vector*, int, Coord::CoordSystem, Coord::SkyFrame);
+ double ASTwcsdist(Vector, Vector, Coord::CoordSystem);
- char* WCSpix2wcs(Vector, CoordSystem, SkyFrame, SkyFormat, char*, int);
- Vector WCSpix2wcs(Vector, CoordSystem, SkyFrame);
- Vector WCSwcs2pix(Vector, CoordSystem, SkyFrame);
- double WCSwcsdist(Vector, Vector, CoordSystem);
+ char* WCSpix2wcs(Vector, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, char*, int);
+ Vector WCSpix2wcs(Vector, Coord::CoordSystem, Coord::SkyFrame);
+ Vector WCSwcs2pix(Vector, Coord::CoordSystem, Coord::SkyFrame);
+ double WCSwcsdist(Vector, Vector, Coord::CoordSystem);
public:
Matrix wcsToRef; // iraf/wcs matrix
@@ -264,6 +264,8 @@ class FitsImage {
void setBinColMinMax(const char* str, const Vector& lim)
{if (fits_) fits_->setColMinMax(str,lim);}
+ int hasBinCol(const char*);
+
const char* getObjectName() {return objectName;}
void setObjectName(const char*);
const char* getRootBaseFileName() {return rootBaseFileName;}
@@ -302,20 +304,20 @@ class FitsImage {
int hasDTMV() {return keyDTMV;}
int isIIS() {return iisMode;}
- char* pix2wcs(Vector in, CoordSystem sys, SkyFrame sky, SkyFormat format, char* lbuf, int len)
+ char* pix2wcs(Vector in, Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format, char* lbuf, int len)
{return ASTpix2wcs(in, sys, sky, format, lbuf, len);}
- Vector pix2wcs(Vector in, CoordSystem sys, SkyFrame sky)
+ Vector pix2wcs(Vector in, Coord::CoordSystem sys, Coord::SkyFrame sky)
{return ASTpix2wcs(in, sys, sky);}
- Vector wcs2pix(Vector in, CoordSystem sys, SkyFrame sky)
+ Vector wcs2pix(Vector in, Coord::CoordSystem sys, Coord::SkyFrame sky)
{return ASTwcs2pix(in, sys, sky);}
- double wcsdist(Vector aa, Vector bb, CoordSystem sys)
+ double wcsdist(Vector aa, Vector bb, Coord::CoordSystem sys)
{return ASTwcsdist(aa, bb, sys);}
- double pix2wcsx(double, CoordSystem, int);
- double wcs2pixx(double, CoordSystem, int);
+ double pix2wcsx(double, Coord::CoordSystem, int);
+ double wcs2pixx(double, Coord::CoordSystem, int);
void initWCS(FitsHead*, FitsHead*);
- void listWCS(ostream&, CoordSystem);
+ void listWCS(ostream&, Coord::CoordSystem);
void resetWCS();
void replaceWCS(FitsHead*);
void appendWCS(FitsHead*);
@@ -324,25 +326,27 @@ class FitsImage {
void processKeywords();
int processKeywordsIRAF(FitsImage*);
- int processKeywordsWCS(FitsImage*, CoordSystem);
-
- WorldCoor* getWCS(CoordSystem sys)
- {return (wcs && wcs[sys-WCS]) ? wcs[sys-WCS] : NULL;}
- const char* getWCSName(CoordSystem sys)
- {return (wcs && wcs[sys-WCS]) ? wcs[sys-WCS]->wcsname : NULL;}
- Orientation getWCSOrientation(CoordSystem, SkyFrame);
- double getWCSRotation(CoordSystem, SkyFrame);
- Vector getWCScdelt(CoordSystem);
-
- void setAstSkyFrame(AstFrameSet*, SkyFrame);
+ int processKeywordsWCS(FitsImage*, Coord::CoordSystem);
+
+ WorldCoor* getWCS(Coord::CoordSystem sys)
+ {return (wcs && wcs[sys-Coord::WCS]) ? wcs[sys-Coord::WCS] : NULL;}
+ const char* getWCSName(Coord::CoordSystem sys)
+ {return (wcs && wcs[sys-Coord::WCS]) ? wcs[sys-Coord::WCS]->wcsname : NULL;}
+ Coord::Orientation getWCSOrientation(Coord::CoordSystem, Coord::SkyFrame);
+ double getWCSRotation(Coord::CoordSystem, Coord::SkyFrame);
+ Vector getWCScdelt(Coord::CoordSystem);
+ Vector getWCScrpix(Coord::CoordSystem);
+ Vector getWCScrval(Coord::CoordSystem);
+
+ void setAstSkyFrame(AstFrameSet*, Coord::SkyFrame);
void setAstFormat(AstFrameSet*, int, const char*);
- AstFrameSet* getAST(CoordSystem sys)
- {return (ast && ast[sys-WCS]) ? ast[sys-WCS] : NULL;}
+ AstFrameSet* getAST(Coord::CoordSystem sys)
+ {return (ast && ast[sys-Coord::WCS]) ? ast[sys-Coord::WCS] : NULL;}
- int hasWCS(CoordSystem);
- int hasWCSx(CoordSystem, int);
- int hasWCSEqu(CoordSystem);
- int hasWCSCel(CoordSystem);
+ int hasWCS(Coord::CoordSystem);
+ int hasWCSx(Coord::CoordSystem, int);
+ int hasWCSEqu(Coord::CoordSystem);
+ int hasWCSCel(Coord::CoordSystem);
void updateMatrices(Matrix&, Matrix&, Matrix&);
void updateMatrices(Matrix3d&);
@@ -356,22 +360,22 @@ class FitsImage {
void updatePS(Matrix);
void updatePS(Matrix3d);
- Matrix& matrixToData(InternalSystem);
- Matrix3d& matrixToData3d(InternalSystem);
-
- Vector mapFromRef(const Vector&, CoordSystem, SkyFrame =FK5);
- double mapFromRef3(double, CoordSystem, int);
- void mapFromRef(const Vector&, CoordSystem, SkyFrame, SkyFormat, char*,int);
- Vector mapToRef(const Vector&, CoordSystem, SkyFrame =FK5);
- double mapToRef3(double, CoordSystem, int);
- double mapLenFromRef(double, CoordSystem, SkyDist =DEGREE);
- Vector mapLenFromRef(const Vector&, CoordSystem, SkyDist =DEGREE);
- double mapLenToRef(double, CoordSystem, SkyDist =DEGREE);
- Vector mapLenToRef(const Vector&, CoordSystem, SkyDist =DEGREE);
- Vector mapLenFromImage(const Vector&, CoordSystem, SkyDist =DEGREE);
- Vector mapLenToImage(const Vector&, CoordSystem, SkyDist =DEGREE);
- double mapDistFromRef(const Vector&, const Vector&, CoordSystem,
- SkyDist =DEGREE);
+ Matrix& matrixToData(Coord::InternalSystem);
+ Matrix3d& matrixToData3d(Coord::InternalSystem);
+
+ Vector mapFromRef(const Vector&, Coord::CoordSystem, Coord::SkyFrame =Coord::FK5);
+ double mapFromRef3(double, Coord::CoordSystem, int);
+ void mapFromRef(const Vector&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, char*,int);
+ Vector mapToRef(const Vector&, Coord::CoordSystem, Coord::SkyFrame =Coord::FK5);
+ double mapToRef3(double, Coord::CoordSystem, int);
+ double mapLenFromRef(double, Coord::CoordSystem, Coord::SkyDist =Coord::DEGREE);
+ Vector mapLenFromRef(const Vector&, Coord::CoordSystem, Coord::SkyDist =Coord::DEGREE);
+ double mapLenToRef(double, Coord::CoordSystem, Coord::SkyDist =Coord::DEGREE);
+ Vector mapLenToRef(const Vector&, Coord::CoordSystem, Coord::SkyDist =Coord::DEGREE);
+ Vector mapLenFromImage(const Vector&, Coord::CoordSystem, Coord::SkyDist =Coord::DEGREE);
+ Vector mapLenToImage(const Vector&, Coord::CoordSystem, Coord::SkyDist =Coord::DEGREE);
+ double mapDistFromRef(const Vector&, const Vector&, Coord::CoordSystem,
+ Coord::SkyDist =Coord::DEGREE);
// we assume that 'data' is valid
@@ -418,24 +422,22 @@ class FitsImage {
int findKeyword(const char*);
int saveFitsImageFile(const char* fn, int compress)
- {return image_ ? image_->saveFitsImageFile(fn, compress) : 0;}
+ {return image_ ? image_->saveFitsImageFile(fn, compress) : 0;}
- int saveFitsImageChannel(Tcl_Interp* interp, const char* ch,
- int compress)
- {return image_ ? image_->saveFitsImageChannel(interp, ch, compress) : 0;}
+ int saveFitsImageChannel(Tcl_Interp* interp, const char* ch, int compress)
+ {return image_ ? image_->saveFitsImageChannel(interp, ch, compress) : 0;}
int saveFitsImageSocket(int s, int compress)
- {return image_ ? image_->saveFitsImageSocket(s, compress) : 0;}
+ {return image_ ? image_->saveFitsImageSocket(s, compress) : 0;}
int saveFitsTableFile(const char* fn, int compress)
- {return fits_ ? fits_->saveFitsTableFile(fn, compress) : 0;}
+ {return fits_ ? fits_->saveFitsTableFile(fn, compress) : 0;}
- int saveFitsTableChannel(Tcl_Interp* interp, const char* ch,
- int compress)
- {return fits_ ? fits_->saveFitsTableChannel(interp, ch, compress): 0;}
+ int saveFitsTableChannel(Tcl_Interp* interp, const char* ch, int compress)
+ {return fits_ ? fits_->saveFitsTableChannel(interp, ch, compress): 0;}
int saveFitsTableSocket(int s, int compress)
- {return fits_ ? fits_->saveFitsTableSocket(s, compress) : 0;}
+ {return fits_ ? fits_->saveFitsTableSocket(s, compress) : 0;}
int saveArrayFile(const char* fn, FitsFile::ArchType endian)
{return image_ ? image_->saveArrayFile(fn, endian) : 0;}
@@ -625,6 +627,23 @@ public:
FitsImageArrVar(Base*, Tcl_Interp*, const char*, const char*, int);
};
+// Photo
+
+class FitsImagePhoto : public FitsImage {
+public:
+ FitsImagePhoto(Base*, Tcl_Interp*, const char*, const char*, int);
+};
+
+class FitsImagePhotoCube : public FitsImage {
+public:
+ FitsImagePhotoCube(Base*, Tcl_Interp*, const char*, const char*, int);
+};
+
+class FitsImagePhotoCubeNext : public FitsImage {
+public:
+ FitsImagePhotoCubeNext(Base*, const char*, FitsFile*, int);
+};
+
// Mosaic
class FitsImageMosaicAlloc : public FitsImage {
diff --git a/saotk/frame/fitsmap.C b/saotk/frame/fitsmap.C
index 34a6e6a..e72e7be 100644
--- a/saotk/frame/fitsmap.C
+++ b/saotk/frame/fitsmap.C
@@ -6,16 +6,16 @@
// Map Point
-Vector FitsImage::mapFromRef(const Vector& vv, CoordSystem out, SkyFrame sky)
+Vector FitsImage::mapFromRef(const Vector& vv, Coord::CoordSystem out, Coord::SkyFrame sky)
{
switch (out) {
- case IMAGE:
+ case Coord::IMAGE:
return vv * refToImage;
- case PHYSICAL:
+ case Coord::PHYSICAL:
return vv * refToPhysical;
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
return vv * refToAmplifier;
- case DETECTOR:
+ case Coord::DETECTOR:
return vv * refToDetector;
default:
if (hasWCS(out))
@@ -26,8 +26,8 @@ Vector FitsImage::mapFromRef(const Vector& vv, CoordSystem out, SkyFrame sky)
return vv;
}
-void FitsImage::mapFromRef(const Vector& vv, CoordSystem out, SkyFrame sky,
- SkyFormat format, char* buf, int length)
+void FitsImage::mapFromRef(const Vector& vv, Coord::CoordSystem out, Coord::SkyFrame sky,
+ Coord::SkyFormat format, char* buf, int length)
{
if (hasWCS(out)) {
pix2wcs(vv * refToImage, out, sky, format, buf, length);
@@ -38,16 +38,16 @@ void FitsImage::mapFromRef(const Vector& vv, CoordSystem out, SkyFrame sky,
strcpy(buf,"");
}
-Vector FitsImage::mapToRef(const Vector& vv, CoordSystem in, SkyFrame sky)
+Vector FitsImage::mapToRef(const Vector& vv, Coord::CoordSystem in, Coord::SkyFrame sky)
{
switch (in) {
- case IMAGE:
+ case Coord::IMAGE:
return vv * imageToRef;
- case PHYSICAL:
+ case Coord::PHYSICAL:
return vv * physicalToRef;
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
return vv * amplifierToRef;
- case DETECTOR:
+ case Coord::DETECTOR:
return vv * detectorToRef;
default:
if (hasWCS(in))
@@ -60,23 +60,23 @@ Vector FitsImage::mapToRef(const Vector& vv, CoordSystem in, SkyFrame sky)
// Map Length
-double FitsImage::mapLenFromRef(double dd, CoordSystem sys, SkyDist dist)
+double FitsImage::mapLenFromRef(double dd, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Vector rr = mapLenFromRef(Vector(dd,0),sys,dist);
return rr[0];
}
-Vector FitsImage::mapLenFromRef(const Vector& vv, CoordSystem sys, SkyDist dist)
+Vector FitsImage::mapLenFromRef(const Vector& vv, Coord::CoordSystem sys, Coord::SkyDist dist)
{
// really from image coords
switch (sys) {
- case IMAGE:
+ case Coord::IMAGE:
return mapLen(vv,refToImage);
- case PHYSICAL:
+ case Coord::PHYSICAL:
return mapLen(vv,refToPhysical);
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
return mapLen(vv,refToPhysical * physicalToAmplifier);
- case DETECTOR:
+ case Coord::DETECTOR:
return mapLen(vv,refToPhysical * physicalToDetector);
default:
if (hasWCS(sys)) {
@@ -86,12 +86,12 @@ Vector FitsImage::mapLenFromRef(const Vector& vv, CoordSystem sys, SkyDist dist)
if (hasWCSCel(sys)) {
switch (dist) {
- case DEGREE:
+ case Coord::DEGREE:
break;
- case ARCMIN:
+ case Coord::ARCMIN:
out *= 60;
break;
- case ARCSEC:
+ case Coord::ARCSEC:
out *=60*60;
break;
}
@@ -104,22 +104,22 @@ Vector FitsImage::mapLenFromRef(const Vector& vv, CoordSystem sys, SkyDist dist)
return Vector();
}
-double FitsImage::mapLenToRef(double dd, CoordSystem sys, SkyDist dist)
+double FitsImage::mapLenToRef(double dd, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Vector rr = mapLenToRef(Vector(dd,0), sys, dist);
return rr[0];
}
-Vector FitsImage::mapLenToRef(const Vector& vv,CoordSystem sys, SkyDist dist)
+Vector FitsImage::mapLenToRef(const Vector& vv,Coord::CoordSystem sys, Coord::SkyDist dist)
{
switch (sys) {
- case IMAGE:
+ case Coord::IMAGE:
return mapLen(vv,imageToRef);
- case PHYSICAL:
+ case Coord::PHYSICAL:
return mapLen(vv,physicalToRef);
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
return mapLen(vv,amplifierToPhysical * physicalToRef);
- case DETECTOR:
+ case Coord::DETECTOR:
return mapLen(vv,detectorToPhysical * physicalToRef);
default:
if (hasWCS(sys)) {
@@ -129,12 +129,12 @@ Vector FitsImage::mapLenToRef(const Vector& vv,CoordSystem sys, SkyDist dist)
if (hasWCSCel(sys)) {
switch (dist) {
- case DEGREE:
+ case Coord::DEGREE:
break;
- case ARCMIN:
+ case Coord::ARCMIN:
out /= 60;
break;
- case ARCSEC:
+ case Coord::ARCSEC:
out /= 60*60;
break;
}
@@ -147,16 +147,16 @@ Vector FitsImage::mapLenToRef(const Vector& vv,CoordSystem sys, SkyDist dist)
return Vector();
}
-Vector FitsImage::mapLenFromImage(const Vector& vv, CoordSystem sys, SkyDist dist)
+Vector FitsImage::mapLenFromImage(const Vector& vv, Coord::CoordSystem sys, Coord::SkyDist dist)
{
switch (sys) {
- case IMAGE:
+ case Coord::IMAGE:
return vv;
- case PHYSICAL:
+ case Coord::PHYSICAL:
return mapLen(vv,imageToPhysical);
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
return mapLen(vv,imageToPhysical * physicalToAmplifier);
- case DETECTOR:
+ case Coord::DETECTOR:
return mapLen(vv,imageToPhysical * physicalToDetector);
default:
if (hasWCS(sys)) {
@@ -166,12 +166,12 @@ Vector FitsImage::mapLenFromImage(const Vector& vv, CoordSystem sys, SkyDist dis
if (hasWCSCel(sys)) {
switch (dist) {
- case DEGREE:
+ case Coord::DEGREE:
break;
- case ARCMIN:
+ case Coord::ARCMIN:
out *= 60;
break;
- case ARCSEC:
+ case Coord::ARCSEC:
out *=60*60;
break;
}
@@ -184,16 +184,16 @@ Vector FitsImage::mapLenFromImage(const Vector& vv, CoordSystem sys, SkyDist dis
return Vector();
}
-Vector FitsImage::mapLenToImage(const Vector& vv,CoordSystem sys, SkyDist dist)
+Vector FitsImage::mapLenToImage(const Vector& vv,Coord::CoordSystem sys, Coord::SkyDist dist)
{
switch (sys) {
- case IMAGE:
+ case Coord::IMAGE:
return vv;
- case PHYSICAL:
+ case Coord::PHYSICAL:
return mapLen(vv,physicalToImage);
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
return mapLen(vv,amplifierToPhysical * physicalToImage);
- case DETECTOR:
+ case Coord::DETECTOR:
return mapLen(vv,detectorToPhysical * physicalToImage);
default:
if (hasWCS(sys)) {
@@ -203,12 +203,12 @@ Vector FitsImage::mapLenToImage(const Vector& vv,CoordSystem sys, SkyDist dist)
if (hasWCSCel(sys)) {
switch (dist) {
- case DEGREE:
+ case Coord::DEGREE:
break;
- case ARCMIN:
+ case Coord::ARCMIN:
out /= 60;
break;
- case ARCSEC:
+ case Coord::ARCSEC:
out /= 60*60;
break;
}
@@ -224,28 +224,28 @@ Vector FitsImage::mapLenToImage(const Vector& vv,CoordSystem sys, SkyDist dist)
// Map Distance
double FitsImage::mapDistFromRef(const Vector& vv1, const Vector& vv2,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
switch (sys) {
- case IMAGE:
+ case Coord::IMAGE:
{
Vector v1 = vv1 * refToImage;
Vector v2 = vv2 * refToImage;
return (v2-v1).length();
}
- case PHYSICAL:
+ case Coord::PHYSICAL:
{
Vector v1 = vv1 * refToPhysical;
Vector v2 = vv2 * refToPhysical;
return (v2-v1).length();
}
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
{
Vector v1 = vv1 * refToPhysical * physicalToAmplifier;
Vector v2 = vv2 * refToPhysical * physicalToAmplifier;
return (v2-v1).length();
}
- case DETECTOR:
+ case Coord::DETECTOR:
{
Vector v1 = vv1 * refToPhysical * physicalToDetector;
Vector v2 = vv2 * refToPhysical * physicalToDetector;
@@ -253,16 +253,16 @@ double FitsImage::mapDistFromRef(const Vector& vv1, const Vector& vv2,
}
default:
if (hasWCS(sys)) {
- Vector v1 = pix2wcs(vv1 * refToImage, sys, FK5);
- Vector v2 = pix2wcs(vv2 * refToImage, sys, FK5);
+ Vector v1 = pix2wcs(vv1 * refToImage, sys, Coord::FK5);
+ Vector v2 = pix2wcs(vv2 * refToImage, sys, Coord::FK5);
if (hasWCSCel(sys)) {
switch (dist) {
- case DEGREES:
+ case Coord::DEGREE:
return wcsdist(v1,v2,sys);
- case ARCMIN:
+ case Coord::ARCMIN:
return wcsdist(v1,v2,sys)*60;
- case ARCSEC:
+ case Coord::ARCSEC:
return wcsdist(v1,v2,sys)*60*60;
}
}
@@ -275,26 +275,26 @@ double FitsImage::mapDistFromRef(const Vector& vv1, const Vector& vv2,
return 0;
}
-double FitsImage::mapFromRef3(double vv, CoordSystem out, int ss)
+double FitsImage::mapFromRef3(double vv, Coord::CoordSystem out, int ss)
{
switch (out) {
- case IMAGE:
- case PHYSICAL:
- case AMPLIFIER:
- case DETECTOR:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::AMPLIFIER:
+ case Coord::DETECTOR:
return vv+.5;
default:
return pix2wcsx(vv+.5,out,ss);
}
}
-double FitsImage::mapToRef3(double vv, CoordSystem in, int ss)
+double FitsImage::mapToRef3(double vv, Coord::CoordSystem in, int ss)
{
switch (in) {
- case IMAGE:
- case PHYSICAL:
- case AMPLIFIER:
- case DETECTOR:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::AMPLIFIER:
+ case Coord::DETECTOR:
return vv-.5;
default:
return wcs2pixx(vv,in,ss) -.5;
diff --git a/saotk/frame/fr3dcommand.C b/saotk/frame/fr3dcommand.C
index 94c72e2..10974bb 100644
--- a/saotk/frame/fr3dcommand.C
+++ b/saotk/frame/fr3dcommand.C
@@ -68,10 +68,10 @@ void Frame3dBase::crop3dMotionCmd(const Vector& vv, int which)
// erase
if (cropBegin[0]!=cropEnd[0] || cropBegin[1]!=cropEnd[1]) {
- Vector ll = mapFromRef3d(ss,CANVAS,cropsl_);
- Vector lr = mapFromRef3d(Vector(tt[0],ss[1]),CANVAS,cropsl_);
- Vector ur = mapFromRef3d(tt,CANVAS,cropsl_);
- Vector ul = mapFromRef3d(Vector(ss[0],tt[1]),CANVAS,cropsl_);
+ Vector ll = mapFromRef3d(ss,Coord::CANVAS,cropsl_);
+ Vector lr = mapFromRef3d(Vector(tt[0],ss[1]),Coord::CANVAS,cropsl_);
+ Vector ur = mapFromRef3d(tt,Coord::CANVAS,cropsl_);
+ Vector ul = mapFromRef3d(Vector(ss[0],tt[1]),Coord::CANVAS,cropsl_);
BBox bb(ll);
bb.bound(lr);
@@ -106,10 +106,10 @@ void Frame3dBase::crop3dMotionCmd(const Vector& vv, int which)
// and draw to window
{
- Vector ll = mapFromRef3d(ss,WINDOW,cropsl_);
- Vector lr = mapFromRef3d(Vector(tt[0],ss[1]),WINDOW,cropsl_);
- Vector ur = mapFromRef3d(tt,WINDOW,cropsl_);
- Vector ul = mapFromRef3d(Vector(ss[0],tt[1]),WINDOW,cropsl_);
+ Vector ll = mapFromRef3d(ss,Coord::WINDOW,cropsl_);
+ Vector lr = mapFromRef3d(Vector(tt[0],ss[1]),Coord::WINDOW,cropsl_);
+ Vector ur = mapFromRef3d(tt,Coord::WINDOW,cropsl_);
+ Vector ul = mapFromRef3d(Vector(ss[0],tt[1]),Coord::WINDOW,cropsl_);
XDrawLine(display,Tk_WindowId(tkwin),selectGCXOR,ll[0],ll[1],lr[0],lr[1]);
XDrawLine(display,Tk_WindowId(tkwin),selectGCXOR,lr[0],lr[1],ur[0],ur[1]);
@@ -132,10 +132,10 @@ void Frame3dBase::crop3dEndCmd(const Vector& vv, int which)
// erase
if (cropBegin[0]!=cropEnd[0] || cropBegin[1]!=cropEnd[1]) {
- Vector ll = mapFromRef3d(ss,CANVAS,cropsl_);
- Vector lr = mapFromRef3d(Vector(tt[0],ss[1]),CANVAS,cropsl_);
- Vector ur = mapFromRef3d(tt,CANVAS,cropsl_);
- Vector ul = mapFromRef3d(Vector(ss[0],tt[1]),CANVAS,cropsl_);
+ Vector ll = mapFromRef3d(ss,Coord::CANVAS,cropsl_);
+ Vector lr = mapFromRef3d(Vector(tt[0],ss[1]),Coord::CANVAS,cropsl_);
+ Vector ur = mapFromRef3d(tt,Coord::CANVAS,cropsl_);
+ Vector ul = mapFromRef3d(Vector(ss[0],tt[1]),Coord::CANVAS,cropsl_);
BBox bb(ll);
bb.bound(lr);
@@ -207,6 +207,7 @@ void Frame3dBase::crop3dEndCmd(const Vector& vv, int which)
}
}
+ keyContext->frScale.clearHistogram();
keyContext->updateClip();
keyContext->updateContours();
updateColorScale();
@@ -248,31 +249,31 @@ void Frame3dBase::get3dThreadsCmd()
void Frame3dBase::get3dViewCmd()
{
ostringstream str;
- str << radToDeg(az_) << ' ' << radToDeg(el_) << ends;
+ str << m180To180(radToDeg(az_)) << ' ' << m180To180(radToDeg(el_)) << ends;
Tcl_AppendResult(interp, str.str().c_str(), NULL);
}
-void Frame3dBase::getCursorCmd(InternalSystem sys)
+void Frame3dBase::getCursorCmd(Coord::InternalSystem sys)
{
Vector aa = Vector(options->width,options->height)/2.;
- Vector bb = mapToRef(aa,WIDGET);
+ Vector bb = mapToRef(aa,Coord::WIDGET);
Vector cc = mapFromRef(bb,sys);
printVector(cc, DEFAULT);
}
-void Frame3dBase::getCursorCmd(CoordSystem sys, SkyFrame sky, SkyFormat format,
+void Frame3dBase::getCursorCmd(Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
Precision pp)
{
if (keyContext->fits) {
Vector aa = Vector(options->width,options->height)/2.;
- Vector bb = mapToRef(aa,WIDGET);
+ Vector bb = mapToRef(aa,Coord::WIDGET);
printFromRef(keyContext->fits, bb, sys, sky, format, pp);
}
else
printVector(Vector(), DEFAULT);
}
-void Frame3dBase::gridCmd(CoordSystem sys, SkyFrame sky, SkyFormat format,
+void Frame3dBase::gridCmd(Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
Grid::GridType type, const char* ops)
{
if (grid)
@@ -290,6 +291,13 @@ void Frame3dBase::gridCmd(CoordSystem sys, SkyFrame sky, SkyFormat format,
update(PIXMAP);
}
+void Frame3dBase::loadPhotoCmd(const char* ph, const char* fn)
+{
+ unloadFits();
+ FitsImage* img = new FitsImagePhotoCube(this, interp, ph, fn, 1);
+ loadDone(currentContext->load(this, PHOTO, fn, img, IMG), IMG);
+}
+
void Frame3dBase::panCmd(const Vector& v1, const Vector& v2)
{
viewCursor_ -= (v1-v2)*Scale(1/zoom_[0],1/zoom_[1]);
@@ -304,17 +312,17 @@ void Frame3dBase::panCmd(const Vector& vv)
update(MATRIX);
}
-void Frame3dBase::panCmd(const Vector& vv, CoordSystem sys, SkyFrame sky)
+void Frame3dBase::panCmd(const Vector& vv, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (!keyContext->fits)
return;
Vector cc = Vector(options->width,options->height)/2.;
- Vector dd = mapToRef(cc,WIDGET);
+ Vector dd = mapToRef(cc,Coord::WIDGET);
Vector uu = keyContext->fits->mapFromRef(dd, sys, sky);
uu += vv;
Vector ee = keyContext->fits->mapToRef(uu, sys, sky);
- Vector ff = mapFromRef(ee,WIDGET);
+ Vector ff = mapFromRef(ee,Coord::WIDGET);
viewCursor_ += (cc-ff)*Scale(1/zoom_[0],1/zoom_[1]);
update(MATRIX);
@@ -328,13 +336,13 @@ void Frame3dBase::panToCmd(const Vector& vv)
update(MATRIX);
}
-void Frame3dBase::panToCmd(const Vector& vv, CoordSystem sys, SkyFrame sky)
+void Frame3dBase::panToCmd(const Vector& vv, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (!keyContext->fits)
return;
Vector aa = keyContext->fits->mapToRef(vv, sys, sky);
- Vector dd = Vector(options->width,options->height)/2. - mapFromRef(aa,WIDGET);
+ Vector dd = Vector(options->width,options->height)/2. - mapFromRef(aa,Coord::WIDGET);
viewCursor_ += dd*Scale(1/zoom_[0],1/zoom_[1]);
update(MATRIX);
@@ -423,13 +431,13 @@ void Frame3dBase::zoomAboutCmd(const Vector& zz, const Vector& vv)
}
void Frame3dBase::zoomAboutCmd(const Vector& zz, const Vector& vv,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (!keyContext->fits)
return;
Vector aa = keyContext->fits->mapToRef(vv, sys, sky);
- Vector dd = Vector(options->width,options->height)/2. - mapFromRef(aa,WIDGET);
+ Vector dd = Vector(options->width,options->height)/2. - mapFromRef(aa,Coord::WIDGET);
viewCursor_ += dd*Scale(1/zoom_[0],1/zoom_[1]);
Vector az = ((Vector&)zz).abs();
@@ -450,13 +458,13 @@ void Frame3dBase::zoomToAboutCmd(const Vector& zz, const Vector& vv)
}
void Frame3dBase::zoomToAboutCmd(const Vector& zz, const Vector& vv,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (!keyContext->fits)
return;
Vector aa = keyContext->fits->mapToRef(vv, sys, sky);
- Vector dd = Vector(options->width,options->height)/2. - mapFromRef(aa,WIDGET);
+ Vector dd = Vector(options->width,options->height)/2. - mapFromRef(aa,Coord::WIDGET);
viewCursor_ += dd*Scale(1/zoom_[0],1/zoom_[1]);
zoom_ = ((Vector&)zz).abs();
diff --git a/saotk/frame/fr3dmap.C b/saotk/frame/fr3dmap.C
index 48141f8..2ad5bfa 100644
--- a/saotk/frame/fr3dmap.C
+++ b/saotk/frame/fr3dmap.C
@@ -6,32 +6,37 @@
#include "frame3dbase.h"
#include "fitsimage.h"
-Vector3d Frame3dBase::mapFromRef3d(const Vector& vv, InternalSystem sys)
+Vector3d Frame3dBase::mapFromRef3d(const Vector& vv, Coord::InternalSystem sys)
{
// context->slice() IMAGE (ranges 1-n)
double sl = keyContext->slice(2)-.5;
return mapFromRef3d(vv,sys,sl);
}
-Vector3d Frame3dBase::mapFromRef3d(const Vector& vv, InternalSystem sys,
+Vector3d Frame3dBase::mapFromRef3d(const Vector& vv, Coord::InternalSystem sys,
double sl)
{
// note: sl is in REF=DATA coordinates
Matrix3d mm;
switch (sys) {
- case WIDGET:
+ case Coord::REF:
+ return Vector3d(vv,sl);
+ case Coord::USER:
+ mm = refToUser3d;
+ break;
+ case Coord::WIDGET:
mm = refToWidget3d;
break;
- case CANVAS:
+ case Coord::CANVAS:
mm = refToCanvas3d;
break;
- case WINDOW:
+ case Coord::WINDOW:
mm = refToWindow3d;
break;
- case PANNER:
+ case Coord::PANNER:
mm = refToPanner3d;
break;
- case MAGNIFIER:
+ case Coord::MAGNIFIER:
mm = refToMagnifier3d;
break;
}
@@ -39,16 +44,23 @@ Vector3d Frame3dBase::mapFromRef3d(const Vector& vv, InternalSystem sys,
return Vector3d(vv,sl)*mm;
}
-Vector3d Frame3dBase::mapToRef3d(const Vector& vv, InternalSystem sys)
+Vector3d Frame3dBase::mapToRef3d(const Vector& vv, Coord::InternalSystem sys)
{
// context->slice() IMAGE (ranges 1-n)
double sl = keyContext->slice(2)-.5;
return mapToRef3d(vv,sys,sl);
}
-Vector3d Frame3dBase::mapToRef3d(const Vector& vv, InternalSystem sys,
+Vector3d Frame3dBase::mapToRef3d(const Vector& vv, Coord::InternalSystem sys,
double sl)
{
+ switch (sys) {
+ case Coord::REF:
+ return Vector3d(vv,sl);
+ case Coord::USER:
+ return Vector3d(vv,sl)*userToRef3d;
+ }
+
// note: sl is in REF=DATA coordinates
Vector3d xx = Vector3d(1,0,sl)*refToWidget3d;
Vector3d yy = Vector3d(0,1,sl)*refToWidget3d;
@@ -64,19 +76,19 @@ Vector3d Frame3dBase::mapToRef3d(const Vector& vv, InternalSystem sys,
Vector ww;
switch (sys) {
- case WIDGET:
+ case Coord::WIDGET:
ww = vv;
break;
- case CANVAS:
+ case Coord::CANVAS:
ww = vv*canvasToWidget;
break;
- case WINDOW:
+ case Coord::WINDOW:
ww = vv*windowToWidget;
break;
- case PANNER:
+ case Coord::PANNER:
ww = vv*pannerToWidget;
break;
- case MAGNIFIER:
+ case Coord::MAGNIFIER:
ww = vv*magnifierToWidget;
break;
}
diff --git a/saotk/frame/frame.C b/saotk/frame/frame.C
index b670f4f..603500c 100644
--- a/saotk/frame/frame.C
+++ b/saotk/frame/frame.C
@@ -49,7 +49,7 @@ Frame::~Frame()
delete [] indexCells;
}
-unsigned char* Frame::fillImage(int width, int height, InternalSystem sys)
+unsigned char* Frame::fillImage(int width, int height, Coord::InternalSystem sys)
{
// img
unsigned char* img = new unsigned char[width*height*3];
@@ -289,5 +289,94 @@ void Frame::iisWCSCmd(const Matrix& mx, const Vector& z, int zt)
((FitsImageIIS*)context->cfits)->iisWCS(mx, z, zt);
}
+void Frame::savePhotoCmd(const char* ph)
+{
+ FitsImage* fits = currentContext->cfits;
+ if (!fits)
+ return;
+
+ // basics
+ int length = colorScale->size() - 1;
+ const unsigned char* table = colorScale->psColors();
+
+ // variable
+ FitsBound* params = fits->getDataParams(context->frScale.scanMode());
+ double ll = fits->getLowDouble();
+ double hh = fits->getHighDouble();
+ double diff = hh - ll;
+
+ int width = params->xmax - params->xmin;
+ int height = params->ymax - params->ymin;
+
+ // photo
+ if (*ph == '\0') {
+ Tcl_AppendResult(interp, "bad image name ", NULL);
+ return;
+ }
+ Tk_PhotoHandle photo = Tk_FindPhoto(interp, ph);
+ if (!photo) {
+ Tcl_AppendResult(interp, "bad image handle ", NULL);
+ return;
+ }
+ if (Tk_PhotoSetSize(interp, photo, width, height) != TCL_OK) {
+ Tcl_AppendResult(interp, "bad photo set size ", NULL);
+ return;
+ }
+ Tk_PhotoBlank(photo);
+ Tk_PhotoImageBlock block;
+ if (!Tk_PhotoGetImage(photo,&block)) {
+ Tcl_AppendResult(interp, "bad image block ", NULL);
+ return;
+ }
+
+ if (block.pixelSize<4) {
+ Tcl_AppendResult(interp, "bad pixel size ", NULL);
+ return;
+ }
+
+ // main loop
+ SETSIGBUS
+ unsigned char* dest = block.pixelPtr;
+ for (long jj=params->ymax-1; jj>=params->ymin; jj--) {
+ for (long ii=params->xmin; ii<params->xmax; ii++, dest += block.pixelSize) {
+ double value = fits->getValueDouble(Vector(ii,jj));
+
+ if (!isnand(value)) {
+ if (value <= ll) {
+ *(dest+3) = 255;
+ *(dest+2) = table[0];
+ *(dest+1) = table[1];
+ *dest = table[2];
+ }
+ else if (value >= hh) {
+ *(dest+3) = 255;
+ *(dest+2) = table[length*3];
+ *(dest+1) = table[length*3+1];
+ *dest = table[length*3+2];
+ }
+ else {
+ int l = (int)(((value - ll)/diff * length) + .5);
+ *(dest+3) = 255;
+ *(dest+2) = table[l*3];
+ *(dest+1) = table[l*3+1];
+ *dest = table[l*3+2];
+ }
+ }
+ else {
+ *(dest+3) = 255;
+ *(dest+2) = nanColor->blue;
+ *(dest+1) = nanColor->green;
+ *dest = nanColor->red;
+ }
+ }
+ }
+ CLEARSIGBUS
+
+ if (Tk_PhotoPutBlock(interp, photo, &block, 0, 0, width, height,
+ TK_PHOTO_COMPOSITE_SET) != TCL_OK) {
+ Tcl_AppendResult(interp, "bad put block ", NULL);
+ return;
+ }
+}
diff --git a/saotk/frame/frame.h b/saotk/frame/frame.h
index 29e7e6c..5d1b4f2 100644
--- a/saotk/frame/frame.h
+++ b/saotk/frame/frame.h
@@ -31,7 +31,7 @@ class Frame : public virtual FrameBase {
protected:
int isFrame() {return 1;}
- unsigned char* fillImage(int width, int height, InternalSystem);
+ unsigned char* fillImage(int width, int height, Coord::InternalSystem);
int validColorScale() {return colorScale ? 1 : 0;}
void updateColorCells(unsigned short*, unsigned char*, int);
@@ -50,6 +50,8 @@ class Frame : public virtual FrameBase {
void iisGetCmd(char*, int, int, int, int);
void iisSetCmd(const char*, int, int, int, int);
void iisWCSCmd(const Matrix&, const Vector&, int);
+
+ void savePhotoCmd(const char*);
};
#endif
diff --git a/saotk/frame/frame3d.C b/saotk/frame/frame3d.C
index 69c00e1..871fc9f 100644
--- a/saotk/frame/frame3d.C
+++ b/saotk/frame/frame3d.C
@@ -75,11 +75,11 @@ Frame3d::~Frame3d()
delete [] yid;
}
-unsigned char* Frame3d::fillImage(int width, int height, InternalSystem sys)
+unsigned char* Frame3d::fillImage(int width, int height, Coord::InternalSystem sys)
{
unsigned char* img;
switch (sys) {
- case WIDGET:
+ case Coord::WIDGET:
zbuf = &zbufWidget_;
mkzbuf = &mkzbufWidget_;
if (syncUpdate)
@@ -87,17 +87,17 @@ unsigned char* Frame3d::fillImage(int width, int height, InternalSystem sys)
else
img = fillImageDetach(width, height, sys);
break;
- case PANNER:
+ case Coord::PANNER:
zbuf = &zbufPanner_;
mkzbuf = &mkzbufPanner_;
img = fillImageJoin(width, height, sys);
break;
- case MAGNIFIER:
+ case Coord::MAGNIFIER:
zbuf = &zbufMagnifier_;
mkzbuf = &mkzbufMagnifier_;
img = fillImageJoin(width, height, sys);
break;
- case PS:
+ case Coord::PS:
zbuf = &zbufPS_;
mkzbuf = &mkzbufPS_;
img = fillImageJoin(width, height, sys);
@@ -111,10 +111,10 @@ unsigned char* Frame3d::fillImage(int width, int height, InternalSystem sys)
// no need to carry this around
switch (sys) {
- case WIDGET:
- case PANNER:
+ case Coord::WIDGET:
+ case Coord::PANNER:
break;
- case MAGNIFIER:
+ case Coord::MAGNIFIER:
if (zbufMagnifier_)
delete [] zbufMagnifier_;
zbufMagnifier_ = NULL;
@@ -122,7 +122,7 @@ unsigned char* Frame3d::fillImage(int width, int height, InternalSystem sys)
delete [] mkzbufMagnifier_;
mkzbufMagnifier_ = NULL;
break;
- case PS:
+ case Coord::PS:
if (zbufPS_)
delete [] zbufPS_;
zbufPS_ = NULL;
@@ -140,7 +140,7 @@ void* raytrace(void* arg)
t_arg* targ = (t_arg*)arg;
Frame3dBase::RenderMethod renderMethod = targ->renderMethod;
int width = targ->width;
- InternalSystem sys = targ->sys;
+ Coord::InternalSystem sys = targ->sys;
float** zbuf = targ->zbuf;
unsigned char** mkzbuf = targ->mkzbuf;
Context* context = targ->context;
@@ -252,7 +252,7 @@ void* raytrace(void* arg)
return 0;
}
-unsigned char* Frame3d::fillImageJoin(int width, int height, InternalSystem sys)
+unsigned char* Frame3d::fillImageJoin(int width, int height, Coord::InternalSystem sys)
{
if (!*zbuf) {
*zbuf = new float[width*height];
@@ -333,7 +333,7 @@ unsigned char* Frame3d::fillImageJoin(int width, int height, InternalSystem sys)
}
unsigned char* Frame3d::fillImageDetach(int width, int height,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
if (!*zbuf) {
*zbuf = new float[width*height];
@@ -600,7 +600,7 @@ unsigned char* Frame3d::fillImageColor(int width, int height)
return img;
}
-BBox3d Frame3d::imageBounds(int width, int height, InternalSystem sys)
+BBox3d Frame3d::imageBounds(int width, int height, Coord::InternalSystem sys)
{
Matrix3d mx = keyContext->fits->matrixToData3d(sys).invert() *
Translate3d(.5,.5,.5);
diff --git a/saotk/frame/frame3d.h b/saotk/frame/frame3d.h
index 5287986..2b7a84d 100644
--- a/saotk/frame/frame3d.h
+++ b/saotk/frame/frame3d.h
@@ -12,7 +12,7 @@
typedef struct {
Frame3dBase::RenderMethod renderMethod;
int width;
- InternalSystem sys;
+ Coord::InternalSystem sys;
float** zbuf;
unsigned char** mkzbuf;
Context* context;
@@ -29,22 +29,6 @@ typedef struct {
int done;
} t_arg;
-/*
-typedef struct {
- Frame3dBase::RenderMethod renderMethod;
- int width;
- InternalSystem sys;
- float** zbuf;
- unsigned char** mkzbuf;
- BBox3d bb;
- Context* context;
-
- int rows;
- int abort;
- int done;
-} t_arg;
-*/
-
class Frame3d : public virtual Frame3dBase {
protected:
float** zbuf;
@@ -67,11 +51,11 @@ class Frame3d : public virtual Frame3dBase {
Tcl_TimerToken timer;
private:
- BBox3d imageBounds(int, int, InternalSystem);
+ BBox3d imageBounds(int, int, Coord::InternalSystem);
void cancelImage();
unsigned char* fillImageColor(int, int);
- unsigned char* fillImageJoin(int, int, InternalSystem);
- unsigned char* fillImageDetach(int, int, InternalSystem);
+ unsigned char* fillImageJoin(int, int, Coord::InternalSystem);
+ unsigned char* fillImageDetach(int, int, Coord::InternalSystem);
void reset();
@@ -87,7 +71,7 @@ class Frame3d : public virtual Frame3dBase {
protected:
int isFrame3d() {return 1;}
- unsigned char* fillImage(int width, int height, InternalSystem);
+ unsigned char* fillImage(int width, int height, Coord::InternalSystem);
void updateColorCells(unsigned short*, unsigned char*, int);
int validColorScale() {return colorScale ? 1 : 0;}
diff --git a/saotk/frame/frame3dbase.C b/saotk/frame/frame3dbase.C
index 2c3b3b8..c2fabed 100644
--- a/saotk/frame/frame3dbase.C
+++ b/saotk/frame/frame3dbase.C
@@ -65,7 +65,7 @@ Frame3dBase::~Frame3dBase()
delete [] mkzbufPS_;
}
-void Frame3dBase::calcHighlite(InternalSystem sys, Vector* vv, int* rr)
+void Frame3dBase::calcHighlite(Coord::InternalSystem sys, Vector* vv, int* rr)
{
if (!keyContext->fits)
return;
@@ -327,7 +327,7 @@ void Frame3dBase::psHighlite(PSColorSpace mode)
Vector vv[4];
int rr[4];
- calcHighlite(CANVAS,vv,rr);
+ calcHighlite(Coord::CANVAS,vv,rr);
{
ostringstream str;
@@ -569,7 +569,7 @@ void Frame3dBase::renderHighlite()
Vector vv[4];
int rr[4];
- calcHighlite(WIDGET,vv,rr);
+ calcHighlite(Coord::WIDGET,vv,rr);
renderDash(threedGC,rr[0]);
XDrawLine(display,pixmap,threedGC,vv[0][0],vv[0][1],vv[1][0],vv[1][1]);
@@ -924,7 +924,7 @@ void Frame3dBase::win32Highlite()
Vector vv[4];
int rr[4];
- calcHighlite(CANVAS,vv,rr);
+ calcHighlite(Coord::CANVAS,vv,rr);
float dlist[2] = {8,3};
win32Color(getXColor("blue"));
diff --git a/saotk/frame/frame3dbase.h b/saotk/frame/frame3dbase.h
index 53b6d15..b85c26e 100644
--- a/saotk/frame/frame3dbase.h
+++ b/saotk/frame/frame3dbase.h
@@ -73,7 +73,7 @@ class Frame3dBase : public Base {
Matrix3d windowToWidget3d;
private:
- void calcHighlite(InternalSystem, Vector*, int*);
+ void calcHighlite(Coord::InternalSystem, Vector*, int*);
protected:
virtual void cancelImage() =0;
@@ -107,14 +107,14 @@ class Frame3dBase : public Base {
Frame3dBase(Tcl_Interp*, Tk_Canvas, Tk_Item*);
virtual ~Frame3dBase();
- Vector mapFromRef(const Vector& vv, InternalSystem sys)
+ Vector mapFromRef(const Vector& vv, Coord::InternalSystem sys)
{return mapFromRef3d(vv,sys);}
- Vector3d mapFromRef3d(const Vector&, InternalSystem);
- Vector3d mapFromRef3d(const Vector&, InternalSystem, double);
- Vector mapToRef(const Vector& vv, InternalSystem sys)
+ Vector3d mapFromRef3d(const Vector&, Coord::InternalSystem);
+ Vector3d mapFromRef3d(const Vector&, Coord::InternalSystem, double);
+ Vector mapToRef(const Vector& vv, Coord::InternalSystem sys)
{return mapToRef3d(vv,sys);}
- Vector3d mapToRef3d(const Vector&, InternalSystem);
- Vector3d mapToRef3d(const Vector&, InternalSystem, double);
+ Vector3d mapToRef3d(const Vector&, Coord::InternalSystem);
+ Vector3d mapToRef3d(const Vector&, Coord::InternalSystem, double);
// Bin Commands
void binToFitCmd();
@@ -123,8 +123,8 @@ class Frame3dBase : public Base {
void clipScopeCmd(FrScale::ClipScope) {} // scope is always GLOBAL
// Coordinate Commands
- void getCursorCmd(InternalSystem);
- void getCursorCmd(CoordSystem, SkyFrame, SkyFormat, Precision);
+ void getCursorCmd(Coord::InternalSystem);
+ void getCursorCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Precision);
// Crop Commands
void crop3dBeginCmd(const Vector&, int);
@@ -132,23 +132,26 @@ class Frame3dBase : public Base {
void crop3dEndCmd(const Vector&, int);
// Grid Commands
- void gridCmd(CoordSystem, SkyFrame, SkyFormat, Grid::GridType, const char*);
+ void gridCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Grid::GridType, const char*);
+
+ // Load Commands
+ void loadPhotoCmd(const char*, const char*);
// Pan Zoom Rotate Orient Commands
void panCmd(const Vector&);
void panCmd(const Vector&, const Vector&);
- void panCmd(const Vector&, CoordSystem, SkyFrame);
+ void panCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame);
void panToCmd(const Vector&);
- void panToCmd(const Vector&, CoordSystem, SkyFrame);
+ void panToCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame);
void panBBoxCmd(const Vector&);
void panEndCmd(const Vector&);
void rotateBeginCmd();
void rotateMotionCmd(double);
void rotateEndCmd();
void zoomAboutCmd(const Vector&, const Vector&);
- void zoomAboutCmd(const Vector&, const Vector&, CoordSystem, SkyFrame);
+ void zoomAboutCmd(const Vector&, const Vector&, Coord::CoordSystem, Coord::SkyFrame);
void zoomToAboutCmd(const Vector&, const Vector&);
- void zoomToAboutCmd(const Vector&, const Vector&, CoordSystem, SkyFrame);
+ void zoomToAboutCmd(const Vector&, const Vector&, Coord::CoordSystem, Coord::SkyFrame);
void zoomToFitCmd(double);
// 3d Commands
diff --git a/saotk/frame/frame3dtruecolor.C b/saotk/frame/frame3dtruecolor.C
index de99b66..e1b3724 100644
--- a/saotk/frame/frame3dtruecolor.C
+++ b/saotk/frame/frame3dtruecolor.C
@@ -23,7 +23,7 @@ Frame3dTrueColor::~Frame3dTrueColor()
delete [] colormapData;
}
-void Frame3dTrueColor::buildXImage(XImage* ximage, InternalSystem sys)
+void Frame3dTrueColor::buildXImage(XImage* ximage, Coord::InternalSystem sys)
{
// we need a colorScale before we can render
if (!validColorScale())
diff --git a/saotk/frame/frame3dtruecolor.h b/saotk/frame/frame3dtruecolor.h
index c8e9ce9..95ddef0 100644
--- a/saotk/frame/frame3dtruecolor.h
+++ b/saotk/frame/frame3dtruecolor.h
@@ -13,7 +13,7 @@ class Frame3dTrueColor : public Frame3d, public Frame3dTrue {
long* colormapData;
private:
- void buildXImage(XImage*, InternalSystem);
+ void buildXImage(XImage*, Coord::InternalSystem);
public:
Frame3dTrueColor(Tcl_Interp*, Tk_Canvas, Tk_Item*);
diff --git a/saotk/frame/framebase.h b/saotk/frame/framebase.h
index 3f819df..92038b0 100644
--- a/saotk/frame/framebase.h
+++ b/saotk/frame/framebase.h
@@ -33,22 +33,22 @@ public:
FrameBase(Tcl_Interp*, Tk_Canvas, Tk_Item*);
virtual ~FrameBase();
- Vector mapFromRef(const Vector&, InternalSystem);
- Vector3d mapFromRef3d(const Vector& vv, InternalSystem sys)
+ Vector mapFromRef(const Vector&, Coord::InternalSystem);
+ Vector3d mapFromRef3d(const Vector& vv, Coord::InternalSystem sys)
{return mapFromRef(vv,sys);}
- Vector mapToRef(const Vector&, InternalSystem);
- Vector3d mapToRef3d(const Vector& vv, InternalSystem sys)
+ Vector mapToRef(const Vector&, Coord::InternalSystem);
+ Vector3d mapToRef3d(const Vector& vv, Coord::InternalSystem sys)
{return mapToRef(vv,sys);}
// Bin Commands
void binToFitCmd();
// Coordinate Commands
- void getCursorCmd(InternalSystem);
- void getCursorCmd(CoordSystem, SkyFrame, SkyFormat, Precision);
+ void getCursorCmd(Coord::InternalSystem);
+ void getCursorCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Precision);
// Grid Commands
- void gridCmd(CoordSystem, SkyFrame, SkyFormat, Grid::GridType, const char*);
+ void gridCmd(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Grid::GridType, const char*);
// Fits Commands
void saveFitsResampleFileCmd(const char*, int);
@@ -62,8 +62,8 @@ public:
void iisGetFileNameCmd(int);
void iisGetFileNameCmd(const Vector&);
void iisMessageCmd(const char*);
- void iisSetCursorCmd(const Vector&, InternalSystem);
- void iisSetCursorCmd(const Vector&, CoordSystem);
+ void iisSetCursorCmd(const Vector&, Coord::InternalSystem);
+ void iisSetCursorCmd(const Vector&, Coord::CoordSystem);
void iisSetFileNameCmd(const char*);
void iisSetFileNameCmd(const char*,int);
void iisUpdateCmd() {updateNow(MATRIX);}
@@ -71,18 +71,18 @@ public:
// Pan Zoom Rotate Orient Commands
void panCmd(const Vector&);
void panCmd(const Vector&, const Vector&);
- void panCmd(const Vector&, CoordSystem, SkyFrame);
+ void panCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame);
void panToCmd(const Vector&);
- void panToCmd(const Vector&, CoordSystem, SkyFrame);
+ void panToCmd(const Vector&, Coord::CoordSystem, Coord::SkyFrame);
void panBBoxCmd(const Vector&);
void panEndCmd(const Vector&);
void rotateBeginCmd();
void rotateMotionCmd(double);
void rotateEndCmd();
void zoomAboutCmd(const Vector&, const Vector&);
- void zoomAboutCmd(const Vector&, const Vector&, CoordSystem, SkyFrame);
+ void zoomAboutCmd(const Vector&, const Vector&, Coord::CoordSystem, Coord::SkyFrame);
void zoomToAboutCmd(const Vector&, const Vector&);
- void zoomToAboutCmd(const Vector&, const Vector&, CoordSystem, SkyFrame);
+ void zoomToAboutCmd(const Vector&, const Vector&, Coord::CoordSystem, Coord::SkyFrame);
void zoomToFitCmd(double);
// 3d
diff --git a/saotk/frame/framepseudocolor.C b/saotk/frame/framepseudocolor.C
index 809761d..70417c4 100644
--- a/saotk/frame/framepseudocolor.C
+++ b/saotk/frame/framepseudocolor.C
@@ -14,7 +14,7 @@ FramePseudoColor::FramePseudoColor(Tcl_Interp* i, Tk_Canvas c, Tk_Item* item)
{
}
-void FramePseudoColor::buildXImage(XImage* xmap, InternalSystem sys)
+void FramePseudoColor::buildXImage(XImage* xmap, Coord::InternalSystem sys)
{
// we need a colorScale before we can render
if (!validColorScale())
diff --git a/saotk/frame/framepseudocolor.h b/saotk/frame/framepseudocolor.h
index bab2d2f..ae6f870 100644
--- a/saotk/frame/framepseudocolor.h
+++ b/saotk/frame/framepseudocolor.h
@@ -10,7 +10,7 @@
class FramePseudoColor : public virtual FrameBase, public Frame, public FramePseudo {
private:
- void buildXImage(XImage* xmap, InternalSystem);
+ void buildXImage(XImage* xmap, Coord::InternalSystem);
public:
FramePseudoColor(Tcl_Interp*, Tk_Canvas, Tk_Item*);
diff --git a/saotk/frame/framergb.C b/saotk/frame/framergb.C
index 6601755..da6d729 100644
--- a/saotk/frame/framergb.C
+++ b/saotk/frame/framergb.C
@@ -20,7 +20,7 @@ FrameRGB::FrameRGB(Tcl_Interp* i, Tk_Canvas c, Tk_Item* item)
context[2].parent(this);
channel = 0;
- rgbSystem = WCS;
+ rgbSystem = Coord::WCS;
for (int ii=0; ii<3; ii++) {
view[ii] = 1;
@@ -54,7 +54,7 @@ FrameRGB::~FrameRGB()
void FrameRGB::alignWCS()
{
if (!wcsAlign_ || !(keyContext->fits) || !keyContext->fits->hasWCS(wcsSystem_)) {
- wcsOrientation = NORMAL;
+ wcsOrientation = Coord::NORMAL;
wcsOrientationMatrix.identity();
wcsRotation = 0;
}
@@ -65,10 +65,10 @@ void FrameRGB::alignWCS()
updateRGBMatrices();
}
-void FrameRGB::alignWCS(CoordSystem sys, SkyFrame sky)
+void FrameRGB::alignWCS(Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (!wcsAlign_ || !(keyContext->fits) || !keyContext->fits->hasWCS(sys)) {
- wcsOrientation = NORMAL;
+ wcsOrientation = Coord::NORMAL;
wcsOrientationMatrix.identity();
wcsRotation = 0;
}
@@ -79,11 +79,11 @@ void FrameRGB::alignWCS(CoordSystem sys, SkyFrame sky)
updateRGBMatrices();
}
-void FrameRGB::alignWCS(FitsImage* ptr, CoordSystem sys)
+void FrameRGB::alignWCS(FitsImage* ptr, Coord::CoordSystem sys)
{
if (!wcsAlign_ || !(keyContext->fits) || !ptr ||
!keyContext->fits->hasWCS(wcsSystem_)) {
- wcsOrientation = NORMAL;
+ wcsOrientation = Coord::NORMAL;
wcsOrientationMatrix.identity();
wcsRotation = 0;
}
@@ -101,7 +101,7 @@ int FrameRGB::doRender()
(context[2].fits&&view[2]));
}
-unsigned char* FrameRGB::fillImage(int width, int height, InternalSystem sys)
+unsigned char* FrameRGB::fillImage(int width, int height, Coord::InternalSystem sys)
{
// img
unsigned char* img = new unsigned char[width*height*3];
@@ -337,12 +337,18 @@ void FrameRGB::loadRGBCube(MemType which, const char* fn, FitsImage* img)
if (context[1].fits && context[1].fits->isValid())
context[2].fits = new FitsImageFitsNextVar(this, fn, context[1].fits->fitsFile(),3);
break;
- case COMPRESS:
- if (context[0].fits && context[0].fits->isValid())
- context[1].fits = new FitsImageFitsNextCompress(this, img,context[0].fits->baseFile(),2);
- if (context[1].fits && context[1].fits->isValid())
- context[2].fits = new FitsImageFitsNextCompress(this, img,context[1].fits->baseFile(),3);
- break;
+ case COMPRESS:
+ if (context[0].fits && context[0].fits->isValid())
+ context[1].fits = new FitsImageFitsNextCompress(this, img,context[0].fits->baseFile(),2);
+ if (context[1].fits && context[1].fits->isValid())
+ context[2].fits = new FitsImageFitsNextCompress(this, img,context[1].fits->baseFile(),3);
+ break;
+ case PHOTO:
+ if (context[0].fits && context[0].fits->isValid())
+ context[1].fits = new FitsImagePhotoCubeNext(this, fn, context[0].fits->baseFile(),2);
+ if (context[1].fits && context[1].fits->isValid())
+ context[2].fits = new FitsImagePhotoCubeNext(this, fn, context[1].fits->baseFile(),3);
+ break;
}
// is everything ok?
@@ -519,7 +525,7 @@ void FrameRGB::loadRGBImage(MemType which, const char* fn, FitsImage* img)
void FrameRGB::loadRGBFinish()
{
for (int ii=0; ii<3; ii++) {
- context[ii].loadInit(NOMOSAIC,WCS);
+ context[ii].loadInit(NOMOSAIC,Coord::WCS);
context[ii].loadFinish();
}
@@ -611,7 +617,7 @@ void FrameRGB::reset()
void FrameRGB::rgbAlignWCS(int ii)
{
if (keyContext->fits && keyContext->fits->hasWCS(rgbSystem))
- rgb[ii] = calcAlignWCS(keyContext->fits, context[ii].fits, rgbSystem, rgbSystem, FK5);
+ rgb[ii] = calcAlignWCS(keyContext->fits, context[ii].fits, rgbSystem, rgbSystem, Coord::FK5);
if (DebugRGB)
cerr << "rgbAlignWCS " << rgb[ii] << endl;
@@ -703,12 +709,12 @@ void FrameRGB::updateColorScale()
void FrameRGB::updateRGBMatrices()
{
// image,pysical,amplifier,detector are ok, check for wcs
- if (rgbSystem >= WCS) {
+ if (rgbSystem >= Coord::WCS) {
for (int ii=0; ii<3; ii++) {
if (context[ii].fits && !context[ii].fits->hasWCS(rgbSystem)) {
// ok, don't have requested coordinate system
// down grade to image
- rgbSystem = IMAGE;
+ rgbSystem = Coord::IMAGE;
break;
}
}
@@ -720,21 +726,21 @@ void FrameRGB::updateRGBMatrices()
if (context[ii].fits && keyContext->fits) {
switch (rgbSystem) {
- case IMAGE:
+ case Coord::IMAGE:
// nothing to do here
break;
- case PHYSICAL:
+ case Coord::PHYSICAL:
if (context[ii].fits != keyContext->fits)
rgb[ii] =
context[ii].fits->imageToPhysical *
keyContext->fits->physicalToImage;
break;
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
if (context[ii].fits != keyContext->fits)
rgb[ii] = context[ii].fits->imageToAmplifier *
keyContext->fits->amplifierToImage;
break;
- case DETECTOR:
+ case Coord::DETECTOR:
if (context[ii].fits != keyContext->fits)
rgb[ii] = context[ii].fits->imageToDetector *
keyContext->fits->detectorToImage;
@@ -799,7 +805,7 @@ void FrameRGB::getColorbarCmd()
Tcl_AppendResult(interp, str.str().c_str(), NULL);
}
-void FrameRGB::getInfoCmd(const Vector& vv, InternalSystem ref, char* var)
+void FrameRGB::getInfoCmd(const Vector& vv, Coord::InternalSystem ref, char* var)
{
FrameBase::getInfoCmd(vv, ref, var);
if (!currentContext->cfits)
@@ -872,6 +878,13 @@ void FrameRGB::getTypeCmd()
Tcl_AppendResult(interp, "rgb", NULL);
}
+void FrameRGB::loadPhotoCmd(const char* ph, const char* fn)
+{
+ unloadAllFits();
+ FitsImage* img = new FitsImagePhotoCube(this, interp, ph, fn, 1);
+ loadRGBCube(ALLOC,fn,img);
+}
+
void FrameRGB::loadRGBCubeAllocCmd(const char* ch, const char* fn)
{
unloadAllFits();
@@ -1114,7 +1127,7 @@ void FrameRGB::setRGBChannelCmd(const char* c)
update(BASE);
}
-void FrameRGB::setRGBSystemCmd(CoordSystem sys)
+void FrameRGB::setRGBSystemCmd(Coord::CoordSystem sys)
{
rgbSystem = sys;
diff --git a/saotk/frame/framergb.h b/saotk/frame/framergb.h
index 8410548..f6982d4 100644
--- a/saotk/frame/framergb.h
+++ b/saotk/frame/framergb.h
@@ -14,7 +14,7 @@
class FrameRGB : public virtual FrameBase {
protected:
int channel; // current channel
- CoordSystem rgbSystem; // alignment coordinate system
+ Coord::CoordSystem rgbSystem; // alignment coordinate system
Matrix rgb[3]; // rgb matrix
int view[3]; // visible channels
@@ -27,8 +27,8 @@ class FrameRGB : public virtual FrameBase {
private:
void alignWCS();
- void alignWCS(CoordSystem, SkyFrame);
- void alignWCS(FitsImage*, CoordSystem);
+ void alignWCS(Coord::CoordSystem, Coord::SkyFrame);
+ void alignWCS(FitsImage*, Coord::CoordSystem);
int doRender();
@@ -56,7 +56,7 @@ class FrameRGB : public virtual FrameBase {
protected:
int isFrameRGB() {return 1;}
- unsigned char* fillImage(int, int, InternalSystem);
+ unsigned char* fillImage(int, int, Coord::InternalSystem);
void updateColorCells(unsigned char*, int);
void updateColorScale();
void unloadAllFits();
@@ -69,7 +69,7 @@ class FrameRGB : public virtual FrameBase {
virtual ~FrameRGB();
void getColorbarCmd();
- void getInfoCmd(const Vector&, InternalSystem, char*);
+ void getInfoCmd(const Vector&, Coord::InternalSystem, char*);
void getRGBChannelCmd();
void getRGBSystemCmd();
void getRGBViewCmd();
@@ -81,6 +81,8 @@ class FrameRGB : public virtual FrameBase {
void iisSetCmd(const char*, int, int, int, int) {}
void iisWCSCmd(const Matrix&, const Vector&, int) {}
+ void loadPhotoCmd(const char*, const char*);
+
void loadRGBCubeAllocCmd(const char*, const char*);
void loadRGBCubeAllocGZCmd(const char*, const char*);
void loadRGBCubeChannelCmd(const char*, const char*);
@@ -115,7 +117,7 @@ class FrameRGB : public virtual FrameBase {
void setRGBChannelCmd(const char*);
void setRGBViewCmd(int, int, int);
- void setRGBSystemCmd(CoordSystem);
+ void setRGBSystemCmd(Coord::CoordSystem);
};
#endif
diff --git a/saotk/frame/framergbtruecolor.C b/saotk/frame/framergbtruecolor.C
index 0d36d4c..97a180c 100644
--- a/saotk/frame/framergbtruecolor.C
+++ b/saotk/frame/framergbtruecolor.C
@@ -27,7 +27,7 @@ FrameRGBTrueColor::~FrameRGBTrueColor()
delete [] colormapData[kk];
}
-void FrameRGBTrueColor::buildXImage(XImage* ximage, InternalSystem sys)
+void FrameRGBTrueColor::buildXImage(XImage* ximage, Coord::InternalSystem sys)
{
// we need a colorScale before we can render
if (!validColorScale())
@@ -116,7 +116,7 @@ void FrameRGBTrueColor::colormapBeginCmd()
int mosaic = context[kk].isMosaic();
// variable
- double* mm = sptr->matrixToData(WIDGET).mm();
+ double* mm = sptr->matrixToData(Coord::WIDGET).mm();
FitsBound* params = sptr->getDataParams(context[kk].frScale.scanMode());
int srcw = sptr->width();
@@ -134,7 +134,7 @@ void FrameRGBTrueColor::colormapBeginCmd()
if (mosaic) {
sptr = context[kk].cfits;
- mm = sptr->matrixToData(WIDGET).mm();
+ mm = sptr->matrixToData(Coord::WIDGET).mm();
params = sptr->getDataParams(context[kk].frScale.scanMode());
srcw = sptr->width();
@@ -169,7 +169,7 @@ void FrameRGBTrueColor::colormapBeginCmd()
sptr = sptr->nextMosaic();
if (sptr) {
- mm = sptr->matrixToData(WIDGET).mm();
+ mm = sptr->matrixToData(Coord::WIDGET).mm();
params = sptr->getDataParams(context[kk].frScale.scanMode());
srcw = sptr->width();
diff --git a/saotk/frame/framergbtruecolor.h b/saotk/frame/framergbtruecolor.h
index 24d0178..0b868ab 100644
--- a/saotk/frame/framergbtruecolor.h
+++ b/saotk/frame/framergbtruecolor.h
@@ -13,7 +13,7 @@ class FrameRGBTrueColor : public virtual FrameBase, public FrameRGB, public Fram
long* colormapData[3]; // preextract data
private:
- void buildXImage(XImage*, InternalSystem);
+ void buildXImage(XImage*, Coord::InternalSystem);
public:
FrameRGBTrueColor(Tcl_Interp*, Tk_Canvas, Tk_Item*);
diff --git a/saotk/frame/frametruecolor.C b/saotk/frame/frametruecolor.C
index 48cb096..8c154af 100644
--- a/saotk/frame/frametruecolor.C
+++ b/saotk/frame/frametruecolor.C
@@ -49,7 +49,7 @@ unsigned char* FrameTrueColor::blend(unsigned char* src, unsigned char* msk,
return src;
}
-void FrameTrueColor::buildXImage(XImage* ximage, InternalSystem sys)
+void FrameTrueColor::buildXImage(XImage* ximage, Coord::InternalSystem sys)
{
// we need a colorScale before we can render
if (!validColorScale())
@@ -129,7 +129,7 @@ void FrameTrueColor::colormapBeginCmd()
long* dest = colormapData;
// variable
- double* mm = sptr->matrixToData(WIDGET).mm();
+ double* mm = sptr->matrixToData(Coord::WIDGET).mm();
FitsBound* params = sptr->getDataParams(context->frScale.scanMode());
int srcw = sptr->width();
@@ -148,7 +148,7 @@ void FrameTrueColor::colormapBeginCmd()
if (mosaic) {
sptr = context->cfits;
- mm = sptr->matrixToData(WIDGET).mm();
+ mm = sptr->matrixToData(Coord::WIDGET).mm();
params = sptr->getDataParams(context->frScale.scanMode());
srcw = sptr->width();
@@ -183,7 +183,7 @@ void FrameTrueColor::colormapBeginCmd()
sptr = sptr->nextMosaic();
if (sptr) {
- mm = sptr->matrixToData(WIDGET).mm();
+ mm = sptr->matrixToData(Coord::WIDGET).mm();
params = sptr->getDataParams(context->frScale.scanMode());
srcw = sptr->width();
@@ -291,7 +291,7 @@ void FrameTrueColor::colormapEndCmd()
}
unsigned char* FrameTrueColor::fillImage(int width, int height,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
unsigned char* img = Frame::fillImage(width, height, sys);
@@ -309,7 +309,7 @@ unsigned char* FrameTrueColor::fillImage(int width, int height,
}
unsigned char* FrameTrueColor::fillMask(FitsMask* msk, int width, int height,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
FitsImage* currentMsk = msk->current();
XColor* maskColor = msk->color();
diff --git a/saotk/frame/frametruecolor.h b/saotk/frame/frametruecolor.h
index 7062ac5..45d16cd 100644
--- a/saotk/frame/frametruecolor.h
+++ b/saotk/frame/frametruecolor.h
@@ -14,9 +14,9 @@ class FrameTrueColor : public virtual FrameBase, public Frame, public FrameTrue
private:
unsigned char* blend(unsigned char*, unsigned char*, int, int);
- void buildXImage(XImage*, InternalSystem);
- unsigned char* fillImage(int, int, InternalSystem);
- unsigned char* fillMask(FitsMask*, int, int, InternalSystem);
+ void buildXImage(XImage*, Coord::InternalSystem);
+ unsigned char* fillImage(int, int, Coord::InternalSystem);
+ unsigned char* fillMask(FitsMask*, int, int, Coord::InternalSystem);
void pushMatrices();
void pushMagnifierMatrices();
diff --git a/saotk/frame/frblt.C b/saotk/frame/frblt.C
index 80950fc..1c09033 100644
--- a/saotk/frame/frblt.C
+++ b/saotk/frame/frblt.C
@@ -9,69 +9,19 @@
#include "blt.h"
#include "bltVector.h"
#include "projection.h"
-#include "circle3d.h"
#include "sigbus.h"
-void Base::bltProjection(char* xname, char* yname, char* xcname, char* ycname,
- Projection* pp)
-{
- double* x;
- double* y;
- double* xc;
- double* yc;
-
- int num = bltProjFits(&x, &y, &xc, &yc, pp);
-
- Blt_Vector* xx;
- if (Blt_GetVector(interp, xname, &xx) != TCL_OK)
- goto error;
-
- if (Blt_ResetVector(xx, x, num, num*sizeof(double), TCL_DYNAMIC)
- != TCL_OK)
- goto error;
-
- Blt_Vector* yy;
- if (Blt_GetVector(interp, yname, &yy) != TCL_OK)
- goto error;
-
- if (Blt_ResetVector(yy, y, num, num*sizeof(double), TCL_DYNAMIC)
- != TCL_OK)
- goto error;
-
- Blt_Vector* xxc;
- if (Blt_GetVector(interp, xcname, &xxc) != TCL_OK)
- goto error;
-
- if (Blt_ResetVector(xxc, xc, num, num*sizeof(double), TCL_DYNAMIC)
- != TCL_OK)
- goto error;
-
- Blt_Vector* yyc;
- if (Blt_GetVector(interp, ycname, &yyc) != TCL_OK)
- goto error;
-
- if (Blt_ResetVector(yyc, yc, num, num*sizeof(double), TCL_DYNAMIC)
- != TCL_OK)
- goto error;
-
- return;
-
- error:
- result = TCL_ERROR;
- return;
-}
-
-int Base::bltProjFits(double** x, double** y, double** xc, double** yc,
- Projection* pp)
+int Base::markerAnalysisPlot2d(double** x, double** y, double** xc,
+ double** yc, Marker* pp,
+ Vector& p1, Vector& p2, int width)
{
// does not extend across mosaic boundries
// uses currentContext
Vector cc = pp->getCenter();
- Vector p1 = pp->getP1();
- Vector p2 = pp->getP2();
- int width = pp->getWidth();
+ Coord::CoordSystem sys = pp->analysisSystem();
+ Coord::SkyFrame sky = pp->analysisSky();
FitsImage* ptr = currentContext->cfits;
while (ptr) {
@@ -84,6 +34,8 @@ int Base::bltProjFits(double** x, double** y, double** xc, double** yc,
ptr = ptr->nextMosaic();
}
+
+ // default
if (!ptr)
ptr = currentContext->cfits;
@@ -109,7 +61,7 @@ int Base::bltProjFits(double** x, double** y, double** xc, double** yc,
(*y)[ii] = 0;
cnt[ii] = 0;
- Vector tv = ptr->mapFromRef(t, pp->getSystem(), pp->getSkyFrame());
+ Vector tv = ptr->mapFromRef(t, sys, sky);
(*xc)[ii] = tv[0];
(*yc)[ii] = tv[1];
@@ -147,7 +99,7 @@ int Base::bltProjFits(double** x, double** y, double** xc, double** yc,
}
// average if needed
- if (pp->getMethod())
+ if (pp->analysisParam() == Marker::AVERAGE)
for (long ii=0; ii<num; ii++)
if (!isnand((*y)[ii]) && cnt[ii]!=0)
(*y)[ii] /= cnt[ii];
@@ -157,51 +109,14 @@ int Base::bltProjFits(double** x, double** y, double** xc, double** yc,
return num;
}
-void Base::bltCircle3d(char* xname, char* yname, char* xcname, Circle3d* pp)
-{
- double* x;
- double* y;
- double* xc;
-
- int num = bltCircle3dFits(&x, &y, &xc, pp);
-
- Blt_Vector* xx;
- if (Blt_GetVector(interp, xname, &xx) != TCL_OK)
- goto error;
-
- if (Blt_ResetVector(xx, x, num, num*sizeof(double), TCL_DYNAMIC)
- != TCL_OK)
- goto error;
-
- Blt_Vector* yy;
- if (Blt_GetVector(interp, yname, &yy) != TCL_OK)
- goto error;
-
- if (Blt_ResetVector(yy, y, num, num*sizeof(double), TCL_DYNAMIC)
- != TCL_OK)
- goto error;
-
- Blt_Vector* xxc;
- if (Blt_GetVector(interp, xcname, &xxc) != TCL_OK)
- goto error;
-
- if (Blt_ResetVector(xxc, xc, num, num*sizeof(double), TCL_DYNAMIC)
- != TCL_OK)
- goto error;
-
- return;
-
- error:
- result = TCL_ERROR;
- return;
-}
-
-int Base::bltCircle3dFits(double** x, double** y, double** xc, Circle3d* pp)
+int Base::markerAnalysisPlot3d(double** x, double** y, Marker* pp,
+ const BBox& bb)
{
// does not extend across mosaic boundries
// uses currentContext, firstSlice
Vector cc = pp->getCenter();
+ Coord::CoordSystem sys = pp->analysisSystem();
FitsImage* ptr = currentContext->fits;
while (ptr) {
@@ -225,7 +140,6 @@ int Base::bltCircle3dFits(double** x, double** y, double** xc, Circle3d* pp)
ptr = ptr->nextSlice();
int srcw = ptr->width();
- int srch = ptr->height();
// will be incorrect for multiple ext/file cubes
// long srcd = ptr->depth();
int srcd = currentContext->naxis(2);
@@ -240,36 +154,34 @@ int Base::bltCircle3dFits(double** x, double** y, double** xc, Circle3d* pp)
sptr = sptr->nextSlice();
}
+ // init
int cnt[srcd];
*x = (double*)malloc(srcd*sizeof(double));
*y = (double*)malloc(srcd*sizeof(double));
- *xc = (double*)malloc(srcd*sizeof(double));
-
- Vector cd = cc * ptr->refToData;
- float rr = (pp->annuli(0))[0];
- float rr2 = rr*rr;
- FitsBound* params = ptr->getDataParams(currentContext->frScale.scanMode());
-
- // main loop
-
- SETSIGBUS
for (long kk=0; kk<srcd; kk++) {
- (*x)[kk] = kk+1;
+ (*x)[kk] = 0;
(*y)[kk] = 0;
cnt[kk] = 0;
+ }
- (*xc)[kk] = ptr->mapFromRef3(kk+.5, pp->getSystem(), 2);
-
- if (kk>=params->zmin && kk<params->zmax) {
- for (long jj=-rr; jj<=rr; jj++) {
- for (long ii=-rr; ii<=rr; ii++) {
- Vector aa = cd + Vector(ii,jj);
+ // take the bbox and extend to lower/upper pixel boundaries
+ Vector ll = (bb.ll*ptr->refToData).floor();
+ Vector ur = (bb.ur*ptr->refToData).ceil();
- if (aa[0]>=params->xmin && aa[0]<params->xmax &&
- aa[1]>=params->ymin && aa[1]<params->ymax) {
- if (ii*ii+jj*jj <= rr2) {
- double val =
- sjv[kk]->getValueDouble(long(aa[1])*srcw+long(aa[0]));
+ FitsBound* params = ptr->getDataParams(currentContext->frScale.scanMode());
+ // main loop
+ SETSIGBUS
+ for (int jj=ll[1]; jj<ur[1]; jj++) {
+ for (int ii=ll[0]; ii<ur[0]; ii++) {
+ if (ii>=params->xmin && ii<params->xmax &&
+ jj>=params->ymin && jj<params->ymax) {
+ // shift to center of pixel in DATA
+ Vector rr = Vector(ii,jj)+Vector(.5,.5);
+ if (pp->isIn(rr*ptr->dataToRef,Coord::REF)) {
+ for (int kk=0; kk<srcd; kk++) {
+ (*x)[kk] = ptr->mapFromRef3(kk+.5, sys, 2);
+ if (kk>=params->zmin && kk<params->zmax) {
+ double val =sjv[kk]->getValueDouble(long(jj)*srcw+long(ii));
// check for nan
if (!isnand(val)) {
(*y)[kk] += val;
@@ -281,22 +193,22 @@ int Base::bltCircle3dFits(double** x, double** y, double** xc, Circle3d* pp)
}
}
}
+ CLEARSIGBUS
// average if needed
- if (pp->getMethod())
+ if (pp->analysisParam() == Marker::AVERAGE)
for (long kk=0; kk<srcd; kk++)
if (cnt[kk]!=0)
(*y)[kk] /= cnt[kk];
- CLEARSIGBUS
return srcd;
}
-void Base::bltCut(char* xname, char* yname, Orientation axis, const Vector& rr)
+void Base::bltCut(char* xname, char* yname, Coord::Orientation axis, const Vector& rr)
{
int size;
- if (axis == XX)
+ if (axis == Coord::XX)
size = options->width;
else
size = options->height;
@@ -339,7 +251,7 @@ void Base::bltCut(char* xname, char* yname, Orientation axis, const Vector& rr)
return;
}
-void Base::bltCutFits(double* xx, double* yy, int size, Orientation axis,
+void Base::bltCutFits(double* xx, double* yy, int size, Coord::Orientation axis,
const Vector& r)
{
// Widget
@@ -366,7 +278,7 @@ void Base::bltCutFits(double* xx, double* yy, int size, Orientation axis,
do {
Vector img;
- if (axis == XX)
+ if (axis == Coord::XX)
img = Vector(1+ii,rr[1]) * sptr->widgetToData;
else
img = Vector(rr[0],1+ii) * sptr->widgetToData;
diff --git a/saotk/frame/frcommand.C b/saotk/frame/frcommand.C
index 2adbb6b..25e8783 100644
--- a/saotk/frame/frcommand.C
+++ b/saotk/frame/frcommand.C
@@ -59,12 +59,12 @@ void FrameBase::get3dViewCmd()
Tcl_AppendResult(interp, "0 0", NULL);
}
-void FrameBase::getCursorCmd(InternalSystem sys)
+void FrameBase::getCursorCmd(Coord::InternalSystem sys)
{
printVector(mapFromRef(cursor,sys), DEFAULT);
}
-void FrameBase::getCursorCmd(CoordSystem sys, SkyFrame sky, SkyFormat format,
+void FrameBase::getCursorCmd(Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
Precision pp)
{
if (currentContext->cfits)
@@ -73,7 +73,7 @@ void FrameBase::getCursorCmd(CoordSystem sys, SkyFrame sky, SkyFormat format,
printVector(Vector(), DEFAULT);
}
-void FrameBase::gridCmd(CoordSystem sys, SkyFrame sky, SkyFormat format,
+void FrameBase::gridCmd(Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
Grid::GridType type, const char* ops)
{
if (grid)
@@ -147,7 +147,7 @@ void FrameBase::iisGetFileNameCmd(int which)
void FrameBase::iisGetFileNameCmd(const Vector& vv)
{
- if (FitsImage* ptr = isInFits(vv, CANVAS, NULL))
+ if (FitsImage* ptr = isInFits(vv, Coord::CANVAS, NULL))
Tcl_AppendResult(interp, ptr->iisGetFileName(), NULL);
}
@@ -187,7 +187,7 @@ void FrameBase::iisMessageCmd(const char* ptr)
}
}
-void FrameBase::iisSetCursorCmd(const Vector& v, InternalSystem sys)
+void FrameBase::iisSetCursorCmd(const Vector& v, Coord::InternalSystem sys)
{
// assume canvas
if (!currentContext->cfits)
@@ -199,7 +199,7 @@ void FrameBase::iisSetCursorCmd(const Vector& v, InternalSystem sys)
XWarpPointer(display, None, Tk_WindowId(tkwin), 0,0,0,0,(int)r[0],(int)r[1]);
}
-void FrameBase::iisSetCursorCmd(const Vector& v, CoordSystem sys)
+void FrameBase::iisSetCursorCmd(const Vector& v, Coord::CoordSystem sys)
{
if (!currentContext->cfits)
return;
@@ -234,8 +234,8 @@ void FrameBase::iisSetFileNameCmd(const char* fn, int which)
void FrameBase::panCmd(const Vector& v1, const Vector& v2)
{
- Vector start = mapToRef(v1,CANVAS);
- Vector stop = mapToRef(v2,CANVAS);
+ Vector start = mapToRef(v1,Coord::CANVAS);
+ Vector stop = mapToRef(v2,Coord::CANVAS);
cursor -= stop - start;
setBinCursor();
@@ -244,15 +244,15 @@ void FrameBase::panCmd(const Vector& v1, const Vector& v2)
void FrameBase::panCmd(const Vector& vv)
{
- Vector uu = mapFromRef(cursor,CANVAS);
+ Vector uu = mapFromRef(cursor,Coord::CANVAS);
uu += vv;
- cursor = mapToRef(uu,CANVAS);
+ cursor = mapToRef(uu,Coord::CANVAS);
setBinCursor();
update(MATRIX);
}
-void FrameBase::panCmd(const Vector& vv, CoordSystem sys, SkyFrame sky)
+void FrameBase::panCmd(const Vector& vv, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (!currentContext->cfits)
return;
@@ -267,13 +267,13 @@ void FrameBase::panCmd(const Vector& vv, CoordSystem sys, SkyFrame sky)
void FrameBase::panToCmd(const Vector& vv)
{
- cursor = mapToRef(vv,CANVAS);
+ cursor = mapToRef(vv,Coord::CANVAS);
setBinCursor();
update(MATRIX);
}
-void FrameBase::panToCmd(const Vector& vv, CoordSystem sys, SkyFrame sky)
+void FrameBase::panToCmd(const Vector& vv, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
if (!currentContext->cfits)
return;
@@ -299,7 +299,7 @@ void FrameBase::panBBoxCmd(const Vector& vv)
void FrameBase::panEndCmd(const Vector& vv)
{
- // vv and panCursor are in CANVAS coords
+ // vv and panCursor are in Coord::CANVAS coords
// delete tmp pixmap
if (panPM)
Tk_FreePixmap(display, panPM);
@@ -371,14 +371,14 @@ void FrameBase::zoomAboutCmd(const Vector& zz, const Vector& vv)
zoom_[0] *= az[0];
zoom_[1] *= az[1];
- cursor = mapToRef(vv,CANVAS);
+ cursor = mapToRef(vv,Coord::CANVAS);
setBinCursor();
update(MATRIX);
}
void FrameBase::zoomAboutCmd(const Vector& z, const Vector& vv,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Vector az = ((Vector&)z).abs();
zoom_[0] *= az[0];
@@ -395,14 +395,14 @@ void FrameBase::zoomToAboutCmd(const Vector& z, const Vector& vv)
{
zoom_ = ((Vector&)z).abs();
- cursor = mapToRef(vv,CANVAS);
+ cursor = mapToRef(vv,Coord::CANVAS);
setBinCursor();
update(MATRIX);
}
void FrameBase::zoomToAboutCmd(const Vector& z, const Vector& vv,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
zoom_ = ((Vector&)z).abs();
diff --git a/saotk/frame/frload.C b/saotk/frame/frload.C
index e88a44e..9478a02 100644
--- a/saotk/frame/frload.C
+++ b/saotk/frame/frload.C
@@ -194,6 +194,15 @@ void Base::loadArrVarCmd(const char* ch, const char* fn, LayerType ll)
loadDone(currentContext->load(this, VAR, fn, img, ll),ll);
}
+// *** Photo ***
+
+void Base::loadPhotoCmd(const char* ph, const char* fn)
+{
+ unloadFits();
+ FitsImage* img = new FitsImagePhoto(this, interp, ph, fn, 1);
+ loadDone(currentContext->load(this, PHOTO, fn, img, IMG), IMG);
+}
+
// *** Data Cube ***
void Base::loadExtCubeAllocCmd(const char* ch, const char* fn)
@@ -344,7 +353,7 @@ void Base::loadSliceVarCmd(const char* ch, const char* fn, LoadMethod lm)
// *** Mosaic Image ***
-void Base::loadMosaicImageAllocCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicImageAllocCmd(MosaicType type, Coord::CoordSystem sys,
const char* ch, const char* fn, LayerType ll)
{
if (ll == IMG)
@@ -353,7 +362,7 @@ void Base::loadMosaicImageAllocCmd(MosaicType type, CoordSystem sys,
loadDone(currentContext->loadMosaicImage(this, ALLOC, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicImageAllocGZCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicImageAllocGZCmd(MosaicType type, Coord::CoordSystem sys,
const char* ch, const char* fn,
LayerType ll)
{
@@ -363,7 +372,7 @@ void Base::loadMosaicImageAllocGZCmd(MosaicType type, CoordSystem sys,
loadDone(currentContext->loadMosaicImage(this, ALLOCGZ, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicImageChannelCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicImageChannelCmd(MosaicType type, Coord::CoordSystem sys,
const char* ch, const char* fn,
LayerType ll)
{
@@ -374,7 +383,7 @@ void Base::loadMosaicImageChannelCmd(MosaicType type, CoordSystem sys,
loadDone(currentContext->loadMosaicImage(this, CHANNEL, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicImageMMapCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicImageMMapCmd(MosaicType type, Coord::CoordSystem sys,
const char* fn, LoadMethod lm, LayerType ll)
{
if (ll == IMG)
@@ -385,7 +394,7 @@ void Base::loadMosaicImageMMapCmd(MosaicType type, CoordSystem sys,
}
void Base::loadMosaicImageMMapIncrCmd(MosaicType type,
- CoordSystem sys,
+ Coord::CoordSystem sys,
const char* fn, LoadMethod lm,
LayerType ll)
{
@@ -396,7 +405,7 @@ void Base::loadMosaicImageMMapIncrCmd(MosaicType type,
loadDone(currentContext->loadMosaicImage(this, MMAPINCR, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicImageShareCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicImageShareCmd(MosaicType type, Coord::CoordSystem sys,
ShmType stype, int id, const char* fn,
LoadMethod lm, LayerType ll)
{
@@ -407,7 +416,7 @@ void Base::loadMosaicImageShareCmd(MosaicType type, CoordSystem sys,
loadDone(currentContext->loadMosaicImage(this, SHARE, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicImageSocketCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicImageSocketCmd(MosaicType type, Coord::CoordSystem sys,
int s, const char* fn, LayerType ll)
{
if (ll == IMG)
@@ -417,7 +426,7 @@ void Base::loadMosaicImageSocketCmd(MosaicType type, CoordSystem sys,
}
void Base::loadMosaicImageSocketGZCmd(MosaicType type,
- CoordSystem sys,
+ Coord::CoordSystem sys,
int s, const char* fn, LayerType ll)
{
if (ll == IMG)
@@ -426,7 +435,7 @@ void Base::loadMosaicImageSocketGZCmd(MosaicType type,
loadDone(currentContext->loadMosaicImage(this, SOCKETGZ, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicImageVarCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicImageVarCmd(MosaicType type, Coord::CoordSystem sys,
const char* ch, const char* fn, LoadMethod lm,
LayerType ll)
{
@@ -439,21 +448,21 @@ void Base::loadMosaicImageVarCmd(MosaicType type, CoordSystem sys,
// *** Mosaic ***
-void Base::loadMosaicAllocCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicAllocCmd(MosaicType type, Coord::CoordSystem sys,
const char* ch, const char* fn, LayerType ll)
{
FitsImage* img = new FitsImageFitsAlloc(this, ch, fn, FitsFile::NOFLUSH, 1);
loadDone(currentContext->loadMosaic(this, ALLOC, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicAllocGZCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicAllocGZCmd(MosaicType type, Coord::CoordSystem sys,
const char* ch, const char* fn, LayerType ll)
{
FitsImage* img = new FitsImageFitsAllocGZ(this, ch, fn, FitsFile::NOFLUSH, 1);
loadDone(currentContext->loadMosaic(this, ALLOCGZ, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicChannelCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicChannelCmd(MosaicType type, Coord::CoordSystem sys,
const char* ch, const char* fn, LayerType ll)
{
FitsImage* img = new FitsImageFitsChannel(this, interp, ch, fn,
@@ -461,7 +470,7 @@ void Base::loadMosaicChannelCmd(MosaicType type, CoordSystem sys,
loadDone(currentContext->loadMosaic(this, CHANNEL, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicMMapCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicMMapCmd(MosaicType type, Coord::CoordSystem sys,
const char* fn, LoadMethod lm, LayerType ll)
{
FitsImage* img = new FitsImageFitsMMap(this, fn, 1);
@@ -469,7 +478,7 @@ void Base::loadMosaicMMapCmd(MosaicType type, CoordSystem sys,
loadDone(currentContext->loadMosaic(this, SMMAP, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicSMMapCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicSMMapCmd(MosaicType type, Coord::CoordSystem sys,
const char* hdr, const char* fn,
LoadMethod lm, LayerType ll)
{
@@ -478,7 +487,7 @@ void Base::loadMosaicSMMapCmd(MosaicType type, CoordSystem sys,
loadDone(currentContext->loadMosaic(this, MMAP, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicMMapIncrCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicMMapIncrCmd(MosaicType type, Coord::CoordSystem sys,
const char* fn, LoadMethod lm, LayerType ll)
{
FitsImage* img = new FitsImageFitsMMapIncr(this, fn, 1);
@@ -486,7 +495,7 @@ void Base::loadMosaicMMapIncrCmd(MosaicType type, CoordSystem sys,
loadDone(currentContext->loadMosaic(this, MMAPINCR, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicShareCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicShareCmd(MosaicType type, Coord::CoordSystem sys,
ShmType stype, int id, const char* fn,
LoadMethod lm, LayerType ll)
{
@@ -495,7 +504,7 @@ void Base::loadMosaicShareCmd(MosaicType type, CoordSystem sys,
loadDone(currentContext->loadMosaic(this, SHARE, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicSShareCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicSShareCmd(MosaicType type, Coord::CoordSystem sys,
ShmType stype, int hdr, int id, const char* fn,
LoadMethod lm, LayerType ll)
{
@@ -504,21 +513,21 @@ void Base::loadMosaicSShareCmd(MosaicType type, CoordSystem sys,
loadDone(currentContext->loadMosaic(this, SSHARE, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicSocketCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicSocketCmd(MosaicType type, Coord::CoordSystem sys,
int s, const char* fn, LayerType ll)
{
FitsImage* img = new FitsImageFitsSocket(this, s, fn, FitsFile::FLUSH, 1);
loadDone(currentContext->loadMosaic(this, SOCKET, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicSocketGZCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicSocketGZCmd(MosaicType type, Coord::CoordSystem sys,
int s, const char* fn, LayerType ll)
{
FitsImage* img = new FitsImageFitsSocketGZ(this, s, fn, FitsFile::FLUSH, 1);
loadDone(currentContext->loadMosaic(this, SOCKETGZ, fn, img, ll,type,sys),ll);
}
-void Base::loadMosaicVarCmd(MosaicType type, CoordSystem sys,
+void Base::loadMosaicVarCmd(MosaicType type, Coord::CoordSystem sys,
const char* ch, const char* fn,
LoadMethod lm, LayerType ll)
{
@@ -622,7 +631,7 @@ void Base::loadDone(int rr, LayerType ll)
}
else {
reset();
- Tcl_AppendResult(interp, "Unable to load fits file", NULL);
+ Tcl_AppendResult(interp, "Unable to load file", NULL);
result = TCL_ERROR;
}
diff --git a/saotk/frame/frmap.C b/saotk/frame/frmap.C
index 7edced6..4968617 100644
--- a/saotk/frame/frmap.C
+++ b/saotk/frame/frmap.C
@@ -6,7 +6,7 @@
#include "framebase.h"
#include "fitsimage.h"
-double Base::mapAngleFromRef(double angle, CoordSystem sys, SkyFrame sky)
+double Base::mapAngleFromRef(double angle, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
double r = angle;
FitsImage* ptr = currentContext->cfits;
@@ -14,17 +14,17 @@ double Base::mapAngleFromRef(double angle, CoordSystem sys, SkyFrame sky)
return 0;
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
break;
default:
switch (ptr->getWCSOrientation(sys,sky)) {
- case NORMAL:
+ case Coord::NORMAL:
r = angle + ptr->getWCSRotation(sys,sky);
break;
- case XX:
+ case Coord::XX:
r = -angle + ptr->getWCSRotation(sys,sky) + M_PI;
break;
}
@@ -33,7 +33,7 @@ double Base::mapAngleFromRef(double angle, CoordSystem sys, SkyFrame sky)
return zeroTWOPI(r);
}
-double Base::mapAngleToRef(double angle, CoordSystem sys, SkyFrame sky)
+double Base::mapAngleToRef(double angle, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
double r = angle;
FitsImage* ptr = currentContext->cfits;
@@ -41,17 +41,17 @@ double Base::mapAngleToRef(double angle, CoordSystem sys, SkyFrame sky)
return 0;
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
break;
default:
switch (ptr->getWCSOrientation(sys,sky)) {
- case NORMAL:
+ case Coord::NORMAL:
r = angle - ptr->getWCSRotation(sys,sky);
break;
- case XX:
+ case Coord::XX:
r = -angle + ptr->getWCSRotation(sys,sky) + M_PI;
break;
}
@@ -61,76 +61,84 @@ double Base::mapAngleToRef(double angle, CoordSystem sys, SkyFrame sky)
}
double Base::mapDistFromRef(const Vector& v1, const Vector& v2,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
switch (sys) {
- case CANVAS:
+ case Coord::CANVAS:
return (v2*refToCanvas - v1*refToCanvas).length();
- case PANNER:
+ case Coord::PANNER:
return (v2*refToPanner - v1*refToPanner).length();
}
}
-double Base::mapLenFromRef(double d, InternalSystem sys)
+double Base::mapLenFromRef(double d, Coord::InternalSystem sys)
{
Vector r = mapLenFromRef(Vector(d,0),sys);
return r[0];
}
-Vector Base::mapLenFromRef(const Vector& v, InternalSystem sys)
+Vector Base::mapLenFromRef(const Vector& v, Coord::InternalSystem sys)
{
switch (sys) {
- case CANVAS:
+ case Coord::CANVAS:
return mapLen(v,refToCanvas);
- case PANNER:
+ case Coord::PANNER:
return mapLen(v,refToPanner);
}
}
-double Base::mapLenToRef(double d, InternalSystem sys)
+double Base::mapLenToRef(double d, Coord::InternalSystem sys)
{
Vector r = mapLenToRef(Vector(d,0),sys);
return r[0];
}
-Vector Base::mapLenToRef(const Vector& v, InternalSystem sys)
+Vector Base::mapLenToRef(const Vector& v, Coord::InternalSystem sys)
{
switch (sys) {
- case CANVAS:
+ case Coord::CANVAS:
return mapLen(v,canvasToRef);
- case PANNER:
+ case Coord::PANNER:
return mapLen(v,pannerToRef);
}
}
-Vector FrameBase::mapFromRef(const Vector& vv, InternalSystem sys)
+Vector FrameBase::mapFromRef(const Vector& vv, Coord::InternalSystem sys)
{
switch (sys) {
- case WIDGET:
+ case Coord::REF:
+ return vv;
+ case Coord::USER:
+ return vv * refToUser;
+ case Coord::WIDGET:
return vv * refToWidget;
- case CANVAS:
+ case Coord::CANVAS:
return vv * refToCanvas;
- case WINDOW:
+ case Coord::WINDOW:
return vv * refToWindow;
- case PANNER:
+ case Coord::PANNER:
return vv * refToPanner;
- case MAGNIFIER:
+ case Coord::MAGNIFIER:
return vv * refToMagnifier;
}
}
-Vector FrameBase::mapToRef(const Vector& vv, InternalSystem sys)
+Vector FrameBase::mapToRef(const Vector& vv, Coord::InternalSystem sys)
{
switch (sys) {
- case WIDGET:
+ case Coord::REF:
+ return vv;
+ case Coord::USER:
+ return vv * userToRef;
+ case Coord::WIDGET:
return vv * widgetToRef;
- case CANVAS:
+ case Coord::CANVAS:
return vv * canvasToRef;
- case WINDOW:
+ case Coord::WINDOW:
return vv * windowToRef;
- case PANNER:
+ case Coord::PANNER:
return vv * pannerToRef;
- case MAGNIFIER:
+ case Coord::MAGNIFIER:
return vv * magnifierToRef;
}
}
diff --git a/saotk/frame/frmarker.C b/saotk/frame/frmarker.C
index 4bccfcc..75f5d6d 100644
--- a/saotk/frame/frmarker.C
+++ b/saotk/frame/frmarker.C
@@ -9,34 +9,34 @@
#include "base.h"
#include "fitsimage.h"
#include "fvcontour.h"
-
#include "marker.h"
#include "basemarker.h"
#include "NaN.h"
+#include "sigbus.h"
+#include "parser.H"
-#include "annulus.h"
-#include "box.h"
-#include "boxannulus.h"
-#include "bpanda.h"
#include "circle.h"
-#include "compass.h"
-#include "composite.h"
-#include "cpanda.h"
#include "ellipse.h"
-#include "ellipseannulus.h"
-#include "epanda.h"
+#include "box.h"
+#include "polygon.h"
#include "line.h"
-#include "ruler.h"
+#include "vect.h"
+#include "text.h"
#include "point.h"
-#include "polygon.h"
+
+#include "ruler.h"
+#include "compass.h"
#include "projection.h"
-#include "circle3d.h"
-#include "text.h"
-#include "vect.h"
-#include "sigbus.h"
+#include "annulus.h"
+#include "ellipseannulus.h"
+#include "boxannulus.h"
-#include "parser.H"
+#include "cpanda.h"
+#include "epanda.h"
+#include "bpanda.h"
+
+#include "composite.h"
#define LISTBUFSIZE 8192
@@ -203,6 +203,7 @@ void xyerror(Base* fr, xyFlexLexer* ll, const char* m)
// Marker Commands
+// Basic Regions
void Base::createCircleCmd(const Vector& center,
double radius,
const char* color, int* dash,
@@ -217,66 +218,6 @@ void Base::createCircleCmd(const Vector& center,
prop, comment, tag, cb));
}
-void Base::createAnnulusCmd(const Vector& center,
- double start, double stop, int num,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,const List<CallBack>& cb)
-{
- createMarker(new Annulus(this, center,
- start, stop, num,
- color, dash, width, font, text,
- prop, comment, tag, cb));
-}
-
-void Base::createAnnulusCmd(const Vector& center,
- int num, double* radii,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,const List<CallBack>& cb)
-{
- createMarker(new Annulus(this, center,
- num, radii,
- color, dash, width, font, text,
- prop, comment, tag, cb));
-}
-
-void Base::createCpandaCmd(const Vector& center,
- double ang1, double ang2, int an,
- double rad1, double rad2, int rn,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag, const List<CallBack>& cb)
-{
- createMarker(new Cpanda(this, center,
- ang1, ang2, an,
- rad1, rad2, rn,
- color, dash, width, font, text,
- prop, comment, tag, cb));
-}
-
-void Base::createCpandaCmd(const Vector& center,
- int an, double* a,
- int rn, double* r,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag, const List<CallBack>& cb)
-{
- createMarker(new Cpanda(this, center,
- an, a,
- rn, r,
- color, dash, width, font, text,
- prop, comment, tag, cb));
-}
-
void Base::createEllipseCmd(const Vector& center,
const Vector& radius,
double angle,
@@ -294,77 +235,6 @@ void Base::createEllipseCmd(const Vector& center,
prop, comment, tag, cb));
}
-void Base::createEllipseAnnulusCmd(const Vector& center,
- const Vector& inner,
- const Vector& outer, int num,
- double angle,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
-{
- createMarker(new EllipseAnnulus(this, center,
- inner, outer, num,
- angle,
- color, dash, width, font, text,
- prop, comment, tag, cb));
-}
-
-void Base::createEllipseAnnulusCmd(const Vector& center,
- int num, Vector* radii,
- double angle,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
-{
- createMarker(new EllipseAnnulus(this, center,
- num, radii,
- angle,
- color, dash, width, font, text,
- prop, comment, tag, cb));
-}
-
-void Base::createEpandaCmd(const Vector& center,
- double ang1, double ang2, int an,
- const Vector& rad1, const Vector& rad2, int rn,
- double angle,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag, const List<CallBack>& cb)
-{
- createMarker(new Epanda(this, center,
- ang1, ang2, an,
- rad1, rad2, rn,
- angle,
- color, dash, width, font, text,
- prop, comment, tag, cb));
-}
-
-void Base::createEpandaCmd(const Vector& center,
- int an, double* a,
- int rn, Vector* r,
- double angle,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag, const List<CallBack>& cb)
-{
- createMarker(new Epanda(this, center,
- an, a,
- rn, r,
- angle,
- color, dash, width, font, text,
- prop, comment, tag, cb));
-}
-
void Base::createBoxCmd(const Vector& center,
const Vector& size,
double angle,
@@ -381,75 +251,93 @@ void Base::createBoxCmd(const Vector& center,
prop, comment, tag, cb));
}
-void Base::createBoxAnnulusCmd(const Vector& center,
- const Vector& inner, const Vector& outer,
- int num,
- double angle,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
+void Base::createPolygonCmd(const Vector& center,
+ const Vector& bb,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag, const List<CallBack>& cb)
{
- createMarker(new BoxAnnulus(this, center,
- inner, outer, num,
- angle,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Polygon(this, center,
+ bb,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createBoxAnnulusCmd(const Vector& center,
- int num, Vector* size,
- double angle,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
+void Base::createPolygonCmd(const List<Vertex>& list,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag, const List<CallBack>& cb)
{
- createMarker(new BoxAnnulus(this, center,
- num, size,
- angle,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Polygon(this, list,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createBpandaCmd(const Vector& center,
- double ang1, double ang2, int an,
- const Vector& rad1, const Vector& rad2, int rn,
- double angle,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag, const List<CallBack>& cb)
+void Base::createContourPolygonCmd(
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag,
+ const List<CallBack>& cb)
{
- createMarker(new Bpanda(this, center,
- ang1, ang2, an,
- rad1, rad2, rn,
- angle,
- color, dash, width, font, text,
- prop, comment, tag, cb));
-}
+ // only create in the USER layer
+ markerLayerCmd(USER);
-void Base::createBpandaCmd(const Vector& center,
- int an, double* a,
- int rn, Vector* r,
- double angle,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag, const List<CallBack>& cb)
-{
- createMarker(new Bpanda(this, center,
- an, a,
- rn, r,
- angle,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ // main contour
+ if (hasContour()) {
+ List<Vertex>& c = (List<Vertex>&)(currentContext->contour->contours());
+
+ // build from back to front
+ if (c.tail()) {
+ List<Vertex> list;
+ while (c.previous()) {
+ if (c.current()->vector[0] != DBL_MAX)
+ list.append(new Vertex(c.current()->vector));
+ else {
+ if (list.count()>0)
+ createMarker(new Polygon(this, list,
+ color, dash, width, font, text,
+ prop, NULL, tag, cb));
+ list.deleteAll();
+ }
+ }
+ if (list.count()>0)
+ createMarker(new Polygon(this, list,
+ color, dash, width, font, text, prop,
+ comment, tag, cb));
+ }
+ }
+
+ // aux contours
+ Contour* cptr = currentContext->auxcontours.head();
+ while (cptr) {
+ List<Vertex>& c = (List<Vertex>&)(cptr->contours());
+
+ // build from back to front
+ if (c.tail()) {
+ List<Vertex> list;
+ while (c.previous()) {
+ if (c.current()->vector[0] != DBL_MAX)
+ list.append(new Vertex(c.current()->vector));
+ else {
+ if (list.count()>0)
+ createMarker(new Polygon(this, list, color, dash, width, font,
+ text, prop, NULL, tag, cb));
+ list.deleteAll();
+ }
+ }
+ if (list.count()>0)
+ createMarker(new Polygon(this, list, color, dash, width, font,
+ text, prop, comment, tag, cb));
+ }
+
+ cptr = cptr->next();
+ }
}
void Base::createLineCmd(const Vector& center, const Vector& p2,
@@ -491,39 +379,36 @@ void Base::createVectCmd(const Vector& center, double mag, double ang,
prop, comment, tag, cb));
}
-void Base::createProjectionCmd(const Vector& center, const Vector& p2,
- double w,
- const char* mvcb, const char* delcb,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
+void Base::createTextCmd(const Vector& center, double angle, int rotate,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag, const List<CallBack>& cb)
{
- createMarker(new Projection(this, center, p2, w, mvcb, delcb,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Text(this, center, angle, rotate,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createCircle3dCmd(const Vector& center,
- double radius,
- const char* mvcb, const char* delcb,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
+void Base::createPointCmd(const Vector& center,
+ Point::PointShape shape, int size,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag,
+ const List<CallBack>& cb)
{
- createMarker(new Circle3d(this, center, radius, mvcb, delcb,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Point(this, center, shape, size,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
+// Measurement Regions
void Base::createRulerCmd(const Vector& center, const Vector& p2,
- CoordSystem sys, SkyFrame sky,
- CoordSystem distsys, SkyDist distdist,
+ Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::CoordSystem distsys, Coord::SkyDist distdist,
const char* color, int* dash,
int width, const char* font,
const char* text, unsigned short prop,
@@ -536,46 +421,105 @@ void Base::createRulerCmd(const Vector& center, const Vector& p2,
prop, comment, tag, cb));
}
-void Base::createCirclePointCmd(const Vector& center, int size,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
+void Base::createCompassCmd(const Vector& center, double r,
+ const char* north, const char* east,
+ int na, int ea,
+ Coord::CoordSystem sys, Coord::SkyFrame sky,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag,
+ const List<CallBack>& cb)
{
- createMarker(new CirclePoint(this, center, size,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Compass(this, center, r, north, east, na, ea, sys, sky,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createBoxPointCmd(const Vector& center, int size,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
+void Base::createProjectionCmd(const Vector& center,
+ const Vector& p2, double w,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag,
+ const List<CallBack>& cb)
{
- createMarker(new BoxPoint(this, center, size,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Projection(this, center,
+ p2, w,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createDiamondPointCmd(const Vector& center, int size,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
+// Annulus Regions
+void Base::createAnnulusCmd(const Vector& center,
+ double start, double stop, int num,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag,const List<CallBack>& cb)
{
- createMarker(new DiamondPoint(this, center, size,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Annulus(this, center,
+ start, stop, num,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
+}
+
+void Base::createAnnulusCmd(const Vector& center,
+ int num, double* radii,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag,const List<CallBack>& cb)
+{
+ createMarker(new Annulus(this, center,
+ num, radii,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
+}
+
+void Base::createEllipseAnnulusCmd(const Vector& center,
+ const Vector& inner,
+ const Vector& outer, int num,
+ double angle,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag,
+ const List<CallBack>& cb)
+{
+ createMarker(new EllipseAnnulus(this, center,
+ inner, outer, num,
+ angle,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
+}
+
+void Base::createEllipseAnnulusCmd(const Vector& center,
+ int num, Vector* radii,
+ double angle,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag,
+ const List<CallBack>& cb)
+{
+ createMarker(new EllipseAnnulus(this, center,
+ num, radii,
+ angle,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createCrossPointCmd(const Vector& center, int size,
+void Base::createBoxAnnulusCmd(const Vector& center,
+ const Vector& inner, const Vector& outer,
+ int num,
+ double angle,
const char* color, int* dash,
int width, const char* font,
const char* text, unsigned short prop,
@@ -583,167 +527,136 @@ void Base::createCrossPointCmd(const Vector& center, int size,
const List<Tag>& tag,
const List<CallBack>& cb)
{
- createMarker(new CrossPoint(this, center, size,
+ createMarker(new BoxAnnulus(this, center,
+ inner, outer, num,
+ angle,
color, dash, width, font, text,
prop, comment, tag, cb));
}
-void Base::createExPointCmd(const Vector& center, int size,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
-{
- createMarker(new ExPoint(this, center, size,
- color, dash, width, font, text,
- prop, comment, tag, cb));
-}
-
-void Base::createArrowPointCmd(const Vector& center, int size,
+void Base::createBoxAnnulusCmd(const Vector& center,
+ int num, Vector* size,
+ double angle,
const char* color, int* dash,
- int width, const char* font,
+ int width, const char* font,
const char* text, unsigned short prop,
const char* comment,
const List<Tag>& tag,
const List<CallBack>& cb)
{
- createMarker(new ArrowPoint(this, center, size,
+ createMarker(new BoxAnnulus(this, center,
+ num, size,
+ angle,
color, dash, width, font, text,
prop, comment, tag, cb));
}
-void Base::createBoxCirclePointCmd(const Vector& center, int size,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
+// Panda Regions
+void Base::createCpandaCmd(const Vector& center,
+ double ang1, double ang2, int an,
+ double rad1, double rad2, int rn,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag, const List<CallBack>& cb)
{
- createMarker(new BoxCirclePoint(this, center, size,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Cpanda(this, center,
+ ang1, ang2, an,
+ rad1, rad2, rn,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createTextCmd(const Vector& center, double angle, int rotate,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag, const List<CallBack>& cb)
+void Base::createCpandaCmd(const Vector& center,
+ int an, double* a,
+ int rn, double* r,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag, const List<CallBack>& cb)
{
- createMarker(new Text(this, center, angle, rotate,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Cpanda(this, center,
+ an, a,
+ rn, r,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createPolygonCmd(const Vector& center,
- const Vector& bb,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag, const List<CallBack>& cb)
+void Base::createEpandaCmd(const Vector& center,
+ double ang1, double ang2, int an,
+ const Vector& rad1, const Vector& rad2, int rn,
+ double angle,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag, const List<CallBack>& cb)
{
- createMarker(new Polygon(this, center,
- bb,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Epanda(this, center,
+ ang1, ang2, an,
+ rad1, rad2, rn,
+ angle,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createPolygonCmd(const List<Vertex>& list,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag, const List<CallBack>& cb)
+void Base::createEpandaCmd(const Vector& center,
+ int an, double* a,
+ int rn, Vector* r,
+ double angle,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag, const List<CallBack>& cb)
{
- createMarker(new Polygon(this, list,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Epanda(this, center,
+ an, a,
+ rn, r,
+ angle,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createContourPolygonCmd(
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
+void Base::createBpandaCmd(const Vector& center,
+ double ang1, double ang2, int an,
+ const Vector& rad1, const Vector& rad2, int rn,
+ double angle,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag, const List<CallBack>& cb)
{
- // only create in the USER layer
- markerLayerCmd(USER);
-
- // main contour
- if (hasContour()) {
- List<Vertex>& c = (List<Vertex>&)(currentContext->contour->contours());
-
- // build from back to front
- if (c.tail()) {
- List<Vertex> list;
- while (c.previous()) {
- if (c.current()->vector[0] != DBL_MAX)
- list.append(new Vertex(c.current()->vector));
- else {
- if (list.count()>0)
- createMarker(new Polygon(this, list,
- color, dash, width, font, text,
- prop, NULL, tag, cb));
- list.deleteAll();
- }
- }
- if (list.count()>0)
- createMarker(new Polygon(this, list,
- color, dash, width, font, text, prop,
- comment, tag, cb));
- }
- }
-
- // aux contours
- Contour* cptr = currentContext->auxcontours.head();
- while (cptr) {
- List<Vertex>& c = (List<Vertex>&)(cptr->contours());
-
- // build from back to front
- if (c.tail()) {
- List<Vertex> list;
- while (c.previous()) {
- if (c.current()->vector[0] != DBL_MAX)
- list.append(new Vertex(c.current()->vector));
- else {
- if (list.count()>0)
- createMarker(new Polygon(this, list, color, dash, width, font,
- text, prop, NULL, tag, cb));
- list.deleteAll();
- }
- }
- if (list.count()>0)
- createMarker(new Polygon(this, list, color, dash, width, font,
- text, prop, comment, tag, cb));
- }
-
- cptr = cptr->next();
- }
+ createMarker(new Bpanda(this, center,
+ ang1, ang2, an,
+ rad1, rad2, rn,
+ angle,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
-void Base::createCompassCmd(const Vector& center, double r,
- const char* north, const char* east,
- int na, int ea,
- CoordSystem sys, SkyFrame sky,
- const char* color, int* dash,
- int width, const char* font,
- const char* text, unsigned short prop,
- const char* comment,
- const List<Tag>& tag,
- const List<CallBack>& cb)
+void Base::createBpandaCmd(const Vector& center,
+ int an, double* a,
+ int rn, Vector* r,
+ double angle,
+ const char* color, int* dash,
+ int width, const char* font,
+ const char* text, unsigned short prop,
+ const char* comment,
+ const List<Tag>& tag, const List<CallBack>& cb)
{
- createMarker(new Compass(this, center, r, north, east, na, ea, sys, sky,
- color, dash, width, font, text,
- prop, comment, tag, cb));
+ createMarker(new Bpanda(this, center,
+ an, a,
+ rn, r,
+ angle,
+ color, dash, width, font, text,
+ prop, comment, tag, cb));
}
+// Composite Regions
void Base::createCompositeCmd(const Vector& center, double angle,
int global,
const char* color, int* dash,
@@ -808,6 +721,7 @@ void Base::createCompositeCmd(
update(PIXMAP);
}
+// Template Regions
void Base::createTemplateCmd(const Vector& center, const char* fn)
{
ifstream str(fn);
@@ -818,8 +732,8 @@ void Base::createTemplateCmd(const Vector& center, const char* fn)
createTemplate(center,str);
}
-void Base::createTemplateCmd(const Vector& v, CoordSystem sys,
- SkyFrame sky, const char* fn)
+void Base::createTemplateCmd(const Vector& v, Coord::CoordSystem sys,
+ Coord::SkyFrame sky, const char* fn)
{
ifstream str(fn);
if (!str) {
@@ -902,6 +816,8 @@ void Base::createTemplate(const Vector& center, istream& str)
}
}
+// Support
+
void Base::createMarker(Marker* m)
{
if (maperr) {
@@ -972,24 +888,85 @@ Vector Base::centroid(const Vector& vv)
if (ii*ii+jj*jj <= rr2) {
double val = ptr->getValueDouble(aa);
- // check for nan
- if (!isnand(val)) {
- sum += aa*val;
- weight += val;
- }
- }
- }
+ // check for nan
+ if (!isnand(val)) {
+ sum += aa*val;
+ weight += val;
+ }
+ }
+ }
+ }
+ }
+
+ if (weight>0)
+ cd = sum/weight;
+ else
+ break;
+ }
+ CLEARSIGBUS
+
+ return cd * ptr->dataToRef;
+}
+
+void Base::getMarkerAnalysisPlot2dCmd(int id, char* xname, char* yname,
+ char* xcname, char* ycname)
+{
+ Marker* m=markers->head();
+ while (m) {
+ if (m->getId() == id) {
+ m->analysisPlot2d(xname, yname, xcname, ycname);
+ return;
+ }
+ m=m->next();
+ }
+}
+
+void Base::getMarkerAnalysisPlot3dCmd(int id, char* xname, char* yname)
+{
+ Marker* m=markers->head();
+ while (m) {
+ if (m->getId() == id) {
+ m->analysisPlot3d(xname, yname);
+ return;
+ }
+ m=m->next();
+ }
+}
+
+void Base::getMarkerAnalysisParamCmd(int id)
+{
+ Marker* m=markers->head();
+ while (m) {
+ if (m->getId() == id) {
+ switch (m->analysisParam()) {
+ case Marker::AVERAGE:
+ Tcl_AppendResult(interp, "average", NULL);
+ return;
+ case Marker::SUM:
+ Tcl_AppendResult(interp, "sum", NULL);
+ return;
}
}
+ m=m->next();
+ }
- if (weight>0)
- cd = sum/weight;
- else
- break;
+ Tcl_AppendResult(interp, "", NULL);
+}
+
+void Base::getMarkerAnalysisSystemCmd(int id)
+{
+ Marker* m=markers->head();
+ while (m) {
+ if (m->getId() == id) {
+ printCoordSystem(m->analysisSystem());
+ Tcl_AppendResult(interp, " ", NULL);
+ printSkyFrame(m->analysisSky());
+ return;
+ }
+ m=m->next();
}
- CLEARSIGBUS
- return cd * ptr->dataToRef;
+ Tcl_AppendResult(interp, "", NULL);
}
void Base::getMarkerAngleCmd(int id)
@@ -1006,7 +983,7 @@ void Base::getMarkerAngleCmd(int id)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerAngleCmd(int id, CoordSystem sys, SkyFrame sky)
+void Base::getMarkerAngleCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
while (m) {
@@ -1020,7 +997,7 @@ void Base::getMarkerAngleCmd(int id, CoordSystem sys, SkyFrame sky)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerAnnulusRadiusCmd(int id, InternalSystem sys)
+void Base::getMarkerAnnulusRadiusCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1039,7 +1016,7 @@ void Base::getMarkerAnnulusRadiusCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerAnnulusRadiusCmd(int id, CoordSystem sys, SkyDist dist)
+void Base::getMarkerAnnulusRadiusCmd(int id, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1058,7 +1035,7 @@ void Base::getMarkerAnnulusRadiusCmd(int id, CoordSystem sys, SkyDist dist)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerBoxAnnulusRadiusCmd(int id, InternalSystem sys)
+void Base::getMarkerBoxAnnulusRadiusCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1076,8 +1053,8 @@ void Base::getMarkerBoxAnnulusRadiusCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerBoxAnnulusRadiusCmd(int id, CoordSystem sys,
- SkyDist dist)
+void Base::getMarkerBoxAnnulusRadiusCmd(int id, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1096,7 +1073,7 @@ void Base::getMarkerBoxAnnulusRadiusCmd(int id, CoordSystem sys,
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerBoxRadiusCmd(int id, InternalSystem sys)
+void Base::getMarkerBoxRadiusCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1110,7 +1087,7 @@ void Base::getMarkerBoxRadiusCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerBoxRadiusCmd(int id, CoordSystem sys, SkyDist dist)
+void Base::getMarkerBoxRadiusCmd(int id, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1148,7 +1125,7 @@ void Base::getMarkerBpandaAnglesCmd(int id)
}
}
-void Base::getMarkerBpandaAnglesCmd(int id, CoordSystem sys, SkyFrame sky)
+void Base::getMarkerBpandaAnglesCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
while (m) {
@@ -1173,7 +1150,7 @@ void Base::getMarkerBpandaAnglesCmd(int id, CoordSystem sys, SkyFrame sky)
}
}
-void Base::getMarkerBpandaRadiusCmd(int id, InternalSystem sys)
+void Base::getMarkerBpandaRadiusCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1192,7 +1169,7 @@ void Base::getMarkerBpandaRadiusCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerBpandaRadiusCmd(int id, CoordSystem sys, SkyDist dist)
+void Base::getMarkerBpandaRadiusCmd(int id, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1212,7 +1189,7 @@ void Base::getMarkerBpandaRadiusCmd(int id, CoordSystem sys, SkyDist dist)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerCenterCmd(int id, InternalSystem sys)
+void Base::getMarkerCenterCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1224,8 +1201,8 @@ void Base::getMarkerCenterCmd(int id, InternalSystem sys)
}
}
-void Base::getMarkerCenterCmd(int id, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Base::getMarkerCenterCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
Marker* m=markers->head();
while (m) {
@@ -1237,7 +1214,7 @@ void Base::getMarkerCenterCmd(int id, CoordSystem sys, SkyFrame sky,
}
}
-void Base::getMarkerCircleRadiusCmd(int id, InternalSystem sys)
+void Base::getMarkerCircleRadiusCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1252,7 +1229,7 @@ void Base::getMarkerCircleRadiusCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerCircleRadiusCmd(int id, CoordSystem sys, SkyDist dist)
+void Base::getMarkerCircleRadiusCmd(int id, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1267,63 +1244,6 @@ void Base::getMarkerCircleRadiusCmd(int id, CoordSystem sys, SkyDist dist)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerCircle3dCmd(int id, char* xName, char* yName,
- char* xcName)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- bltCircle3d(xName, yName, xcName, (Circle3d*)m);
- return;
- }
- m=m->next();
- }
-}
-
-void Base::getMarkerCircle3dMethodCmd(int id)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- printInteger(((Circle3d*)m)->getMethod());
- return;
- }
- m=m->next();
- }
-
- Tcl_AppendResult(interp, "", NULL);
-}
-
-void Base::getMarkerCircle3dRadiusCmd(int id, CoordSystem sys,
- SkyDist dist)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- Vector r = ((Circle3d*)m)->annuli(0);
- markerPrintDouble(m->getCenter(),r[0],sys,dist);
- return;
- }
- m=m->next();
- }
-
- Tcl_AppendResult(interp, "", NULL);
-}
-
-void Base::getMarkerCircle3dSystemCmd(int id)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- printCoordSystem(((Circle3d*)m)->getSystem());
- return;
- }
- m=m->next();
- }
-
- Tcl_AppendResult(interp, "", NULL);
-}
-
void Base::getMarkerCpandaAnglesCmd(int id)
{
Marker* m=markers->head();
@@ -1350,7 +1270,7 @@ void Base::getMarkerCpandaAnglesCmd(int id)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerCpandaAnglesCmd(int id, CoordSystem sys, SkyFrame sky)
+void Base::getMarkerCpandaAnglesCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
while (m) {
@@ -1377,7 +1297,7 @@ void Base::getMarkerCpandaAnglesCmd(int id, CoordSystem sys, SkyFrame sky)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerCpandaRadiusCmd(int id, InternalSystem sys)
+void Base::getMarkerCpandaRadiusCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1396,7 +1316,7 @@ void Base::getMarkerCpandaRadiusCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerCpandaRadiusCmd(int id, CoordSystem sys, SkyDist dist)
+void Base::getMarkerCpandaRadiusCmd(int id, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1499,7 +1419,7 @@ void Base::getMarkerCompassLabelCmd(int id)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerCompassRadiusCmd(int id, InternalSystem sys)
+void Base::getMarkerCompassRadiusCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1514,7 +1434,7 @@ void Base::getMarkerCompassRadiusCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerCompassRadiusCmd(int id, CoordSystem sys, SkyDist dist)
+void Base::getMarkerCompassRadiusCmd(int id, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1559,7 +1479,7 @@ void Base::getMarkerCompositeCmd(int id)
}
}
-void Base::getMarkerEllipseRadiusCmd(int id, InternalSystem sys)
+void Base::getMarkerEllipseRadiusCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1573,8 +1493,8 @@ void Base::getMarkerEllipseRadiusCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerEllipseRadiusCmd(int id, CoordSystem sys,
- SkyDist dist)
+void Base::getMarkerEllipseRadiusCmd(int id, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1588,7 +1508,7 @@ void Base::getMarkerEllipseRadiusCmd(int id, CoordSystem sys,
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerEllipseAnnulusRadiusCmd(int id, InternalSystem sys)
+void Base::getMarkerEllipseAnnulusRadiusCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1606,8 +1526,8 @@ void Base::getMarkerEllipseAnnulusRadiusCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerEllipseAnnulusRadiusCmd(int id, CoordSystem sys,
- SkyDist dist)
+void Base::getMarkerEllipseAnnulusRadiusCmd(int id, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1650,7 +1570,7 @@ void Base::getMarkerEpandaAnglesCmd(int id)
}
}
-void Base::getMarkerEpandaAnglesCmd(int id, CoordSystem sys, SkyFrame sky)
+void Base::getMarkerEpandaAnglesCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
while (m) {
@@ -1675,7 +1595,7 @@ void Base::getMarkerEpandaAnglesCmd(int id, CoordSystem sys, SkyFrame sky)
}
}
-void Base::getMarkerEpandaRadiusCmd(int id, InternalSystem sys)
+void Base::getMarkerEpandaRadiusCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1694,8 +1614,8 @@ void Base::getMarkerEpandaRadiusCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerEpandaRadiusCmd(int id, CoordSystem sys,
- SkyDist dist)
+void Base::getMarkerEpandaRadiusCmd(int id, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1813,7 +1733,7 @@ void Base::getMarkerIdAllCmd()
}
}
-void Base::getMarkerLineCmd(int id, InternalSystem sys)
+void Base::getMarkerLineCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1826,8 +1746,8 @@ void Base::getMarkerLineCmd(int id, InternalSystem sys)
}
}
-void Base::getMarkerLineCmd(int id, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Base::getMarkerLineCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
Marker* m=markers->head();
while (m) {
@@ -1862,7 +1782,7 @@ void Base::getMarkerLineArrowCmd(int id)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerLineLengthCmd(int id, InternalSystem sys)
+void Base::getMarkerLineLengthCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -1876,8 +1796,8 @@ void Base::getMarkerLineLengthCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerLineLengthCmd(int id, CoordSystem sys,
- SkyDist dist)
+void Base::getMarkerLineLengthCmd(int id, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1925,8 +1845,8 @@ void Base::getMarkerLineWidthCmd(int id)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerMapLenFromRefCmd(int id, double d, CoordSystem sys,
- SkyDist dist)
+void Base::getMarkerMapLenFromRefCmd(int id, double d, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -1941,6 +1861,20 @@ void Base::getMarkerMapLenFromRefCmd(int id, double d, CoordSystem sys,
Tcl_AppendResult(interp, "", NULL);
}
+void Base::getMarkerPointShapeCmd(int id)
+{
+ Marker* m=markers->head();
+ while (m) {
+ if (m->getId() == id) {
+ Tcl_AppendResult(interp, ((Point*)m)->shape(), NULL);
+ return;
+ }
+ m=m->next();
+ }
+
+ Tcl_AppendResult(interp, "", NULL);
+}
+
void Base::getMarkerPointSizeCmd(int id)
{
Marker* m=markers->head();
@@ -1959,8 +1893,8 @@ void Base::getMarkerPolygonSegmentCmd(const Vector& v)
{
Marker* m=markers->head();
while (m) {
- if (m->isSelected() && m->isPolygon()) {
- int s = ((Polygon*)(m))->getSegment(v);
+ if (m->isSelected()) {
+ int s = m->getSegment(v);
if (s) {
ostringstream str;
str << m->getId() << ' ' << s << ends;
@@ -1982,21 +1916,7 @@ void Base::getMarkerPreserveCmd()
Tcl_AppendResult(interp, "0", NULL);
}
-void Base::getMarkerProjectionCmd(int id,
- char* xName, char* yName,
- char* xcName, char* ycName)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- bltProjection(xName, yName, xcName, ycName,(Projection*)m);
- return;
- }
- m=m->next();
- }
-}
-
-void Base::getMarkerProjectionPointsCmd(int id, InternalSystem sys)
+void Base::getMarkerProjectionPointsCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -2009,8 +1929,8 @@ void Base::getMarkerProjectionPointsCmd(int id, InternalSystem sys)
}
}
-void Base::getMarkerProjectionPointsCmd(int id, CoordSystem sys,
- SkyFrame sky, SkyFormat format)
+void Base::getMarkerProjectionPointsCmd(int id, Coord::CoordSystem sys,
+ Coord::SkyFrame sky, Coord::SkyFormat format)
{
Marker* m=markers->head();
while (m) {
@@ -2025,7 +1945,7 @@ void Base::getMarkerProjectionPointsCmd(int id, CoordSystem sys,
}
}
-void Base::getMarkerProjectionLengthCmd(int id, InternalSystem sys)
+void Base::getMarkerProjectionLengthCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -2040,8 +1960,8 @@ void Base::getMarkerProjectionLengthCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerProjectionLengthCmd(int id, CoordSystem sys,
- SkyDist dist)
+void Base::getMarkerProjectionLengthCmd(int id, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -2056,21 +1976,7 @@ void Base::getMarkerProjectionLengthCmd(int id, CoordSystem sys,
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerProjectionMethodCmd(int id)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- printInteger(((Projection*)m)->getMethod());
- return;
- }
- m=m->next();
- }
-
- Tcl_AppendResult(interp, "", NULL);
-}
-
-void Base::getMarkerProjectionWidthCmd(int id, InternalSystem sys)
+void Base::getMarkerProjectionWidthCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -2084,8 +1990,8 @@ void Base::getMarkerProjectionWidthCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerProjectionWidthCmd(int id, CoordSystem sys,
- SkyDist dist)
+void Base::getMarkerProjectionWidthCmd(int id, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -2100,22 +2006,6 @@ void Base::getMarkerProjectionWidthCmd(int id, CoordSystem sys,
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerProjectionSystemCmd(int id)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- printCoordSystem(((Projection*)m)->getSystem());
- Tcl_AppendResult(interp, " ", NULL);
- printSkyFrame(((Projection*)m)->getSkyFrame());
- return;
- }
- m=m->next();
- }
-
- Tcl_AppendResult(interp, "", NULL);
-}
-
void Base::getMarkerPropertyCmd(unsigned short which)
{
// return first selected found
@@ -2174,7 +2064,7 @@ void Base::getMarkerPropertyCmd(int id, unsigned short which)
Tcl_AppendResult(interp, "0", NULL);
}
-void Base::getMarkerRulerLengthCmd(int id, InternalSystem sys)
+void Base::getMarkerRulerLengthCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -2192,8 +2082,8 @@ void Base::getMarkerRulerLengthCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerRulerLengthCmd(int id, CoordSystem sys,
- SkyDist dist)
+void Base::getMarkerRulerLengthCmd(int id, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -2217,7 +2107,7 @@ void Base::getMarkerRulerLengthCmd(int id, CoordSystem sys,
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerRulerPointCmd(int id, InternalSystem sys)
+void Base::getMarkerRulerPointCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -2230,8 +2120,8 @@ void Base::getMarkerRulerPointCmd(int id, InternalSystem sys)
}
}
-void Base::getMarkerRulerPointCmd(int id, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Base::getMarkerRulerPointCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
Marker* m=markers->head();
while (m) {
@@ -2597,7 +2487,7 @@ void Base::getMarkerTypeCmd(int id)
}
}
-void Base::getMarkerVectorCmd(int id, InternalSystem sys)
+void Base::getMarkerVectorCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -2609,8 +2499,8 @@ void Base::getMarkerVectorCmd(int id, InternalSystem sys)
}
}
-void Base::getMarkerVectorCmd(int id, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Base::getMarkerVectorCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
Marker* m=markers->head();
while (m) {
@@ -2639,7 +2529,7 @@ void Base::getMarkerVectorArrowCmd(int id)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerVectorLengthCmd(int id, InternalSystem sys)
+void Base::getMarkerVectorLengthCmd(int id, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -2653,7 +2543,7 @@ void Base::getMarkerVectorLengthCmd(int id, InternalSystem sys)
Tcl_AppendResult(interp, "", NULL);
}
-void Base::getMarkerVectorLengthCmd(int id, CoordSystem sys, SkyDist dist)
+void Base::getMarkerVectorLengthCmd(int id, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -2740,6 +2630,50 @@ void Base::markerLayerCmd(MarkerLayer layer) {
}
}
+void Base::markerAnalysisCmd(int id, Marker::AnalysisMethod aa, int which)
+{
+ Marker* m=markers->head();
+ while (m) {
+ if (m->getId() == id) {
+ m->analysis(aa,which);
+ return;
+ }
+ m=m->next();
+ }
+
+ result = TCL_ERROR;
+}
+
+void Base::markerAnalysisParamCmd(int id, Marker::AnalysisParamType pp)
+{
+ Marker* m=markers->head();
+ while (m) {
+ if (m->getId() == id) {
+ m->setAnalysisParam(pp);
+ return;
+ }
+ m=m->next();
+ }
+
+ result = TCL_ERROR;
+}
+
+void Base::markerAnalysisSystemCmd(int id, Coord::CoordSystem sys,
+ Coord::SkyFrame sky)
+{
+ Marker* m=markers->head();
+ while (m) {
+ if (m->getId() == id) {
+ m->setAnalysisSystem(sys);
+ m->setAnalysisSky(sky);
+ return;
+ }
+ m=m->next();
+ }
+
+ result = TCL_ERROR;
+}
+
void Base::markerAngleCmd(int id, double angle)
{
Marker* m=markers->head();
@@ -2761,8 +2695,8 @@ void Base::markerAngleCmd(int id, double angle)
result = TCL_ERROR;
}
-void Base::markerAngleCmd(int id, double angle, CoordSystem sys,
- SkyFrame sky)
+void Base::markerAngleCmd(int id, double angle, Coord::CoordSystem sys,
+ Coord::SkyFrame sky)
{
Marker* m=markers->head();
while (m) {
@@ -2791,7 +2725,7 @@ void Base::markerAnnulusCreateRadiusCmd(int id, const Vector& vv)
if (m->canEdit()) {
markerUndo(m, EDIT);
- printInteger(((Annulus*)m)->addAnnuli(mapToRef(vv,CANVAS)));
+ printInteger(((Annulus*)m)->addAnnuli(mapToRef(vv,Coord::CANVAS)));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -2822,7 +2756,7 @@ void Base::markerAnnulusDeleteRadiusCmd(int id, int h)
}
void Base::markerAnnulusRadiusCmd(int id, double inner, double outer,
- int num, InternalSystem sys)
+ int num, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -2846,7 +2780,7 @@ void Base::markerAnnulusRadiusCmd(int id, double inner, double outer,
}
void Base::markerAnnulusRadiusCmd(int id, double inner, double outer,
- int num, CoordSystem sys, SkyDist dist)
+ int num, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -2871,7 +2805,7 @@ void Base::markerAnnulusRadiusCmd(int id, double inner, double outer,
}
void Base::markerAnnulusRadiusCmd(int id, const char* lev,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -2953,7 +2887,7 @@ void Base::markerBackCmd(int id)
void Base::markerBoxAnnulusRadiusCmd(int id, const Vector& inner,
const Vector& outer, int num,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -2978,7 +2912,7 @@ void Base::markerBoxAnnulusRadiusCmd(int id, const Vector& inner,
void Base::markerBoxAnnulusRadiusCmd(int id, const Vector& inner,
const Vector& outer, int num,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -3003,7 +2937,7 @@ void Base::markerBoxAnnulusRadiusCmd(int id, const Vector& inner,
}
void Base::markerBoxAnnulusRadiusCmd(int id,const char* lev,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -3049,7 +2983,7 @@ void Base::markerBoxAnnulusCreateRadiusCmd(int id, const Vector& vv)
if (m->canEdit()) {
markerUndo(m, EDIT);
- printInteger(((BoxAnnulus*)m)->addAnnuli(mapToRef(vv,CANVAS)));
+ printInteger(((BoxAnnulus*)m)->addAnnuli(mapToRef(vv,Coord::CANVAS)));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -3080,7 +3014,7 @@ void Base::markerBoxAnnulusDeleteRadiusCmd(int id, int h)
}
void Base::markerBoxRadiusCmd(int id, const Vector& size,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -3102,7 +3036,7 @@ void Base::markerBoxRadiusCmd(int id, const Vector& size,
}
void Base::markerBoxRadiusCmd(int id, const Vector& size,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -3132,7 +3066,7 @@ void Base::markerBpandaCreateAnglesCmd(int id, const Vector& vv)
if (m->canEdit()) {
markerUndo(m, EDIT);
- printInteger(((Bpanda*)m)->addAngles(mapToRef(vv,CANVAS)));
+ printInteger(((Bpanda*)m)->addAngles(mapToRef(vv,Coord::CANVAS)));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -3151,7 +3085,7 @@ void Base::markerBpandaCreateRadiusCmd(int id, const Vector& vv)
if (m->canEdit()) {
markerUndo(m, EDIT);
- printInteger(((Bpanda*)m)->addAnnuli(mapToRef(vv,CANVAS)));
+ printInteger(((Bpanda*)m)->addAnnuli(mapToRef(vv,Coord::CANVAS)));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -3208,7 +3142,7 @@ void Base::markerBpandaEditCmd(int id,
void Base::markerBpandaEditCmd(int id,
double a1, double a2, int an,
const Vector& r1, const Vector& r2, int rn,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
@@ -3233,8 +3167,8 @@ void Base::markerBpandaEditCmd(int id,
void Base::markerBpandaEditCmd(int id,
const char* a, const char* r,
- CoordSystem sys, SkyFrame sky,
- CoordSystem rsys, SkyDist rdist)
+ Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::CoordSystem rsys, Coord::SkyDist rdist)
{
Marker* m=markers->head();
while (m) {
@@ -3366,7 +3300,7 @@ void Base::markerCentroidIterationCmd(int iter)
centroidIteration = iter;
}
-void Base::markerCircleRadiusCmd(int id, double radius,InternalSystem sys)
+void Base::markerCircleRadiusCmd(int id, double radius,Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -3388,8 +3322,8 @@ void Base::markerCircleRadiusCmd(int id, double radius,InternalSystem sys)
result = TCL_ERROR;
}
-void Base::markerCircleRadiusCmd(int id, double radius, CoordSystem sys,
- SkyDist dist)
+void Base::markerCircleRadiusCmd(int id, double radius, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -3412,69 +3346,6 @@ void Base::markerCircleRadiusCmd(int id, double radius, CoordSystem sys,
result = TCL_ERROR;
}
-void Base::markerCircle3dCmd(int id, double radius, InternalSystem sys,
- int method)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- if (m->canEdit()) {
- markerUndo(m, EDIT);
-
- // it may shrink
- update(PIXMAP, m->getAllBBox());
- double r = mapLenToRef(radius, sys);
- ((Circle3d*)m)->setAnnuli(Vector(r,r));
- ((Circle3d*)m)->setMethod(method);
- update(PIXMAP, m->getAllBBox());
- }
- return;
- }
- m=m->next();
- }
-
- result = TCL_ERROR;
-}
-
-void Base::markerCircle3dCmd(int id, double radius, CoordSystem sys,
- SkyDist dist, int method)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- if (m->canEdit()) {
- markerUndo(m, EDIT);
-
- // it may shrink
- update(PIXMAP, m->getAllBBox());
- FitsImage* ptr = findFits(sys,m->getCenter());
- double r = ptr->mapLenToRef(radius, sys, dist);
- ((Circle3d*)m)->setAnnuli(Vector(r,r));
- ((Circle3d*)m)->setMethod(method);
- update(PIXMAP, m->getAllBBox());
- }
- return;
- }
- m=m->next();
- }
-
- result = TCL_ERROR;
-}
-
-void Base::markerCircle3dSystemCmd(int id, CoordSystem sys)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- ((Circle3d*)m)->setSystem(sys);
- return;
- }
- m=m->next();
- }
-
- result = TCL_ERROR;
-}
-
void Base::markerColorCmd(const char* clr)
{
Marker* m=markers->head();
@@ -3591,7 +3462,7 @@ void Base::markerCompassLabelCmd(int id, const char* n, const char* e)
result = TCL_ERROR;
}
-void Base::markerCompassRadiusCmd(int id, double r, InternalSystem sys)
+void Base::markerCompassRadiusCmd(int id, double r, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -3613,8 +3484,8 @@ void Base::markerCompassRadiusCmd(int id, double r, InternalSystem sys)
result = TCL_ERROR;
}
-void Base::markerCompassRadiusCmd(int id, double r, CoordSystem sys,
- SkyDist dist)
+void Base::markerCompassRadiusCmd(int id, double r, Coord::CoordSystem sys,
+ Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -3637,7 +3508,7 @@ void Base::markerCompassRadiusCmd(int id, double r, CoordSystem sys,
result = TCL_ERROR;
}
-void Base::markerCompassSystemCmd(int id, CoordSystem sys, SkyFrame sky)
+void Base::markerCompassSystemCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
while (m) {
@@ -3725,7 +3596,7 @@ void Base::markerCpandaCreateAnglesCmd(int id, const Vector& vv)
if (m->canEdit()) {
markerUndo(m, EDIT);
- printInteger(((Cpanda*)m)->addAngles(mapToRef(vv,CANVAS)));
+ printInteger(((Cpanda*)m)->addAngles(mapToRef(vv,Coord::CANVAS)));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -3744,7 +3615,7 @@ void Base::markerCpandaCreateRadiusCmd(int id, const Vector& vv)
if (m->canEdit()) {
markerUndo(m, EDIT);
- printInteger(((Cpanda*)m)->addAnnuli(mapToRef(vv,CANVAS)));
+ printInteger(((Cpanda*)m)->addAnnuli(mapToRef(vv,Coord::CANVAS)));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -3799,7 +3670,7 @@ void Base::markerCpandaEditCmd(int id, double a1, double a2, int an,
void Base::markerCpandaEditCmd(int id, double a1, double a2, int an,
double r1, double r2, int rn,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
@@ -3826,8 +3697,8 @@ void Base::markerCpandaEditCmd(int id, double a1, double a2, int an,
}
void Base::markerCpandaEditCmd(int id, const char* a, const char* r,
- CoordSystem sys, SkyFrame sky,
- CoordSystem rsys, SkyDist rdist)
+ Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::CoordSystem rsys, Coord::SkyDist rdist)
{
Marker* m=markers->head();
while (m) {
@@ -4114,7 +3985,7 @@ void Base::markerEditMotionCmd(const Vector& vv, int hh)
redraw(editMarker->getAllBBox());
forceUpdate();
- editMarker->edit(mapToRef(vv,CANVAS), hh);
+ editMarker->edit(mapToRef(vv,Coord::CANVAS), hh);
renderMarkerXOR(editMarker);
}
}
@@ -4129,7 +4000,7 @@ void Base::markerEditEndCmd()
}
void Base::markerEllipseRadiusCmd(int id, const Vector& radius,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -4152,7 +4023,7 @@ void Base::markerEllipseRadiusCmd(int id, const Vector& radius,
}
void Base::markerEllipseRadiusCmd(int id, const Vector& radius,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -4177,7 +4048,7 @@ void Base::markerEllipseRadiusCmd(int id, const Vector& radius,
void Base::markerEllipseAnnulusRadiusCmd(int id, const Vector& inner,
const Vector& outer, int num,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -4202,7 +4073,7 @@ void Base::markerEllipseAnnulusRadiusCmd(int id, const Vector& inner,
void Base::markerEllipseAnnulusRadiusCmd(int id,
const Vector& inner, const Vector& outer, int num,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -4228,7 +4099,7 @@ void Base::markerEllipseAnnulusRadiusCmd(int id,
void Base::markerEllipseAnnulusRadiusCmd(int id,
const char* lev,
- CoordSystem sys,SkyDist dist)
+ Coord::CoordSystem sys,Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -4274,7 +4145,7 @@ void Base::markerEllipseAnnulusCreateRadiusCmd(int id, const Vector& vv)
if (m->canEdit()) {
markerUndo(m, EDIT);
- printInteger(((EllipseAnnulus*)m)->addAnnuli(mapToRef(vv,CANVAS)));
+ printInteger(((EllipseAnnulus*)m)->addAnnuli(mapToRef(vv,Coord::CANVAS)));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -4312,7 +4183,7 @@ void Base::markerEpandaCreateAnglesCmd(int id, const Vector& vv)
if (m->canEdit()) {
markerUndo(m, EDIT);
- printInteger(((Epanda*)m)->addAngles(mapToRef(vv,CANVAS)));
+ printInteger(((Epanda*)m)->addAngles(mapToRef(vv,Coord::CANVAS)));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -4331,7 +4202,7 @@ void Base::markerEpandaCreateRadiusCmd(int id, const Vector& vv)
if (m->canEdit()) {
markerUndo(m, EDIT);
- printInteger(((Epanda*)m)->addAnnuli(mapToRef(vv,CANVAS)));
+ printInteger(((Epanda*)m)->addAnnuli(mapToRef(vv,Coord::CANVAS)));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -4388,7 +4259,7 @@ void Base::markerEpandaEditCmd(int id,
void Base::markerEpandaEditCmd(int id,
double a1, double a2, int an,
const Vector& r1, const Vector& r2, int rn,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
@@ -4413,8 +4284,8 @@ void Base::markerEpandaEditCmd(int id,
void Base::markerEpandaEditCmd(int id,
const char* a, const char* r,
- CoordSystem sys, SkyFrame sky,
- CoordSystem rsys, SkyDist rdist)
+ Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::CoordSystem rsys, Coord::SkyDist rdist)
{
Marker* m=markers->head();
while (m) {
@@ -4705,7 +4576,7 @@ void Base::markerKeyCmd(const Vector& v)
}
void Base::markerLineCmd(int id, const Vector& p1, const Vector& p2,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -4727,7 +4598,7 @@ void Base::markerLineCmd(int id, const Vector& p1, const Vector& p2,
}
void Base::markerLineCmd(int id, const Vector& p1, const Vector& p2,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
while (m) {
@@ -4793,7 +4664,7 @@ void Base::markerLineWidthCmd(int id, int w)
}
void Base::markerListCmd(MarkerFormat type,
- CoordSystem sys, SkyFrame sky, SkyFormat format,
+ Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
int strip, int select,
unsigned short mask, unsigned short value,
List<Tag>& tags)
@@ -4871,7 +4742,7 @@ void Base::markerListCmd(MarkerFormat type,
switch (type) {
case DS9:
if (doSys) {
- listCoordSystem(str, sys, sky, 1, keyContext->fits->hasWCSCel(sys));
+ coord.listCoordSystem(str, sys, sky, 1, keyContext->fits->hasWCSCel(sys));
str << (strip ? ';' : '\n');
doSys = 0;
}
@@ -4938,7 +4809,7 @@ void Base::markerLoadCmd(MarkerFormat fm, const char* fn)
}
void Base::markerLoadCmd(MarkerFormat fm, const char* fn,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
xySystem_ = sys;
xySky_ = sky;
@@ -4956,7 +4827,7 @@ void Base::markerLoadCmd(MarkerFormat fm, int fd)
}
void Base::markerLoadCmd(MarkerFormat fm, int fd,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
xySystem_ = sys;
xySky_ = sky;
@@ -5074,33 +4945,33 @@ void Base::markerLoadFitsCmd(const char* fn, const char* color,
if (!strncmp(s2, "CIRCLE", 6) && r) {
Vector rr(r->value(ptr),0);
- createCircleCmd(keyContext->fits->mapToRef(center, PHYSICAL),
- keyContext->fits->mapLenToRef(rr[0], PHYSICAL),
+ createCircleCmd(keyContext->fits->mapToRef(center, Coord::PHYSICAL),
+ keyContext->fits->mapLenToRef(rr[0], Coord::PHYSICAL),
color, dash, width, font, text, props, NULL, taglist,cblist);
}
else if (!strncmp(s2, "ANNULU", 6) && r) {
Vector rr0(r->value(ptr,0),0);
Vector rr1(r->value(ptr,1),0);
- createAnnulusCmd(keyContext->fits->mapToRef(center ,PHYSICAL),
- keyContext->fits->mapLenToRef(rr1[0], PHYSICAL),
- keyContext->fits->mapLenToRef(rr0[0], PHYSICAL),
+ createAnnulusCmd(keyContext->fits->mapToRef(center ,Coord::PHYSICAL),
+ keyContext->fits->mapLenToRef(rr1[0], Coord::PHYSICAL),
+ keyContext->fits->mapLenToRef(rr0[0], Coord::PHYSICAL),
1,
color, dash, width, font, text, props, NULL, taglist,cblist);
}
else if (!strncmp(s2, "BOX ", 6) && r) {
Vector rr(r->value(ptr,0),r->value(ptr,1));
- createBoxCmd(keyContext->fits->mapToRef(center, PHYSICAL),
- keyContext->fits->mapLenToRef(rr, PHYSICAL),
+ createBoxCmd(keyContext->fits->mapToRef(center, Coord::PHYSICAL),
+ keyContext->fits->mapLenToRef(rr, Coord::PHYSICAL),
0,
color, dash, width, font, text, props, NULL, taglist,cblist);
}
else if (!strncmp(s2, "ROTBOX", 6) && r && ang) {
Vector rr(r->value(ptr,0),r->value(ptr,1));
- createBoxCmd(keyContext->fits->mapToRef(center, PHYSICAL),
- keyContext->fits->mapLenToRef(rr, PHYSICAL),
+ createBoxCmd(keyContext->fits->mapToRef(center, Coord::PHYSICAL),
+ keyContext->fits->mapLenToRef(rr, Coord::PHYSICAL),
degToRad(ang->value(ptr)),
color, dash, width, font, text, props, NULL, taglist,cblist);
@@ -5112,8 +4983,8 @@ void Base::markerLoadFitsCmd(const char* fn, const char* color,
Vector d = v2-v1;
Vector c = d/2 + v1;
- createBoxCmd(keyContext->fits->mapToRef(c,PHYSICAL),
- keyContext->fits->mapLenToRef(d,PHYSICAL),
+ createBoxCmd(keyContext->fits->mapToRef(c,Coord::PHYSICAL),
+ keyContext->fits->mapLenToRef(d,Coord::PHYSICAL),
0,
color, dash, width, font, text, props, NULL, taglist,cblist);
}
@@ -5125,16 +4996,16 @@ void Base::markerLoadFitsCmd(const char* fn, const char* color,
Vector d = v2-v1;
Vector c = d/2 + v1;
- createBoxCmd(keyContext->fits->mapToRef(c,PHYSICAL),
- keyContext->fits->mapLenToRef(d,PHYSICAL),
+ createBoxCmd(keyContext->fits->mapToRef(c,Coord::PHYSICAL),
+ keyContext->fits->mapLenToRef(d,Coord::PHYSICAL),
degToRad(ang->value(ptr)),
color, dash, width, font, text, props, NULL, taglist,cblist);
}
else if (!strncmp(s2, "ELLIPS", 6) && r && ang) {
Vector rr(r->value(ptr,0),r->value(ptr,1));
- createEllipseCmd(keyContext->fits->mapToRef(center, PHYSICAL),
- keyContext->fits->mapLenToRef(rr, PHYSICAL),
+ createEllipseCmd(keyContext->fits->mapToRef(center, Coord::PHYSICAL),
+ keyContext->fits->mapLenToRef(rr, Coord::PHYSICAL),
degToRad(ang->value(ptr)),
color, dash, width, font, text, props, NULL, taglist,cblist);
@@ -5142,24 +5013,24 @@ void Base::markerLoadFitsCmd(const char* fn, const char* color,
else if (!strncmp(s2, "PIE ", 6) && r && ang) {
Vector rr0(r->value(ptr,0),0);
Vector rr1(r->value(ptr,1),0);
- createCpandaCmd(keyContext->fits->mapToRef(center,PHYSICAL),
+ createCpandaCmd(keyContext->fits->mapToRef(center,Coord::PHYSICAL),
degToRad(ang->value(ptr,0)-90),
degToRad(ang->value(ptr,1)-90), 1,
- keyContext->fits->mapLenToRef(rr1[0],PHYSICAL),
- keyContext->fits->mapLenToRef(rr0[0],PHYSICAL), 1,
+ keyContext->fits->mapLenToRef(rr1[0],Coord::PHYSICAL),
+ keyContext->fits->mapLenToRef(rr0[0],Coord::PHYSICAL), 1,
color, dash, width, font, text, props, NULL, taglist,cblist);
}
else if (!strncmp(s2, "POINT ", 6))
- createBoxCirclePointCmd(keyContext->fits->mapToRef(center,PHYSICAL),
- POINTSIZE,
- color, dash, width, font, text, props, NULL, taglist,cblist);
+ createPointCmd(keyContext->fits->mapToRef(center,Coord::PHYSICAL),
+ Point::BOXCIRCLE, POINTSIZE,
+ color, dash, width, font, text, props, NULL, taglist,cblist);
else if (!strncmp(s2, "POLYGO", 6)) {
List<Vertex> list;
for (int ii=0; ii<repeat; ii++) {
Vector vv(x->value(ptr,ii), y->value(ptr,ii));
- Vertex* n = new Vertex(keyContext->fits->mapToRef(vv, PHYSICAL));
+ Vertex* n = new Vertex(keyContext->fits->mapToRef(vv, Coord::PHYSICAL));
if (ii+1 < repeat) {
// check for endpoints matching or endpoints NULL after first
@@ -5255,7 +5126,7 @@ void Base::markerMoveCmd(int id, const Vector& v)
void Base::markerMoveBeginCmd(const Vector& v)
{
- markerBegin = mapToRef(v,CANVAS);
+ markerBegin = mapToRef(v,Coord::CANVAS);
undoMarkers->deleteAll();
Marker* m=markers->head();
@@ -5271,7 +5142,7 @@ void Base::markerMoveBeginCmd(const Vector& v)
void Base::markerMoveBeginCmd(int id, const Vector& v)
{
- markerBegin = mapToRef(v,CANVAS);
+ markerBegin = mapToRef(v,Coord::CANVAS);
undoMarkers->deleteAll();
Marker* m=markers->head();
@@ -5303,7 +5174,7 @@ void Base::markerMoveMotionCmd(const Vector& v)
forceUpdate();
// ok, now draw selected markers in new location
- Vector markerEnd = mapToRef(v,CANVAS);
+ Vector markerEnd = mapToRef(v,Coord::CANVAS);
Vector diff = markerEnd - markerBegin;
markerBegin = markerEnd;
@@ -5340,7 +5211,7 @@ void Base::markerMoveMotionCmd(int id, const Vector& v)
forceUpdate();
// ok, now draw selected markers in new location
- Vector markerEnd = mapToRef(v,CANVAS);
+ Vector markerEnd = mapToRef(v,Coord::CANVAS);
Vector diff = markerEnd - markerBegin;
markerBegin = markerEnd;
@@ -5378,7 +5249,7 @@ void Base::markerMoveEndCmd(int id)
update(PIXMAP);
}
-void Base::markerMoveToCmd(const Vector& v, InternalSystem sys)
+void Base::markerMoveToCmd(const Vector& v, Coord::InternalSystem sys)
{
undoMarkers->deleteAll();
Marker* m=markers->head();
@@ -5395,7 +5266,7 @@ void Base::markerMoveToCmd(const Vector& v, InternalSystem sys)
}
}
-void Base::markerMoveToCmd(const Vector& v, CoordSystem sys, SkyFrame sky)
+void Base::markerMoveToCmd(const Vector& v, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
undoMarkers->deleteAll();
Marker* m=markers->head();
@@ -5414,7 +5285,7 @@ void Base::markerMoveToCmd(const Vector& v, CoordSystem sys, SkyFrame sky)
}
void Base::markerMoveToCmd(const char* tag, const Vector& v,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
undoMarkers->deleteAll();
Marker* m=markers->head();
@@ -5432,7 +5303,7 @@ void Base::markerMoveToCmd(const char* tag, const Vector& v,
}
void Base::markerMoveToCmd(const char* tag, const Vector& v,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
undoMarkers->deleteAll();
Marker* m=markers->head();
@@ -5450,7 +5321,7 @@ void Base::markerMoveToCmd(const char* tag, const Vector& v,
}
}
-void Base::markerMoveToCmd(int id, const Vector& v, InternalSystem sys)
+void Base::markerMoveToCmd(int id, const Vector& v, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -5469,7 +5340,7 @@ void Base::markerMoveToCmd(int id, const Vector& v, InternalSystem sys)
}
void Base::markerMoveToCmd(int id, const Vector& v,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
while (m) {
@@ -5513,19 +5384,19 @@ void Base::markerPasteCmd()
}
-void Base::markerPasteCmd(CoordSystem from, CoordSystem to)
+void Base::markerPasteCmd(Coord::CoordSystem from, Coord::CoordSystem to)
{
// sys is the coordinate system to specified in the header
// use wcsSystem for markers
MarkerFormat type = DS9;
- SkyFrame sky = FK5;
- SkyFormat format = DEGREES;
+ Coord::SkyFrame sky = Coord::FK5;
+ Coord::SkyFormat format = Coord::DEGREES;
{
ostringstream str;
markerListHeader(str, to, sky, format, 0);
- listCoordSystem(str,to,sky,1,1);
+ coord.listCoordSystem(str,to,sky,1,1);
str << endl << ends;
Tcl_AppendResult(interp, str.str().c_str(), NULL);
}
@@ -5540,6 +5411,27 @@ void Base::markerPasteCmd(CoordSystem from, CoordSystem to)
}
}
+void Base::markerPointShapeCmd(int id, Point::PointShape shape)
+{
+ Marker* m=markers->head();
+ while (m) {
+ if (m->getId() == id) {
+ if (m->canEdit()) {
+ markerUndo(m, EDIT);
+
+ // it may shrink
+ update(PIXMAP, m->getAllBBox());
+ ((Point*)m)->setShape(shape);
+ update(PIXMAP, m->getAllBBox());
+ }
+ return;
+ }
+ m=m->next();
+ }
+
+ result = TCL_ERROR;
+}
+
void Base::markerPointSizeCmd(int id, int size)
{
Marker* m=markers->head();
@@ -5569,7 +5461,7 @@ void Base::markerPolygonCreateVertexCmd(int id, int seg, const Vector& v)
if (m->canEdit()) {
markerUndo(m, EDIT);
- ((Polygon*)(m))->createVertex(seg, mapToRef(v,CANVAS));
+ ((Polygon*)(m))->createVertex(seg, mapToRef(v,Coord::CANVAS));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -5599,7 +5491,7 @@ void Base::markerPolygonDeleteVertexCmd(int id, int h)
}
}
-void Base::markerPolygonResetCmd(int id, const Vector& size, InternalSystem sys)
+void Base::markerPolygonResetCmd(int id, const Vector& size, Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -5621,7 +5513,7 @@ void Base::markerPolygonResetCmd(int id, const Vector& size, InternalSystem sys)
}
void Base::markerPolygonResetCmd(int id, const Vector& size,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -5644,7 +5536,7 @@ void Base::markerPolygonResetCmd(int id, const Vector& size,
}
void Base::markerProjectionCmd(int id,const Vector& p1,const Vector& p2,
- InternalSystem sys,double width,int method)
+ Coord::InternalSystem sys,double width)
{
Marker* m=markers->head();
while (m) {
@@ -5655,7 +5547,7 @@ void Base::markerProjectionCmd(int id,const Vector& p1,const Vector& p2,
// it may shrink
update(PIXMAP, m->getAllBBox());
((Projection*)(m))->set(mapToRef(p1,sys), mapToRef(p2,sys),
- mapLenToRef(width,sys), method);
+ mapLenToRef(width,sys));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -5667,10 +5559,10 @@ void Base::markerProjectionCmd(int id,const Vector& p1,const Vector& p2,
}
void Base::markerProjectionCmd(int id,
- const Vector& p1, const Vector& p2,
- CoordSystem sys, SkyFrame sky,
- double width, int method,
- CoordSystem wdsys, SkyDist wddist)
+ const Vector& p1, const Vector& p2,
+ Coord::CoordSystem sys, Coord::SkyFrame sky,
+ double width,
+ Coord::CoordSystem wdsys, Coord::SkyDist wddist)
{
Marker* m=markers->head();
while (m) {
@@ -5683,8 +5575,7 @@ void Base::markerProjectionCmd(int id,
FitsImage* ptr = findFits(sys,m->getCenter());
((Projection*)(m))->set(ptr->mapToRef(p1,sys,sky),
ptr->mapToRef(p2,sys,sky),
- ptr->mapLenToRef(width, wdsys, wddist),
- method);
+ ptr->mapLenToRef(width, wdsys, wddist));
update(PIXMAP, m->getAllBBox());
}
return;
@@ -5695,20 +5586,6 @@ void Base::markerProjectionCmd(int id,
result = TCL_ERROR;
}
-void Base::markerProjectionSystemCmd(int id, CoordSystem sys,SkyFrame sky)
-{
- Marker* m=markers->head();
- while (m) {
- if (m->getId() == id) {
- ((Projection*)m)->setSystem(sys,sky);
- return;
- }
- m=m->next();
- }
-
- result = TCL_ERROR;
-}
-
void Base::markerPropertyCmd(unsigned short prop, int value)
{
Marker* m=markers->head();
@@ -5840,7 +5717,7 @@ void Base::markerRotateMotionCmd(const Vector& vv, int hh)
redraw(rotateMarker->getAllBBox());
forceUpdate();
- rotateMarker->rotate(mapToRef(vv,CANVAS), hh);
+ rotateMarker->rotate(mapToRef(vv,Coord::CANVAS), hh);
renderMarkerXOR(rotateMarker);
}
}
@@ -5854,7 +5731,7 @@ void Base::markerRotateEndCmd()
}
void Base::markerRulerPointCmd(int id, const Vector& p1, const Vector& p2,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
Marker* m=markers->head();
while (m) {
@@ -5876,7 +5753,7 @@ void Base::markerRulerPointCmd(int id, const Vector& p1, const Vector& p2,
}
void Base::markerRulerPointCmd(int id, const Vector& p1, const Vector& p2,
- CoordSystem sys, SkyFrame sky)
+ Coord::CoordSystem sys, Coord::SkyFrame sky)
{
Marker* m=markers->head();
while (m) {
@@ -5899,8 +5776,8 @@ void Base::markerRulerPointCmd(int id, const Vector& p1, const Vector& p2,
result = TCL_ERROR;
}
-void Base::markerRulerSystemCmd(int id, CoordSystem sys, SkyFrame sky,
- CoordSystem dsys, SkyDist dist)
+void Base::markerRulerSystemCmd(int id, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::CoordSystem dsys, Coord::SkyDist dist)
{
Marker* m=markers->head();
while (m) {
@@ -5918,7 +5795,7 @@ void Base::markerRulerSystemCmd(int id, CoordSystem sys, SkyFrame sky,
}
void Base::markerSaveCmd(const char* fileName, MarkerFormat type,
- CoordSystem sys, SkyFrame sky, SkyFormat format,
+ Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
int strip)
{
int doSys = 1;
@@ -5951,7 +5828,7 @@ void Base::markerSaveCmd(const char* fileName, MarkerFormat type,
switch (type) {
case DS9:
if (doSys) {
- listCoordSystem(fn, sys, sky, 1, keyContext->fits->hasWCSCel(sys));
+ coord.listCoordSystem(fn, sys, sky, 1, keyContext->fits->hasWCSCel(sys));
fn << (strip ? ';' : '\n');
doSys = 0;
}
@@ -6017,12 +5894,12 @@ void Base::markerSaveTemplateCmd(const char* fileName)
ptr = ptr->nextMosaic();
}
- markerListHeader(fn, WCS0, FK5, DEGREES, 0);
- listCoordSystem(fn, WCS0, FK5, 1, keyContext->fits->hasWCSCel(WCS0));
+ markerListHeader(fn, Coord::WCS0, Coord::FK5, Coord::DEGREES, 0);
+ coord.listCoordSystem(fn, Coord::WCS0, Coord::FK5, 1, keyContext->fits->hasWCSCel(Coord::WCS0));
fn << endl;
while (m) {
- m->list(fn, WCS0, FK5, DEGREES, 0, 0);
+ m->list(fn, Coord::WCS0, Coord::FK5, Coord::DEGREES, 0, 0);
m=m->next();
}
@@ -6407,7 +6284,7 @@ void Base::markerUnselectCmd(const char* tag)
}
}
-void Base::markerVectorCmd(int id, const Vector& p, InternalSystem sys,
+void Base::markerVectorCmd(int id, const Vector& p, Coord::InternalSystem sys,
double mag, double ang)
{
Marker* m=markers->head();
@@ -6430,8 +6307,8 @@ void Base::markerVectorCmd(int id, const Vector& p, InternalSystem sys,
}
void Base::markerVectorCmd(int id,
- const Vector& p, CoordSystem sys, SkyFrame sky,
- double mag, CoordSystem dsys, SkyDist dist,
+ const Vector& p, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ double mag, Coord::CoordSystem dsys, Coord::SkyDist dist,
double ang)
{
Marker* m=markers->head();
@@ -6555,16 +6432,16 @@ void Base::regionSelectShiftEndCmd()
// Marker Support
-void Base::markerListCiaoHeader(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Base::markerListCiaoHeader(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
// no comments for semicolons
if (!strip)
str << "# Region file format: CIAO version 1.0" << endl;
}
-void Base::markerListHeader(ostream& str, CoordSystem sys,
- SkyFrame sky, SkyFormat format,
+void Base::markerListHeader(ostream& str, Coord::CoordSystem sys,
+ Coord::SkyFrame sky, Coord::SkyFormat format,
int strip)
{
// no comments for semicolons
@@ -6579,8 +6456,8 @@ void Base::markerListHeader(ostream& str, CoordSystem sys,
}
}
-void Base::markerListSAOtngHeader(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Base::markerListSAOtngHeader(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
// no comments for semicolons
if (strip)
@@ -6590,56 +6467,56 @@ void Base::markerListSAOtngHeader(ostream& str, CoordSystem sys, SkyFrame sky,
str << "# filename: " << keyContext->fits->getRootFileName() << endl;
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case AMPLIFIER:
- case DETECTOR:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::AMPLIFIER:
+ case Coord::DETECTOR:
str << "# format: pixels (physical)" << endl;
break;
default:
str << "# format: ";
switch (sky) {
- case FK4:
- case FK4_NO_E:
- case FK5:
- case ICRS:
- case GALACTIC:
- case SUPERGALACTIC:
- case ECLIPTIC:
- case HELIOECLIPTIC:
+ case Coord::FK4:
+ case Coord::FK4_NO_E:
+ case Coord::FK5:
+ case Coord::ICRS:
+ case Coord::GALACTIC:
+ case Coord::SUPERGALACTIC:
+ case Coord::ECLIPTIC:
+ case Coord::HELIOECLIPTIC:
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
str << "degrees (";
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
str << "hms (";
break;
}
switch (sky) {
- case FK4:
+ case Coord::FK4:
str << "fk4";
break;
- case FK4_NO_E:
+ case Coord::FK4_NO_E:
str << "fk4-no-e";
break;
- case FK5:
+ case Coord::FK5:
str << "fk5";
break;
- case ICRS:
+ case Coord::ICRS:
str << "icrs";
break;
- case GALACTIC:
+ case Coord::GALACTIC:
str << "galactic";
break;
- case SUPERGALACTIC:
+ case Coord::SUPERGALACTIC:
str << "supergalactic";
break;
- case ECLIPTIC:
+ case Coord::ECLIPTIC:
str << "ecliptic";
break;
- case HELIOECLIPTIC:
+ case Coord::HELIOECLIPTIC:
str << "helioecliptic";
break;
}
@@ -6650,51 +6527,51 @@ void Base::markerListSAOtngHeader(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
-void Base::markerPrintCoord(const Vector& v, InternalSystem sys)
+void Base::markerPrintCoord(const Vector& v, Coord::InternalSystem sys)
{
printVector(mapFromRef(v, sys), DEFAULT);
}
void Base::markerPrintCoord(const Vector& c, const Vector& v,
- CoordSystem sys, SkyFrame sky, SkyFormat format)
+ Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format)
{
FitsImage* ptr = findFits(sys,c);
printFromRef(ptr, v, sys, sky, format, DEFAULT);
}
-void Base::markerPrintDouble(double d, InternalSystem sys)
+void Base::markerPrintDouble(double d, Coord::InternalSystem sys)
{
printDouble(mapLenFromRef(d,sys), DEFAULT);
}
void Base::markerPrintDouble(const Vector& c, double d,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
FitsImage* ptr = findFits(sys,c);
printDouble(ptr->mapLenFromRef(d,sys,dist), DEFAULT);
}
void Base::markerPrintDouble(const Vector& p1, const Vector& p2,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
printDouble(mapDistFromRef(p1,p2,sys), DEFAULT);
}
void Base::markerPrintDouble(const Vector& c,
const Vector& p1, const Vector& p2,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
FitsImage* ptr = findFits(sys,c);
printDouble(ptr->mapDistFromRef(p1,p2,sys,dist), DEFAULT);
}
-void Base::markerPrintVector(const Vector& v, InternalSystem sys)
+void Base::markerPrintVector(const Vector& v, Coord::InternalSystem sys)
{
printVector(mapLenFromRef(v,sys), DEFAULT);
}
void Base::markerPrintVector(const Vector& c, const Vector& v,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
FitsImage* ptr = findFits(sys,c);
printVector(ptr->mapLenFromRef((Vector&)v,sys,dist), DEFAULT);
@@ -6784,7 +6661,7 @@ void Base::renderMagnifierMarkers(List<Marker>* ml, const BBox& bb)
Marker* m=ml->tail();
while (m) {
if (m->isVisible(bb))
- m->draw(magnifierPixmap, MAGNIFIER, showMarkersText,
+ m->draw(magnifierPixmap, Coord::MAGNIFIER, showMarkersText,
Marker::SRC, Marker::NOHANDLES);
m=m->previous();
}
@@ -6797,7 +6674,7 @@ void Base::renderMarkers(List<Marker>* ml, const BBox& bb)
Marker* m=ml->tail();
while (m) {
if (m->isVisible(bb))
- m->draw(pixmap, WIDGET, showMarkersText,
+ m->draw(pixmap, Coord::WIDGET, showMarkersText,
Marker::SRC, Marker::HANDLES);
m=m->previous();
}
@@ -6806,7 +6683,7 @@ void Base::renderMarkers(List<Marker>* ml, const BBox& bb)
void Base::renderMarkerXOR(Marker* ptr)
{
if (ptr)
- ptr->draw(Tk_WindowId(tkwin), WINDOW, showMarkersText,
+ ptr->draw(Tk_WindowId(tkwin), Coord::WINDOW, showMarkersText,
Marker::XOR, Marker::NOHANDLES);
}
diff --git a/saotk/frame/frmarkerxml.C b/saotk/frame/frmarkerxml.C
index e137beb..86dcd6f 100644
--- a/saotk/frame/frmarkerxml.C
+++ b/saotk/frame/frmarkerxml.C
@@ -10,29 +10,6 @@
#include "framebase.h"
#include "fitsimage.h"
-#include "marker.h"
-#include "basemarker.h"
-
-#include "annulus.h"
-#include "box.h"
-#include "boxannulus.h"
-#include "bpanda.h"
-#include "circle.h"
-#include "compass.h"
-#include "composite.h"
-#include "cpanda.h"
-#include "ellipse.h"
-#include "ellipseannulus.h"
-#include "epanda.h"
-#include "line.h"
-#include "ruler.h"
-#include "point.h"
-#include "polygon.h"
-#include "projection.h"
-#include "circle3d.h"
-#include "text.h"
-#include "vect.h"
-
static int xmlRead (void * context, char * buffer, int len)
{
istream* str=(istream*)context;
@@ -265,9 +242,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
char* y =NULL;
char ydef[] = "0";
y = ydef;
- CoordSystem sys =PHYSICAL;
- SkyFrame sky =FK5;
- SkyFormat format =DEGREES;
+ Coord::CoordSystem sys =Coord::PHYSICAL;
+ Coord::SkyFrame sky =Coord::FK5;
+ Coord::SkyFormat format =Coord::DEGREES;
// xv,yv
char* xv =NULL;
@@ -276,9 +253,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
char* yv =NULL;
char yvdef[] = "0";
yv = yvdef;
- CoordSystem vsys =PHYSICAL;
- SkyFrame vsky =FK5;
- SkyFormat vformat =DEGREES;
+ Coord::CoordSystem vsys =Coord::PHYSICAL;
+ Coord::SkyFrame vsky =Coord::FK5;
+ Coord::SkyFormat vformat =Coord::DEGREES;
// r,r2
char* r =NULL;
@@ -287,9 +264,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
char* r2 =NULL;
char r2def[] = "0";
r2 = r2def;
- CoordSystem rsys =PHYSICAL;
- SkyFrame rsky =FK5;
- SkyDist rdist =ARCMIN;
+ Coord::CoordSystem rsys =Coord::PHYSICAL;
+ Coord::SkyFrame rsky =Coord::FK5;
+ Coord::SkyDist rdist =Coord::ARCMIN;
// rv,rv2
char* rv =NULL;
@@ -298,17 +275,17 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
char* rv2 =NULL;
char rv2def[] = "0";
rv2 = rv2def;
- CoordSystem rvsys =PHYSICAL;
- SkyFrame rvsky =FK5;
- SkyDist rvdist =ARCMIN;
+ Coord::CoordSystem rvsys =Coord::PHYSICAL;
+ Coord::SkyFrame rvsky =Coord::FK5;
+ Coord::SkyDist rvdist =Coord::ARCMIN;
// ang
char* ang =NULL;
char angdef[] = "0";
ang = angdef;
- AngleFormat angformat =DEG;
- CoordSystem angsys =PHYSICAL;
- SkyFrame angsky =FK5;
+ Coord::AngleFormat angformat =Coord::DEG;
+ Coord::CoordSystem angsys =Coord::PHYSICAL;
+ Coord::SkyFrame angsky =Coord::FK5;
int angsign =1;
double angoffset =0;
@@ -316,9 +293,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
char* angv =NULL;
char angvdef[] = "0";
angv = angvdef;
- AngleFormat angvformat =DEG;
- CoordSystem angvsys =PHYSICAL;
- SkyFrame angvsky =FK5;
+ Coord::AngleFormat angvformat =Coord::DEG;
+ Coord::CoordSystem angvsys =Coord::PHYSICAL;
+ Coord::SkyFrame angvsky =Coord::FK5;
int angvsign =1;
double angvoffset =0;
@@ -361,9 +338,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
// only check x col, y col better be the same
x = cols[ii];
if (ref[ii])
- strToCoordSystem(ref[ii],wcsSystem_,&sys,&sky);
+ coord.strToCoordSystem(ref[ii],wcsSystem_,&sys,&sky);
if (unit[ii])
- strToSkyFormat(unit[ii],&format);
+ coord.strToSkyFormat(unit[ii],&format);
break;
case XMLY:
y = cols[ii];
@@ -372,9 +349,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
// only check x col, y col better be the same
xv = cols[ii];
if (ref[ii])
- strToCoordSystem(ref[ii],wcsSystem_,&vsys,&vsky);
+ coord.strToCoordSystem(ref[ii],wcsSystem_,&vsys,&vsky);
if (unit[ii])
- strToSkyFormat(unit[ii],&vformat);
+ coord.strToSkyFormat(unit[ii],&vformat);
break;
case XMLYV:
yv = cols[ii];
@@ -383,9 +360,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
// only check r col, r2 col better be the same
r = cols[ii];
if (ref[ii])
- strToCoordSystem(ref[ii],wcsSystem_,&rsys,&rsky);
+ coord.strToCoordSystem(ref[ii],wcsSystem_,&rsys,&rsky);
if (unit[ii])
- strToSkyDist(unit[ii],&rdist);
+ coord.strToSkyDist(unit[ii],&rdist);
break;
case XMLR2:
r2 = cols[ii];
@@ -394,9 +371,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
// only check rv col, r2 col better be the same
rv = cols[ii];
if (ref[ii])
- strToCoordSystem(ref[ii],wcsSystem_,&rvsys,&rvsky);
+ coord.strToCoordSystem(ref[ii],wcsSystem_,&rvsys,&rvsky);
if (unit[ii])
- strToSkyDist(unit[ii],&rvdist);
+ coord.strToSkyDist(unit[ii],&rvdist);
break;
case XMLRV2:
rv2 = cols[ii];
@@ -404,30 +381,30 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
case XMLANG:
ang = cols[ii];
if (ref[ii])
- strToCoordSystem(ref[ii],wcsSystem_,&angsys,&angsky);
+ coord.strToCoordSystem(ref[ii],wcsSystem_,&angsys,&angsky);
if (unit[ii])
- strToAngleFormat(unit[ii],&angformat);
+ coord.strToAngleFormat(unit[ii],&angformat);
if (dir[ii])
if (STRCMP(dir[ii],"cw",2))
angsign = -1;
if (axis[ii])
if (STRCMP(dir[ii],"x",1))
- if (angsys == WCS) {
+ if (angsys == Coord::WCS) {
switch (angsky) {
- case FK4:
- case FK4_NO_E:
- case FK5:
- case ICRS:
+ case Coord::FK4:
+ case Coord::FK4_NO_E:
+ case Coord::FK5:
+ case Coord::ICRS:
angoffset = M_PI;
}
}
else if (STRCMP(dir[ii],"-x",2))
- if (angsys == WCS) {
+ if (angsys == Coord::WCS) {
switch (angsky) {
- case FK4:
- case FK4_NO_E:
- case FK5:
- case ICRS:
+ case Coord::FK4:
+ case Coord::FK4_NO_E:
+ case Coord::FK5:
+ case Coord::ICRS:
break;
default:
angoffset = M_PI;
@@ -441,9 +418,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
case XMLANGV:
angv = cols[ii];
if (ref[ii])
- strToCoordSystem(ref[ii],wcsSystem_,&angvsys,&angvsky);
+ coord.strToCoordSystem(ref[ii],wcsSystem_,&angvsys,&angvsky);
if (unit[ii])
- strToAngleFormat(unit[ii],&angvformat);
+ coord.strToAngleFormat(unit[ii],&angvformat);
if (dir[ii])
if (STRCMP(dir[ii],"cw",2))
angvsign = -1;
@@ -564,8 +541,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
}
FitsImage* ptr = findFits(tile);
-
+ // Basic Regions
if (STRCMP(shape, "circle", 6)) {
+ // will also capture circle3d
createCircleCmd(xmlPoint(ptr, x, y, sys, sky, format),
ptr->mapLenToRef(atof(r), rsys, rdist),
color, dash, width, font, text, props, comment,
@@ -574,7 +552,7 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
else if (STRCMP(shape, "ellipse", 7)) {
createEllipseCmd(xmlPoint(ptr, x, y, sys, sky, format),
ptr->mapLenToRef(Vector(atof(r),atof(r2)),
- rsys, rdist),
+ rsys, rdist),
xmlAngle(ang, angsign, angoffset, angformat,
sys, sky),
color, dash, width, font, text, props, comment,
@@ -583,7 +561,7 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
else if (STRCMP(shape, "box", 3) || STRCMP(shape, "rotbox", 6)) {
createBoxCmd(xmlPoint(ptr, x, y, sys, sky, format),
ptr->mapLenToRef(Vector(atof(r),atof(r2)),
- rsys, rdist),
+ rsys, rdist),
xmlAngle(ang, angsign, angoffset, angformat,
sys, sky),
color, dash, width, font, text, props, comment,
@@ -600,16 +578,11 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
color, dash, width, font, text, props, comment,
taglist, cblist);
}
- else if (STRCMP(shape, "text", 4)) {
- int rotate = 1;
- if (!param)
- rotate = atoi(param);
- createTextCmd(xmlPoint(ptr, x, y, sys, sky, format),
- xmlAngle(ang, angsign, angoffset, angformat,
- sys, sky),
- rotate,
- color, dash, width, font, text, props, comment,
- taglist, cblist);
+ else if (STRCMP(shape, "polygon", 7)) {
+ List<Vertex>* list = xmlVertex(ptr, xv, yv, vsys, vsky, vformat);
+ createPolygonCmd(*list,
+ color, dash, width, font, text, props, comment,
+ taglist, cblist);
}
else if (STRCMP(shape, "line", 4)) {
int arrow1 =1;
@@ -636,34 +609,55 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
color, dash, width, font, text, props, comment,
taglist, cblist);
}
- else if (STRCMP(shape, "polygon", 7)) {
- List<Vertex>* list = xmlVertex(ptr, xv, yv, vsys, vsky, vformat);
- createPolygonCmd(*list,
- color, dash, width, font, text, props, comment,
- taglist, cblist);
- }
- else if (STRCMP(shape, "projection", 10)) {
- createProjectionCmd(xmlPoint(ptr, xv, yv, vsys, vsky, vformat, 0),
- xmlPoint(ptr, xv, yv, vsys, vsky, vformat, 1),
- ptr->mapLenToRef(atof(r), rsys, rdist),
- "ProjectionPlotCB", "ProjectionPlotDeleteCB",
- color, dash, width, font,
- text, props, comment, taglist, cblist);
+ else if (STRCMP(shape, "text", 4)) {
+ int rotate = 1;
+ if (!param)
+ rotate = atoi(param);
+ createTextCmd(xmlPoint(ptr, x, y, sys, sky, format),
+ xmlAngle(ang, angsign, angoffset, angformat,
+ sys, sky),
+ rotate,
+ color, dash, width, font, text, props, comment,
+ taglist, cblist);
}
- else if (STRCMP(shape, "circle3d", 8)) {
- createCircle3dCmd(xmlPoint(ptr, x, y, sys, sky, format),
- ptr->mapLenToRef(atof(r), rsys, rdist),
- "Circle3dPlotCB", "Circle3dPlotDeleteCB",
- color, dash, width, font,
- text, props, comment, taglist, cblist);
+ else if (STRCMP(shape, "point", 5)) {
+ char* def = "circle";
+ Point::PointShape shape = Point::CIRCLE;
+ if (!param)
+ param = def;
+ int size = 11;
+ if (param2)
+ size = atoi(param2);
+
+ if (STRCMP(param, "circle", 6))
+ shape = Point::CIRCLE;
+ else if (STRCMP(param, "box", 3))
+ shape = Point::BOX;
+ else if (STRCMP(param, "diamond", 7))
+ shape = Point::DIAMOND;
+ else if (STRCMP(param, "cross", 5))
+ shape = Point::CROSS;
+ else if (STRCMP(param, "x", 1))
+ shape = Point::EX;
+ else if (STRCMP(param, "arrow", 5))
+ shape = Point::ARROW;
+ else if (STRCMP(param,"boxcircle",9))
+ shape = Point::BOXCIRCLE;
+
+ createPointCmd(xmlPoint(ptr, x, y, sys, sky, format),
+ shape, size,
+ color, dash, width, font, text, props, comment,
+ taglist, cblist);
}
+
+ // Measurement Regions
else if (STRCMP(shape, "ruler", 5)) {
- CoordSystem rsys;
- SkyFrame rsky;
- strToCoordSystem(param, wcsSystem_, &rsys, &rsky);
- CoordSystem dsys;
- SkyDist ddist;
- strToDistSystem(param2, wcsSystem_, &dsys, &ddist);
+ Coord::CoordSystem rsys;
+ Coord::SkyFrame rsky;
+ coord.strToCoordSystem(param, wcsSystem_, &rsys, &rsky);
+ Coord::CoordSystem dsys;
+ Coord::SkyDist ddist;
+ coord.strToDistSystem(param2, wcsSystem_, &dsys, &ddist);
createRulerCmd(xmlPoint(ptr, xv, yv, vsys, vsky, vformat, 0),
xmlPoint(ptr, xv, yv, vsys, vsky, vformat, 1),
rsys, rsky, dsys, ddist,
@@ -671,9 +665,9 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
text, props, comment, taglist, cblist);
}
else if (STRCMP(shape, "compass", 7)) {
- CoordSystem csys;
- SkyFrame csky;
- strToCoordSystem(param, wcsSystem_, &csys, &csky);
+ Coord::CoordSystem csys;
+ Coord::SkyFrame csky;
+ coord.strToCoordSystem(param, wcsSystem_, &csys, &csky);
char* param2def = "N";
if (!param2)
param2 = param2def;
@@ -694,8 +688,16 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
color, dash, width, font, text, props, comment,
taglist, cblist);
}
- else if (STRCMP(shape, "annulus", 7)) {
+ else if (STRCMP(shape, "projection", 10)) {
+ createProjectionCmd(xmlPoint(ptr, xv, yv, vsys, vsky, vformat, 0),
+ xmlPoint(ptr, xv, yv, vsys, vsky, vformat, 1),
+ ptr->mapLenToRef(atof(r), rsys, rdist),
+ color, dash, width, font,
+ text, props, comment, taglist, cblist);
+ }
+ // Annulus Regions
+ else if (STRCMP(shape, "annulus", 7)) {
int num = xmlCount(rv);
createAnnulusCmd(xmlPoint(ptr, x, y, sys, sky, format),
num, xmlDistance(ptr, rv, num, rvsys, rvdist),
@@ -722,6 +724,8 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
color, dash, width, font, text, props, comment,
taglist, cblist);
}
+
+ // Panda Regions
else if (STRCMP(shape, "panda", 5) || STRCMP(shape, "pie", 3)) {
int anum = xmlCount(angv);
int rnum = xmlCount(rv);
@@ -756,50 +760,6 @@ void Base::xmlParseTR(char** cols, int* id, char** unit, char** ref,
color, dash, width, font, text, props, comment,
taglist, cblist);
}
- else if (STRCMP(shape, "point", 5)) {
- char* def = "circle";
- if (!param)
- param = def;
- int size = 11;
- if (param2)
- size = atoi(param2);
-
- if (STRCMP(param, "circle", 6))
- createCirclePointCmd(xmlPoint(ptr, x, y, sys, sky, format),
- size,
- color, dash, width, font, text, props, comment,
- taglist, cblist);
- else if (STRCMP(param, "box", 3))
- createBoxPointCmd(xmlPoint(ptr, x, y, sys, sky, format),
- size,
- color, dash, width, font, text, props, comment,
- taglist, cblist);
- else if (STRCMP(param, "diamond", 7))
- createDiamondPointCmd(xmlPoint(ptr, x, y, sys, sky, format),
- size,
- color, dash, width, font, text, props, comment,
- taglist, cblist);
- else if (STRCMP(param, "cross", 5))
- createCrossPointCmd(xmlPoint(ptr, x, y, sys, sky, format),
- size,
- color, dash, width, font, text, props, comment,
- taglist, cblist);
- else if (STRCMP(param, "x", 1))
- createExPointCmd(xmlPoint(ptr, x, y, sys, sky, format),
- size,
- color, dash, width, font, text, props, comment,
- taglist, cblist);
- else if (STRCMP(param, "arrow", 5))
- createArrowPointCmd(xmlPoint(ptr, x, y, sys, sky, format),
- size,
- color, dash, width, font, text, props, comment,
- taglist, cblist);
- else if (STRCMP(param,"boxcircle",9))
- createBoxCirclePointCmd(xmlPoint(ptr, x, y, sys, sky, format),
- size,
- color, dash, width, font, text, props, comment,
- taglist, cblist);
- }
}
void Base::xmlSetProps(unsigned short* props, unsigned short prop,
@@ -827,7 +787,7 @@ int Base::xmlCount(const char* col)
}
Vector Base::xmlPoint(FitsImage* ptr, const char* xstr, const char* ystr,
- CoordSystem sys, SkyFrame sky, SkyFormat format,
+ Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
int which)
{
if (!xstr || !ystr)
@@ -855,34 +815,34 @@ Vector Base::xmlPoint(FitsImage* ptr, const char* xstr, const char* ystr,
Vector rr;
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
rr = ptr->mapToRef(Vector(atof(x),atof(y)), sys);
break;
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
rr = ptr->mapToRef(Vector(atof(x),atof(y)), sys, sky);
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
double xx=parseSEXStr(x);
double yy=parseSEXStr(y);
switch (sky) {
- case FK4:
- case FK4_NO_E:
- case FK5:
- case ICRS:
+ case Coord::FK4:
+ case Coord::FK4_NO_E:
+ case Coord::FK5:
+ case Coord::ICRS:
xx = xx/24.*360.;
break;
- case GALACTIC:
- case SUPERGALACTIC:
- case ECLIPTIC:
- case HELIOECLIPTIC:
+ case Coord::GALACTIC:
+ case Coord::SUPERGALACTIC:
+ case Coord::ECLIPTIC:
+ case Coord::HELIOECLIPTIC:
break;
}
rr = ptr->mapToRef(Vector(xx,yy), sys, sky);
@@ -905,7 +865,7 @@ Vector Base::xmlPoint(FitsImage* ptr, const char* xstr, const char* ystr,
List<Vertex>* Base::xmlVertex(FitsImage* ptr,
const char* x, const char* y,
- CoordSystem sys, SkyFrame sky, SkyFormat format)
+ Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format)
{
List<Vertex>* list = new List<Vertex>;
@@ -920,7 +880,7 @@ List<Vertex>* Base::xmlVertex(FitsImage* ptr,
}
double* Base::xmlDistance(FitsImage* ptr, const char* r, int cnt,
- CoordSystem sys, SkyDist dist)
+ Coord::CoordSystem sys, Coord::SkyDist dist)
{
double* rr = new double[cnt];
@@ -940,7 +900,7 @@ double* Base::xmlDistance(FitsImage* ptr, const char* r, int cnt,
}
Vector* Base::xmlDistance(FitsImage* ptr, const char* r, const char* r2,
- int cnt, CoordSystem sys, SkyDist dist)
+ int cnt, Coord::CoordSystem sys, Coord::SkyDist dist)
{
Vector* vv = new Vector[cnt];
@@ -973,18 +933,18 @@ Vector* Base::xmlDistance(FitsImage* ptr, const char* r, const char* r2,
}
double Base::xmlAngle(const char* angle, int sign, double offset,
- AngleFormat format, CoordSystem sys, SkyFrame sky)
+ Coord::AngleFormat format, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
switch (format) {
- case DEG:
+ case Coord::DEG:
return mapAngleToRef(sign*degToRad(atof(angle))+offset, sys, sky);
- case RAD:
+ case Coord::RAD:
return mapAngleToRef(sign*atof(angle)+offset, sys, sky);
}
}
double* Base::xmlAngles(const char* angle, int sign, double offset, int cnt,
- AngleFormat format, CoordSystem sys, SkyFrame sky)
+ Coord::AngleFormat format, Coord::CoordSystem sys, Coord::SkyFrame sky)
{
double* ang = new double[cnt];
@@ -993,10 +953,10 @@ double* Base::xmlAngles(const char* angle, int sign, double offset, int cnt,
for (int ii=0; ii<cnt; ii++) {
if (tok)
switch (format) {
- case DEG:
+ case Coord::DEG:
ang[ii] = mapAngleToRef(sign*degToRad(atof(tok))+offset, sys, sky);
break;
- case RAD:
+ case Coord::RAD:
ang[ii] = mapAngleToRef(sign*atof(tok)+offset, sys, sky);
break;
}
@@ -1007,8 +967,8 @@ double* Base::xmlAngles(const char* angle, int sign, double offset, int cnt,
return ang;
}
-void Base::markerListXMLHeader(ostream& str, CoordSystem sys,
- SkyFrame sky, SkyFormat format)
+void Base::markerListXMLHeader(ostream& str, Coord::CoordSystem sys,
+ Coord::SkyFrame sky, Coord::SkyFormat format)
{
str << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << endl
<< "<VOTABLE version=\"1.1\">" << endl
@@ -1023,20 +983,20 @@ void Base::markerListXMLHeader(ostream& str, CoordSystem sys,
str << "<FIELD ID=\"shape\" name=\"shape\" datatype=\"char\" arraysize=\"*\"/>" << endl;
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
- str << "<FIELD ID=\"x\" name=\"x\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"y\" name=\"y\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"xv\" name=\"xv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"yv\" name=\"yv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"r\" name=\"r\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"r2\" name=\"r2\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"rv\" name=\"rv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"rv2\" name=\"rv2\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"ang\" name=\"ang\" datatype=\"float\" precision=\"8\" unit=\"deg\" ref=\"" << coordSystemStr_[sys] << "\" axis=\"x\" dir=\"ccw\"/>" << endl;
- str << "<FIELD ID=\"angv\" name=\"angv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"deg\" ref=\"" << coordSystemStr_[sys] << "\" axis=\"x\" dir=\"ccw\"/>" << endl;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
+ str << "<FIELD ID=\"x\" name=\"x\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"y\" name=\"y\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"xv\" name=\"xv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"yv\" name=\"yv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"r\" name=\"r\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"r2\" name=\"r2\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"rv\" name=\"rv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"rv2\" name=\"rv2\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"ang\" name=\"ang\" datatype=\"float\" precision=\"8\" unit=\"deg\" ref=\"" << coord.coordSystemStr(sys) << "\" axis=\"x\" dir=\"ccw\"/>" << endl;
+ str << "<FIELD ID=\"angv\" name=\"angv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"deg\" ref=\"" << coord.coordSystemStr(sys) << "\" axis=\"x\" dir=\"ccw\"/>" << endl;
break;
default:
@@ -1046,58 +1006,58 @@ void Base::markerListXMLHeader(ostream& str, CoordSystem sys,
char* xucd=NULL;
char* yucd=NULL;
switch (sky) {
- case FK4:
- case FK4_NO_E:
- case FK5:
- case ICRS:
+ case Coord::FK4:
+ case Coord::FK4_NO_E:
+ case Coord::FK5:
+ case Coord::ICRS:
xucd = dupstr("pos.eq.ra;meta.main");
yucd = dupstr("pos.eq.dec;meta.main");
break;
- case GALACTIC:
- case SUPERGALACTIC:
+ case Coord::GALACTIC:
+ case Coord::SUPERGALACTIC:
xucd = dupstr("pos.galactic.lon;meta.main");
yucd = dupstr("pos.galactic.lat;meta.main");
break;
- case ECLIPTIC:
- case HELIOECLIPTIC:
+ case Coord::ECLIPTIC:
+ case Coord::HELIOECLIPTIC:
xucd = dupstr("pos.ecliptic.lon;meta.main");
yucd = dupstr("pos.ecliptic.lat;meta.main");
break;
}
switch (format) {
- case DEGREES:
- str << "<FIELD ID=\"x\" name=\"x\" datatype=\"float\" precision=\"8\" unit=\"deg\" ref=\"" << skyFrameStr_[sky] << "\" ucd=\"" << xucd << "\"/>" << endl;
- str << "<FIELD ID=\"y\" name=\"y\" datatype=\"float\" precision=\"8\" unit=\"deg\" ref=\"" << skyFrameStr_[sky] << "\" ucd=\"" << yucd << "\"/>" << endl;
- str << "<FIELD ID=\"xv\" name=\"xv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"deg\" ref=\"" << skyFrameStr_[sky] << "\"/>" << endl;
- str << "<FIELD ID=\"yv\" name=\"yv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"deg\" ref=\"" << skyFrameStr_[sky] << "\"/>" << endl;
+ case Coord::DEGREES:
+ str << "<FIELD ID=\"x\" name=\"x\" datatype=\"float\" precision=\"8\" unit=\"deg\" ref=\"" << coord.skyFrameStr(sky) << "\" ucd=\"" << xucd << "\"/>" << endl;
+ str << "<FIELD ID=\"y\" name=\"y\" datatype=\"float\" precision=\"8\" unit=\"deg\" ref=\"" << coord.skyFrameStr(sky) << "\" ucd=\"" << yucd << "\"/>" << endl;
+ str << "<FIELD ID=\"xv\" name=\"xv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"deg\" ref=\"" << coord.skyFrameStr(sky) << "\"/>" << endl;
+ str << "<FIELD ID=\"yv\" name=\"yv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"deg\" ref=\"" << coord.skyFrameStr(sky) << "\"/>" << endl;
break;
- case SEXAGESIMAL:
- str << "<FIELD ID=\"x\" name=\"x\" datatype=\"char\" arraysize=\"*\" unit=\""h:m:s"\" ref=\"" << skyFrameStr_[sky] << "\" ucd=\"" << xucd << "\"/>" << endl;
- str << "<FIELD ID=\"y\" name=\"y\" datatype=\"char\" arraysize=\"*\" unit=\""d:m:s"\" ref=\"" << skyFrameStr_[sky] << "\" ucd=\"" << yucd << "\"/>" << endl;
- str << "<FIELD ID=\"xv\" name=\"xv\" datatype=\"char\" arraysize=\"*\" unit=\""h:m:s"\" ref=\"" << skyFrameStr_[sky] << "\"/>" << endl;
- str << "<FIELD ID=\"yv\" name=\"yv\" datatype=\"char\" arraysize=\"*\" unit=\""d:m:s"\" ref=\"" << skyFrameStr_[sky] << "\"/>" << endl;
+ case Coord::SEXAGESIMAL:
+ str << "<FIELD ID=\"x\" name=\"x\" datatype=\"char\" arraysize=\"*\" unit=\""h:m:s"\" ref=\"" << coord.skyFrameStr(sky) << "\" ucd=\"" << xucd << "\"/>" << endl;
+ str << "<FIELD ID=\"y\" name=\"y\" datatype=\"char\" arraysize=\"*\" unit=\""d:m:s"\" ref=\"" << coord.skyFrameStr(sky) << "\" ucd=\"" << yucd << "\"/>" << endl;
+ str << "<FIELD ID=\"xv\" name=\"xv\" datatype=\"char\" arraysize=\"*\" unit=\""h:m:s"\" ref=\"" << coord.skyFrameStr(sky) << "\"/>" << endl;
+ str << "<FIELD ID=\"yv\" name=\"yv\" datatype=\"char\" arraysize=\"*\" unit=\""d:m:s"\" ref=\"" << coord.skyFrameStr(sky) << "\"/>" << endl;
break;
}
- str << "<FIELD ID=\"r\" name=\"r\" datatype=\"float\" precision=\"8\" unit=\"arcsec\" ref=\"" << skyFrameStr_[sky] << "\"/>" << endl;
- str << "<FIELD ID=\"r2\" name=\"r2\" datatype=\"float\" precision=\"8\" unit=\"arcsec\" ref=\"" << skyFrameStr_[sky] << "\"/>" << endl;
- str << "<FIELD ID=\"rv\" name=\"rv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"arcsec\" ref=\"" << skyFrameStr_[sky] << "\"/>" << endl;
- str << "<FIELD ID=\"rv2\" name=\"rv2\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"arcsec\" ref=\"" << skyFrameStr_[sky] << "\"/>" << endl;
- str << "<FIELD ID=\"ang\" name=\"ang\" datatype=\"float\" precision=\"8\" unit=\"deg\" ref=\"" << skyFrameStr_[sky] << "\" axis=\"-x\" dir=\"ccw\"/>" << endl;
- str << "<FIELD ID=\"angv\" name=\"angv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"deg\" ref=\"" << skyFrameStr_[sky] << "\" axis=\"-x\" dir=\"ccw\"/>" << endl;
+ str << "<FIELD ID=\"r\" name=\"r\" datatype=\"float\" precision=\"8\" unit=\"arcsec\" ref=\"" << coord.skyFrameStr(sky) << "\"/>" << endl;
+ str << "<FIELD ID=\"r2\" name=\"r2\" datatype=\"float\" precision=\"8\" unit=\"arcsec\" ref=\"" << coord.skyFrameStr(sky) << "\"/>" << endl;
+ str << "<FIELD ID=\"rv\" name=\"rv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"arcsec\" ref=\"" << coord.skyFrameStr(sky) << "\"/>" << endl;
+ str << "<FIELD ID=\"rv2\" name=\"rv2\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"arcsec\" ref=\"" << coord.skyFrameStr(sky) << "\"/>" << endl;
+ str << "<FIELD ID=\"ang\" name=\"ang\" datatype=\"float\" precision=\"8\" unit=\"deg\" ref=\"" << coord.skyFrameStr(sky) << "\" axis=\"-x\" dir=\"ccw\"/>" << endl;
+ str << "<FIELD ID=\"angv\" name=\"angv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"deg\" ref=\"" << coord.skyFrameStr(sky) << "\" axis=\"-x\" dir=\"ccw\"/>" << endl;
}
else {
- str << "<FIELD ID=\"x\" name=\"x\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"y\" name=\"y\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"xv\" name=\"xv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"yv\" name=\"yv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"r\" name=\"r\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"r2\" name=\"r2\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"rv\" name=\"rv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"rv2\" name=\"rv2\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coordSystemStr_[sys] << "\"/>" << endl;
- str << "<FIELD ID=\"ang\" name=\"ang\" datatype=\"float\" precision=\"8\" unit=\"deg\" ref=\"" << coordSystemStr_[sys] << "\" axis=\"x\" dir=\"ccw\"/>" << endl;
- str << "<FIELD ID=\"angv\" name=\"angv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"deg\" ref=\"" << coordSystemStr_[sys] << "\" axis=\"x\" dir=\"ccw\"/>" << endl;
+ str << "<FIELD ID=\"x\" name=\"x\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"y\" name=\"y\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"xv\" name=\"xv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"yv\" name=\"yv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"r\" name=\"r\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"r2\" name=\"r2\" datatype=\"float\" precision=\"8\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"rv\" name=\"rv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"rv2\" name=\"rv2\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"pix\" ref=\"" << coord.coordSystemStr(sys) << "\"/>" << endl;
+ str << "<FIELD ID=\"ang\" name=\"ang\" datatype=\"float\" precision=\"8\" unit=\"deg\" ref=\"" << coord.coordSystemStr(sys) << "\" axis=\"x\" dir=\"ccw\"/>" << endl;
+ str << "<FIELD ID=\"angv\" name=\"angv\" datatype=\"float\" precision=\"8\" arraysize=\"*\" unit=\"deg\" ref=\"" << coord.coordSystemStr(sys) << "\" axis=\"x\" dir=\"ccw\"/>" << endl;
}
}
}
diff --git a/saotk/frame/frsave.C b/saotk/frame/frsave.C
index 36c13d6..6ee2f94 100644
--- a/saotk/frame/frsave.C
+++ b/saotk/frame/frsave.C
@@ -181,8 +181,8 @@ void FrameBase::saveFitsResampleKeyword(OutFitsStream& str, FitsHead& dst)
}
// WCS
- if (currentContext->cfits->hasWCS(WCS)) {
- WorldCoor* wcs = currentContext->cfits->getWCS(WCS);
+ if (currentContext->cfits->hasWCS(Coord::WCS)) {
+ WorldCoor* wcs = currentContext->cfits->getWCS(Coord::WCS);
// abort if this is a DSS, ZPN, TNX
if (!strncmp(wcs->ptype,"DSS",3) ||
@@ -253,7 +253,7 @@ void FrameBase::saveFitsResampleFits(OutFitsStream& str)
int mosaic = isMosaic();
// variable
- double* mm = sptr->matrixToData(WIDGET).mm();
+ double* mm = sptr->matrixToData(Coord::WIDGET).mm();
FitsBound* params = sptr->getDataParams(currentContext->frScale.scanMode());
int srcw = sptr->width();
@@ -266,7 +266,7 @@ void FrameBase::saveFitsResampleFits(OutFitsStream& str)
if (mosaic) {
sptr = currentContext->cfits;
- mm = sptr->matrixToData(WIDGET).mm();
+ mm = sptr->matrixToData(Coord::WIDGET).mm();
params = sptr->getDataParams(currentContext->frScale.scanMode());
srcw = sptr->width();
}
@@ -289,7 +289,7 @@ void FrameBase::saveFitsResampleFits(OutFitsStream& str)
sptr = sptr->nextMosaic();
if (sptr) {
- mm = sptr->matrixToData(WIDGET).mm();
+ mm = sptr->matrixToData(Coord::WIDGET).mm();
params = sptr->getDataParams(currentContext->frScale.scanMode());
srcw = sptr->width();
}
diff --git a/saotk/frame/frscale.C b/saotk/frame/frscale.C
index 4a680aa..679e07f 100644
--- a/saotk/frame/frscale.C
+++ b/saotk/frame/frscale.C
@@ -30,10 +30,8 @@ FrScale::FrScale()
histequSize_ = 0;
histogramX_ = NULL;
- histogramXSize_ = 0;
-
histogramY_ = NULL;
- histogramYSize_ = 0;
+ histogramSize_ = 0;
datasec_ = 1;
}
@@ -80,20 +78,18 @@ FrScale::FrScale(const FrScale& a)
histequSize_ = a.histequSize_;
if (a.histogramX_) {
- histogramX_ = (double*)calloc(a.histogramXSize_, sizeof(double));
- memcpy(histogramX_,a.histogramX_,a.histogramXSize_*sizeof(double));
+ histogramX_ = (double*)calloc(a.histogramSize_, sizeof(double));
+ memcpy(histogramX_,a.histogramX_,a.histogramSize_*sizeof(double));
}
else
histogramX_ = NULL;
- histogramXSize_ = a.histogramXSize_;
-
if (a.histogramY_) {
- histogramY_ = (double*)calloc(a.histogramYSize_, sizeof(double));
- memcpy(histogramY_,a.histogramY_,a.histogramYSize_*sizeof(double));
+ histogramY_ = (double*)calloc(a.histogramSize_, sizeof(double));
+ memcpy(histogramY_,a.histogramY_,a.histogramSize_*sizeof(double));
}
else
histogramY_ = NULL;
- histogramYSize_ = a.histogramYSize_;
+ histogramSize_ = a.histogramSize_;
}
FrScale& FrScale::operator=(const FrScale& a)
@@ -130,22 +126,19 @@ FrScale& FrScale::operator=(const FrScale& a)
if (histogramX_)
free(histogramX_);
histogramX_ = NULL;
-
if (a.histogramX_) {
- histogramX_ = (double*)calloc(a.histogramXSize_, sizeof(double));
- memcpy(histogramX_,a.histogramX_,a.histogramXSize_*sizeof(double));
+ histogramX_ = (double*)calloc(a.histogramSize_, sizeof(double));
+ memcpy(histogramX_,a.histogramX_,a.histogramSize_*sizeof(double));
}
- histogramXSize_ = a.histogramXSize_;
if (histogramY_)
free(histogramY_);
histogramY_ = NULL;
-
if (a.histogramY_) {
- histogramY_ = (double*)calloc(a.histogramYSize_, sizeof(double));
- memcpy(histogramY_,a.histogramY_,a.histogramYSize_*sizeof(double));
+ histogramY_ = (double*)calloc(a.histogramSize_, sizeof(double));
+ memcpy(histogramY_,a.histogramY_,a.histogramSize_*sizeof(double));
}
- histogramYSize_ = a.histogramYSize_;
+ histogramSize_ = a.histogramSize_;
}
double* FrScale::histequ(FitsImage* fits)
@@ -179,8 +172,8 @@ double* FrScale::histequ(FitsImage* fits)
double total, average;
{
total = 0;
- for (int i=0; i<HISTEQUSIZE; i++)
- total += pdf[i];
+ for (int ii=0; ii<HISTEQUSIZE; ii++)
+ total += pdf[ii];
average = total/HISTEQUSIZE;
}
@@ -226,18 +219,15 @@ void FrScale::histogram(FitsImage* fits, int num)
if (histogramX_)
free(histogramX_);
histogramX_ = (double*)calloc(num, sizeof(double));
- histogramXSize_ = num;
-
if (histogramY_)
free(histogramY_);
histogramY_ = (double*)calloc(num, sizeof(double));
- histogramYSize_ = num;
+ histogramSize_ = num;
- for (int i=0; i<num; i++)
- histogramX_[i] = (double)i/(num-1)*(max_-min_) + min_;
+ for (int ii=0; ii<num; ii++)
+ histogramX_[ii] = (double)ii/(num-1)*(max_-min_) + min_;
- for (int j=0; j<num; j++)
- histogramY_[j] = 0;
+ memset(histogramY_,0,sizeof(double)*num);
if (max_ > min_) {
FitsImage* ptr = fits;
@@ -258,11 +248,11 @@ void FrScale::clearHistogram()
if (histogramX_)
free(histogramX_);
histogramX_ = NULL;
- histogramXSize_ = 0;
if (histogramY_)
free(histogramY_);
histogramY_ = NULL;
- histogramYSize_ = 0;
+
+ histogramSize_ = 0;
}
diff --git a/saotk/frame/frscale.h b/saotk/frame/frscale.h
index b9eb6cd..7e8ce1f 100644
--- a/saotk/frame/frscale.h
+++ b/saotk/frame/frscale.h
@@ -44,10 +44,10 @@ class FrScale {
double* histequ_; // image histogram equalization xfer function
int histequSize_;
+
double* histogramX_; // scale histogram
- int histogramXSize_;
double* histogramY_; // scale histogram
- int histogramYSize_;
+ int histogramSize_;
int datasec_;
diff --git a/saotk/frame/grid.C b/saotk/frame/grid.C
index 5e5f048..e17579b 100644
--- a/saotk/frame/grid.C
+++ b/saotk/frame/grid.C
@@ -4,14 +4,13 @@
#include "grid.h"
#include "context.h"
-#include "framebase.h"
#include "fitsimage.h"
extern "C" {
#include "ast.h"
}
-Grid::Grid(CoordSystem sys, SkyFrame sky, SkyFormat format, GridType type)
+Grid::Grid(Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format, GridType type)
: system_(sys), sky_(sky), skyFormat_(format), type_(type)
{
}
diff --git a/saotk/frame/grid.h b/saotk/frame/grid.h
index 56daf63..84d6016 100644
--- a/saotk/frame/grid.h
+++ b/saotk/frame/grid.h
@@ -15,12 +15,12 @@ class Grid {
protected:
GridType type_;
- CoordSystem system_;
- SkyFrame sky_;
- SkyFormat skyFormat_;
+ Coord::CoordSystem system_;
+ Coord::SkyFrame sky_;
+ Coord::SkyFormat skyFormat_;
public:
- Grid(CoordSystem, SkyFrame, SkyFormat, GridType);
+ Grid(Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, GridType);
~Grid();
virtual const char* option() =0;
@@ -34,9 +34,9 @@ class Grid {
#endif
GridType type() {return type_;}
- CoordSystem system() {return system_;}
- SkyFrame sky() {return sky_;}
- SkyFormat skyFormat() {return skyFormat_;}
+ Coord::CoordSystem system() {return system_;}
+ Coord::SkyFrame sky() {return sky_;}
+ Coord::SkyFormat skyFormat() {return skyFormat_;}
};
#endif
diff --git a/saotk/frame/grid25d.C b/saotk/frame/grid25d.C
index e8a4a50..d625f2f 100644
--- a/saotk/frame/grid25d.C
+++ b/saotk/frame/grid25d.C
@@ -13,7 +13,7 @@ extern "C" {
extern Grid25dBase* astGrid25dPtr;
-Grid25d::Grid25d(Widget* p, CoordSystem sys, SkyFrame sky, SkyFormat format,
+Grid25d::Grid25d(Widget* p, Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
GridType t, const char* o)
: Grid(sys, sky, format, t), Grid25dBase(p,o)
{}
@@ -43,16 +43,16 @@ int Grid25d::doit(RenderMode rm)
FitsBound* params = fits->getDataParams(context->frScale.scanMode());
switch (system_) {
- case IMAGE:
+ case Coord::IMAGE:
frameSet = (AstFrameSet*)matrixMap(fits->refToImage,"Domain=IMAGE");
break;
- case PHYSICAL:
+ case Coord::PHYSICAL:
frameSet = (AstFrameSet*)matrixMap(fits->refToPhysical,"Domain=PHYSICAL");
break;
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
frameSet = (AstFrameSet*)matrixMap(fits->refToAmplifier,"Domain=AMPLIFIER");
break;
- case DETECTOR:
+ case Coord::DETECTOR:
frameSet = (AstFrameSet*)matrixMap(fits->refToDetector,"Domain=DETECTOR");
default:
{
@@ -93,13 +93,6 @@ int Grid25d::doit(RenderMode rm)
astSet(frameSet,"Title=%s", " ");
- if (DebugAST) {
- int status = astStatus;
- astClearStatus;
- astShow(frameSet);
- astSetStatus(status);
- }
-
// create astPlot
float gbox[4];
double pbox[4];
diff --git a/saotk/frame/grid25d.h b/saotk/frame/grid25d.h
index 6eb5c06..b5635ac 100644
--- a/saotk/frame/grid25d.h
+++ b/saotk/frame/grid25d.h
@@ -17,7 +17,7 @@ class Grid25d : public Grid, public Grid25dBase {
int doit(RenderMode);
public:
- Grid25d(Widget*, CoordSystem, SkyFrame, SkyFormat, GridType, const char*);
+ Grid25d(Widget*, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, GridType, const char*);
const char* option() {return Grid25dBase::option();}
void render() {doit(X11);}
diff --git a/saotk/frame/grid2d.C b/saotk/frame/grid2d.C
index 5096d50..d8f95db 100644
--- a/saotk/frame/grid2d.C
+++ b/saotk/frame/grid2d.C
@@ -13,7 +13,7 @@ extern "C" {
extern Grid2dBase* astGrid2dPtr;
-Grid2d::Grid2d(Widget* p, CoordSystem sys, SkyFrame sky, SkyFormat format,
+Grid2d::Grid2d(Widget* p, Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format,
GridType t, const char* o)
: Grid(sys, sky, format, t), Grid2dBase(p,o)
{}
@@ -51,15 +51,15 @@ int Grid2d::doit(RenderMode rm)
matrixMap(frameSet,fits->widgetToImage,"Domain=IMAGE");
switch (system_) {
- case IMAGE:
+ case Coord::IMAGE:
break;
- case PHYSICAL:
+ case Coord::PHYSICAL:
matrixMap(frameSet,fits->imageToPhysical,"Domain=PHYSICAL");
break;
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
matrixMap(frameSet,fits->imageToAmplifier,"Domain=AMPLIFIER");
break;
- case DETECTOR:
+ case Coord::DETECTOR:
matrixMap(frameSet,fits->imageToDetector,"Domain=DETECTOR");
break;
default:
@@ -81,13 +81,6 @@ int Grid2d::doit(RenderMode rm)
astSet(frameSet,"Title=%s", " ");
- if (DebugAST) {
- int status = astStatus;
- astClearStatus;
- astShow(frameSet);
- astSetStatus(status);
- }
-
// create astPlot
float gbox[4];
double pbox[4];
diff --git a/saotk/frame/grid2d.h b/saotk/frame/grid2d.h
index aed6236..f137749 100644
--- a/saotk/frame/grid2d.h
+++ b/saotk/frame/grid2d.h
@@ -17,7 +17,7 @@ class Grid2d : public Grid, public Grid2dBase {
int doit(RenderMode);
public:
- Grid2d(Widget*, CoordSystem, SkyFrame, SkyFormat, GridType, const char*);
+ Grid2d(Widget*, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, GridType, const char*);
const char* option() {return Grid2dBase::option();}
void render() {doit(X11);}
diff --git a/saotk/frame/grid3d.C b/saotk/frame/grid3d.C
index 49f8c91..a193ce6 100644
--- a/saotk/frame/grid3d.C
+++ b/saotk/frame/grid3d.C
@@ -13,9 +13,7 @@ extern "C" {
extern Grid3dBase* astGrid3dPtr;
-Grid3d::Grid3d(Widget* p, CoordSystem sys, SkyFrame sky, SkyFormat format,
- GridType t, const char* o)
- : Grid(sys, sky, format, t), Grid3dBase(p,o)
+Grid3d::Grid3d(Widget* p, Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format, GridType t, const char* o) : Grid(sys, sky, format, t), Grid3dBase(p,o)
{}
int Grid3d::doit(RenderMode rm)
@@ -46,16 +44,16 @@ int Grid3d::doit(RenderMode rm)
FitsBound* params = fits->getDataParams(context->frScale.scanMode());
switch (system_) {
- case IMAGE:
+ case Coord::IMAGE:
frameSet = (AstFrameSet*)matrixMap(fits->refToImage,"Domain=IMAGE");
break;
- case PHYSICAL:
+ case Coord::PHYSICAL:
frameSet = (AstFrameSet*)matrixMap(fits->refToPhysical,"Domain=PHYSICAL");
break;
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
frameSet = (AstFrameSet*)matrixMap(fits->refToAmplifier,"Domain=AMPLIFIER");
break;
- case DETECTOR:
+ case Coord::DETECTOR:
frameSet = (AstFrameSet*)matrixMap(fits->refToDetector,"Domain=DETECTOR");
break;
default:
@@ -69,7 +67,6 @@ int Grid3d::doit(RenderMode rm)
AstFrameSet* wcs = (AstFrameSet*)astCopy(fits->getAST(system_));
if (astIsASkyFrame(astGetFrame(wcs, AST__CURRENT)))
fits->setAstSkyFrame(wcs, sky_);
- // astShow(wcs);
// Record the index of the current Frame
int isky = astGetI(wcs, "Current");
@@ -117,13 +114,6 @@ int Grid3d::doit(RenderMode rm)
astSet(frameSet,"Title=%s", " ");
- if (DebugAST) {
- int status = astStatus;
- astClearStatus;
- astShow(frameSet);
- astSetStatus(status);
- }
-
// create astPlot
float gbox[6];
double pbox[6];
diff --git a/saotk/frame/grid3d.h b/saotk/frame/grid3d.h
index 9499ada..21c735d 100644
--- a/saotk/frame/grid3d.h
+++ b/saotk/frame/grid3d.h
@@ -17,7 +17,7 @@ class Grid3d : public Grid, public Grid3dBase {
int doit(RenderMode);
public:
- Grid3d(Widget*, CoordSystem, SkyFrame, SkyFormat, GridType, const char*);
+ Grid3d(Widget*, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, GridType, const char*);
const char* option() {return Grid3dBase::option();}
void render() {doit(X11);}
diff --git a/saotk/frame/lex.C b/saotk/frame/lex.C
index f5c4948..d161319 100644
--- a/saotk/frame/lex.C
+++ b/saotk/frame/lex.C
@@ -323,8 +323,8 @@ int yyFlexLexer::yywrap() { return 1; }
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 335
-#define YY_END_OF_BUFFER 336
+#define YY_NUM_RULES 342
+#define YY_END_OF_BUFFER 343
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -332,141 +332,143 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[1206] =
+static yyconst flex_int16_t yy_accept[1223] =
{ 0,
- 0, 0, 336, 334, 333, 335, 334, 334, 334, 334,
- 334, 315, 315, 315, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
- 333, 332, 0, 332, 329, 0, 332, 330, 332, 315,
- 317, 316, 315, 332, 319, 332, 332, 332, 255, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 27, 332, 332, 332, 332, 332, 38,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
-
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 121, 332, 332, 332, 332, 332, 135, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 180, 332, 332,
- 332, 186, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 259, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 310, 332, 332, 332,
- 332, 0, 332, 331, 329, 330, 317, 316, 321, 320,
-
- 332, 319, 332, 332, 332, 316, 332, 318, 332, 2,
- 332, 6, 7, 332, 332, 332, 332, 332, 332, 332,
- 332, 18, 332, 20, 332, 332, 332, 332, 332, 332,
- 332, 29, 332, 332, 32, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 73,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 87,
- 88, 332, 332, 332, 93, 332, 332, 332, 97, 332,
- 332, 332, 102, 332, 106, 108, 332, 332, 332, 332,
- 332, 332, 116, 332, 332, 332, 332, 123, 332, 332,
-
- 332, 332, 332, 332, 332, 332, 136, 332, 332, 332,
- 332, 332, 332, 332, 146, 332, 332, 332, 332, 332,
- 332, 332, 332, 157, 158, 332, 332, 161, 332, 332,
- 332, 332, 332, 168, 332, 332, 332, 332, 332, 332,
- 176, 332, 178, 332, 332, 182, 332, 332, 185, 332,
- 332, 332, 190, 332, 332, 332, 332, 332, 332, 332,
- 332, 202, 332, 332, 332, 332, 332, 332, 332, 332,
- 215, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 229, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 247,
-
- 332, 332, 332, 251, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 271, 332, 332, 332, 332, 278, 332, 332, 332, 309,
- 311, 332, 332, 332, 331, 322, 332, 317, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 19, 332, 332, 23, 24, 25,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 46, 332, 332, 50, 74, 332,
- 56, 332, 332, 332, 332, 64, 332, 332, 332, 66,
- 332, 71, 332, 75, 77, 332, 332, 332, 332, 332,
-
- 332, 332, 332, 92, 332, 332, 332, 332, 332, 332,
- 100, 332, 103, 332, 332, 109, 110, 332, 112, 332,
- 332, 332, 332, 332, 119, 120, 332, 124, 332, 332,
- 128, 129, 332, 332, 134, 332, 332, 139, 140, 332,
- 143, 332, 332, 332, 332, 332, 332, 152, 154, 332,
- 155, 332, 332, 332, 162, 164, 332, 332, 332, 169,
- 171, 332, 332, 174, 175, 332, 179, 181, 332, 332,
- 187, 332, 332, 332, 332, 332, 332, 195, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 207, 332, 332,
- 332, 332, 332, 332, 332, 216, 332, 332, 332, 332,
-
- 332, 222, 332, 224, 332, 332, 332, 332, 332, 332,
- 332, 332, 234, 235, 236, 332, 332, 332, 332, 332,
- 243, 332, 332, 332, 332, 332, 332, 332, 253, 332,
- 332, 332, 332, 332, 262, 263, 264, 332, 332, 332,
- 332, 269, 332, 332, 332, 332, 272, 277, 305, 279,
- 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 332, 332, 332, 312, 314,
- 332, 332, 323, 332, 332, 332, 332, 1, 5, 3,
- 332, 332, 10, 332, 332, 332, 332, 15, 16, 17,
-
- 332, 22, 26, 332, 332, 31, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 49,
- 51, 332, 332, 332, 332, 332, 332, 332, 65, 332,
- 332, 67, 332, 332, 332, 332, 80, 332, 332, 332,
- 84, 332, 332, 332, 332, 332, 332, 96, 332, 99,
- 332, 104, 105, 332, 111, 332, 332, 332, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 137, 332,
- 332, 332, 332, 145, 332, 148, 332, 150, 332, 332,
- 156, 332, 332, 332, 332, 332, 332, 332, 332, 332,
- 177, 332, 332, 332, 332, 191, 332, 332, 194, 332,
-
- 197, 198, 332, 332, 332, 203, 332, 332, 332, 332,
- 332, 332, 332, 213, 332, 332, 218, 332, 332, 332,
- 223, 332, 226, 332, 332, 332, 332, 232, 233, 237,
- 238, 332, 332, 332, 332, 332, 332, 332, 332, 250,
- 332, 257, 332, 332, 332, 332, 332, 332, 332, 332,
- 332, 270, 332, 332, 332, 332, 306, 307, 308, 332,
- 324, 323, 332, 332, 327, 332, 332, 325, 332, 332,
- 332, 332, 12, 13, 14, 332, 332, 30, 332, 34,
- 332, 36, 37, 332, 40, 332, 332, 43, 332, 332,
- 47, 332, 332, 332, 332, 332, 332, 332, 332, 332,
-
- 332, 68, 69, 332, 72, 332, 332, 332, 332, 332,
- 83, 332, 332, 332, 332, 94, 332, 98, 101, 332,
- 332, 332, 332, 117, 332, 122, 125, 126, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 149, 153,
- 332, 159, 332, 163, 332, 166, 167, 332, 172, 173,
- 183, 184, 188, 189, 192, 193, 332, 332, 332, 332,
- 332, 332, 332, 332, 209, 210, 332, 332, 332, 217,
- 219, 332, 221, 332, 332, 228, 332, 231, 239, 240,
- 242, 332, 332, 246, 332, 249, 332, 332, 332, 260,
- 261, 332, 332, 265, 332, 268, 273, 332, 275, 332,
-
- 313, 328, 326, 4, 332, 332, 11, 21, 332, 332,
- 332, 332, 41, 332, 332, 45, 332, 332, 332, 332,
- 332, 57, 58, 332, 332, 61, 332, 332, 332, 332,
- 78, 79, 82, 81, 332, 86, 332, 90, 332, 332,
- 332, 332, 332, 332, 332, 332, 131, 332, 332, 138,
- 141, 144, 332, 147, 332, 332, 165, 332, 332, 199,
- 200, 332, 332, 332, 332, 332, 211, 332, 332, 332,
- 332, 227, 332, 332, 244, 245, 332, 332, 254, 332,
- 332, 332, 332, 274, 332, 332, 9, 332, 332, 332,
- 39, 332, 44, 48, 52, 53, 332, 332, 332, 60,
-
- 62, 332, 332, 76, 85, 89, 332, 332, 107, 113,
- 114, 115, 118, 332, 130, 332, 332, 332, 332, 332,
- 170, 196, 332, 204, 332, 206, 332, 212, 332, 220,
- 332, 332, 241, 332, 252, 332, 332, 332, 267, 276,
- 8, 28, 332, 35, 332, 332, 332, 59, 332, 70,
- 332, 332, 332, 132, 332, 142, 332, 160, 332, 332,
- 332, 332, 332, 332, 332, 256, 332, 332, 33, 42,
- 54, 55, 332, 332, 95, 332, 133, 332, 201, 205,
- 332, 214, 225, 332, 332, 332, 266, 63, 332, 332,
- 332, 208, 230, 332, 332, 332, 332, 151, 332, 258,
-
- 332, 127, 248, 91, 0
+ 0, 0, 343, 341, 340, 342, 341, 341, 341, 341,
+ 341, 322, 322, 322, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
+ 340, 339, 0, 339, 336, 0, 339, 337, 339, 322,
+ 324, 323, 322, 339, 326, 339, 339, 339, 262, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 27, 339, 339, 339, 339, 339, 39,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 122, 339, 339, 339, 339, 339, 136, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 181, 339, 339,
+ 339, 187, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 266, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 317, 339, 339,
+ 339, 339, 0, 339, 338, 336, 337, 324, 323, 328,
+
+ 327, 339, 326, 339, 339, 339, 323, 339, 325, 339,
+ 2, 339, 6, 7, 339, 339, 339, 339, 339, 339,
+ 339, 339, 18, 339, 20, 339, 339, 339, 339, 339,
+ 339, 339, 29, 339, 339, 31, 33, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 74, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 88, 89, 339, 339, 339, 94, 339, 339, 339,
+ 98, 339, 339, 339, 103, 339, 107, 109, 339, 339,
+ 339, 339, 339, 339, 117, 339, 339, 339, 339, 124,
+
+ 339, 339, 339, 339, 339, 339, 339, 339, 137, 339,
+ 339, 339, 339, 339, 339, 339, 147, 339, 339, 339,
+ 339, 339, 339, 339, 339, 158, 159, 339, 339, 162,
+ 339, 339, 339, 339, 339, 169, 339, 339, 339, 339,
+ 339, 339, 177, 339, 179, 339, 339, 183, 339, 339,
+ 186, 339, 339, 339, 191, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 207, 339, 339, 339, 339,
+ 339, 339, 339, 339, 220, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 234, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+
+ 339, 339, 339, 254, 339, 339, 339, 258, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 278, 339, 339, 339, 339, 285,
+ 339, 339, 339, 316, 318, 339, 339, 339, 338, 329,
+ 339, 324, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 19, 339,
+ 339, 23, 24, 25, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 47, 339,
+ 339, 50, 75, 339, 56, 339, 339, 339, 339, 339,
+ 65, 339, 339, 339, 67, 339, 72, 339, 76, 78,
+
+ 339, 339, 339, 339, 339, 339, 339, 339, 93, 339,
+ 339, 339, 339, 339, 339, 101, 339, 104, 339, 339,
+ 110, 111, 339, 113, 339, 339, 339, 339, 339, 120,
+ 121, 339, 125, 339, 339, 129, 130, 339, 339, 135,
+ 339, 339, 140, 141, 339, 144, 339, 339, 339, 339,
+ 339, 339, 153, 155, 339, 156, 339, 339, 339, 163,
+ 165, 339, 339, 339, 170, 172, 339, 339, 175, 176,
+ 339, 180, 182, 339, 339, 188, 339, 339, 339, 339,
+ 339, 339, 339, 197, 339, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 212, 339, 339, 339, 339,
+
+ 339, 339, 339, 221, 339, 339, 339, 339, 339, 227,
+ 339, 229, 339, 339, 339, 339, 339, 339, 339, 339,
+ 339, 240, 241, 242, 339, 339, 339, 339, 339, 249,
+ 339, 339, 339, 339, 339, 339, 339, 260, 339, 339,
+ 339, 339, 339, 269, 270, 271, 339, 339, 339, 339,
+ 276, 339, 339, 339, 339, 279, 284, 312, 286, 287,
+ 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
+ 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
+ 308, 309, 310, 311, 339, 339, 339, 319, 321, 339,
+ 339, 330, 339, 339, 339, 339, 1, 5, 3, 339,
+
+ 339, 10, 339, 339, 339, 339, 15, 16, 17, 339,
+ 22, 26, 339, 339, 32, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 49, 51,
+ 339, 339, 339, 339, 339, 339, 339, 339, 66, 339,
+ 339, 68, 339, 339, 339, 339, 81, 339, 339, 339,
+ 85, 339, 339, 339, 339, 339, 339, 97, 339, 100,
+ 339, 105, 106, 339, 112, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 138, 339,
+ 339, 339, 339, 146, 339, 149, 339, 151, 339, 339,
+ 157, 339, 339, 339, 339, 339, 339, 339, 339, 339,
+
+ 178, 339, 339, 339, 339, 192, 339, 194, 339, 196,
+ 198, 339, 200, 339, 339, 203, 339, 339, 339, 208,
+ 339, 339, 339, 339, 339, 339, 339, 218, 339, 339,
+ 223, 339, 339, 339, 228, 339, 231, 339, 339, 339,
+ 236, 339, 238, 239, 243, 244, 339, 339, 339, 339,
+ 339, 252, 339, 339, 339, 257, 339, 264, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 277, 339, 339,
+ 339, 339, 313, 314, 315, 339, 331, 330, 339, 339,
+ 334, 339, 339, 332, 339, 339, 339, 339, 12, 13,
+ 14, 339, 339, 30, 339, 35, 339, 37, 38, 339,
+
+ 41, 339, 339, 44, 339, 339, 48, 339, 339, 339,
+ 57, 339, 339, 339, 339, 339, 339, 339, 69, 70,
+ 339, 73, 339, 339, 339, 339, 339, 84, 339, 339,
+ 339, 339, 95, 339, 99, 102, 339, 339, 339, 339,
+ 118, 339, 123, 126, 127, 339, 339, 339, 339, 339,
+ 339, 339, 339, 339, 339, 150, 154, 339, 160, 339,
+ 164, 339, 167, 168, 339, 173, 174, 184, 185, 189,
+ 190, 193, 195, 339, 201, 202, 339, 339, 339, 339,
+ 339, 339, 339, 214, 215, 339, 339, 339, 222, 224,
+ 339, 226, 339, 339, 233, 339, 237, 245, 246, 248,
+
+ 339, 339, 253, 339, 256, 339, 339, 339, 267, 268,
+ 339, 339, 272, 339, 275, 280, 339, 282, 339, 320,
+ 335, 333, 4, 339, 339, 11, 21, 339, 339, 339,
+ 339, 42, 339, 339, 46, 339, 339, 339, 339, 58,
+ 59, 339, 339, 62, 339, 339, 339, 339, 79, 80,
+ 83, 82, 339, 87, 339, 91, 339, 339, 339, 339,
+ 339, 339, 339, 339, 132, 339, 339, 139, 142, 145,
+ 339, 148, 339, 339, 166, 339, 339, 204, 205, 339,
+ 339, 339, 339, 339, 216, 339, 339, 339, 339, 232,
+ 339, 339, 250, 251, 339, 339, 261, 339, 339, 339,
+
+ 339, 281, 339, 339, 9, 339, 339, 339, 40, 339,
+ 45, 52, 53, 339, 339, 339, 61, 63, 339, 339,
+ 77, 86, 90, 339, 339, 108, 114, 115, 116, 119,
+ 339, 131, 339, 339, 339, 339, 339, 171, 199, 339,
+ 209, 339, 211, 339, 217, 339, 225, 339, 339, 247,
+ 339, 259, 339, 339, 339, 274, 283, 8, 28, 339,
+ 36, 339, 339, 339, 60, 339, 71, 339, 339, 339,
+ 133, 339, 143, 339, 161, 339, 339, 339, 339, 339,
+ 339, 339, 263, 339, 339, 34, 43, 54, 55, 339,
+ 339, 96, 339, 134, 339, 206, 210, 339, 219, 230,
+
+ 339, 339, 339, 273, 64, 339, 339, 339, 213, 235,
+ 339, 339, 339, 339, 152, 339, 265, 339, 128, 255,
+ 92, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -513,283 +515,285 @@ static yyconst flex_int32_t yy_meta[73] =
2, 2
} ;
-static yyconst flex_int16_t yy_base[1213] =
+static yyconst flex_int16_t yy_base[1230] =
{ 0,
- 0, 0, 334, 2831, 329, 2831, 0, 72, 77, 75,
+ 0, 0, 335, 2836, 332, 2836, 0, 72, 77, 75,
83, 92, 69, 90, 141, 197, 246, 94, 291, 341,
- 140, 97, 386, 292, 96, 192, 291, 190, 296, 432,
+ 140, 97, 386, 319, 96, 192, 291, 190, 296, 432,
346, 479, 530, 91, 244, 433, 105, 103, 155, 257,
- 294, 0, 287, 164, 0, 284, 360, 0, 415, 591,
+ 302, 0, 291, 164, 0, 286, 360, 0, 415, 591,
650, 690, 85, 599, 607, 624, 632, 730, 664, 96,
- 130, 337, 145, 249, 161, 336, 346, 202, 177, 271,
- 398, 195, 227, 0, 415, 228, 233, 264, 291, 0,
- 432, 287, 336, 401, 389, 333, 751, 359, 466, 475,
- 351, 797, 488, 269, 393, 414, 426, 453, 484, 465,
-
- 489, 482, 520, 522, 67, 519, 521, 525, 529, 520,
- 528, 543, 0, 593, 663, 646, 529, 533, 0, 534,
- 553, 710, 607, 605, 274, 586, 638, 656, 698, 670,
- 778, 695, 731, 673, 796, 762, 728, 765, 698, 738,
- 748, 757, 762, 775, 813, 801, 796, 800, 837, 846,
- 826, 829, 855, 835, 849, 828, 863, 864, 886, 900,
- 882, 859, 899, 900, 899, 884, 906, 910, 897, 923,
- 924, 935, 938, 954, 915, 954, 946, 954, 949, 965,
- 955, 946, 946, 953, 968, 965, 0, 959, 988, 981,
- 994, 175, 1022, 0, 2831, 2831, 1085, 1006, 0, 0,
-
- 1036, 0, 1046, 1059, 1067, 1112, 1125, 0, 1000, 0,
- 1041, 1034, 0, 1055, 1056, 1057, 1049, 1066, 1112, 1072,
- 1072, 0, 1073, 0, 1082, 219, 1090, 1097, 1106, 1123,
- 1128, 0, 1118, 1132, 1136, 1122, 1134, 1129, 1120, 1142,
- 1139, 1125, 1132, 1132, 1145, 1148, 1134, 1141, 1162, 1166,
- 1134, 1165, 1159, 1171, 1172, 1186, 1172, 1184, 1171, 0,
- 1184, 1192, 1173, 1194, 1178, 1192, 1178, 1194, 1187, 0,
- 0, 1192, 1182, 1195, 0, 1192, 1228, 1212, 0, 1213,
- 1215, 1230, 1217, 1232, 225, 0, 1218, 1226, 1229, 1239,
- 1242, 1225, 0, 1243, 1231, 1242, 1244, 0, 1245, 1244,
-
- 1243, 1248, 1246, 1238, 1272, 1264, 0, 1278, 1274, 1272,
- 1283, 1283, 1272, 222, 1268, 1288, 1287, 1290, 1291, 1277,
- 1278, 1295, 1299, 0, 0, 1286, 1288, 0, 1292, 1293,
- 1286, 1298, 1295, 0, 1294, 1328, 1334, 1328, 1333, 1334,
- 0, 1335, 0, 1321, 1337, 0, 1341, 1339, 0, 1320,
- 1337, 1342, 1344, 1330, 1330, 1345, 1333, 1348, 1340, 1330,
- 1336, 0, 1338, 1346, 1375, 1350, 1378, 1380, 1378, 1391,
- 0, 1373, 1394, 1392, 1382, 1390, 1395, 1389, 1397, 1388,
- 1392, 1402, 0, 1407, 1391, 1406, 1405, 1414, 1431, 1436,
- 1439, 1442, 1429, 1434, 1428, 1427, 1447, 1448, 1430, 0,
-
- 1446, 1432, 1441, 0, 1438, 1435, 1453, 1452, 1451, 1451,
- 1446, 1456, 1457, 1449, 1457, 1474, 1486, 1492, 1476, 1474,
- 0, 1476, 1478, 1476, 1484, 1541, 1593, 1577, 180, 0,
- 0, 1574, 1586, 1599, 2831, 0, 1509, 1609, 1618, 1636,
- 1645, 1599, 1606, 1618, 1639, 1624, 1645, 1639, 1638, 1644,
- 1649, 1630, 1633, 1649, 0, 1657, 181, 0, 0, 0,
- 1645, 1646, 1652, 1651, 1649, 1663, 1661, 1661, 1665, 1667,
- 1657, 1651, 1692, 1659, 0, 1688, 1683, 0, 0, 1684,
- 0, 1702, 1703, 1690, 1702, 0, 1687, 1705, 1691, 0,
- 1693, 0, 1698, 1702, 1703, 1708, 1696, 1714, 1700, 1716,
-
- 1722, 1734, 1736, 0, 1737, 1750, 1735, 1751, 1742, 1753,
- 0, 1754, 1735, 1757, 1748, 0, 0, 1743, 0, 1744,
- 1762, 1747, 1766, 1760, 0, 0, 1757, 1765, 1763, 1757,
- 0, 1761, 1795, 1750, 0, 1772, 1780, 0, 0, 1797,
- 1792, 1805, 173, 1792, 1796, 1789, 1799, 1811, 0, 1801,
- 0, 1802, 1796, 1807, 1812, 0, 1817, 1804, 1819, 1812,
- 0, 1813, 1808, 0, 0, 1805, 0, 0, 1820, 1825,
- 0, 1814, 1838, 1852, 1851, 1852, 1853, 0, 1850, 1848,
- 1841, 1855, 1844, 1859, 1845, 1861, 1862, 0, 1859, 1848,
- 1855, 1870, 1859, 1853, 1862, 0, 1855, 1858, 1865, 1867,
-
- 1867, 0, 1899, 0, 1891, 1903, 1904, 1907, 1904, 1907,
- 1893, 1910, 0, 0, 0, 1910, 1900, 1897, 1913, 1916,
- 0, 1902, 1903, 1901, 1905, 1919, 1920, 1914, 0, 1916,
- 1953, 1917, 1931, 1914, 0, 0, 0, 1949, 1956, 1948,
- 1941, 0, 1957, 1948, 1955, 1960, 0, 0, 0, 0,
+ 130, 337, 145, 249, 161, 336, 346, 202, 177, 273,
+ 398, 195, 227, 0, 415, 382, 219, 256, 259, 0,
+ 437, 285, 300, 451, 389, 312, 751, 357, 355, 483,
+ 426, 797, 480, 271, 393, 429, 474, 485, 489, 476,
+
+ 501, 501, 529, 522, 67, 519, 521, 525, 528, 523,
+ 529, 663, 0, 593, 664, 711, 532, 533, 0, 533,
+ 552, 748, 553, 603, 276, 585, 609, 652, 697, 746,
+ 803, 632, 698, 652, 766, 794, 647, 801, 654, 665,
+ 707, 707, 728, 741, 783, 734, 801, 731, 790, 837,
+ 846, 835, 834, 846, 838, 839, 845, 854, 869, 885,
+ 898, 875, 859, 885, 887, 885, 904, 913, 904, 900,
+ 934, 929, 912, 941, 943, 912, 947, 945, 945, 940,
+ 962, 955, 943, 944, 953, 968, 959, 0, 954, 987,
+ 978, 991, 212, 1017, 0, 2836, 2836, 1080, 999, 0,
+
+ 0, 1042, 0, 1052, 1029, 711, 1061, 1094, 0, 986,
+ 0, 1062, 1055, 0, 1068, 1070, 1071, 1073, 1092, 1086,
+ 1099, 1087, 0, 1087, 0, 1085, 232, 1093, 1107, 1089,
+ 1106, 1111, 0, 1101, 1115, 0, 1118, 1108, 1126, 1122,
+ 1113, 1135, 1132, 1126, 1135, 1135, 1148, 1151, 1137, 1143,
+ 1149, 1143, 1135, 1139, 1140, 1152, 1153, 1168, 1155, 1168,
+ 1165, 0, 1178, 1186, 1167, 1188, 1180, 1196, 1182, 1198,
+ 1191, 0, 0, 1196, 1186, 1198, 0, 1194, 1208, 1192,
+ 0, 1196, 1198, 1216, 1199, 1214, 226, 0, 1200, 1209,
+ 1213, 1223, 1237, 1220, 0, 1238, 1225, 1249, 1250, 0,
+
+ 1251, 1249, 1248, 1253, 1251, 1240, 1252, 1244, 0, 1261,
+ 1257, 1255, 1266, 1266, 1255, 223, 1251, 1272, 1271, 1283,
+ 1285, 1271, 1272, 1289, 1301, 0, 0, 1290, 1292, 0,
+ 1296, 1297, 1290, 1302, 1298, 0, 1296, 1308, 1314, 1311,
+ 1316, 1317, 0, 1318, 0, 1304, 1320, 0, 1324, 1322,
+ 0, 1304, 1321, 1335, 1340, 1341, 1323, 1339, 1337, 1339,
+ 1354, 1341, 1348, 1338, 1344, 0, 1346, 1353, 1362, 1361,
+ 1365, 1366, 1364, 1391, 0, 1357, 1378, 1377, 1378, 1401,
+ 1392, 1397, 1407, 1397, 1401, 1410, 0, 1415, 1401, 1418,
+ 1416, 1403, 1419, 1423, 1426, 1429, 1416, 1422, 1416, 1424,
+
+ 1445, 1447, 1429, 0, 1453, 1441, 1450, 0, 1447, 1444,
+ 1462, 1461, 1460, 1460, 1455, 1466, 1468, 1461, 1468, 1463,
+ 1474, 1479, 1463, 1461, 0, 1463, 1466, 1473, 1482, 1539,
+ 1591, 1575, 219, 0, 0, 1572, 1584, 1597, 2836, 0,
+ 1521, 1607, 1616, 1634, 1643, 1597, 1604, 1616, 1637, 1622,
+ 1643, 1637, 1636, 1642, 1647, 1628, 1631, 1647, 0, 1655,
+ 183, 0, 0, 0, 1643, 1644, 1650, 1649, 1647, 1661,
+ 1659, 1659, 1663, 1665, 1655, 1649, 1690, 1657, 0, 1686,
+ 1681, 0, 0, 1682, 0, 1688, 1701, 1702, 1689, 1701,
+ 0, 1686, 1705, 1690, 0, 1692, 0, 1697, 1701, 1703,
+
+ 1707, 1694, 1713, 1699, 1715, 1744, 1735, 1735, 0, 1736,
+ 1749, 1734, 1750, 1741, 1752, 0, 1753, 1734, 1756, 1747,
+ 0, 0, 1742, 0, 1743, 1761, 1746, 1765, 1759, 0,
+ 0, 1756, 1764, 1762, 1756, 0, 1760, 1794, 1748, 0,
+ 1770, 1781, 0, 0, 1796, 1791, 1804, 181, 1791, 1795,
+ 1788, 1798, 1810, 0, 1800, 0, 1801, 1795, 1806, 1811,
+ 0, 1816, 1803, 1818, 1811, 0, 1812, 1807, 0, 0,
+ 1804, 0, 0, 1819, 1823, 0, 1812, 1837, 1853, 1850,
+ 1843, 1852, 1853, 0, 1844, 1851, 1849, 170, 1842, 1856,
+ 1845, 1860, 1846, 1862, 1863, 0, 1860, 1849, 1856, 1871,
+
+ 1860, 1854, 1863, 0, 1856, 1860, 1867, 1890, 1892, 0,
+ 1902, 0, 1894, 1904, 1905, 1908, 1905, 1908, 1909, 1895,
+ 1912, 0, 0, 0, 1912, 1902, 1899, 1915, 1918, 0,
+ 1904, 1905, 1905, 1907, 1922, 1923, 1918, 0, 1920, 1954,
+ 1946, 1958, 1941, 0, 0, 0, 1954, 1961, 1951, 1944,
+ 0, 1960, 1951, 1958, 1963, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 170, 1958, 123, 0, 0,
- 1955, 2007, 2016, 2024, 2033, 2041, 2088, 0, 0, 1961,
- 1964, 1952, 0, 2020, 2038, 2029, 2041, 0, 0, 0,
-
- 2038, 0, 0, 2042, 2023, 0, 2034, 2031, 2032, 2050,
- 2044, 2062, 2045, 2050, 2046, 2075, 2079, 2090, 2091, 0,
- 2095, 2084, 2080, 2081, 2096, 2081, 2102, 2095, 0, 2104,
- 2101, 2101, 2092, 2102, 2103, 2108, 0, 2103, 2111, 2112,
- 0, 2098, 2131, 2126, 2128, 2147, 2134, 0, 2132, 0,
- 2133, 0, 0, 2137, 0, 2144, 2134, 2146, 2144, 2148,
- 2153, 2141, 2140, 2156, 2153, 2146, 2157, 2150, 0, 2162,
- 2162, 2159, 2149, 0, 2152, 0, 2189, 0, 2180, 2194,
- 0, 2176, 2195, 2184, 2196, 2200, 2181, 2192, 2204, 2194,
- 0, 2191, 2190, 2197, 2192, 0, 2195, 2196, 0, 2212,
-
- 0, 2211, 2202, 2215, 2201, 0, 2217, 2203, 2219, 2230,
- 2236, 2248, 2236, 0, 2232, 2249, 0, 2250, 2255, 2250,
- 0, 2238, 0, 2245, 2240, 2256, 2258, 0, 0, 0,
- 0, 2255, 2244, 2260, 2261, 2262, 2249, 2262, 2257, 0,
- 2270, 0, 2268, 2265, 2269, 2281, 2286, 2295, 2300, 2300,
- 2301, 0, 2289, 2293, 2285, 2307, 0, 0, 0, 2306,
- 2061, 2320, 2346, 2354, 0, 2362, 2390, 0, 2338, 2357,
- 2358, 2349, 0, 0, 0, 2364, 2361, 0, 2350, 0,
- 2369, 0, 0, 2371, 0, 2368, 2358, 0, 2368, 2366,
- 120, 2378, 2379, 2405, 2406, 2392, 2403, 2394, 2396, 2396,
-
- 2402, 0, 0, 2416, 0, 2399, 2405, 2417, 2402, 2404,
- 0, 2409, 2421, 2417, 2422, 0, 2410, 0, 0, 114,
- 2414, 2421, 2430, 0, 2429, 0, 0, 0, 2430, 2440,
- 2440, 2444, 2449, 2459, 2447, 2452, 2458, 2464, 0, 0,
- 2464, 0, 2461, 0, 2466, 0, 0, 2469, 0, 0,
- 0, 0, 0, 0, 0, 0, 2472, 2456, 2461, 2458,
- 2455, 2458, 2459, 2479, 0, 0, 2476, 2470, 2463, 0,
- 0, 2477, 0, 2476, 2492, 0, 2494, 0, 0, 2507,
- 0, 2511, 2512, 0, 2516, 0, 2498, 2500, 2505, 0,
- 0, 2520, 2510, 0, 2520, 0, 0, 2510, 0, 2524,
-
- 0, 0, 0, 0, 2521, 2508, 0, 0, 2527, 2517,
- 2518, 2520, 0, 2523, 2529, 0, 2530, 2517, 2520, 2536,
- 2563, 0, 0, 2545, 2547, 0, 2547, 2567, 2560, 2550,
- 0, 0, 0, 0, 2553, 0, 2569, 2572, 2565, 2570,
- 2562, 2574, 2564, 2560, 2568, 2576, 0, 2581, 2563, 0,
- 0, 0, 2569, 0, 2571, 2581, 0, 2569, 2576, 0,
- 0, 2580, 2611, 2608, 2593, 2599, 0, 2615, 2612, 2617,
- 2617, 0, 2615, 2599, 0, 0, 2614, 2622, 0, 2616,
- 2611, 2621, 2611, 0, 2620, 2615, 0, 2620, 2614, 2631,
- 0, 2636, 0, 0, 0, 0, 2626, 2636, 2635, 0,
-
- 0, 2621, 2650, 0, 0, 0, 2655, 2669, 0, 0,
- 0, 0, 0, 2662, 0, 2659, 2672, 2660, 2671, 2658,
- 0, 0, 2661, 0, 2663, 0, 2670, 0, 2665, 0,
- 2672, 2669, 0, 2682, 0, 2680, 2680, 2666, 0, 0,
- 0, 0, 2668, 0, 2676, 2684, 2685, 0, 2686, 0,
- 2678, 2681, 2704, 0, 2709, 0, 2713, 0, 2703, 2710,
- 2710, 2712, 2724, 2727, 2726, 0, 2716, 2726, 0, 0,
- 0, 0, 2713, 2712, 0, 2714, 0, 2734, 0, 0,
- 2722, 0, 0, 2725, 2718, 2736, 0, 0, 2728, 2732,
- 2728, 0, 0, 2734, 2719, 2724, 2769, 0, 2770, 0,
-
- 2755, 0, 0, 0, 2831, 74, 2818, 2820, 2822, 2824,
- 2826, 2828
+ 0, 0, 0, 0, 123, 1961, 121, 0, 0, 1958,
+ 2008, 2017, 2025, 2034, 2042, 2089, 0, 0, 1964, 2036,
+
+ 2024, 0, 2023, 2041, 2032, 2044, 0, 0, 0, 2041,
+ 0, 0, 2045, 2026, 0, 2037, 2034, 2045, 2063, 2047,
+ 2065, 2048, 2079, 2075, 2078, 2082, 2093, 2094, 0, 2098,
+ 2087, 2088, 2084, 2085, 2100, 2085, 2106, 2100, 0, 2109,
+ 2107, 2105, 2096, 2106, 2107, 2113, 0, 2107, 2141, 2142,
+ 0, 2128, 2135, 2130, 2132, 2151, 2138, 0, 2136, 0,
+ 2137, 0, 0, 2141, 0, 2148, 2138, 2150, 2148, 2152,
+ 2157, 2145, 2144, 2160, 2157, 2150, 2161, 2154, 0, 2166,
+ 2166, 2189, 2179, 0, 2182, 0, 2193, 0, 2184, 2198,
+ 0, 2180, 2199, 2188, 2200, 2204, 2185, 2196, 2208, 2198,
+
+ 0, 2195, 2194, 2201, 2196, 0, 2199, 0, 2200, 0,
+ 0, 2216, 0, 2216, 2217, 2217, 2208, 2247, 2233, 0,
+ 2249, 2235, 2251, 2236, 2242, 2254, 2242, 0, 2238, 2255,
+ 0, 2256, 2261, 2256, 0, 2244, 0, 2251, 2246, 2262,
+ 0, 2264, 0, 0, 0, 0, 2261, 2250, 2266, 2267,
+ 2268, 0, 2255, 2268, 2289, 0, 2302, 0, 2300, 2297,
+ 2301, 2287, 2292, 2301, 2306, 2306, 2307, 0, 2295, 2299,
+ 2291, 2313, 0, 0, 0, 2312, 2062, 2326, 2352, 2360,
+ 0, 2368, 2396, 0, 2344, 2363, 2364, 2355, 0, 0,
+ 0, 2370, 2367, 0, 2356, 0, 2375, 0, 0, 2377,
+
+ 0, 2374, 2364, 0, 2374, 2372, 0, 2384, 2385, 2411,
+ 0, 2412, 2398, 2409, 2400, 2402, 2402, 2408, 0, 0,
+ 2422, 0, 2405, 2411, 2423, 2408, 2410, 0, 2415, 2427,
+ 2423, 2428, 0, 2416, 0, 0, 114, 2420, 2427, 2436,
+ 0, 2435, 0, 0, 0, 2436, 2446, 2446, 2450, 2455,
+ 2465, 2453, 2458, 2464, 2470, 0, 0, 2470, 0, 2467,
+ 0, 2472, 0, 0, 2475, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2478, 0, 0, 2462, 2467, 2464, 2461,
+ 2464, 2465, 2485, 0, 0, 2482, 2476, 2469, 0, 0,
+ 2483, 0, 2482, 2498, 0, 2500, 0, 0, 2513, 0,
+
+ 2517, 2518, 0, 2522, 0, 2504, 2506, 2511, 0, 0,
+ 2526, 2516, 0, 2526, 0, 0, 2516, 0, 2530, 0,
+ 0, 0, 0, 2527, 2514, 0, 0, 2533, 2523, 2524,
+ 2526, 0, 2529, 2535, 0, 2522, 2525, 2541, 2542, 0,
+ 0, 2550, 2552, 0, 2552, 2572, 2565, 2555, 0, 0,
+ 0, 0, 2558, 0, 2574, 2577, 2570, 2575, 2567, 2579,
+ 2569, 2565, 2573, 2581, 0, 2586, 2568, 0, 0, 0,
+ 2574, 0, 2576, 2586, 0, 2574, 2581, 0, 0, 2585,
+ 2590, 2613, 2598, 2604, 0, 2620, 2617, 2622, 2622, 0,
+ 2620, 2604, 0, 0, 2619, 2627, 0, 2621, 2616, 2626,
+
+ 2616, 0, 2625, 2620, 0, 2625, 2619, 2636, 0, 2641,
+ 0, 0, 0, 2631, 2641, 2640, 0, 0, 2626, 2629,
+ 0, 0, 0, 2660, 2674, 0, 0, 0, 0, 0,
+ 2667, 0, 2664, 2677, 2665, 2676, 2663, 0, 0, 2666,
+ 0, 2668, 0, 2675, 0, 2670, 0, 2677, 2674, 0,
+ 2687, 0, 2685, 2685, 2671, 0, 0, 0, 0, 2673,
+ 0, 2681, 2689, 2690, 0, 2691, 0, 2683, 2686, 2683,
+ 0, 2714, 0, 2718, 0, 2708, 2715, 2715, 2717, 2729,
+ 2732, 2731, 0, 2721, 2731, 0, 0, 0, 0, 2718,
+ 2717, 0, 2719, 0, 2739, 0, 0, 2727, 0, 0,
+
+ 2730, 2723, 2741, 0, 0, 2733, 2737, 2733, 0, 0,
+ 2739, 2724, 2729, 2748, 0, 2775, 0, 2760, 0, 0,
+ 0, 2836, 74, 2823, 2825, 2827, 2829, 2831, 2833
} ;
-static yyconst flex_int16_t yy_def[1213] =
+static yyconst flex_int16_t yy_def[1230] =
{ 0,
- 1205, 1, 1205, 1205, 1205, 1205, 1206, 1207, 1208, 1206,
- 1206, 1206, 12, 12, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1209,
- 1205, 1206, 1210, 1207, 1206, 1211, 1208, 1206, 1206, 12,
- 1206, 1206, 12, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1212, 1209, 1206, 1205, 1205, 1206, 197, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 58, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1205, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1205, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
- 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
-
- 1206, 1206, 1206, 1206, 0, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205
+ 1222, 1, 1222, 1222, 1222, 1222, 1223, 1224, 1225, 1223,
+ 1223, 1223, 12, 12, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1226,
+ 1222, 1223, 1227, 1224, 1223, 1228, 1225, 1223, 1223, 12,
+ 1223, 1223, 12, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1229, 1226, 1223, 1222, 1222, 1223, 198, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 58, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1222,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1222, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223,
+ 1223, 0, 1222, 1222, 1222, 1222, 1222, 1222, 1222
} ;
-static yyconst flex_int16_t yy_nxt[2904] =
+static yyconst flex_int16_t yy_nxt[2909] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 10, 11, 12,
13, 13, 14, 13, 13, 13, 13, 7, 15, 16,
@@ -799,321 +803,321 @@ static yyconst flex_int16_t yy_nxt[2904] =
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
7, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 7, 43, 43, 43, 42, 45, 46, 46, 46,
- 285, 286, 48, 49, 50, 50, 50, 50, 50, 50,
+ 287, 288, 48, 49, 50, 50, 50, 50, 50, 50,
50, 50, 51, 51, 51, 51, 51, 51, 51, 51,
52, 53, 53, 53, 53, 53, 53, 53, 53, 54,
42, 59, 91, 55, 56, 114, 92, 57, 126, 115,
- 93, 1040, 176, 116, 177, 188, 42, 178, 209, 117,
- 94, 42, 1017, 58, 859, 186, 42, 59, 91, 55,
- 56, 114, 92, 57, 126, 115, 93, 187, 176, 116,
- 177, 188, 42, 178, 209, 117, 94, 42, 109, 58,
- 60, 186, 110, 210, 43, 43, 43, 61, 45, 111,
- 62, 63, 64, 187, 65, 112, 66, 67, 214, 68,
- 69, 857, 774, 113, 109, 189, 60, 190, 110, 210,
- 702, 191, 678, 61, 218, 111, 62, 63, 64, 225,
-
- 65, 112, 66, 67, 214, 68, 69, 70, 136, 113,
- 127, 189, 137, 190, 128, 71, 72, 191, 129, 73,
- 218, 74, 138, 75, 130, 225, 76, 229, 139, 77,
- 78, 543, 515, 457, 136, 79, 127, 80, 137, 223,
- 128, 71, 72, 224, 129, 73, 435, 74, 138, 75,
- 130, 230, 76, 229, 139, 77, 78, 192, 192, 192,
- 234, 79, 179, 80, 81, 223, 180, 215, 82, 224,
- 181, 83, 84, 216, 235, 85, 86, 230, 87, 88,
- 217, 89, 236, 314, 90, 271, 234, 226, 179, 196,
- 81, 195, 180, 215, 82, 41, 181, 83, 84, 216,
-
- 235, 85, 86, 125, 87, 88, 217, 89, 236, 131,
- 90, 95, 96, 132, 237, 140, 241, 133, 242, 141,
- 97, 134, 98, 135, 99, 100, 101, 142, 194, 143,
- 41, 144, 102, 1205, 1205, 131, 1205, 95, 96, 132,
- 237, 140, 241, 133, 242, 141, 97, 134, 98, 135,
- 99, 100, 101, 142, 243, 143, 219, 144, 102, 103,
- 46, 46, 46, 211, 152, 48, 212, 104, 153, 105,
- 154, 220, 221, 106, 213, 248, 107, 255, 155, 108,
- 243, 1205, 219, 222, 156, 103, 1205, 261, 262, 211,
- 152, 1205, 212, 104, 153, 105, 154, 220, 221, 106,
-
- 213, 248, 107, 255, 155, 108, 118, 119, 1205, 222,
- 156, 246, 120, 261, 262, 247, 121, 122, 227, 244,
- 1205, 123, 272, 124, 197, 197, 197, 197, 197, 197,
- 197, 197, 118, 119, 228, 1205, 245, 246, 120, 231,
- 273, 247, 121, 122, 227, 244, 232, 123, 272, 124,
- 145, 182, 233, 183, 146, 274, 184, 147, 148, 185,
- 228, 238, 245, 239, 149, 231, 273, 150, 1205, 240,
- 151, 1205, 232, 1205, 275, 1205, 145, 182, 233, 183,
- 146, 274, 184, 147, 148, 185, 1205, 238, 256, 239,
- 149, 1205, 1205, 150, 258, 240, 151, 157, 257, 158,
-
- 275, 159, 276, 277, 160, 161, 269, 278, 162, 163,
- 259, 164, 260, 165, 256, 166, 167, 168, 270, 279,
- 258, 169, 1205, 157, 257, 158, 1205, 159, 276, 277,
- 160, 161, 269, 278, 162, 163, 259, 164, 260, 165,
- 280, 166, 167, 168, 270, 279, 1205, 169, 170, 281,
- 287, 282, 171, 288, 289, 172, 290, 293, 291, 283,
- 294, 295, 173, 284, 305, 174, 280, 292, 306, 296,
- 307, 308, 175, 1205, 170, 281, 287, 282, 171, 288,
- 289, 172, 290, 293, 291, 283, 294, 295, 173, 284,
- 305, 174, 1205, 292, 306, 296, 307, 308, 175, 198,
-
- 50, 50, 50, 50, 50, 50, 50, 50, 203, 203,
- 203, 203, 203, 203, 203, 203, 204, 204, 204, 204,
- 204, 204, 204, 204, 297, 312, 199, 313, 315, 298,
- 205, 205, 42, 206, 206, 206, 206, 206, 206, 206,
- 206, 207, 207, 207, 207, 207, 207, 207, 207, 1205,
- 297, 312, 199, 313, 315, 298, 1205, 316, 42, 51,
- 51, 51, 51, 51, 51, 51, 51, 302, 1205, 1205,
- 303, 200, 201, 204, 204, 204, 204, 204, 204, 204,
- 204, 299, 304, 316, 1205, 1205, 1205, 317, 322, 300,
- 323, 335, 301, 302, 324, 318, 303, 200, 201, 51,
-
- 51, 51, 51, 51, 51, 51, 51, 299, 304, 1205,
- 325, 202, 56, 317, 322, 300, 323, 335, 301, 1205,
- 324, 318, 1205, 1205, 1205, 1205, 1205, 1205, 347, 319,
- 309, 331, 332, 310, 320, 321, 325, 202, 56, 208,
- 208, 208, 208, 208, 208, 208, 208, 311, 208, 208,
- 208, 208, 208, 208, 347, 319, 309, 331, 332, 310,
- 320, 321, 333, 1205, 334, 348, 1205, 1205, 343, 344,
- 1205, 349, 1205, 311, 208, 208, 208, 208, 208, 208,
- 249, 250, 251, 252, 253, 1205, 350, 1205, 333, 254,
- 334, 348, 340, 341, 343, 344, 345, 349, 326, 351,
-
- 1205, 352, 327, 342, 1205, 346, 249, 250, 251, 252,
- 253, 328, 350, 329, 330, 254, 263, 336, 340, 341,
- 264, 265, 345, 1205, 326, 351, 266, 352, 327, 342,
- 267, 346, 337, 338, 268, 339, 356, 328, 357, 329,
- 330, 358, 263, 336, 353, 366, 264, 265, 354, 355,
- 367, 1205, 266, 1205, 371, 1205, 267, 374, 337, 338,
- 268, 339, 356, 359, 357, 1205, 360, 358, 363, 1205,
- 353, 366, 364, 361, 354, 355, 367, 362, 365, 368,
- 371, 372, 378, 374, 1205, 391, 373, 1205, 369, 359,
- 379, 370, 360, 375, 363, 376, 380, 1205, 364, 361,
-
- 1205, 1205, 377, 362, 365, 368, 1205, 372, 378, 398,
- 381, 391, 373, 389, 369, 382, 379, 370, 385, 375,
- 394, 376, 380, 383, 399, 390, 386, 384, 377, 392,
- 387, 393, 388, 402, 396, 398, 381, 397, 395, 389,
- 400, 382, 403, 401, 385, 1205, 394, 404, 413, 383,
- 399, 390, 386, 384, 405, 392, 387, 393, 388, 402,
- 396, 407, 409, 397, 395, 406, 400, 418, 403, 401,
- 408, 410, 411, 404, 413, 414, 419, 424, 420, 415,
- 405, 425, 426, 416, 421, 422, 427, 407, 409, 428,
- 417, 406, 412, 418, 430, 431, 408, 410, 411, 429,
-
- 423, 414, 419, 424, 420, 415, 432, 425, 426, 416,
- 421, 422, 427, 433, 434, 428, 417, 1205, 412, 1205,
- 430, 431, 192, 192, 192, 429, 423, 202, 56, 1205,
- 1205, 1205, 432, 1205, 1205, 1205, 1205, 1205, 442, 433,
- 434, 199, 437, 437, 1205, 438, 438, 438, 438, 438,
- 438, 438, 438, 202, 56, 203, 203, 203, 203, 203,
- 203, 203, 203, 439, 442, 443, 444, 199, 204, 204,
- 204, 204, 204, 204, 204, 204, 206, 206, 206, 206,
- 206, 206, 206, 206, 445, 446, 447, 448, 449, 440,
- 452, 443, 444, 194, 197, 197, 197, 197, 197, 197,
-
- 197, 197, 1205, 454, 453, 455, 200, 201, 1205, 1205,
- 445, 446, 447, 448, 449, 440, 452, 456, 458, 459,
- 436, 206, 206, 206, 206, 206, 206, 206, 206, 454,
- 453, 455, 200, 201, 207, 207, 207, 207, 207, 207,
- 207, 207, 450, 456, 458, 459, 436, 460, 451, 461,
- 462, 463, 464, 467, 465, 441, 466, 468, 469, 470,
- 471, 472, 473, 474, 475, 476, 477, 478, 450, 479,
- 1205, 484, 1205, 460, 451, 461, 462, 463, 464, 467,
- 465, 441, 466, 468, 469, 470, 471, 472, 473, 474,
- 475, 476, 477, 478, 480, 479, 482, 484, 481, 483,
-
- 485, 486, 487, 488, 489, 490, 492, 493, 491, 494,
- 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
- 480, 505, 482, 506, 481, 483, 485, 486, 487, 488,
- 489, 490, 492, 493, 491, 494, 495, 496, 497, 498,
- 499, 500, 501, 502, 503, 504, 507, 505, 508, 506,
- 509, 510, 511, 513, 514, 516, 517, 518, 519, 520,
- 521, 522, 523, 526, 524, 527, 528, 512, 529, 530,
- 531, 532, 507, 525, 508, 533, 509, 510, 511, 513,
- 514, 516, 517, 518, 519, 520, 521, 522, 523, 526,
- 524, 527, 528, 512, 529, 530, 531, 532, 534, 525,
-
- 535, 533, 536, 537, 539, 540, 541, 542, 544, 538,
- 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
- 555, 556, 557, 558, 534, 559, 535, 560, 536, 537,
- 539, 540, 541, 542, 544, 538, 545, 546, 547, 548,
- 549, 550, 551, 552, 553, 554, 555, 556, 557, 558,
- 561, 559, 562, 560, 563, 564, 565, 566, 567, 568,
- 569, 570, 571, 572, 573, 574, 576, 577, 578, 579,
- 580, 581, 582, 583, 584, 575, 561, 585, 562, 589,
- 563, 564, 565, 566, 567, 568, 569, 570, 571, 572,
- 573, 574, 576, 577, 578, 579, 580, 581, 582, 583,
-
- 584, 575, 586, 585, 590, 589, 591, 592, 587, 593,
- 596, 588, 597, 594, 598, 599, 600, 602, 603, 605,
- 604, 606, 607, 595, 608, 609, 610, 601, 586, 611,
- 590, 612, 591, 592, 587, 593, 596, 588, 597, 594,
- 598, 599, 600, 602, 603, 605, 604, 606, 607, 595,
- 608, 609, 610, 601, 613, 611, 614, 612, 615, 616,
- 617, 618, 619, 620, 621, 622, 623, 624, 625, 626,
- 627, 628, 629, 630, 631, 632, 633, 634, 635, 636,
- 613, 637, 614, 638, 615, 616, 617, 618, 619, 620,
- 621, 622, 623, 624, 625, 626, 627, 628, 629, 630,
-
- 631, 632, 633, 634, 635, 636, 639, 637, 640, 638,
- 641, 642, 643, 644, 645, 646, 647, 648, 438, 438,
- 438, 438, 438, 438, 438, 438, 1205, 1205, 1205, 1205,
- 1205, 1205, 639, 1205, 640, 1205, 641, 642, 643, 644,
- 645, 646, 647, 648, 42, 42, 42, 42, 42, 42,
- 649, 42, 42, 42, 42, 42, 42, 42, 42, 650,
- 651, 652, 653, 654, 655, 656, 657, 658, 659, 660,
- 661, 662, 663, 664, 665, 666, 667, 668, 669, 670,
- 671, 672, 673, 674, 675, 650, 651, 652, 653, 654,
- 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
-
- 665, 666, 667, 668, 669, 670, 671, 672, 673, 674,
- 675, 42, 42, 676, 677, 679, 680, 681, 438, 438,
- 438, 438, 438, 438, 438, 438, 682, 683, 683, 683,
- 683, 683, 683, 683, 683, 1205, 688, 689, 690, 676,
- 677, 679, 680, 681, 684, 685, 685, 685, 685, 685,
- 685, 685, 685, 686, 687, 687, 687, 687, 687, 687,
- 687, 687, 688, 689, 690, 691, 692, 693, 694, 695,
- 696, 697, 698, 699, 700, 701, 703, 704, 705, 706,
- 707, 708, 710, 711, 712, 713, 714, 715, 1205, 709,
- 718, 691, 692, 693, 694, 695, 696, 697, 698, 699,
-
- 700, 701, 703, 704, 705, 706, 707, 708, 710, 711,
- 712, 713, 714, 715, 716, 709, 718, 719, 720, 721,
- 722, 723, 726, 728, 729, 727, 730, 717, 731, 732,
- 733, 734, 737, 735, 738, 724, 739, 740, 725, 736,
- 716, 741, 742, 719, 720, 721, 722, 723, 726, 728,
- 729, 727, 730, 717, 731, 732, 733, 734, 737, 735,
- 738, 724, 739, 740, 725, 736, 743, 741, 742, 744,
- 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
- 755, 756, 757, 758, 759, 760, 761, 762, 763, 764,
- 765, 1205, 743, 768, 769, 744, 745, 746, 747, 748,
-
- 749, 750, 751, 752, 753, 754, 755, 756, 757, 758,
- 759, 760, 761, 762, 763, 764, 765, 766, 770, 768,
- 769, 771, 772, 773, 775, 776, 777, 767, 778, 779,
- 780, 781, 782, 783, 784, 785, 786, 787, 788, 789,
- 790, 791, 792, 766, 770, 793, 794, 771, 772, 773,
- 775, 776, 777, 767, 778, 779, 780, 781, 782, 783,
- 784, 785, 786, 787, 788, 789, 790, 791, 792, 795,
- 796, 793, 794, 797, 798, 799, 800, 801, 802, 803,
- 804, 805, 806, 807, 808, 809, 810, 811, 812, 813,
- 814, 815, 816, 817, 818, 795, 796, 819, 820, 797,
-
- 798, 799, 800, 801, 802, 803, 804, 805, 806, 807,
- 808, 809, 810, 811, 812, 813, 814, 815, 816, 817,
- 818, 821, 822, 819, 820, 823, 824, 825, 826, 827,
- 828, 829, 830, 831, 832, 833, 834, 835, 836, 837,
- 838, 839, 840, 841, 842, 1205, 845, 821, 822, 846,
- 847, 823, 824, 825, 826, 827, 828, 829, 830, 831,
- 832, 833, 834, 835, 836, 837, 838, 839, 840, 841,
- 842, 843, 845, 848, 849, 846, 847, 850, 851, 852,
- 853, 854, 855, 858, 860, 869, 856, 870, 871, 844,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 843, 1205, 848,
-
- 849, 1205, 1205, 850, 851, 852, 853, 854, 855, 858,
- 860, 869, 856, 870, 871, 844, 861, 861, 861, 861,
- 861, 861, 861, 861, 862, 683, 683, 683, 683, 683,
- 683, 683, 683, 863, 863, 863, 863, 863, 863, 863,
- 863, 864, 685, 685, 685, 685, 685, 685, 685, 685,
- 866, 866, 866, 866, 866, 866, 866, 866, 872, 873,
- 874, 875, 876, 877, 878, 879, 880, 881, 882, 865,
- 861, 861, 861, 861, 861, 861, 861, 861, 1205, 883,
- 884, 885, 886, 887, 872, 873, 874, 875, 876, 877,
- 878, 879, 880, 881, 882, 865, 867, 687, 687, 687,
-
- 687, 687, 687, 687, 687, 883, 884, 885, 886, 887,
- 888, 889, 890, 891, 892, 895, 896, 897, 898, 899,
- 900, 901, 902, 903, 868, 893, 904, 905, 906, 907,
- 908, 894, 909, 910, 911, 912, 888, 889, 890, 891,
- 892, 895, 896, 897, 898, 899, 900, 901, 902, 903,
- 868, 893, 904, 905, 906, 907, 908, 894, 909, 910,
- 911, 912, 913, 914, 915, 916, 917, 918, 919, 920,
- 921, 922, 923, 924, 925, 926, 927, 928, 929, 930,
- 931, 932, 933, 934, 935, 936, 937, 938, 913, 914,
- 915, 916, 917, 918, 919, 920, 921, 922, 923, 924,
-
- 925, 926, 927, 928, 929, 930, 931, 932, 933, 934,
- 935, 936, 937, 938, 939, 940, 941, 942, 943, 944,
- 945, 946, 947, 948, 949, 950, 951, 952, 953, 954,
- 955, 956, 957, 958, 959, 960, 961, 962, 963, 964,
- 939, 940, 941, 942, 943, 944, 945, 946, 947, 948,
- 949, 950, 951, 952, 953, 954, 955, 956, 957, 958,
- 959, 960, 961, 962, 963, 964, 965, 966, 967, 968,
- 969, 970, 971, 972, 973, 974, 975, 976, 977, 978,
- 979, 980, 981, 982, 983, 984, 985, 986, 987, 988,
- 989, 990, 965, 966, 967, 968, 969, 970, 971, 972,
-
- 973, 974, 975, 976, 977, 978, 979, 980, 981, 982,
- 983, 984, 985, 986, 987, 988, 989, 990, 991, 992,
- 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 861,
- 861, 861, 861, 861, 861, 861, 861, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 991, 992, 993, 994, 995, 996,
- 997, 998, 999, 1000, 1001, 863, 863, 863, 863, 863,
- 863, 863, 863, 863, 863, 863, 863, 863, 863, 863,
- 863, 866, 866, 866, 866, 866, 866, 866, 866, 1205,
- 1205, 1004, 1002, 1005, 1006, 1007, 1008, 1009, 1010, 1011,
- 865, 1012, 1013, 1014, 1015, 1016, 1018, 1019, 1003, 866,
-
- 866, 866, 866, 866, 866, 866, 866, 1004, 1002, 1005,
- 1006, 1007, 1008, 1009, 1010, 1011, 865, 1012, 1013, 1014,
- 1015, 1016, 1018, 1019, 1003, 1020, 868, 1022, 1023, 1024,
- 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1021, 1033,
- 1034, 1035, 1036, 1037, 1038, 1039, 1041, 1042, 1043, 1044,
- 1045, 1020, 868, 1022, 1023, 1024, 1025, 1026, 1027, 1028,
- 1029, 1030, 1031, 1032, 1021, 1033, 1034, 1035, 1036, 1037,
- 1038, 1039, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048,
- 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058,
- 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068,
-
- 1069, 1070, 1071, 1046, 1047, 1048, 1049, 1050, 1051, 1052,
- 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062,
- 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072,
- 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,
- 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092,
- 1093, 1094, 1095, 1096, 1097, 1072, 1073, 1074, 1075, 1076,
- 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
- 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
- 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106,
- 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116,
-
- 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1098, 1099, 1100,
- 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110,
- 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120,
- 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130,
- 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140,
- 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1124,
- 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
- 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
- 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154,
- 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164,
-
- 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174,
- 1175, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158,
- 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168,
- 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178,
- 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188,
- 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198,
- 1199, 1200, 1201, 1176, 1177, 1178, 1179, 1180, 1181, 1182,
- 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192,
- 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202,
- 1203, 1204, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
-
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1202, 1203, 1204, 44, 44,
- 47, 47, 193, 193, 43, 43, 46, 46, 192, 192,
- 3, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
-
- 1205, 1205, 1205
+ 93, 1058, 177, 116, 178, 189, 42, 179, 210, 117,
+ 94, 42, 875, 58, 873, 187, 42, 59, 91, 55,
+ 56, 114, 92, 57, 126, 115, 93, 188, 177, 116,
+ 178, 189, 42, 179, 210, 117, 94, 42, 109, 58,
+ 60, 187, 110, 211, 43, 43, 43, 61, 45, 111,
+ 62, 63, 64, 188, 65, 112, 66, 67, 215, 68,
+ 69, 814, 815, 113, 109, 190, 60, 191, 110, 211,
+ 784, 192, 711, 61, 219, 111, 62, 63, 64, 226,
+
+ 65, 112, 66, 67, 215, 68, 69, 70, 136, 113,
+ 127, 190, 137, 191, 128, 71, 72, 192, 129, 73,
+ 219, 74, 138, 75, 130, 226, 76, 230, 139, 77,
+ 78, 687, 548, 520, 136, 79, 127, 80, 137, 224,
+ 128, 71, 72, 225, 129, 73, 461, 74, 138, 75,
+ 130, 231, 76, 230, 139, 77, 78, 193, 193, 193,
+ 237, 79, 180, 80, 81, 224, 181, 216, 82, 225,
+ 182, 83, 84, 217, 238, 85, 86, 231, 87, 88,
+ 218, 89, 239, 439, 90, 316, 237, 273, 180, 227,
+ 81, 197, 181, 216, 82, 196, 182, 83, 84, 217,
+
+ 238, 85, 86, 41, 87, 88, 218, 89, 239, 131,
+ 90, 95, 96, 132, 243, 140, 244, 133, 245, 141,
+ 97, 134, 98, 135, 99, 100, 101, 142, 195, 143,
+ 125, 144, 102, 41, 1222, 131, 1222, 95, 96, 132,
+ 243, 140, 244, 133, 245, 141, 97, 134, 98, 135,
+ 99, 100, 101, 142, 250, 143, 220, 144, 102, 103,
+ 46, 46, 46, 212, 153, 48, 213, 104, 154, 105,
+ 155, 221, 222, 106, 214, 257, 107, 258, 156, 108,
+ 250, 1222, 220, 223, 157, 103, 1222, 259, 1222, 212,
+ 153, 1222, 213, 104, 154, 105, 155, 221, 222, 106,
+
+ 214, 257, 107, 258, 156, 108, 118, 119, 1222, 223,
+ 157, 248, 120, 259, 235, 249, 121, 122, 228, 236,
+ 1222, 123, 274, 124, 198, 198, 198, 198, 198, 198,
+ 198, 198, 118, 119, 229, 1222, 1222, 248, 120, 232,
+ 235, 249, 121, 122, 228, 236, 233, 123, 274, 124,
+ 145, 183, 234, 184, 146, 275, 185, 147, 148, 186,
+ 229, 149, 263, 264, 150, 232, 240, 151, 241, 246,
+ 152, 1222, 233, 1222, 242, 1222, 145, 183, 234, 184,
+ 146, 275, 185, 147, 148, 186, 247, 149, 263, 264,
+ 150, 1222, 240, 151, 241, 246, 152, 158, 271, 159,
+
+ 242, 160, 260, 276, 161, 162, 277, 278, 163, 164,
+ 272, 165, 247, 166, 279, 167, 168, 169, 261, 280,
+ 262, 170, 1222, 158, 271, 159, 1222, 160, 260, 276,
+ 161, 162, 277, 278, 163, 164, 272, 165, 281, 166,
+ 279, 167, 168, 169, 261, 280, 262, 170, 171, 282,
+ 289, 284, 172, 290, 291, 173, 292, 293, 283, 285,
+ 295, 296, 174, 286, 281, 175, 294, 307, 308, 309,
+ 310, 314, 176, 1222, 171, 282, 289, 284, 172, 290,
+ 291, 173, 292, 293, 283, 285, 295, 296, 174, 286,
+ 1222, 175, 294, 307, 308, 309, 310, 314, 176, 199,
+
+ 50, 50, 50, 50, 50, 50, 50, 50, 204, 204,
+ 204, 204, 204, 204, 204, 204, 205, 205, 205, 205,
+ 205, 205, 205, 205, 299, 315, 200, 317, 318, 300,
+ 206, 206, 42, 207, 207, 207, 207, 207, 207, 207,
+ 207, 208, 208, 208, 208, 208, 208, 208, 208, 1222,
+ 299, 315, 200, 317, 318, 300, 1222, 1222, 42, 51,
+ 51, 51, 51, 51, 51, 51, 51, 1222, 333, 334,
+ 337, 201, 202, 205, 205, 205, 205, 205, 205, 205,
+ 205, 297, 301, 319, 349, 1222, 1222, 345, 346, 298,
+ 302, 320, 350, 303, 333, 334, 337, 201, 202, 51,
+
+ 51, 51, 51, 51, 51, 51, 51, 297, 301, 319,
+ 349, 203, 56, 345, 346, 298, 302, 320, 350, 303,
+ 207, 207, 207, 207, 207, 207, 207, 207, 321, 335,
+ 351, 336, 304, 322, 323, 305, 352, 203, 56, 209,
+ 209, 209, 209, 209, 209, 209, 209, 306, 209, 209,
+ 209, 209, 209, 209, 321, 335, 351, 336, 304, 322,
+ 323, 305, 352, 1222, 324, 353, 325, 354, 311, 358,
+ 326, 312, 361, 306, 209, 209, 209, 209, 209, 209,
+ 251, 252, 253, 254, 255, 313, 327, 338, 1222, 256,
+ 324, 353, 325, 354, 311, 358, 326, 312, 361, 1222,
+
+ 1222, 1222, 339, 340, 1222, 341, 251, 252, 253, 254,
+ 255, 313, 327, 338, 355, 256, 265, 1222, 356, 357,
+ 266, 267, 362, 328, 342, 343, 268, 329, 339, 340,
+ 269, 341, 347, 359, 270, 344, 330, 1222, 331, 332,
+ 355, 348, 265, 360, 356, 357, 266, 267, 362, 328,
+ 342, 343, 268, 329, 370, 371, 269, 375, 347, 359,
+ 270, 344, 330, 363, 331, 332, 364, 348, 367, 360,
+ 372, 376, 368, 365, 378, 1222, 377, 366, 369, 373,
+ 370, 371, 374, 375, 379, 395, 380, 382, 1222, 363,
+ 1222, 1222, 364, 381, 367, 383, 372, 376, 368, 365,
+
+ 378, 384, 377, 366, 369, 373, 393, 398, 374, 385,
+ 379, 395, 380, 382, 386, 396, 389, 397, 394, 381,
+ 400, 383, 387, 401, 390, 399, 388, 384, 391, 402,
+ 392, 403, 393, 398, 404, 385, 406, 405, 411, 1222,
+ 386, 396, 389, 397, 394, 417, 400, 412, 387, 401,
+ 390, 399, 388, 407, 391, 402, 392, 403, 408, 409,
+ 404, 415, 406, 405, 411, 413, 422, 423, 418, 424,
+ 410, 417, 419, 412, 414, 425, 420, 428, 429, 407,
+ 430, 416, 426, 421, 408, 409, 431, 415, 434, 432,
+ 435, 413, 422, 423, 418, 424, 410, 427, 419, 433,
+
+ 414, 425, 420, 428, 429, 436, 430, 416, 426, 421,
+ 437, 438, 431, 1222, 434, 432, 435, 193, 193, 193,
+ 203, 56, 1222, 427, 446, 433, 1222, 1222, 1222, 1222,
+ 1222, 436, 1222, 1222, 200, 1222, 437, 438, 205, 205,
+ 205, 205, 205, 205, 205, 205, 203, 56, 441, 441,
+ 446, 442, 442, 442, 442, 442, 442, 442, 442, 444,
+ 200, 204, 204, 204, 204, 204, 204, 204, 204, 443,
+ 207, 207, 207, 207, 207, 207, 207, 207, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 444, 447, 448, 195, 198,
+ 198, 198, 198, 198, 198, 198, 198, 449, 1222, 450,
+
+ 451, 201, 202, 208, 208, 208, 208, 208, 208, 208,
+ 208, 452, 447, 448, 453, 440, 454, 456, 458, 459,
+ 460, 462, 455, 449, 445, 450, 451, 201, 202, 463,
+ 464, 457, 465, 466, 467, 468, 469, 452, 470, 471,
+ 453, 440, 454, 456, 458, 459, 460, 462, 455, 472,
+ 445, 473, 474, 475, 476, 463, 464, 457, 465, 466,
+ 467, 468, 469, 477, 470, 471, 478, 479, 480, 481,
+ 482, 483, 489, 487, 490, 472, 488, 473, 474, 475,
+ 476, 484, 491, 492, 493, 485, 494, 486, 495, 477,
+ 497, 496, 478, 479, 480, 481, 482, 483, 489, 487,
+
+ 490, 498, 488, 499, 500, 501, 502, 484, 491, 492,
+ 493, 485, 494, 486, 495, 503, 497, 496, 504, 505,
+ 506, 507, 508, 509, 510, 511, 512, 498, 513, 499,
+ 500, 501, 502, 514, 515, 518, 519, 521, 516, 522,
+ 523, 503, 524, 525, 504, 505, 506, 507, 508, 509,
+ 510, 511, 512, 517, 513, 526, 527, 528, 529, 514,
+ 515, 518, 519, 521, 516, 522, 523, 530, 524, 525,
+ 531, 532, 533, 534, 535, 536, 537, 538, 539, 517,
+ 540, 526, 527, 528, 529, 541, 542, 544, 545, 546,
+ 547, 549, 543, 530, 550, 551, 531, 532, 533, 534,
+
+ 535, 536, 537, 538, 539, 552, 540, 553, 554, 555,
+ 556, 541, 542, 544, 545, 546, 547, 549, 543, 557,
+ 550, 551, 558, 559, 560, 561, 562, 563, 564, 565,
+ 566, 552, 567, 553, 554, 555, 556, 568, 569, 570,
+ 571, 572, 573, 574, 575, 557, 576, 577, 558, 559,
+ 560, 561, 562, 563, 564, 565, 566, 578, 567, 581,
+ 583, 579, 584, 568, 569, 570, 571, 572, 573, 574,
+ 575, 580, 576, 577, 585, 586, 587, 582, 588, 589,
+ 590, 591, 592, 578, 593, 581, 583, 579, 584, 594,
+ 597, 598, 599, 600, 604, 595, 605, 580, 596, 606,
+
+ 585, 586, 587, 582, 588, 589, 590, 591, 592, 601,
+ 593, 607, 1222, 602, 610, 594, 597, 598, 599, 600,
+ 604, 595, 605, 603, 596, 606, 611, 608, 612, 613,
+ 614, 615, 616, 617, 618, 601, 619, 607, 609, 602,
+ 610, 620, 621, 622, 623, 624, 625, 626, 627, 603,
+ 628, 629, 611, 608, 612, 613, 614, 615, 616, 617,
+ 618, 630, 619, 631, 609, 632, 633, 620, 621, 622,
+ 623, 624, 625, 626, 627, 634, 628, 629, 635, 636,
+ 637, 638, 639, 640, 641, 642, 643, 630, 644, 631,
+ 645, 632, 633, 646, 647, 648, 649, 650, 651, 652,
+
+ 653, 634, 654, 655, 635, 636, 637, 638, 639, 640,
+ 641, 642, 643, 656, 644, 657, 645, 1222, 1222, 646,
+ 647, 648, 649, 650, 651, 652, 653, 1222, 654, 655,
+ 442, 442, 442, 442, 442, 442, 442, 442, 1222, 656,
+ 1222, 657, 42, 42, 42, 42, 42, 42, 658, 42,
+ 42, 42, 42, 42, 42, 42, 42, 659, 660, 661,
+ 662, 663, 664, 665, 666, 667, 668, 669, 670, 671,
+ 672, 673, 674, 675, 676, 677, 678, 679, 680, 681,
+ 682, 683, 684, 659, 660, 661, 662, 663, 664, 665,
+ 666, 667, 668, 669, 670, 671, 672, 673, 674, 675,
+
+ 676, 677, 678, 679, 680, 681, 682, 683, 684, 42,
+ 42, 685, 686, 688, 689, 690, 442, 442, 442, 442,
+ 442, 442, 442, 442, 691, 692, 692, 692, 692, 692,
+ 692, 692, 692, 1222, 697, 698, 699, 685, 686, 688,
+ 689, 690, 693, 694, 694, 694, 694, 694, 694, 694,
+ 694, 695, 696, 696, 696, 696, 696, 696, 696, 696,
+ 697, 698, 699, 700, 701, 702, 703, 704, 705, 706,
+ 707, 708, 709, 710, 712, 713, 714, 715, 716, 717,
+ 719, 720, 721, 722, 723, 724, 1222, 718, 727, 700,
+ 701, 702, 703, 704, 705, 706, 707, 708, 709, 710,
+
+ 712, 713, 714, 715, 716, 717, 719, 720, 721, 722,
+ 723, 724, 725, 718, 727, 728, 729, 730, 731, 732,
+ 733, 736, 738, 739, 737, 726, 740, 741, 742, 743,
+ 744, 747, 748, 745, 734, 749, 750, 735, 725, 746,
+ 751, 728, 729, 730, 731, 732, 733, 736, 738, 739,
+ 737, 726, 740, 741, 742, 743, 744, 747, 748, 745,
+ 734, 749, 750, 735, 752, 746, 751, 753, 754, 755,
+ 756, 757, 758, 759, 760, 761, 762, 763, 764, 765,
+ 766, 767, 768, 769, 770, 771, 772, 773, 774, 775,
+ 752, 778, 779, 753, 754, 755, 756, 757, 758, 759,
+
+ 760, 761, 762, 763, 764, 765, 766, 767, 768, 769,
+ 770, 771, 772, 773, 774, 775, 776, 778, 779, 780,
+ 781, 782, 783, 785, 786, 787, 777, 788, 789, 790,
+ 791, 792, 793, 794, 795, 796, 797, 798, 799, 800,
+ 801, 802, 776, 803, 804, 780, 781, 782, 783, 785,
+ 786, 787, 777, 788, 789, 790, 791, 792, 793, 794,
+ 795, 796, 797, 798, 799, 800, 801, 802, 805, 803,
+ 804, 806, 807, 808, 809, 810, 811, 812, 813, 816,
+ 817, 818, 819, 820, 821, 822, 823, 824, 825, 826,
+ 827, 828, 829, 830, 805, 831, 832, 806, 807, 808,
+
+ 809, 810, 811, 812, 813, 816, 817, 818, 819, 820,
+ 821, 822, 823, 824, 825, 826, 827, 828, 829, 830,
+ 833, 831, 832, 834, 835, 836, 837, 838, 839, 840,
+ 841, 842, 843, 844, 845, 846, 847, 848, 849, 850,
+ 851, 852, 854, 853, 855, 856, 833, 857, 858, 834,
+ 835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
+ 845, 846, 847, 848, 849, 850, 851, 852, 854, 853,
+ 855, 856, 859, 857, 858, 861, 862, 863, 864, 865,
+ 866, 867, 868, 869, 870, 871, 874, 876, 885, 872,
+ 860, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 859, 1222,
+
+ 1222, 861, 862, 863, 864, 865, 866, 867, 868, 869,
+ 870, 871, 874, 876, 885, 872, 860, 877, 877, 877,
+ 877, 877, 877, 877, 877, 878, 692, 692, 692, 692,
+ 692, 692, 692, 692, 879, 879, 879, 879, 879, 879,
+ 879, 879, 880, 694, 694, 694, 694, 694, 694, 694,
+ 694, 882, 882, 882, 882, 882, 882, 882, 882, 886,
+ 887, 888, 889, 890, 891, 892, 893, 894, 895, 896,
+ 881, 877, 877, 877, 877, 877, 877, 877, 877, 1222,
+ 897, 898, 899, 900, 901, 886, 887, 888, 889, 890,
+ 891, 892, 893, 894, 895, 896, 881, 883, 696, 696,
+
+ 696, 696, 696, 696, 696, 696, 897, 898, 899, 900,
+ 901, 902, 903, 904, 905, 906, 907, 908, 911, 912,
+ 913, 914, 915, 916, 917, 884, 918, 919, 909, 920,
+ 921, 922, 923, 924, 910, 925, 926, 902, 903, 904,
+ 905, 906, 907, 908, 911, 912, 913, 914, 915, 916,
+ 917, 884, 918, 919, 909, 920, 921, 922, 923, 924,
+ 910, 925, 926, 927, 928, 929, 930, 931, 932, 933,
+ 934, 935, 936, 937, 938, 939, 940, 941, 942, 943,
+ 944, 945, 946, 947, 948, 949, 950, 951, 952, 927,
+ 928, 929, 930, 931, 932, 933, 934, 935, 936, 937,
+
+ 938, 939, 940, 941, 942, 943, 944, 945, 946, 947,
+ 948, 949, 950, 951, 952, 953, 954, 955, 956, 957,
+ 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,
+ 968, 969, 970, 971, 972, 973, 974, 975, 976, 977,
+ 978, 953, 954, 955, 956, 957, 958, 959, 960, 961,
+ 962, 963, 964, 965, 966, 967, 968, 969, 970, 971,
+ 972, 973, 974, 975, 976, 977, 978, 979, 980, 981,
+ 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
+ 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001,
+ 1002, 1003, 1004, 979, 980, 981, 982, 983, 984, 985,
+
+ 986, 987, 988, 989, 990, 991, 992, 993, 994, 995,
+ 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005,
+ 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015,
+ 1016, 1017, 1018, 1019, 1020, 877, 877, 877, 877, 877,
+ 877, 877, 877, 1222, 1222, 1005, 1006, 1007, 1008, 1009,
+ 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
+ 1020, 879, 879, 879, 879, 879, 879, 879, 879, 879,
+ 879, 879, 879, 879, 879, 879, 879, 882, 882, 882,
+ 882, 882, 882, 882, 882, 1222, 1222, 1023, 1021, 1024,
+ 1025, 1026, 1027, 1028, 1029, 1030, 881, 1031, 1032, 1033,
+
+ 1034, 1035, 1036, 1037, 1022, 882, 882, 882, 882, 882,
+ 882, 882, 882, 1023, 1021, 1024, 1025, 1026, 1027, 1028,
+ 1029, 1030, 881, 1031, 1032, 1033, 1034, 1035, 1036, 1037,
+ 1022, 1038, 884, 1040, 1041, 1042, 1043, 1044, 1045, 1046,
+ 1047, 1048, 1049, 1050, 1039, 1051, 1052, 1053, 1054, 1055,
+ 1056, 1057, 1059, 1060, 1061, 1062, 1063, 1038, 884, 1040,
+ 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
+ 1039, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1059, 1060,
+ 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070,
+ 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080,
+
+ 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1064,
+ 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
+ 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084,
+ 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094,
+ 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104,
+ 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114,
+ 1115, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
+ 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,
+ 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
+ 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128,
+
+ 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138,
+ 1139, 1140, 1141, 1116, 1117, 1118, 1119, 1120, 1121, 1122,
+ 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132,
+ 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142,
+ 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152,
+ 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162,
+ 1163, 1164, 1165, 1166, 1167, 1142, 1143, 1144, 1145, 1146,
+ 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156,
+ 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166,
+ 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176,
+
+ 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186,
+ 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1168, 1169, 1170,
+ 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180,
+ 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190,
+ 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200,
+ 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210,
+ 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1194,
+ 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
+ 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214,
+ 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1222, 1222,
+
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1220, 1221, 44, 44, 47, 47, 194, 194, 43,
+ 43, 46, 46, 193, 193, 3, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222
} ;
-static yyconst flex_int16_t yy_chk[2904] =
+static yyconst flex_int16_t yy_chk[2909] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -1122,319 +1126,319 @@ static yyconst flex_int16_t yy_chk[2904] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 8, 8, 8, 1206, 8, 9, 9, 9,
+ 1, 1, 8, 8, 8, 1223, 8, 9, 9, 9,
105, 105, 9, 10, 10, 10, 10, 10, 10, 10,
10, 10, 11, 11, 11, 11, 11, 11, 11, 11,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
13, 14, 18, 12, 12, 22, 18, 12, 25, 22,
- 18, 920, 34, 22, 34, 38, 53, 34, 60, 22,
- 18, 14, 891, 12, 678, 37, 13, 14, 18, 12,
+ 18, 937, 34, 22, 34, 38, 53, 34, 60, 22,
+ 18, 14, 687, 12, 685, 37, 13, 14, 18, 12,
12, 22, 18, 12, 25, 22, 18, 37, 34, 22,
34, 38, 53, 34, 60, 22, 18, 14, 21, 12,
15, 37, 21, 61, 44, 44, 44, 15, 44, 21,
15, 15, 15, 37, 15, 21, 15, 15, 63, 15,
- 15, 676, 543, 21, 21, 39, 15, 39, 21, 61,
- 457, 39, 429, 15, 65, 21, 15, 15, 15, 69,
+ 15, 588, 588, 21, 21, 39, 15, 39, 21, 61,
+ 548, 39, 461, 15, 65, 21, 15, 15, 15, 69,
15, 21, 15, 15, 63, 15, 15, 16, 28, 21,
26, 39, 28, 39, 26, 16, 16, 39, 26, 16,
65, 16, 28, 16, 26, 69, 16, 72, 28, 16,
- 16, 314, 285, 226, 28, 16, 26, 16, 28, 68,
- 26, 16, 16, 68, 26, 16, 192, 16, 28, 16,
+ 16, 433, 316, 287, 28, 16, 26, 16, 28, 68,
+ 26, 16, 16, 68, 26, 16, 227, 16, 28, 16,
26, 73, 16, 72, 28, 16, 16, 40, 40, 40,
- 76, 16, 35, 16, 17, 68, 35, 64, 17, 68,
- 35, 17, 17, 64, 77, 17, 17, 73, 17, 17,
- 64, 17, 78, 125, 17, 94, 76, 70, 35, 46,
- 17, 43, 35, 64, 17, 41, 35, 17, 17, 64,
+ 77, 16, 35, 16, 17, 68, 35, 64, 17, 68,
+ 35, 17, 17, 64, 78, 17, 17, 73, 17, 17,
+ 64, 17, 79, 193, 17, 125, 77, 94, 35, 70,
+ 17, 46, 35, 64, 17, 43, 35, 17, 17, 64,
- 77, 17, 17, 24, 17, 17, 64, 17, 78, 27,
- 17, 19, 19, 27, 79, 29, 82, 27, 82, 29,
+ 78, 17, 17, 41, 17, 17, 64, 17, 79, 27,
+ 17, 19, 19, 27, 82, 29, 82, 27, 83, 29,
19, 27, 19, 27, 19, 19, 19, 29, 40, 29,
- 5, 29, 19, 3, 0, 27, 0, 19, 19, 27,
- 79, 29, 82, 27, 82, 29, 19, 27, 19, 27,
- 19, 19, 19, 29, 83, 29, 66, 29, 19, 20,
+ 24, 29, 19, 5, 3, 27, 0, 19, 19, 27,
+ 82, 29, 82, 27, 83, 29, 19, 27, 19, 27,
+ 19, 19, 19, 29, 86, 29, 66, 29, 19, 20,
47, 47, 47, 62, 31, 47, 62, 20, 31, 20,
- 31, 66, 67, 20, 62, 86, 20, 88, 31, 20,
- 83, 0, 66, 67, 31, 20, 0, 91, 91, 62,
+ 31, 66, 67, 20, 62, 88, 20, 89, 31, 20,
+ 86, 0, 66, 67, 31, 20, 0, 89, 0, 62,
31, 0, 62, 20, 31, 20, 31, 66, 67, 20,
- 62, 86, 20, 88, 31, 20, 23, 23, 0, 67,
- 31, 85, 23, 91, 91, 85, 23, 23, 71, 84,
+ 62, 88, 20, 89, 31, 20, 23, 23, 0, 67,
+ 31, 85, 23, 89, 76, 85, 23, 23, 71, 76,
0, 23, 95, 23, 49, 49, 49, 49, 49, 49,
- 49, 49, 23, 23, 71, 0, 84, 85, 23, 75,
- 96, 85, 23, 23, 71, 84, 75, 23, 95, 23,
- 30, 36, 75, 36, 30, 97, 36, 30, 30, 36,
- 71, 81, 84, 81, 30, 75, 96, 30, 0, 81,
- 30, 0, 75, 0, 98, 0, 30, 36, 75, 36,
- 30, 97, 36, 30, 30, 36, 0, 81, 89, 81,
- 30, 0, 0, 30, 90, 81, 30, 32, 89, 32,
-
- 98, 32, 99, 100, 32, 32, 93, 101, 32, 32,
- 90, 32, 90, 32, 89, 32, 32, 32, 93, 102,
- 90, 32, 0, 32, 89, 32, 0, 32, 99, 100,
- 32, 32, 93, 101, 32, 32, 90, 32, 90, 32,
- 103, 32, 32, 32, 93, 102, 0, 32, 33, 103,
- 106, 104, 33, 107, 108, 33, 108, 110, 109, 104,
- 111, 112, 33, 104, 117, 33, 103, 109, 118, 112,
- 120, 121, 33, 0, 33, 103, 106, 104, 33, 107,
- 108, 33, 108, 110, 109, 104, 111, 112, 33, 104,
- 117, 33, 0, 109, 118, 112, 120, 121, 33, 50,
+ 49, 49, 23, 23, 71, 0, 0, 85, 23, 75,
+ 76, 85, 23, 23, 71, 76, 75, 23, 95, 23,
+ 30, 36, 75, 36, 30, 96, 36, 30, 30, 36,
+ 71, 30, 91, 91, 30, 75, 81, 30, 81, 84,
+ 30, 0, 75, 0, 81, 0, 30, 36, 75, 36,
+ 30, 96, 36, 30, 30, 36, 84, 30, 91, 91,
+ 30, 0, 81, 30, 81, 84, 30, 32, 93, 32,
+
+ 81, 32, 90, 97, 32, 32, 98, 99, 32, 32,
+ 93, 32, 84, 32, 100, 32, 32, 32, 90, 101,
+ 90, 32, 0, 32, 93, 32, 0, 32, 90, 97,
+ 32, 32, 98, 99, 32, 32, 93, 32, 102, 32,
+ 100, 32, 32, 32, 90, 101, 90, 32, 33, 103,
+ 106, 104, 33, 107, 108, 33, 108, 109, 103, 104,
+ 110, 111, 33, 104, 102, 33, 109, 117, 118, 120,
+ 121, 123, 33, 0, 33, 103, 106, 104, 33, 107,
+ 108, 33, 108, 109, 103, 104, 110, 111, 33, 104,
+ 0, 33, 109, 117, 118, 120, 121, 123, 33, 50,
50, 50, 50, 50, 50, 50, 50, 50, 54, 54,
54, 54, 54, 54, 54, 54, 55, 55, 55, 55,
- 55, 55, 55, 55, 114, 123, 50, 124, 126, 114,
+ 55, 55, 55, 55, 114, 124, 50, 126, 127, 114,
56, 56, 50, 56, 56, 56, 56, 56, 56, 56,
56, 57, 57, 57, 57, 57, 57, 57, 57, 0,
- 114, 123, 50, 124, 126, 114, 0, 127, 50, 51,
- 51, 51, 51, 51, 51, 51, 51, 116, 0, 0,
- 116, 51, 51, 59, 59, 59, 59, 59, 59, 59,
- 59, 115, 116, 127, 0, 0, 0, 128, 130, 115,
- 130, 134, 115, 116, 130, 128, 116, 51, 51, 52,
-
- 52, 52, 52, 52, 52, 52, 52, 115, 116, 0,
- 130, 52, 52, 128, 130, 115, 130, 134, 115, 0,
- 130, 128, 0, 0, 0, 0, 0, 0, 139, 129,
- 122, 132, 132, 122, 129, 129, 130, 52, 52, 58,
- 58, 58, 58, 58, 58, 58, 58, 122, 58, 58,
- 58, 58, 58, 58, 139, 129, 122, 132, 132, 122,
- 129, 129, 133, 0, 133, 140, 0, 0, 137, 137,
- 0, 141, 0, 122, 58, 58, 58, 58, 58, 58,
- 87, 87, 87, 87, 87, 0, 142, 0, 133, 87,
- 133, 140, 136, 136, 137, 137, 138, 141, 131, 143,
-
- 0, 144, 131, 136, 0, 138, 87, 87, 87, 87,
- 87, 131, 142, 131, 131, 87, 92, 135, 136, 136,
- 92, 92, 138, 0, 131, 143, 92, 144, 131, 136,
- 92, 138, 135, 135, 92, 135, 146, 131, 147, 131,
- 131, 148, 92, 135, 145, 151, 92, 92, 145, 145,
- 152, 0, 92, 0, 154, 0, 92, 156, 135, 135,
- 92, 135, 146, 149, 147, 0, 149, 148, 150, 0,
- 145, 151, 150, 149, 145, 145, 152, 149, 150, 153,
- 154, 155, 158, 156, 0, 162, 155, 0, 153, 149,
- 158, 153, 149, 157, 150, 157, 158, 0, 150, 149,
-
- 0, 0, 157, 149, 150, 153, 0, 155, 158, 166,
- 159, 162, 155, 161, 153, 159, 158, 153, 160, 157,
- 164, 157, 158, 159, 167, 161, 160, 159, 157, 163,
- 160, 163, 160, 169, 165, 166, 159, 165, 164, 161,
- 168, 159, 170, 168, 160, 0, 164, 170, 175, 159,
- 167, 161, 160, 159, 171, 163, 160, 163, 160, 169,
- 165, 172, 173, 165, 164, 171, 168, 177, 170, 168,
- 172, 173, 174, 170, 175, 176, 178, 181, 179, 176,
- 171, 182, 183, 176, 179, 180, 184, 172, 173, 185,
- 176, 171, 174, 177, 186, 188, 172, 173, 174, 185,
-
- 180, 176, 178, 181, 179, 176, 189, 182, 183, 176,
- 179, 180, 184, 190, 191, 185, 176, 0, 174, 0,
- 186, 188, 193, 193, 193, 185, 180, 198, 198, 0,
- 0, 0, 189, 0, 0, 0, 0, 0, 209, 190,
- 191, 198, 201, 201, 0, 201, 201, 201, 201, 201,
- 201, 201, 201, 198, 198, 203, 203, 203, 203, 203,
- 203, 203, 203, 203, 209, 211, 212, 198, 204, 204,
- 204, 204, 204, 204, 204, 204, 205, 205, 205, 205,
- 205, 205, 205, 205, 214, 215, 216, 217, 218, 204,
- 220, 211, 212, 193, 197, 197, 197, 197, 197, 197,
-
- 197, 197, 0, 221, 220, 223, 197, 197, 0, 0,
- 214, 215, 216, 217, 218, 204, 220, 225, 227, 228,
- 197, 206, 206, 206, 206, 206, 206, 206, 206, 221,
- 220, 223, 197, 197, 207, 207, 207, 207, 207, 207,
- 207, 207, 219, 225, 227, 228, 197, 229, 219, 230,
- 231, 233, 234, 236, 235, 207, 235, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 219, 248,
- 0, 251, 0, 229, 219, 230, 231, 233, 234, 236,
- 235, 207, 235, 237, 238, 239, 240, 241, 242, 243,
- 244, 245, 246, 247, 249, 248, 250, 251, 249, 250,
-
- 252, 253, 254, 255, 256, 257, 258, 259, 257, 261,
- 262, 263, 264, 265, 266, 267, 268, 269, 272, 273,
- 249, 274, 250, 276, 249, 250, 252, 253, 254, 255,
- 256, 257, 258, 259, 257, 261, 262, 263, 264, 265,
- 266, 267, 268, 269, 272, 273, 277, 274, 278, 276,
- 280, 281, 282, 283, 284, 287, 288, 288, 289, 290,
- 291, 292, 294, 296, 295, 297, 299, 282, 300, 301,
- 302, 303, 277, 295, 278, 304, 280, 281, 282, 283,
- 284, 287, 288, 288, 289, 290, 291, 292, 294, 296,
- 295, 297, 299, 282, 300, 301, 302, 303, 305, 295,
-
- 306, 304, 308, 309, 310, 311, 312, 313, 315, 309,
- 316, 317, 318, 319, 320, 321, 322, 323, 326, 327,
- 329, 330, 331, 332, 305, 333, 306, 335, 308, 309,
- 310, 311, 312, 313, 315, 309, 316, 317, 318, 319,
- 320, 321, 322, 323, 326, 327, 329, 330, 331, 332,
- 336, 333, 337, 335, 338, 339, 340, 342, 344, 345,
- 347, 348, 350, 351, 352, 353, 354, 355, 356, 357,
- 358, 359, 360, 361, 363, 353, 336, 364, 337, 366,
- 338, 339, 340, 342, 344, 345, 347, 348, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
-
- 363, 353, 365, 364, 367, 366, 368, 369, 365, 370,
- 372, 365, 373, 370, 374, 375, 376, 377, 378, 379,
- 378, 380, 381, 370, 382, 384, 385, 376, 365, 386,
- 367, 387, 368, 369, 365, 370, 372, 365, 373, 370,
- 374, 375, 376, 377, 378, 379, 378, 380, 381, 370,
- 382, 384, 385, 376, 388, 386, 389, 387, 390, 391,
- 392, 393, 394, 395, 396, 397, 398, 399, 401, 402,
- 403, 405, 406, 407, 408, 409, 410, 411, 412, 413,
- 388, 414, 389, 415, 390, 391, 392, 393, 394, 395,
- 396, 397, 398, 399, 401, 402, 403, 405, 406, 407,
-
- 408, 409, 410, 411, 412, 413, 416, 414, 417, 415,
- 418, 419, 420, 422, 423, 423, 424, 425, 437, 437,
- 437, 437, 437, 437, 437, 437, 0, 0, 0, 0,
- 0, 0, 416, 0, 417, 0, 418, 419, 420, 422,
- 423, 423, 424, 425, 426, 426, 426, 426, 426, 426,
- 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
- 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
- 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
- 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
- 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
-
- 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
- 426, 426, 426, 427, 428, 432, 433, 434, 438, 438,
- 438, 438, 438, 438, 438, 438, 439, 439, 439, 439,
- 439, 439, 439, 439, 439, 0, 442, 443, 444, 427,
- 428, 432, 433, 434, 440, 440, 440, 440, 440, 440,
- 440, 440, 440, 441, 441, 441, 441, 441, 441, 441,
- 441, 441, 442, 443, 444, 445, 446, 447, 448, 449,
- 450, 451, 452, 453, 454, 456, 461, 462, 463, 464,
- 465, 466, 467, 468, 469, 470, 471, 472, 0, 466,
- 474, 445, 446, 447, 448, 449, 450, 451, 452, 453,
-
- 454, 456, 461, 462, 463, 464, 465, 466, 467, 468,
- 469, 470, 471, 472, 473, 466, 474, 476, 477, 480,
- 482, 483, 484, 485, 487, 484, 488, 473, 489, 491,
- 493, 494, 496, 495, 497, 483, 498, 499, 483, 495,
- 473, 500, 501, 476, 477, 480, 482, 483, 484, 485,
- 487, 484, 488, 473, 489, 491, 493, 494, 496, 495,
- 497, 483, 498, 499, 483, 495, 502, 500, 501, 503,
- 505, 506, 507, 508, 509, 510, 512, 513, 514, 515,
- 518, 520, 521, 522, 523, 524, 527, 528, 529, 530,
- 532, 0, 502, 534, 536, 503, 505, 506, 507, 508,
-
- 509, 510, 512, 513, 514, 515, 518, 520, 521, 522,
- 523, 524, 527, 528, 529, 530, 532, 533, 537, 534,
- 536, 540, 541, 542, 544, 545, 546, 533, 547, 548,
- 550, 552, 553, 554, 555, 557, 558, 559, 560, 562,
- 563, 566, 569, 533, 537, 570, 572, 540, 541, 542,
- 544, 545, 546, 533, 547, 548, 550, 552, 553, 554,
- 555, 557, 558, 559, 560, 562, 563, 566, 569, 573,
- 574, 570, 572, 575, 576, 577, 579, 580, 581, 582,
- 583, 584, 585, 586, 587, 589, 590, 591, 592, 593,
- 594, 595, 597, 598, 599, 573, 574, 600, 601, 575,
-
- 576, 577, 579, 580, 581, 582, 583, 584, 585, 586,
- 587, 589, 590, 591, 592, 593, 594, 595, 597, 598,
- 599, 603, 605, 600, 601, 606, 607, 608, 609, 610,
- 611, 612, 616, 617, 618, 619, 620, 622, 623, 624,
- 625, 626, 627, 628, 630, 0, 632, 603, 605, 633,
- 634, 606, 607, 608, 609, 610, 611, 612, 616, 617,
- 618, 619, 620, 622, 623, 624, 625, 626, 627, 628,
- 630, 631, 632, 638, 639, 633, 634, 640, 641, 643,
- 644, 645, 646, 677, 681, 690, 646, 691, 692, 631,
- 0, 0, 0, 0, 0, 0, 0, 631, 0, 638,
-
- 639, 0, 0, 640, 641, 643, 644, 645, 646, 677,
- 681, 690, 646, 691, 692, 631, 682, 682, 682, 682,
- 682, 682, 682, 682, 683, 683, 683, 683, 683, 683,
- 683, 683, 683, 684, 684, 684, 684, 684, 684, 684,
- 684, 685, 685, 685, 685, 685, 685, 685, 685, 685,
- 686, 686, 686, 686, 686, 686, 686, 686, 694, 695,
- 696, 697, 701, 704, 705, 707, 708, 709, 710, 685,
- 861, 861, 861, 861, 861, 861, 861, 861, 0, 711,
- 712, 713, 714, 715, 694, 695, 696, 697, 701, 704,
- 705, 707, 708, 709, 710, 685, 687, 687, 687, 687,
-
- 687, 687, 687, 687, 687, 711, 712, 713, 714, 715,
- 716, 717, 718, 719, 721, 722, 723, 724, 725, 726,
- 727, 728, 730, 731, 687, 721, 732, 733, 734, 735,
- 736, 721, 738, 739, 740, 742, 716, 717, 718, 719,
- 721, 722, 723, 724, 725, 726, 727, 728, 730, 731,
- 687, 721, 732, 733, 734, 735, 736, 721, 738, 739,
- 740, 742, 743, 744, 745, 746, 747, 749, 751, 754,
- 756, 757, 758, 759, 760, 761, 762, 763, 764, 765,
- 766, 767, 768, 770, 771, 772, 773, 775, 743, 744,
- 745, 746, 747, 749, 751, 754, 756, 757, 758, 759,
-
- 760, 761, 762, 763, 764, 765, 766, 767, 768, 770,
- 771, 772, 773, 775, 777, 779, 780, 782, 783, 784,
- 785, 786, 787, 788, 789, 790, 792, 793, 794, 795,
- 797, 798, 800, 802, 803, 804, 805, 807, 808, 809,
- 777, 779, 780, 782, 783, 784, 785, 786, 787, 788,
- 789, 790, 792, 793, 794, 795, 797, 798, 800, 802,
- 803, 804, 805, 807, 808, 809, 810, 811, 812, 813,
- 815, 816, 818, 819, 820, 822, 824, 825, 826, 827,
- 832, 833, 834, 835, 836, 837, 838, 839, 841, 843,
- 844, 845, 810, 811, 812, 813, 815, 816, 818, 819,
-
- 820, 822, 824, 825, 826, 827, 832, 833, 834, 835,
- 836, 837, 838, 839, 841, 843, 844, 845, 846, 847,
- 848, 849, 850, 851, 853, 854, 855, 856, 860, 862,
- 862, 862, 862, 862, 862, 862, 862, 0, 0, 0,
- 0, 0, 0, 0, 846, 847, 848, 849, 850, 851,
- 853, 854, 855, 856, 860, 863, 863, 863, 863, 863,
- 863, 863, 863, 864, 864, 864, 864, 864, 864, 864,
- 864, 866, 866, 866, 866, 866, 866, 866, 866, 0,
- 0, 869, 863, 870, 871, 872, 876, 877, 879, 881,
- 864, 884, 886, 887, 889, 890, 892, 893, 866, 867,
-
- 867, 867, 867, 867, 867, 867, 867, 869, 863, 870,
- 871, 872, 876, 877, 879, 881, 864, 884, 886, 887,
- 889, 890, 892, 893, 866, 894, 867, 895, 896, 897,
- 898, 899, 900, 901, 904, 906, 907, 908, 894, 909,
- 910, 912, 913, 914, 915, 917, 921, 922, 923, 925,
- 929, 894, 867, 895, 896, 897, 898, 899, 900, 901,
- 904, 906, 907, 908, 894, 909, 910, 912, 913, 914,
- 915, 917, 921, 922, 923, 925, 929, 930, 931, 932,
- 933, 934, 935, 936, 937, 938, 941, 943, 945, 948,
- 957, 958, 959, 960, 961, 962, 963, 964, 967, 968,
-
- 969, 972, 974, 930, 931, 932, 933, 934, 935, 936,
- 937, 938, 941, 943, 945, 948, 957, 958, 959, 960,
- 961, 962, 963, 964, 967, 968, 969, 972, 974, 975,
- 977, 980, 982, 983, 985, 987, 988, 989, 992, 993,
- 995, 998, 1000, 1005, 1006, 1009, 1010, 1011, 1012, 1014,
- 1015, 1017, 1018, 1019, 1020, 975, 977, 980, 982, 983,
- 985, 987, 988, 989, 992, 993, 995, 998, 1000, 1005,
- 1006, 1009, 1010, 1011, 1012, 1014, 1015, 1017, 1018, 1019,
- 1020, 1021, 1024, 1025, 1027, 1028, 1029, 1030, 1035, 1037,
- 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1048,
-
- 1049, 1053, 1055, 1056, 1058, 1059, 1062, 1021, 1024, 1025,
- 1027, 1028, 1029, 1030, 1035, 1037, 1038, 1039, 1040, 1041,
- 1042, 1043, 1044, 1045, 1046, 1048, 1049, 1053, 1055, 1056,
- 1058, 1059, 1062, 1063, 1064, 1065, 1066, 1068, 1069, 1070,
- 1071, 1073, 1074, 1077, 1078, 1080, 1081, 1082, 1083, 1085,
- 1086, 1088, 1089, 1090, 1092, 1097, 1098, 1099, 1102, 1063,
- 1064, 1065, 1066, 1068, 1069, 1070, 1071, 1073, 1074, 1077,
- 1078, 1080, 1081, 1082, 1083, 1085, 1086, 1088, 1089, 1090,
- 1092, 1097, 1098, 1099, 1102, 1103, 1107, 1108, 1114, 1116,
- 1117, 1118, 1119, 1120, 1123, 1125, 1127, 1129, 1131, 1132,
-
- 1134, 1136, 1137, 1138, 1143, 1145, 1146, 1147, 1149, 1151,
- 1152, 1103, 1107, 1108, 1114, 1116, 1117, 1118, 1119, 1120,
- 1123, 1125, 1127, 1129, 1131, 1132, 1134, 1136, 1137, 1138,
- 1143, 1145, 1146, 1147, 1149, 1151, 1152, 1153, 1155, 1157,
- 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1167, 1168, 1173,
- 1174, 1176, 1178, 1181, 1184, 1185, 1186, 1189, 1190, 1191,
- 1194, 1195, 1196, 1153, 1155, 1157, 1159, 1160, 1161, 1162,
- 1163, 1164, 1165, 1167, 1168, 1173, 1174, 1176, 1178, 1181,
- 1184, 1185, 1186, 1189, 1190, 1191, 1194, 1195, 1196, 1197,
- 1199, 1201, 0, 0, 0, 0, 0, 0, 0, 0,
+ 114, 124, 50, 126, 127, 114, 0, 0, 50, 51,
+ 51, 51, 51, 51, 51, 51, 51, 0, 132, 132,
+ 134, 51, 51, 59, 59, 59, 59, 59, 59, 59,
+ 59, 112, 115, 128, 139, 0, 0, 137, 137, 112,
+ 115, 128, 140, 115, 132, 132, 134, 51, 51, 52,
+
+ 52, 52, 52, 52, 52, 52, 52, 112, 115, 128,
+ 139, 52, 52, 137, 137, 112, 115, 128, 140, 115,
+ 206, 206, 206, 206, 206, 206, 206, 206, 129, 133,
+ 141, 133, 116, 129, 129, 116, 142, 52, 52, 58,
+ 58, 58, 58, 58, 58, 58, 58, 116, 58, 58,
+ 58, 58, 58, 58, 129, 133, 141, 133, 116, 129,
+ 129, 116, 142, 0, 130, 143, 130, 144, 122, 146,
+ 130, 122, 148, 116, 58, 58, 58, 58, 58, 58,
+ 87, 87, 87, 87, 87, 122, 130, 135, 0, 87,
+ 130, 143, 130, 144, 122, 146, 130, 122, 148, 0,
+
+ 0, 0, 135, 135, 0, 135, 87, 87, 87, 87,
+ 87, 122, 130, 135, 145, 87, 92, 0, 145, 145,
+ 92, 92, 149, 131, 136, 136, 92, 131, 135, 135,
+ 92, 135, 138, 147, 92, 136, 131, 0, 131, 131,
+ 145, 138, 92, 147, 145, 145, 92, 92, 149, 131,
+ 136, 136, 92, 131, 152, 153, 92, 155, 138, 147,
+ 92, 136, 131, 150, 131, 131, 150, 138, 151, 147,
+ 154, 156, 151, 150, 157, 0, 156, 150, 151, 154,
+ 152, 153, 154, 155, 158, 163, 158, 159, 0, 150,
+ 0, 0, 150, 158, 151, 159, 154, 156, 151, 150,
+
+ 157, 159, 156, 150, 151, 154, 162, 165, 154, 160,
+ 158, 163, 158, 159, 160, 164, 161, 164, 162, 158,
+ 166, 159, 160, 166, 161, 165, 160, 159, 161, 167,
+ 161, 168, 162, 165, 169, 160, 170, 169, 173, 0,
+ 160, 164, 161, 164, 162, 176, 166, 173, 160, 166,
+ 161, 165, 160, 171, 161, 167, 161, 168, 171, 172,
+ 169, 175, 170, 169, 173, 174, 178, 179, 177, 180,
+ 172, 176, 177, 173, 174, 180, 177, 182, 183, 171,
+ 184, 175, 181, 177, 171, 172, 185, 175, 187, 186,
+ 189, 174, 178, 179, 177, 180, 172, 181, 177, 186,
+
+ 174, 180, 177, 182, 183, 190, 184, 175, 181, 177,
+ 191, 192, 185, 0, 187, 186, 189, 194, 194, 194,
+ 199, 199, 0, 181, 210, 186, 0, 0, 0, 0,
+ 0, 190, 0, 0, 199, 0, 191, 192, 205, 205,
+ 205, 205, 205, 205, 205, 205, 199, 199, 202, 202,
+ 210, 202, 202, 202, 202, 202, 202, 202, 202, 205,
+ 199, 204, 204, 204, 204, 204, 204, 204, 204, 204,
+ 207, 207, 207, 207, 207, 207, 207, 207, 0, 0,
+ 0, 0, 0, 0, 0, 205, 212, 213, 194, 198,
+ 198, 198, 198, 198, 198, 198, 198, 215, 0, 216,
+
+ 217, 198, 198, 208, 208, 208, 208, 208, 208, 208,
+ 208, 218, 212, 213, 219, 198, 220, 221, 222, 224,
+ 226, 228, 220, 215, 208, 216, 217, 198, 198, 229,
+ 230, 221, 231, 232, 234, 235, 237, 218, 237, 238,
+ 219, 198, 220, 221, 222, 224, 226, 228, 220, 239,
+ 208, 240, 241, 242, 243, 229, 230, 221, 231, 232,
+ 234, 235, 237, 244, 237, 238, 245, 246, 247, 248,
+ 249, 250, 253, 252, 254, 239, 252, 240, 241, 242,
+ 243, 251, 255, 256, 257, 251, 258, 251, 259, 244,
+ 260, 259, 245, 246, 247, 248, 249, 250, 253, 252,
+
+ 254, 261, 252, 263, 264, 265, 266, 251, 255, 256,
+ 257, 251, 258, 251, 259, 267, 260, 259, 268, 269,
+ 270, 271, 274, 275, 276, 278, 279, 261, 280, 263,
+ 264, 265, 266, 282, 283, 285, 286, 289, 284, 290,
+ 290, 267, 291, 292, 268, 269, 270, 271, 274, 275,
+ 276, 278, 279, 284, 280, 293, 294, 296, 297, 282,
+ 283, 285, 286, 289, 284, 290, 290, 297, 291, 292,
+ 298, 299, 301, 302, 303, 304, 305, 306, 307, 284,
+ 308, 293, 294, 296, 297, 310, 311, 312, 313, 314,
+ 315, 317, 311, 297, 318, 319, 298, 299, 301, 302,
+
+ 303, 304, 305, 306, 307, 320, 308, 321, 322, 323,
+ 324, 310, 311, 312, 313, 314, 315, 317, 311, 325,
+ 318, 319, 328, 329, 331, 332, 333, 334, 335, 337,
+ 338, 320, 339, 321, 322, 323, 324, 340, 341, 342,
+ 344, 346, 347, 349, 350, 325, 352, 353, 328, 329,
+ 331, 332, 333, 334, 335, 337, 338, 354, 339, 356,
+ 357, 355, 358, 340, 341, 342, 344, 346, 347, 349,
+ 350, 355, 352, 353, 359, 360, 361, 356, 362, 363,
+ 364, 365, 367, 354, 368, 356, 357, 355, 358, 369,
+ 370, 371, 372, 373, 376, 369, 377, 355, 369, 378,
+
+ 359, 360, 361, 356, 362, 363, 364, 365, 367, 374,
+ 368, 379, 0, 374, 381, 369, 370, 371, 372, 373,
+ 376, 369, 377, 374, 369, 378, 382, 380, 382, 383,
+ 384, 385, 386, 388, 389, 374, 389, 379, 380, 374,
+ 381, 390, 391, 392, 393, 394, 395, 396, 397, 374,
+ 398, 399, 382, 380, 382, 383, 384, 385, 386, 388,
+ 389, 400, 389, 401, 380, 402, 403, 390, 391, 392,
+ 393, 394, 395, 396, 397, 405, 398, 399, 406, 407,
+ 409, 410, 411, 412, 413, 414, 415, 400, 416, 401,
+ 417, 402, 403, 418, 419, 420, 421, 422, 423, 424,
+
+ 426, 405, 427, 427, 406, 407, 409, 410, 411, 412,
+ 413, 414, 415, 428, 416, 429, 417, 0, 0, 418,
+ 419, 420, 421, 422, 423, 424, 426, 0, 427, 427,
+ 441, 441, 441, 441, 441, 441, 441, 441, 0, 428,
+ 0, 429, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 431, 432, 436, 437, 438, 442, 442, 442, 442,
+ 442, 442, 442, 442, 443, 443, 443, 443, 443, 443,
+ 443, 443, 443, 0, 446, 447, 448, 431, 432, 436,
+ 437, 438, 444, 444, 444, 444, 444, 444, 444, 444,
+ 444, 445, 445, 445, 445, 445, 445, 445, 445, 445,
+ 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
+ 456, 457, 458, 460, 465, 466, 467, 468, 469, 470,
+ 471, 472, 473, 474, 475, 476, 0, 470, 478, 449,
+ 450, 451, 452, 453, 454, 455, 456, 457, 458, 460,
+
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
+ 475, 476, 477, 470, 478, 480, 481, 484, 486, 487,
+ 488, 489, 490, 492, 489, 477, 493, 494, 496, 498,
+ 499, 501, 502, 500, 488, 503, 504, 488, 477, 500,
+ 505, 480, 481, 484, 486, 487, 488, 489, 490, 492,
+ 489, 477, 493, 494, 496, 498, 499, 501, 502, 500,
+ 488, 503, 504, 488, 506, 500, 505, 507, 508, 510,
+ 511, 512, 513, 514, 515, 517, 518, 519, 520, 523,
+ 525, 526, 527, 528, 529, 532, 533, 534, 535, 537,
+ 506, 539, 541, 507, 508, 510, 511, 512, 513, 514,
+
+ 515, 517, 518, 519, 520, 523, 525, 526, 527, 528,
+ 529, 532, 533, 534, 535, 537, 538, 539, 541, 542,
+ 545, 546, 547, 549, 550, 551, 538, 552, 553, 555,
+ 557, 558, 559, 560, 562, 563, 564, 565, 567, 568,
+ 571, 574, 538, 575, 577, 542, 545, 546, 547, 549,
+ 550, 551, 538, 552, 553, 555, 557, 558, 559, 560,
+ 562, 563, 564, 565, 567, 568, 571, 574, 578, 575,
+ 577, 579, 580, 581, 582, 583, 585, 586, 587, 589,
+ 590, 591, 592, 593, 594, 595, 597, 598, 599, 600,
+ 601, 602, 603, 605, 578, 606, 607, 579, 580, 581,
+
+ 582, 583, 585, 586, 587, 589, 590, 591, 592, 593,
+ 594, 595, 597, 598, 599, 600, 601, 602, 603, 605,
+ 608, 606, 607, 609, 611, 613, 614, 615, 616, 617,
+ 618, 619, 620, 621, 625, 626, 627, 628, 629, 631,
+ 632, 633, 634, 633, 635, 636, 608, 637, 639, 609,
+ 611, 613, 614, 615, 616, 617, 618, 619, 620, 621,
+ 625, 626, 627, 628, 629, 631, 632, 633, 634, 633,
+ 635, 636, 640, 637, 639, 641, 642, 643, 647, 648,
+ 649, 650, 652, 653, 654, 655, 686, 690, 699, 655,
+ 640, 0, 0, 0, 0, 0, 0, 0, 640, 0,
+
+ 0, 641, 642, 643, 647, 648, 649, 650, 652, 653,
+ 654, 655, 686, 690, 699, 655, 640, 691, 691, 691,
+ 691, 691, 691, 691, 691, 692, 692, 692, 692, 692,
+ 692, 692, 692, 692, 693, 693, 693, 693, 693, 693,
+ 693, 693, 694, 694, 694, 694, 694, 694, 694, 694,
+ 694, 695, 695, 695, 695, 695, 695, 695, 695, 700,
+ 701, 703, 704, 705, 706, 710, 713, 714, 716, 717,
+ 694, 877, 877, 877, 877, 877, 877, 877, 877, 0,
+ 718, 719, 720, 721, 722, 700, 701, 703, 704, 705,
+ 706, 710, 713, 714, 716, 717, 694, 696, 696, 696,
+
+ 696, 696, 696, 696, 696, 696, 718, 719, 720, 721,
+ 722, 723, 724, 725, 726, 727, 728, 730, 731, 732,
+ 733, 734, 735, 736, 737, 696, 738, 740, 730, 741,
+ 742, 743, 744, 745, 730, 746, 748, 723, 724, 725,
+ 726, 727, 728, 730, 731, 732, 733, 734, 735, 736,
+ 737, 696, 738, 740, 730, 741, 742, 743, 744, 745,
+ 730, 746, 748, 749, 750, 752, 753, 754, 755, 756,
+ 757, 759, 761, 764, 766, 767, 768, 769, 770, 771,
+ 772, 773, 774, 775, 776, 777, 778, 780, 781, 749,
+ 750, 752, 753, 754, 755, 756, 757, 759, 761, 764,
+
+ 766, 767, 768, 769, 770, 771, 772, 773, 774, 775,
+ 776, 777, 778, 780, 781, 782, 783, 785, 787, 789,
+ 790, 792, 793, 794, 795, 796, 797, 798, 799, 800,
+ 802, 803, 804, 805, 807, 809, 812, 814, 815, 816,
+ 817, 782, 783, 785, 787, 789, 790, 792, 793, 794,
+ 795, 796, 797, 798, 799, 800, 802, 803, 804, 805,
+ 807, 809, 812, 814, 815, 816, 817, 818, 819, 821,
+ 822, 823, 824, 825, 826, 827, 829, 830, 832, 833,
+ 834, 836, 838, 839, 840, 842, 847, 848, 849, 850,
+ 851, 853, 854, 818, 819, 821, 822, 823, 824, 825,
+
+ 826, 827, 829, 830, 832, 833, 834, 836, 838, 839,
+ 840, 842, 847, 848, 849, 850, 851, 853, 854, 855,
+ 857, 859, 860, 861, 862, 863, 864, 865, 866, 867,
+ 869, 870, 871, 872, 876, 878, 878, 878, 878, 878,
+ 878, 878, 878, 0, 0, 855, 857, 859, 860, 861,
+ 862, 863, 864, 865, 866, 867, 869, 870, 871, 872,
+ 876, 879, 879, 879, 879, 879, 879, 879, 879, 880,
+ 880, 880, 880, 880, 880, 880, 880, 882, 882, 882,
+ 882, 882, 882, 882, 882, 0, 0, 885, 879, 886,
+ 887, 888, 892, 893, 895, 897, 880, 900, 902, 903,
+
+ 905, 906, 908, 909, 882, 883, 883, 883, 883, 883,
+ 883, 883, 883, 885, 879, 886, 887, 888, 892, 893,
+ 895, 897, 880, 900, 902, 903, 905, 906, 908, 909,
+ 882, 910, 883, 912, 913, 914, 915, 916, 917, 918,
+ 921, 923, 924, 925, 910, 926, 927, 929, 930, 931,
+ 932, 934, 938, 939, 940, 942, 946, 910, 883, 912,
+ 913, 914, 915, 916, 917, 918, 921, 923, 924, 925,
+ 910, 926, 927, 929, 930, 931, 932, 934, 938, 939,
+ 940, 942, 946, 947, 948, 949, 950, 951, 952, 953,
+ 954, 955, 958, 960, 962, 965, 974, 977, 978, 979,
+
+ 980, 981, 982, 983, 986, 987, 988, 991, 993, 947,
+ 948, 949, 950, 951, 952, 953, 954, 955, 958, 960,
+ 962, 965, 974, 977, 978, 979, 980, 981, 982, 983,
+ 986, 987, 988, 991, 993, 994, 996, 999, 1001, 1002,
+ 1004, 1006, 1007, 1008, 1011, 1012, 1014, 1017, 1019, 1024,
+ 1025, 1028, 1029, 1030, 1031, 1033, 1034, 1036, 1037, 1038,
+ 1039, 994, 996, 999, 1001, 1002, 1004, 1006, 1007, 1008,
+ 1011, 1012, 1014, 1017, 1019, 1024, 1025, 1028, 1029, 1030,
+ 1031, 1033, 1034, 1036, 1037, 1038, 1039, 1042, 1043, 1045,
+ 1046, 1047, 1048, 1053, 1055, 1056, 1057, 1058, 1059, 1060,
+
+ 1061, 1062, 1063, 1064, 1066, 1067, 1071, 1073, 1074, 1076,
+ 1077, 1080, 1081, 1042, 1043, 1045, 1046, 1047, 1048, 1053,
+ 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
+ 1066, 1067, 1071, 1073, 1074, 1076, 1077, 1080, 1081, 1082,
+ 1083, 1084, 1086, 1087, 1088, 1089, 1091, 1092, 1095, 1096,
+ 1098, 1099, 1100, 1101, 1103, 1104, 1106, 1107, 1108, 1110,
+ 1114, 1115, 1116, 1119, 1120, 1082, 1083, 1084, 1086, 1087,
+ 1088, 1089, 1091, 1092, 1095, 1096, 1098, 1099, 1100, 1101,
+ 1103, 1104, 1106, 1107, 1108, 1110, 1114, 1115, 1116, 1119,
+ 1120, 1124, 1125, 1131, 1133, 1134, 1135, 1136, 1137, 1140,
+
+ 1142, 1144, 1146, 1148, 1149, 1151, 1153, 1154, 1155, 1160,
+ 1162, 1163, 1164, 1166, 1168, 1169, 1170, 1124, 1125, 1131,
+ 1133, 1134, 1135, 1136, 1137, 1140, 1142, 1144, 1146, 1148,
+ 1149, 1151, 1153, 1154, 1155, 1160, 1162, 1163, 1164, 1166,
+ 1168, 1169, 1170, 1172, 1174, 1176, 1177, 1178, 1179, 1180,
+ 1181, 1182, 1184, 1185, 1190, 1191, 1193, 1195, 1198, 1201,
+ 1202, 1203, 1206, 1207, 1208, 1211, 1212, 1213, 1214, 1172,
+ 1174, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1184, 1185,
+ 1190, 1191, 1193, 1195, 1198, 1201, 1202, 1203, 1206, 1207,
+ 1208, 1211, 1212, 1213, 1214, 1216, 1218, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1197, 1199, 1201, 1207, 1207,
- 1208, 1208, 1209, 1209, 1210, 1210, 1211, 1211, 1212, 1212,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
- 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
-
- 1205, 1205, 1205
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 1216, 1218, 1224, 1224, 1225, 1225, 1226, 1226, 1227,
+ 1227, 1228, 1228, 1229, 1229, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222,
+
+ 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222
} ;
/* The intent behind this definition is that it'll catch
@@ -1460,7 +1464,7 @@ static yyconst flex_int16_t yy_chk[2904] =
extern YYSTYPE* frlval;
/* rules */
-#line 1464 "lex.C"
+#line 1468 "lex.C"
#define INITIAL 0
@@ -1563,7 +1567,7 @@ YY_DECL
#line 28 "lex.L"
-#line 1567 "lex.C"
+#line 1571 "lex.C"
if ( !(yy_init) )
{
@@ -1616,13 +1620,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1206 )
+ if ( yy_current_state >= 1223 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 1205 );
+ while ( yy_current_state != 1222 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1795,92 +1799,92 @@ YY_RULE_SETUP
case 31:
YY_RULE_SETUP
#line 60 "lex.L"
-{return BLOCK_;}
+{return BLT_;}
YY_BREAK
case 32:
YY_RULE_SETUP
#line 61 "lex.L"
-{return BOX_;}
+{return BLOCK_;}
YY_BREAK
case 33:
YY_RULE_SETUP
#line 62 "lex.L"
-{return BOXANNULUS_;}
+{return BOX_;}
YY_BREAK
case 34:
YY_RULE_SETUP
#line 63 "lex.L"
-{return BOXCAR_;}
+{return BOXANNULUS_;}
YY_BREAK
case 35:
YY_RULE_SETUP
#line 64 "lex.L"
-{return BOXCIRCLE_;}
+{return BOXCAR_;}
YY_BREAK
case 36:
YY_RULE_SETUP
#line 65 "lex.L"
-{return BPANDA_;}
+{return BOXCIRCLE_;}
YY_BREAK
case 37:
YY_RULE_SETUP
#line 66 "lex.L"
-{return BUFFER_;}
+{return BPANDA_;}
YY_BREAK
case 38:
YY_RULE_SETUP
#line 67 "lex.L"
-{return BW_;}
+{return BUFFER_;}
YY_BREAK
case 39:
YY_RULE_SETUP
#line 68 "lex.L"
-{return CALLBACK_;}
+{return BW_;}
YY_BREAK
case 40:
YY_RULE_SETUP
#line 69 "lex.L"
-{return CANVAS_;}
+{return CALLBACK_;}
YY_BREAK
case 41:
YY_RULE_SETUP
#line 70 "lex.L"
-{return CATALOG_;}
+{return CANVAS_;}
YY_BREAK
case 42:
YY_RULE_SETUP
#line 71 "lex.L"
-{return CELESTRIAL_;}
+{return CATALOG_;}
YY_BREAK
case 43:
YY_RULE_SETUP
#line 72 "lex.L"
-{return CENTER_;}
+{return CELESTRIAL_;}
YY_BREAK
case 44:
YY_RULE_SETUP
#line 73 "lex.L"
-{return CENTROID_;}
+{return CENTER_;}
YY_BREAK
case 45:
YY_RULE_SETUP
#line 74 "lex.L"
-{return CHANNEL_;}
+{return CENTROID_;}
YY_BREAK
case 46:
YY_RULE_SETUP
#line 75 "lex.L"
-{return CIAO_;}
+{return CHANNEL_;}
YY_BREAK
case 47:
YY_RULE_SETUP
#line 76 "lex.L"
-{return CIRCLE_;}
+{return CIAO_;}
YY_BREAK
case 48:
YY_RULE_SETUP
#line 77 "lex.L"
-{return CIRCLE3D_;}
+{return CIRCLE_;}
YY_BREAK
case 49:
YY_RULE_SETUP
@@ -1925,1346 +1929,1381 @@ YY_RULE_SETUP
case 57:
YY_RULE_SETUP
#line 86 "lex.L"
-{return COMMAND_;}
+{return COLUMN_;}
YY_BREAK
case 58:
YY_RULE_SETUP
#line 87 "lex.L"
-{return COMPASS_;}
+{return COMMAND_;}
YY_BREAK
case 59:
YY_RULE_SETUP
#line 88 "lex.L"
-{return COMPOSITE_;}
+{return COMPASS_;}
YY_BREAK
case 60:
YY_RULE_SETUP
#line 89 "lex.L"
-{return COMPRESS_;}
+{return COMPOSITE_;}
YY_BREAK
case 61:
YY_RULE_SETUP
#line 90 "lex.L"
-{return CONTOUR_;}
+{return COMPRESS_;}
YY_BREAK
case 62:
YY_RULE_SETUP
#line 91 "lex.L"
-{return CONTRAST_;}
+{return CONTOUR_;}
YY_BREAK
case 63:
YY_RULE_SETUP
#line 92 "lex.L"
-{return COORDINATES_;}
+{return CONTRAST_;}
YY_BREAK
case 64:
YY_RULE_SETUP
#line 93 "lex.L"
-{return COPY_;}
+{return COORDINATES_;}
YY_BREAK
case 65:
YY_RULE_SETUP
#line 94 "lex.L"
-{return COUNT_;}
+{return COPY_;}
YY_BREAK
case 66:
YY_RULE_SETUP
#line 95 "lex.L"
-{return CROP_;}
+{return COUNT_;}
YY_BREAK
case 67:
YY_RULE_SETUP
#line 96 "lex.L"
-{return CROSS_;}
+{return CROP_;}
YY_BREAK
case 68:
YY_RULE_SETUP
#line 97 "lex.L"
-{return CPANDA_;}
+{return CROSS_;}
YY_BREAK
case 69:
YY_RULE_SETUP
#line 98 "lex.L"
-{return CREATE_;}
+{return CPANDA_;}
YY_BREAK
case 70:
YY_RULE_SETUP
#line 99 "lex.L"
-{return CROSSHAIR_;}
+{return CREATE_;}
YY_BREAK
case 71:
YY_RULE_SETUP
#line 100 "lex.L"
-{return CUBE_;}
+{return CROSSHAIR_;}
YY_BREAK
case 72:
YY_RULE_SETUP
#line 101 "lex.L"
-{return CURSOR_;}
+{return CUBE_;}
YY_BREAK
case 73:
YY_RULE_SETUP
#line 102 "lex.L"
-{return CUT_;}
+{return CURSOR_;}
YY_BREAK
case 74:
YY_RULE_SETUP
#line 103 "lex.L"
-{return CMYK_;}
+{return CUT_;}
YY_BREAK
case 75:
YY_RULE_SETUP
#line 104 "lex.L"
-{return DASH_;}
+{return CMYK_;}
YY_BREAK
case 76:
YY_RULE_SETUP
#line 105 "lex.L"
-{return DASHLIST_;}
+{return DASH_;}
YY_BREAK
case 77:
YY_RULE_SETUP
#line 106 "lex.L"
-{return DATA_;}
+{return DASHLIST_;}
YY_BREAK
case 78:
YY_RULE_SETUP
#line 107 "lex.L"
-{return DATAMIN_;}
+{return DATA_;}
YY_BREAK
case 79:
YY_RULE_SETUP
#line 108 "lex.L"
-{return DATASEC_;}
+{return DATAMIN_;}
YY_BREAK
case 80:
YY_RULE_SETUP
#line 109 "lex.L"
-{return DEBUG_;}
+{return DATASEC_;}
YY_BREAK
case 81:
YY_RULE_SETUP
#line 110 "lex.L"
-{return DEGREES_;}
+{return DEBUG_;}
YY_BREAK
case 82:
YY_RULE_SETUP
#line 111 "lex.L"
-{return DEFAULT_;}
+{return DEGREES_;}
YY_BREAK
case 83:
YY_RULE_SETUP
#line 112 "lex.L"
-{return DELETE_;}
+{return DEFAULT_;}
YY_BREAK
case 84:
YY_RULE_SETUP
#line 113 "lex.L"
-{return DEPTH_;}
+{return DELETE_;}
YY_BREAK
case 85:
YY_RULE_SETUP
#line 114 "lex.L"
-{return DETECTOR_;}
+{return DEPTH_;}
YY_BREAK
case 86:
YY_RULE_SETUP
#line 115 "lex.L"
-{return DIAMOND_;}
+{return DETECTOR_;}
YY_BREAK
case 87:
YY_RULE_SETUP
#line 116 "lex.L"
-{return DIM_;}
+{return DIAMOND_;}
YY_BREAK
case 88:
YY_RULE_SETUP
#line 117 "lex.L"
-{return DS9_;}
+{return DIM_;}
YY_BREAK
case 89:
YY_RULE_SETUP
#line 118 "lex.L"
-{return ECLIPTIC_;}
+{return DS9_;}
YY_BREAK
case 90:
YY_RULE_SETUP
#line 119 "lex.L"
-{return ELLIPSE_;}
+{return ECLIPTIC_;}
YY_BREAK
case 91:
YY_RULE_SETUP
#line 120 "lex.L"
-{return ELLIPSEANNULUS_;}
+{return ELLIPSE_;}
YY_BREAK
case 92:
YY_RULE_SETUP
#line 121 "lex.L"
-{return EDIT_;}
+{return ELLIPSEANNULUS_;}
YY_BREAK
case 93:
YY_RULE_SETUP
#line 122 "lex.L"
-{return END_;}
+{return EDIT_;}
YY_BREAK
case 94:
YY_RULE_SETUP
#line 123 "lex.L"
-{return EPANDA_;}
+{return END_;}
YY_BREAK
case 95:
YY_RULE_SETUP
#line 124 "lex.L"
-{return EQUATORIAL_;}
+{return EPANDA_;}
YY_BREAK
case 96:
YY_RULE_SETUP
#line 125 "lex.L"
-{return ERASE_;}
+{return EQUATORIAL_;}
YY_BREAK
case 97:
YY_RULE_SETUP
#line 126 "lex.L"
-{return EXT_;}
+{return ERASE_;}
YY_BREAK
case 98:
YY_RULE_SETUP
#line 127 "lex.L"
-{return FACTOR_;}
+{return EXT_;}
YY_BREAK
case 99:
YY_RULE_SETUP
#line 128 "lex.L"
-{return FALSE_;}
+{return FACTOR_;}
YY_BREAK
case 100:
YY_RULE_SETUP
#line 129 "lex.L"
-{return FILE_;}
+{return FALSE_;}
YY_BREAK
case 101:
YY_RULE_SETUP
#line 130 "lex.L"
-{return FILTER_;}
+{return FILE_;}
YY_BREAK
case 102:
YY_RULE_SETUP
#line 131 "lex.L"
-{return FIT_;}
+{return FILTER_;}
YY_BREAK
case 103:
YY_RULE_SETUP
#line 132 "lex.L"
-{return FITS_;}
+{return FIT_;}
YY_BREAK
case 104:
YY_RULE_SETUP
#line 133 "lex.L"
-{return FITSY_;}
+{return FITS_;}
YY_BREAK
case 105:
YY_RULE_SETUP
#line 134 "lex.L"
-{return FIXED_;}
+{return FITSY_;}
YY_BREAK
case 106:
YY_RULE_SETUP
#line 135 "lex.L"
-{return FK4_;}
+{return FIXED_;}
YY_BREAK
case 107:
YY_RULE_SETUP
#line 136 "lex.L"
-{return FK4_NO_E_;}
+{return FK4_;}
YY_BREAK
case 108:
YY_RULE_SETUP
#line 137 "lex.L"
-{return FK5_;}
+{return FK4_NO_E_;}
YY_BREAK
case 109:
YY_RULE_SETUP
#line 138 "lex.L"
-{return FONT_;}
+{return FK5_;}
YY_BREAK
case 110:
YY_RULE_SETUP
#line 139 "lex.L"
-{return FROM_;}
+{return FONT_;}
YY_BREAK
case 111:
YY_RULE_SETUP
#line 140 "lex.L"
-{return FRONT_;}
+{return FROM_;}
YY_BREAK
case 112:
YY_RULE_SETUP
#line 141 "lex.L"
-{return FULL_;}
+{return FRONT_;}
YY_BREAK
case 113:
YY_RULE_SETUP
#line 142 "lex.L"
-{return FUNCTION_;}
+{return FULL_;}
YY_BREAK
case 114:
YY_RULE_SETUP
#line 143 "lex.L"
-{return GALACTIC_;}
+{return FUNCTION_;}
YY_BREAK
case 115:
YY_RULE_SETUP
#line 144 "lex.L"
-{return GAUSSIAN_;}
+{return GALACTIC_;}
YY_BREAK
case 116:
YY_RULE_SETUP
#line 145 "lex.L"
-{return GET_;}
+{return GAUSSIAN_;}
YY_BREAK
case 117:
YY_RULE_SETUP
#line 146 "lex.L"
-{return GLOBAL_;}
+{return GET_;}
YY_BREAK
case 118:
YY_RULE_SETUP
#line 147 "lex.L"
-{return GRAPHICS_;}
+{return GLOBAL_;}
YY_BREAK
case 119:
YY_RULE_SETUP
#line 148 "lex.L"
-{return GRAY_;}
+{return GRAPHICS_;}
YY_BREAK
case 120:
YY_RULE_SETUP
#line 149 "lex.L"
-{return GRID_;}
+{return GRAY_;}
YY_BREAK
case 121:
YY_RULE_SETUP
#line 150 "lex.L"
-{return GZ_;}
+{return GRID_;}
YY_BREAK
case 122:
YY_RULE_SETUP
#line 151 "lex.L"
-{return HANDLE_;}
+{return GZ_;}
YY_BREAK
case 123:
YY_RULE_SETUP
#line 152 "lex.L"
-{return HAS_;}
+{return HANDLE_;}
YY_BREAK
case 124:
YY_RULE_SETUP
#line 153 "lex.L"
-{return HEAD_;}
+{return HAS_;}
YY_BREAK
case 125:
YY_RULE_SETUP
#line 154 "lex.L"
-{return HEADER_;}
+{return HEAD_;}
YY_BREAK
case 126:
YY_RULE_SETUP
#line 155 "lex.L"
-{return HEIGHT_;}
+{return HEADER_;}
YY_BREAK
case 127:
YY_RULE_SETUP
#line 156 "lex.L"
-{return HELIOECLIPTIC_;}
+{return HEIGHT_;}
YY_BREAK
case 128:
YY_RULE_SETUP
#line 157 "lex.L"
-{return HIDE_;}
+{return HELIOECLIPTIC_;}
YY_BREAK
case 129:
YY_RULE_SETUP
#line 158 "lex.L"
-{return HIGH_;}
+{return HIDE_;}
YY_BREAK
case 130:
YY_RULE_SETUP
#line 159 "lex.L"
-{return HIGHLITE_;}
+{return HIGH_;}
YY_BREAK
case 131:
YY_RULE_SETUP
#line 160 "lex.L"
-{return HISTEQU_;}
+{return HIGHLITE_;}
YY_BREAK
case 132:
YY_RULE_SETUP
#line 161 "lex.L"
-{return HISTOGRAM_;}
+{return HISTEQU_;}
YY_BREAK
case 133:
YY_RULE_SETUP
#line 162 "lex.L"
-{return HORIZONTAL_;}
+{return HISTOGRAM_;}
YY_BREAK
case 134:
YY_RULE_SETUP
#line 163 "lex.L"
-{return ICRS_;}
+{return HORIZONTAL_;}
YY_BREAK
case 135:
YY_RULE_SETUP
#line 164 "lex.L"
-{return ID_;}
+{return ICRS_;}
YY_BREAK
case 136:
YY_RULE_SETUP
#line 165 "lex.L"
-{return IIS_;}
+{return ID_;}
YY_BREAK
case 137:
YY_RULE_SETUP
#line 166 "lex.L"
-{return IMAGE_;}
+{return IIS_;}
YY_BREAK
case 138:
YY_RULE_SETUP
#line 167 "lex.L"
-{return INCLUDE_;}
+{return IMAGE_;}
YY_BREAK
case 139:
YY_RULE_SETUP
#line 168 "lex.L"
-{return INCR_;}
+{return INCLUDE_;}
YY_BREAK
case 140:
YY_RULE_SETUP
#line 169 "lex.L"
-{return INFO_;}
+{return INCR_;}
YY_BREAK
case 141:
YY_RULE_SETUP
#line 170 "lex.L"
-{return INTEGER_;}
+{return INFO_;}
YY_BREAK
case 142:
YY_RULE_SETUP
#line 171 "lex.L"
-{return ITERATION_;}
+{return INTEGER_;}
YY_BREAK
case 143:
YY_RULE_SETUP
#line 172 "lex.L"
-{return IRAF_;}
+{return ITERATION_;}
YY_BREAK
case 144:
YY_RULE_SETUP
#line 173 "lex.L"
-{return IRAFMIN_;}
+{return IRAF_;}
YY_BREAK
case 145:
YY_RULE_SETUP
#line 174 "lex.L"
-{return J2000_;}
+{return IRAFMIN_;}
YY_BREAK
case 146:
YY_RULE_SETUP
#line 175 "lex.L"
-{return KEY_;}
+{return J2000_;}
YY_BREAK
case 147:
YY_RULE_SETUP
#line 176 "lex.L"
-{return KEYWORD_;}
+{return KEY_;}
YY_BREAK
case 148:
YY_RULE_SETUP
#line 177 "lex.L"
-{return LABEL_;}
+{return KEYWORD_;}
YY_BREAK
case 149:
YY_RULE_SETUP
#line 178 "lex.L"
-{return LENGTH_;}
+{return LABEL_;}
YY_BREAK
case 150:
YY_RULE_SETUP
#line 179 "lex.L"
-{return LEVEL_;}
+{return LENGTH_;}
YY_BREAK
case 151:
YY_RULE_SETUP
#line 180 "lex.L"
-{return LITTLEENDIAN_;}
+{return LEVEL_;}
YY_BREAK
case 152:
YY_RULE_SETUP
#line 181 "lex.L"
-{return LINE_;}
+{return LITTLEENDIAN_;}
YY_BREAK
case 153:
YY_RULE_SETUP
#line 182 "lex.L"
-{return LINEAR_;}
+{return LINE_;}
YY_BREAK
case 154:
YY_RULE_SETUP
#line 183 "lex.L"
-{return LIST_;}
+{return LINEAR_;}
YY_BREAK
case 155:
YY_RULE_SETUP
#line 184 "lex.L"
-{return LOAD_;}
+{return LIST_;}
YY_BREAK
case 156:
YY_RULE_SETUP
#line 185 "lex.L"
-{return LOCAL_;}
+{return LOAD_;}
YY_BREAK
case 157:
YY_RULE_SETUP
#line 186 "lex.L"
-{return LOG_;}
+{return LOCAL_;}
YY_BREAK
case 158:
YY_RULE_SETUP
#line 187 "lex.L"
-{return LOW_;}
+{return LOG_;}
YY_BREAK
case 159:
YY_RULE_SETUP
#line 188 "lex.L"
-{return MACOSX_;}
+{return LOW_;}
YY_BREAK
case 160:
YY_RULE_SETUP
#line 189 "lex.L"
-{return MAGNIFIER_;}
+{return MACOSX_;}
YY_BREAK
case 161:
YY_RULE_SETUP
#line 190 "lex.L"
-{return MAP_;}
+{return MAGNIFIER_;}
YY_BREAK
case 162:
YY_RULE_SETUP
#line 191 "lex.L"
-{return MARK_;}
+{return MAP_;}
YY_BREAK
case 163:
YY_RULE_SETUP
#line 192 "lex.L"
-{return MARKER_;}
+{return MARK_;}
YY_BREAK
case 164:
YY_RULE_SETUP
#line 193 "lex.L"
-{return MASK_;}
+{return MARKER_;}
YY_BREAK
case 165:
YY_RULE_SETUP
#line 194 "lex.L"
-{return MESSAGE_;}
+{return MASK_;}
YY_BREAK
case 166:
YY_RULE_SETUP
#line 195 "lex.L"
-{return METHOD_;}
+{return MESSAGE_;}
YY_BREAK
case 167:
YY_RULE_SETUP
#line 196 "lex.L"
-{return MINMAX_;}
+{return METHOD_;}
YY_BREAK
case 168:
YY_RULE_SETUP
#line 197 "lex.L"
-{return MIP_;}
+{return MINMAX_;}
YY_BREAK
case 169:
YY_RULE_SETUP
#line 198 "lex.L"
-{return MMAP_;}
+{return MIP_;}
YY_BREAK
case 170:
YY_RULE_SETUP
#line 199 "lex.L"
-{return MMAPINCR_;}
+{return MMAP_;}
YY_BREAK
case 171:
YY_RULE_SETUP
#line 200 "lex.L"
-{return MODE_;}
+{return MMAPINCR_;}
YY_BREAK
case 172:
YY_RULE_SETUP
#line 201 "lex.L"
-{return MOSAIC_;}
+{return MODE_;}
YY_BREAK
case 173:
YY_RULE_SETUP
#line 202 "lex.L"
-{return MOTION_;}
+{return MOSAIC_;}
YY_BREAK
case 174:
YY_RULE_SETUP
#line 203 "lex.L"
-{return MOVE_;}
+{return MOTION_;}
YY_BREAK
case 175:
YY_RULE_SETUP
#line 204 "lex.L"
-{return NAME_;}
+{return MOVE_;}
YY_BREAK
case 176:
YY_RULE_SETUP
#line 205 "lex.L"
-{return NAN_;}
+{return NAME_;}
YY_BREAK
case 177:
YY_RULE_SETUP
#line 206 "lex.L"
-{return NAXES_;}
+{return NAN_;}
YY_BREAK
case 178:
YY_RULE_SETUP
#line 207 "lex.L"
-{return NEW_;}
+{return NAXES_;}
YY_BREAK
case 179:
YY_RULE_SETUP
#line 208 "lex.L"
-{return NEXT_;}
+{return NEW_;}
YY_BREAK
case 180:
YY_RULE_SETUP
#line 209 "lex.L"
-{return NO_;}
+{return NEXT_;}
YY_BREAK
case 181:
YY_RULE_SETUP
#line 210 "lex.L"
-{return NONE_;}
+{return NO_;}
YY_BREAK
case 182:
YY_RULE_SETUP
#line 211 "lex.L"
-{return NOW_;}
+{return NONE_;}
YY_BREAK
case 183:
YY_RULE_SETUP
#line 212 "lex.L"
-{return NUMBER_;}
+{return NOW_;}
YY_BREAK
case 184:
YY_RULE_SETUP
#line 213 "lex.L"
-{return OBJECT_;}
+{return NUMBER_;}
YY_BREAK
case 185:
YY_RULE_SETUP
#line 214 "lex.L"
-{return OFF_;}
+{return OBJECT_;}
YY_BREAK
case 186:
YY_RULE_SETUP
#line 215 "lex.L"
-{return ON_;}
+{return OFF_;}
YY_BREAK
case 187:
YY_RULE_SETUP
#line 216 "lex.L"
-{return ONLY_;}
+{return ON_;}
YY_BREAK
case 188:
YY_RULE_SETUP
#line 217 "lex.L"
-{return OPTION_;}
+{return ONLY_;}
YY_BREAK
case 189:
YY_RULE_SETUP
#line 218 "lex.L"
-{return ORIENT_;}
+{return OPTION_;}
YY_BREAK
case 190:
YY_RULE_SETUP
#line 219 "lex.L"
-{return PAN_;}
+{return ORIENT_;}
YY_BREAK
case 191:
YY_RULE_SETUP
#line 220 "lex.L"
-{return CPANDA_;}
+{return PAN_;}
YY_BREAK
case 192:
YY_RULE_SETUP
#line 221 "lex.L"
-{return PANNER_;}
+{return CPANDA_;}
YY_BREAK
case 193:
YY_RULE_SETUP
#line 222 "lex.L"
-{return PARSER_;}
+{return PANNER_;}
YY_BREAK
case 194:
YY_RULE_SETUP
#line 223 "lex.L"
-{return PASTE_;}
+{return PARAM_;}
YY_BREAK
case 195:
YY_RULE_SETUP
#line 224 "lex.L"
-{return PERF_;}
+{return PARSER_;}
YY_BREAK
case 196:
YY_RULE_SETUP
#line 225 "lex.L"
-{return PHYSICAL_;}
+{return PASTE_;}
YY_BREAK
case 197:
YY_RULE_SETUP
#line 226 "lex.L"
-{return PIXEL_;}
+{return PERF_;}
YY_BREAK
case 198:
YY_RULE_SETUP
#line 227 "lex.L"
-{return POINT_;}
+{return PHOTO_;}
YY_BREAK
case 199:
YY_RULE_SETUP
#line 228 "lex.L"
-{return POINTER_;}
+{return PHYSICAL_;}
YY_BREAK
case 200:
YY_RULE_SETUP
#line 229 "lex.L"
-{return POLYGON_;}
+{return PIXEL_;}
YY_BREAK
case 201:
YY_RULE_SETUP
#line 230 "lex.L"
-{return POSTSCRIPT_;}
+{return PLOT2D_;}
YY_BREAK
case 202:
YY_RULE_SETUP
#line 231 "lex.L"
-{return POW_;}
+{return PLOT3D_;}
YY_BREAK
case 203:
YY_RULE_SETUP
#line 232 "lex.L"
-{return PRINT_;}
+{return POINT_;}
YY_BREAK
case 204:
YY_RULE_SETUP
#line 233 "lex.L"
-{return PRESERVE_;}
+{return POINTER_;}
YY_BREAK
case 205:
YY_RULE_SETUP
#line 234 "lex.L"
-{return PROJECTION_;}
+{return POLYGON_;}
YY_BREAK
case 206:
YY_RULE_SETUP
#line 235 "lex.L"
-{return PROPERTY_;}
+{return POSTSCRIPT_;}
YY_BREAK
case 207:
YY_RULE_SETUP
#line 236 "lex.L"
-{return PROS_;}
+{return POW_;}
YY_BREAK
case 208:
YY_RULE_SETUP
#line 237 "lex.L"
-{return PUBLICATION_;}
+{return PRINT_;}
YY_BREAK
case 209:
YY_RULE_SETUP
#line 238 "lex.L"
-{return RADIUS_;}
+{return PRESERVE_;}
YY_BREAK
case 210:
YY_RULE_SETUP
#line 239 "lex.L"
-{return REGION_;}
+{return PROJECTION_;}
YY_BREAK
case 211:
YY_RULE_SETUP
#line 240 "lex.L"
-{return REPLACE_;}
+{return PROPERTY_;}
YY_BREAK
case 212:
YY_RULE_SETUP
#line 241 "lex.L"
-{return RESAMPLE_;}
+{return PROS_;}
YY_BREAK
case 213:
YY_RULE_SETUP
#line 242 "lex.L"
-{return RESET_;}
+{return PUBLICATION_;}
YY_BREAK
case 214:
YY_RULE_SETUP
#line 243 "lex.L"
-{return RESOLUTION_;}
+{return RADIUS_;}
YY_BREAK
case 215:
YY_RULE_SETUP
#line 244 "lex.L"
-{return RGB_;}
+{return REGION_;}
YY_BREAK
case 216:
YY_RULE_SETUP
#line 245 "lex.L"
-{return ROOT_;}
+{return REPLACE_;}
YY_BREAK
case 217:
YY_RULE_SETUP
#line 246 "lex.L"
-{return ROTATE_;}
+{return RESAMPLE_;}
YY_BREAK
case 218:
YY_RULE_SETUP
#line 247 "lex.L"
-{return RULER_;}
+{return RESET_;}
YY_BREAK
case 219:
YY_RULE_SETUP
#line 248 "lex.L"
-{return SAMPLE_;}
+{return RESOLUTION_;}
YY_BREAK
case 220:
YY_RULE_SETUP
#line 249 "lex.L"
-{return SAOIMAGE_;}
+{return RGB_;}
YY_BREAK
case 221:
YY_RULE_SETUP
#line 250 "lex.L"
-{return SAOTNG_;}
+{return ROOT_;}
YY_BREAK
case 222:
YY_RULE_SETUP
#line 251 "lex.L"
-{return SAVE_;}
+{return ROTATE_;}
YY_BREAK
case 223:
YY_RULE_SETUP
#line 252 "lex.L"
-{return SCALE_;}
+{return RULER_;}
YY_BREAK
case 224:
YY_RULE_SETUP
#line 253 "lex.L"
-{return SCAN_;}
+{return SAMPLE_;}
YY_BREAK
case 225:
YY_RULE_SETUP
#line 254 "lex.L"
-{return SCIENTIFIC_;}
+{return SAOIMAGE_;}
YY_BREAK
case 226:
YY_RULE_SETUP
#line 255 "lex.L"
-{return SCOPE_;}
+{return SAOTNG_;}
YY_BREAK
case 227:
YY_RULE_SETUP
#line 256 "lex.L"
-{return SEGMENT_;}
+{return SAVE_;}
YY_BREAK
case 228:
YY_RULE_SETUP
#line 257 "lex.L"
-{return SELECT_;}
+{return SCALE_;}
YY_BREAK
case 229:
YY_RULE_SETUP
#line 258 "lex.L"
-{return SET_;}
+{return SCAN_;}
YY_BREAK
case 230:
YY_RULE_SETUP
#line 259 "lex.L"
-{return SEXAGESIMAL_;}
+{return SCIENTIFIC_;}
YY_BREAK
case 231:
YY_RULE_SETUP
#line 260 "lex.L"
-{return SHARED_;}
+{return SCOPE_;}
YY_BREAK
case 232:
YY_RULE_SETUP
#line 261 "lex.L"
-{return SHIFT_;}
+{return SEGMENT_;}
YY_BREAK
case 233:
YY_RULE_SETUP
#line 262 "lex.L"
-{return SHMID_;}
+{return SELECT_;}
YY_BREAK
case 234:
YY_RULE_SETUP
#line 263 "lex.L"
-{return SHOW_;}
+{return SET_;}
YY_BREAK
case 235:
YY_RULE_SETUP
#line 264 "lex.L"
-{return SINH_;}
+{return SEXAGESIMAL_;}
YY_BREAK
case 236:
YY_RULE_SETUP
#line 265 "lex.L"
-{return SIZE_;}
+{return SHAPE_;}
YY_BREAK
case 237:
YY_RULE_SETUP
#line 266 "lex.L"
-{return SLICE_;}
+{return SHARED_;}
YY_BREAK
case 238:
YY_RULE_SETUP
#line 267 "lex.L"
-{return SMMAP_;}
+{return SHIFT_;}
YY_BREAK
case 239:
YY_RULE_SETUP
#line 268 "lex.L"
-{return SMOOTH_;}
+{return SHMID_;}
YY_BREAK
case 240:
YY_RULE_SETUP
#line 269 "lex.L"
-{return SOCKET_;}
+{return SHOW_;}
YY_BREAK
case 241:
YY_RULE_SETUP
#line 270 "lex.L"
-{return SOCKETGZ_;}
+{return SINH_;}
YY_BREAK
case 242:
YY_RULE_SETUP
#line 271 "lex.L"
-{return SOURCE_;}
+{return SIZE_;}
YY_BREAK
case 243:
YY_RULE_SETUP
#line 272 "lex.L"
-{return SQRT_;}
+{return SLICE_;}
YY_BREAK
case 244:
YY_RULE_SETUP
#line 273 "lex.L"
-{return SQUARED_;}
+{return SMMAP_;}
YY_BREAK
case 245:
YY_RULE_SETUP
#line 274 "lex.L"
-{return SSHARED_;}
+{return SMOOTH_;}
YY_BREAK
case 246:
YY_RULE_SETUP
#line 275 "lex.L"
-{return STATUS_;}
+{return SOCKET_;}
YY_BREAK
case 247:
YY_RULE_SETUP
#line 276 "lex.L"
-{return SUM_;}
+{return SOCKETGZ_;}
YY_BREAK
case 248:
YY_RULE_SETUP
#line 277 "lex.L"
-{return SUPERGALACTIC_;}
+{return SOURCE_;}
YY_BREAK
case 249:
YY_RULE_SETUP
#line 278 "lex.L"
-{return SYSTEM_;}
+{return SQRT_;}
YY_BREAK
case 250:
YY_RULE_SETUP
#line 279 "lex.L"
-{return TABLE_;}
+{return SQUARED_;}
YY_BREAK
case 251:
YY_RULE_SETUP
#line 280 "lex.L"
-{return TAG_;}
+{return SSHARED_;}
YY_BREAK
case 252:
YY_RULE_SETUP
#line 281 "lex.L"
-{return TEMPLATE_;}
+{return STATS_;}
YY_BREAK
case 253:
YY_RULE_SETUP
#line 282 "lex.L"
-{return TEXT_;}
+{return STATUS_;}
YY_BREAK
case 254:
YY_RULE_SETUP
#line 283 "lex.L"
-{return THREADS_;}
+{return SUM_;}
YY_BREAK
case 255:
YY_RULE_SETUP
#line 284 "lex.L"
-{return THREED_;}
+{return SUPERGALACTIC_;}
YY_BREAK
case 256:
YY_RULE_SETUP
#line 285 "lex.L"
-{return THRESHOLD_;}
+{return SYSTEM_;}
YY_BREAK
case 257:
YY_RULE_SETUP
#line 286 "lex.L"
-{return THICK_;}
+{return TABLE_;}
YY_BREAK
case 258:
YY_RULE_SETUP
#line 287 "lex.L"
-{return TRANSPARENCY_;}
+{return TAG_;}
YY_BREAK
case 259:
YY_RULE_SETUP
#line 288 "lex.L"
-{return TO_;}
+{return TEMPLATE_;}
YY_BREAK
case 260:
YY_RULE_SETUP
#line 289 "lex.L"
-{return TOGGLE_;}
+{return TEXT_;}
YY_BREAK
case 261:
YY_RULE_SETUP
#line 290 "lex.L"
-{return TOPHAT_;}
+{return THREADS_;}
YY_BREAK
case 262:
YY_RULE_SETUP
#line 291 "lex.L"
-{return TRUE_;}
+{return THREED_;}
YY_BREAK
case 263:
YY_RULE_SETUP
#line 292 "lex.L"
-{return TYPE_;}
+{return THRESHOLD_;}
YY_BREAK
case 264:
YY_RULE_SETUP
#line 293 "lex.L"
-{return UNDO_;}
+{return THICK_;}
YY_BREAK
case 265:
YY_RULE_SETUP
#line 294 "lex.L"
-{return UNLOAD_;}
+{return TRANSPARENCY_;}
YY_BREAK
case 266:
YY_RULE_SETUP
#line 295 "lex.L"
-{return UNHIGHLITE_;}
+{return TO_;}
YY_BREAK
case 267:
YY_RULE_SETUP
#line 296 "lex.L"
-{return UNSELECT_;}
+{return TOGGLE_;}
YY_BREAK
case 268:
YY_RULE_SETUP
#line 297 "lex.L"
-{return UPDATE_;}
+{return TOPHAT_;}
YY_BREAK
case 269:
YY_RULE_SETUP
#line 298 "lex.L"
-{return USER_;}
+{return TRUE_;}
YY_BREAK
case 270:
YY_RULE_SETUP
#line 299 "lex.L"
-{return VALUE_;}
+{return TYPE_;}
YY_BREAK
case 271:
YY_RULE_SETUP
#line 300 "lex.L"
-{return VAR_;}
+{return UNDO_;}
YY_BREAK
case 272:
YY_RULE_SETUP
#line 301 "lex.L"
-{return VIEW_;}
+{return UNLOAD_;}
YY_BREAK
case 273:
YY_RULE_SETUP
#line 302 "lex.L"
-{return VECTOR_;}
+{return UNHIGHLITE_;}
YY_BREAK
case 274:
YY_RULE_SETUP
#line 303 "lex.L"
-{return VERSION_;}
+{return UNSELECT_;}
YY_BREAK
case 275:
YY_RULE_SETUP
#line 304 "lex.L"
-{return VERTEX_;}
+{return UPDATE_;}
YY_BREAK
case 276:
YY_RULE_SETUP
#line 305 "lex.L"
-{return VERTICAL_;}
+{return USER_;}
YY_BREAK
case 277:
YY_RULE_SETUP
#line 306 "lex.L"
-{return WARP_;}
+{return VALUE_;}
YY_BREAK
case 278:
YY_RULE_SETUP
#line 307 "lex.L"
-{return WCS_;}
+{return VAR_;}
YY_BREAK
case 279:
YY_RULE_SETUP
#line 308 "lex.L"
-{return WCSA_;}
+{return VIEW_;}
YY_BREAK
case 280:
YY_RULE_SETUP
#line 309 "lex.L"
-{return WCSB_;}
+{return VECTOR_;}
YY_BREAK
case 281:
YY_RULE_SETUP
#line 310 "lex.L"
-{return WCSC_;}
+{return VERSION_;}
YY_BREAK
case 282:
YY_RULE_SETUP
#line 311 "lex.L"
-{return WCSD_;}
+{return VERTEX_;}
YY_BREAK
case 283:
YY_RULE_SETUP
#line 312 "lex.L"
-{return WCSE_;}
+{return VERTICAL_;}
YY_BREAK
case 284:
YY_RULE_SETUP
#line 313 "lex.L"
-{return WCSF_;}
+{return WARP_;}
YY_BREAK
case 285:
YY_RULE_SETUP
#line 314 "lex.L"
-{return WCSG_;}
+{return WCS_;}
YY_BREAK
case 286:
YY_RULE_SETUP
#line 315 "lex.L"
-{return WCSH_;}
+{return WCSA_;}
YY_BREAK
case 287:
YY_RULE_SETUP
#line 316 "lex.L"
-{return WCSI_;}
+{return WCSB_;}
YY_BREAK
case 288:
YY_RULE_SETUP
#line 317 "lex.L"
-{return WCSJ_;}
+{return WCSC_;}
YY_BREAK
case 289:
YY_RULE_SETUP
#line 318 "lex.L"
-{return WCSK_;}
+{return WCSD_;}
YY_BREAK
case 290:
YY_RULE_SETUP
#line 319 "lex.L"
-{return WCSL_;}
+{return WCSE_;}
YY_BREAK
case 291:
YY_RULE_SETUP
#line 320 "lex.L"
-{return WCSM_;}
+{return WCSF_;}
YY_BREAK
case 292:
YY_RULE_SETUP
#line 321 "lex.L"
-{return WCSN_;}
+{return WCSG_;}
YY_BREAK
case 293:
YY_RULE_SETUP
#line 322 "lex.L"
-{return WCSO_;}
+{return WCSH_;}
YY_BREAK
case 294:
YY_RULE_SETUP
#line 323 "lex.L"
-{return WCSP_;}
+{return WCSI_;}
YY_BREAK
case 295:
YY_RULE_SETUP
#line 324 "lex.L"
-{return WCSQ_;}
+{return WCSJ_;}
YY_BREAK
case 296:
YY_RULE_SETUP
#line 325 "lex.L"
-{return WCSR_;}
+{return WCSK_;}
YY_BREAK
case 297:
YY_RULE_SETUP
#line 326 "lex.L"
-{return WCSS_;}
+{return WCSL_;}
YY_BREAK
case 298:
YY_RULE_SETUP
#line 327 "lex.L"
-{return WCST_;}
+{return WCSM_;}
YY_BREAK
case 299:
YY_RULE_SETUP
#line 328 "lex.L"
-{return WCSU_;}
+{return WCSN_;}
YY_BREAK
case 300:
YY_RULE_SETUP
#line 329 "lex.L"
-{return WCSV_;}
+{return WCSO_;}
YY_BREAK
case 301:
YY_RULE_SETUP
#line 330 "lex.L"
-{return WCSW_;}
+{return WCSP_;}
YY_BREAK
case 302:
YY_RULE_SETUP
#line 331 "lex.L"
-{return WCSX_;}
+{return WCSQ_;}
YY_BREAK
case 303:
YY_RULE_SETUP
#line 332 "lex.L"
-{return WCSY_;}
+{return WCSR_;}
YY_BREAK
case 304:
YY_RULE_SETUP
#line 333 "lex.L"
-{return WCSZ_;}
+{return WCSS_;}
YY_BREAK
case 305:
YY_RULE_SETUP
#line 334 "lex.L"
-{return WCS0_;}
+{return WCST_;}
YY_BREAK
case 306:
YY_RULE_SETUP
#line 335 "lex.L"
-{return WFPC2_;}
+{return WCSU_;}
YY_BREAK
case 307:
YY_RULE_SETUP
#line 336 "lex.L"
-{return WIDTH_;}
+{return WCSV_;}
YY_BREAK
case 308:
YY_RULE_SETUP
#line 337 "lex.L"
-{return WIN32_;}
+{return WCSW_;}
YY_BREAK
case 309:
YY_RULE_SETUP
#line 338 "lex.L"
-{return XML_;}
+{return WCSX_;}
YY_BREAK
case 310:
YY_RULE_SETUP
#line 339 "lex.L"
-{return XY_;}
+{return WCSY_;}
YY_BREAK
case 311:
YY_RULE_SETUP
#line 340 "lex.L"
-{return YES_;}
+{return WCSZ_;}
YY_BREAK
case 312:
YY_RULE_SETUP
#line 341 "lex.L"
-{return ZMAX_;}
+{return WCS0_;}
YY_BREAK
case 313:
YY_RULE_SETUP
#line 342 "lex.L"
-{return ZSCALE_;}
+{return WFPC2_;}
YY_BREAK
case 314:
YY_RULE_SETUP
#line 343 "lex.L"
-{return ZOOM_;}
+{return WIDTH_;}
YY_BREAK
case 315:
YY_RULE_SETUP
+#line 344 "lex.L"
+{return WIN32_;}
+ YY_BREAK
+case 316:
+YY_RULE_SETUP
#line 345 "lex.L"
+{return XML_;}
+ YY_BREAK
+case 317:
+YY_RULE_SETUP
+#line 346 "lex.L"
+{return XY_;}
+ YY_BREAK
+case 318:
+YY_RULE_SETUP
+#line 347 "lex.L"
+{return YES_;}
+ YY_BREAK
+case 319:
+YY_RULE_SETUP
+#line 348 "lex.L"
+{return ZMAX_;}
+ YY_BREAK
+case 320:
+YY_RULE_SETUP
+#line 349 "lex.L"
+{return ZSCALE_;}
+ YY_BREAK
+case 321:
+YY_RULE_SETUP
+#line 350 "lex.L"
+{return ZOOM_;}
+ YY_BREAK
+case 322:
+YY_RULE_SETUP
+#line 352 "lex.L"
{ // Integer
frlval->integer = atoi(yytext);
return INT;
}
YY_BREAK
-case 316:
-#line 351 "lex.L"
-case 317:
+case 323:
+#line 358 "lex.L"
+case 324:
YY_RULE_SETUP
-#line 351 "lex.L"
+#line 358 "lex.L"
{ // Real Number
frlval->real = atof(yytext);
return REAL;
}
YY_BREAK
-case 318:
+case 325:
YY_RULE_SETUP
-#line 356 "lex.L"
+#line 363 "lex.L"
{ // Pointer
frlval->ptr = (void*)strtoul(yytext,NULL,16);
return POINTER;
}
YY_BREAK
-case 319:
-#line 362 "lex.L"
-case 320:
+case 326:
+#line 369 "lex.L"
+case 327:
YY_RULE_SETUP
-#line 362 "lex.L"
+#line 369 "lex.L"
{ // degrees
yytext[yyleng-1] = '\0';
frlval->real = atof(yytext);
return ANGDEGREE;
}
YY_BREAK
-case 321:
-#line 369 "lex.L"
-case 322:
+case 328:
+#line 376 "lex.L"
+case 329:
YY_RULE_SETUP
-#line 369 "lex.L"
+#line 376 "lex.L"
{ // radians
yytext[yyleng-1] = '\0';
frlval->real = atof(yytext);
return ANGRADIAN;
}
YY_BREAK
-case 323:
-#line 376 "lex.L"
-case 324:
+case 330:
+#line 383 "lex.L"
+case 331:
YY_RULE_SETUP
-#line 376 "lex.L"
+#line 383 "lex.L"
{ // sexagesimal
int ll = yyleng <(FRBUFSIZE-1) ? yyleng:(FRBUFSIZE-1);
strncpy(frlval->str,yytext,ll);
@@ -3272,11 +3311,11 @@ YY_RULE_SETUP
return SEXSTR;
}
YY_BREAK
-case 325:
-#line 384 "lex.L"
-case 326:
+case 332:
+#line 391 "lex.L"
+case 333:
YY_RULE_SETUP
-#line 384 "lex.L"
+#line 391 "lex.L"
{ // HMS
int ll = yyleng <(FRBUFSIZE-1) ? yyleng:(FRBUFSIZE-1);
strncpy(frlval->str,yytext,ll);
@@ -3284,11 +3323,11 @@ YY_RULE_SETUP
return HMSSTR;
}
YY_BREAK
-case 327:
-#line 392 "lex.L"
-case 328:
+case 334:
+#line 399 "lex.L"
+case 335:
YY_RULE_SETUP
-#line 392 "lex.L"
+#line 399 "lex.L"
{ // DMS
int ll = yyleng <(FRBUFSIZE-1) ? yyleng:(FRBUFSIZE-1);
strncpy(frlval->str,yytext,ll);
@@ -3296,13 +3335,13 @@ YY_RULE_SETUP
return DMSSTR;
}
YY_BREAK
-case 329:
-/* rule 329 can match eol */
-#line 400 "lex.L"
-case 330:
-/* rule 330 can match eol */
+case 336:
+/* rule 336 can match eol */
+#line 407 "lex.L"
+case 337:
+/* rule 337 can match eol */
YY_RULE_SETUP
-#line 400 "lex.L"
+#line 407 "lex.L"
{ // Quoted String
int ll = (yyleng-2)<(FRBUFSIZE-1) ? (yyleng-2):(FRBUFSIZE-1);
strncpy(frlval->str,yytext+1,ll); // skip the " "
@@ -3310,10 +3349,10 @@ YY_RULE_SETUP
return STRING;
}
YY_BREAK
-case 331:
-/* rule 331 can match eol */
+case 338:
+/* rule 338 can match eol */
YY_RULE_SETUP
-#line 407 "lex.L"
+#line 414 "lex.L"
{ // Quoted String
int ll = (yyleng-2)<(FRBUFSIZE-1) ? (yyleng-2):(FRBUFSIZE-1);
strncpy(frlval->str,yytext+1,ll); // skip the '{'
@@ -3321,9 +3360,9 @@ YY_RULE_SETUP
return STRING;
}
YY_BREAK
-case 332:
+case 339:
YY_RULE_SETUP
-#line 414 "lex.L"
+#line 421 "lex.L"
{ // General String-- at least 2 printable chars
int ll = yyleng <(FRBUFSIZE-1) ? yyleng:(FRBUFSIZE-1);
strncpy(frlval->str,yytext,ll);
@@ -3331,25 +3370,25 @@ YY_RULE_SETUP
return STRING;
}
YY_BREAK
-case 333:
+case 340:
YY_RULE_SETUP
-#line 421 "lex.L"
+#line 428 "lex.L"
{ // White Spaces
}
YY_BREAK
-case 334:
+case 341:
YY_RULE_SETUP
-#line 424 "lex.L"
+#line 431 "lex.L"
{ // Else, return the char
return toupper(yytext[0]);
}
YY_BREAK
-case 335:
+case 342:
YY_RULE_SETUP
-#line 428 "lex.L"
+#line 435 "lex.L"
ECHO;
YY_BREAK
-#line 3353 "lex.C"
+#line 3392 "lex.C"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -3731,7 +3770,7 @@ int yyFlexLexer::yy_get_next_buffer()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1206 )
+ if ( yy_current_state >= 1223 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -3759,11 +3798,11 @@ int yyFlexLexer::yy_get_next_buffer()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1206 )
+ if ( yy_current_state >= 1223 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 1205);
+ yy_is_jam = (yy_current_state == 1222);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -4248,7 +4287,7 @@ void frfree (void * ptr )
#define YYTABLES_NAME "yytables"
-#line 428 "lex.L"
+#line 435 "lex.L"
diff --git a/saotk/frame/lex.L b/saotk/frame/lex.L
index 0590c7b..9d59277 100644
--- a/saotk/frame/lex.L
+++ b/saotk/frame/lex.L
@@ -57,6 +57,7 @@ bg {return BG_;}
bigendian {return BIGENDIAN_;}
bin {return BIN_;}
bitpix {return BITPIX_;}
+blt {return BLT_;}
block {return BLOCK_;}
box {return BOX_;}
boxannulus {return BOXANNULUS_;}
@@ -74,7 +75,6 @@ centroid {return CENTROID_;}
channel {return CHANNEL_;}
ciao {return CIAO_;}
circle {return CIRCLE_;}
-circle3d {return CIRCLE3D_;}
clear {return CLEAR_;}
clip {return CLIP_;}
color {return COLOR_;}
@@ -83,6 +83,7 @@ colormap {return COLORMAP_;}
colorscale {return COLORSCALE_;}
colorspace {return COLORSPACE_;}
cols {return COLS_;}
+column {return COLUMN_;}
command {return COMMAND_;}
compass {return COMPASS_;}
composite {return COMPOSITE_;}
@@ -219,11 +220,15 @@ orient {return ORIENT_;}
pan {return PAN_;}
panda {return CPANDA_;}
panner {return PANNER_;}
+param {return PARAM_;}
parser {return PARSER_;}
paste {return PASTE_;}
perf {return PERF_;}
+photo {return PHOTO_;}
physical {return PHYSICAL_;}
pixel {return PIXEL_;}
+plot2d {return PLOT2D_;}
+plot3d {return PLOT3D_;}
point {return POINT_;}
pointer {return POINTER_;}
polygon {return POLYGON_;}
@@ -257,6 +262,7 @@ segment {return SEGMENT_;}
select {return SELECT_;}
set {return SET_;}
sexagesimal {return SEXAGESIMAL_;}
+shape {return SHAPE_;}
shared {return SHARED_;}
shift {return SHIFT_;}
shmid {return SHMID_;}
@@ -272,6 +278,7 @@ source {return SOURCE_;}
sqrt {return SQRT_;}
squared {return SQUARED_;}
sshared {return SSHARED_;}
+stats {return STATS_;}
status {return STATUS_;}
sum {return SUM_;}
supergalactic {return SUPERGALACTIC_;}
diff --git a/saotk/frame/line.C b/saotk/frame/line.C
index 227ea16..5bd6386 100644
--- a/saotk/frame/line.C
+++ b/saotk/frame/line.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "line.h"
-#include "framebase.h"
#include "fitsimage.h"
Line::Line(const Line& a) : BaseLine(a)
@@ -23,14 +22,14 @@ Line::Line(Base* p, const Vector& ptr1, const Vector& ptr2,
p1Arrow = a1;
p2Arrow = a2;
- strcpy(type,"line");
+ strcpy(type_,"line");
handle = new Vector[2];
numHandle = 2;
updateBBox();
}
-void Line::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Line::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
GC lgc = renderXGC(mode);
@@ -54,17 +53,17 @@ void Line::renderPS(int mode)
{
renderPSGC(mode);
- Vector aa = parent->mapFromRef(p1,CANVAS);
- Vector bb = parent->mapFromRef(p2,CANVAS);
+ Vector aa = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p2,Coord::CANVAS);
if (p1Arrow) {
- aa = modifyArrow(p2,p1,CANVAS);
- renderPSArrow(p2,p1,CANVAS);
+ aa = modifyArrow(p2,p1,Coord::CANVAS);
+ renderPSArrow(p2,p1,Coord::CANVAS);
}
if (p2Arrow) {
- bb = modifyArrow(p1,p2,CANVAS);
- renderPSArrow(p1,p2,CANVAS);
+ bb = modifyArrow(p1,p2,Coord::CANVAS);
+ renderPSArrow(p1,p2,Coord::CANVAS);
}
ostringstream str;
@@ -80,17 +79,17 @@ void Line::renderMACOSX()
{
renderMACOSXGC();
- Vector aa = parent->mapFromRef(p1,CANVAS);
- Vector bb = parent->mapFromRef(p2,CANVAS);
+ Vector aa = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p2,Coord::CANVAS);
if (p1Arrow) {
- aa = modifyArrow(p2,p1,CANVAS);
- renderMACOSXArrow(p2,p1,CANVAS);
+ aa = modifyArrow(p2,p1,Coord::CANVAS);
+ renderMACOSXArrow(p2,p1,Coord::CANVAS);
}
if (p2Arrow) {
- bb = modifyArrow(p1,p2,CANVAS);
- renderMACOSXArrow(p1,p2,CANVAS);
+ bb = modifyArrow(p1,p2,Coord::CANVAS);
+ renderMACOSXArrow(p1,p2,Coord::CANVAS);
}
macosxDrawLine(aa,bb);
@@ -102,17 +101,17 @@ void Line::renderWIN32()
{
renderWIN32GC();
- Vector aa = parent->mapFromRef(p1,CANVAS);
- Vector bb = parent->mapFromRef(p2,CANVAS);
+ Vector aa = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p2,Coord::CANVAS);
if (p1Arrow) {
- aa = modifyArrow(p2,p1,CANVAS);
- renderWIN32Arrow(p2,p1,CANVAS);
+ aa = modifyArrow(p2,p1,Coord::CANVAS);
+ renderWIN32Arrow(p2,p1,Coord::CANVAS);
}
if (p2Arrow) {
- bb = modifyArrow(p1,p2,CANVAS);
- renderWIN32Arrow(p1,p2,CANVAS);
+ bb = modifyArrow(p1,p2,Coord::CANVAS);
+ renderWIN32Arrow(p1,p2,Coord::CANVAS);
}
win32DrawLine(aa,bb);
@@ -128,9 +127,9 @@ void Line::updateHandles()
if (parent->isIIS())
angle = -angle;
- // generate handles in CANVAS coords
- handle[0] = parent->mapFromRef(p1,CANVAS);
- handle[1] = parent->mapFromRef(p2,CANVAS);
+ // generate handles in Coord::CANVAS coords
+ handle[0] = parent->mapFromRef(p1,Coord::CANVAS);
+ handle[1] = parent->mapFromRef(p2,Coord::CANVAS);
}
void Line::setArrows(int w1, int w2)
@@ -140,23 +139,61 @@ void Line::setArrows(int w1, int w2)
updateBBox();
}
+void Line::analysis(AnalysisMethod mm, int which)
+{
+ switch (mm) {
+ case PLOT2D:
+ if (!analysisPlot2d_ && which) {
+ addCallBack(CallBack::MOVECB, analysisPlot2dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::EDITCB, analysisPlot2dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::UPDATECB, analysisPlot2dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::DELETECB, analysisPlot2dCB_[1],
+ parent->options->cmdName);
+ }
+ if (analysisPlot2d_ && !which) {
+ deleteCallBack(CallBack::MOVECB, analysisPlot2dCB_[0]);
+ deleteCallBack(CallBack::EDITCB, analysisPlot2dCB_[0]);
+ deleteCallBack(CallBack::UPDATECB, analysisPlot2dCB_[0]);
+ deleteCallBack(CallBack::DELETECB, analysisPlot2dCB_[1]);
+ }
+
+ analysisPlot2d_ = which;
+ break;
+ }
+}
+
+void Line::analysisPlot2d(char* xname, char* yname,
+ char* xcname, char* ycname)
+{
+ double* x;
+ double* y;
+ double* xc;
+ double* yc;
+
+ int num = parent->markerAnalysisPlot2d(&x, &y, &xc, &yc, this, p1, p2, 0);
+ analysisPlot2dResult(xname, yname, xcname, ycname, x, y, xc, yc, num);
+}
+
// list
-void Line::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Line::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v1 = ptr->mapFromRef(p1,sys);
Vector v2 = ptr->mapFromRef(p2,sys);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
<< v2[0] << ',' << v2[1] << ')';
}
break;
@@ -164,15 +201,15 @@ void Line::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v1 = ptr->mapFromRef(p1,sys,sky);
Vector v2 = ptr->mapFromRef(p2,sys,sky);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1]
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1]
<< ',' << v2[0] << ',' << v2[1] << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
char ra1[16], ra2[16];
@@ -189,7 +226,7 @@ void Line::list(ostream& str, CoordSystem sys, SkyFrame sky,
istringstream wcs(x);
wcs >> ra2 >> dec2;
}
- str << type << '(' << ra1 << ',' << dec1 << ','
+ str << type_ << '(' << ra1 << ',' << dec1 << ','
<< ra2 << ',' << dec2 << ')';
}
break;
@@ -198,7 +235,7 @@ void Line::list(ostream& str, CoordSystem sys, SkyFrame sky,
else {
Vector v1 = ptr->mapFromRef(p1,sys);
Vector v2 = ptr->mapFromRef(p2,sys);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1]
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1]
<< ',' << v2[0] << ',' << v2[1] << ')';
}
}
@@ -215,6 +252,7 @@ void Line::listPost(ostream& str, int conj, int strip)
str << " ||";
str << " # line=" << p1Arrow << ' ' << p2Arrow;
+
listProperties(str, 0);
}
else {
@@ -225,8 +263,8 @@ void Line::listPost(ostream& str, int conj, int strip)
}
}
-void Line::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Line::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
Vector vv[2];
@@ -234,7 +272,7 @@ void Line::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
vv[1] = p2;
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowPoint(ptr,sys,sky,format,vv,2);
XMLRow(XMLPARAM,p1Arrow);
@@ -244,36 +282,36 @@ void Line::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
XMLRowEnd(str);
}
-void Line::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Line::listSAOtng(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
listSAOtngPre(str, strip);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v1 = ptr->mapFromRef(p1,IMAGE);
- Vector v2 = ptr->mapFromRef(p2,IMAGE);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
+ Vector v1 = ptr->mapFromRef(p1,Coord::IMAGE);
+ Vector v2 = ptr->mapFromRef(p2,Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
<< v2[0] << ',' << v2[1] << ')';
}
break;
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v1 = ptr->mapFromRef(p1,sys,sky);
Vector v2 = ptr->mapFromRef(p2,sys,sky);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
<< v2[0] << ',' << v2[1] << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
char ra1[16], ra2[16];
@@ -290,7 +328,7 @@ void Line::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
istringstream wcs(x);
wcs >> ra2 >> dec2;
}
- str << type << '(' << ra1 << ',' << dec1 << ','
+ str << type_ << '(' << ra1 << ',' << dec1 << ','
<< ra2 << ',' << dec2 << ')';
}
break;
diff --git a/saotk/frame/line.h b/saotk/frame/line.h
index 3074160..bce97b1 100644
--- a/saotk/frame/line.h
+++ b/saotk/frame/line.h
@@ -13,7 +13,7 @@ protected:
int p2Arrow;
protected:
- void renderX(Drawable, InternalSystem, RenderMode);
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
void renderPS(int);
#ifdef _MACOSX
void renderMACOSX();
@@ -40,10 +40,13 @@ public:
int getP1Arrow() {return p1Arrow;}
int getP2Arrow() {return p2Arrow;}
- virtual void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- virtual void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
+ void analysis(AnalysisMethod, int);
+ void analysisPlot2d(char*, char*, char*, char*);
+
+ virtual void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ virtual void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
virtual void listPost(ostream&, int, int);
- void listSAOtng(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
+ void listSAOtng(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
};
#endif
diff --git a/saotk/frame/marker.C b/saotk/frame/marker.C
index 0936de3..51b758e 100644
--- a/saotk/frame/marker.C
+++ b/saotk/frame/marker.C
@@ -3,17 +3,28 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "marker.h"
-#include "framebase.h"
#include "fitsimage.h"
+#include "blt.h"
+#include "bltVector.h"
static int markerSeqID = 1;
+char* Marker::analysisPlot2dCB_[] = {
+ "MarkerAnalysisPlot2dCB",
+ "MarkerAnalysisPlot2dDeleteCB"
+};
+
+char* Marker::analysisPlot3dCB_[] = {
+ "MarkerAnalysisPlot3dCB",
+ "MarkerAnalysisPlot3dDeleteCB"
+};
+
// Marker Members Public
Marker::Marker(const Marker& a)
{
id = a.id;
- strcpy(type, a.type);
+ strcpy(type_, a.type_);
parent = a.parent;
center = a.center;
@@ -62,6 +73,12 @@ Marker::Marker(const Marker& a)
previous_ = NULL;
next_ = NULL;
+
+ analysisPlot2d_ = a.analysisPlot2d_;
+ analysisPlot3d_ = a.analysisPlot3d_;
+ analysisParam_ = a.analysisParam_;
+ analysisSystem_ = a.analysisSystem_;
+ analysisSky_ = a.analysisSky_;
}
Marker::Marker(Base* p, const Vector& ctr,
@@ -72,7 +89,7 @@ Marker::Marker(Base* p, const Vector& ctr,
const List<Tag>& tg, const List<CallBack>& cb)
{
id = markerSeqID++;
- type[0] = '\0';
+ type_[0] = '\0';
parent = p;
center = ctr;
@@ -115,6 +132,12 @@ Marker::Marker(Base* p, const Vector& ctr,
previous_ = NULL;
next_ = NULL;
+
+ analysisPlot2d_ =0;
+ analysisPlot3d_ =0;
+ analysisParam_ = AVERAGE;
+ analysisSystem_ = Coord::PHYSICAL;
+ analysisSky_ = Coord::FK5;
}
Marker::~Marker()
@@ -144,7 +167,7 @@ Marker::~Marker()
doCallBack(CallBack::DELETECB);
}
-void Marker::draw(Drawable drawable, InternalSystem sys,
+void Marker::draw(Drawable drawable, Coord::InternalSystem sys,
int tt, RenderMode mode, HandleMode hh)
{
if (hh==HANDLES)
@@ -156,7 +179,7 @@ void Marker::draw(Drawable drawable, InternalSystem sys,
renderXInclude(drawable, sys, mode);
}
-void Marker::renderXInclude(Drawable drawable, InternalSystem sys,
+void Marker::renderXInclude(Drawable drawable, Coord::InternalSystem sys,
RenderMode mode)
{
if (!(properties & INCLUDE)) {
@@ -172,7 +195,7 @@ void Marker::renderXInclude(Drawable drawable, InternalSystem sys,
}
}
-void Marker::renderXText(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Marker::renderXText(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
if (text && *text && tkfont_) {
GC lgc;
@@ -212,7 +235,7 @@ void Marker::renderXText(Drawable drawable, InternalSystem sys, RenderMode mode)
}
void Marker::renderXArrow(Drawable drawable, const Vector& p1,
- const Vector& p2, InternalSystem sys, GC lgc)
+ const Vector& p2, Coord::InternalSystem sys, GC lgc)
{
Vector* vv = arrow(p1,p2,sys);
XPoint dd[6];
@@ -327,7 +350,7 @@ void Marker::renderPSText(int mode)
}
void Marker::renderPSArrow(const Vector& p1, const Vector& p2,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
Vector* vv = arrow(p1,p2,sys);
ostringstream str;
@@ -515,7 +538,7 @@ void Marker::renderWIN32Text()
}
void Marker::renderWIN32Arrow(const Vector& p1, const Vector& p2,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
Vector* vv = arrow(p1,p2,sys);
Vector dd[6];
@@ -667,7 +690,7 @@ void Marker::rotate(const Vector& v, int h)
// handles are in canvas coords
double a = (v * Translate(-center) * flip_).angle();
- double b = ((parent->mapToRef(handle[h-1],CANVAS) * Translate(-center) * flip_)).angle();
+ double b = ((parent->mapToRef(handle[h-1],Coord::CANVAS) * Translate(-center) * flip_)).angle();
angle -= a-b;
updateBBox();
@@ -1007,6 +1030,13 @@ int Marker::deleteCallBack(CallBack::Type t, const char* proc)
return TCL_ERROR;
}
+int Marker::isIn(const Vector& vv, Coord::InternalSystem sys)
+{
+ Vector rr = parent->mapToRef(vv,sys);
+ Vector ss = parent->mapFromRef(rr,Coord::CANVAS);
+ return bbox.isIn(ss);
+}
+
int Marker::isVisible(const BBox& b)
{
// assume visible, prove otherwise
@@ -1045,17 +1075,17 @@ void Marker::doCallBack(CallBack::Type t)
double Marker::calcAngle()
{
switch (parent->getOrientation()) {
- case NONE:
- case XY:
+ case Coord::NORMAL:
+ case Coord::XY:
return angle + parent->getRotation();
- case XX:
- case YY:
+ case Coord::XX:
+ case Coord::YY:
return -angle + parent->getRotation();
}
}
Vector Marker::modifyArrow(const Vector& p1, const Vector& p2,
- InternalSystem sys)
+ Coord::InternalSystem sys)
{
const int tip = 6; // length from end of line to tip of arrow
@@ -1067,7 +1097,7 @@ Vector Marker::modifyArrow(const Vector& p1, const Vector& p2,
return nn * Scale(ll-tip) * Translate(aa);
}
-Vector* Marker::arrow(const Vector& p1, const Vector& p2, InternalSystem sys)
+Vector* Marker::arrow(const Vector& p1, const Vector& p2, Coord::InternalSystem sys)
{
Vector p3;
if (((p2-p1)[0]) == 0)
@@ -1112,6 +1142,45 @@ Vector* Marker::arrow(const Vector& p1, const Vector& p2, InternalSystem sys)
return ww;
}
+void Marker::analysisPlot2dResult(char* xname, char* yname,
+ char* xcname, char* ycname,
+ double* x, double* y,
+ double* xc, double* yc, int num)
+{
+ Blt_Vector* xx;
+ Blt_GetVector(parent->getInterp(), xname, &xx);
+ Blt_ResetVector(xx, x, num, num*sizeof(double), TCL_DYNAMIC);
+
+ Blt_Vector* yy;
+ Blt_GetVector(parent->getInterp(), yname, &yy);
+ Blt_ResetVector(yy, y, num, num*sizeof(double), TCL_DYNAMIC);
+
+ Blt_Vector* xxc;
+ Blt_GetVector(parent->getInterp(), xcname, &xxc);
+ Blt_ResetVector(xxc, xc, num, num*sizeof(double), TCL_DYNAMIC);
+
+ Blt_Vector* yyc;
+ Blt_GetVector(parent->getInterp(), ycname, &yyc);
+ Blt_ResetVector(yyc, yc, num, num*sizeof(double), TCL_DYNAMIC);
+
+ return;
+}
+
+void Marker::analysisPlot3dResult(char* xname, char* yname,
+ double* x, double* y,
+ int num)
+{
+ Blt_Vector* xx;
+ Blt_GetVector(parent->getInterp(), xname, &xx);
+ Blt_ResetVector(xx, x, num, num*sizeof(double), TCL_DYNAMIC);
+
+ Blt_Vector* yy;
+ Blt_GetVector(parent->getInterp(), yname, &yy);
+ Blt_ResetVector(yy, y, num, num*sizeof(double), TCL_DYNAMIC);
+
+ return;
+}
+
Matrix Marker::fwdMatrix()
{
return Rotate(angle) * flip_ * Translate(center);
@@ -1122,32 +1191,32 @@ Matrix Marker::bckMatrix()
return Translate(-center) * flip_ * Rotate(-angle);
}
-Vector Marker::fwdMap(const Vector& vv, InternalSystem sys)
+Vector Marker::fwdMap(const Vector& vv, Coord::InternalSystem sys)
{
return parent->mapFromRef(vv*Rotate(angle)*flip_*Translate(center),sys);
}
-Vector Marker::bckMap(const Vector& vv, InternalSystem sys)
+Vector Marker::bckMap(const Vector& vv, Coord::InternalSystem sys)
{
- return parent->mapToRef(vv,CANVAS)*Translate(-center)*flip_* Rotate(-angle);
+ return parent->mapToRef(vv,sys)*Translate(-center)*flip_* Rotate(-angle);
}
-void Marker::setMatrices(InternalSystem sys, Matrix* fwd, Matrix* bck)
+void Marker::setMatrices(Coord::InternalSystem sys, Matrix* fwd, Matrix* bck)
{
switch (sys) {
- case WIDGET:
+ case Coord::WIDGET:
*fwd = parent->refToWidget;
*bck = parent->widgetToRef;
break;
- case CANVAS:
+ case Coord::CANVAS:
*fwd = parent->refToCanvas;
*bck = parent->canvasToRef;
break;
- case WINDOW:
+ case Coord::WINDOW:
*fwd = parent->refToWindow;
*bck = parent->windowToRef;
break;
- case MAGNIFIER:
+ case Coord::MAGNIFIER:
*fwd = parent->refToMagnifier;
*bck = parent->magnifierToRef;
break;
@@ -1156,7 +1225,7 @@ void Marker::setMatrices(InternalSystem sys, Matrix* fwd, Matrix* bck)
// list
-void Marker::listPre(ostream& str, CoordSystem sys, SkyFrame sky,
+void Marker::listPre(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
FitsImage* ptr, int strip, int hash)
{
// no props for semicolons
@@ -1164,10 +1233,10 @@ void Marker::listPre(ostream& str, CoordSystem sys, SkyFrame sky,
FitsImage* fits = parent->findFits();
if (fits && fits->nextMosaic()) {
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
str << "# tile " << parent->findFits(ptr) << endl;
break;
@@ -1192,7 +1261,7 @@ void Marker::listPost(ostream& str, int conj, int strip)
if (conj)
str << " ||";
- listProperties(str, 1);
+ listProperties(str,1);
}
else {
if (conj)
@@ -1339,26 +1408,26 @@ void Marker::listSAOimagePost(ostream& str, int strip)
str << (strip ? ';' : '\n');
}
-void Marker::listXY(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Marker::listXY(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
str << setprecision(8) << ptr->mapFromRef(center,sys);
break;
default:
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
str << setprecision(8) << ptr->mapFromRef(center,sys,sky);
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -1466,7 +1535,7 @@ void Marker::XMLRow(XMLColName col, char** val, int cnt)
XMLCol[col] = dupstr(str.str().c_str());
}
-void Marker::XMLRowProps(FitsImage* ptr, CoordSystem sys)
+void Marker::XMLRowProps(FitsImage* ptr, Coord::CoordSystem sys)
{
// tile
{
@@ -1476,10 +1545,10 @@ void Marker::XMLRowProps(FitsImage* ptr, CoordSystem sys)
FitsImage* fits = parent->findFits();
if (fits && fits->nextMosaic()) {
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
str << parent->findFits(ptr) << ends;
break;
default:
@@ -1611,14 +1680,14 @@ void Marker::XMLRowProp(XMLColName col, Property prop)
XMLCol[col] = dupstr(str.str().c_str());
}
-void Marker::XMLRowPoint(FitsImage* ptr, CoordSystem sys, SkyFrame sky,
- SkyFormat format, Vector vv)
+void Marker::XMLRowPoint(FitsImage* ptr, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, Vector vv)
{
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(vv,sys);
XMLRow(XMLX,v[0]);
@@ -1629,14 +1698,14 @@ void Marker::XMLRowPoint(FitsImage* ptr, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(vv,sys,sky);
XMLRow(XMLX,v[0]);
XMLRow(XMLY,v[1]);
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(vv,sys,sky,format,buf,64);
@@ -1661,14 +1730,14 @@ void Marker::XMLRowPoint(FitsImage* ptr, CoordSystem sys, SkyFrame sky,
}
}
-void Marker::XMLRowPoint(FitsImage* ptr, CoordSystem sys, SkyFrame sky,
- SkyFormat format, Vector* vv, int cnt)
+void Marker::XMLRowPoint(FitsImage* ptr, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, Vector* vv, int cnt)
{
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
double xx[cnt];
double yy[cnt];
@@ -1685,7 +1754,7 @@ void Marker::XMLRowPoint(FitsImage* ptr, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
double xx[cnt];
double yy[cnt];
@@ -1698,7 +1767,7 @@ void Marker::XMLRowPoint(FitsImage* ptr, CoordSystem sys, SkyFrame sky,
XMLRow(XMLYV,yy,cnt);
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char* xx[cnt];
char* yy[cnt];
@@ -1740,34 +1809,34 @@ void Marker::XMLRowPoint(FitsImage* ptr, CoordSystem sys, SkyFrame sky,
}
}
-void Marker::XMLRowRadiusX(FitsImage* ptr, CoordSystem sys, Vector vv)
+void Marker::XMLRowRadiusX(FitsImage* ptr, Coord::CoordSystem sys, Vector vv)
{
- double rr = ptr->mapLenFromRef(vv[0],sys,ARCSEC);
+ double rr = ptr->mapLenFromRef(vv[0],sys,Coord::ARCSEC);
XMLRow(XMLR,rr);
}
-void Marker::XMLRowRadiusX(FitsImage* ptr, CoordSystem sys, Vector* vv, int cnt)
+void Marker::XMLRowRadiusX(FitsImage* ptr, Coord::CoordSystem sys, Vector* vv, int cnt)
{
double rr[cnt];
for (int ii=0; ii<cnt; ii++)
- rr[ii] = ptr->mapLenFromRef(vv[ii][0],sys,ARCSEC);
+ rr[ii] = ptr->mapLenFromRef(vv[ii][0],sys,Coord::ARCSEC);
XMLRow(XMLRV,rr,cnt);
}
-void Marker::XMLRowRadius(FitsImage* ptr, CoordSystem sys, Vector vv)
+void Marker::XMLRowRadius(FitsImage* ptr, Coord::CoordSystem sys, Vector vv)
{
- Vector v = ptr->mapLenFromRef(vv,sys,ARCSEC);
+ Vector v = ptr->mapLenFromRef(vv,sys,Coord::ARCSEC);
XMLRow(XMLR,v[0]);
XMLRow(XMLR2,v[1]);
}
-void Marker::XMLRowRadius(FitsImage* ptr, CoordSystem sys, Vector* vv, int cnt)
+void Marker::XMLRowRadius(FitsImage* ptr, Coord::CoordSystem sys, Vector* vv, int cnt)
{
double rr[cnt];
double rr2[cnt];
for (int ii=0; ii<cnt; ii++) {
- Vector v = ptr->mapLenFromRef(vv[ii],sys,ARCSEC);
+ Vector v = ptr->mapLenFromRef(vv[ii],sys,Coord::ARCSEC);
rr[ii] = v[0];
rr2[ii] = v[1];
}
@@ -1776,12 +1845,12 @@ void Marker::XMLRowRadius(FitsImage* ptr, CoordSystem sys, Vector* vv, int cnt)
XMLRow(XMLRV2,rr2,cnt);
}
-void Marker::XMLRowAng(CoordSystem sys, SkyFrame sky)
+void Marker::XMLRowAng(Coord::CoordSystem sys, Coord::SkyFrame sky)
{
XMLRow(XMLANG, radToDeg(parent->mapAngleFromRef(angle,sys,sky)));
}
-void Marker::XMLRowAng(CoordSystem sys, SkyFrame sky, double* ang, int cnt)
+void Marker::XMLRowAng(Coord::CoordSystem sys, Coord::SkyFrame sky, double* ang, int cnt)
{
double aa[cnt];
for (int ii=0; ii<cnt; ii++)
diff --git a/saotk/frame/marker.h b/saotk/frame/marker.h
index 5f5422f..69fc25c 100644
--- a/saotk/frame/marker.h
+++ b/saotk/frame/marker.h
@@ -37,9 +37,12 @@ public:
enum RenderMode {SRC,XOR};
enum HandleMode {HANDLES,NOHANDLES};
+ enum AnalysisMethod {STATS,PLOT2D,PLOT3D};
+ enum AnalysisParamType {SUM,AVERAGE};
+
protected:
int id;
- char type[64];
+ char type_[64];
Base* parent;
Vector center; // ref coordinates
@@ -78,15 +81,23 @@ protected:
Marker* previous_;
Marker* next_;
- Vector* arrow(const Vector&, const Vector&, InternalSystem);
+ Vector* arrow(const Vector&, const Vector&, Coord::InternalSystem);
char* XMLCol[XMLNUMCOL];
+ int analysisPlot2d_;
+ static char* analysisPlot2dCB_[];
+ int analysisPlot3d_;
+ static char* analysisPlot3dCB_[];
+ AnalysisParamType analysisParam_;
+ Coord::CoordSystem analysisSystem_;
+ Coord::SkyFrame analysisSky_;
+
protected:
- virtual void renderX(Drawable, InternalSystem, RenderMode) =0;
- virtual void renderXInclude(Drawable drawable, InternalSystem, RenderMode mode);
- virtual void renderXText(Drawable, InternalSystem, RenderMode);
- void renderXArrow(Drawable, const Vector&, const Vector&, InternalSystem, GC);
+ virtual void renderX(Drawable, Coord::InternalSystem, RenderMode) =0;
+ virtual void renderXInclude(Drawable drawable, Coord::InternalSystem, RenderMode mode);
+ virtual void renderXText(Drawable, Coord::InternalSystem, RenderMode);
+ void renderXArrow(Drawable, const Vector&, const Vector&, Coord::InternalSystem, GC);
void renderXHandles(Drawable);
virtual GC renderXGC(RenderMode);
virtual void renderXLineDash(GC);
@@ -95,7 +106,7 @@ protected:
virtual void renderPS(int mode) =0;
virtual void renderPSInclude(int);
virtual void renderPSText(int);
- void renderPSArrow(const Vector&, const Vector&, InternalSystem);
+ void renderPSArrow(const Vector&, const Vector&, Coord::InternalSystem);
virtual void renderPSGC(int);
virtual void renderPSLineDash();
void renderPSLineNoDash();
@@ -105,7 +116,7 @@ protected:
virtual void renderMACOSX() =0;
virtual void renderMACOSXInclude();
virtual void renderMACOSXText();
- void renderMACOSXArrow(const Vector&, const Vector&, InternalSystem);
+ void renderMACOSXArrow(const Vector&, const Vector&, Coord::InternalSystem);
virtual void renderMACOSXGC();
virtual void renderMACOSXLineDash();
void renderMACOSXLineNoDash();
@@ -115,21 +126,25 @@ protected:
virtual void renderWIN32() =0;
virtual void renderWIN32Include();
virtual void renderWIN32Text();
- void renderWIN32Arrow(const Vector&, const Vector&, InternalSystem);
+ void renderWIN32Arrow(const Vector&, const Vector&, Coord::InternalSystem);
virtual void renderWIN32GC();
virtual void renderWIN32LineDash();
void renderWIN32LineNoDash();
#endif
- void setMatrices(InternalSystem, Matrix*, Matrix*);
+ void analysisPlot2dResult(char*, char*, char*, char*,
+ double*, double*, double*, double*, int);
+ void analysisPlot3dResult(char*, char*, double*, double*, int);
+
+ void setMatrices(Coord::InternalSystem, Matrix*, Matrix*);
double calcAngle();
- Vector modifyArrow(const Vector&, const Vector&, InternalSystem);
+ Vector modifyArrow(const Vector&, const Vector&, Coord::InternalSystem);
virtual void updateHandles() =0;
virtual void calcAllBBox();
void initFonts(const char*);
- void listPre(ostream&, CoordSystem, SkyFrame, FitsImage*, int, int);
+ void listPre(ostream&, Coord::CoordSystem, Coord::SkyFrame, FitsImage*, int, int);
virtual void listPost(ostream&, int, int);
void listCiaoPre(ostream&);
@@ -148,8 +163,8 @@ protected:
virtual Matrix fwdMatrix();
virtual Matrix bckMatrix();
- virtual Vector fwdMap(const Vector&, InternalSystem);
- virtual Vector bckMap(const Vector&, InternalSystem);
+ virtual Vector fwdMap(const Vector&, Coord::InternalSystem);
+ virtual Vector bckMap(const Vector&, Coord::InternalSystem);
void XMLRowInit();
void XMLRow(XMLColName,int);
@@ -158,21 +173,21 @@ protected:
void XMLRow(XMLColName,double*,int);
void XMLRow(XMLColName,char*);
void XMLRow(XMLColName,char**, int);
- void XMLRowProps(FitsImage*, CoordSystem);
+ void XMLRowProps(FitsImage*, Coord::CoordSystem);
void XMLRowEnd(ostream&);
void XMLRowProp(XMLColName, Property);
- void XMLRowCenter(FitsImage* fits, CoordSystem sys, SkyFrame sky, SkyFormat format) {XMLRowPoint(fits, sys, sky, format, center);}
- void XMLRowPoint(FitsImage*, CoordSystem, SkyFrame, SkyFormat, Vector);
- void XMLRowPoint(FitsImage*, CoordSystem, SkyFrame, SkyFormat, Vector*, int);
- void XMLRowRadiusX(FitsImage*, CoordSystem, Vector);
- void XMLRowRadiusX(FitsImage*, CoordSystem, Vector*, int);
- void XMLRowRadius(FitsImage*, CoordSystem, Vector);
- void XMLRowRadius(FitsImage*, CoordSystem, Vector*, int);
- void XMLRowAng(CoordSystem, SkyFrame);
- void XMLRowAng(CoordSystem, SkyFrame, double*, int);
+ void XMLRowCenter(FitsImage* fits, Coord::CoordSystem sys, Coord::SkyFrame sky, Coord::SkyFormat format) {XMLRowPoint(fits, sys, sky, format, center);}
+ void XMLRowPoint(FitsImage*, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Vector);
+ void XMLRowPoint(FitsImage*, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, Vector*, int);
+ void XMLRowRadiusX(FitsImage*, Coord::CoordSystem, Vector);
+ void XMLRowRadiusX(FitsImage*, Coord::CoordSystem, Vector*, int);
+ void XMLRowRadius(FitsImage*, Coord::CoordSystem, Vector);
+ void XMLRowRadius(FitsImage*, Coord::CoordSystem, Vector*, int);
+ void XMLRowAng(Coord::CoordSystem, Coord::SkyFrame);
+ void XMLRowAng(Coord::CoordSystem, Coord::SkyFrame, double*, int);
char* XMLQuote(char*);
-public:
+ public:
Marker(const Marker&);
Marker(Base* p, const Vector& v, double ang,
const char* clr, int* dsh,
@@ -181,7 +196,7 @@ public:
const List<Tag>& tag, const List<CallBack>& cb);
virtual ~Marker();
- virtual void draw(Drawable, InternalSystem, int, RenderMode, HandleMode);
+ virtual void draw(Drawable, Coord::InternalSystem, int, RenderMode, HandleMode);
virtual void ps(int,int);
#ifdef _MACOSX
virtual void macosx(int);
@@ -212,7 +227,10 @@ public:
virtual void rotate(const Vector& v, int h);
virtual void rotateEnd();
- virtual int isIn(const Vector& v) {return bbox.isIn(v);}
+ virtual void analysis(AnalysisMethod, int) {}
+
+ virtual int isIn(const Vector& vv) {return bbox.isIn(vv);}
+ virtual int isIn(const Vector&, Coord::InternalSystem);
void setAngle(double);
double getAngle() {return angle;}
@@ -220,15 +238,15 @@ public:
int getNumHandle() {return numHandle;}
Vector getHandle(int);
- virtual int isPolygon() {return 0;}
+ virtual int getSegment(const Vector&) {return 0;}
- virtual void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int) =0;
- virtual void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat) {}
- virtual void listCiao(ostream&, CoordSystem, int) {}
- virtual void listSAOtng(ostream&,CoordSystem,SkyFrame,SkyFormat, int) {}
- virtual void listPros(ostream&, CoordSystem, SkyFrame, SkyFormat, int) {}
+ virtual void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int) =0;
+ virtual void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat) {}
+ virtual void listCiao(ostream&, Coord::CoordSystem, int) {}
+ virtual void listSAOtng(ostream&,Coord::CoordSystem,Coord::SkyFrame,Coord::SkyFormat, int) {}
+ virtual void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int) {}
virtual void listSAOimage(ostream&, int) {}
- virtual void listXY(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
+ virtual void listXY(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
const BBox& getBBox() {return bbox;}
const BBox& getAllBBox() {return allBBox;}
@@ -270,7 +288,7 @@ public:
int onHandle(const Vector& v);
int getId() {return id;}
- const char* getType() {return type;}
+ const char* getType() {return type_;}
Vector getCenter() {return center;}
int canSelect() {return (properties & SELECT) ? 1:0;}
@@ -298,6 +316,16 @@ public:
void disableCB() {doCB = 0;}
void deleteCBs();
+ virtual void analysisPlot2d(char*, char*, char*, char*) {}
+ virtual void analysisPlot3d(char*, char*) {}
+
+ AnalysisParamType analysisParam() {return analysisParam_;}
+ void setAnalysisParam(AnalysisParamType mm) {analysisParam_ = mm;}
+ Coord::CoordSystem analysisSystem() {return analysisSystem_;}
+ void setAnalysisSystem(Coord::CoordSystem sys) {analysisSystem_ = sys;}
+ Coord::SkyFrame analysisSky() {return analysisSky_;}
+ void setAnalysisSky(Coord::SkyFrame sky) {analysisSky_ = sky;}
+
// special composite funtionality
virtual void setComposite(const Matrix&, double);
void setComposite(const char*, int, int);
diff --git a/saotk/frame/parser.C b/saotk/frame/parser.C
index c0d7cc3..2da2ca2 100644
--- a/saotk/frame/parser.C
+++ b/saotk/frame/parser.C
@@ -114,288 +114,295 @@
BIN_ = 295,
BITPIX_ = 296,
BLOCK_ = 297,
- BOX_ = 298,
- BOXANNULUS_ = 299,
- BOXCAR_ = 300,
- BOXCIRCLE_ = 301,
- BPANDA_ = 302,
- BUFFER_ = 303,
- BW_ = 304,
- CALLBACK_ = 305,
- CANVAS_ = 306,
- CATALOG_ = 307,
- CELESTRIAL_ = 308,
- CENTER_ = 309,
- CENTROID_ = 310,
- CHANNEL_ = 311,
- CIRCLE_ = 312,
- CIAO_ = 313,
- CLEAR_ = 314,
- CLIP_ = 315,
- COLOR_ = 316,
- COLORBAR_ = 317,
- COLORMAP_ = 318,
- COLORSCALE_ = 319,
- COLORSPACE_ = 320,
- COLS_ = 321,
- COMMAND_ = 322,
- COMPASS_ = 323,
- COMPOSITE_ = 324,
- COMPRESS_ = 325,
- CONTOUR_ = 326,
- CONTRAST_ = 327,
- COORDINATES_ = 328,
- COPY_ = 329,
- COUNT_ = 330,
- CPANDA_ = 331,
- CREATE_ = 332,
- CROP_ = 333,
- CROSS_ = 334,
- CROSSHAIR_ = 335,
- CUBE_ = 336,
- CURSOR_ = 337,
- CUT_ = 338,
- CMYK_ = 339,
- DASH_ = 340,
- DASHLIST_ = 341,
- DATA_ = 342,
- DATAMIN_ = 343,
- DATASEC_ = 344,
- DEBUG_ = 345,
- DEGREES_ = 346,
- DEFAULT_ = 347,
- DELETE_ = 348,
- DEPTH_ = 349,
- DETECTOR_ = 350,
- DIAMOND_ = 351,
- DIM_ = 352,
- DS9_ = 353,
- EDIT_ = 354,
- ECLIPTIC_ = 355,
- ELLIPSE_ = 356,
- ELLIPSEANNULUS_ = 357,
- END_ = 358,
- EPANDA_ = 359,
- EQUATORIAL_ = 360,
- ERASE_ = 361,
- EXT_ = 362,
- FACTOR_ = 363,
- FALSE_ = 364,
- FILE_ = 365,
- FILTER_ = 366,
- FIT_ = 367,
- FITS_ = 368,
- FITSY_ = 369,
- FIXED_ = 370,
- FK4_ = 371,
- FK4_NO_E_ = 372,
- FK5_ = 373,
- FONT_ = 374,
- FROM_ = 375,
- FRONT_ = 376,
- FULL_ = 377,
- FUNCTION_ = 378,
- GALACTIC_ = 379,
- GAUSSIAN_ = 380,
- GET_ = 381,
- GLOBAL_ = 382,
- GRAPHICS_ = 383,
- GRAY_ = 384,
- GRID_ = 385,
- GZ_ = 386,
- HANDLE_ = 387,
- HAS_ = 388,
- HEAD_ = 389,
- HEADER_ = 390,
- HEIGHT_ = 391,
- HELIOECLIPTIC_ = 392,
- HIDE_ = 393,
- HIGH_ = 394,
- HIGHLITE_ = 395,
- HISTEQU_ = 396,
- HISTOGRAM_ = 397,
- HORIZONTAL_ = 398,
- ICRS_ = 399,
- ID_ = 400,
- IIS_ = 401,
- IMAGE_ = 402,
- INCLUDE_ = 403,
- INCR_ = 404,
- INFO_ = 405,
- INTEGER_ = 406,
- ITERATION_ = 407,
- IRAF_ = 408,
- IRAFMIN_ = 409,
- J2000_ = 410,
- KEY_ = 411,
- KEYWORD_ = 412,
- LABEL_ = 413,
- LENGTH_ = 414,
- LEVEL_ = 415,
- LITTLEENDIAN_ = 416,
- LINE_ = 417,
- LINEAR_ = 418,
- LIST_ = 419,
- LOAD_ = 420,
- LOCAL_ = 421,
- LOG_ = 422,
- LOW_ = 423,
- MACOSX_ = 424,
- MAGNIFIER_ = 425,
- MAP_ = 426,
- MARK_ = 427,
- MARKER_ = 428,
- MASK_ = 429,
- MESSAGE_ = 430,
- METHOD_ = 431,
- MINMAX_ = 432,
- MIP_ = 433,
- MMAP_ = 434,
- MMAPINCR_ = 435,
- MOSAIC_ = 436,
- MODE_ = 437,
- MOTION_ = 438,
- MOVE_ = 439,
- NAME_ = 440,
- NAN_ = 441,
- NAXES_ = 442,
- NEW_ = 443,
- NEXT_ = 444,
- NO_ = 445,
- NONE_ = 446,
- NOW_ = 447,
- NUMBER_ = 448,
- OBJECT_ = 449,
- OFF_ = 450,
- ON_ = 451,
- ONLY_ = 452,
- OPTION_ = 453,
- ORIENT_ = 454,
- PAN_ = 455,
- PANNER_ = 456,
- PARSER_ = 457,
- PASTE_ = 458,
- PERF_ = 459,
- PHYSICAL_ = 460,
- PIXEL_ = 461,
- POINT_ = 462,
- POINTER_ = 463,
- POLYGON_ = 464,
- POSTSCRIPT_ = 465,
- POW_ = 466,
- PRINT_ = 467,
- PRESERVE_ = 468,
- PROJECTION_ = 469,
- CIRCLE3D_ = 470,
- PROPERTY_ = 471,
- PUBLICATION_ = 472,
- PROS_ = 473,
- RADIUS_ = 474,
- REGION_ = 475,
- REPLACE_ = 476,
- RESAMPLE_ = 477,
- RESET_ = 478,
- RESOLUTION_ = 479,
- RGB_ = 480,
- ROOT_ = 481,
- ROTATE_ = 482,
- RULER_ = 483,
- SAMPLE_ = 484,
- SAOIMAGE_ = 485,
- SAOTNG_ = 486,
- SAVE_ = 487,
- SCALE_ = 488,
- SCAN_ = 489,
- SCIENTIFIC_ = 490,
- SCOPE_ = 491,
- SEGMENT_ = 492,
- SELECT_ = 493,
- SET_ = 494,
- SEXAGESIMAL_ = 495,
- SHARED_ = 496,
- SHIFT_ = 497,
- SHMID_ = 498,
- SHOW_ = 499,
- SINH_ = 500,
- SIZE_ = 501,
- SLICE_ = 502,
- SMMAP_ = 503,
- SMOOTH_ = 504,
- SOCKET_ = 505,
- SOCKETGZ_ = 506,
- SOURCE_ = 507,
- SQRT_ = 508,
- SQUARED_ = 509,
- SSHARED_ = 510,
- STATUS_ = 511,
- SUPERGALACTIC_ = 512,
- SUM_ = 513,
- SYSTEM_ = 514,
- TABLE_ = 515,
- TAG_ = 516,
- TEMPLATE_ = 517,
- TEXT_ = 518,
- THREADS_ = 519,
- THREED_ = 520,
- THRESHOLD_ = 521,
- THICK_ = 522,
- TRANSPARENCY_ = 523,
- TO_ = 524,
- TOGGLE_ = 525,
- TOPHAT_ = 526,
- TRUE_ = 527,
- TYPE_ = 528,
- UNDO_ = 529,
- UNHIGHLITE_ = 530,
- UNLOAD_ = 531,
- UNSELECT_ = 532,
- UPDATE_ = 533,
- USER_ = 534,
- VALUE_ = 535,
- VAR_ = 536,
- VIEW_ = 537,
- VECTOR_ = 538,
- VERSION_ = 539,
- VERTEX_ = 540,
- VERTICAL_ = 541,
- WARP_ = 542,
- WCS_ = 543,
- WCSA_ = 544,
- WCSB_ = 545,
- WCSC_ = 546,
- WCSD_ = 547,
- WCSE_ = 548,
- WCSF_ = 549,
- WCSG_ = 550,
- WCSH_ = 551,
- WCSI_ = 552,
- WCSJ_ = 553,
- WCSK_ = 554,
- WCSL_ = 555,
- WCSM_ = 556,
- WCSN_ = 557,
- WCSO_ = 558,
- WCSP_ = 559,
- WCSQ_ = 560,
- WCSR_ = 561,
- WCSS_ = 562,
- WCST_ = 563,
- WCSU_ = 564,
- WCSV_ = 565,
- WCSW_ = 566,
- WCSX_ = 567,
- WCSY_ = 568,
- WCSZ_ = 569,
- WCS0_ = 570,
- WFPC2_ = 571,
- WIDTH_ = 572,
- WIN32_ = 573,
- XML_ = 574,
- XY_ = 575,
- YES_ = 576,
- ZMAX_ = 577,
- ZSCALE_ = 578,
- ZOOM_ = 579
+ BLT_ = 298,
+ BOX_ = 299,
+ BOXANNULUS_ = 300,
+ BOXCAR_ = 301,
+ BOXCIRCLE_ = 302,
+ BPANDA_ = 303,
+ BUFFER_ = 304,
+ BW_ = 305,
+ CALLBACK_ = 306,
+ CANVAS_ = 307,
+ CATALOG_ = 308,
+ CELESTRIAL_ = 309,
+ CENTER_ = 310,
+ CENTROID_ = 311,
+ CHANNEL_ = 312,
+ CIRCLE_ = 313,
+ CIAO_ = 314,
+ CLEAR_ = 315,
+ CLIP_ = 316,
+ COLOR_ = 317,
+ COLORBAR_ = 318,
+ COLORMAP_ = 319,
+ COLORSCALE_ = 320,
+ COLORSPACE_ = 321,
+ COLS_ = 322,
+ COLUMN_ = 323,
+ COMMAND_ = 324,
+ COMPASS_ = 325,
+ COMPOSITE_ = 326,
+ COMPRESS_ = 327,
+ CONTOUR_ = 328,
+ CONTRAST_ = 329,
+ COORDINATES_ = 330,
+ COPY_ = 331,
+ COUNT_ = 332,
+ CPANDA_ = 333,
+ CREATE_ = 334,
+ CROP_ = 335,
+ CROSS_ = 336,
+ CROSSHAIR_ = 337,
+ CUBE_ = 338,
+ CURSOR_ = 339,
+ CUT_ = 340,
+ CMYK_ = 341,
+ DASH_ = 342,
+ DASHLIST_ = 343,
+ DATA_ = 344,
+ DATAMIN_ = 345,
+ DATASEC_ = 346,
+ DEBUG_ = 347,
+ DEGREES_ = 348,
+ DEFAULT_ = 349,
+ DELETE_ = 350,
+ DEPTH_ = 351,
+ DETECTOR_ = 352,
+ DIAMOND_ = 353,
+ DIM_ = 354,
+ DS9_ = 355,
+ EDIT_ = 356,
+ ECLIPTIC_ = 357,
+ ELLIPSE_ = 358,
+ ELLIPSEANNULUS_ = 359,
+ END_ = 360,
+ EPANDA_ = 361,
+ EQUATORIAL_ = 362,
+ ERASE_ = 363,
+ EXT_ = 364,
+ FACTOR_ = 365,
+ FALSE_ = 366,
+ FILE_ = 367,
+ FILTER_ = 368,
+ FIT_ = 369,
+ FITS_ = 370,
+ FITSY_ = 371,
+ FIXED_ = 372,
+ FK4_ = 373,
+ FK4_NO_E_ = 374,
+ FK5_ = 375,
+ FONT_ = 376,
+ FROM_ = 377,
+ FRONT_ = 378,
+ FULL_ = 379,
+ FUNCTION_ = 380,
+ GALACTIC_ = 381,
+ GAUSSIAN_ = 382,
+ GET_ = 383,
+ GLOBAL_ = 384,
+ GRAPHICS_ = 385,
+ GRAY_ = 386,
+ GRID_ = 387,
+ GZ_ = 388,
+ HANDLE_ = 389,
+ HAS_ = 390,
+ HEAD_ = 391,
+ HEADER_ = 392,
+ HEIGHT_ = 393,
+ HELIOECLIPTIC_ = 394,
+ HIDE_ = 395,
+ HIGH_ = 396,
+ HIGHLITE_ = 397,
+ HISTEQU_ = 398,
+ HISTOGRAM_ = 399,
+ HORIZONTAL_ = 400,
+ ICRS_ = 401,
+ ID_ = 402,
+ IIS_ = 403,
+ IMAGE_ = 404,
+ INCLUDE_ = 405,
+ INCR_ = 406,
+ INFO_ = 407,
+ INTEGER_ = 408,
+ ITERATION_ = 409,
+ IRAF_ = 410,
+ IRAFMIN_ = 411,
+ J2000_ = 412,
+ KEY_ = 413,
+ KEYWORD_ = 414,
+ LABEL_ = 415,
+ LENGTH_ = 416,
+ LEVEL_ = 417,
+ LITTLEENDIAN_ = 418,
+ LINE_ = 419,
+ LINEAR_ = 420,
+ LIST_ = 421,
+ LOAD_ = 422,
+ LOCAL_ = 423,
+ LOG_ = 424,
+ LOW_ = 425,
+ MACOSX_ = 426,
+ MAGNIFIER_ = 427,
+ MAP_ = 428,
+ MARK_ = 429,
+ MARKER_ = 430,
+ MASK_ = 431,
+ MESSAGE_ = 432,
+ METHOD_ = 433,
+ MINMAX_ = 434,
+ MIP_ = 435,
+ MMAP_ = 436,
+ MMAPINCR_ = 437,
+ MOSAIC_ = 438,
+ MODE_ = 439,
+ MOTION_ = 440,
+ MOVE_ = 441,
+ NAME_ = 442,
+ NAN_ = 443,
+ NAXES_ = 444,
+ NEW_ = 445,
+ NEXT_ = 446,
+ NO_ = 447,
+ NONE_ = 448,
+ NOW_ = 449,
+ NUMBER_ = 450,
+ OBJECT_ = 451,
+ OFF_ = 452,
+ ON_ = 453,
+ ONLY_ = 454,
+ OPTION_ = 455,
+ ORIENT_ = 456,
+ PAN_ = 457,
+ PANNER_ = 458,
+ PARAM_ = 459,
+ PARSER_ = 460,
+ PASTE_ = 461,
+ PERF_ = 462,
+ PHOTO_ = 463,
+ PHYSICAL_ = 464,
+ PIXEL_ = 465,
+ PLOT2D_ = 466,
+ PLOT3D_ = 467,
+ POINT_ = 468,
+ POINTER_ = 469,
+ POLYGON_ = 470,
+ POSTSCRIPT_ = 471,
+ POW_ = 472,
+ PRINT_ = 473,
+ PRESERVE_ = 474,
+ PROJECTION_ = 475,
+ PROPERTY_ = 476,
+ PUBLICATION_ = 477,
+ PROS_ = 478,
+ RADIUS_ = 479,
+ REGION_ = 480,
+ REPLACE_ = 481,
+ RESAMPLE_ = 482,
+ RESET_ = 483,
+ RESOLUTION_ = 484,
+ RGB_ = 485,
+ ROOT_ = 486,
+ ROTATE_ = 487,
+ RULER_ = 488,
+ SAMPLE_ = 489,
+ SAOIMAGE_ = 490,
+ SAOTNG_ = 491,
+ SAVE_ = 492,
+ SCALE_ = 493,
+ SCAN_ = 494,
+ SCIENTIFIC_ = 495,
+ SCOPE_ = 496,
+ SEGMENT_ = 497,
+ SELECT_ = 498,
+ SET_ = 499,
+ SEXAGESIMAL_ = 500,
+ SHAPE_ = 501,
+ SHARED_ = 502,
+ SHIFT_ = 503,
+ SHMID_ = 504,
+ SHOW_ = 505,
+ SINH_ = 506,
+ SIZE_ = 507,
+ SLICE_ = 508,
+ SMMAP_ = 509,
+ SMOOTH_ = 510,
+ SOCKET_ = 511,
+ SOCKETGZ_ = 512,
+ SOURCE_ = 513,
+ SQRT_ = 514,
+ SQUARED_ = 515,
+ SSHARED_ = 516,
+ STATS_ = 517,
+ STATUS_ = 518,
+ SUPERGALACTIC_ = 519,
+ SUM_ = 520,
+ SYSTEM_ = 521,
+ TABLE_ = 522,
+ TAG_ = 523,
+ TEMPLATE_ = 524,
+ TEXT_ = 525,
+ THREADS_ = 526,
+ THREED_ = 527,
+ THRESHOLD_ = 528,
+ THICK_ = 529,
+ TRANSPARENCY_ = 530,
+ TO_ = 531,
+ TOGGLE_ = 532,
+ TOPHAT_ = 533,
+ TRUE_ = 534,
+ TYPE_ = 535,
+ UNDO_ = 536,
+ UNHIGHLITE_ = 537,
+ UNLOAD_ = 538,
+ UNSELECT_ = 539,
+ UPDATE_ = 540,
+ USER_ = 541,
+ VALUE_ = 542,
+ VAR_ = 543,
+ VIEW_ = 544,
+ VECTOR_ = 545,
+ VERSION_ = 546,
+ VERTEX_ = 547,
+ VERTICAL_ = 548,
+ WARP_ = 549,
+ WCS_ = 550,
+ WCSA_ = 551,
+ WCSB_ = 552,
+ WCSC_ = 553,
+ WCSD_ = 554,
+ WCSE_ = 555,
+ WCSF_ = 556,
+ WCSG_ = 557,
+ WCSH_ = 558,
+ WCSI_ = 559,
+ WCSJ_ = 560,
+ WCSK_ = 561,
+ WCSL_ = 562,
+ WCSM_ = 563,
+ WCSN_ = 564,
+ WCSO_ = 565,
+ WCSP_ = 566,
+ WCSQ_ = 567,
+ WCSR_ = 568,
+ WCSS_ = 569,
+ WCST_ = 570,
+ WCSU_ = 571,
+ WCSV_ = 572,
+ WCSW_ = 573,
+ WCSX_ = 574,
+ WCSY_ = 575,
+ WCSZ_ = 576,
+ WCS0_ = 577,
+ WFPC2_ = 578,
+ WIDTH_ = 579,
+ WIN32_ = 580,
+ XML_ = 581,
+ XY_ = 582,
+ YES_ = 583,
+ ZMAX_ = 584,
+ ZSCALE_ = 585,
+ ZOOM_ = 586
};
#endif
/* Tokens. */
@@ -439,288 +446,295 @@
#define BIN_ 295
#define BITPIX_ 296
#define BLOCK_ 297
-#define BOX_ 298
-#define BOXANNULUS_ 299
-#define BOXCAR_ 300
-#define BOXCIRCLE_ 301
-#define BPANDA_ 302
-#define BUFFER_ 303
-#define BW_ 304
-#define CALLBACK_ 305
-#define CANVAS_ 306
-#define CATALOG_ 307
-#define CELESTRIAL_ 308
-#define CENTER_ 309
-#define CENTROID_ 310
-#define CHANNEL_ 311
-#define CIRCLE_ 312
-#define CIAO_ 313
-#define CLEAR_ 314
-#define CLIP_ 315
-#define COLOR_ 316
-#define COLORBAR_ 317
-#define COLORMAP_ 318
-#define COLORSCALE_ 319
-#define COLORSPACE_ 320
-#define COLS_ 321
-#define COMMAND_ 322
-#define COMPASS_ 323
-#define COMPOSITE_ 324
-#define COMPRESS_ 325
-#define CONTOUR_ 326
-#define CONTRAST_ 327
-#define COORDINATES_ 328
-#define COPY_ 329
-#define COUNT_ 330
-#define CPANDA_ 331
-#define CREATE_ 332
-#define CROP_ 333
-#define CROSS_ 334
-#define CROSSHAIR_ 335
-#define CUBE_ 336
-#define CURSOR_ 337
-#define CUT_ 338
-#define CMYK_ 339
-#define DASH_ 340
-#define DASHLIST_ 341
-#define DATA_ 342
-#define DATAMIN_ 343
-#define DATASEC_ 344
-#define DEBUG_ 345
-#define DEGREES_ 346
-#define DEFAULT_ 347
-#define DELETE_ 348
-#define DEPTH_ 349
-#define DETECTOR_ 350
-#define DIAMOND_ 351
-#define DIM_ 352
-#define DS9_ 353
-#define EDIT_ 354
-#define ECLIPTIC_ 355
-#define ELLIPSE_ 356
-#define ELLIPSEANNULUS_ 357
-#define END_ 358
-#define EPANDA_ 359
-#define EQUATORIAL_ 360
-#define ERASE_ 361
-#define EXT_ 362
-#define FACTOR_ 363
-#define FALSE_ 364
-#define FILE_ 365
-#define FILTER_ 366
-#define FIT_ 367
-#define FITS_ 368
-#define FITSY_ 369
-#define FIXED_ 370
-#define FK4_ 371
-#define FK4_NO_E_ 372
-#define FK5_ 373
-#define FONT_ 374
-#define FROM_ 375
-#define FRONT_ 376
-#define FULL_ 377
-#define FUNCTION_ 378
-#define GALACTIC_ 379
-#define GAUSSIAN_ 380
-#define GET_ 381
-#define GLOBAL_ 382
-#define GRAPHICS_ 383
-#define GRAY_ 384
-#define GRID_ 385
-#define GZ_ 386
-#define HANDLE_ 387
-#define HAS_ 388
-#define HEAD_ 389
-#define HEADER_ 390
-#define HEIGHT_ 391
-#define HELIOECLIPTIC_ 392
-#define HIDE_ 393
-#define HIGH_ 394
-#define HIGHLITE_ 395
-#define HISTEQU_ 396
-#define HISTOGRAM_ 397
-#define HORIZONTAL_ 398
-#define ICRS_ 399
-#define ID_ 400
-#define IIS_ 401
-#define IMAGE_ 402
-#define INCLUDE_ 403
-#define INCR_ 404
-#define INFO_ 405
-#define INTEGER_ 406
-#define ITERATION_ 407
-#define IRAF_ 408
-#define IRAFMIN_ 409
-#define J2000_ 410
-#define KEY_ 411
-#define KEYWORD_ 412
-#define LABEL_ 413
-#define LENGTH_ 414
-#define LEVEL_ 415
-#define LITTLEENDIAN_ 416
-#define LINE_ 417
-#define LINEAR_ 418
-#define LIST_ 419
-#define LOAD_ 420
-#define LOCAL_ 421
-#define LOG_ 422
-#define LOW_ 423
-#define MACOSX_ 424
-#define MAGNIFIER_ 425
-#define MAP_ 426
-#define MARK_ 427
-#define MARKER_ 428
-#define MASK_ 429
-#define MESSAGE_ 430
-#define METHOD_ 431
-#define MINMAX_ 432
-#define MIP_ 433
-#define MMAP_ 434
-#define MMAPINCR_ 435
-#define MOSAIC_ 436
-#define MODE_ 437
-#define MOTION_ 438
-#define MOVE_ 439
-#define NAME_ 440
-#define NAN_ 441
-#define NAXES_ 442
-#define NEW_ 443
-#define NEXT_ 444
-#define NO_ 445
-#define NONE_ 446
-#define NOW_ 447
-#define NUMBER_ 448
-#define OBJECT_ 449
-#define OFF_ 450
-#define ON_ 451
-#define ONLY_ 452
-#define OPTION_ 453
-#define ORIENT_ 454
-#define PAN_ 455
-#define PANNER_ 456
-#define PARSER_ 457
-#define PASTE_ 458
-#define PERF_ 459
-#define PHYSICAL_ 460
-#define PIXEL_ 461
-#define POINT_ 462
-#define POINTER_ 463
-#define POLYGON_ 464
-#define POSTSCRIPT_ 465
-#define POW_ 466
-#define PRINT_ 467
-#define PRESERVE_ 468
-#define PROJECTION_ 469
-#define CIRCLE3D_ 470
-#define PROPERTY_ 471
-#define PUBLICATION_ 472
-#define PROS_ 473
-#define RADIUS_ 474
-#define REGION_ 475
-#define REPLACE_ 476
-#define RESAMPLE_ 477
-#define RESET_ 478
-#define RESOLUTION_ 479
-#define RGB_ 480
-#define ROOT_ 481
-#define ROTATE_ 482
-#define RULER_ 483
-#define SAMPLE_ 484
-#define SAOIMAGE_ 485
-#define SAOTNG_ 486
-#define SAVE_ 487
-#define SCALE_ 488
-#define SCAN_ 489
-#define SCIENTIFIC_ 490
-#define SCOPE_ 491
-#define SEGMENT_ 492
-#define SELECT_ 493
-#define SET_ 494
-#define SEXAGESIMAL_ 495
-#define SHARED_ 496
-#define SHIFT_ 497
-#define SHMID_ 498
-#define SHOW_ 499
-#define SINH_ 500
-#define SIZE_ 501
-#define SLICE_ 502
-#define SMMAP_ 503
-#define SMOOTH_ 504
-#define SOCKET_ 505
-#define SOCKETGZ_ 506
-#define SOURCE_ 507
-#define SQRT_ 508
-#define SQUARED_ 509
-#define SSHARED_ 510
-#define STATUS_ 511
-#define SUPERGALACTIC_ 512
-#define SUM_ 513
-#define SYSTEM_ 514
-#define TABLE_ 515
-#define TAG_ 516
-#define TEMPLATE_ 517
-#define TEXT_ 518
-#define THREADS_ 519
-#define THREED_ 520
-#define THRESHOLD_ 521
-#define THICK_ 522
-#define TRANSPARENCY_ 523
-#define TO_ 524
-#define TOGGLE_ 525
-#define TOPHAT_ 526
-#define TRUE_ 527
-#define TYPE_ 528
-#define UNDO_ 529
-#define UNHIGHLITE_ 530
-#define UNLOAD_ 531
-#define UNSELECT_ 532
-#define UPDATE_ 533
-#define USER_ 534
-#define VALUE_ 535
-#define VAR_ 536
-#define VIEW_ 537
-#define VECTOR_ 538
-#define VERSION_ 539
-#define VERTEX_ 540
-#define VERTICAL_ 541
-#define WARP_ 542
-#define WCS_ 543
-#define WCSA_ 544
-#define WCSB_ 545
-#define WCSC_ 546
-#define WCSD_ 547
-#define WCSE_ 548
-#define WCSF_ 549
-#define WCSG_ 550
-#define WCSH_ 551
-#define WCSI_ 552
-#define WCSJ_ 553
-#define WCSK_ 554
-#define WCSL_ 555
-#define WCSM_ 556
-#define WCSN_ 557
-#define WCSO_ 558
-#define WCSP_ 559
-#define WCSQ_ 560
-#define WCSR_ 561
-#define WCSS_ 562
-#define WCST_ 563
-#define WCSU_ 564
-#define WCSV_ 565
-#define WCSW_ 566
-#define WCSX_ 567
-#define WCSY_ 568
-#define WCSZ_ 569
-#define WCS0_ 570
-#define WFPC2_ 571
-#define WIDTH_ 572
-#define WIN32_ 573
-#define XML_ 574
-#define XY_ 575
-#define YES_ 576
-#define ZMAX_ 577
-#define ZSCALE_ 578
-#define ZOOM_ 579
+#define BLT_ 298
+#define BOX_ 299
+#define BOXANNULUS_ 300
+#define BOXCAR_ 301
+#define BOXCIRCLE_ 302
+#define BPANDA_ 303
+#define BUFFER_ 304
+#define BW_ 305
+#define CALLBACK_ 306
+#define CANVAS_ 307
+#define CATALOG_ 308
+#define CELESTRIAL_ 309
+#define CENTER_ 310
+#define CENTROID_ 311
+#define CHANNEL_ 312
+#define CIRCLE_ 313
+#define CIAO_ 314
+#define CLEAR_ 315
+#define CLIP_ 316
+#define COLOR_ 317
+#define COLORBAR_ 318
+#define COLORMAP_ 319
+#define COLORSCALE_ 320
+#define COLORSPACE_ 321
+#define COLS_ 322
+#define COLUMN_ 323
+#define COMMAND_ 324
+#define COMPASS_ 325
+#define COMPOSITE_ 326
+#define COMPRESS_ 327
+#define CONTOUR_ 328
+#define CONTRAST_ 329
+#define COORDINATES_ 330
+#define COPY_ 331
+#define COUNT_ 332
+#define CPANDA_ 333
+#define CREATE_ 334
+#define CROP_ 335
+#define CROSS_ 336
+#define CROSSHAIR_ 337
+#define CUBE_ 338
+#define CURSOR_ 339
+#define CUT_ 340
+#define CMYK_ 341
+#define DASH_ 342
+#define DASHLIST_ 343
+#define DATA_ 344
+#define DATAMIN_ 345
+#define DATASEC_ 346
+#define DEBUG_ 347
+#define DEGREES_ 348
+#define DEFAULT_ 349
+#define DELETE_ 350
+#define DEPTH_ 351
+#define DETECTOR_ 352
+#define DIAMOND_ 353
+#define DIM_ 354
+#define DS9_ 355
+#define EDIT_ 356
+#define ECLIPTIC_ 357
+#define ELLIPSE_ 358
+#define ELLIPSEANNULUS_ 359
+#define END_ 360
+#define EPANDA_ 361
+#define EQUATORIAL_ 362
+#define ERASE_ 363
+#define EXT_ 364
+#define FACTOR_ 365
+#define FALSE_ 366
+#define FILE_ 367
+#define FILTER_ 368
+#define FIT_ 369
+#define FITS_ 370
+#define FITSY_ 371
+#define FIXED_ 372
+#define FK4_ 373
+#define FK4_NO_E_ 374
+#define FK5_ 375
+#define FONT_ 376
+#define FROM_ 377
+#define FRONT_ 378
+#define FULL_ 379
+#define FUNCTION_ 380
+#define GALACTIC_ 381
+#define GAUSSIAN_ 382
+#define GET_ 383
+#define GLOBAL_ 384
+#define GRAPHICS_ 385
+#define GRAY_ 386
+#define GRID_ 387
+#define GZ_ 388
+#define HANDLE_ 389
+#define HAS_ 390
+#define HEAD_ 391
+#define HEADER_ 392
+#define HEIGHT_ 393
+#define HELIOECLIPTIC_ 394
+#define HIDE_ 395
+#define HIGH_ 396
+#define HIGHLITE_ 397
+#define HISTEQU_ 398
+#define HISTOGRAM_ 399
+#define HORIZONTAL_ 400
+#define ICRS_ 401
+#define ID_ 402
+#define IIS_ 403
+#define IMAGE_ 404
+#define INCLUDE_ 405
+#define INCR_ 406
+#define INFO_ 407
+#define INTEGER_ 408
+#define ITERATION_ 409
+#define IRAF_ 410
+#define IRAFMIN_ 411
+#define J2000_ 412
+#define KEY_ 413
+#define KEYWORD_ 414
+#define LABEL_ 415
+#define LENGTH_ 416
+#define LEVEL_ 417
+#define LITTLEENDIAN_ 418
+#define LINE_ 419
+#define LINEAR_ 420
+#define LIST_ 421
+#define LOAD_ 422
+#define LOCAL_ 423
+#define LOG_ 424
+#define LOW_ 425
+#define MACOSX_ 426
+#define MAGNIFIER_ 427
+#define MAP_ 428
+#define MARK_ 429
+#define MARKER_ 430
+#define MASK_ 431
+#define MESSAGE_ 432
+#define METHOD_ 433
+#define MINMAX_ 434
+#define MIP_ 435
+#define MMAP_ 436
+#define MMAPINCR_ 437
+#define MOSAIC_ 438
+#define MODE_ 439
+#define MOTION_ 440
+#define MOVE_ 441
+#define NAME_ 442
+#define NAN_ 443
+#define NAXES_ 444
+#define NEW_ 445
+#define NEXT_ 446
+#define NO_ 447
+#define NONE_ 448
+#define NOW_ 449
+#define NUMBER_ 450
+#define OBJECT_ 451
+#define OFF_ 452
+#define ON_ 453
+#define ONLY_ 454
+#define OPTION_ 455
+#define ORIENT_ 456
+#define PAN_ 457
+#define PANNER_ 458
+#define PARAM_ 459
+#define PARSER_ 460
+#define PASTE_ 461
+#define PERF_ 462
+#define PHOTO_ 463
+#define PHYSICAL_ 464
+#define PIXEL_ 465
+#define PLOT2D_ 466
+#define PLOT3D_ 467
+#define POINT_ 468
+#define POINTER_ 469
+#define POLYGON_ 470
+#define POSTSCRIPT_ 471
+#define POW_ 472
+#define PRINT_ 473
+#define PRESERVE_ 474
+#define PROJECTION_ 475
+#define PROPERTY_ 476
+#define PUBLICATION_ 477
+#define PROS_ 478
+#define RADIUS_ 479
+#define REGION_ 480
+#define REPLACE_ 481
+#define RESAMPLE_ 482
+#define RESET_ 483
+#define RESOLUTION_ 484
+#define RGB_ 485
+#define ROOT_ 486
+#define ROTATE_ 487
+#define RULER_ 488
+#define SAMPLE_ 489
+#define SAOIMAGE_ 490
+#define SAOTNG_ 491
+#define SAVE_ 492
+#define SCALE_ 493
+#define SCAN_ 494
+#define SCIENTIFIC_ 495
+#define SCOPE_ 496
+#define SEGMENT_ 497
+#define SELECT_ 498
+#define SET_ 499
+#define SEXAGESIMAL_ 500
+#define SHAPE_ 501
+#define SHARED_ 502
+#define SHIFT_ 503
+#define SHMID_ 504
+#define SHOW_ 505
+#define SINH_ 506
+#define SIZE_ 507
+#define SLICE_ 508
+#define SMMAP_ 509
+#define SMOOTH_ 510
+#define SOCKET_ 511
+#define SOCKETGZ_ 512
+#define SOURCE_ 513
+#define SQRT_ 514
+#define SQUARED_ 515
+#define SSHARED_ 516
+#define STATS_ 517
+#define STATUS_ 518
+#define SUPERGALACTIC_ 519
+#define SUM_ 520
+#define SYSTEM_ 521
+#define TABLE_ 522
+#define TAG_ 523
+#define TEMPLATE_ 524
+#define TEXT_ 525
+#define THREADS_ 526
+#define THREED_ 527
+#define THRESHOLD_ 528
+#define THICK_ 529
+#define TRANSPARENCY_ 530
+#define TO_ 531
+#define TOGGLE_ 532
+#define TOPHAT_ 533
+#define TRUE_ 534
+#define TYPE_ 535
+#define UNDO_ 536
+#define UNHIGHLITE_ 537
+#define UNLOAD_ 538
+#define UNSELECT_ 539
+#define UPDATE_ 540
+#define USER_ 541
+#define VALUE_ 542
+#define VAR_ 543
+#define VIEW_ 544
+#define VECTOR_ 545
+#define VERSION_ 546
+#define VERTEX_ 547
+#define VERTICAL_ 548
+#define WARP_ 549
+#define WCS_ 550
+#define WCSA_ 551
+#define WCSB_ 552
+#define WCSC_ 553
+#define WCSD_ 554
+#define WCSE_ 555
+#define WCSF_ 556
+#define WCSG_ 557
+#define WCSH_ 558
+#define WCSI_ 559
+#define WCSJ_ 560
+#define WCSK_ 561
+#define WCSL_ 562
+#define WCSM_ 563
+#define WCSN_ 564
+#define WCSO_ 565
+#define WCSP_ 566
+#define WCSQ_ 567
+#define WCSR_ 568
+#define WCSS_ 569
+#define WCST_ 570
+#define WCSU_ 571
+#define WCSV_ 572
+#define WCSW_ 573
+#define WCSX_ 574
+#define WCSY_ 575
+#define WCSZ_ 576
+#define WCS0_ 577
+#define WFPC2_ 578
+#define WIDTH_ 579
+#define WIN32_ 580
+#define XML_ 581
+#define XY_ 582
+#define YES_ 583
+#define ZMAX_ 584
+#define ZSCALE_ 585
+#define ZOOM_ 586
@@ -746,8 +760,8 @@
extern int frlex(void*, frFlexLexer*);
extern void frerror(Base*, frFlexLexer*, const char*);
-static CoordSystem currentCoord = IMAGE;
-static SkyFrame currentSky = FK5;
+static Coord::CoordSystem currentCoord = Coord::IMAGE;
+static Coord::SkyFrame currentSky = Coord::FK5;
static unsigned short defaultProps = Marker::SELECT | Marker::HIGHLITE |
Marker::EDIT | Marker::MOVE | Marker::ROTATE |
@@ -800,7 +814,7 @@ typedef union YYSTYPE
int dash[2];
}
/* Line 193 of yacc.c. */
-#line 804 "parser.C"
+#line 818 "parser.C"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -813,7 +827,7 @@ typedef union YYSTYPE
/* Line 216 of yacc.c. */
-#line 817 "parser.C"
+#line 831 "parser.C"
#ifdef short
# undef short
@@ -1026,22 +1040,22 @@ union yyalloc
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 318
+#define YYFINAL 321
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 5503
+#define YYLAST 5336
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 329
+#define YYNTOKENS 336
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 184
+#define YYNNTS 188
/* YYNRULES -- Number of rules. */
-#define YYNRULES 1143
+#define YYNRULES 1156
/* YYNRULES -- Number of states. */
-#define YYNSTATES 2522
+#define YYNSTATES 2525
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 579
+#define YYMAXUTOK 586
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -1055,9 +1069,9 @@ static const yytype_uint16 yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 328, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 326, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 327, 325,
+ 2, 335, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 333, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 334, 332,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -1106,7 +1120,8 @@ static const yytype_uint16 yytranslate[] =
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
+ 325, 326, 327, 328, 329, 330, 331
};
#if YYDEBUG
@@ -1131,663 +1146,665 @@ static const yytype_uint16 yyprhs[] =
334, 336, 338, 340, 342, 344, 346, 347, 349, 351,
352, 354, 356, 358, 360, 362, 364, 366, 368, 369,
371, 373, 374, 376, 378, 379, 381, 383, 384, 386,
- 388, 389, 391, 392, 394, 396, 400, 403, 406, 409,
- 412, 415, 420, 423, 426, 429, 433, 436, 439, 441,
- 444, 446, 449, 454, 460, 463, 467, 473, 480, 482,
- 484, 486, 494, 506, 515, 528, 531, 534, 537, 540,
- 543, 546, 549, 552, 555, 557, 559, 561, 563, 565,
- 567, 569, 572, 575, 577, 579, 581, 583, 585, 588,
- 591, 594, 602, 613, 615, 618, 620, 628, 639, 641,
- 644, 647, 650, 654, 657, 660, 662, 665, 673, 681,
- 686, 689, 691, 693, 698, 711, 714, 716, 718, 719,
- 726, 735, 738, 742, 746, 750, 751, 755, 760, 765,
- 770, 774, 778, 780, 784, 790, 795, 800, 804, 808,
- 811, 814, 817, 820, 822, 825, 828, 831, 834, 837,
- 840, 843, 845, 848, 851, 855, 863, 866, 869, 871,
- 875, 878, 881, 883, 886, 895, 898, 901, 904, 907,
- 909, 914, 922, 925, 928, 930, 932, 934, 937, 939,
- 941, 944, 946, 947, 950, 953, 955, 957, 959, 962,
- 965, 968, 970, 971, 973, 975, 977, 979, 981, 983,
- 985, 987, 989, 991, 994, 996, 1001, 1007, 1008, 1011,
- 1013, 1019, 1022, 1025, 1028, 1030, 1032, 1034, 1037, 1039,
- 1042, 1044, 1046, 1048, 1050, 1052, 1053, 1055, 1056, 1058,
- 1064, 1071, 1075, 1080, 1085, 1089, 1096, 1099, 1101, 1106,
- 1108, 1110, 1115, 1122, 1130, 1136, 1138, 1140, 1145, 1151,
- 1153, 1155, 1157, 1161, 1162, 1164, 1167, 1169, 1175, 1177,
- 1180, 1182, 1187, 1191, 1194, 1196, 1199, 1201, 1207, 1210,
- 1212, 1214, 1218, 1221, 1222, 1224, 1226, 1231, 1234, 1235,
- 1237, 1238, 1240, 1242, 1244, 1246, 1248, 1250, 1252, 1254,
- 1256, 1258, 1260, 1262, 1264, 1266, 1268, 1269, 1272, 1275,
- 1276, 1278, 1280, 1287, 1289, 1291, 1293, 1295, 1298, 1300,
- 1302, 1304, 1306, 1309, 1311, 1313, 1315, 1318, 1320, 1322,
- 1325, 1328, 1329, 1331, 1332, 1334, 1336, 1338, 1340, 1342,
- 1344, 1346, 1348, 1351, 1354, 1356, 1360, 1362, 1365, 1368,
- 1373, 1380, 1382, 1393, 1395, 1398, 1402, 1406, 1409, 1412,
- 1415, 1418, 1423, 1428, 1433, 1437, 1441, 1447, 1452, 1457,
- 1462, 1466, 1470, 1474, 1478, 1481, 1484, 1489, 1493, 1497,
- 1501, 1506, 1511, 1516, 1521, 1527, 1532, 1539, 1547, 1552,
- 1557, 1563, 1566, 1570, 1573, 1576, 1580, 1584, 1588, 1592,
- 1597, 1601, 1607, 1614, 1618, 1622, 1627, 1631, 1635, 1639,
- 1643, 1647, 1653, 1657, 1661, 1666, 1670, 1673, 1676, 1678,
- 1682, 1687, 1692, 1697, 1702, 1707, 1714, 1719, 1724, 1730,
- 1735, 1740, 1745, 1750, 1756, 1761, 1768, 1776, 1781, 1786,
- 1792, 1798, 1804, 1810, 1816, 1822, 1830, 1836, 1842, 1849,
- 1855, 1861, 1867, 1873, 1880, 1886, 1894, 1903, 1909, 1915,
- 1922, 1926, 1930, 1934, 1938, 1942, 1948, 1952, 1956, 1961,
- 1964, 1967, 1971, 1975, 1979, 1983, 1988, 1992, 1998, 2005,
- 2009, 2013, 2018, 2022, 2026, 2030, 2034, 2038, 2044, 2048,
- 2052, 2057, 2064, 2071, 2073, 2075, 2077, 2080, 2083, 2086,
- 2090, 2094, 2097, 2100, 2103, 2105, 2109, 2114, 2117, 2118,
- 2122, 2124, 2126, 2129, 2132, 2135, 2138, 2143, 2148, 2152,
- 2157, 2163, 2171, 2180, 2187, 2196, 2206, 2213, 2220, 2228,
- 2239, 2251, 2264, 2274, 2280, 2286, 2293, 2297, 2303, 2309,
- 2315, 2322, 2328, 2333, 2343, 2354, 2366, 2376, 2383, 2390,
- 2397, 2404, 2411, 2418, 2425, 2432, 2439, 2447, 2450, 2455,
- 2460, 2465, 2470, 2476, 2481, 2486, 2492, 2496, 2501, 2506,
- 2511, 2518, 2526, 2535, 2545, 2552, 2563, 2575, 2588, 2598,
- 2602, 2605, 2609, 2615, 2622, 2630, 2635, 2639, 2643, 2650,
- 2657, 2664, 2672, 2677, 2685, 2696, 2702, 2708, 2715, 2720,
- 2725, 2729, 2736, 2744, 2752, 2755, 2759, 2763, 2767, 2772,
- 2775, 2778, 2783, 2791, 2802, 2806, 2808, 2812, 2815, 2818,
- 2821, 2824, 2828, 2834, 2839, 2845, 2848, 2856, 2860, 2863,
- 2866, 2870, 2873, 2876, 2879, 2883, 2886, 2890, 2895, 2899,
- 2903, 2909, 2916, 2921, 2924, 2928, 2931, 2934, 2939, 2943,
- 2947, 2950, 2954, 2956, 2960, 2962, 2965, 2968, 2971, 2973,
- 2975, 2977, 2979, 2982, 2984, 2987, 2990, 2992, 2995, 2998,
- 3000, 3003, 3005, 3007, 3009, 3011, 3013, 3015, 3017, 3019,
- 3020, 3022, 3025, 3028, 3031, 3035, 3041, 3049, 3060, 3068,
- 3078, 3091, 3099, 3109, 3122, 3129, 3136, 3144, 3154, 3160,
- 3168, 3179, 3186, 3193, 3200, 3207, 3214, 3221, 3228, 3234,
- 3241, 3249, 3252, 3255, 3259, 3264, 3269, 3274, 3277, 3282,
- 3287, 3289, 3291, 3293, 3295, 3297, 3299, 3301, 3303, 3306,
- 3308, 3310, 3314, 3318, 3321, 3324, 3328, 3333, 3338, 3344,
- 3349, 3355, 3360, 3366, 3370, 3375, 3381, 3386, 3392, 3396,
- 3402, 3407, 3413, 3416, 3420, 3424, 3429, 3435, 3439, 3443,
- 3447, 3452, 3458, 3463, 3469, 3474, 3480, 3485, 3491, 3495,
- 3500, 3506, 3511, 3517, 3520, 3523, 3527, 3533, 3538, 3545,
- 3552, 3556, 3563, 3568, 3575, 3581, 3585, 3590, 3596, 3600,
- 3606, 3610, 3616, 3620, 3623, 3627, 3633, 3638, 3645, 3649,
- 3652, 3655, 3659, 3662, 3666, 3669, 3673, 3679, 3684, 3691,
- 3694, 3697, 3700, 3702, 3707, 3709, 3712, 3715, 3718, 3721,
- 3724, 3727, 3730, 3734, 3737, 3741, 3744, 3748, 3750, 3752,
- 3754, 3756, 3758, 3759, 3762, 3763, 3766, 3767, 3769, 3770,
- 3771, 3773, 3775, 3777, 3785, 3794, 3797, 3802, 3805, 3810,
- 3817, 3820, 3822, 3824, 3828, 3832, 3834, 3838, 3843, 3846,
- 3848, 3852, 3856, 3861, 3865, 3869, 3873, 3875, 3877, 3879,
- 3881, 3883, 3885, 3887, 3889, 3891, 3893, 3895, 3897, 3899,
- 3901, 3904, 3905, 3906, 3909, 3911, 3915, 3917, 3921, 3923,
- 3926, 3929, 3931, 3935, 3936, 3937, 3940, 3943, 3945, 3949,
- 3955, 3957, 3960, 3963, 3966, 3968, 3970, 3972, 3974, 3979,
- 3982, 3986, 3990, 3993, 3997, 4000, 4003, 4006, 4010, 4014,
- 4018, 4021, 4025, 4027, 4031, 4035, 4037, 4040, 4043, 4046,
- 4049, 4051, 4053, 4055, 4057, 4060, 4063, 4067, 4071, 4073,
- 4076, 4080, 4084, 4086, 4089, 4091, 4093, 4096, 4099, 4104,
- 4106, 4109, 4112, 4115, 4119, 4121, 4123, 4125, 4128, 4131,
- 4135, 4139, 4143, 4146, 4149, 4152, 4156, 4160, 4164, 4168,
- 4172, 4176, 4180, 4184, 4188, 4191, 4193, 4195, 4197, 4199,
- 4200, 4206, 4208, 4215, 4219, 4221, 4224, 4227, 4231, 4235,
- 4238, 4241, 4244, 4247, 4250, 4253, 4257, 4260, 4263, 4267,
- 4269, 4273, 4277, 4279, 4282, 4288, 4295, 4302, 4305, 4307,
- 4310, 4313, 4319, 4326
+ 388, 389, 391, 393, 395, 397, 399, 401, 403, 404,
+ 406, 408, 410, 412, 413, 415, 417, 418, 420, 422,
+ 426, 429, 432, 435, 438, 441, 446, 449, 452, 455,
+ 459, 462, 465, 467, 470, 472, 475, 480, 486, 489,
+ 493, 499, 506, 508, 510, 512, 520, 532, 541, 554,
+ 557, 560, 563, 566, 569, 572, 575, 578, 581, 583,
+ 585, 587, 589, 591, 593, 595, 598, 601, 603, 605,
+ 607, 609, 611, 614, 617, 620, 628, 639, 641, 644,
+ 646, 654, 665, 667, 670, 673, 676, 680, 683, 686,
+ 688, 691, 699, 707, 712, 715, 717, 719, 724, 737,
+ 740, 742, 744, 745, 752, 761, 764, 768, 772, 776,
+ 777, 781, 786, 791, 796, 800, 804, 806, 810, 816,
+ 821, 826, 830, 834, 837, 840, 843, 846, 848, 851,
+ 854, 857, 860, 863, 866, 869, 871, 874, 877, 881,
+ 889, 892, 895, 897, 901, 904, 907, 909, 912, 921,
+ 924, 927, 930, 933, 935, 940, 948, 951, 954, 956,
+ 958, 960, 963, 965, 967, 970, 972, 973, 976, 979,
+ 981, 983, 985, 988, 991, 994, 996, 997, 999, 1001,
+ 1003, 1005, 1007, 1009, 1011, 1013, 1015, 1017, 1020, 1022,
+ 1027, 1033, 1034, 1037, 1039, 1045, 1048, 1051, 1054, 1056,
+ 1058, 1060, 1063, 1065, 1068, 1070, 1072, 1074, 1076, 1078,
+ 1079, 1081, 1082, 1084, 1090, 1097, 1101, 1106, 1111, 1115,
+ 1122, 1125, 1127, 1132, 1134, 1136, 1141, 1148, 1156, 1162,
+ 1164, 1166, 1171, 1177, 1179, 1181, 1183, 1187, 1188, 1190,
+ 1193, 1195, 1201, 1203, 1206, 1208, 1213, 1217, 1220, 1222,
+ 1225, 1227, 1233, 1236, 1238, 1240, 1244, 1247, 1248, 1250,
+ 1252, 1257, 1260, 1261, 1263, 1264, 1266, 1268, 1270, 1272,
+ 1274, 1276, 1278, 1280, 1282, 1284, 1286, 1288, 1290, 1292,
+ 1294, 1295, 1298, 1301, 1302, 1304, 1306, 1313, 1315, 1317,
+ 1319, 1321, 1324, 1327, 1329, 1331, 1333, 1335, 1338, 1340,
+ 1342, 1344, 1347, 1349, 1351, 1354, 1357, 1360, 1361, 1363,
+ 1364, 1366, 1368, 1370, 1372, 1374, 1376, 1378, 1380, 1383,
+ 1386, 1388, 1392, 1394, 1397, 1400, 1405, 1412, 1414, 1425,
+ 1427, 1430, 1434, 1438, 1441, 1444, 1447, 1450, 1454, 1459,
+ 1464, 1469, 1473, 1477, 1483, 1488, 1493, 1498, 1502, 1506,
+ 1510, 1514, 1517, 1520, 1525, 1529, 1533, 1537, 1542, 1547,
+ 1552, 1557, 1563, 1568, 1575, 1583, 1588, 1593, 1599, 1602,
+ 1606, 1609, 1612, 1616, 1620, 1624, 1628, 1633, 1637, 1643,
+ 1650, 1654, 1658, 1663, 1667, 1671, 1675, 1679, 1683, 1689,
+ 1693, 1697, 1702, 1706, 1709, 1712, 1714, 1718, 1723, 1728,
+ 1733, 1738, 1743, 1750, 1755, 1760, 1766, 1771, 1776, 1781,
+ 1786, 1792, 1797, 1804, 1812, 1817, 1822, 1828, 1834, 1840,
+ 1846, 1852, 1858, 1866, 1872, 1878, 1885, 1891, 1897, 1903,
+ 1909, 1916, 1922, 1930, 1939, 1945, 1951, 1958, 1962, 1966,
+ 1970, 1974, 1978, 1984, 1988, 1992, 1997, 2000, 2003, 2007,
+ 2011, 2015, 2019, 2024, 2028, 2034, 2041, 2045, 2049, 2054,
+ 2058, 2062, 2066, 2070, 2074, 2080, 2084, 2088, 2093, 2100,
+ 2107, 2109, 2111, 2113, 2116, 2119, 2122, 2126, 2130, 2133,
+ 2136, 2139, 2141, 2145, 2150, 2153, 2154, 2158, 2160, 2162,
+ 2165, 2168, 2171, 2174, 2179, 2184, 2189, 2194, 2200, 2204,
+ 2209, 2215, 2223, 2232, 2239, 2248, 2258, 2265, 2272, 2280,
+ 2291, 2303, 2316, 2326, 2332, 2338, 2345, 2349, 2355, 2361,
+ 2367, 2374, 2380, 2385, 2395, 2406, 2418, 2428, 2435, 2442,
+ 2449, 2456, 2463, 2470, 2477, 2484, 2491, 2499, 2502, 2507,
+ 2512, 2517, 2522, 2528, 2533, 2538, 2544, 2548, 2553, 2558,
+ 2563, 2570, 2578, 2587, 2597, 2604, 2615, 2627, 2640, 2650,
+ 2654, 2657, 2661, 2667, 2674, 2682, 2687, 2691, 2695, 2702,
+ 2709, 2716, 2724, 2729, 2734, 2741, 2751, 2756, 2760, 2767,
+ 2775, 2783, 2786, 2790, 2794, 2798, 2803, 2806, 2809, 2814,
+ 2822, 2833, 2837, 2839, 2843, 2846, 2849, 2852, 2855, 2859,
+ 2865, 2870, 2876, 2879, 2887, 2891, 2894, 2897, 2901, 2904,
+ 2907, 2910, 2914, 2917, 2921, 2926, 2930, 2934, 2940, 2947,
+ 2952, 2955, 2959, 2962, 2965, 2970, 2974, 2978, 2981, 2985,
+ 2987, 2991, 2993, 2996, 2999, 3002, 3004, 3006, 3008, 3010,
+ 3013, 3015, 3018, 3021, 3023, 3026, 3029, 3031, 3034, 3036,
+ 3038, 3040, 3042, 3044, 3046, 3048, 3050, 3051, 3053, 3056,
+ 3059, 3062, 3066, 3072, 3080, 3088, 3095, 3102, 3109, 3115,
+ 3122, 3129, 3136, 3143, 3150, 3157, 3164, 3175, 3183, 3191,
+ 3199, 3209, 3219, 3230, 3243, 3256, 3259, 3262, 3266, 3271,
+ 3276, 3281, 3284, 3289, 3294, 3296, 3298, 3300, 3302, 3304,
+ 3306, 3308, 3310, 3313, 3315, 3317, 3321, 3325, 3333, 3339,
+ 3343, 3347, 3350, 3353, 3357, 3362, 3367, 3373, 3378, 3384,
+ 3389, 3395, 3399, 3404, 3410, 3415, 3421, 3425, 3431, 3436,
+ 3442, 3445, 3449, 3453, 3458, 3464, 3468, 3472, 3476, 3481,
+ 3487, 3492, 3498, 3503, 3509, 3514, 3520, 3524, 3529, 3535,
+ 3540, 3546, 3549, 3552, 3556, 3562, 3567, 3574, 3581, 3585,
+ 3589, 3594, 3601, 3607, 3612, 3618, 3621, 3625, 3631, 3636,
+ 3643, 3647, 3650, 3653, 3657, 3660, 3664, 3667, 3671, 3677,
+ 3682, 3689, 3692, 3695, 3698, 3700, 3705, 3707, 3710, 3713,
+ 3716, 3719, 3722, 3725, 3728, 3732, 3735, 3739, 3742, 3746,
+ 3748, 3750, 3752, 3754, 3756, 3757, 3760, 3761, 3764, 3765,
+ 3767, 3768, 3769, 3771, 3773, 3775, 3783, 3792, 3795, 3800,
+ 3803, 3808, 3815, 3818, 3820, 3822, 3826, 3830, 3832, 3836,
+ 3841, 3844, 3846, 3850, 3854, 3859, 3863, 3867, 3871, 3873,
+ 3875, 3877, 3879, 3881, 3883, 3885, 3887, 3889, 3891, 3893,
+ 3895, 3897, 3899, 3902, 3903, 3904, 3907, 3909, 3913, 3915,
+ 3919, 3921, 3924, 3927, 3929, 3933, 3934, 3935, 3938, 3941,
+ 3943, 3947, 3953, 3955, 3958, 3961, 3964, 3966, 3968, 3970,
+ 3972, 3977, 3980, 3984, 3988, 3991, 3995, 3998, 4001, 4004,
+ 4008, 4012, 4016, 4019, 4023, 4025, 4029, 4033, 4035, 4038,
+ 4041, 4044, 4047, 4049, 4051, 4053, 4055, 4058, 4061, 4065,
+ 4069, 4071, 4074, 4078, 4082, 4084, 4087, 4089, 4091, 4094,
+ 4097, 4102, 4104, 4107, 4110, 4113, 4117, 4119, 4121, 4123,
+ 4126, 4129, 4132, 4136, 4140, 4144, 4147, 4150, 4153, 4157,
+ 4161, 4165, 4169, 4173, 4177, 4181, 4185, 4189, 4192, 4194,
+ 4196, 4198, 4200, 4201, 4207, 4209, 4216, 4220, 4222, 4225,
+ 4228, 4232, 4236, 4239, 4242, 4245, 4248, 4251, 4254, 4258,
+ 4261, 4264, 4268, 4270, 4274, 4278, 4280, 4283, 4289, 4296,
+ 4303, 4306, 4308, 4311, 4314, 4320, 4327
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 330, 0, -1, 90, 332, -1, 40, 357, -1, 38,
- 61, 5, -1, 54, -1, 59, -1, 60, 362, -1,
- 63, 369, -1, 64, 371, -1, 71, 372, -1, 78,
- 376, -1, 80, 378, -1, 89, 333, -1, 114, 379,
- -1, 126, 380, -1, 130, 418, -1, 133, 420, -1,
- 138, -1, 140, 333, -1, 146, 425, -1, 165, 428,
- -1, 169, 444, -1, 170, 445, -1, 173, 461, 446,
- -1, 174, 480, -1, 186, 61, 5, -1, 199, 481,
- -1, 200, 482, -1, 201, 485, -1, 210, 486, -1,
- 223, -1, 220, 461, 488, -1, 225, 492, -1, 227,
- 493, -1, 232, 495, -1, 244, -1, 249, 501, -1,
- 265, 356, -1, 276, -1, 278, 503, -1, 284, -1,
- 287, 505, -1, 288, 506, -1, 318, 510, -1, 324,
- 511, -1, 3, -1, 4, -1, 333, -1, 29, 333,
- -1, 181, 333, -1, 202, 333, -1, 204, 333, -1,
- 288, 333, -1, 40, 333, -1, 70, 333, -1, 78,
- 333, -1, 131, 333, -1, 225, 333, -1, 4, -1,
- 321, -1, 325, -1, 196, -1, 272, -1, 190, -1,
- 326, -1, 195, -1, 109, -1, -1, 92, -1, 115,
- -1, 235, -1, 151, -1, -1, 226, 35, -1, 122,
- 35, -1, 226, -1, 122, -1, 226, 265, -1, 122,
- 265, -1, -1, 337, -1, 331, -1, 7, -1, 8,
- -1, 9, -1, 10, -1, 11, -1, 338, 338, -1,
- 339, 340, -1, 340, 340, -1, 331, 331, -1, 147,
- -1, 205, -1, 95, -1, 19, -1, 343, -1, 288,
- -1, 289, -1, 290, -1, 291, -1, 292, -1, 293,
- -1, 294, -1, 295, -1, 296, -1, 297, -1, 298,
- -1, 299, -1, 300, -1, 301, -1, 302, -1, 303,
- -1, 304, -1, 305, -1, 306, -1, 307, -1, 308,
- -1, 309, -1, 310, -1, 311, -1, 312, -1, 313,
- -1, 314, -1, 315, -1, 51, -1, 201, -1, 163,
- -1, 167, -1, 211, -1, 253, -1, 254, -1, 28,
- -1, 245, -1, 141, -1, -1, 116, -1, 117, -1,
- 33, -1, 118, -1, 155, -1, 144, -1, 124, -1,
- 257, -1, 100, -1, 137, -1, -1, 91, -1, 240,
- -1, -1, 91, -1, 24, -1, 25, -1, 331, -1,
- 177, -1, 323, -1, 322, -1, 279, -1, -1, 243,
- -1, 156, -1, -1, 17, -1, 149, -1, -1, 147,
- -1, 174, -1, -1, 191, -1, 131, -1, -1, 4,
- -1, -1, 39, -1, 161, -1, 282, 331, 331, -1,
- 140, 333, -1, 176, 491, -1, 264, 4, -1, 266,
- 331, -1, 12, 358, -1, 66, 5, 5, 5, -1,
- 94, 4, -1, 108, 359, -1, 123, 360, -1, 48,
- 246, 4, -1, 269, 361, -1, 111, 5, -1, 54,
- -1, 331, 331, -1, 331, -1, 331, 331, -1, 331,
- 12, 331, 331, -1, 331, 331, 12, 331, 331, -1,
- 269, 331, -1, 269, 331, 331, -1, 269, 331, 12,
- 331, 331, -1, 269, 331, 331, 12, 331, 331, -1,
- 32, -1, 258, -1, 112, -1, 331, 331, 12, 54,
- 5, 5, 5, -1, 331, 331, 4, 331, 331, 12,
- 54, 5, 5, 5, 5, -1, 331, 331, 12, 331,
- 331, 5, 5, 5, -1, 331, 331, 4, 331, 331,
- 12, 331, 331, 5, 5, 5, 5, -1, 236, 364,
- -1, 182, 365, -1, 177, 366, -1, 279, 363, -1,
- 323, 368, -1, 213, 333, -1, 331, 331, -1, 168,
- 331, -1, 139, 331, -1, 127, -1, 166, -1, 331,
- -1, 177, -1, 323, -1, 322, -1, 279, -1, 182,
- 367, -1, 229, 4, -1, 30, -1, 234, -1, 229,
- -1, 88, -1, 154, -1, 72, 331, -1, 229, 4,
- -1, 162, 4, -1, 4, 331, 331, 4, 6, 6,
- 4, -1, 225, 331, 331, 331, 331, 331, 331, 4,
- 6, 4, -1, 37, -1, 183, 370, -1, 103, -1,
- 4, 331, 331, 4, 6, 6, 4, -1, 225, 331,
- 331, 331, 331, 331, 331, 4, 6, 4, -1, 345,
- -1, 167, 331, -1, 31, 373, -1, 61, 5, -1,
- 74, 342, 346, -1, 77, 374, -1, 85, 4, -1,
- 93, -1, 93, 17, -1, 165, 5, 4, 4, 5,
- 342, 346, -1, 203, 5, 4, 4, 6, 342, 346,
- -1, 232, 5, 342, 346, -1, 317, 4, -1, 134,
- -1, 189, -1, 232, 5, 342, 346, -1, 5, 4,
- 4, 375, 4, 4, 345, 331, 349, 331, 331, 5,
- -1, 209, 468, -1, 249, -1, 42, -1, -1, 331,
- 331, 331, 331, 342, 346, -1, 54, 341, 342, 346,
- 331, 331, 342, 348, -1, 265, 377, -1, 37, 331,
- 331, -1, 183, 331, 331, -1, 103, 331, 331, -1,
- -1, 331, 331, 342, -1, 37, 331, 331, 4, -1,
- 183, 331, 331, 4, -1, 103, 331, 331, 4, -1,
- 344, 331, 331, -1, 342, 346, 341, -1, 333, -1,
- 287, 331, 331, -1, 37, 183, 344, 331, 331, -1,
- 183, 344, 331, 331, -1, 37, 183, 342, 341, -1,
- 183, 342, 341, -1, 133, 107, 5, -1, 38, 61,
- -1, 40, 381, -1, 60, 383, -1, 63, 387, -1,
- 62, -1, 64, 389, -1, 71, 391, -1, 73, 395,
- -1, 78, 396, -1, 80, 397, -1, 82, 398, -1,
- 87, 399, -1, 89, -1, 113, 403, -1, 130, 408,
- -1, 142, 5, 5, -1, 143, 83, 5, 5, 331,
- 331, 344, -1, 146, 401, -1, 150, 400, -1, 177,
- -1, 173, 461, 455, -1, 174, 409, -1, 186, 61,
- -1, 199, -1, 200, 410, -1, 206, 260, 344, 331,
- 331, 4, 4, 5, -1, 225, 411, -1, 227, 412,
- -1, 249, 413, -1, 265, 414, -1, 273, -1, 280,
- 344, 331, 331, -1, 286, 83, 5, 5, 331, 331,
- 344, -1, 288, 415, -1, 324, 417, -1, 94, -1,
- 108, -1, 123, -1, 48, 246, -1, 82, -1, 111,
- -1, 66, 382, -1, 164, -1, -1, 177, 5, -1,
- 97, 5, -1, 384, -1, 236, -1, 182, -1, 177,
- 385, -1, 279, 160, -1, 323, 386, -1, 213, -1,
- -1, 331, -1, 177, -1, 323, -1, 322, -1, 279,
- -1, 182, -1, 229, -1, 72, -1, 229, -1, 162,
- -1, 160, 388, -1, 4, -1, 4, 344, 331, 331,
- -1, 4, 331, 331, 345, 331, -1, -1, 160, 390,
- -1, 167, -1, 4, 331, 331, 345, 331, -1, 342,
- 346, -1, 31, 392, -1, 60, 393, -1, 61, -1,
- 85, -1, 160, -1, 193, 160, -1, 176, -1, 64,
- 394, -1, 249, -1, 317, -1, 61, -1, 85, -1,
- 317, -1, -1, 182, -1, -1, 167, -1, 331, 331,
- 342, 346, 347, -1, 344, 331, 331, 342, 346, 347,
- -1, 331, 342, 4, -1, 120, 331, 342, 4, -1,
- 269, 331, 342, 4, -1, 342, 346, 347, -1, 54,
- 342, 346, 347, 342, 348, -1, 265, 342, -1, 344,
- -1, 342, 346, 347, 334, -1, 256, -1, 344, -1,
- 342, 346, 347, 334, -1, 342, 346, 341, 331, 331,
- 5, -1, 4, 342, 346, 341, 331, 331, 5, -1,
- 344, 331, 331, 4, 4, -1, 5, -1, 60, -1,
- 344, 331, 331, 5, -1, 6, 4, 4, 4, 4,
- -1, 82, -1, 317, -1, 136, -1, 110, 185, 402,
- -1, -1, 4, -1, 331, 331, -1, 187, -1, 54,
- 342, 346, 347, 334, -1, 75, -1, 94, 405, -1,
- 41, -1, 107, 344, 331, 331, -1, 110, 185, 406,
- -1, 135, 404, -1, 136, -1, 194, 185, -1, 246,
- -1, 246, 342, 346, 348, 334, -1, 247, 407, -1,
- 317, -1, 4, -1, 4, 157, 5, -1, 288, 4,
- -1, -1, 4, -1, 335, -1, 335, 344, 331, 331,
- -1, 335, 4, -1, -1, 4, -1, -1, 198, -1,
- 61, -1, 172, -1, 268, -1, 213, -1, 56, -1,
- 259, -1, 282, -1, 334, -1, 123, -1, 219, -1,
- 282, -1, 140, -1, 176, -1, 264, -1, -1, 16,
- 416, -1, 185, 343, -1, -1, 208, -1, 334, -1,
- 77, 342, 346, 347, 419, 5, -1, 93, -1, 20,
- -1, 217, -1, 19, -1, 71, 421, -1, 78, -1,
- 88, -1, 89, -1, 95, -1, 113, 422, -1, 130,
- -1, 146, -1, 154, -1, 173, 423, -1, 205, -1,
- 249, -1, 259, 342, -1, 288, 424, -1, -1, 31,
- -1, -1, 40, -1, 81, -1, 181, -1, 140, -1,
- 238, -1, 203, -1, 274, -1, 342, -1, 105, 342,
- -1, 53, 342, -1, 18, -1, 188, 4, 4, -1,
- 106, -1, 175, 5, -1, 82, 427, -1, 239, 110,
- 185, 426, -1, 239, 6, 4, 4, 4, 4, -1,
- 278, -1, 288, 331, 331, 331, 331, 331, 331, 331,
- 331, 4, -1, 5, -1, 5, 4, -1, 4, 4,
- 51, -1, 4, 4, 342, -1, 182, 333, -1, 26,
- 429, -1, 113, 431, -1, 149, 443, -1, 5, 14,
- 5, 352, -1, 5, 15, 5, 352, -1, 5, 56,
- 5, 352, -1, 5, 179, 352, -1, 5, 180, 352,
- -1, 5, 241, 350, 4, 352, -1, 5, 250, 4,
- 352, -1, 5, 251, 4, 352, -1, 5, 281, 5,
- 352, -1, 225, 81, 430, -1, 5, 14, 5, -1,
- 5, 15, 5, -1, 5, 56, 5, -1, 5, 179,
- -1, 5, 180, -1, 5, 241, 350, 4, -1, 5,
- 250, 4, -1, 5, 251, 4, -1, 5, 281, 5,
- -1, 5, 14, 5, 352, -1, 5, 15, 5, 352,
- -1, 5, 56, 5, 352, -1, 5, 179, 351, 352,
- -1, 5, 5, 248, 351, 352, -1, 5, 180, 351,
- 352, -1, 5, 241, 350, 4, 351, 352, -1, 5,
- 255, 350, 4, 4, 351, 352, -1, 5, 250, 4,
- 352, -1, 5, 251, 4, 352, -1, 5, 281, 5,
- 351, 352, -1, 247, 432, -1, 107, 81, 433, -1,
- 181, 434, -1, 225, 440, -1, 5, 14, 5, -1,
- 5, 15, 5, -1, 5, 56, 5, -1, 5, 179,
- 351, -1, 5, 5, 248, 351, -1, 5, 180, 351,
- -1, 5, 241, 350, 4, 351, -1, 5, 255, 350,
- 4, 4, 351, -1, 5, 250, 4, -1, 5, 251,
- 4, -1, 5, 281, 5, 351, -1, 5, 14, 5,
- -1, 5, 15, 5, -1, 5, 56, 5, -1, 5,
- 179, 351, -1, 5, 180, 351, -1, 5, 241, 350,
- 4, 351, -1, 5, 250, 4, -1, 5, 251, 4,
- -1, 5, 281, 5, 351, -1, 147, 153, 435, -1,
- 153, 436, -1, 147, 437, -1, 438, -1, 147, 316,
- 439, -1, 5, 14, 5, 352, -1, 5, 15, 5,
- 352, -1, 5, 56, 5, 352, -1, 5, 179, 351,
- 352, -1, 5, 180, 351, 352, -1, 5, 241, 350,
- 4, 351, 352, -1, 5, 250, 4, 352, -1, 5,
- 251, 4, 352, -1, 5, 281, 5, 351, 352, -1,
- 5, 14, 5, 352, -1, 5, 15, 5, 352, -1,
- 5, 56, 5, 352, -1, 5, 179, 351, 352, -1,
- 5, 5, 248, 351, 352, -1, 5, 180, 351, 352,
- -1, 5, 241, 350, 4, 351, 352, -1, 5, 255,
- 350, 4, 4, 351, 352, -1, 5, 250, 4, 352,
- -1, 5, 251, 4, 352, -1, 5, 281, 5, 351,
- 352, -1, 343, 5, 14, 5, 352, -1, 343, 5,
- 15, 5, 352, -1, 343, 5, 56, 5, 352, -1,
- 343, 5, 179, 351, 352, -1, 343, 5, 180, 351,
- 352, -1, 343, 5, 241, 350, 4, 351, 352, -1,
- 343, 5, 250, 4, 352, -1, 343, 5, 251, 4,
- 352, -1, 343, 5, 281, 5, 351, 352, -1, 343,
- 5, 14, 5, 352, -1, 343, 5, 15, 5, 352,
- -1, 343, 5, 56, 5, 352, -1, 343, 5, 179,
- 351, 352, -1, 343, 5, 5, 248, 351, 352, -1,
- 343, 5, 180, 351, 352, -1, 343, 5, 241, 350,
- 4, 351, 352, -1, 343, 5, 255, 350, 4, 4,
- 351, 352, -1, 343, 5, 250, 4, 352, -1, 343,
- 5, 251, 4, 352, -1, 343, 5, 281, 5, 351,
- 352, -1, 5, 14, 5, -1, 5, 15, 5, -1,
- 5, 56, 5, -1, 5, 179, 351, -1, 5, 180,
- 351, -1, 5, 241, 350, 4, 351, -1, 5, 250,
- 4, -1, 5, 251, 4, -1, 5, 281, 5, 351,
- -1, 81, 441, -1, 147, 442, -1, 5, 14, 5,
- -1, 5, 15, 5, -1, 5, 56, 5, -1, 5,
- 179, 351, -1, 5, 5, 248, 351, -1, 5, 180,
- 351, -1, 5, 241, 350, 4, 351, -1, 5, 255,
- 350, 4, 4, 351, -1, 5, 250, 4, -1, 5,
- 251, 4, -1, 5, 281, 5, 351, -1, 5, 14,
- 5, -1, 5, 15, 5, -1, 5, 56, 5, -1,
- 5, 179, 351, -1, 5, 180, 351, -1, 5, 241,
- 350, 4, 351, -1, 5, 250, 4, -1, 5, 251,
- 4, -1, 5, 281, 5, 351, -1, 87, 4, 4,
- 4, 4, 4, -1, 177, 4, 4, 4, 4, 4,
- -1, 103, -1, 212, -1, 333, -1, 128, 333, -1,
- 82, 333, -1, 61, 5, -1, 5, 4, 4, -1,
- 278, 331, 331, -1, 324, 331, -1, 55, 449, -1,
- 61, 5, -1, 74, -1, 67, 454, 5, -1, 67,
- 454, 281, 5, -1, 69, 93, -1, -1, 77, 447,
- 450, -1, 83, -1, 93, -1, 93, 17, -1, 99,
- 453, -1, 119, 5, -1, 140, 17, -1, 140, 197,
- 331, 331, -1, 140, 270, 331, 331, -1, 4, 21,
- 337, -1, 4, 21, 337, 344, -1, 4, 21, 337,
- 342, 346, -1, 4, 22, 219, 331, 331, 4, 344,
- -1, 4, 22, 219, 331, 331, 4, 342, 348, -1,
- 4, 22, 219, 5, 342, 348, -1, 4, 44, 219,
- 331, 331, 331, 4, 344, -1, 4, 44, 219, 331,
- 331, 331, 4, 342, 348, -1, 4, 44, 219, 5,
- 342, 348, -1, 4, 43, 219, 331, 331, 344, -1,
- 4, 43, 219, 331, 331, 342, 348, -1, 4, 47,
- 99, 337, 337, 4, 331, 331, 331, 4, -1, 4,
- 47, 99, 337, 337, 4, 331, 331, 331, 4, 344,
- -1, 4, 47, 99, 337, 337, 4, 331, 331, 331,
- 4, 342, 346, -1, 4, 47, 99, 5, 5, 342,
- 346, 342, 348, -1, 4, 50, 448, 5, 5, -1,
- 4, 57, 219, 331, 344, -1, 4, 57, 219, 331,
- 342, 348, -1, 4, 61, 5, -1, 4, 68, 27,
- 333, 333, -1, 4, 68, 158, 5, 5, -1, 4,
- 68, 219, 331, 344, -1, 4, 68, 219, 331, 342,
- 348, -1, 4, 68, 259, 342, 346, -1, 4, 69,
- 127, 333, -1, 4, 76, 99, 337, 337, 4, 331,
- 331, 4, -1, 4, 76, 99, 337, 337, 4, 331,
- 331, 4, 344, -1, 4, 76, 99, 337, 337, 4,
- 331, 331, 4, 342, 346, -1, 4, 76, 99, 5,
- 5, 342, 346, 342, 348, -1, 4, 77, 22, 219,
- 331, 331, -1, 4, 77, 44, 219, 331, 331, -1,
- 4, 77, 47, 21, 331, 331, -1, 4, 77, 47,
- 219, 331, 331, -1, 4, 77, 102, 219, 331, 331,
- -1, 4, 77, 104, 21, 331, 331, -1, 4, 77,
- 104, 219, 331, 331, -1, 4, 77, 76, 21, 331,
- 331, -1, 4, 77, 76, 219, 331, 331, -1, 4,
- 77, 209, 285, 4, 331, 331, -1, 4, 93, -1,
- 4, 93, 22, 4, -1, 4, 93, 44, 4, -1,
- 4, 93, 47, 4, -1, 4, 93, 102, 4, -1,
- 4, 93, 50, 448, 5, -1, 4, 93, 104, 4,
- -1, 4, 93, 76, 4, -1, 4, 93, 209, 285,
- 4, -1, 4, 93, 261, -1, 4, 93, 261, 5,
- -1, 4, 93, 261, 4, -1, 4, 99, 37, 4,
- -1, 4, 101, 219, 331, 331, 344, -1, 4, 101,
- 219, 331, 331, 342, 348, -1, 4, 102, 219, 331,
- 331, 331, 4, 344, -1, 4, 102, 219, 331, 331,
- 331, 4, 342, 348, -1, 4, 102, 219, 5, 342,
- 348, -1, 4, 104, 99, 337, 337, 4, 331, 331,
- 331, 4, -1, 4, 104, 99, 337, 337, 4, 331,
- 331, 331, 4, 344, -1, 4, 104, 99, 337, 337,
- 4, 331, 331, 331, 4, 342, 346, -1, 4, 104,
- 99, 5, 5, 342, 346, 342, 348, -1, 4, 119,
- 5, -1, 4, 140, -1, 4, 140, 197, -1, 4,
- 162, 27, 333, 333, -1, 4, 162, 207, 344, 341,
- 341, -1, 4, 162, 207, 342, 346, 341, 341, -1,
- 4, 184, 331, 331, -1, 4, 184, 121, -1, 4,
- 184, 34, -1, 4, 184, 269, 344, 331, 331, -1,
- 4, 184, 269, 342, 346, 341, -1, 4, 209, 223,
- 331, 331, 344, -1, 4, 209, 223, 331, 331, 342,
- 348, -1, 4, 207, 246, 4, -1, 4, 214, 344,
- 341, 341, 331, 4, -1, 4, 214, 342, 346, 341,
- 341, 331, 4, 342, 348, -1, 4, 214, 259, 342,
- 346, -1, 4, 215, 331, 344, 4, -1, 4, 215,
- 331, 342, 348, 4, -1, 4, 215, 259, 342, -1,
- 4, 216, 467, 333, -1, 4, 227, 37, -1, 4,
- 228, 207, 344, 341, 341, -1, 4, 228, 207, 342,
- 346, 341, 341, -1, 4, 228, 259, 342, 346, 342,
- 348, -1, 4, 238, -1, 4, 238, 197, -1, 4,
- 261, 5, -1, 4, 263, 5, -1, 4, 263, 227,
- 333, -1, 4, 275, -1, 4, 277, -1, 4, 283,
- 27, 333, -1, 4, 283, 207, 344, 341, 331, 337,
- -1, 4, 283, 207, 342, 346, 341, 342, 348, 331,
- 337, -1, 4, 317, 4, -1, 156, -1, 156, 331,
- 331, -1, 164, 462, -1, 165, 463, -1, 184, 464,
- -1, 213, 333, -1, 216, 467, 333, -1, 216, 467,
- 333, 331, 331, -1, 227, 37, 331, 331, -1, 227,
- 183, 331, 331, 4, -1, 227, 103, -1, 232, 5,
- 454, 342, 346, 347, 333, -1, 232, 262, 5, -1,
- 238, 471, -1, 244, 472, -1, 5, 61, 5, -1,
- 5, 74, -1, 5, 93, -1, 5, 83, -1, 5,
- 119, 5, -1, 5, 140, -1, 5, 140, 197, -1,
- 5, 184, 331, 331, -1, 5, 184, 121, -1, 5,
- 184, 34, -1, 5, 184, 269, 344, 341, -1, 5,
- 184, 269, 342, 346, 341, -1, 5, 216, 467, 333,
- -1, 5, 238, -1, 5, 238, 197, -1, 5, 275,
- -1, 5, 277, -1, 261, 99, 5, 5, -1, 261,
- 93, 5, -1, 261, 93, 17, -1, 261, 5, -1,
- 261, 278, 5, -1, 203, -1, 203, 342, 342, -1,
- 274, -1, 275, 17, -1, 277, 17, -1, 317, 4,
- -1, 238, -1, 277, -1, 140, -1, 275, -1, 37,
- 184, -1, 184, -1, 103, 184, -1, 37, 99, -1,
- 99, -1, 103, 99, -1, 37, 227, -1, 227, -1,
- 103, 227, -1, 93, -1, 263, -1, 61, -1, 317,
- -1, 216, -1, 119, -1, 156, -1, 278, -1, -1,
- 4, -1, 30, 333, -1, 219, 331, -1, 152, 4,
- -1, 198, 4, 331, -1, 57, 331, 331, 331, 468,
- -1, 22, 331, 331, 331, 331, 4, 468, -1, 76,
- 331, 331, 337, 337, 4, 331, 331, 4, 468, -1,
- 101, 331, 331, 331, 331, 336, 468, -1, 102, 331,
- 331, 331, 331, 331, 4, 336, 468, -1, 104, 331,
- 331, 337, 337, 4, 331, 331, 331, 4, 336, 468,
- -1, 43, 331, 331, 331, 331, 336, 468, -1, 44,
- 331, 331, 331, 331, 331, 4, 336, 468, -1, 47,
- 331, 331, 337, 337, 4, 331, 331, 331, 4, 336,
- 468, -1, 162, 331, 331, 331, 331, 468, -1, 283,
- 331, 331, 331, 331, 468, -1, 214, 331, 331, 331,
- 331, 331, 468, -1, 214, 331, 331, 331, 331, 331,
- 5, 5, 468, -1, 215, 331, 331, 331, 468, -1,
- 215, 331, 331, 331, 5, 5, 468, -1, 228, 331,
- 331, 331, 331, 342, 346, 342, 348, 468, -1, 57,
- 207, 331, 331, 354, 468, -1, 43, 207, 331, 331,
- 354, 468, -1, 96, 207, 331, 331, 354, 468, -1,
- 79, 207, 331, 331, 354, 468, -1, 327, 207, 331,
- 331, 354, 468, -1, 27, 207, 331, 331, 354, 468,
- -1, 46, 207, 331, 331, 354, 468, -1, 263, 331,
- 331, 336, 468, -1, 209, 331, 331, 331, 331, 468,
- -1, 68, 331, 331, 331, 342, 346, 468, -1, 69,
- 468, -1, 262, 451, -1, 5, 331, 331, -1, 281,
- 5, 331, 331, -1, 331, 331, 281, 5, -1, 5,
- 342, 346, 341, -1, 4, 4, -1, 37, 331, 331,
- 4, -1, 183, 331, 331, 4, -1, 103, -1, 98,
- -1, 319, -1, 58, -1, 231, -1, 230, -1, 218,
- -1, 320, -1, 55, 456, -1, 61, -1, 119, -1,
- 132, 331, 331, -1, 145, 331, 331, -1, 145, 17,
- -1, 4, 21, -1, 4, 21, 344, -1, 4, 21,
- 342, 346, -1, 4, 22, 219, 344, -1, 4, 22,
- 219, 342, 348, -1, 4, 44, 219, 344, -1, 4,
- 44, 219, 342, 348, -1, 4, 43, 219, 344, -1,
- 4, 43, 219, 342, 348, -1, 4, 47, 21, -1,
- 4, 47, 21, 344, -1, 4, 47, 21, 342, 346,
- -1, 4, 47, 219, 344, -1, 4, 47, 219, 342,
- 348, -1, 4, 54, 344, -1, 4, 54, 342, 346,
- 347, -1, 4, 57, 219, 344, -1, 4, 57, 219,
- 342, 348, -1, 4, 61, -1, 4, 68, 27, -1,
- 4, 68, 158, -1, 4, 68, 219, 344, -1, 4,
- 68, 219, 342, 348, -1, 4, 68, 259, -1, 4,
- 69, 127, -1, 4, 76, 21, -1, 4, 76, 21,
- 344, -1, 4, 76, 21, 342, 346, -1, 4, 76,
- 219, 344, -1, 4, 76, 219, 342, 348, -1, 4,
- 101, 219, 344, -1, 4, 101, 219, 342, 348, -1,
- 4, 102, 219, 344, -1, 4, 102, 219, 342, 348,
- -1, 4, 104, 21, -1, 4, 104, 21, 344, -1,
- 4, 104, 21, 342, 346, -1, 4, 104, 219, 344,
- -1, 4, 104, 219, 342, 348, -1, 4, 119, -1,
- 4, 140, -1, 4, 162, 27, -1, 4, 162, 159,
- 342, 348, -1, 4, 162, 207, 344, -1, 4, 162,
- 207, 342, 346, 347, -1, 4, 171, 159, 331, 342,
- 348, -1, 4, 207, 246, -1, 4, 214, 5, 5,
- 5, 5, -1, 4, 214, 207, 344, -1, 4, 214,
- 207, 342, 346, 347, -1, 4, 214, 159, 342, 348,
- -1, 4, 214, 176, -1, 4, 214, 267, 344, -1,
- 4, 214, 267, 342, 348, -1, 4, 214, 259, -1,
- 4, 215, 5, 5, 5, -1, 4, 215, 176, -1,
- 4, 215, 219, 342, 348, -1, 4, 215, 259, -1,
- 4, 216, -1, 4, 216, 467, -1, 4, 228, 159,
- 342, 348, -1, 4, 228, 207, 344, -1, 4, 228,
- 207, 342, 346, 347, -1, 4, 228, 259, -1, 4,
- 238, -1, 4, 261, -1, 4, 261, 4, -1, 4,
- 263, -1, 4, 263, 227, -1, 4, 273, -1, 4,
- 283, 27, -1, 4, 283, 159, 342, 348, -1, 4,
- 283, 207, 344, -1, 4, 283, 207, 342, 346, 347,
- -1, 4, 317, -1, 140, 457, -1, 140, 193, -1,
- 193, -1, 209, 237, 331, 331, -1, 213, -1, 216,
- 467, -1, 238, 458, -1, 238, 193, -1, 244, 459,
- -1, 5, 61, -1, 5, 119, -1, 5, 145, -1,
- 5, 216, 467, -1, 5, 261, -1, 5, 261, 193,
- -1, 261, 17, -1, 261, 92, 185, -1, 317, -1,
- 30, -1, 219, -1, 152, -1, 198, -1, -1, 331,
- 331, -1, -1, 331, 331, -1, -1, 263, -1, -1,
- -1, 208, -1, 279, -1, 52, -1, 454, 342, 346,
- 347, 333, 469, 475, -1, 238, 454, 342, 346, 347,
- 333, 469, 475, -1, 454, 5, -1, 454, 5, 342,
- 346, -1, 454, 4, -1, 454, 4, 342, 346, -1,
- 113, 5, 5, 452, 4, 5, -1, 331, 331, -1,
- 121, -1, 34, -1, 37, 331, 331, -1, 183, 331,
- 331, -1, 103, -1, 269, 344, 341, -1, 269, 342,
- 346, 341, -1, 465, 466, -1, 466, -1, 467, 328,
- 333, -1, 61, 328, 5, -1, 86, 328, 4, 4,
- -1, 317, 328, 4, -1, 119, 328, 5, -1, 263,
- 328, 5, -1, 478, -1, 479, -1, 191, -1, 238,
- -1, 140, -1, 85, -1, 115, -1, 99, -1, 184,
- -1, 227, -1, 93, -1, 148, -1, 252, -1, 460,
- -1, 460, 465, -1, -1, -1, 470, 473, -1, 17,
- -1, 197, 331, 331, -1, 270, -1, 270, 331, 331,
- -1, 333, -1, 263, 333, -1, 473, 474, -1, 474,
- -1, 467, 328, 333, -1, -1, -1, 476, 477, -1,
- 477, 478, -1, 478, -1, 261, 328, 5, -1, 50,
- 328, 448, 5, 5, -1, 59, -1, 61, 5, -1,
- 172, 4, -1, 268, 331, -1, 327, -1, 325, -1,
- 320, -1, 191, -1, 331, 331, 331, 331, -1, 331,
- 331, -1, 344, 331, 331, -1, 342, 346, 341, -1,
- 269, 483, -1, 36, 331, 331, -1, 183, 484, -1,
- 213, 333, -1, 331, 331, -1, 344, 331, 331, -1,
- 342, 346, 341, -1, 37, 331, 331, -1, 331, 331,
- -1, 103, 331, 331, -1, 333, -1, 288, 343, 346,
- -1, 5, 4, 4, -1, 278, -1, 65, 487, -1,
- 160, 4, -1, 224, 4, -1, 233, 331, -1, 49,
- -1, 129, -1, 225, -1, 84, -1, 140, 489, -1,
- 238, 490, -1, 37, 331, 331, -1, 183, 331, 331,
- -1, 103, -1, 242, 103, -1, 37, 331, 331, -1,
- 183, 331, 331, -1, 103, -1, 242, 103, -1, 178,
- -1, 13, -1, 56, 5, -1, 259, 342, -1, 282,
- 4, 4, 4, -1, 331, -1, 331, 91, -1, 183,
- 494, -1, 269, 331, -1, 269, 331, 91, -1, 37,
- -1, 331, -1, 103, -1, 26, 496, -1, 113, 497,
- -1, 110, 5, 355, -1, 56, 5, 355, -1, 250,
- 4, 355, -1, 147, 498, -1, 260, 499, -1, 222,
- 500, -1, 110, 5, 353, -1, 56, 5, 353, -1,
- 250, 4, 353, -1, 110, 5, 353, -1, 56, 5,
- 353, -1, 250, 4, 353, -1, 110, 5, 353, -1,
- 56, 5, 353, -1, 250, 4, 353, -1, 502, 4,
- -1, 93, -1, 45, -1, 125, -1, 271, -1, -1,
- 4, 331, 331, 331, 331, -1, 192, -1, 192, 4,
- 331, 331, 331, 331, -1, 113, 247, 504, -1, 4,
- -1, 4, 4, -1, 331, 331, -1, 269, 331, 331,
- -1, 343, 346, 347, -1, 16, 509, -1, 223, 4,
- -1, 221, 508, -1, 23, 507, -1, 4, 4, -1,
- 4, 5, -1, 263, 4, 5, -1, 4, 4, -1,
- 4, 5, -1, 263, 4, 5, -1, 4, -1, 4,
- 343, 346, -1, 4, 6, 343, -1, 212, -1, 331,
- 331, -1, 331, 331, 12, 331, 331, -1, 331, 331,
- 12, 344, 331, 331, -1, 331, 331, 12, 342, 346,
- 341, -1, 269, 512, -1, 112, -1, 112, 331, -1,
- 331, 331, -1, 331, 331, 12, 331, 331, -1, 331,
- 331, 12, 344, 331, 331, -1, 331, 331, 12, 342,
- 346, 341, -1
+ 337, 0, -1, 92, 339, -1, 40, 367, -1, 38,
+ 62, 5, -1, 55, -1, 60, -1, 61, 372, -1,
+ 64, 379, -1, 65, 381, -1, 73, 382, -1, 80,
+ 386, -1, 82, 388, -1, 91, 340, -1, 116, 389,
+ -1, 128, 390, -1, 132, 428, -1, 135, 430, -1,
+ 140, -1, 142, 340, -1, 148, 436, -1, 167, 439,
+ -1, 171, 455, -1, 172, 456, -1, 175, 472, 457,
+ -1, 176, 491, -1, 188, 62, 5, -1, 201, 492,
+ -1, 202, 493, -1, 203, 496, -1, 216, 497, -1,
+ 228, -1, 225, 472, 499, -1, 230, 503, -1, 232,
+ 504, -1, 237, 506, -1, 250, -1, 255, 512, -1,
+ 272, 366, -1, 283, -1, 285, 514, -1, 291, -1,
+ 294, 516, -1, 295, 517, -1, 325, 521, -1, 331,
+ 522, -1, 3, -1, 4, -1, 340, -1, 29, 340,
+ -1, 183, 340, -1, 205, 340, -1, 207, 340, -1,
+ 295, 340, -1, 40, 340, -1, 72, 340, -1, 80,
+ 340, -1, 133, 340, -1, 230, 340, -1, 4, -1,
+ 328, -1, 332, -1, 198, -1, 279, -1, 192, -1,
+ 333, -1, 197, -1, 111, -1, -1, 94, -1, 117,
+ -1, 240, -1, 153, -1, -1, 231, 35, -1, 124,
+ 35, -1, 231, -1, 124, -1, 231, 272, -1, 124,
+ 272, -1, -1, 344, -1, 338, -1, 7, -1, 8,
+ -1, 9, -1, 10, -1, 11, -1, 345, 345, -1,
+ 346, 347, -1, 347, 347, -1, 338, 338, -1, 149,
+ -1, 209, -1, 97, -1, 19, -1, 350, -1, 295,
+ -1, 296, -1, 297, -1, 298, -1, 299, -1, 300,
+ -1, 301, -1, 302, -1, 303, -1, 304, -1, 305,
+ -1, 306, -1, 307, -1, 308, -1, 309, -1, 310,
+ -1, 311, -1, 312, -1, 313, -1, 314, -1, 315,
+ -1, 316, -1, 317, -1, 318, -1, 319, -1, 320,
+ -1, 321, -1, 322, -1, 52, -1, 203, -1, 165,
+ -1, 169, -1, 217, -1, 259, -1, 260, -1, 28,
+ -1, 251, -1, 143, -1, -1, 118, -1, 119, -1,
+ 33, -1, 120, -1, 157, -1, 146, -1, 126, -1,
+ 264, -1, 102, -1, 139, -1, -1, 93, -1, 245,
+ -1, -1, 93, -1, 24, -1, 25, -1, 338, -1,
+ 179, -1, 330, -1, 329, -1, 286, -1, -1, 249,
+ -1, 158, -1, -1, 17, -1, 151, -1, -1, 149,
+ -1, 176, -1, -1, 193, -1, 133, -1, -1, 58,
+ -1, 44, -1, 98, -1, 81, -1, 334, -1, 27,
+ -1, 47, -1, -1, 4, -1, 262, -1, 211, -1,
+ 212, -1, -1, 32, -1, 265, -1, -1, 39, -1,
+ 163, -1, 289, 338, 338, -1, 142, 340, -1, 178,
+ 502, -1, 271, 4, -1, 273, 338, -1, 12, 368,
+ -1, 67, 5, 5, 5, -1, 96, 4, -1, 110,
+ 369, -1, 125, 370, -1, 49, 252, 4, -1, 276,
+ 371, -1, 113, 5, -1, 55, -1, 338, 338, -1,
+ 338, -1, 338, 338, -1, 338, 12, 338, 338, -1,
+ 338, 338, 12, 338, 338, -1, 276, 338, -1, 276,
+ 338, 338, -1, 276, 338, 12, 338, 338, -1, 276,
+ 338, 338, 12, 338, 338, -1, 32, -1, 265, -1,
+ 114, -1, 338, 338, 12, 55, 5, 5, 5, -1,
+ 338, 338, 4, 338, 338, 12, 55, 5, 5, 5,
+ 5, -1, 338, 338, 12, 338, 338, 5, 5, 5,
+ -1, 338, 338, 4, 338, 338, 12, 338, 338, 5,
+ 5, 5, 5, -1, 241, 374, -1, 184, 375, -1,
+ 179, 376, -1, 286, 373, -1, 330, 378, -1, 219,
+ 340, -1, 338, 338, -1, 170, 338, -1, 141, 338,
+ -1, 129, -1, 168, -1, 338, -1, 179, -1, 330,
+ -1, 329, -1, 286, -1, 184, 377, -1, 234, 4,
+ -1, 30, -1, 239, -1, 234, -1, 90, -1, 156,
+ -1, 74, 338, -1, 234, 4, -1, 164, 4, -1,
+ 4, 338, 338, 4, 6, 6, 4, -1, 230, 338,
+ 338, 338, 338, 338, 338, 4, 6, 4, -1, 37,
+ -1, 185, 380, -1, 105, -1, 4, 338, 338, 4,
+ 6, 6, 4, -1, 230, 338, 338, 338, 338, 338,
+ 338, 4, 6, 4, -1, 352, -1, 169, 338, -1,
+ 31, 383, -1, 62, 5, -1, 76, 349, 353, -1,
+ 79, 384, -1, 87, 4, -1, 95, -1, 95, 17,
+ -1, 167, 5, 4, 4, 5, 349, 353, -1, 206,
+ 5, 4, 4, 6, 349, 353, -1, 237, 5, 349,
+ 353, -1, 324, 4, -1, 136, -1, 191, -1, 237,
+ 5, 349, 353, -1, 5, 4, 4, 385, 4, 4,
+ 352, 338, 356, 338, 338, 5, -1, 215, 479, -1,
+ 255, -1, 42, -1, -1, 338, 338, 338, 338, 349,
+ 353, -1, 55, 348, 349, 353, 338, 338, 349, 355,
+ -1, 272, 387, -1, 37, 338, 338, -1, 185, 338,
+ 338, -1, 105, 338, 338, -1, -1, 338, 338, 349,
+ -1, 37, 338, 338, 4, -1, 185, 338, 338, 4,
+ -1, 105, 338, 338, 4, -1, 351, 338, 338, -1,
+ 349, 353, 348, -1, 340, -1, 294, 338, 338, -1,
+ 37, 185, 351, 338, 338, -1, 185, 351, 338, 338,
+ -1, 37, 185, 349, 348, -1, 185, 349, 348, -1,
+ 135, 109, 5, -1, 38, 62, -1, 40, 391, -1,
+ 61, 393, -1, 64, 397, -1, 63, -1, 65, 399,
+ -1, 73, 401, -1, 75, 405, -1, 80, 406, -1,
+ 82, 407, -1, 84, 408, -1, 89, 409, -1, 91,
+ -1, 115, 413, -1, 132, 418, -1, 144, 5, 5,
+ -1, 145, 85, 5, 5, 338, 338, 351, -1, 148,
+ 411, -1, 152, 410, -1, 179, -1, 175, 472, 466,
+ -1, 176, 419, -1, 188, 62, -1, 201, -1, 202,
+ 420, -1, 210, 267, 351, 338, 338, 4, 4, 5,
+ -1, 230, 421, -1, 232, 422, -1, 255, 423, -1,
+ 272, 424, -1, 280, -1, 287, 351, 338, 338, -1,
+ 293, 85, 5, 5, 338, 338, 351, -1, 295, 425,
+ -1, 331, 427, -1, 96, -1, 110, -1, 125, -1,
+ 49, 252, -1, 84, -1, 113, -1, 67, 392, -1,
+ 166, -1, -1, 179, 5, -1, 99, 5, -1, 394,
+ -1, 241, -1, 184, -1, 179, 395, -1, 286, 162,
+ -1, 330, 396, -1, 219, -1, -1, 338, -1, 179,
+ -1, 330, -1, 329, -1, 286, -1, 184, -1, 234,
+ -1, 74, -1, 234, -1, 164, -1, 162, 398, -1,
+ 4, -1, 4, 351, 338, 338, -1, 4, 338, 338,
+ 352, 338, -1, -1, 162, 400, -1, 169, -1, 4,
+ 338, 338, 352, 338, -1, 349, 353, -1, 31, 402,
+ -1, 61, 403, -1, 62, -1, 87, -1, 162, -1,
+ 195, 162, -1, 178, -1, 65, 404, -1, 255, -1,
+ 324, -1, 62, -1, 87, -1, 324, -1, -1, 184,
+ -1, -1, 169, -1, 338, 338, 349, 353, 354, -1,
+ 351, 338, 338, 349, 353, 354, -1, 338, 349, 4,
+ -1, 122, 338, 349, 4, -1, 276, 338, 349, 4,
+ -1, 349, 353, 354, -1, 55, 349, 353, 354, 349,
+ 355, -1, 272, 349, -1, 351, -1, 349, 353, 354,
+ 341, -1, 263, -1, 351, -1, 349, 353, 354, 341,
+ -1, 349, 353, 348, 338, 338, 5, -1, 4, 349,
+ 353, 348, 338, 338, 5, -1, 351, 338, 338, 4,
+ 4, -1, 5, -1, 61, -1, 351, 338, 338, 5,
+ -1, 6, 4, 4, 4, 4, -1, 84, -1, 324,
+ -1, 138, -1, 112, 187, 412, -1, -1, 4, -1,
+ 338, 338, -1, 189, -1, 55, 349, 353, 354, 341,
+ -1, 77, -1, 96, 415, -1, 41, -1, 109, 351,
+ 338, 338, -1, 112, 187, 416, -1, 137, 414, -1,
+ 138, -1, 196, 187, -1, 252, -1, 252, 349, 353,
+ 355, 341, -1, 253, 417, -1, 324, -1, 4, -1,
+ 4, 159, 5, -1, 295, 4, -1, -1, 4, -1,
+ 342, -1, 342, 351, 338, 338, -1, 342, 4, -1,
+ -1, 4, -1, -1, 200, -1, 62, -1, 174, -1,
+ 275, -1, 219, -1, 57, -1, 266, -1, 289, -1,
+ 341, -1, 125, -1, 224, -1, 289, -1, 142, -1,
+ 178, -1, 271, -1, -1, 16, 426, -1, 187, 350,
+ -1, -1, 214, -1, 341, -1, 79, 349, 353, 354,
+ 429, 5, -1, 95, -1, 20, -1, 222, -1, 19,
+ -1, 40, 431, -1, 73, 432, -1, 80, -1, 90,
+ -1, 91, -1, 97, -1, 115, 433, -1, 132, -1,
+ 148, -1, 156, -1, 175, 434, -1, 209, -1, 255,
+ -1, 266, 349, -1, 295, 435, -1, 68, 5, -1,
+ -1, 31, -1, -1, 40, -1, 83, -1, 183, -1,
+ 142, -1, 243, -1, 206, -1, 281, -1, 349, -1,
+ 107, 349, -1, 54, 349, -1, 18, -1, 190, 4,
+ 4, -1, 108, -1, 177, 5, -1, 84, 438, -1,
+ 244, 112, 187, 437, -1, 244, 6, 4, 4, 4,
+ 4, -1, 285, -1, 295, 338, 338, 338, 338, 338,
+ 338, 338, 338, 4, -1, 5, -1, 5, 4, -1,
+ 4, 4, 52, -1, 4, 4, 349, -1, 184, 340,
+ -1, 26, 440, -1, 115, 442, -1, 151, 454, -1,
+ 208, 5, 5, -1, 5, 14, 5, 359, -1, 5,
+ 15, 5, 359, -1, 5, 57, 5, 359, -1, 5,
+ 181, 359, -1, 5, 182, 359, -1, 5, 247, 357,
+ 4, 359, -1, 5, 256, 4, 359, -1, 5, 257,
+ 4, 359, -1, 5, 288, 5, 359, -1, 230, 83,
+ 441, -1, 5, 14, 5, -1, 5, 15, 5, -1,
+ 5, 57, 5, -1, 5, 181, -1, 5, 182, -1,
+ 5, 247, 357, 4, -1, 5, 256, 4, -1, 5,
+ 257, 4, -1, 5, 288, 5, -1, 5, 14, 5,
+ 359, -1, 5, 15, 5, 359, -1, 5, 57, 5,
+ 359, -1, 5, 181, 358, 359, -1, 5, 5, 254,
+ 358, 359, -1, 5, 182, 358, 359, -1, 5, 247,
+ 357, 4, 358, 359, -1, 5, 261, 357, 4, 4,
+ 358, 359, -1, 5, 256, 4, 359, -1, 5, 257,
+ 4, 359, -1, 5, 288, 5, 358, 359, -1, 253,
+ 443, -1, 109, 83, 444, -1, 183, 445, -1, 230,
+ 451, -1, 5, 14, 5, -1, 5, 15, 5, -1,
+ 5, 57, 5, -1, 5, 181, 358, -1, 5, 5,
+ 254, 358, -1, 5, 182, 358, -1, 5, 247, 357,
+ 4, 358, -1, 5, 261, 357, 4, 4, 358, -1,
+ 5, 256, 4, -1, 5, 257, 4, -1, 5, 288,
+ 5, 358, -1, 5, 14, 5, -1, 5, 15, 5,
+ -1, 5, 57, 5, -1, 5, 181, 358, -1, 5,
+ 182, 358, -1, 5, 247, 357, 4, 358, -1, 5,
+ 256, 4, -1, 5, 257, 4, -1, 5, 288, 5,
+ 358, -1, 149, 155, 446, -1, 155, 447, -1, 149,
+ 448, -1, 449, -1, 149, 323, 450, -1, 5, 14,
+ 5, 359, -1, 5, 15, 5, 359, -1, 5, 57,
+ 5, 359, -1, 5, 181, 358, 359, -1, 5, 182,
+ 358, 359, -1, 5, 247, 357, 4, 358, 359, -1,
+ 5, 256, 4, 359, -1, 5, 257, 4, 359, -1,
+ 5, 288, 5, 358, 359, -1, 5, 14, 5, 359,
+ -1, 5, 15, 5, 359, -1, 5, 57, 5, 359,
+ -1, 5, 181, 358, 359, -1, 5, 5, 254, 358,
+ 359, -1, 5, 182, 358, 359, -1, 5, 247, 357,
+ 4, 358, 359, -1, 5, 261, 357, 4, 4, 358,
+ 359, -1, 5, 256, 4, 359, -1, 5, 257, 4,
+ 359, -1, 5, 288, 5, 358, 359, -1, 350, 5,
+ 14, 5, 359, -1, 350, 5, 15, 5, 359, -1,
+ 350, 5, 57, 5, 359, -1, 350, 5, 181, 358,
+ 359, -1, 350, 5, 182, 358, 359, -1, 350, 5,
+ 247, 357, 4, 358, 359, -1, 350, 5, 256, 4,
+ 359, -1, 350, 5, 257, 4, 359, -1, 350, 5,
+ 288, 5, 358, 359, -1, 350, 5, 14, 5, 359,
+ -1, 350, 5, 15, 5, 359, -1, 350, 5, 57,
+ 5, 359, -1, 350, 5, 181, 358, 359, -1, 350,
+ 5, 5, 254, 358, 359, -1, 350, 5, 182, 358,
+ 359, -1, 350, 5, 247, 357, 4, 358, 359, -1,
+ 350, 5, 261, 357, 4, 4, 358, 359, -1, 350,
+ 5, 256, 4, 359, -1, 350, 5, 257, 4, 359,
+ -1, 350, 5, 288, 5, 358, 359, -1, 5, 14,
+ 5, -1, 5, 15, 5, -1, 5, 57, 5, -1,
+ 5, 181, 358, -1, 5, 182, 358, -1, 5, 247,
+ 357, 4, 358, -1, 5, 256, 4, -1, 5, 257,
+ 4, -1, 5, 288, 5, 358, -1, 83, 452, -1,
+ 149, 453, -1, 5, 14, 5, -1, 5, 15, 5,
+ -1, 5, 57, 5, -1, 5, 181, 358, -1, 5,
+ 5, 254, 358, -1, 5, 182, 358, -1, 5, 247,
+ 357, 4, 358, -1, 5, 261, 357, 4, 4, 358,
+ -1, 5, 256, 4, -1, 5, 257, 4, -1, 5,
+ 288, 5, 358, -1, 5, 14, 5, -1, 5, 15,
+ 5, -1, 5, 57, 5, -1, 5, 181, 358, -1,
+ 5, 182, 358, -1, 5, 247, 357, 4, 358, -1,
+ 5, 256, 4, -1, 5, 257, 4, -1, 5, 288,
+ 5, 358, -1, 89, 4, 4, 4, 4, 4, -1,
+ 179, 4, 4, 4, 4, 4, -1, 105, -1, 218,
+ -1, 340, -1, 130, 340, -1, 84, 340, -1, 62,
+ 5, -1, 5, 4, 4, -1, 285, 338, 338, -1,
+ 331, 338, -1, 56, 460, -1, 62, 5, -1, 76,
+ -1, 69, 465, 5, -1, 69, 465, 288, 5, -1,
+ 71, 95, -1, -1, 79, 458, 461, -1, 85, -1,
+ 95, -1, 95, 17, -1, 101, 464, -1, 121, 5,
+ -1, 142, 17, -1, 142, 199, 338, 338, -1, 142,
+ 277, 338, 338, -1, 4, 20, 363, 340, -1, 4,
+ 20, 204, 364, -1, 4, 20, 266, 349, 353, -1,
+ 4, 21, 344, -1, 4, 21, 344, 351, -1, 4,
+ 21, 344, 349, 353, -1, 4, 22, 224, 338, 338,
+ 4, 351, -1, 4, 22, 224, 338, 338, 4, 349,
+ 355, -1, 4, 22, 224, 5, 349, 355, -1, 4,
+ 45, 224, 338, 338, 338, 4, 351, -1, 4, 45,
+ 224, 338, 338, 338, 4, 349, 355, -1, 4, 45,
+ 224, 5, 349, 355, -1, 4, 44, 224, 338, 338,
+ 351, -1, 4, 44, 224, 338, 338, 349, 355, -1,
+ 4, 48, 101, 344, 344, 4, 338, 338, 338, 4,
+ -1, 4, 48, 101, 344, 344, 4, 338, 338, 338,
+ 4, 351, -1, 4, 48, 101, 344, 344, 4, 338,
+ 338, 338, 4, 349, 353, -1, 4, 48, 101, 5,
+ 5, 349, 353, 349, 355, -1, 4, 51, 459, 5,
+ 5, -1, 4, 58, 224, 338, 351, -1, 4, 58,
+ 224, 338, 349, 355, -1, 4, 62, 5, -1, 4,
+ 70, 27, 340, 340, -1, 4, 70, 160, 5, 5,
+ -1, 4, 70, 224, 338, 351, -1, 4, 70, 224,
+ 338, 349, 355, -1, 4, 70, 266, 349, 353, -1,
+ 4, 71, 129, 340, -1, 4, 78, 101, 344, 344,
+ 4, 338, 338, 4, -1, 4, 78, 101, 344, 344,
+ 4, 338, 338, 4, 351, -1, 4, 78, 101, 344,
+ 344, 4, 338, 338, 4, 349, 353, -1, 4, 78,
+ 101, 5, 5, 349, 353, 349, 355, -1, 4, 79,
+ 22, 224, 338, 338, -1, 4, 79, 45, 224, 338,
+ 338, -1, 4, 79, 48, 21, 338, 338, -1, 4,
+ 79, 48, 224, 338, 338, -1, 4, 79, 104, 224,
+ 338, 338, -1, 4, 79, 106, 21, 338, 338, -1,
+ 4, 79, 106, 224, 338, 338, -1, 4, 79, 78,
+ 21, 338, 338, -1, 4, 79, 78, 224, 338, 338,
+ -1, 4, 79, 215, 292, 4, 338, 338, -1, 4,
+ 95, -1, 4, 95, 22, 4, -1, 4, 95, 45,
+ 4, -1, 4, 95, 48, 4, -1, 4, 95, 104,
+ 4, -1, 4, 95, 51, 459, 5, -1, 4, 95,
+ 106, 4, -1, 4, 95, 78, 4, -1, 4, 95,
+ 215, 292, 4, -1, 4, 95, 268, -1, 4, 95,
+ 268, 5, -1, 4, 95, 268, 4, -1, 4, 101,
+ 37, 4, -1, 4, 103, 224, 338, 338, 351, -1,
+ 4, 103, 224, 338, 338, 349, 355, -1, 4, 104,
+ 224, 338, 338, 338, 4, 351, -1, 4, 104, 224,
+ 338, 338, 338, 4, 349, 355, -1, 4, 104, 224,
+ 5, 349, 355, -1, 4, 106, 101, 344, 344, 4,
+ 338, 338, 338, 4, -1, 4, 106, 101, 344, 344,
+ 4, 338, 338, 338, 4, 351, -1, 4, 106, 101,
+ 344, 344, 4, 338, 338, 338, 4, 349, 353, -1,
+ 4, 106, 101, 5, 5, 349, 353, 349, 355, -1,
+ 4, 121, 5, -1, 4, 142, -1, 4, 142, 199,
+ -1, 4, 164, 27, 340, 340, -1, 4, 164, 213,
+ 351, 348, 348, -1, 4, 164, 213, 349, 353, 348,
+ 348, -1, 4, 186, 338, 338, -1, 4, 186, 123,
+ -1, 4, 186, 34, -1, 4, 186, 276, 351, 338,
+ 338, -1, 4, 186, 276, 349, 353, 348, -1, 4,
+ 215, 228, 338, 338, 351, -1, 4, 215, 228, 338,
+ 338, 349, 355, -1, 4, 213, 246, 361, -1, 4,
+ 213, 252, 4, -1, 4, 220, 351, 348, 348, 338,
+ -1, 4, 220, 349, 353, 348, 348, 338, 349, 355,
+ -1, 4, 221, 478, 340, -1, 4, 232, 37, -1,
+ 4, 233, 213, 351, 348, 348, -1, 4, 233, 213,
+ 349, 353, 348, 348, -1, 4, 233, 266, 349, 353,
+ 349, 355, -1, 4, 243, -1, 4, 243, 199, -1,
+ 4, 268, 5, -1, 4, 270, 5, -1, 4, 270,
+ 232, 340, -1, 4, 282, -1, 4, 284, -1, 4,
+ 290, 27, 340, -1, 4, 290, 213, 351, 348, 338,
+ 344, -1, 4, 290, 213, 349, 353, 348, 349, 355,
+ 338, 344, -1, 4, 324, 4, -1, 158, -1, 158,
+ 338, 338, -1, 166, 473, -1, 167, 474, -1, 186,
+ 475, -1, 219, 340, -1, 221, 478, 340, -1, 221,
+ 478, 340, 338, 338, -1, 232, 37, 338, 338, -1,
+ 232, 185, 338, 338, 4, -1, 232, 105, -1, 237,
+ 5, 465, 349, 353, 354, 340, -1, 237, 269, 5,
+ -1, 243, 482, -1, 250, 483, -1, 5, 62, 5,
+ -1, 5, 76, -1, 5, 95, -1, 5, 85, -1,
+ 5, 121, 5, -1, 5, 142, -1, 5, 142, 199,
+ -1, 5, 186, 338, 338, -1, 5, 186, 123, -1,
+ 5, 186, 34, -1, 5, 186, 276, 351, 348, -1,
+ 5, 186, 276, 349, 353, 348, -1, 5, 221, 478,
+ 340, -1, 5, 243, -1, 5, 243, 199, -1, 5,
+ 282, -1, 5, 284, -1, 268, 101, 5, 5, -1,
+ 268, 95, 5, -1, 268, 95, 17, -1, 268, 5,
+ -1, 268, 285, 5, -1, 206, -1, 206, 349, 349,
+ -1, 281, -1, 282, 17, -1, 284, 17, -1, 324,
+ 4, -1, 243, -1, 284, -1, 142, -1, 282, -1,
+ 37, 186, -1, 186, -1, 105, 186, -1, 37, 101,
+ -1, 101, -1, 105, 101, -1, 37, 232, -1, 232,
+ -1, 105, 232, -1, 95, -1, 270, -1, 62, -1,
+ 324, -1, 221, -1, 121, -1, 158, -1, 285, -1,
+ -1, 4, -1, 30, 340, -1, 224, 338, -1, 154,
+ 4, -1, 200, 4, 338, -1, 58, 338, 338, 338,
+ 479, -1, 103, 338, 338, 338, 338, 343, 479, -1,
+ 44, 338, 338, 338, 338, 343, 479, -1, 215, 338,
+ 338, 338, 338, 479, -1, 164, 338, 338, 338, 338,
+ 479, -1, 290, 338, 338, 338, 338, 479, -1, 270,
+ 338, 338, 343, 479, -1, 58, 213, 338, 338, 362,
+ 479, -1, 44, 213, 338, 338, 362, 479, -1, 98,
+ 213, 338, 338, 362, 479, -1, 81, 213, 338, 338,
+ 362, 479, -1, 334, 213, 338, 338, 362, 479, -1,
+ 27, 213, 338, 338, 362, 479, -1, 47, 213, 338,
+ 338, 362, 479, -1, 233, 338, 338, 338, 338, 349,
+ 353, 349, 355, 479, -1, 70, 338, 338, 338, 349,
+ 353, 479, -1, 220, 338, 338, 338, 338, 338, 479,
+ -1, 22, 338, 338, 338, 338, 4, 479, -1, 104,
+ 338, 338, 338, 338, 338, 4, 343, 479, -1, 45,
+ 338, 338, 338, 338, 338, 4, 343, 479, -1, 78,
+ 338, 338, 344, 344, 4, 338, 338, 4, 479, -1,
+ 106, 338, 338, 344, 344, 4, 338, 338, 338, 4,
+ 343, 479, -1, 48, 338, 338, 344, 344, 4, 338,
+ 338, 338, 4, 343, 479, -1, 71, 479, -1, 269,
+ 462, -1, 5, 338, 338, -1, 288, 5, 338, 338,
+ -1, 338, 338, 288, 5, -1, 5, 349, 353, 348,
+ -1, 4, 4, -1, 37, 338, 338, 4, -1, 185,
+ 338, 338, 4, -1, 105, -1, 100, -1, 326, -1,
+ 59, -1, 236, -1, 235, -1, 223, -1, 327, -1,
+ 56, 467, -1, 62, -1, 121, -1, 134, 338, 338,
+ -1, 147, 338, 338, -1, 4, 20, 211, 5, 5,
+ 5, 5, -1, 4, 20, 212, 5, 5, -1, 4,
+ 20, 204, -1, 4, 20, 266, -1, 147, 17, -1,
+ 4, 21, -1, 4, 21, 351, -1, 4, 21, 349,
+ 353, -1, 4, 22, 224, 351, -1, 4, 22, 224,
+ 349, 355, -1, 4, 45, 224, 351, -1, 4, 45,
+ 224, 349, 355, -1, 4, 44, 224, 351, -1, 4,
+ 44, 224, 349, 355, -1, 4, 48, 21, -1, 4,
+ 48, 21, 351, -1, 4, 48, 21, 349, 353, -1,
+ 4, 48, 224, 351, -1, 4, 48, 224, 349, 355,
+ -1, 4, 55, 351, -1, 4, 55, 349, 353, 354,
+ -1, 4, 58, 224, 351, -1, 4, 58, 224, 349,
+ 355, -1, 4, 62, -1, 4, 70, 27, -1, 4,
+ 70, 160, -1, 4, 70, 224, 351, -1, 4, 70,
+ 224, 349, 355, -1, 4, 70, 266, -1, 4, 71,
+ 129, -1, 4, 78, 21, -1, 4, 78, 21, 351,
+ -1, 4, 78, 21, 349, 353, -1, 4, 78, 224,
+ 351, -1, 4, 78, 224, 349, 355, -1, 4, 103,
+ 224, 351, -1, 4, 103, 224, 349, 355, -1, 4,
+ 104, 224, 351, -1, 4, 104, 224, 349, 355, -1,
+ 4, 106, 21, -1, 4, 106, 21, 351, -1, 4,
+ 106, 21, 349, 353, -1, 4, 106, 224, 351, -1,
+ 4, 106, 224, 349, 355, -1, 4, 121, -1, 4,
+ 142, -1, 4, 164, 27, -1, 4, 164, 161, 349,
+ 355, -1, 4, 164, 213, 351, -1, 4, 164, 213,
+ 349, 353, 354, -1, 4, 173, 161, 338, 349, 355,
+ -1, 4, 213, 246, -1, 4, 213, 252, -1, 4,
+ 220, 213, 351, -1, 4, 220, 213, 349, 353, 354,
+ -1, 4, 220, 161, 349, 355, -1, 4, 220, 274,
+ 351, -1, 4, 220, 274, 349, 355, -1, 4, 221,
+ -1, 4, 221, 478, -1, 4, 233, 161, 349, 355,
+ -1, 4, 233, 213, 351, -1, 4, 233, 213, 349,
+ 353, 354, -1, 4, 233, 266, -1, 4, 243, -1,
+ 4, 268, -1, 4, 268, 4, -1, 4, 270, -1,
+ 4, 270, 232, -1, 4, 280, -1, 4, 290, 27,
+ -1, 4, 290, 161, 349, 355, -1, 4, 290, 213,
+ 351, -1, 4, 290, 213, 349, 353, 354, -1, 4,
+ 324, -1, 142, 468, -1, 142, 195, -1, 195, -1,
+ 215, 242, 338, 338, -1, 219, -1, 221, 478, -1,
+ 243, 469, -1, 243, 195, -1, 250, 470, -1, 5,
+ 62, -1, 5, 121, -1, 5, 147, -1, 5, 221,
+ 478, -1, 5, 268, -1, 5, 268, 195, -1, 268,
+ 17, -1, 268, 94, 187, -1, 324, -1, 30, -1,
+ 224, -1, 154, -1, 200, -1, -1, 338, 338, -1,
+ -1, 338, 338, -1, -1, 270, -1, -1, -1, 214,
+ -1, 286, -1, 53, -1, 465, 349, 353, 354, 340,
+ 480, 486, -1, 243, 465, 349, 353, 354, 340, 480,
+ 486, -1, 465, 5, -1, 465, 5, 349, 353, -1,
+ 465, 4, -1, 465, 4, 349, 353, -1, 115, 5,
+ 5, 463, 4, 5, -1, 338, 338, -1, 123, -1,
+ 34, -1, 37, 338, 338, -1, 185, 338, 338, -1,
+ 105, -1, 276, 351, 348, -1, 276, 349, 353, 348,
+ -1, 476, 477, -1, 477, -1, 478, 335, 340, -1,
+ 62, 335, 5, -1, 88, 335, 4, 4, -1, 324,
+ 335, 4, -1, 121, 335, 5, -1, 270, 335, 5,
+ -1, 489, -1, 490, -1, 193, -1, 243, -1, 142,
+ -1, 87, -1, 117, -1, 101, -1, 186, -1, 232,
+ -1, 95, -1, 150, -1, 258, -1, 471, -1, 471,
+ 476, -1, -1, -1, 481, 484, -1, 17, -1, 199,
+ 338, 338, -1, 277, -1, 277, 338, 338, -1, 340,
+ -1, 270, 340, -1, 484, 485, -1, 485, -1, 478,
+ 335, 340, -1, -1, -1, 487, 488, -1, 488, 489,
+ -1, 489, -1, 268, 335, 5, -1, 51, 335, 459,
+ 5, 5, -1, 60, -1, 62, 5, -1, 174, 4,
+ -1, 275, 338, -1, 334, -1, 332, -1, 327, -1,
+ 193, -1, 338, 338, 338, 338, -1, 338, 338, -1,
+ 351, 338, 338, -1, 349, 353, 348, -1, 276, 494,
+ -1, 36, 338, 338, -1, 185, 495, -1, 219, 340,
+ -1, 338, 338, -1, 351, 338, 338, -1, 349, 353,
+ 348, -1, 37, 338, 338, -1, 338, 338, -1, 105,
+ 338, 338, -1, 340, -1, 295, 350, 353, -1, 5,
+ 4, 4, -1, 285, -1, 66, 498, -1, 162, 4,
+ -1, 229, 4, -1, 238, 338, -1, 50, -1, 131,
+ -1, 230, -1, 86, -1, 142, 500, -1, 243, 501,
+ -1, 37, 338, 338, -1, 185, 338, 338, -1, 105,
+ -1, 248, 105, -1, 37, 338, 338, -1, 185, 338,
+ 338, -1, 105, -1, 248, 105, -1, 180, -1, 13,
+ -1, 57, 5, -1, 266, 349, -1, 289, 4, 4,
+ 4, -1, 338, -1, 338, 93, -1, 185, 505, -1,
+ 276, 338, -1, 276, 338, 93, -1, 37, -1, 338,
+ -1, 105, -1, 26, 507, -1, 115, 508, -1, 208,
+ 5, -1, 112, 5, 365, -1, 57, 5, 365, -1,
+ 256, 4, 365, -1, 149, 509, -1, 267, 510, -1,
+ 227, 511, -1, 112, 5, 360, -1, 57, 5, 360,
+ -1, 256, 4, 360, -1, 112, 5, 360, -1, 57,
+ 5, 360, -1, 256, 4, 360, -1, 112, 5, 360,
+ -1, 57, 5, 360, -1, 256, 4, 360, -1, 513,
+ 4, -1, 95, -1, 46, -1, 127, -1, 278, -1,
+ -1, 4, 338, 338, 338, 338, -1, 194, -1, 194,
+ 4, 338, 338, 338, 338, -1, 115, 253, 515, -1,
+ 4, -1, 4, 4, -1, 338, 338, -1, 276, 338,
+ 338, -1, 350, 353, 354, -1, 16, 520, -1, 228,
+ 4, -1, 226, 519, -1, 23, 518, -1, 4, 4,
+ -1, 4, 5, -1, 270, 4, 5, -1, 4, 4,
+ -1, 4, 5, -1, 270, 4, 5, -1, 4, -1,
+ 4, 350, 353, -1, 4, 6, 350, -1, 218, -1,
+ 338, 338, -1, 338, 338, 12, 338, 338, -1, 338,
+ 338, 12, 351, 338, 338, -1, 338, 338, 12, 349,
+ 353, 348, -1, 276, 523, -1, 114, -1, 114, 338,
+ -1, 338, 338, -1, 338, 338, 12, 338, 338, -1,
+ 338, 338, 12, 351, 338, 338, -1, 338, 338, 12,
+ 349, 353, 348, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 427, 427, 429, 430, 431, 432, 433, 434, 435,
- 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
+ 0, 437, 437, 439, 440, 441, 442, 443, 444, 445,
446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
- 466, 467, 468, 469, 470, 471, 474, 475, 478, 479,
- 480, 481, 482, 483, 484, 485, 486, 487, 488, 491,
- 493, 494, 495, 496, 498, 499, 500, 501, 504, 505,
- 506, 507, 508, 511, 512, 513, 514, 515, 516, 517,
- 520, 521, 524, 525, 526, 529, 532, 535, 538, 550,
- 557, 564, 572, 573, 574, 575, 576, 579, 580, 581,
- 582, 583, 584, 585, 586, 587, 588, 589, 590, 591,
+ 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
+ 476, 477, 478, 479, 480, 481, 484, 485, 488, 489,
+ 490, 491, 492, 493, 494, 495, 496, 497, 498, 501,
+ 503, 504, 505, 506, 508, 509, 510, 511, 514, 515,
+ 516, 517, 518, 521, 522, 523, 524, 525, 526, 527,
+ 530, 531, 534, 535, 536, 539, 542, 545, 548, 560,
+ 567, 574, 582, 583, 584, 585, 586, 589, 590, 591,
592, 593, 594, 595, 596, 597, 598, 599, 600, 601,
- 602, 603, 604, 605, 606, 609, 610, 613, 614, 615,
- 616, 617, 618, 619, 620, 623, 624, 625, 626, 627,
- 628, 629, 630, 631, 632, 633, 636, 637, 638, 641,
- 642, 643, 644, 647, 648, 649, 650, 651, 654, 655,
- 656, 659, 660, 661, 664, 665, 666, 669, 670, 671,
- 674, 675, 678, 679, 680, 683, 684, 685, 686, 687,
- 691, 692, 693, 694, 695, 696, 697, 698, 701, 702,
- 705, 706, 707, 709, 711, 712, 713, 715, 719, 720,
- 723, 724, 726, 729, 731, 737, 738, 739, 740, 741,
- 742, 745, 746, 747, 750, 751, 754, 755, 756, 757,
- 758, 761, 762, 765, 766, 767, 768, 769, 772, 773,
- 774, 777, 780, 782, 783, 784, 787, 790, 794, 795,
- 798, 799, 800, 802, 803, 804, 805, 806, 808, 810,
- 812, 815, 816, 817, 821, 823, 828, 829, 832, 833,
- 836, 839, 840, 841, 842, 845, 846, 847, 848, 849,
- 852, 854, 856, 857, 859, 861, 863, 865, 869, 872,
- 873, 874, 875, 876, 877, 878, 879, 880, 881, 882,
- 883, 884, 885, 886, 887, 888, 890, 891, 892, 893,
- 894, 895, 896, 897, 898, 900, 901, 902, 903, 904,
- 905, 907, 909, 910, 913, 914, 915, 916, 917, 918,
- 919, 920, 923, 924, 925, 928, 929, 930, 931, 932,
- 933, 934, 937, 938, 939, 940, 941, 942, 945, 946,
- 949, 950, 951, 954, 957, 958, 960, 964, 965, 966,
- 969, 973, 975, 976, 977, 978, 979, 980, 981, 982,
- 983, 984, 987, 988, 989, 992, 993, 996, 997, 1000,
- 1003, 1009, 1011, 1013, 1017, 1019, 1022, 1025, 1026, 1029,
- 1032, 1033, 1038, 1041, 1044, 1049, 1050, 1051, 1055, 1056,
- 1057, 1058, 1059, 1062, 1063, 1064, 1067, 1068, 1071, 1072,
- 1073, 1074, 1076, 1077, 1078, 1079, 1080, 1081, 1084, 1085,
- 1088, 1089, 1090, 1093, 1094, 1097, 1099, 1102, 1106, 1107,
- 1110, 1111, 1114, 1115, 1116, 1119, 1122, 1123, 1124, 1127,
- 1130, 1131, 1134, 1135, 1136, 1137, 1140, 1141, 1142, 1145,
- 1146, 1149, 1152, 1155, 1158, 1159, 1162, 1163, 1164, 1165,
- 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
- 1176, 1179, 1180, 1183, 1184, 1185, 1186, 1189, 1190, 1191,
- 1192, 1195, 1196, 1197, 1198, 1201, 1202, 1203, 1204, 1205,
- 1206, 1208, 1209, 1214, 1215, 1218, 1220, 1222, 1225, 1226,
- 1227, 1230, 1232, 1234, 1236, 1238, 1240, 1243, 1245, 1247,
- 1249, 1252, 1253, 1254, 1255, 1256, 1257, 1259, 1260, 1261,
- 1264, 1266, 1268, 1270, 1273, 1276, 1279, 1282, 1285, 1287,
- 1289, 1292, 1293, 1294, 1295, 1298, 1300, 1302, 1304, 1306,
- 1308, 1310, 1312, 1314, 1316, 1318, 1322, 1324, 1326, 1328,
- 1330, 1332, 1335, 1337, 1339, 1343, 1344, 1345, 1346, 1347,
- 1350, 1353, 1356, 1359, 1362, 1365, 1369, 1372, 1375, 1380,
- 1383, 1386, 1389, 1392, 1395, 1398, 1402, 1406, 1409, 1412,
- 1417, 1420, 1423, 1426, 1429, 1432, 1436, 1439, 1442, 1447,
- 1450, 1453, 1456, 1459, 1462, 1465, 1469, 1473, 1476, 1479,
- 1484, 1486, 1488, 1490, 1492, 1494, 1497, 1499, 1501, 1504,
- 1505, 1508, 1509, 1510, 1511, 1513, 1515, 1517, 1520, 1523,
- 1524, 1525, 1529, 1530, 1531, 1532, 1534, 1536, 1539, 1540,
- 1541, 1545, 1546, 1547, 1550, 1557, 1558, 1559, 1560, 1561,
- 1562, 1563, 1566, 1567, 1568, 1569, 1571, 1573, 1574, 1574,
- 1575, 1576, 1577, 1578, 1579, 1581, 1582, 1584, 1587, 1588,
- 1589, 1592, 1594, 1597, 1600, 1603, 1607, 1610, 1612, 1616,
- 1619, 1623, 1628, 1633, 1636, 1638, 1641, 1643, 1645, 1647,
- 1649, 1651, 1654, 1656, 1658, 1660, 1664, 1669, 1671, 1673,
- 1675, 1677, 1679, 1681, 1683, 1685, 1687, 1690, 1691, 1693,
- 1695, 1696, 1698, 1700, 1701, 1702, 1704, 1705, 1706, 1708,
- 1710, 1712, 1716, 1720, 1724, 1728, 1731, 1735, 1740, 1746,
- 1747, 1748, 1750, 1751, 1753, 1757, 1759, 1760, 1761, 1763,
- 1766, 1768, 1772, 1774, 1777, 1782, 1785, 1787, 1789, 1792,
- 1794, 1796, 1799, 1802, 1806, 1807, 1808, 1809, 1810, 1811,
- 1812, 1814, 1815, 1817, 1822, 1824, 1825, 1827, 1828, 1829,
- 1830, 1831, 1832, 1834, 1836, 1838, 1839, 1842, 1843, 1845,
- 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856,
- 1857, 1859, 1861, 1863, 1864, 1865, 1866, 1868, 1869, 1870,
- 1871, 1872, 1874, 1875, 1877, 1878, 1879, 1880, 1883, 1884,
- 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894,
- 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1906,
- 1907, 1908, 1909, 1910, 1911, 1918, 1925, 1932, 1942, 1951,
- 1961, 1974, 1983, 1992, 2005, 2013, 2021, 2031, 2042, 2050,
- 2059, 2069, 2074, 2079, 2084, 2089, 2094, 2099, 2105, 2113,
- 2121, 2132, 2137, 2140, 2142, 2144, 2149, 2153, 2156, 2158,
- 2160, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2172, 2173,
- 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2182, 2184, 2186,
- 2188, 2190, 2192, 2194, 2195, 2196, 2198, 2200, 2202, 2204,
- 2207, 2209, 2211, 2212, 2213, 2214, 2216, 2218, 2219, 2220,
- 2221, 2222, 2224, 2226, 2228, 2230, 2232, 2234, 2237, 2238,
- 2239, 2241, 2243, 2245, 2246, 2247, 2248, 2250, 2252, 2255,
- 2258, 2259, 2261, 2263, 2266, 2269, 2270, 2272, 2274, 2275,
- 2277, 2278, 2281, 2282, 2283, 2284, 2286, 2288, 2291, 2292,
- 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2301, 2303, 2306,
- 2307, 2308, 2309, 2310, 2312, 2313, 2314, 2315, 2317, 2319,
- 2320, 2321, 2322, 2323, 2324, 2326, 2327, 2329, 2332, 2333,
- 2334, 2335, 2338, 2339, 2342, 2343, 2346, 2347, 2350, 2363,
- 2364, 2365, 2366, 2369, 2374, 2381, 2383, 2386, 2388, 2391,
- 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2403, 2407, 2408,
- 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2421, 2422,
- 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2434,
- 2435, 2438, 2439, 2439, 2442, 2443, 2444, 2445, 2448, 2449,
- 2452, 2453, 2456, 2460, 2461, 2461, 2464, 2465, 2468, 2471,
- 2475, 2476, 2477, 2478, 2481, 2482, 2483, 2484, 2487, 2489,
- 2490, 2495, 2497, 2498, 2499, 2500, 2503, 2504, 2509, 2513,
- 2514, 2515, 2518, 2519, 2521, 2522, 2525, 2527, 2528, 2529,
- 2532, 2533, 2534, 2535, 2538, 2539, 2542, 2544, 2546, 2547,
- 2550, 2552, 2553, 2554, 2557, 2558, 2561, 2562, 2563, 2566,
- 2567, 2568, 2569, 2570, 2573, 2574, 2575, 2578, 2579, 2582,
- 2584, 2586, 2590, 2591, 2592, 2595, 2596, 2597, 2600, 2601,
- 2602, 2605, 2607, 2609, 2613, 2614, 2617, 2618, 2619, 2622,
- 2623, 2625, 2626, 2628, 2631, 2632, 2635, 2636, 2639, 2641,
- 2642, 2643, 2644, 2647, 2648, 2649, 2652, 2653, 2654, 2657,
- 2658, 2663, 2667, 2674, 2675, 2677, 2682, 2685, 2688, 2689,
- 2690, 2691, 2693, 2698
+ 602, 603, 604, 605, 606, 607, 608, 609, 610, 611,
+ 612, 613, 614, 615, 616, 619, 620, 623, 624, 625,
+ 626, 627, 628, 629, 630, 633, 634, 635, 636, 637,
+ 638, 639, 640, 641, 642, 643, 646, 647, 648, 651,
+ 652, 653, 654, 657, 658, 659, 660, 661, 664, 665,
+ 666, 669, 670, 671, 674, 675, 676, 679, 680, 681,
+ 684, 685, 686, 687, 688, 689, 690, 691, 694, 695,
+ 698, 699, 700, 703, 704, 705, 708, 709, 710, 713,
+ 714, 715, 716, 717, 721, 722, 723, 724, 725, 726,
+ 727, 728, 731, 732, 735, 736, 737, 739, 741, 742,
+ 743, 745, 749, 750, 753, 754, 756, 759, 761, 767,
+ 768, 769, 770, 771, 772, 775, 776, 777, 780, 781,
+ 784, 785, 786, 787, 788, 791, 792, 795, 796, 797,
+ 798, 799, 802, 803, 804, 807, 810, 812, 813, 814,
+ 817, 820, 824, 825, 828, 829, 830, 832, 833, 834,
+ 835, 836, 838, 840, 842, 845, 846, 847, 851, 853,
+ 858, 859, 862, 863, 866, 869, 870, 871, 872, 875,
+ 876, 877, 878, 879, 882, 884, 886, 887, 889, 891,
+ 893, 895, 899, 902, 903, 904, 905, 906, 907, 908,
+ 909, 910, 911, 912, 913, 914, 915, 916, 917, 918,
+ 920, 921, 922, 923, 924, 925, 926, 927, 928, 930,
+ 931, 932, 933, 934, 935, 937, 939, 940, 943, 944,
+ 945, 946, 947, 948, 949, 950, 953, 954, 955, 958,
+ 959, 960, 961, 962, 963, 964, 967, 968, 969, 970,
+ 971, 972, 975, 976, 979, 980, 981, 984, 987, 988,
+ 990, 994, 995, 996, 999, 1003, 1005, 1006, 1007, 1008,
+ 1009, 1010, 1011, 1012, 1013, 1014, 1017, 1018, 1019, 1022,
+ 1023, 1026, 1027, 1030, 1033, 1039, 1041, 1043, 1047, 1049,
+ 1052, 1055, 1056, 1059, 1062, 1063, 1068, 1071, 1074, 1079,
+ 1080, 1081, 1085, 1086, 1087, 1088, 1089, 1092, 1093, 1094,
+ 1097, 1098, 1101, 1102, 1103, 1104, 1106, 1107, 1108, 1109,
+ 1110, 1111, 1114, 1115, 1118, 1119, 1120, 1123, 1124, 1127,
+ 1129, 1132, 1136, 1137, 1140, 1141, 1144, 1145, 1146, 1149,
+ 1152, 1153, 1154, 1157, 1160, 1161, 1164, 1165, 1166, 1167,
+ 1170, 1171, 1172, 1175, 1176, 1179, 1182, 1185, 1188, 1189,
+ 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201,
+ 1202, 1203, 1204, 1205, 1206, 1207, 1210, 1213, 1214, 1217,
+ 1218, 1219, 1220, 1223, 1224, 1225, 1226, 1229, 1230, 1231,
+ 1232, 1235, 1236, 1237, 1238, 1239, 1240, 1242, 1243, 1248,
+ 1249, 1252, 1254, 1256, 1259, 1260, 1261, 1262, 1265, 1267,
+ 1269, 1271, 1273, 1275, 1278, 1280, 1282, 1284, 1287, 1288,
+ 1289, 1290, 1291, 1292, 1294, 1295, 1296, 1299, 1301, 1303,
+ 1305, 1308, 1311, 1314, 1317, 1320, 1322, 1324, 1327, 1328,
+ 1329, 1330, 1333, 1335, 1337, 1339, 1341, 1343, 1345, 1347,
+ 1349, 1351, 1353, 1357, 1359, 1361, 1363, 1365, 1367, 1370,
+ 1372, 1374, 1378, 1379, 1380, 1381, 1382, 1385, 1388, 1391,
+ 1394, 1397, 1400, 1404, 1407, 1410, 1415, 1418, 1421, 1424,
+ 1427, 1430, 1433, 1437, 1441, 1444, 1447, 1452, 1455, 1458,
+ 1461, 1464, 1467, 1471, 1474, 1477, 1482, 1485, 1488, 1491,
+ 1494, 1497, 1500, 1504, 1508, 1511, 1514, 1519, 1521, 1523,
+ 1525, 1527, 1529, 1532, 1534, 1536, 1539, 1540, 1543, 1544,
+ 1545, 1546, 1548, 1550, 1552, 1555, 1558, 1559, 1560, 1564,
+ 1565, 1566, 1567, 1569, 1571, 1574, 1575, 1576, 1580, 1581,
+ 1582, 1585, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1601,
+ 1602, 1603, 1604, 1606, 1608, 1609, 1609, 1610, 1611, 1612,
+ 1613, 1614, 1616, 1617, 1619, 1622, 1624, 1626, 1629, 1630,
+ 1631, 1634, 1636, 1639, 1642, 1645, 1649, 1652, 1654, 1657,
+ 1660, 1664, 1669, 1674, 1676, 1678, 1680, 1681, 1683, 1685,
+ 1687, 1689, 1691, 1692, 1694, 1696, 1700, 1705, 1707, 1709,
+ 1711, 1713, 1715, 1717, 1719, 1721, 1723, 1726, 1727, 1729,
+ 1731, 1732, 1734, 1736, 1737, 1738, 1740, 1741, 1742, 1744,
+ 1745, 1747, 1750, 1754, 1758, 1761, 1764, 1768, 1773, 1779,
+ 1780, 1781, 1783, 1784, 1786, 1790, 1792, 1793, 1794, 1796,
+ 1799, 1801, 1804, 1806, 1808, 1811, 1816, 1819, 1820, 1823,
+ 1826, 1830, 1831, 1833, 1834, 1835, 1837, 1838, 1840, 1841,
+ 1843, 1848, 1850, 1851, 1853, 1854, 1855, 1856, 1857, 1858,
+ 1860, 1862, 1864, 1865, 1868, 1869, 1871, 1873, 1874, 1875,
+ 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1885, 1887,
+ 1889, 1890, 1891, 1892, 1894, 1895, 1896, 1897, 1898, 1900,
+ 1901, 1903, 1904, 1905, 1906, 1909, 1910, 1911, 1912, 1913,
+ 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923,
+ 1924, 1925, 1926, 1927, 1928, 1929, 1932, 1933, 1934, 1935,
+ 1936, 1937, 1944, 1951, 1960, 1969, 1976, 1984, 1992, 1999,
+ 2004, 2009, 2014, 2019, 2024, 2029, 2035, 2044, 2054, 2064,
+ 2071, 2081, 2091, 2100, 2112, 2125, 2130, 2133, 2135, 2137,
+ 2142, 2146, 2149, 2151, 2153, 2156, 2157, 2158, 2159, 2160,
+ 2161, 2162, 2165, 2166, 2167, 2168, 2169, 2171, 2173, 2175,
+ 2176, 2178, 2179, 2180, 2181, 2183, 2185, 2188, 2190, 2192,
+ 2194, 2196, 2197, 2198, 2200, 2202, 2205, 2207, 2210, 2212,
+ 2214, 2215, 2216, 2217, 2219, 2221, 2222, 2223, 2224, 2225,
+ 2227, 2229, 2231, 2233, 2235, 2237, 2240, 2241, 2242, 2244,
+ 2246, 2248, 2249, 2250, 2251, 2253, 2255, 2258, 2262, 2263,
+ 2264, 2266, 2269, 2272, 2274, 2276, 2277, 2278, 2280, 2282,
+ 2285, 2286, 2288, 2289, 2290, 2291, 2292, 2294, 2295, 2297,
+ 2299, 2302, 2303, 2304, 2305, 2306, 2308, 2309, 2310, 2311,
+ 2313, 2315, 2316, 2317, 2318, 2319, 2320, 2322, 2323, 2325,
+ 2328, 2329, 2330, 2331, 2334, 2335, 2338, 2339, 2342, 2343,
+ 2346, 2359, 2360, 2361, 2362, 2365, 2370, 2377, 2379, 2382,
+ 2384, 2387, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2399,
+ 2403, 2404, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414,
+ 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426,
+ 2427, 2430, 2431, 2434, 2435, 2435, 2438, 2439, 2440, 2441,
+ 2444, 2445, 2448, 2449, 2452, 2456, 2457, 2457, 2460, 2461,
+ 2464, 2467, 2471, 2472, 2473, 2474, 2477, 2478, 2479, 2480,
+ 2483, 2485, 2486, 2491, 2493, 2494, 2495, 2496, 2499, 2500,
+ 2505, 2509, 2510, 2511, 2514, 2515, 2517, 2518, 2521, 2523,
+ 2524, 2525, 2528, 2529, 2530, 2531, 2534, 2535, 2538, 2540,
+ 2542, 2543, 2546, 2548, 2549, 2550, 2553, 2554, 2557, 2558,
+ 2559, 2562, 2563, 2564, 2565, 2566, 2569, 2570, 2571, 2574,
+ 2575, 2576, 2579, 2581, 2583, 2587, 2588, 2589, 2592, 2593,
+ 2594, 2597, 2598, 2599, 2602, 2604, 2606, 2610, 2611, 2614,
+ 2615, 2616, 2619, 2620, 2622, 2623, 2625, 2628, 2629, 2632,
+ 2633, 2636, 2638, 2639, 2640, 2641, 2644, 2645, 2646, 2649,
+ 2650, 2651, 2654, 2655, 2660, 2664, 2671, 2672, 2674, 2679,
+ 2682, 2685, 2686, 2687, 2688, 2690, 2695
};
#endif
@@ -1802,11 +1819,11 @@ static const char *const yytname[] =
"ANALYSIS_", "ANGLE_", "ANNULUS_", "APPEND_", "ARCMIN_", "ARCSEC_",
"ARRAY_", "ARROW_", "ASINH_", "AST_", "AUTO_", "AUX_", "AVERAGE_",
"B1950_", "BACK_", "BASE_", "BBOX_", "BEGIN_", "BG_", "BIGENDIAN_",
- "BIN_", "BITPIX_", "BLOCK_", "BOX_", "BOXANNULUS_", "BOXCAR_",
+ "BIN_", "BITPIX_", "BLOCK_", "BLT_", "BOX_", "BOXANNULUS_", "BOXCAR_",
"BOXCIRCLE_", "BPANDA_", "BUFFER_", "BW_", "CALLBACK_", "CANVAS_",
"CATALOG_", "CELESTRIAL_", "CENTER_", "CENTROID_", "CHANNEL_", "CIRCLE_",
"CIAO_", "CLEAR_", "CLIP_", "COLOR_", "COLORBAR_", "COLORMAP_",
- "COLORSCALE_", "COLORSPACE_", "COLS_", "COMMAND_", "COMPASS_",
+ "COLORSCALE_", "COLORSPACE_", "COLS_", "COLUMN_", "COMMAND_", "COMPASS_",
"COMPOSITE_", "COMPRESS_", "CONTOUR_", "CONTRAST_", "COORDINATES_",
"COPY_", "COUNT_", "CPANDA_", "CREATE_", "CROP_", "CROSS_", "CROSSHAIR_",
"CUBE_", "CURSOR_", "CUT_", "CMYK_", "DASH_", "DASHLIST_", "DATA_",
@@ -1827,47 +1844,49 @@ static const char *const yytname[] =
"MIP_", "MMAP_", "MMAPINCR_", "MOSAIC_", "MODE_", "MOTION_", "MOVE_",
"NAME_", "NAN_", "NAXES_", "NEW_", "NEXT_", "NO_", "NONE_", "NOW_",
"NUMBER_", "OBJECT_", "OFF_", "ON_", "ONLY_", "OPTION_", "ORIENT_",
- "PAN_", "PANNER_", "PARSER_", "PASTE_", "PERF_", "PHYSICAL_", "PIXEL_",
- "POINT_", "POINTER_", "POLYGON_", "POSTSCRIPT_", "POW_", "PRINT_",
- "PRESERVE_", "PROJECTION_", "CIRCLE3D_", "PROPERTY_", "PUBLICATION_",
- "PROS_", "RADIUS_", "REGION_", "REPLACE_", "RESAMPLE_", "RESET_",
- "RESOLUTION_", "RGB_", "ROOT_", "ROTATE_", "RULER_", "SAMPLE_",
- "SAOIMAGE_", "SAOTNG_", "SAVE_", "SCALE_", "SCAN_", "SCIENTIFIC_",
- "SCOPE_", "SEGMENT_", "SELECT_", "SET_", "SEXAGESIMAL_", "SHARED_",
- "SHIFT_", "SHMID_", "SHOW_", "SINH_", "SIZE_", "SLICE_", "SMMAP_",
- "SMOOTH_", "SOCKET_", "SOCKETGZ_", "SOURCE_", "SQRT_", "SQUARED_",
- "SSHARED_", "STATUS_", "SUPERGALACTIC_", "SUM_", "SYSTEM_", "TABLE_",
- "TAG_", "TEMPLATE_", "TEXT_", "THREADS_", "THREED_", "THRESHOLD_",
- "THICK_", "TRANSPARENCY_", "TO_", "TOGGLE_", "TOPHAT_", "TRUE_", "TYPE_",
- "UNDO_", "UNHIGHLITE_", "UNLOAD_", "UNSELECT_", "UPDATE_", "USER_",
- "VALUE_", "VAR_", "VIEW_", "VECTOR_", "VERSION_", "VERTEX_", "VERTICAL_",
- "WARP_", "WCS_", "WCSA_", "WCSB_", "WCSC_", "WCSD_", "WCSE_", "WCSF_",
- "WCSG_", "WCSH_", "WCSI_", "WCSJ_", "WCSK_", "WCSL_", "WCSM_", "WCSN_",
- "WCSO_", "WCSP_", "WCSQ_", "WCSR_", "WCSS_", "WCST_", "WCSU_", "WCSV_",
- "WCSW_", "WCSX_", "WCSY_", "WCSZ_", "WCS0_", "WFPC2_", "WIDTH_",
- "WIN32_", "XML_", "XY_", "YES_", "ZMAX_", "ZSCALE_", "ZOOM_", "'Y'",
- "'N'", "'X'", "'='", "$accept", "command", "numeric", "debug", "yesno",
- "precision", "fileNameType", "optangle", "angle", "sexagesimal", "hms",
- "dms", "coord", "coordSystem", "wcsSystem", "internalSystem",
- "scaleType", "skyFrame", "skyFormat", "skyDist", "contourClipMode",
- "shmType", "incrLoad", "layerType", "compressType", "pointSize",
- "endian", "threed", "bin", "binAbout", "binFactor", "binFunction",
- "binTo", "clip", "clipUser", "clipScope", "clipMode", "clipMinMax",
- "clipMinMaxMode", "clipZScale", "colormap", "colormapMotion",
- "colorscale", "contour", "contourAux", "contourCreate", "contourmethod",
- "crop", "crop3d", "crosshair", "fitsy", "get", "getBin", "getBinCols",
- "getClip", "getClipLimits", "getClipMinMax", "getClipZScale",
- "getColorMap", "getColorMapLevel", "getColorScale", "getColorScaleLevel",
- "getContour", "getContourAux", "getContourClip", "getContourColorScale",
- "getCoord", "getCrop", "getCrosshair", "getCursor", "getData", "getInfo",
- "getiis", "getIISFileName", "getFits", "getFitsHeader", "getFitsDepth",
- "getFitsFileName", "getFitsSlice", "getGrid", "getMask", "getPan",
- "getRGB", "getRotate", "getSmooth", "getThreed", "getWCS", "getWCSAlign",
- "getZoom", "grid", "gridType", "has", "hasContour", "hasFits",
- "hasMarker", "hasWCS", "iis", "iisSetFileName", "iiscursor", "load",
- "loadArr", "loadArrRGBCube", "loadFits", "loadFitsSlice",
- "loadFitsExtCube", "loadFitsMosaic", "loadFitsMosaicImageIRAF",
- "loadFitsMosaicIRAF", "loadFitsMosaicImageWCS", "loadFitsMosaicWCS",
+ "PAN_", "PANNER_", "PARAM_", "PARSER_", "PASTE_", "PERF_", "PHOTO_",
+ "PHYSICAL_", "PIXEL_", "PLOT2D_", "PLOT3D_", "POINT_", "POINTER_",
+ "POLYGON_", "POSTSCRIPT_", "POW_", "PRINT_", "PRESERVE_", "PROJECTION_",
+ "PROPERTY_", "PUBLICATION_", "PROS_", "RADIUS_", "REGION_", "REPLACE_",
+ "RESAMPLE_", "RESET_", "RESOLUTION_", "RGB_", "ROOT_", "ROTATE_",
+ "RULER_", "SAMPLE_", "SAOIMAGE_", "SAOTNG_", "SAVE_", "SCALE_", "SCAN_",
+ "SCIENTIFIC_", "SCOPE_", "SEGMENT_", "SELECT_", "SET_", "SEXAGESIMAL_",
+ "SHAPE_", "SHARED_", "SHIFT_", "SHMID_", "SHOW_", "SINH_", "SIZE_",
+ "SLICE_", "SMMAP_", "SMOOTH_", "SOCKET_", "SOCKETGZ_", "SOURCE_",
+ "SQRT_", "SQUARED_", "SSHARED_", "STATS_", "STATUS_", "SUPERGALACTIC_",
+ "SUM_", "SYSTEM_", "TABLE_", "TAG_", "TEMPLATE_", "TEXT_", "THREADS_",
+ "THREED_", "THRESHOLD_", "THICK_", "TRANSPARENCY_", "TO_", "TOGGLE_",
+ "TOPHAT_", "TRUE_", "TYPE_", "UNDO_", "UNHIGHLITE_", "UNLOAD_",
+ "UNSELECT_", "UPDATE_", "USER_", "VALUE_", "VAR_", "VIEW_", "VECTOR_",
+ "VERSION_", "VERTEX_", "VERTICAL_", "WARP_", "WCS_", "WCSA_", "WCSB_",
+ "WCSC_", "WCSD_", "WCSE_", "WCSF_", "WCSG_", "WCSH_", "WCSI_", "WCSJ_",
+ "WCSK_", "WCSL_", "WCSM_", "WCSN_", "WCSO_", "WCSP_", "WCSQ_", "WCSR_",
+ "WCSS_", "WCST_", "WCSU_", "WCSV_", "WCSW_", "WCSX_", "WCSY_", "WCSZ_",
+ "WCS0_", "WFPC2_", "WIDTH_", "WIN32_", "XML_", "XY_", "YES_", "ZMAX_",
+ "ZSCALE_", "ZOOM_", "'Y'", "'N'", "'X'", "'='", "$accept", "command",
+ "numeric", "debug", "yesno", "precision", "fileNameType", "optangle",
+ "angle", "sexagesimal", "hms", "dms", "coord", "coordSystem",
+ "wcsSystem", "internalSystem", "scaleType", "skyFrame", "skyFormat",
+ "skyDist", "contourClipMode", "shmType", "incrLoad", "layerType",
+ "compressType", "pointShape", "pointSize", "analysisMethod",
+ "analysisParam", "endian", "threed", "bin", "binAbout", "binFactor",
+ "binFunction", "binTo", "clip", "clipUser", "clipScope", "clipMode",
+ "clipMinMax", "clipMinMaxMode", "clipZScale", "colormap",
+ "colormapMotion", "colorscale", "contour", "contourAux", "contourCreate",
+ "contourmethod", "crop", "crop3d", "crosshair", "fitsy", "get", "getBin",
+ "getBinCols", "getClip", "getClipLimits", "getClipMinMax",
+ "getClipZScale", "getColorMap", "getColorMapLevel", "getColorScale",
+ "getColorScaleLevel", "getContour", "getContourAux", "getContourClip",
+ "getContourColorScale", "getCoord", "getCrop", "getCrosshair",
+ "getCursor", "getData", "getInfo", "getiis", "getIISFileName", "getFits",
+ "getFitsHeader", "getFitsDepth", "getFitsFileName", "getFitsSlice",
+ "getGrid", "getMask", "getPan", "getRGB", "getRotate", "getSmooth",
+ "getThreed", "getWCS", "getWCSAlign", "getZoom", "grid", "gridType",
+ "has", "hasBin", "hasContour", "hasFits", "hasMarker", "hasWCS", "iis",
+ "iisSetFileName", "iiscursor", "load", "loadArr", "loadArrRGBCube",
+ "loadFits", "loadFitsSlice", "loadFitsExtCube", "loadFitsMosaic",
+ "loadFitsMosaicImageIRAF", "loadFitsMosaicIRAF",
+ "loadFitsMosaicImageWCS", "loadFitsMosaicWCS",
"loadFitsMosaicImageWFPC2", "loadFitsRGB", "loadFitsRGBCube",
"loadFitsRGBImage", "loadIncr", "macosx", "magnifier", "marker", "@1",
"markerCallBack", "markerCentroid", "markerCreate",
@@ -1924,128 +1943,130 @@ static const yytype_uint16 yytoknum[] =
545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
- 575, 576, 577, 578, 579, 89, 78, 88, 61
+ 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
+ 585, 586, 89, 78, 88, 61
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
- 0, 329, 330, 330, 330, 330, 330, 330, 330, 330,
- 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
- 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
- 330, 330, 330, 330, 330, 330, 330, 330, 330, 330,
- 330, 330, 330, 330, 330, 330, 331, 331, 332, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 333,
- 333, 333, 333, 333, 333, 333, 333, 333, 334, 334,
- 334, 334, 334, 335, 335, 335, 335, 335, 335, 335,
- 336, 336, 337, 337, 337, 338, 339, 340, 341, 341,
- 341, 341, 342, 342, 342, 342, 342, 343, 343, 343,
- 343, 343, 343, 343, 343, 343, 343, 343, 343, 343,
- 343, 343, 343, 343, 343, 343, 343, 343, 343, 343,
- 343, 343, 343, 343, 343, 344, 344, 345, 345, 345,
- 345, 345, 345, 345, 345, 346, 346, 346, 346, 346,
- 346, 346, 346, 346, 346, 346, 347, 347, 347, 348,
- 348, 348, 348, 349, 349, 349, 349, 349, 350, 350,
- 350, 351, 351, 351, 352, 352, 352, 353, 353, 353,
- 354, 354, 355, 355, 355, 356, 356, 356, 356, 356,
- 357, 357, 357, 357, 357, 357, 357, 357, 358, 358,
- 359, 359, 359, 359, 359, 359, 359, 359, 360, 360,
- 361, 361, 361, 361, 361, 362, 362, 362, 362, 362,
- 362, 363, 363, 363, 364, 364, 365, 365, 365, 365,
- 365, 366, 366, 367, 367, 367, 367, 367, 368, 368,
- 368, 369, 369, 369, 369, 369, 370, 370, 371, 371,
- 372, 372, 372, 372, 372, 372, 372, 372, 372, 372,
- 372, 373, 373, 373, 374, 374, 375, 375, 376, 376,
- 376, 376, 376, 376, 376, 377, 377, 377, 377, 377,
- 378, 378, 378, 378, 378, 378, 378, 378, 379, 380,
- 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 381, 381, 381, 381, 381, 381,
- 381, 381, 382, 382, 382, 383, 383, 383, 383, 383,
- 383, 383, 384, 384, 384, 384, 384, 384, 385, 385,
- 386, 386, 386, 387, 388, 388, 388, 389, 389, 389,
- 390, 391, 391, 391, 391, 391, 391, 391, 391, 391,
- 391, 391, 392, 392, 392, 393, 393, 394, 394, 395,
- 395, 395, 395, 395, 396, 396, 396, 397, 397, 397,
- 398, 398, 399, 399, 399, 400, 400, 400, 401, 401,
- 401, 401, 401, 402, 402, 402, 403, 403, 403, 403,
- 403, 403, 403, 403, 403, 403, 403, 403, 403, 403,
- 404, 404, 404, 405, 405, 406, 406, 406, 407, 407,
- 408, 408, 409, 409, 409, 410, 411, 411, 411, 412,
- 413, 413, 414, 414, 414, 414, 415, 415, 415, 416,
- 416, 417, 418, 418, 419, 419, 420, 420, 420, 420,
- 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
- 420, 421, 421, 422, 422, 422, 422, 423, 423, 423,
- 423, 424, 424, 424, 424, 425, 425, 425, 425, 425,
- 425, 425, 425, 426, 426, 427, 427, 427, 428, 428,
- 428, 429, 429, 429, 429, 429, 429, 429, 429, 429,
- 429, 430, 430, 430, 430, 430, 430, 430, 430, 430,
- 431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
- 431, 431, 431, 431, 431, 432, 432, 432, 432, 432,
- 432, 432, 432, 432, 432, 432, 433, 433, 433, 433,
- 433, 433, 433, 433, 433, 434, 434, 434, 434, 434,
- 435, 435, 435, 435, 435, 435, 435, 435, 435, 436,
- 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
- 437, 437, 437, 437, 437, 437, 437, 437, 437, 438,
- 438, 438, 438, 438, 438, 438, 438, 438, 438, 438,
- 439, 439, 439, 439, 439, 439, 439, 439, 439, 440,
- 440, 441, 441, 441, 441, 441, 441, 441, 441, 441,
- 441, 441, 442, 442, 442, 442, 442, 442, 442, 442,
- 442, 443, 443, 443, 444, 445, 445, 445, 445, 445,
- 445, 445, 446, 446, 446, 446, 446, 446, 447, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 446, 446,
- 446, 446, 446, 446, 446, 446, 446, 446, 448, 448,
- 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
- 448, 448, 448, 448, 448, 448, 448, 448, 448, 449,
- 449, 449, 449, 449, 449, 450, 450, 450, 450, 450,
- 450, 450, 450, 450, 450, 450, 450, 450, 450, 450,
- 450, 450, 450, 450, 450, 450, 450, 450, 450, 450,
- 450, 450, 450, 451, 451, 451, 451, 452, 453, 453,
- 453, 454, 454, 454, 454, 454, 454, 454, 455, 455,
- 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
- 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
- 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
- 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
- 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
- 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
- 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
- 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
- 455, 455, 455, 455, 455, 455, 455, 455, 455, 455,
- 455, 455, 455, 455, 455, 455, 455, 455, 456, 456,
- 456, 456, 457, 457, 458, 458, 459, 459, 460, 461,
- 461, 461, 461, 462, 462, 463, 463, 463, 463, 463,
- 464, 464, 464, 464, 464, 464, 464, 464, 465, 465,
- 466, 466, 466, 466, 466, 466, 466, 466, 467, 467,
- 467, 467, 467, 467, 467, 467, 467, 467, 467, 468,
- 468, 469, 470, 469, 471, 471, 471, 471, 472, 472,
- 473, 473, 474, 475, 476, 475, 477, 477, 478, 479,
- 480, 480, 480, 480, 481, 481, 481, 481, 482, 482,
- 482, 482, 482, 482, 482, 482, 483, 483, 483, 484,
- 484, 484, 485, 485, 485, 485, 486, 486, 486, 486,
- 487, 487, 487, 487, 488, 488, 489, 489, 489, 489,
- 490, 490, 490, 490, 491, 491, 492, 492, 492, 493,
- 493, 493, 493, 493, 494, 494, 494, 495, 495, 496,
- 496, 496, 497, 497, 497, 498, 498, 498, 499, 499,
- 499, 500, 500, 500, 501, 501, 502, 502, 502, 503,
- 503, 503, 503, 503, 504, 504, 505, 505, 506, 506,
- 506, 506, 506, 507, 507, 507, 508, 508, 508, 509,
- 509, 509, 510, 511, 511, 511, 511, 511, 512, 512,
- 512, 512, 512, 512
+ 0, 336, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 337, 337, 337, 337, 337,
+ 337, 337, 337, 337, 337, 337, 338, 338, 339, 339,
+ 339, 339, 339, 339, 339, 339, 339, 339, 339, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 341, 341,
+ 341, 341, 341, 342, 342, 342, 342, 342, 342, 342,
+ 343, 343, 344, 344, 344, 345, 346, 347, 348, 348,
+ 348, 348, 349, 349, 349, 349, 349, 350, 350, 350,
+ 350, 350, 350, 350, 350, 350, 350, 350, 350, 350,
+ 350, 350, 350, 350, 350, 350, 350, 350, 350, 350,
+ 350, 350, 350, 350, 350, 351, 351, 352, 352, 352,
+ 352, 352, 352, 352, 352, 353, 353, 353, 353, 353,
+ 353, 353, 353, 353, 353, 353, 354, 354, 354, 355,
+ 355, 355, 355, 356, 356, 356, 356, 356, 357, 357,
+ 357, 358, 358, 358, 359, 359, 359, 360, 360, 360,
+ 361, 361, 361, 361, 361, 361, 361, 361, 362, 362,
+ 363, 363, 363, 364, 364, 364, 365, 365, 365, 366,
+ 366, 366, 366, 366, 367, 367, 367, 367, 367, 367,
+ 367, 367, 368, 368, 369, 369, 369, 369, 369, 369,
+ 369, 369, 370, 370, 371, 371, 371, 371, 371, 372,
+ 372, 372, 372, 372, 372, 373, 373, 373, 374, 374,
+ 375, 375, 375, 375, 375, 376, 376, 377, 377, 377,
+ 377, 377, 378, 378, 378, 379, 379, 379, 379, 379,
+ 380, 380, 381, 381, 382, 382, 382, 382, 382, 382,
+ 382, 382, 382, 382, 382, 383, 383, 383, 384, 384,
+ 385, 385, 386, 386, 386, 386, 386, 386, 386, 387,
+ 387, 387, 387, 387, 388, 388, 388, 388, 388, 388,
+ 388, 388, 389, 390, 390, 390, 390, 390, 390, 390,
+ 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
+ 390, 390, 390, 390, 390, 390, 390, 390, 390, 390,
+ 390, 390, 390, 390, 390, 390, 390, 390, 391, 391,
+ 391, 391, 391, 391, 391, 391, 392, 392, 392, 393,
+ 393, 393, 393, 393, 393, 393, 394, 394, 394, 394,
+ 394, 394, 395, 395, 396, 396, 396, 397, 398, 398,
+ 398, 399, 399, 399, 400, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 402, 402, 402, 403,
+ 403, 404, 404, 405, 405, 405, 405, 405, 406, 406,
+ 406, 407, 407, 407, 408, 408, 409, 409, 409, 410,
+ 410, 410, 411, 411, 411, 411, 411, 412, 412, 412,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 414, 414, 414, 415, 415, 416,
+ 416, 416, 417, 417, 418, 418, 419, 419, 419, 420,
+ 421, 421, 421, 422, 423, 423, 424, 424, 424, 424,
+ 425, 425, 425, 426, 426, 427, 428, 428, 429, 429,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 431, 432, 432, 433,
+ 433, 433, 433, 434, 434, 434, 434, 435, 435, 435,
+ 435, 436, 436, 436, 436, 436, 436, 436, 436, 437,
+ 437, 438, 438, 438, 439, 439, 439, 439, 440, 440,
+ 440, 440, 440, 440, 440, 440, 440, 440, 441, 441,
+ 441, 441, 441, 441, 441, 441, 441, 442, 442, 442,
+ 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
+ 442, 442, 443, 443, 443, 443, 443, 443, 443, 443,
+ 443, 443, 443, 444, 444, 444, 444, 444, 444, 444,
+ 444, 444, 445, 445, 445, 445, 445, 446, 446, 446,
+ 446, 446, 446, 446, 446, 446, 447, 447, 447, 447,
+ 447, 447, 447, 447, 447, 447, 447, 448, 448, 448,
+ 448, 448, 448, 448, 448, 448, 449, 449, 449, 449,
+ 449, 449, 449, 449, 449, 449, 449, 450, 450, 450,
+ 450, 450, 450, 450, 450, 450, 451, 451, 452, 452,
+ 452, 452, 452, 452, 452, 452, 452, 452, 452, 453,
+ 453, 453, 453, 453, 453, 453, 453, 453, 454, 454,
+ 454, 455, 456, 456, 456, 456, 456, 456, 456, 457,
+ 457, 457, 457, 457, 457, 458, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 457, 457, 457, 457, 457,
+ 457, 457, 457, 457, 457, 459, 459, 459, 459, 459,
+ 459, 459, 459, 459, 459, 459, 459, 459, 459, 459,
+ 459, 459, 459, 459, 459, 459, 460, 460, 460, 460,
+ 460, 460, 461, 461, 461, 461, 461, 461, 461, 461,
+ 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
+ 461, 461, 461, 461, 461, 461, 461, 462, 462, 462,
+ 462, 463, 464, 464, 464, 465, 465, 465, 465, 465,
+ 465, 465, 466, 466, 466, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
+ 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
+ 467, 467, 467, 467, 468, 468, 469, 469, 470, 470,
+ 471, 472, 472, 472, 472, 473, 473, 474, 474, 474,
+ 474, 474, 475, 475, 475, 475, 475, 475, 475, 475,
+ 476, 476, 477, 477, 477, 477, 477, 477, 477, 477,
+ 478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
+ 478, 479, 479, 480, 481, 480, 482, 482, 482, 482,
+ 483, 483, 484, 484, 485, 486, 487, 486, 488, 488,
+ 489, 490, 491, 491, 491, 491, 492, 492, 492, 492,
+ 493, 493, 493, 493, 493, 493, 493, 493, 494, 494,
+ 494, 495, 495, 495, 496, 496, 496, 496, 497, 497,
+ 497, 497, 498, 498, 498, 498, 499, 499, 500, 500,
+ 500, 500, 501, 501, 501, 501, 502, 502, 503, 503,
+ 503, 504, 504, 504, 504, 504, 505, 505, 505, 506,
+ 506, 506, 507, 507, 507, 508, 508, 508, 509, 509,
+ 509, 510, 510, 510, 511, 511, 511, 512, 512, 513,
+ 513, 513, 514, 514, 514, 514, 514, 515, 515, 516,
+ 516, 517, 517, 517, 517, 517, 518, 518, 518, 519,
+ 519, 519, 520, 520, 520, 521, 522, 522, 522, 522,
+ 522, 523, 523, 523, 523, 523, 523
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -2068,54 +2089,56 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 1, 1, 0, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1, 0, 1,
1, 0, 1, 1, 0, 1, 1, 0, 1, 1,
- 0, 1, 0, 1, 1, 3, 2, 2, 2, 2,
- 2, 4, 2, 2, 2, 3, 2, 2, 1, 2,
- 1, 2, 4, 5, 2, 3, 5, 6, 1, 1,
- 1, 7, 11, 8, 12, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
- 1, 2, 2, 1, 1, 1, 1, 1, 2, 2,
- 2, 7, 10, 1, 2, 1, 7, 10, 1, 2,
- 2, 2, 3, 2, 2, 1, 2, 7, 7, 4,
- 2, 1, 1, 4, 12, 2, 1, 1, 0, 6,
- 8, 2, 3, 3, 3, 0, 3, 4, 4, 4,
- 3, 3, 1, 3, 5, 4, 4, 3, 3, 2,
- 2, 2, 2, 1, 2, 2, 2, 2, 2, 2,
- 2, 1, 2, 2, 3, 7, 2, 2, 1, 3,
- 2, 2, 1, 2, 8, 2, 2, 2, 2, 1,
- 4, 7, 2, 2, 1, 1, 1, 2, 1, 1,
- 2, 1, 0, 2, 2, 1, 1, 1, 2, 2,
- 2, 1, 0, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 2, 1, 4, 5, 0, 2, 1,
- 5, 2, 2, 2, 1, 1, 1, 2, 1, 2,
- 1, 1, 1, 1, 1, 0, 1, 0, 1, 5,
- 6, 3, 4, 4, 3, 6, 2, 1, 4, 1,
- 1, 4, 6, 7, 5, 1, 1, 4, 5, 1,
- 1, 1, 3, 0, 1, 2, 1, 5, 1, 2,
- 1, 4, 3, 2, 1, 2, 1, 5, 2, 1,
- 1, 3, 2, 0, 1, 1, 4, 2, 0, 1,
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0, 2, 2, 0,
- 1, 1, 6, 1, 1, 1, 1, 2, 1, 1,
- 1, 1, 2, 1, 1, 1, 2, 1, 1, 2,
- 2, 0, 1, 0, 1, 1, 1, 1, 1, 1,
- 1, 1, 2, 2, 1, 3, 1, 2, 2, 4,
- 6, 1, 10, 1, 2, 3, 3, 2, 2, 2,
- 2, 4, 4, 4, 3, 3, 5, 4, 4, 4,
- 3, 3, 3, 3, 2, 2, 4, 3, 3, 3,
- 4, 4, 4, 4, 5, 4, 6, 7, 4, 4,
- 5, 2, 3, 2, 2, 3, 3, 3, 3, 4,
- 3, 5, 6, 3, 3, 4, 3, 3, 3, 3,
- 3, 5, 3, 3, 4, 3, 2, 2, 1, 3,
- 4, 4, 4, 4, 4, 6, 4, 4, 5, 4,
- 4, 4, 4, 5, 4, 6, 7, 4, 4, 5,
- 5, 5, 5, 5, 5, 7, 5, 5, 6, 5,
- 5, 5, 5, 6, 5, 7, 8, 5, 5, 6,
- 3, 3, 3, 3, 3, 5, 3, 3, 4, 2,
- 2, 3, 3, 3, 3, 4, 3, 5, 6, 3,
- 3, 4, 3, 3, 3, 3, 3, 5, 3, 3,
- 4, 6, 6, 1, 1, 1, 2, 2, 2, 3,
- 3, 2, 2, 2, 1, 3, 4, 2, 0, 3,
- 1, 1, 2, 2, 2, 2, 4, 4, 3, 4,
+ 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,
+ 1, 1, 1, 0, 1, 1, 0, 1, 1, 3,
+ 2, 2, 2, 2, 2, 4, 2, 2, 2, 3,
+ 2, 2, 1, 2, 1, 2, 4, 5, 2, 3,
+ 5, 6, 1, 1, 1, 7, 11, 8, 12, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
+ 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
+ 1, 1, 2, 2, 2, 7, 10, 1, 2, 1,
+ 7, 10, 1, 2, 2, 2, 3, 2, 2, 1,
+ 2, 7, 7, 4, 2, 1, 1, 4, 12, 2,
+ 1, 1, 0, 6, 8, 2, 3, 3, 3, 0,
+ 3, 4, 4, 4, 3, 3, 1, 3, 5, 4,
+ 4, 3, 3, 2, 2, 2, 2, 1, 2, 2,
+ 2, 2, 2, 2, 2, 1, 2, 2, 3, 7,
+ 2, 2, 1, 3, 2, 2, 1, 2, 8, 2,
+ 2, 2, 2, 1, 4, 7, 2, 2, 1, 1,
+ 1, 2, 1, 1, 2, 1, 0, 2, 2, 1,
+ 1, 1, 2, 2, 2, 1, 0, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 1, 4,
+ 5, 0, 2, 1, 5, 2, 2, 2, 1, 1,
+ 1, 2, 1, 2, 1, 1, 1, 1, 1, 0,
+ 1, 0, 1, 5, 6, 3, 4, 4, 3, 6,
+ 2, 1, 4, 1, 1, 4, 6, 7, 5, 1,
+ 1, 4, 5, 1, 1, 1, 3, 0, 1, 2,
+ 1, 5, 1, 2, 1, 4, 3, 2, 1, 2,
+ 1, 5, 2, 1, 1, 3, 2, 0, 1, 1,
+ 4, 2, 0, 1, 0, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 2, 2, 0, 1, 1, 6, 1, 1, 1,
+ 1, 2, 2, 1, 1, 1, 1, 2, 1, 1,
+ 1, 2, 1, 1, 2, 2, 2, 0, 1, 0,
+ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
+ 1, 3, 1, 2, 2, 4, 6, 1, 10, 1,
+ 2, 3, 3, 2, 2, 2, 2, 3, 4, 4,
+ 4, 3, 3, 5, 4, 4, 4, 3, 3, 3,
+ 3, 2, 2, 4, 3, 3, 3, 4, 4, 4,
+ 4, 5, 4, 6, 7, 4, 4, 5, 2, 3,
+ 2, 2, 3, 3, 3, 3, 4, 3, 5, 6,
+ 3, 3, 4, 3, 3, 3, 3, 3, 5, 3,
+ 3, 4, 3, 2, 2, 1, 3, 4, 4, 4,
+ 4, 4, 6, 4, 4, 5, 4, 4, 4, 4,
+ 5, 4, 6, 7, 4, 4, 5, 5, 5, 5,
+ 5, 5, 7, 5, 5, 6, 5, 5, 5, 5,
+ 6, 5, 7, 8, 5, 5, 6, 3, 3, 3,
+ 3, 3, 5, 3, 3, 4, 2, 2, 3, 3,
+ 3, 3, 4, 3, 5, 6, 3, 3, 4, 3,
+ 3, 3, 3, 3, 5, 3, 3, 4, 6, 6,
+ 1, 1, 1, 2, 2, 2, 3, 3, 2, 2,
+ 2, 1, 3, 4, 2, 0, 3, 1, 1, 2,
+ 2, 2, 2, 4, 4, 4, 4, 5, 3, 4,
5, 7, 8, 6, 8, 9, 6, 6, 7, 10,
11, 12, 9, 5, 5, 6, 3, 5, 5, 5,
6, 5, 4, 9, 10, 11, 9, 6, 6, 6,
@@ -2123,49 +2146,48 @@ static const yytype_uint8 yyr2[] =
4, 4, 5, 4, 4, 5, 3, 4, 4, 4,
6, 7, 8, 9, 6, 10, 11, 12, 9, 3,
2, 3, 5, 6, 7, 4, 3, 3, 6, 6,
- 6, 7, 4, 7, 10, 5, 5, 6, 4, 4,
- 3, 6, 7, 7, 2, 3, 3, 3, 4, 2,
- 2, 4, 7, 10, 3, 1, 3, 2, 2, 2,
- 2, 3, 5, 4, 5, 2, 7, 3, 2, 2,
- 3, 2, 2, 2, 3, 2, 3, 4, 3, 3,
- 5, 6, 4, 2, 3, 2, 2, 4, 3, 3,
- 2, 3, 1, 3, 1, 2, 2, 2, 1, 1,
- 1, 1, 2, 1, 2, 2, 1, 2, 2, 1,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 1, 2, 2, 2, 3, 5, 7, 10, 7, 9,
- 12, 7, 9, 12, 6, 6, 7, 9, 5, 7,
- 10, 6, 6, 6, 6, 6, 6, 6, 5, 6,
- 7, 2, 2, 3, 4, 4, 4, 2, 4, 4,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
- 1, 3, 3, 2, 2, 3, 4, 4, 5, 4,
- 5, 4, 5, 3, 4, 5, 4, 5, 3, 5,
- 4, 5, 2, 3, 3, 4, 5, 3, 3, 3,
- 4, 5, 4, 5, 4, 5, 4, 5, 3, 4,
- 5, 4, 5, 2, 2, 3, 5, 4, 6, 6,
- 3, 6, 4, 6, 5, 3, 4, 5, 3, 5,
- 3, 5, 3, 2, 3, 5, 4, 6, 3, 2,
- 2, 3, 2, 3, 2, 3, 5, 4, 6, 2,
- 2, 2, 1, 4, 1, 2, 2, 2, 2, 2,
- 2, 2, 3, 2, 3, 2, 3, 1, 1, 1,
- 1, 1, 0, 2, 0, 2, 0, 1, 0, 0,
- 1, 1, 1, 7, 8, 2, 4, 2, 4, 6,
- 2, 1, 1, 3, 3, 1, 3, 4, 2, 1,
- 3, 3, 4, 3, 3, 3, 1, 1, 1, 1,
+ 6, 7, 4, 4, 6, 9, 4, 3, 6, 7,
+ 7, 2, 3, 3, 3, 4, 2, 2, 4, 7,
+ 10, 3, 1, 3, 2, 2, 2, 2, 3, 5,
+ 4, 5, 2, 7, 3, 2, 2, 3, 2, 2,
+ 2, 3, 2, 3, 4, 3, 3, 5, 6, 4,
+ 2, 3, 2, 2, 4, 3, 3, 2, 3, 1,
+ 3, 1, 2, 2, 2, 1, 1, 1, 1, 2,
+ 1, 2, 2, 1, 2, 2, 1, 2, 1, 1,
+ 1, 1, 1, 1, 1, 1, 0, 1, 2, 2,
+ 2, 3, 5, 7, 7, 6, 6, 6, 5, 6,
+ 6, 6, 6, 6, 6, 6, 10, 7, 7, 7,
+ 9, 9, 10, 12, 12, 2, 2, 3, 4, 4,
+ 4, 2, 4, 4, 1, 1, 1, 1, 1, 1,
+ 1, 1, 2, 1, 1, 3, 3, 7, 5, 3,
+ 3, 2, 2, 3, 4, 4, 5, 4, 5, 4,
+ 5, 3, 4, 5, 4, 5, 3, 5, 4, 5,
+ 2, 3, 3, 4, 5, 3, 3, 3, 4, 5,
+ 4, 5, 4, 5, 4, 5, 3, 4, 5, 4,
+ 5, 2, 2, 3, 5, 4, 6, 6, 3, 3,
+ 4, 6, 5, 4, 5, 2, 3, 5, 4, 6,
+ 3, 2, 2, 3, 2, 3, 2, 3, 5, 4,
+ 6, 2, 2, 2, 1, 4, 1, 2, 2, 2,
+ 2, 2, 2, 2, 3, 2, 3, 2, 3, 1,
+ 1, 1, 1, 1, 0, 2, 0, 2, 0, 1,
+ 0, 0, 1, 1, 1, 7, 8, 2, 4, 2,
+ 4, 6, 2, 1, 1, 3, 3, 1, 3, 4,
+ 2, 1, 3, 3, 4, 3, 3, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 0, 0, 2, 1, 3, 1, 3, 1, 2,
- 2, 1, 3, 0, 0, 2, 2, 1, 3, 5,
- 1, 2, 2, 2, 1, 1, 1, 1, 4, 2,
- 3, 3, 2, 3, 2, 2, 2, 3, 3, 3,
- 2, 3, 1, 3, 3, 1, 2, 2, 2, 2,
- 1, 1, 1, 1, 2, 2, 3, 3, 1, 2,
- 3, 3, 1, 2, 1, 1, 2, 2, 4, 1,
- 2, 2, 2, 3, 1, 1, 1, 2, 2, 3,
- 3, 3, 2, 2, 2, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 2, 1, 1, 1, 1, 0,
- 5, 1, 6, 3, 1, 2, 2, 3, 3, 2,
- 2, 2, 2, 2, 2, 3, 2, 2, 3, 1,
- 3, 3, 1, 2, 5, 6, 6, 2, 1, 2,
- 2, 5, 6, 6
+ 1, 1, 2, 0, 0, 2, 1, 3, 1, 3,
+ 1, 2, 2, 1, 3, 0, 0, 2, 2, 1,
+ 3, 5, 1, 2, 2, 2, 1, 1, 1, 1,
+ 4, 2, 3, 3, 2, 3, 2, 2, 2, 3,
+ 3, 3, 2, 3, 1, 3, 3, 1, 2, 2,
+ 2, 2, 1, 1, 1, 1, 2, 2, 3, 3,
+ 1, 2, 3, 3, 1, 2, 1, 1, 2, 2,
+ 4, 1, 2, 2, 2, 3, 1, 1, 1, 2,
+ 2, 2, 3, 3, 3, 2, 2, 2, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 2, 1, 1,
+ 1, 1, 0, 5, 1, 6, 3, 1, 2, 2,
+ 3, 3, 2, 2, 2, 2, 2, 2, 3, 2,
+ 2, 3, 1, 3, 3, 1, 2, 5, 6, 6,
+ 2, 1, 2, 2, 5, 6, 6
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -2173,283 +2195,283 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 0, 0, 0, 5, 6, 0, 0, 0, 0, 258,
+ 0, 0, 0, 5, 6, 0, 0, 0, 0, 272,
0, 0, 0, 0, 0, 0, 0, 18, 0, 0,
- 0, 0, 0, 969, 0, 0, 0, 0, 0, 0,
- 969, 31, 0, 0, 0, 36, 0, 0, 39, 1109,
+ 0, 0, 0, 981, 0, 0, 0, 0, 0, 0,
+ 981, 31, 0, 0, 0, 36, 0, 0, 39, 1122,
41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
- 0, 0, 7, 0, 233, 235, 0, 0, 8, 132,
- 134, 127, 128, 129, 133, 130, 131, 238, 9, 0,
- 0, 0, 0, 0, 245, 0, 0, 0, 0, 10,
- 46, 47, 0, 0, 0, 0, 265, 0, 11, 59,
+ 0, 0, 7, 0, 247, 249, 0, 0, 8, 132,
+ 134, 127, 128, 129, 133, 130, 131, 252, 9, 0,
+ 0, 0, 0, 0, 259, 0, 0, 0, 0, 10,
+ 46, 47, 0, 0, 0, 0, 279, 0, 11, 59,
95, 0, 125, 94, 67, 92, 0, 64, 66, 62,
126, 93, 63, 0, 97, 98, 99, 100, 101, 102,
103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 60, 61, 65, 272, 135, 96, 0, 12,
+ 123, 124, 60, 61, 65, 286, 135, 96, 0, 12,
13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2, 48, 0, 14, 0, 0, 332, 283, 0,
- 347, 0, 0, 0, 0, 0, 0, 291, 0, 420,
- 0, 0, 0, 0, 969, 0, 298, 0, 302, 0,
- 0, 0, 68, 0, 0, 309, 0, 0, 436, 68,
- 15, 0, 443, 16, 446, 461, 448, 449, 450, 451,
- 463, 453, 454, 455, 0, 457, 458, 0, 0, 17,
- 19, 0, 476, 0, 0, 0, 481, 0, 20, 0,
- 0, 0, 21, 624, 22, 0, 0, 0, 0, 0,
- 0, 625, 23, 972, 970, 971, 0, 1030, 0, 0,
- 0, 25, 0, 1037, 1036, 1035, 1034, 27, 0, 0,
- 0, 0, 0, 135, 0, 28, 0, 1055, 0, 1052,
- 29, 0, 0, 0, 0, 30, 0, 0, 0, 0,
- 33, 0, 0, 1079, 34, 0, 0, 35, 1106, 1105,
- 1107, 1108, 37, 0, 0, 0, 0, 0, 0, 38,
- 0, 0, 1111, 40, 0, 0, 42, 0, 0, 0,
- 0, 135, 43, 1132, 44, 0, 0, 45, 1, 4,
- 188, 0, 180, 0, 0, 182, 0, 190, 183, 187,
- 198, 199, 184, 200, 0, 186, 0, 0, 207, 217,
- 220, 219, 218, 216, 206, 210, 214, 215, 205, 0,
- 0, 0, 208, 0, 0, 0, 209, 0, 0, 0,
- 234, 0, 239, 251, 252, 0, 240, 241, 135, 0,
- 968, 243, 244, 246, 0, 0, 0, 250, 0, 85,
- 86, 87, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 261, 0, 0, 0, 0, 0, 138,
- 144, 136, 137, 139, 142, 145, 141, 140, 143, 0,
- 0, 49, 54, 55, 56, 57, 50, 51, 52, 58,
- 53, 0, 279, 0, 322, 318, 314, 315, 319, 316,
- 321, 280, 334, 327, 331, 326, 337, 336, 335, 333,
- 281, 325, 0, 282, 0, 349, 284, 0, 365, 354,
- 367, 355, 356, 358, 0, 360, 361, 135, 285, 0,
- 0, 0, 0, 286, 0, 0, 135, 287, 379, 135,
- 377, 288, 135, 380, 289, 0, 135, 0, 290, 400,
- 0, 398, 413, 0, 0, 0, 404, 396, 0, 406,
- 418, 409, 292, 421, 293, 0, 0, 0, 389, 0,
- 391, 390, 296, 385, 386, 0, 297, 0, 422, 423,
- 424, 300, 301, 425, 303, 0, 426, 427, 428, 305,
- 69, 70, 72, 71, 429, 306, 430, 431, 307, 433,
- 434, 435, 432, 308, 0, 0, 439, 0, 312, 441,
- 313, 135, 462, 447, 464, 465, 466, 452, 467, 469,
- 468, 470, 456, 459, 474, 0, 0, 471, 460, 0,
- 0, 478, 477, 0, 0, 0, 0, 0, 0, 488,
- 0, 0, 0, 0, 0, 489, 0, 623, 0, 490,
- 0, 628, 627, 626, 0, 631, 0, 0, 809, 0,
- 0, 0, 634, 638, 640, 641, 0, 0, 0, 745,
- 0, 0, 0, 782, 0, 0, 0, 0, 0, 0,
- 0, 784, 0, 0, 0, 24, 1031, 1032, 1033, 26,
- 0, 0, 0, 0, 1044, 1045, 0, 135, 0, 1042,
- 1039, 0, 0, 0, 135, 1060, 1063, 1061, 1062, 1056,
- 1057, 1058, 1059, 0, 0, 32, 1076, 1077, 0, 1084,
- 1086, 1085, 1081, 1082, 1080, 0, 0, 0, 1087, 0,
- 0, 0, 1088, 1104, 176, 1075, 1074, 177, 178, 179,
- 0, 0, 0, 0, 0, 1116, 1129, 1119, 0, 0,
- 1122, 0, 0, 1121, 1120, 146, 1138, 0, 1137, 1133,
- 189, 185, 0, 194, 0, 191, 0, 223, 226, 227,
- 225, 224, 221, 222, 213, 212, 211, 228, 230, 229,
- 0, 0, 0, 0, 0, 242, 0, 1009, 255, 0,
- 0, 135, 262, 91, 88, 89, 90, 135, 264, 263,
- 0, 0, 0, 0, 0, 0, 0, 277, 0, 273,
- 271, 270, 278, 317, 0, 0, 320, 338, 339, 328,
- 329, 340, 342, 341, 330, 344, 343, 0, 348, 362,
- 363, 364, 352, 366, 353, 368, 359, 357, 351, 0,
- 0, 0, 0, 0, 135, 376, 146, 146, 146, 135,
- 0, 0, 135, 414, 399, 0, 73, 410, 0, 403,
- 405, 135, 419, 408, 294, 0, 0, 393, 0, 0,
- 0, 0, 859, 860, 0, 962, 0, 942, 0, 944,
- 0, 964, 966, 0, 957, 299, 0, 0, 0, 440,
- 437, 438, 146, 473, 472, 0, 487, 475, 0, 0,
- 0, 0, 0, 0, 164, 164, 158, 0, 0, 0,
- 0, 0, 0, 0, 0, 161, 161, 158, 0, 0,
- 158, 0, 0, 0, 0, 0, 523, 548, 0, 0,
- 524, 0, 521, 0, 0, 629, 630, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 687,
- 0, 0, 0, 0, 0, 710, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 734, 0, 0, 739, 740,
- 0, 0, 0, 761, 763, 762, 0, 765, 0, 0,
- 773, 775, 776, 810, 0, 0, 0, 0, 632, 633,
- 853, 851, 856, 855, 854, 852, 857, 0, 637, 0,
- 642, 0, 850, 0, 643, 644, 645, 0, 0, 0,
- 0, 0, 747, 0, 0, 748, 982, 0, 985, 981,
- 0, 0, 0, 749, 0, 750, 1001, 1006, 1003, 1002,
- 1000, 1007, 1004, 998, 1005, 999, 1008, 0, 0, 755,
- 0, 0, 0, 1014, 0, 1016, 758, 0, 1018, 759,
- 780, 0, 0, 0, 785, 786, 787, 1043, 0, 0,
- 1050, 1046, 0, 0, 0, 1041, 1040, 1054, 1053, 0,
- 1068, 0, 0, 1064, 0, 1072, 0, 0, 1065, 0,
- 1083, 172, 172, 172, 0, 0, 0, 1092, 0, 0,
- 0, 1094, 0, 0, 0, 1093, 175, 0, 1114, 1113,
- 0, 1117, 0, 135, 1123, 1124, 0, 1126, 1127, 0,
- 147, 148, 1118, 1139, 1140, 0, 181, 0, 195, 0,
- 0, 0, 0, 0, 0, 0, 0, 135, 0, 0,
- 0, 0, 0, 0, 0, 0, 1010, 989, 0, 996,
- 997, 0, 0, 249, 0, 0, 0, 0, 266, 0,
- 276, 0, 275, 324, 323, 0, 0, 0, 0, 0,
- 135, 371, 0, 146, 374, 68, 68, 0, 0, 0,
- 146, 0, 77, 76, 415, 402, 0, 412, 149, 0,
- 0, 47, 0, 392, 0, 864, 0, 0, 0, 0,
- 0, 0, 882, 0, 0, 0, 0, 0, 0, 903,
- 904, 0, 0, 0, 0, 0, 923, 0, 929, 930,
- 932, 934, 0, 939, 949, 950, 951, 0, 953, 958,
- 960, 961, 959, 858, 0, 941, 0, 940, 863, 0,
- 0, 945, 947, 0, 946, 967, 948, 955, 0, 0,
- 310, 0, 0, 485, 486, 0, 483, 479, 0, 164,
- 164, 164, 165, 166, 494, 495, 160, 159, 0, 164,
- 164, 164, 0, 500, 161, 164, 164, 164, 162, 163,
- 164, 164, 0, 164, 164, 0, 161, 0, 522, 0,
- 0, 0, 547, 0, 546, 0, 0, 599, 0, 600,
- 0, 0, 0, 0, 161, 161, 158, 0, 0, 158,
- 0, 0, 0, 83, 84, 82, 648, 0, 0, 0,
- 0, 0, 803, 801, 796, 0, 806, 790, 807, 793,
- 805, 799, 788, 802, 791, 789, 808, 804, 0, 0,
- 666, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2, 48, 0, 14, 0, 0, 346, 297, 0,
+ 361, 0, 0, 0, 0, 0, 0, 305, 0, 434,
+ 0, 0, 0, 0, 981, 0, 312, 0, 316, 0,
+ 0, 0, 68, 0, 0, 323, 0, 0, 450, 68,
+ 15, 0, 457, 16, 460, 0, 477, 463, 464, 465,
+ 466, 479, 468, 469, 470, 0, 472, 473, 0, 0,
+ 17, 19, 0, 492, 0, 0, 0, 497, 0, 20,
+ 0, 0, 0, 0, 21, 641, 22, 0, 0, 0,
+ 0, 0, 0, 642, 23, 984, 982, 983, 0, 1042,
+ 0, 0, 0, 25, 0, 1049, 1048, 1047, 1046, 27,
+ 0, 0, 0, 0, 0, 135, 0, 28, 0, 1067,
+ 0, 1064, 29, 0, 0, 0, 0, 30, 0, 0,
+ 0, 0, 33, 0, 0, 1091, 34, 0, 0, 0,
+ 35, 1119, 1118, 1120, 1121, 37, 0, 0, 0, 0,
+ 0, 0, 38, 0, 0, 1124, 40, 0, 0, 42,
+ 0, 0, 0, 0, 135, 43, 1145, 44, 0, 0,
+ 45, 1, 4, 202, 0, 194, 0, 0, 196, 0,
+ 204, 197, 201, 212, 213, 198, 214, 0, 200, 0,
+ 0, 221, 231, 234, 233, 232, 230, 220, 224, 228,
+ 229, 219, 0, 0, 0, 222, 0, 0, 0, 223,
+ 0, 0, 0, 248, 0, 253, 265, 266, 0, 254,
+ 255, 135, 0, 980, 257, 258, 260, 0, 0, 0,
+ 264, 0, 85, 86, 87, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 275, 0, 0, 0,
+ 0, 0, 138, 144, 136, 137, 139, 142, 145, 141,
+ 140, 143, 0, 0, 49, 54, 55, 56, 57, 50,
+ 51, 52, 58, 53, 0, 293, 0, 336, 332, 328,
+ 329, 333, 330, 335, 294, 348, 341, 345, 340, 351,
+ 350, 349, 347, 295, 339, 0, 296, 0, 363, 298,
+ 0, 379, 368, 381, 369, 370, 372, 0, 374, 375,
+ 135, 299, 0, 0, 0, 0, 300, 0, 0, 135,
+ 301, 393, 135, 391, 302, 135, 394, 303, 0, 135,
+ 0, 304, 414, 0, 412, 427, 0, 0, 0, 418,
+ 410, 0, 420, 432, 423, 306, 435, 307, 0, 0,
+ 0, 403, 0, 405, 404, 310, 399, 400, 0, 311,
+ 0, 436, 437, 438, 314, 315, 439, 317, 0, 440,
+ 441, 442, 319, 69, 70, 72, 71, 443, 320, 444,
+ 445, 321, 447, 448, 449, 446, 322, 0, 0, 453,
+ 0, 326, 455, 327, 135, 0, 461, 478, 462, 480,
+ 481, 482, 467, 483, 485, 484, 486, 471, 474, 490,
+ 0, 0, 487, 475, 0, 0, 494, 493, 0, 0,
+ 0, 0, 0, 0, 504, 0, 0, 0, 0, 0,
+ 505, 0, 640, 0, 506, 0, 0, 645, 644, 643,
+ 0, 648, 0, 0, 826, 0, 0, 0, 651, 655,
+ 657, 658, 0, 0, 0, 762, 0, 0, 0, 799,
+ 0, 0, 0, 0, 0, 0, 0, 801, 0, 0,
+ 0, 24, 1043, 1044, 1045, 26, 0, 0, 0, 0,
+ 1056, 1057, 0, 135, 0, 1054, 1051, 0, 0, 0,
+ 135, 1072, 1075, 1073, 1074, 1068, 1069, 1070, 1071, 0,
+ 0, 32, 1088, 1089, 0, 1096, 1098, 1097, 1093, 1094,
+ 1092, 0, 0, 0, 1099, 0, 0, 0, 1100, 1101,
+ 1117, 190, 1087, 1086, 191, 192, 193, 0, 0, 0,
+ 0, 0, 1129, 1142, 1132, 0, 0, 1135, 0, 0,
+ 1134, 1133, 146, 1151, 0, 1150, 1146, 203, 199, 0,
+ 208, 0, 205, 0, 237, 240, 241, 239, 238, 235,
+ 236, 227, 226, 225, 242, 244, 243, 0, 0, 0,
+ 0, 0, 256, 0, 1021, 269, 0, 0, 135, 276,
+ 91, 88, 89, 90, 135, 278, 277, 0, 0, 0,
+ 0, 0, 0, 0, 291, 0, 287, 285, 284, 292,
+ 331, 0, 0, 334, 352, 353, 342, 343, 354, 356,
+ 355, 344, 358, 357, 0, 362, 376, 377, 378, 366,
+ 380, 367, 382, 373, 371, 365, 0, 0, 0, 0,
+ 0, 135, 390, 146, 146, 146, 135, 0, 0, 135,
+ 428, 413, 0, 73, 424, 0, 417, 419, 135, 433,
+ 422, 308, 0, 0, 407, 0, 0, 0, 0, 873,
+ 874, 0, 974, 0, 954, 0, 956, 0, 976, 978,
+ 0, 969, 313, 0, 0, 0, 454, 451, 452, 146,
+ 476, 489, 488, 0, 503, 491, 0, 0, 0, 0,
+ 0, 0, 164, 164, 158, 0, 0, 0, 0, 0,
+ 0, 0, 0, 161, 161, 158, 0, 0, 158, 0,
+ 0, 0, 0, 0, 540, 565, 0, 0, 541, 0,
+ 538, 0, 0, 507, 646, 647, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 707,
+ 0, 0, 0, 0, 0, 730, 0, 0, 0, 0,
+ 0, 0, 0, 0, 751, 0, 0, 756, 757, 0,
+ 0, 0, 778, 780, 779, 0, 782, 0, 0, 790,
+ 792, 793, 827, 0, 0, 0, 0, 649, 650, 867,
+ 865, 870, 869, 868, 866, 871, 0, 654, 0, 659,
+ 0, 864, 0, 660, 661, 662, 0, 0, 0, 0,
+ 0, 764, 0, 0, 765, 994, 0, 997, 993, 0,
+ 0, 0, 766, 0, 767, 1013, 1018, 1015, 1014, 1012,
+ 1019, 1016, 1010, 1017, 1011, 1020, 0, 0, 772, 0,
+ 0, 0, 1026, 0, 1028, 775, 0, 1030, 776, 797,
+ 0, 0, 0, 802, 803, 804, 1055, 0, 0, 1062,
+ 1058, 0, 0, 0, 1053, 1052, 1066, 1065, 0, 1080,
+ 0, 0, 1076, 0, 1084, 0, 0, 1077, 0, 1095,
+ 186, 186, 186, 0, 0, 0, 1105, 0, 0, 0,
+ 1107, 0, 0, 0, 1106, 189, 0, 1127, 1126, 0,
+ 1130, 0, 135, 1136, 1137, 0, 1139, 1140, 0, 147,
+ 148, 1131, 1152, 1153, 0, 195, 0, 209, 0, 0,
+ 0, 0, 0, 0, 0, 0, 135, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1022, 1001, 0, 1008, 1009,
+ 0, 0, 263, 0, 0, 0, 0, 280, 0, 290,
+ 0, 289, 338, 337, 0, 0, 0, 0, 0, 135,
+ 385, 0, 146, 388, 68, 68, 0, 0, 0, 146,
+ 0, 77, 76, 429, 416, 0, 426, 149, 0, 0,
+ 47, 0, 406, 0, 0, 882, 0, 0, 0, 0,
+ 0, 0, 900, 0, 0, 0, 0, 0, 0, 921,
+ 922, 0, 0, 0, 0, 935, 0, 941, 942, 944,
+ 946, 0, 951, 961, 962, 963, 0, 965, 970, 972,
+ 973, 971, 872, 0, 953, 0, 952, 881, 0, 0,
+ 957, 959, 0, 958, 979, 960, 967, 0, 0, 324,
+ 0, 0, 501, 502, 0, 499, 495, 0, 164, 164,
+ 164, 165, 166, 511, 512, 160, 159, 0, 164, 164,
+ 164, 0, 517, 161, 164, 164, 164, 162, 163, 164,
+ 164, 0, 164, 164, 0, 161, 0, 539, 0, 0,
+ 0, 564, 0, 563, 0, 0, 616, 0, 617, 0,
+ 0, 0, 0, 161, 161, 158, 0, 0, 158, 0,
+ 0, 0, 183, 181, 182, 180, 0, 0, 83, 84,
+ 82, 668, 0, 0, 0, 0, 0, 820, 818, 813,
+ 0, 823, 807, 824, 810, 822, 816, 805, 819, 808,
+ 806, 825, 821, 0, 0, 686, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 696, 0, 0, 0, 0, 709, 711, 0,
- 0, 717, 716, 0, 0, 0, 0, 0, 135, 0,
- 0, 0, 0, 730, 0, 0, 735, 736, 737, 0,
- 0, 0, 744, 760, 764, 766, 769, 768, 0, 0,
- 0, 774, 811, 813, 0, 812, 635, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 968, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 716, 0, 0,
+ 0, 0, 729, 731, 0, 0, 737, 736, 0, 0,
+ 170, 0, 0, 135, 0, 0, 747, 0, 0, 752,
+ 753, 754, 0, 0, 0, 761, 777, 781, 783, 786,
+ 785, 0, 0, 0, 791, 828, 830, 0, 829, 652,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 980,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 639, 0, 0, 0, 0, 746, 0, 135,
- 0, 977, 975, 0, 0, 135, 0, 980, 783, 751,
- 0, 0, 0, 757, 0, 0, 1019, 778, 779, 0,
- 781, 1049, 1051, 1048, 1047, 1038, 0, 0, 1069, 0,
- 0, 1073, 1078, 173, 174, 1090, 1089, 1091, 167, 167,
- 167, 167, 167, 167, 167, 167, 167, 0, 1115, 0,
- 1131, 1130, 1125, 1128, 0, 0, 135, 0, 0, 0,
- 192, 0, 0, 0, 0, 0, 0, 0, 0, 253,
- 257, 256, 0, 0, 0, 0, 0, 0, 0, 0,
- 988, 0, 0, 0, 0, 267, 269, 268, 135, 274,
- 0, 0, 0, 372, 373, 146, 135, 0, 378, 381,
- 0, 0, 0, 68, 401, 75, 79, 74, 78, 417,
- 0, 411, 151, 152, 150, 68, 0, 0, 395, 387,
- 135, 865, 0, 0, 0, 873, 0, 135, 878, 0,
- 883, 884, 0, 887, 888, 889, 0, 0, 0, 898,
- 0, 905, 0, 0, 0, 910, 0, 0, 915, 0,
- 918, 0, 0, 920, 0, 922, 924, 0, 0, 928,
- 931, 933, 935, 0, 0, 952, 954, 861, 963, 862,
- 0, 965, 956, 0, 0, 444, 445, 0, 0, 484,
- 0, 491, 492, 493, 164, 497, 498, 499, 0, 0,
- 0, 504, 505, 158, 0, 0, 0, 164, 510, 511,
- 512, 513, 515, 161, 518, 519, 0, 164, 0, 0,
- 0, 161, 161, 158, 0, 0, 0, 0, 545, 0,
- 549, 0, 0, 0, 0, 0, 161, 161, 158, 0,
+ 0, 0, 0, 0, 656, 0, 0, 0, 0, 763,
+ 0, 135, 0, 989, 987, 0, 0, 135, 0, 992,
+ 800, 768, 0, 0, 0, 774, 0, 0, 1031, 795,
+ 796, 0, 798, 1061, 1063, 1060, 1059, 1050, 0, 0,
+ 1081, 0, 0, 1085, 1090, 187, 188, 1103, 1102, 1104,
+ 167, 167, 167, 167, 167, 167, 167, 167, 167, 0,
+ 1128, 0, 1144, 1143, 1138, 1141, 0, 0, 135, 0,
+ 0, 0, 206, 0, 0, 0, 0, 0, 0, 0,
+ 0, 267, 271, 270, 0, 0, 0, 0, 0, 0,
+ 0, 0, 1000, 0, 0, 0, 0, 281, 283, 282,
+ 135, 288, 0, 0, 0, 386, 387, 146, 135, 0,
+ 392, 395, 0, 0, 0, 68, 415, 75, 79, 74,
+ 78, 431, 0, 425, 151, 152, 150, 68, 0, 0,
+ 409, 401, 879, 0, 0, 880, 135, 883, 0, 0,
+ 0, 891, 0, 135, 896, 0, 901, 902, 0, 905,
+ 906, 907, 0, 0, 0, 916, 0, 923, 0, 0,
+ 0, 928, 929, 0, 0, 0, 936, 0, 0, 940,
+ 943, 945, 947, 0, 0, 964, 966, 875, 975, 876,
+ 0, 977, 968, 0, 0, 458, 459, 0, 0, 500,
+ 0, 508, 509, 510, 164, 514, 515, 516, 0, 0,
+ 0, 521, 522, 158, 0, 0, 0, 164, 527, 528,
+ 529, 530, 532, 161, 535, 536, 0, 164, 0, 0,
+ 0, 161, 161, 158, 0, 0, 0, 0, 562, 0,
+ 566, 0, 0, 0, 0, 0, 161, 161, 158, 0,
0, 158, 0, 0, 0, 0, 0, 161, 161, 158,
0, 0, 158, 0, 0, 0, 0, 0, 161, 161,
158, 0, 0, 158, 0, 0, 0, 0, 161, 161,
- 158, 0, 0, 0, 161, 525, 526, 527, 528, 530,
- 0, 533, 534, 0, 161, 0, 0, 135, 649, 0,
- 0, 0, 0, 0, 0, 0, 795, 792, 798, 797,
- 794, 800, 0, 0, 0, 0, 0, 135, 672, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 688, 689, 690, 0, 694, 691, 693, 0, 698,
- 697, 699, 0, 0, 0, 0, 0, 0, 135, 0,
- 135, 0, 715, 722, 0, 135, 0, 0, 728, 149,
- 0, 729, 135, 0, 135, 738, 741, 135, 0, 135,
- 0, 767, 772, 814, 636, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 841, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 842, 0, 0, 0, 0, 0, 646, 647, 135, 146,
- 0, 135, 135, 983, 984, 0, 986, 0, 753, 0,
- 135, 1015, 1017, 777, 1066, 1067, 1070, 1071, 169, 168,
- 1096, 1095, 1097, 1102, 1101, 1103, 1099, 1098, 1100, 1110,
- 0, 0, 135, 0, 1134, 0, 0, 196, 0, 193,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 991,
- 0, 994, 1028, 995, 993, 990, 135, 135, 0, 259,
- 128, 0, 345, 0, 369, 146, 149, 0, 0, 384,
- 397, 0, 407, 0, 388, 866, 149, 867, 149, 871,
- 149, 869, 135, 874, 149, 876, 146, 149, 880, 149,
- 885, 135, 890, 149, 892, 149, 894, 149, 896, 135,
- 899, 149, 901, 149, 135, 907, 0, 0, 149, 135,
- 912, 149, 916, 0, 149, 149, 135, 926, 149, 135,
- 937, 943, 0, 0, 442, 480, 0, 496, 501, 502,
- 503, 0, 507, 508, 509, 514, 164, 161, 520, 536,
- 537, 538, 539, 540, 0, 542, 543, 161, 0, 0,
- 0, 161, 161, 158, 0, 0, 0, 0, 0, 0,
- 161, 161, 158, 0, 0, 0, 0, 0, 0, 161,
- 161, 158, 0, 0, 0, 161, 164, 164, 164, 164,
- 164, 0, 164, 164, 0, 161, 161, 164, 164, 164,
- 164, 164, 0, 164, 164, 0, 161, 161, 601, 602,
- 603, 604, 606, 0, 609, 610, 0, 161, 612, 613,
- 614, 615, 616, 0, 618, 619, 161, 529, 161, 0,
- 535, 0, 0, 650, 149, 0, 0, 149, 0, 0,
- 0, 663, 149, 664, 667, 668, 149, 669, 671, 0,
+ 158, 0, 0, 0, 161, 542, 543, 544, 545, 547,
+ 0, 550, 551, 0, 161, 0, 0, 184, 185, 666,
+ 135, 665, 135, 669, 0, 0, 0, 0, 0, 0,
+ 0, 812, 809, 815, 814, 811, 817, 0, 0, 0,
+ 0, 0, 135, 692, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 708, 709, 710, 0,
+ 714, 711, 713, 0, 718, 717, 719, 0, 0, 0,
+ 0, 0, 0, 135, 0, 135, 0, 735, 176, 172,
+ 177, 171, 174, 173, 175, 742, 743, 0, 0, 0,
+ 746, 135, 0, 135, 755, 758, 135, 0, 135, 0,
+ 784, 789, 831, 653, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 855, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 856, 0,
+ 0, 0, 0, 0, 663, 664, 135, 146, 0, 135,
+ 135, 995, 996, 0, 998, 0, 770, 0, 135, 1027,
+ 1029, 794, 1078, 1079, 1082, 1083, 169, 168, 1109, 1108,
+ 1110, 1115, 1114, 1116, 1112, 1111, 1113, 1123, 0, 0,
+ 135, 0, 1147, 0, 0, 210, 0, 207, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1003, 0, 1006,
+ 1040, 1007, 1005, 1002, 135, 135, 0, 273, 128, 0,
+ 359, 0, 383, 146, 149, 0, 0, 398, 411, 0,
+ 421, 0, 402, 0, 0, 884, 149, 885, 149, 889,
+ 149, 887, 135, 892, 149, 894, 146, 149, 898, 149,
+ 903, 135, 908, 149, 910, 149, 912, 149, 914, 135,
+ 917, 149, 919, 149, 135, 925, 0, 149, 135, 930,
+ 149, 933, 149, 135, 938, 149, 135, 949, 955, 0,
+ 0, 456, 496, 0, 513, 518, 519, 520, 0, 524,
+ 525, 526, 531, 164, 161, 537, 553, 554, 555, 556,
+ 557, 0, 559, 560, 161, 0, 0, 0, 161, 161,
+ 158, 0, 0, 0, 0, 0, 0, 161, 161, 158,
+ 0, 0, 0, 0, 0, 0, 161, 161, 158, 0,
+ 0, 0, 161, 164, 164, 164, 164, 164, 0, 164,
+ 164, 0, 161, 161, 164, 164, 164, 164, 164, 0,
+ 164, 164, 0, 161, 161, 618, 619, 620, 621, 623,
+ 0, 626, 627, 0, 161, 629, 630, 631, 632, 633,
+ 0, 635, 636, 161, 546, 161, 0, 552, 0, 0,
+ 667, 670, 149, 0, 0, 149, 0, 0, 0, 683,
+ 149, 684, 687, 688, 149, 689, 691, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 712,
+ 715, 0, 149, 0, 0, 0, 732, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 692, 695, 0, 149, 0, 0, 0, 712, 0,
- 0, 0, 0, 0, 725, 0, 0, 0, 726, 0,
- 0, 0, 0, 0, 0, 770, 0, 0, 0, 0,
+ 787, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 135, 0,
- 0, 80, 0, 0, 848, 849, 146, 0, 0, 0,
- 978, 976, 987, 752, 754, 146, 1112, 1141, 0, 0,
- 1136, 1135, 197, 0, 0, 0, 231, 0, 0, 0,
- 0, 0, 992, 247, 248, 149, 346, 350, 370, 375,
- 0, 382, 416, 295, 868, 872, 870, 875, 877, 879,
- 881, 886, 891, 893, 895, 897, 900, 902, 906, 146,
- 149, 0, 914, 146, 917, 919, 921, 925, 146, 936,
- 146, 0, 311, 0, 506, 516, 164, 161, 544, 164,
- 164, 164, 164, 164, 0, 164, 164, 161, 590, 591,
- 592, 593, 594, 0, 596, 597, 161, 164, 164, 164,
- 164, 164, 0, 164, 164, 161, 164, 559, 560, 561,
- 562, 564, 161, 567, 568, 0, 164, 164, 579, 580,
- 581, 582, 584, 161, 587, 588, 0, 164, 605, 161,
- 0, 611, 161, 620, 531, 161, 621, 622, 653, 0,
- 149, 657, 656, 0, 135, 0, 665, 670, 135, 0,
- 677, 678, 679, 680, 684, 685, 681, 682, 683, 0,
- 149, 700, 704, 0, 135, 0, 0, 713, 719, 718,
- 149, 720, 0, 0, 727, 0, 731, 149, 0, 0,
- 771, 0, 170, 170, 0, 0, 170, 0, 170, 968,
- 0, 0, 170, 170, 0, 0, 0, 0, 0, 0,
- 968, 0, 843, 0, 0, 0, 968, 81, 0, 170,
- 0, 1012, 847, 0, 0, 1143, 1142, 0, 0, 201,
- 0, 236, 0, 0, 0, 1029, 260, 383, 908, 909,
- 911, 913, 927, 938, 304, 0, 517, 541, 550, 551,
- 552, 553, 554, 161, 556, 557, 164, 161, 598, 570,
- 571, 572, 573, 574, 161, 576, 577, 164, 563, 164,
- 161, 569, 583, 164, 161, 589, 607, 161, 617, 532,
- 149, 651, 658, 0, 0, 0, 0, 0, 686, 701,
- 0, 0, 0, 714, 721, 0, 723, 732, 733, 149,
- 742, 0, 171, 968, 968, 80, 0, 968, 0, 968,
- 815, 135, 0, 968, 968, 80, 0, 0, 968, 968,
- 0, 0, 828, 0, 846, 844, 845, 838, 968, 968,
- 1012, 1023, 0, 979, 756, 0, 0, 203, 0, 0,
- 0, 0, 164, 558, 595, 164, 578, 565, 164, 585,
- 164, 608, 652, 149, 654, 149, 0, 149, 0, 149,
- 702, 149, 0, 0, 0, 968, 836, 832, 968, 0,
- 837, 0, 831, 968, 0, 834, 833, 968, 0, 0,
- 824, 839, 968, 968, 135, 825, 835, 1023, 973, 0,
- 0, 1013, 1021, 0, 0, 0, 232, 154, 157, 156,
- 155, 153, 0, 482, 555, 575, 566, 586, 655, 662,
- 0, 676, 673, 703, 708, 0, 149, 0, 816, 821,
- 80, 0, 840, 0, 818, 80, 0, 0, 826, 829,
- 0, 974, 1025, 1027, 0, 1020, 0, 0, 237, 0,
- 659, 135, 674, 705, 724, 743, 968, 0, 0, 968,
- 0, 968, 149, 1026, 1022, 202, 0, 0, 135, 660,
- 675, 135, 706, 822, 0, 968, 819, 0, 827, 968,
- 204, 254, 661, 707, 80, 817, 80, 830, 968, 968,
- 823, 820
+ 0, 0, 135, 0, 0, 80, 0, 0, 862, 863,
+ 146, 0, 0, 0, 990, 988, 999, 769, 771, 146,
+ 1125, 1154, 0, 0, 1149, 1148, 211, 0, 0, 0,
+ 245, 0, 0, 0, 0, 0, 1004, 261, 262, 149,
+ 360, 364, 384, 389, 0, 396, 430, 309, 0, 878,
+ 886, 890, 888, 893, 895, 897, 899, 904, 909, 911,
+ 913, 915, 918, 920, 924, 146, 149, 932, 146, 934,
+ 937, 146, 948, 146, 0, 325, 0, 523, 533, 164,
+ 161, 561, 164, 164, 164, 164, 164, 0, 164, 164,
+ 161, 607, 608, 609, 610, 611, 0, 613, 614, 161,
+ 164, 164, 164, 164, 164, 0, 164, 164, 161, 164,
+ 576, 577, 578, 579, 581, 161, 584, 585, 0, 164,
+ 164, 596, 597, 598, 599, 601, 161, 604, 605, 0,
+ 164, 622, 161, 0, 628, 161, 637, 548, 161, 638,
+ 639, 673, 0, 149, 677, 676, 0, 135, 0, 685,
+ 690, 135, 0, 697, 698, 699, 700, 704, 705, 701,
+ 702, 703, 0, 149, 720, 724, 0, 135, 0, 0,
+ 733, 739, 738, 149, 740, 0, 744, 0, 748, 149,
+ 0, 0, 788, 0, 178, 178, 0, 0, 178, 0,
+ 178, 980, 0, 0, 178, 178, 0, 0, 0, 0,
+ 0, 0, 0, 857, 0, 0, 0, 980, 81, 0,
+ 178, 0, 1024, 861, 0, 0, 1156, 1155, 0, 0,
+ 215, 0, 250, 0, 0, 0, 1041, 274, 397, 0,
+ 926, 927, 931, 939, 950, 318, 0, 534, 558, 567,
+ 568, 569, 570, 571, 161, 573, 574, 164, 161, 615,
+ 587, 588, 589, 590, 591, 161, 593, 594, 164, 580,
+ 164, 161, 586, 600, 164, 161, 606, 624, 161, 634,
+ 549, 149, 671, 678, 0, 0, 0, 0, 0, 706,
+ 721, 0, 0, 0, 734, 741, 0, 749, 750, 149,
+ 759, 0, 179, 980, 980, 80, 0, 980, 0, 980,
+ 832, 135, 0, 980, 980, 80, 0, 0, 980, 980,
+ 0, 0, 860, 858, 859, 838, 980, 980, 1024, 1035,
+ 0, 991, 773, 0, 0, 217, 0, 0, 0, 877,
+ 0, 164, 575, 612, 164, 595, 582, 164, 602, 164,
+ 625, 672, 149, 674, 149, 0, 149, 0, 149, 722,
+ 149, 0, 149, 0, 980, 844, 840, 980, 0, 845,
+ 0, 839, 980, 0, 842, 841, 980, 0, 0, 836,
+ 835, 980, 135, 837, 843, 1035, 985, 0, 0, 1025,
+ 1033, 0, 0, 0, 246, 154, 157, 156, 155, 153,
+ 0, 498, 572, 592, 583, 603, 675, 682, 0, 696,
+ 693, 723, 728, 0, 745, 0, 849, 834, 80, 0,
+ 847, 0, 833, 80, 0, 848, 0, 986, 1037, 1039,
+ 0, 1032, 0, 0, 251, 0, 679, 135, 694, 725,
+ 760, 980, 0, 0, 980, 0, 149, 1038, 1034, 216,
+ 0, 0, 135, 680, 695, 135, 726, 851, 0, 980,
+ 850, 0, 980, 218, 268, 681, 727, 80, 852, 80,
+ 846, 980, 980, 854, 853
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 45, 382, 161, 145, 524, 1104, 2256, 2257, 383,
- 384, 385, 386, 146, 147, 148, 77, 409, 1042, 1475,
- 2442, 1188, 1200, 1184, 1770, 2343, 1395, 299, 55, 322,
- 328, 332, 335, 62, 352, 348, 344, 338, 702, 356,
- 68, 360, 78, 89, 366, 371, 1432, 98, 393, 149,
- 164, 200, 431, 746, 440, 441, 749, 754, 443, 756,
- 446, 758, 458, 762, 764, 766, 463, 467, 471, 474,
- 478, 506, 502, 1113, 492, 789, 784, 1105, 793, 494,
- 511, 514, 519, 525, 528, 533, 538, 820, 540, 203,
- 1537, 219, 543, 547, 552, 558, 228, 1177, 561, 232,
- 569, 1193, 575, 862, 1208, 856, 1578, 1214, 1212, 857,
- 1580, 860, 1217, 1219, 579, 234, 242, 615, 929, 1258,
- 918, 1352, 1740, 2059, 934, 927, 815, 1153, 1157, 1164,
- 1166, 717, 246, 942, 945, 953, 1066, 1067, 1068, 718,
- 2371, 2372, 976, 979, 2431, 2432, 2428, 2429, 2472, 1069,
- 1070, 251, 257, 265, 629, 624, 270, 275, 639, 645,
- 1003, 1008, 667, 280, 284, 652, 287, 658, 662, 1017,
- 1025, 1021, 292, 293, 303, 1029, 306, 312, 680, 683,
- 677, 314, 317, 688
+ -1, 45, 385, 161, 145, 527, 1113, 2267, 2268, 386,
+ 387, 388, 389, 146, 147, 148, 77, 412, 1051, 1487,
+ 2450, 1197, 1209, 1193, 1788, 1715, 2353, 1247, 1649, 1407,
+ 302, 55, 325, 331, 335, 338, 62, 355, 351, 347,
+ 341, 709, 359, 68, 363, 78, 89, 369, 374, 1444,
+ 98, 396, 149, 164, 200, 434, 753, 443, 444, 756,
+ 761, 446, 763, 449, 765, 461, 769, 771, 773, 466,
+ 470, 474, 477, 481, 509, 505, 1122, 495, 796, 791,
+ 1114, 800, 497, 514, 517, 522, 528, 531, 536, 541,
+ 827, 543, 203, 1547, 220, 546, 548, 552, 557, 563,
+ 229, 1186, 566, 234, 574, 1202, 580, 870, 1217, 864,
+ 1588, 1223, 1221, 865, 1590, 868, 1226, 1228, 584, 236,
+ 244, 621, 938, 1273, 927, 1364, 1758, 2073, 943, 936,
+ 822, 1162, 1166, 1173, 1175, 724, 248, 951, 954, 962,
+ 1075, 1076, 1077, 725, 2379, 2380, 985, 988, 2439, 2440,
+ 2436, 2437, 2478, 1078, 1079, 253, 259, 267, 635, 630,
+ 272, 277, 645, 651, 1012, 1017, 674, 282, 286, 658,
+ 290, 664, 668, 1026, 1034, 1030, 295, 296, 306, 1038,
+ 309, 315, 687, 690, 684, 317, 320, 695
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
@@ -2457,267 +2479,267 @@ static const yytype_int16 yydefgoto[] =
#define YYPACT_NINF -2314
static const yytype_int16 yypact[] =
{
- 5026, 107, 41, -2314, -2314, 704, 506, 397, -17, 27,
- 3730, 71, 892, 22, 5179, 48, 937, -2314, 71, 606,
- 717, -59, 42, 129, 166, 114, 436, 3012, 169, 609,
- 129, -2314, -31, 30, 56, -2314, 89, 815, -2314, 542,
- -2314, 52, 3836, 8, 105, 449, 472, 533, 234, 481,
- 497, 115, 508, 29, 459, -2314, -68, 68, 71, 0,
- 577, 571, -2314, 479, -2314, -2314, 37, 479, -2314, -2314,
- -2314, -2314, 479, -2314, -2314, -2314, -2314, -2314, -2314, -11,
- 523, 4711, 228, 518, 514, 539, 560, 574, 580, -2314,
- -2314, -2314, 479, 1098, 479, 479, 820, 479, -2314, -2314,
- -2314, 405, -2314, -2314, -2314, -2314, 4489, -2314, -2314, -2314,
- -2314, -2314, -2314, 479, -2314, -2314, -2314, -2314, -2314, -2314,
+ 4958, 95, 436, -2314, -2314, 686, 338, 694, 94, 424,
+ 2276, 29, 510, 76, 5005, 66, 1228, -2314, 29, 456,
+ 641, -76, 5, -7, 308, 131, 737, 3637, 32, 623,
+ -7, -2314, 105, 49, 347, -2314, 52, 559, -2314, 376,
+ -2314, 17, 1662, 19, 58, 128, 204, 145, -56, 384,
+ 448, 74, 476, -6, 104, -2314, -12, 37, 29, 26,
+ 739, 600, -2314, 820, -2314, -2314, 30, 820, -2314, -2314,
+ -2314, -2314, 820, -2314, -2314, -2314, -2314, -2314, -2314, 634,
+ 478, 4673, 220, 492, 493, 529, 540, 552, 565, -2314,
+ -2314, -2314, 820, 1129, 820, 820, 939, 820, -2314, -2314,
+ -2314, 400, -2314, -2314, -2314, -2314, 2471, -2314, -2314, -2314,
+ -2314, -2314, -2314, 820, -2314, -2314, -2314, -2314, -2314, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, -2314, 1316, -2314, 479, -2314,
- -2314, 71, 71, 71, 71, 71, 71, 71, 71, 71,
- 71, -2314, -2314, 489, -2314, 561, 1101, 23, -2314, 476,
- -23, 4133, 70, 4540, 4103, 4489, 3804, -2314, 413, 483,
- 641, 610, 2, 525, 129, 131, -2314, 634, -2314, 519,
- 475, 111, 713, 3, 478, -2314, 18, 631, -6, 713,
- -2314, 4711, -2314, -2314, -2314, 718, -2314, -2314, -2314, -2314,
- 684, -2314, -2314, -2314, 617, -2314, -2314, 4711, 3677, -2314,
- -2314, 61, -2314, 757, 766, 134, -2314, 479, -2314, 101,
- 10, 69, -2314, -2314, -2314, 779, 781, 71, 71, 479,
- 479, -2314, -2314, -2314, -2314, -2314, 1682, -2314, 787, 807,
- 479, -2314, 814, -2314, -2314, -2314, -2314, -2314, 479, 983,
- 71, 2264, 479, 1316, 479, -2314, 827, -2314, 3877, -2314,
- -2314, 584, 832, 835, 479, -2314, 278, 836, 4711, 839,
- -2314, 1025, 479, 760, -2314, 214, 682, -2314, -2314, -2314,
- -2314, -2314, -2314, 850, 71, 86, 858, 479, 479, -2314,
- 479, 633, 879, -2314, 479, 479, -2314, 886, 19, 46,
- 894, 1316, -2314, -2314, -2314, 635, 479, -2314, -2314, -2314,
- -2314, 479, -2314, 905, 906, -2314, 479, 885, -2314, -2314,
- -2314, -2314, -2314, -2314, 479, -2314, 553, 912, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, 479,
- 479, 479, -2314, 479, 916, 927, -2314, 479, 479, 479,
- -2314, 479, -2314, -2314, -2314, 931, -2314, -2314, 1316, 935,
- -2314, -2314, -2314, -2314, 946, 948, 4711, -2314, 479, -2314,
- -2314, -2314, 479, 945, 949, 949, 4711, 479, 479, 479,
- 479, 479, 479, -2314, 479, 4489, 1098, 479, 479, -2314,
- -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, 1098,
- 479, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- -2314, 958, -2314, 725, 589, -2314, -2314, -2314, -2314, -2314,
- -2314, -2314, -46, -2314, -2314, -2314, 809, -2314, 615, -2314,
- -2314, -2314, 968, -2314, 972, -2314, -2314, -49, 799, -2314,
- 821, -2314, -2314, -2314, 822, -2314, -2314, 1316, -2314, 479,
- 479, 3374, 479, -2314, 4711, 4711, 1316, -2314, -2314, 1316,
- -2314, -2314, 1316, -2314, -2314, 4711, 1316, 479, -2314, -2314,
- 4711, -2314, 985, 18, 811, 5, -2314, -2314, 813, 4711,
- 990, -2314, -2314, -2314, -2314, 994, 997, 1003, -2314, 825,
- -2314, -2314, -2314, -2314, -2314, 479, -2314, 454, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, 18, -2314, -2314, -2314, -2314,
+ -2314, -2314, -2314, -2314, -2314, -2314, 469, -2314, 820, -2314,
+ -2314, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, -2314, -2314, 507, -2314, 580, 1141, 179, -2314, 533,
+ 613, 4220, 98, 4611, 4556, 2471, 3958, -2314, 435, 505,
+ 720, 629, 8, 551, -7, 3, -2314, 669, -2314, 544,
+ 511, 134, 553, -49, 655, -2314, 14, 667, 48, 553,
+ -2314, 4673, -2314, -2314, -2314, 701, 755, -2314, -2314, -2314,
+ -2314, 845, -2314, -2314, -2314, 305, -2314, -2314, 4673, 4135,
+ -2314, -2314, 80, -2314, 785, 796, 466, -2314, 820, -2314,
+ 38, 468, 502, 803, -2314, -2314, -2314, 814, 826, 29,
+ 29, 820, 820, -2314, -2314, -2314, -2314, -2314, 2946, -2314,
+ 836, 849, 820, -2314, 842, -2314, -2314, -2314, -2314, -2314,
+ 820, 523, 29, 3766, 820, 469, 820, -2314, 858, -2314,
+ 2556, -2314, -2314, 23, 862, 870, 820, -2314, -28, 884,
+ 4673, 900, -2314, 817, 820, 804, -2314, 403, 550, 909,
+ -2314, -2314, -2314, -2314, -2314, -2314, 919, 29, 108, 928,
+ 820, 820, -2314, 820, 706, 965, -2314, 820, 820, -2314,
+ 967, 13, 56, 969, 469, -2314, -2314, -2314, 126, 820,
+ -2314, -2314, -2314, -2314, 820, -2314, 994, 1000, -2314, 820,
+ 598, -2314, -2314, -2314, -2314, -2314, -2314, 820, -2314, 645,
+ 1003, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, 820, 820, 820, -2314, 820, 1011, 1019, -2314,
+ 820, 820, 820, -2314, 820, -2314, -2314, -2314, 1021, -2314,
+ -2314, 469, 1025, -2314, -2314, -2314, -2314, 1030, 1036, 4673,
+ -2314, 820, -2314, -2314, -2314, 820, 1037, 1042, 1042, 4673,
+ 820, 820, 820, 820, 820, 820, -2314, 820, 2471, 1129,
+ 820, 820, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, 1129, 820, -2314, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, -2314, -2314, 1043, -2314, 802, 1, -2314, -2314,
+ -2314, -2314, -2314, -2314, -2314, 329, -2314, -2314, -2314, 895,
+ -2314, 664, -2314, -2314, -2314, 1055, -2314, 1057, -2314, -2314,
+ 35, 879, -2314, 896, -2314, -2314, -2314, 905, -2314, -2314,
+ 469, -2314, 820, 820, 3897, 820, -2314, 4673, 4673, 469,
+ -2314, -2314, 469, -2314, -2314, 469, -2314, -2314, 4673, 469,
+ 820, -2314, -2314, 4673, -2314, 1064, 14, 885, 9, -2314,
+ -2314, 901, 4673, 1079, -2314, -2314, -2314, -2314, 1084, 1089,
+ 1093, -2314, 916, -2314, -2314, -2314, -2314, -2314, 820, -2314,
+ 182, -2314, -2314, -2314, -2314, -2314, -2314, -2314, 14, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, -2314, 479, 1006, 805, 3877, -2314, -2314,
- -2314, 1316, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, 4711, 4711, -2314, -2314, 1010,
- 71, -2314, -2314, 1012, 1013, 837, 479, 192, 943, -2314,
- 503, 950, 4660, 416, 1030, -2314, 1026, -2314, 1033, -2314,
- 1035, -2314, -2314, -2314, 479, -2314, 4430, 1362, 426, 1046,
- 337, 959, -2314, -2314, -2314, 1038, 409, 1056, 20, 479,
- 296, 371, 25, 4711, 71, 1665, 517, 1, 154, 90,
- -3, -2314, 1049, 1054, 1059, -2314, -2314, -2314, -2314, -2314,
- 479, 479, 479, 479, -2314, -2314, 479, 1316, 479, -2314,
- 479, 1098, 479, 1076, 1316, -2314, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, 386, 389, -2314, -2314, -2314, 1080, -2314,
- -2314, -2314, -2314, 1002, -2314, 1090, 1094, 1081, -2314, 422,
- 429, 446, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- 479, 479, 1102, 479, 479, -2314, 3234, -2314, 625, 1115,
- -2314, 644, 1126, -2314, -2314, -14, 479, 479, -2314, 1122,
- -2314, -2314, 1134, 915, 479, 1128, 138, -2314, -2314, -2314,
+ -2314, -2314, -2314, -2314, -2314, -2314, -2314, 820, 1099, 892,
+ 2556, -2314, -2314, -2314, 469, 1102, -2314, -2314, -2314, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- 1137, 479, 479, 479, 4711, -2314, 1140, 2563, -2314, 1142,
- 1144, 1316, -2314, -2314, -2314, -2314, -2314, 1316, -2314, -2314,
- 479, 479, 479, 4711, 479, 1098, 479, -2314, 479, -2314,
- -2314, -2314, -2314, -2314, 1150, 1151, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, 496, -2314, 479, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, 4711,
- 4711, 4711, 1153, 479, 1316, -2314, -14, -14, -14, 1316,
- 1098, 479, 1316, -2314, -2314, 479, -25, 970, 1154, -2314,
- -2314, 1316, -2314, -2314, -2314, 1156, 1159, 764, 479, 5006,
- 342, 372, -2314, -2314, 479, 501, 868, -2314, 928, -2314,
- 1665, 547, 903, 427, -2314, -2314, 479, 479, 1163, -2314,
- -2314, -2314, -14, -2314, -2314, 4571, -2314, -2314, 1170, 1172,
- 479, 1176, 1179, 1180, -27, -27, -54, 1184, 1185, 1187,
- 1188, 942, 1192, 1195, 1196, 448, 448, -54, 1198, 1201,
- -54, 1202, 1205, 5180, 1206, 1209, -2314, -2314, 1210, 1211,
- -2314, 694, -2314, 1215, 1216, -2314, -2314, 1041, 987, 1004,
- 1008, 1133, 442, 1014, 1238, 158, 1118, 1145, 530, 803,
- 1212, 1027, 1028, 1149, 1246, 1058, 51, 36, 1007, 1029,
- 4460, 63, 1665, 1219, -97, 1061, 1254, 74, -2314, -2314,
- 215, 1257, 1261, -2314, -2314, -2314, 1262, 1074, 88, 1665,
- 1075, -2314, -2314, -2314, 71, 1269, 1270, 479, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, -2314, -2314, -4, -2314, 791,
- -2314, 479, -2314, 479, -2314, -2314, -2314, 479, 479, 479,
- 337, 4711, -2314, 1273, 812, -2314, -2314, 479, -2314, -2314,
- 479, 4489, 479, -2314, 4711, -2314, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, -2314, -2314, 71, 479, -2314,
- 479, 337, 1274, -2314, 479, 479, -2314, 71, -2314, -2314,
- -2314, 455, 1276, 1277, -2314, -2314, -2314, -2314, 479, 479,
- -2314, -2314, 1098, 479, 479, -2314, -2314, -2314, -2314, 479,
- -2314, 479, 1181, -2314, 479, -2314, 479, 1183, -2314, 1284,
- -2314, 368, 368, 368, 1285, 1286, 1290, -2314, 1291, 1292,
- 1294, -2314, 1296, 1299, 1295, -2314, -2314, 479, 1302, -2314,
- 479, -2314, 3877, 1316, -2314, -2314, 1303, -2314, -2314, 1304,
- -2314, -2314, -2314, -2314, 1283, 2264, -2314, 479, 1300, 479,
- 479, 479, 795, 1301, 1307, 479, 479, 1316, 112, 961,
- 986, 988, 989, 992, 999, 1001, 2563, -2314, 1015, -2314,
- -2314, 1308, 1312, -2314, 479, 1326, 1338, 1344, -2314, 4711,
- -2314, 479, -2314, -2314, -2314, 479, 479, 479, 1346, 1347,
- 1316, -2314, 4711, -14, -2314, 713, 713, 1098, 479, 1348,
- -14, 479, 58, 110, 470, -2314, 1351, -2314, 749, 479,
- 1349, 1357, 479, -2314, 1353, 4489, 1148, 1152, 1157, 92,
- 4489, 1160, -2314, 252, 1232, 94, 1165, 1166, 139, -2314,
- -2314, 53, 1204, 1124, 17, 179, 1665, -64, -2314, 1364,
- 1155, -2314, 466, -2314, -2314, -2314, -2314, 1665, 1193, -2314,
- -2314, -2314, -2314, -2314, 479, -2314, 479, -2314, -2314, 479,
- 479, -2314, -2314, 479, -2314, -2314, -2314, -2314, 1203, 479,
- -2314, 479, 91, -2314, -2314, 1365, 1385, -2314, 479, -27,
- -27, -27, -2314, -2314, -2314, -2314, -2314, -2314, 1386, -27,
- -27, -27, 225, -2314, 448, -27, -27, -27, -2314, -2314,
- -27, -27, 1387, -27, -27, 1389, 448, 425, -2314, 1367,
- 1391, 1392, -2314, 696, -2314, 723, 953, -2314, 1019, -2314,
- 1146, 1394, 1396, 1397, 448, 448, -54, 1399, 1403, -54,
- 1409, 1413, 1417, -2314, -2314, -2314, 4489, 910, 479, 1055,
- 1108, 619, -2314, -2314, -2314, 679, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, 1419, 479,
- -2314, 71, 1420, 479, 4711, 71, 1117, 1207, 1208, 190,
- 202, 1220, 226, 1158, 1418, 1426, 1427, 442, 1434, 1440,
- 1442, 1162, 864, 1444, 479, 1065, 1168, -2314, -2314, 71,
- 4489, -2314, -2314, 4489, 479, 1450, 479, 4711, 1316, 1098,
- 4711, 4489, 71, -2314, 4489, 4711, -2314, -2314, -2314, 71,
- 71, 4489, -2314, -2314, -2314, -2314, -2314, -2314, 4489, 479,
- 71, -2314, -2314, -2314, 479, -2314, -2314, 1451, 479, 1250,
- 193, 479, 1251, 479, 199, 479, -2314, 479, 1252, 1256,
- 479, 479, 479, 479, 479, 479, 479, 479, 16, 479,
- 479, 1259, -2314, 479, 479, 479, 479, -2314, 4711, 1316,
- 1457, 4711, 4711, 479, 479, 1316, 1098, -2314, -2314, 479,
- 479, 479, 4711, -2314, 479, 479, -2314, -2314, -2314, 1464,
- -2314, -2314, -2314, -2314, -2314, -2314, 479, 479, -2314, 479,
- 479, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -26, -26,
- -26, -26, -26, -26, -26, -26, -26, 479, -2314, 479,
- -2314, -2314, -2314, -2314, 2264, 479, 1316, 479, 479, 479,
- -2314, 479, 479, 1465, 479, 1466, 1470, 479, 479, -2314,
- -2314, -2314, 1473, 442, 1474, 1476, 1477, 1478, 1479, 1483,
- -2314, 71, 4711, 4711, 479, -2314, -2314, -2314, 1316, -2314,
- 399, 479, 399, -2314, -2314, -14, 1316, 4711, -2314, -2314,
- 479, 479, 1484, 713, -2314, -2314, -2314, -2314, -2314, -2314,
- 479, -2314, -2314, -2314, -2314, 713, 479, 1485, -2314, -2314,
- 1316, -2314, 4489, 4489, 4489, 4489, 4489, 1316, -2314, 4489,
- -2314, -2314, 4489, -2314, -2314, 4489, 4489, 4489, 4489, 4489,
- 4489, -2314, 4711, 4489, 479, -2314, 1486, 4711, -2314, 4489,
- -2314, 4489, 1487, -2314, 4711, -2314, -2314, 4711, 4489, -2314,
- -2314, -2314, -2314, 4711, 4489, -2314, -2314, -2314, -2314, -2314,
- 479, -2314, -2314, 1489, 479, -2314, -2314, 1492, 1490, -2314,
- 479, -2314, -2314, -2314, -27, -2314, -2314, -2314, 1493, 1496,
- 1498, -2314, -2314, -54, 1500, 1501, 1502, -27, -2314, -2314,
- -2314, -2314, -2314, 448, -2314, -2314, 1504, -27, 1505, 1506,
- 1507, 448, 448, -54, 1509, 1510, 1511, 1042, -2314, 1123,
- -2314, 1249, 1258, 1512, 1513, 1514, 448, 448, -54, 1516,
- 1518, -54, 1519, 1267, 1521, 1522, 1523, 448, 448, -54,
- 1528, 1529, -54, 1530, 1275, 1531, 1532, 1533, 448, 448,
- -54, 1536, 1541, -54, 1542, 1543, 1545, 1546, 448, 448,
- -54, 1548, 1549, 1550, 448, -2314, -2314, -2314, -2314, -2314,
- 1554, -2314, -2314, 1555, 448, 1556, 1557, 1316, -2314, 4711,
- 479, 479, 4711, 479, 1559, 1041, -2314, -2314, -2314, -2314,
- -2314, -2314, 1560, 4489, 71, 1561, 4489, 1316, -2314, 1562,
- 1041, 479, 479, 479, 479, 479, 479, 479, 479, 479,
- 1558, -2314, -2314, -2314, 1566, -2314, -2314, -2314, 1568, -2314,
- -2314, -2314, 479, 4711, 479, 1569, 1041, 71, 1316, 1098,
- 1316, 479, -2314, -2314, 479, 1316, 1098, 1098, -2314, 749,
- 1572, -2314, 1316, 1098, 1316, -2314, -2314, 1316, 1098, 1316,
- 1098, -2314, -2314, -2314, -2314, 479, 479, 479, 479, 479,
- 479, 479, 479, 479, 479, -2314, 479, 479, 479, 479,
- 479, 479, 479, 479, 479, 479, 479, 3374, 1570, 479,
- -2314, 479, 479, 479, 1573, 1575, -2314, -2314, 1316, -14,
- 1576, 1316, 1316, -2314, -2314, 1098, -2314, 479, -2314, 1577,
- 1316, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
+ 4673, 4673, -2314, -2314, 1107, 29, -2314, -2314, 1109, 1110,
+ 935, 820, 248, 1053, -2314, 579, 1054, 4181, 36, 1140,
+ -2314, 1151, -2314, 1154, -2314, 1156, 1160, -2314, -2314, -2314,
+ 820, -2314, 4525, 1020, 438, 1163, 576, 1080, -2314, -2314,
+ -2314, 1157, 54, 1171, 119, 820, 331, 418, 164, 4673,
+ 29, 1078, 470, 20, 157, 7, 11, -2314, 1164, 1167,
+ 1182, -2314, -2314, -2314, -2314, -2314, 820, 820, 820, 820,
+ -2314, -2314, 820, 469, 820, -2314, 820, 1129, 820, 1183,
+ 469, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, 358,
+ 412, -2314, -2314, -2314, 1187, -2314, -2314, -2314, -2314, 1103,
+ -2314, 1194, 1195, 1197, -2314, 410, 430, 441, -2314, -2314,
+ -2314, -2314, -2314, -2314, -2314, -2314, -2314, 820, 820, 1200,
+ 820, 820, -2314, 1833, -2314, 133, 1203, -2314, 846, 1219,
+ -2314, -2314, -3, 820, 820, -2314, 1212, -2314, -2314, 1221,
+ 889, 820, 1215, 661, -2314, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, -2314, -2314, -2314, -2314, -2314, 1225, 820, 820,
+ 820, 4673, -2314, 1227, 3013, -2314, 1229, 1231, 469, -2314,
+ -2314, -2314, -2314, -2314, 469, -2314, -2314, 820, 820, 820,
+ 4673, 820, 1129, 820, -2314, 820, -2314, -2314, -2314, -2314,
+ -2314, 1233, 1234, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, 434, -2314, 820, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, -2314, -2314, -2314, -2314, 4673, 4673, 4673, 1232,
+ 820, 469, -2314, -3, -3, -3, 469, 1129, 820, 469,
+ -2314, -2314, 820, -21, 1083, 1246, -2314, -2314, 469, -2314,
+ -2314, -2314, 1250, 1252, 874, 820, 3463, 458, 494, -2314,
+ -2314, 820, 485, 945, -2314, 990, -2314, 1078, 555, 988,
+ 96, -2314, -2314, 820, 820, 1254, -2314, -2314, -2314, -3,
+ -2314, -2314, -2314, 4639, -2314, -2314, 1257, 1262, 820, 1265,
+ 1268, 1269, 321, 321, 286, 1258, 1272, 1274, 1275, 1027,
+ 1277, 1278, 1279, 57, 57, 286, 1281, 1282, 286, 1288,
+ 1289, 5007, 1290, 1291, -2314, -2314, 1292, 1293, -2314, 599,
+ -2314, 1295, 1301, -2314, -2314, -2314, 773, 1245, 1082, 1085,
+ 1087, 1211, 379, 1090, 1308, 4, 1186, 1216, 851, 668,
+ 1283, 1092, 1098, 1223, 1321, 1128, 223, 46, -86, 1101,
+ 2471, 1078, 1294, -90, 1131, 1328, 70, -2314, -2314, 246,
+ 1336, 1337, -2314, -2314, -2314, 1349, 1162, 65, 1078, 1165,
+ -2314, -2314, -2314, 29, 1351, 1358, 820, -2314, -2314, -2314,
+ -2314, -2314, -2314, -2314, -2314, -2314, 18, -2314, 2272, -2314,
+ 820, -2314, 820, -2314, -2314, -2314, 820, 820, 820, 576,
+ 4673, -2314, 1360, 959, -2314, -2314, 820, -2314, -2314, 820,
+ 2471, 820, -2314, 4673, -2314, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, -2314, -2314, -2314, -2314, 29, 820, -2314, 820,
+ 576, 1363, -2314, 820, 820, -2314, 29, -2314, -2314, -2314,
+ 461, 1364, 1365, -2314, -2314, -2314, -2314, 820, 820, -2314,
+ -2314, 1129, 820, 820, -2314, -2314, -2314, -2314, 820, -2314,
+ 820, 1266, -2314, 820, -2314, 820, 1270, -2314, 1359, -2314,
+ 78, 78, 78, 1375, 1376, 1378, -2314, 1380, 1383, 1379,
+ -2314, 1389, 1390, 1393, -2314, -2314, 820, 1394, -2314, 820,
+ -2314, 2556, 469, -2314, -2314, 1397, -2314, -2314, 1400, -2314,
+ -2314, -2314, -2314, 1387, 3766, -2314, 820, 1395, 820, 820,
+ 820, 891, 1407, 1402, 820, 820, 469, 99, 1081, 1088,
+ 1091, 1094, 1097, 1100, 1104, 3013, -2314, 1105, -2314, -2314,
+ 1409, 1427, -2314, 820, 1411, 1430, 1432, -2314, 4673, -2314,
+ 820, -2314, -2314, -2314, 820, 820, 820, 1434, 1437, 469,
+ -2314, 4673, -3, -2314, 553, 553, 1129, 820, 1438, -3,
+ 820, -27, -23, 53, -2314, 1439, -2314, 102, 820, 1441,
+ 1443, 820, -2314, 1444, -60, 2471, 1222, 1226, 1235, 34,
+ 2471, 1236, -2314, 209, 1322, 61, 1237, 1241, 163, -2314,
+ -2314, 419, 1296, 273, -82, 1078, 491, -2314, 1448, 1224,
+ -2314, 437, -2314, -2314, -2314, -2314, 1078, 1263, -2314, -2314,
+ -2314, -2314, -2314, 820, -2314, 820, -2314, -2314, 820, 820,
+ -2314, -2314, 820, -2314, -2314, -2314, -2314, 1280, 820, -2314,
+ 820, 24, -2314, -2314, 1449, 1462, -2314, 820, 321, 321,
+ 321, -2314, -2314, -2314, -2314, -2314, -2314, 1464, 321, 321,
+ 321, 663, -2314, 57, 321, 321, 321, -2314, -2314, 321,
+ 321, 1465, 321, 321, 1466, 57, 709, -2314, 1467, 1470,
+ 1471, -2314, 625, -2314, 734, 753, -2314, 843, -2314, 1217,
+ 1473, 1476, 1479, 57, 57, 286, 1482, 1484, 286, 1485,
+ 1487, 1488, 15, -2314, -2314, -2314, 4673, 29, -2314, -2314,
+ -2314, 2471, 1008, 820, 1016, 975, 344, -2314, -2314, -2314,
+ 726, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, -2314, 1490, 820, -2314, 29, 1491, 820, 4673,
+ 29, 1143, 1273, 1276, 191, 193, 1284, 202, 1201, 1494,
+ 1495, 1498, 379, 1499, 1500, 1501, 1218, 982, 1502, 820,
+ 1073, 1214, -2314, -2314, 29, 2471, -2314, -2314, 2471, 820,
+ 12, 1503, 820, 469, 1129, 29, -2314, 2471, 4673, -2314,
+ -2314, -2314, 29, 29, 2471, -2314, -2314, -2314, -2314, -2314,
+ -2314, 2471, 820, 29, -2314, -2314, -2314, 820, -2314, -2314,
+ 1504, 820, 1300, 68, 820, 1302, 820, 244, 820, -2314,
+ 820, 1303, 1304, 820, 820, 820, 820, 820, 820, 820,
+ 25, 820, 820, 1305, -2314, 820, 820, 820, 820, -2314,
+ 4673, 469, 1507, 4673, 4673, 820, 820, 469, 1129, -2314,
+ -2314, 820, 820, 820, 4673, -2314, 820, 820, -2314, -2314,
+ -2314, 1509, -2314, -2314, -2314, -2314, -2314, -2314, 820, 820,
+ -2314, 820, 820, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
+ -22, -22, -22, -22, -22, -22, -22, -22, -22, 820,
+ -2314, 820, -2314, -2314, -2314, -2314, 3766, 820, 469, 820,
+ 820, 820, -2314, 820, 820, 1514, 820, 1483, 1515, 820,
+ 820, -2314, -2314, -2314, 1516, 379, 1517, 1520, 1521, 1523,
+ 1524, 1528, -2314, 29, 4673, 4673, 820, -2314, -2314, -2314,
+ 469, -2314, 893, 820, 893, -2314, -2314, -3, 469, 4673,
+ -2314, -2314, 820, 820, 1529, 553, -2314, -2314, -2314, -2314,
+ -2314, -2314, 820, -2314, -2314, -2314, -2314, 553, 820, 1532,
+ -2314, -2314, -2314, 1533, 1534, -2314, 469, -2314, 2471, 2471,
+ 2471, 2471, 2471, 469, -2314, 2471, -2314, -2314, 2471, -2314,
+ -2314, 2471, 2471, 2471, 2471, 2471, 2471, -2314, 4673, 2471,
+ 820, -2314, -2314, 4673, 2471, 2471, -2314, 4673, 2471, -2314,
+ -2314, -2314, -2314, 4673, 2471, -2314, -2314, -2314, -2314, -2314,
+ 820, -2314, -2314, 1536, 820, -2314, -2314, 1537, 1539, -2314,
+ 820, -2314, -2314, -2314, 321, -2314, -2314, -2314, 1540, 1541,
+ 1542, -2314, -2314, 286, 1544, 1545, 1546, 321, -2314, -2314,
+ -2314, -2314, -2314, 57, -2314, -2314, 1549, 321, 1554, 1555,
+ 1556, 57, 57, 286, 1558, 1559, 1560, 861, -2314, 910,
+ -2314, 946, 1271, 1561, 1562, 1563, 57, 57, 286, 1566,
+ 1567, 286, 1568, 1310, 1569, 1570, 1573, 57, 57, 286,
+ 1575, 1576, 286, 1578, 1318, 1579, 1580, 1581, 57, 57,
+ 286, 1577, 1584, 286, 1585, 1586, 1587, 1589, 57, 57,
+ 286, 1594, 1597, 1600, 57, -2314, -2314, -2314, -2314, -2314,
+ 1598, -2314, -2314, 1602, 57, 1603, 1604, -2314, -2314, -2314,
+ 469, -2314, 469, -2314, 4673, 820, 820, 4673, 820, 1605,
+ 1245, -2314, -2314, -2314, -2314, -2314, -2314, 1606, 2471, 29,
+ 1607, 2471, 469, -2314, 1608, 1245, 820, 820, 820, 820,
+ 820, 820, 820, 820, 820, 1610, -2314, -2314, -2314, 1611,
+ -2314, -2314, -2314, 1614, -2314, -2314, -2314, 820, 4673, 820,
+ 1615, 1245, 29, 469, 1129, 469, 820, -2314, -2314, -2314,
+ -2314, -2314, -2314, -2314, -2314, -2314, -2314, 820, 1129, 1129,
+ -2314, 469, 1129, 469, -2314, -2314, 469, 1129, 469, 1129,
+ -2314, -2314, -2314, -2314, 820, 820, 820, 820, 820, 820,
+ 820, 820, 820, 820, -2314, 820, 820, 820, 820, 820,
+ 820, 820, 820, 820, 820, 3897, 1616, 820, -2314, 820,
+ 820, 820, 1618, 1619, -2314, -2314, 469, -3, 1620, 469,
+ 469, -2314, -2314, 1129, -2314, 820, -2314, 1621, 469, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- 479, 479, 1316, 479, -2314, 1098, 479, -2314, 479, -2314,
- 1497, 1578, 1579, 1583, 1582, 479, 479, 1585, 1586, -2314,
- 1588, -2314, -2314, -2314, -2314, -2314, 1316, 1316, 4711, -2314,
- -2314, 479, -2314, 479, -2314, -14, 749, 479, 1589, -2314,
- -2314, 479, -2314, 18, -2314, -2314, 749, -2314, 749, -2314,
- 749, -2314, 1316, -2314, 749, -2314, -14, 749, -2314, 749,
- -2314, 1316, -2314, 749, -2314, 749, -2314, 749, -2314, 1316,
- -2314, 749, -2314, 749, 1316, -2314, 4711, 1591, 749, 1316,
- -2314, 749, -2314, 1596, 749, 749, 1316, -2314, 749, 1316,
- -2314, -2314, 1598, 18, -2314, -2314, 479, -2314, -2314, -2314,
- -2314, 1600, -2314, -2314, -2314, -2314, -27, 448, -2314, -2314,
- -2314, -2314, -2314, -2314, 1601, -2314, -2314, 448, 1602, 1603,
- 1604, 448, 448, -54, 1606, 1607, 1608, 1609, 1611, 1613,
- 448, 448, -54, 1616, 1617, 1618, 1619, 1620, 1621, 448,
- 448, -54, 1623, 1624, 1625, 448, -27, -27, -27, -27,
- -27, 1629, -27, -27, 1631, 448, 448, -27, -27, -27,
- -27, -27, 1634, -27, -27, 1636, 448, 448, -2314, -2314,
- -2314, -2314, -2314, 1637, -2314, -2314, 1638, 448, -2314, -2314,
- -2314, -2314, -2314, 1639, -2314, -2314, 448, -2314, 448, 1640,
- -2314, 1643, 1644, -2314, 749, 1645, 4489, 749, 479, 4711,
- 1646, -2314, 749, -2314, -2314, -2314, 749, -2314, -2314, 4711,
- 1657, 479, 479, 479, 479, 479, 479, 479, 479, 479,
- 479, -2314, -2314, 4489, 749, 479, 4711, 1658, -2314, 1098,
- 1098, 1098, 479, 4489, -2314, 1098, 479, 1659, -2314, 1098,
- 1098, 4711, 1098, 479, 1098, -2314, 479, 479, 479, 479,
- 479, 479, 1041, 479, 479, 479, 1041, 479, 479, 479,
- 479, 1041, 479, 479, 479, 479, 479, 479, 1316, 479,
- 1253, 1041, 479, 479, -2314, -2314, -14, 71, 1660, 1661,
- -2314, -2314, -2314, -2314, -2314, -14, -2314, -2314, 1098, 479,
- -2314, -2314, -2314, 823, 1662, 1663, -2314, 1666, 479, 1667,
- 399, 1664, -2314, -2314, -2314, 749, -2314, -2314, -2314, -2314,
- 1669, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -14,
- 749, 1671, -2314, -14, -2314, -2314, -2314, -2314, -14, -2314,
- -14, 1673, -2314, 479, -2314, -2314, -27, 448, -2314, -27,
- -27, -27, -27, -27, 1668, -27, -27, 448, -2314, -2314,
- -2314, -2314, -2314, 1675, -2314, -2314, 448, -27, -27, -27,
- -27, -27, 1676, -27, -27, 448, -27, -2314, -2314, -2314,
- -2314, -2314, 448, -2314, -2314, 1677, -27, -27, -2314, -2314,
- -2314, -2314, -2314, 448, -2314, -2314, 1679, -27, -2314, 448,
- 1684, -2314, 448, -2314, -2314, 448, -2314, -2314, -2314, 4489,
- 749, -2314, -2314, 1685, 1316, 479, -2314, -2314, 1316, 479,
- -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, 479,
- 749, -2314, -2314, 1686, 1316, 479, 1098, -2314, -2314, -2314,
- 749, -2314, 479, 1687, -2314, 1098, -2314, 749, 4711, 1041,
- -2314, 479, 1688, 1688, 479, 479, 1688, 1041, 1688, -2314,
- 4711, 1041, 1688, 1688, 479, 479, 1041, 479, 479, 479,
- 1689, 479, -2314, 1098, 479, 1690, -2314, -2314, 479, 1688,
- 71, 43, -2314, 1691, 71, -2314, -2314, 1692, 479, -2314,
- 1693, -2314, 1695, 1584, 479, -2314, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, 479, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, 448, -2314, -2314, -27, 448, -2314, -2314,
- -2314, -2314, -2314, -2314, 448, -2314, -2314, -27, -2314, -27,
- 448, -2314, -2314, -27, 448, -2314, -2314, 448, -2314, -2314,
- 749, -2314, -2314, 4489, 4711, 479, 4711, 479, -2314, -2314,
- 4489, 4711, 479, -2314, -2314, 1696, -2314, -2314, -2314, 749,
- -2314, 1697, -2314, -2314, -2314, 1041, 479, -2314, 1698, -2314,
- -2314, 1316, 1699, -2314, -2314, 1041, 479, 1700, -2314, -2314,
- 479, 1711, -2314, 4711, -2314, -2314, -2314, -2314, -2314, -2314,
- 43, 1293, 1665, -2314, -2314, 1724, 1726, -2314, 1587, 1701,
- 97, 1731, -27, -2314, -2314, -27, -2314, -2314, -27, -2314,
- -27, -2314, -2314, 749, -2314, 749, 479, 749, 1732, 749,
- -2314, 749, 479, 4711, 479, -2314, -2314, -2314, -2314, 1734,
- -2314, 479, -2314, -2314, 479, -2314, -2314, -2314, 1735, 479,
- -2314, -2314, 1736, -2314, 1316, -2314, -2314, 1293, -2314, 1321,
- 1412, 1665, -2314, 1737, 1740, 1742, -2314, -2314, -2314, -2314,
- -2314, -2314, 479, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- 1743, -2314, 4489, -2314, -2314, 1748, 749, 1041, -2314, -2314,
- 1041, 479, -2314, 479, -2314, 1041, 479, 1750, -2314, -2314,
- 4711, -2314, 1321, -2314, 71, -2314, 1752, 1755, -2314, 479,
- 4489, 1316, -2314, 4489, -2314, -2314, -2314, 479, 1749, -2314,
- 479, -2314, 749, -2314, -2314, -2314, 1756, 1757, 1316, -2314,
- -2314, 1316, -2314, -2314, 1762, -2314, -2314, 1763, -2314, -2314,
- -2314, -2314, -2314, -2314, 1041, -2314, 1041, -2314, -2314, -2314,
- -2314, -2314
+ -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, 820, 820,
+ 469, 820, -2314, 1129, 820, -2314, 820, -2314, 1525, 1622,
+ 1623, 1625, 1538, 820, 820, 1627, 1628, -2314, 1630, -2314,
+ -2314, -2314, -2314, -2314, 469, 469, 4673, -2314, -2314, 820,
+ -2314, 820, -2314, -3, 102, 820, 1631, -2314, -2314, 820,
+ -2314, 14, -2314, 1632, 1633, -2314, 102, -2314, 102, -2314,
+ 102, -2314, 469, -2314, 102, -2314, -3, 102, -2314, 102,
+ -2314, 469, -2314, 102, -2314, 102, -2314, 102, -2314, 469,
+ -2314, 102, -2314, 102, 469, -2314, 4673, 102, 469, -2314,
+ 102, -2314, 102, 469, -2314, 102, 469, -2314, -2314, 1635,
+ 14, -2314, -2314, 820, -2314, -2314, -2314, -2314, 1636, -2314,
+ -2314, -2314, -2314, 321, 57, -2314, -2314, -2314, -2314, -2314,
+ -2314, 1637, -2314, -2314, 57, 1638, 1640, 1643, 57, 57,
+ 286, 1646, 1648, 1649, 1650, 1651, 1652, 57, 57, 286,
+ 1654, 1655, 1657, 1658, 1659, 1660, 57, 57, 286, 1656,
+ 1672, 1674, 57, 321, 321, 321, 321, 321, 1673, 321,
+ 321, 1676, 57, 57, 321, 321, 321, 321, 321, 1677,
+ 321, 321, 1678, 57, 57, -2314, -2314, -2314, -2314, -2314,
+ 1679, -2314, -2314, 1682, 57, -2314, -2314, -2314, -2314, -2314,
+ 1683, -2314, -2314, 57, -2314, 57, 1685, -2314, 1687, 1689,
+ -2314, -2314, 102, 1690, 2471, 102, 820, 4673, 1691, -2314,
+ 102, -2314, -2314, -2314, 102, -2314, -2314, 4673, 1692, 820,
+ 820, 820, 820, 820, 820, 820, 820, 820, 820, -2314,
+ -2314, 2471, 102, 820, 4673, 1694, -2314, 1129, 1129, 1129,
+ 820, 2471, 1129, 820, 1129, 1129, 4673, 1129, 820, 1129,
+ -2314, 820, 820, 820, 820, 820, 820, 1245, 820, 820,
+ 820, 1245, 820, 820, 820, 820, 1245, 820, 820, 820,
+ 820, 820, 469, 820, 1327, 1245, 820, 820, -2314, -2314,
+ -3, 29, 1695, 1696, -2314, -2314, -2314, -2314, -2314, -3,
+ -2314, -2314, 1129, 820, -2314, -2314, -2314, 937, 1697, 1698,
+ -2314, 1700, 820, 1701, 893, 1707, -2314, -2314, -2314, 102,
+ -2314, -2314, -2314, -2314, 1708, -2314, -2314, -2314, 1710, -2314,
+ -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, -2314, -2314, -2314, -3, 102, -2314, -3, -2314,
+ -2314, -3, -2314, -3, 1713, -2314, 820, -2314, -2314, 321,
+ 57, -2314, 321, 321, 321, 321, 321, 1702, 321, 321,
+ 57, -2314, -2314, -2314, -2314, -2314, 1716, -2314, -2314, 57,
+ 321, 321, 321, 321, 321, 1718, 321, 321, 57, 321,
+ -2314, -2314, -2314, -2314, -2314, 57, -2314, -2314, 1719, 321,
+ 321, -2314, -2314, -2314, -2314, -2314, 57, -2314, -2314, 1720,
+ 321, -2314, 57, 1731, -2314, 57, -2314, -2314, 57, -2314,
+ -2314, -2314, 2471, 102, -2314, -2314, 1743, 469, 820, -2314,
+ -2314, 469, 820, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, 820, 102, -2314, -2314, 1745, 469, 820, 1129,
+ -2314, -2314, -2314, 102, -2314, 820, -2314, 1129, -2314, 102,
+ 4673, 1245, -2314, 820, 1749, 1749, 820, 820, 1749, 1245,
+ 1749, -2314, 4673, 1245, 1749, 1749, 820, 820, 1245, 820,
+ 820, 820, 820, -2314, 1129, 820, 1750, -2314, -2314, 820,
+ 1749, 29, 27, -2314, 1751, 29, -2314, -2314, 1752, 820,
+ -2314, 1753, -2314, 1755, 1583, 820, -2314, -2314, -2314, 1756,
+ -2314, -2314, -2314, -2314, -2314, -2314, 820, -2314, -2314, -2314,
+ -2314, -2314, -2314, -2314, 57, -2314, -2314, 321, 57, -2314,
+ -2314, -2314, -2314, -2314, -2314, 57, -2314, -2314, 321, -2314,
+ 321, 57, -2314, -2314, 321, 57, -2314, -2314, 57, -2314,
+ -2314, 102, -2314, -2314, 2471, 4673, 820, 4673, 820, -2314,
+ -2314, 2471, 4673, 820, -2314, -2314, 4673, -2314, -2314, 102,
+ -2314, 1758, -2314, -2314, -2314, 1245, 820, -2314, 1759, -2314,
+ -2314, 469, 1761, -2314, -2314, 1245, 820, 1763, -2314, -2314,
+ 820, 4673, -2314, -2314, -2314, -2314, -2314, -2314, 27, 1341,
+ 1078, -2314, -2314, 1764, 1766, -2314, 1613, 1768, 92, -2314,
+ 1769, 321, -2314, -2314, 321, -2314, -2314, 321, -2314, 321,
+ -2314, -2314, 102, -2314, 102, 820, 102, 1770, 102, -2314,
+ 102, 820, 102, 820, -2314, -2314, -2314, -2314, 1771, -2314,
+ 820, -2314, -2314, 820, -2314, -2314, -2314, 1773, 820, -2314,
+ -2314, -2314, 469, -2314, -2314, 1341, -2314, 1362, 1297, 1078,
+ -2314, 1775, 1776, 1774, -2314, -2314, -2314, -2314, -2314, -2314,
+ 820, -2314, -2314, -2314, -2314, -2314, -2314, -2314, 1778, -2314,
+ 2471, -2314, -2314, 1779, -2314, 1245, -2314, -2314, 1245, 820,
+ -2314, 820, -2314, 1245, 820, -2314, 4673, -2314, 1362, -2314,
+ 29, -2314, 1780, 1781, -2314, 820, 2471, 469, -2314, 2471,
+ -2314, -2314, 820, 1783, -2314, 820, 102, -2314, -2314, -2314,
+ 1786, 1788, 469, -2314, -2314, 469, -2314, -2314, 1784, -2314,
+ -2314, 1790, -2314, -2314, -2314, -2314, -2314, 1245, -2314, 1245,
+ -2314, -2314, -2314, -2314, -2314
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -2314, -2314, -9, -2314, 176, -195, -2314, -1604, -854, 1229,
- -2314, 541, -140, 1368, -39, 1423, -1445, 1590, -645, 1255,
- -2314, -798, 1066, 1571, -164, -1107, -79, -2314, -2314, -2314,
+ -2314, -2314, -9, -2314, 254, -198, -2314, -1347, -862, 1240,
+ -2314, 644, -318, 1381, -39, 1421, -1460, 1626, -651, 1299,
+ -2314, -836, 1862, 1412, -202, -2314, -1175, -2314, -2314, 16,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
@@ -2726,1388 +2748,1354 @@ static const yytype_int16 yypgoto[] =
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -1179,
- -2314, -2314, -2314, -2314, -2314, -584, -2314, -2314, -2314, -2314,
- -2314, -2314, 99, -2314, -2314, -2314, -2314, 556, -594, -74,
- -704, -2314, -2314, -2314, -2314, -738, -659, -2314, -2314, -2313,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
+ -2314, -2314, -2314, -800, -2314, -2314, -2314, -2314, -2314, -601,
+ -2314, -2314, -2314, -2314, -2314, -2314, 123, -2314, -2314, -2314,
+ -2314, 475, -604, -1234, -743, -2314, -2314, -2314, -2314, -797,
+ -782, -2314, -2314, -2313, -2314, -2314, -2314, -2314, -2314, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
-2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314,
- -2314, -2314, -2314, -2314
+ -2314, -2314, -2314, -2314, -2314, -2314, -2314, -2314
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -1025
+#define YYTABLE_NINF -1037
static const yytype_int16 yytable[] =
{
- 97, 1326, 980, 311, 539, 1811, 971, 1813, 497, 787,
- 536, 967, 759, 1236, 79, 570, 941, 944, 262, 90,
- 91, 1737, 1506, 678, 283, 277, 90, 91, 90, 91,
- 90, 91, 305, 90, 91, 316, 760, 936, 321, 90,
- 91, 358, 327, -1011, 80, 334, 99, 235, 343, 1202,
- 681, 351, 1205, 47, 357, 90, 91, 81, 361, 946,
- 82, 330, 947, 362, 92, 559, 90, 91, 83, 102,
- 1291, 90, 91, 90, 91, 99, 84, 1040, 1289, 1308,
- 1501, 93, 285, 378, 498, 387, 388, 392, 394, 48,
- 981, 90, 91, 1465, 99, 1517, 982, 1102, 1674, 665,
- 90, 91, 1186, 236, 398, 1768, 567, 49, 90, 91,
- 1304, 1535, 499, 1485, 336, 1495, 2473, 571, 90, 91,
- 1182, 102, 1316, 363, 237, 201, 526, 346, 948, 276,
- 94, 1094, 1095, 1096, 288, 50, 747, 444, 500, 410,
- 564, 202, 1051, 1518, 445, 1467, 949, 1183, 85, 51,
- 1052, 104, 52, 233, 1430, 163, 576, 1292, 439, 2493,
- 1499, 337, 1305, 461, 53, 1769, 347, 516, 46, 286,
- 238, 973, 577, 99, 266, 252, 1507, 1172, 364, 537,
- 104, 243, 289, 748, 1512, 1261, 86, 150, 162, 1187,
- 459, 572, 508, 1508, 220, 1519, 90, 91, 241, 104,
- 432, 1103, 90, 91, 269, 433, 831, 832, 950, 1317,
- 95, 1663, 1502, 281, 290, 87, 1161, 937, 566, 110,
- 313, 365, 527, 1665, 1509, 247, 1041, 248, 278, 634,
- 584, 585, 107, 369, 345, 573, 434, 108, 109, 1548,
- 1549, 618, 1310, 560, 565, 339, 578, 1668, 833, 620,
- 623, 279, 626, 630, 1798, 632, 737, 574, 1290, 435,
- 1503, 107, 359, 972, 666, 642, 108, 109, 761, 740,
- 655, 110, 651, 653, 2437, 983, 1510, 1327, 104, 1490,
- 107, 1550, 679, 507, 1511, 108, 109, 331, 669, 670,
- 938, 671, 96, 788, 951, 674, 675, 1738, 1302, 282,
- 88, 1309, 436, 509, -1011, 1293, 687, 689, 1536, 682,
- 54, 1486, 690, 1496, 112, 1320, 1262, 693, 695, 501,
- 239, 304, 1300, 1466, 656, 696, 568, 411, 412, 413,
- 414, 415, 416, 417, 418, 419, 420, 244, 249, 460,
- 704, 705, 706, 112, 707, 437, 438, 340, 710, 711,
- 712, 974, 713, 977, 920, 1513, 1358, 1318, 1500, 107,
- 291, 1431, 112, 142, 108, 109, 240, 143, 144, 722,
- 517, 834, 835, 723, 315, 1468, 2438, 1263, 728, 729,
- 730, 731, 732, 733, 326, 734, 1645, 1372, 738, 739,
- 341, 342, 142, 518, 921, 920, 143, 144, 1514, 510,
- 1717, 741, 1149, 1144, 1551, 1552, 1722, 1393, 245, 1664,
- 1491, 142, 1660, 582, 583, 143, 144, 1264, 643, 2439,
- 2440, 1666, 1311, 999, 975, 69, 1004, 69, 1630, 920,
- 913, 1633, 1686, 836, 250, 921, 625, 370, 1515, 1568,
- 1569, 112, 837, 838, 1167, 1669, 931, 267, 1457, 318,
- 769, 770, 771, 773, 479, 1463, 914, 268, 799, 800,
- 1377, 1145, 90, 91, 657, 1198, 1553, 480, 781, 921,
- 664, 1492, 1378, 839, 1469, 1554, 1555, 319, 1014, 1241,
- 323, 1570, 90, 91, 943, 1018, 324, 1146, 481, 1000,
- 142, 995, 1005, 1522, 143, 144, 798, 858, 821, 90,
- 91, 325, 1022, 1242, 90, 91, 1556, 482, 841, 801,
- 63, 1493, 932, 329, 922, 802, 644, 842, 843, 1168,
- 483, 102, 372, 484, 1150, 817, 923, 924, 367, 1394,
- 503, 373, 1015, 855, 940, 1243, 90, 91, 70, 1019,
- 70, 1244, 1516, 64, 374, 1245, 300, 102, 485, 486,
- 90, 91, 1267, 1525, 968, 922, 1023, 830, 1147, 844,
- 71, 1246, 71, 859, 72, 375, 1810, 923, 924, 1001,
- 1151, 333, 1006, 803, 1268, 866, 102, 1269, 915, 376,
- 90, 91, 1247, 697, 377, 504, 804, 320, 395, 922,
- 939, 1152, 933, 952, 805, 1080, 421, 1199, 1248, 806,
- 487, 923, 924, 1148, 1571, 1572, 1270, 488, 73, 65,
- 73, 987, 988, 989, 990, 925, 926, 991, 529, 993,
- 969, 994, 422, 996, 916, 1523, 1249, 253, 1002, 1034,
- 1035, 1007, 1271, 635, 1272, 2274, 442, 1033, 90, 91,
- 1098, 698, 74, 353, 74, 917, 495, 807, 1037, 1038,
- 75, 76, 75, 76, 530, 301, 925, 926, 1250, 489,
- 490, 1026, 1027, 808, 1030, 1031, 1573, 809, 636, 1251,
- 810, 110, 1016, 1524, 271, 1574, 1575, 1043, 1044, 1020,
- 1252, 493, 845, 846, 1048, 1049, 744, 751, 221, 66,
- 925, 926, 811, 496, 1155, 512, 1024, 110, 812, 1220,
- 970, 1582, 1054, 1055, 1056, 1253, 1576, 699, 1221, 1222,
- 1583, 1584, 222, 637, 535, 813, 349, 1254, 1646, 1255,
- 1256, 1075, 1076, 1077, 544, 1079, 110, 1081, 1593, 1082,
- 491, 67, 513, 354, 302, 515, 826, 1594, 1595, 1273,
- 1162, 2408, 531, 229, 847, 350, 1085, 686, 1087, 542,
- 1223, 2417, 1585, 848, 849, 1881, 254, 548, 850, 1257,
- 532, 255, 562, 256, 1092, 545, 745, 90, 1111, 272,
- 563, 814, 1099, 1472, 1473, 1894, 1101, 752, 1649, 1596,
- 955, 223, 700, 580, 851, 978, 581, 701, 1112, 1114,
- 1931, 1980, 616, 1934, 224, 1154, 1156, 1159, 90, 91,
- 355, 1942, 1163, 1647, 1945, 520, 1990, 1169, 1170, 638,
- 1814, 617, 1953, 1328, 1211, 1956, 1361, 1362, 1329, 619,
- 549, 1178, 1963, 90, 91, 1274, 90, 91, 521, 659,
- 230, 633, 2007, 273, 1330, 1331, 640, 1332, 1333, 641,
- 1474, 646, 274, 648, 753, 225, 1648, 1275, 1334, 1423,
- 1276, 654, 1383, 1277, 663, 550, 2486, 389, 1235, 1335,
- 1336, 2489, 668, 1650, 522, 546, 231, 1337, 1679, 1680,
- 1338, 90, 91, 1224, 1225, 1586, 1587, 2267, 1294, 1278,
- 672, 56, 1301, 673, 226, 1158, 57, 1339, 90, 91,
- 676, 551, 1340, 1341, 227, 1342, 99, 694, 684, 1319,
- 1458, 1459, 1597, 1598, 660, 1279, 1651, 1280, 1325, 691,
- 2518, 692, 2519, 90, 91, 1639, 703, 58, 90, 91,
- 708, 151, 1353, 390, 1354, 725, 726, 1047, 1355, 1356,
- 1357, 709, 152, 1396, 1397, 1226, 714, 1588, 1363, 716,
- 59, 1364, 661, 1367, 1227, 1228, 1589, 1590, 523, 1229,
- 719, 1591, 720, 1343, 379, 294, 204, 1460, 1604, 1370,
- 381, 1371, 153, 742, 1599, 1374, 1375, 1605, 1606, 750,
- 154, 743, 755, 1600, 1601, 1230, 757, 1592, 1602, 1381,
- 1382, 763, 767, 60, 1384, 1385, 90, 91, 765, 783,
- 1386, 295, 1387, 1410, 792, 1389, 786, 1390, 790, 794,
- 1344, 104, 795, 391, 1603, 1345, 1346, 796, 205, 1607,
- 797, 818, 1281, 819, 825, 206, 827, 828, 1407, 1347,
- 621, 1409, 829, 155, 840, 207, 208, 61, 90, 91,
- 863, 852, 209, 1615, 1616, 861, 1415, 864, 1418, 865,
- 1420, 1421, 1422, 1424, 90, 91, 1427, 1428, 1233, 1234,
- 210, 919, 928, 1348, 1349, 930, 1898, 1899, 90, 91,
- 1642, 935, 649, 986, 1282, 1444, 984, 211, 90, 91,
- 1683, 985, 1449, 156, 1350, 1617, 1450, 1451, 1452, 296,
- 997, 297, 107, 212, 1009, 1013, 622, 108, 109, 1461,
- 1322, 213, 1464, 1010, 157, 1011, 158, 298, 1900, 1012,
- 1476, 90, 91, 1478, 2057, 2134, 1028, 379, 380, 381,
- 214, 90, 91, 1644, 2143, 1233, 1234, 159, 1351, 1036,
- 90, 91, 1659, 2152, 1233, 1234, 2344, 1106, 650, 2347,
- 1039, 2349, 1608, 1609, 1045, 2353, 2354, 1907, 1908, 1046,
- 1050, 1053, 215, 1369, 1058, 1527, 1071, 1528, 1072, 423,
- 1529, 1530, 2369, 1376, 1531, 1083, 1084, 1091, 1107, 1697,
- 1533, 1109, 1534, 1110, 112, 1160, 1165, 424, 1171, 1540,
- 2088, 90, 91, 1685, 1175, 1233, 1234, 1176, 2237, 1909,
- 160, 1179, 2241, 425, 1180, 1181, 216, 2246, 1189, 1190,
- 1194, 2099, 1191, 1192, 1610, 426, 217, 1195, 1618, 1619,
- 1196, 1197, 1203, 1611, 1612, 1204, 1237, 1206, 1613, 427,
- 1207, 1213, 428, 142, 1215, 1216, 1218, 143, 144, 1231,
- 1232, 1901, 1902, 1238, 429, 218, 1756, 1239, 1640, 1641,
- 1643, 1235, 1240, 1259, 1614, 1771, 1772, 1773, 1774, 1775,
- 1776, 1777, 1778, 1260, 1266, 1265, 1284, 1285, 1286, 1283,
- 1653, 1287, 1296, 1295, 1656, 1288, 1303, 1235, 1306, 1307,
- 1620, 1312, 1725, 1916, 1917, 430, 1313, 1314, 1820, 1621,
- 1622, 1315, 1321, 1323, 1324, 1682, 1684, 1235, 1360, 1373,
- 1822, 1379, 1380, 1903, 1388, 1692, 1391, 1694, 1392, 1433,
- 1398, 1399, 1904, 1905, 1400, 1414, 1401, 1402, 1403, 1406,
- 1623, 1404, 1910, 1911, 1405, 1918, 1408, 1425, 1412, 1413,
- 1711, 1426, 1419, 1442, 1434, 1713, 1435, 1436, 1443, 1715,
- 1437, 1718, 1719, 1906, 1721, 1723, 1724, 1438, 1726, 1439,
- 1445, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1739,
- 1741, 1742, 1446, 1441, 1744, 1745, 1746, 1747, 1447, 399,
- 1453, 1454, 1462, 1477, 1753, 1754, 1471, -394, 1479, 1494,
- 1757, 1758, 1759, 1504, 1912, 1761, 1762, 1482, 1520, 1538,
- 1505, 1483, 1577, 1913, 1914, 2340, 1484, 1764, 1765, 1489,
- 1766, 1767, 1521, 2348, 1497, 1498, 1526, 2352, 1532, 1539,
- 1544, 1563, 2357, 1566, 1624, 263, 1579, 1581, 1779, 1625,
- 1780, 1626, 1627, 1631, 1915, 1781, 1784, 1632, 1786, 1787,
- 1788, 2260, 1789, 1790, 1634, 1792, 400, 1635, 1795, 1796,
- 2264, 1636, 1671, 902, 1652, 1655, 1661, 1662, 1919, 1920,
- 1672, 1673, 401, 402, 403, 1808, 903, 1654, 1675, 1667,
- 404, 1658, 1812, 1670, 1676, 904, 1677, 1678, 1681, 368,
- 264, 1817, 1818, 405, 1693, 905, 1714, 1716, 1720, 1727,
- 406, 1821, 1750, 1728, 2278, 1687, 1743, 1823, 2281, 1763,
- 1791, 407, 1793, 2282, 396, 2283, 1794, 1797, 1701, 1799,
- 1800, 906, 1801, 1802, 1803, 1705, 1706, 1804, 1819, 1824,
- 1921, 1857, 1863, 1872, 1875, 1856, 1712, 1874, 1878, 1922,
- 1923, 1879, 907, 1880, 1882, 1883, 1925, 1884, 1887, 2073,
- 1889, 1890, 1891, 1895, 1896, 1936, 1897, 1926, 1927, 1928,
- 1932, 1871, 1933, 1947, 1935, 1873, 1937, 1938, 1939, 397,
- 1924, 1876, 1943, 1944, 2255, 1946, 1948, 1949, 1950, 457,
- 1954, 466, 469, 472, 476, 1955, 908, 1957, 1958, 2010,
- 1959, 1960, 1964, 1965, -1024, 1966, 2015, 2016, 1968, 1969,
- 1971, 1972, 2000, 2020, 1979, 1981, 1985, 1989, 2023, 541,
- 2025, 2001, 2002, 408, 2006, 2049, 2018, 2054, 909, 2055,
- 2058, 2064, 1063, 2074, 2075, 553, 557, 2076, 2077, 2080,
- 2379, 2081, 2082, 2435, 2091, 462, 2111, 470, 473, 477,
- 910, 2115, 2121, 2485, 2124, 2127, 505, 2129, 2130, 2131,
- 2135, 2136, 724, 2137, 2138, 2062, 2139, 1805, 2140, 534,
- 2144, 2145, 1440, 2146, 2147, 2148, 2149, 2153, 2154, 627,
- 2155, 1975, 1976, 2162, 1978, 2165, 1235, 911, 2173, 912,
- 2176, 2179, 2180, 2182, 2185, 2070, 647, 2186, 2187, 2189,
- 2195, 1235, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2199, 2215, 2224, 2262, 2263, 2427, 2269, 2270, 2275,
- 2271, 2273, 2293, 2003, 2277, 2005, 2280, 1235, 2284, 2297,
- 2304, 2310, 2012, 2314, 628, 2013, 586, 587, 2317, 2323,
- 2330, 2336, 2342, 2475, 2361, 2366, 2373, 2375, 2377, 2378,
- 2403, 2405, 2411, 2414, 2419, 2436, 2026, 2027, 2028, 2029,
- 2030, 2031, 2032, 2033, 2034, 2035, 2423, 2036, 2037, 2038,
- 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2433,
- 2050, 2434, 2051, 2052, 2053, 2443, 2452, 588, 2460, 2465,
- 2474, 2467, 2476, 589, 721, 2477, 2478, 2480, 2063, 590,
- 956, 591, 2483, 2505, 727, 2491, 592, 2495, 957, 593,
- 2496, 2510, 2511, 735, 958, 594, 2514, 2516, 2471, 0,
- 0, 2066, 2067, 0, 2069, 595, 0, 2071, 2430, 2072,
- 959, 596, 0, 0, 0, 0, 2078, 2079, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 597, 2086, 0, 2087, 960, 0, 0, 2090, 0,
- 0, 0, 2092, 961, 0, 0, 0, 0, 736, 0,
- 0, 0, 598, 0, 0, 0, 0, 0, 0, 772,
- 1984, 0, 774, 775, 0, 0, 0, 2430, 599, 0,
- 0, 0, 0, 779, 0, 0, 600, 601, 782, 962,
- 0, 0, 0, 631, 0, 0, 963, 791, 0, 0,
- 0, 0, 0, 2008, 0, 0, 602, 2123, 0, 2216,
- 2217, 2218, 0, 0, 0, 2222, 0, 0, 0, 2225,
- 2226, 0, 2228, 0, 2230, 603, 0, 0, 0, 0,
- 0, 0, 964, 0, 0, 604, 0, 0, 605, 0,
- 0, 685, 0, 965, 0, 0, 785, 0, 0, 606,
- 0, 0, 1201, 0, 607, 0, 0, 966, 0, 0,
- 608, 0, 0, 823, 824, 0, 609, 0, 2265, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 816, 0,
- 0, 0, 0, 610, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 611, 612, 715, 613,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 2193,
- 0, 954, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207,
- 2208, 2209, 0, 0, 0, 0, 2213, 0, 0, 614,
- 0, 0, 0, 2219, 0, 0, 0, 2223, 0, 0,
- 0, 0, 0, 0, 2229, 0, 0, 2231, 2232, 2233,
- 2234, 2235, 2236, 1235, 2238, 2239, 2240, 1235, 2242, 2243,
- 2244, 2245, 1235, 2247, 2248, 2249, 2250, 2251, 2252, 0,
- 2254, 0, 1235, 2258, 2259, 0, 0, 768, 0, 0,
- 0, 0, 0, 0, 0, 0, 776, 0, 0, 777,
- 2266, 0, 778, 0, 2268, 0, 780, 0, 0, 2272,
- 0, 0, 0, 0, 0, 0, 2333, 0, 0, 0,
- 0, 0, 1057, 0, 0, 2337, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1078, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2364, 2285, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 822, 0, 0, 0, 0, 0, 1088, 1089, 1090,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2350, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2362, 0, 1086, 0,
- 0, 0, 2367, 0, 0, 0, 2325, 0, 0, 0,
- 2327, 0, 0, 1174, 0, 0, 0, 0, 0, 0,
- 2328, 0, 0, 0, 0, 0, 2332, 0, 0, 0,
- 0, 0, 0, 2335, 0, 0, 0, 992, 0, 0,
- 1235, 0, 2341, 0, 998, 2345, 2346, 0, 1235, 0,
- 0, 0, 1235, 2261, 0, 2355, 2356, 1235, 2358, 2359,
- 2360, 0, 2363, 0, 0, 2365, 0, 0, 0, 2368,
- 0, 0, 0, 0, 0, 0, 0, 0, 1298, 2376,
- 1557, 0, 0, 0, 0, 2380, 0, 90, 91, 2406,
- 2407, 0, 1567, 2410, 0, 2412, 2381, 0, 0, 2415,
- 2416, 0, 0, 100, 2420, 2421, 0, 0, 0, 0,
- 1628, 1629, 0, 0, 2425, 2426, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1359,
- 0, 1073, 0, 1299, 0, 102, 2396, 1074, 2398, 1365,
- 0, 0, 1368, 2402, 0, 0, 0, 0, 0, 0,
- 0, 2458, 0, 0, 2459, 0, 1235, 2409, 0, 2462,
- 0, 0, 0, 2464, 0, 0, 1235, 2418, 2468, 2469,
- 0, 2422, 0, 0, 0, 0, 0, 0, 0, 103,
- 0, 0, 0, 0, 1093, 0, 0, 0, 0, 1097,
- 0, 2441, 1100, 0, 1366, 0, 0, 0, 0, 0,
- 0, 1108, 0, 0, 0, 0, 0, 2450, 0, 0,
- 0, 0, 0, 2455, 0, 2457, 0, 0, 0, 0,
- 0, 0, 2461, 0, 0, 2463, 1185, 0, 0, 0,
- 2466, 105, 2503, 1416, 0, 2506, 0, 2508, 0, 0,
+ 97, 542, 1829, 314, 1831, 950, 953, 976, 1477, 99,
+ 237, 99, 1479, 794, 500, 1251, 989, 685, 264, 1211,
+ 90, 91, 1214, 1339, 285, 980, 333, -1023, 90, 91,
+ 1755, 1276, 308, 99, 361, 319, 99, 268, 324, 1708,
+ 90, 91, 330, 572, 1545, 337, 245, 1647, 346, 90,
+ 91, 354, 90, 91, 360, 1501, 1709, 1481, 364, 1710,
+ 688, 90, 91, 365, 539, 511, 102, 238, 90, 91,
+ 1711, 90, 91, 641, 1207, 1321, 529, 90, 91, 1523,
+ 1306, 744, 1511, 381, 564, 390, 391, 395, 397, 239,
+ 1049, 940, 501, 1712, 747, 90, 91, 766, 291, 1329,
+ 751, 90, 91, 1111, 401, 102, 990, 90, 91, 642,
+ 1713, 1786, 991, 1176, 649, 1744, 104, 1405, 104, 866,
+ 502, 672, 767, 1317, 2479, 79, 1484, 1485, 321, 90,
+ 91, 1524, 1103, 1104, 1105, 240, 945, 1043, 1044, 413,
+ 104, 1442, 235, 104, 1492, 201, 503, 292, 90, 91,
+ 102, 1493, 1494, 278, 643, 349, 80, 46, 442, 941,
+ 1310, 202, 279, 464, 1277, 2497, 1311, 90, 91, 1307,
+ 81, 1787, 339, 82, 982, 530, 1318, 512, 1181, 293,
+ 752, 83, 90, 91, 1515, 867, 806, 807, 1330, 84,
+ 1177, 519, 1525, 254, 350, 1486, 326, 107, 955, 107,
+ 323, 956, 108, 109, 108, 109, 1495, 246, 1208, 322,
+ 1112, 163, 1678, 1170, 1680, 650, 342, 110, 336, 571,
+ 462, 107, 340, 1683, 107, 372, 108, 109, 1278, 108,
+ 109, 640, 590, 591, 283, 540, 1506, 316, 808, 942,
+ 693, 1406, 1050, 624, 809, 1478, 1546, 90, 91, 1480,
+ 1304, 626, 629, 644, 632, 636, 110, 638, 1502, 334,
+ 362, 85, 839, 840, 565, 150, 162, 648, 573, 957,
+ 1279, 2445, 221, 1323, 657, 659, 243, 986, 513, 247,
+ 1648, 1736, 271, 686, 112, 1512, 112, 958, 673, 981,
+ 241, 676, 677, 307, 678, -1023, 992, 1315, 681, 682,
+ 86, 110, 1322, 810, 795, 841, 1340, 510, 112, 694,
+ 696, 112, 348, 1756, 1333, 697, 811, 269, 946, 1004,
+ 700, 702, 1308, 343, 812, 284, 689, 270, 703, 813,
+ 294, 87, 504, 142, 318, 142, 242, 143, 144, 143,
+ 144, 1331, 63, 711, 712, 713, 1714, 714, 1370, 959,
+ 329, 717, 718, 719, 1443, 720, 983, 142, 435, 768,
+ 142, 143, 144, 436, 143, 144, 344, 345, 249, 1507,
+ 250, 280, 729, 287, 463, 64, 730, 814, 2446, 1384,
+ 303, 735, 736, 737, 738, 739, 740, 1516, 741, 327,
+ 929, 745, 746, 1660, 281, 1008, 947, 815, 437, 1640,
+ 520, 816, 1643, 817, 748, 414, 415, 416, 417, 418,
+ 419, 420, 421, 422, 423, 1679, 1256, 1681, 88, 1675,
+ 438, 2447, 2448, 521, 1089, 818, 1684, 90, 91, 842,
+ 843, 930, 819, 1508, 984, 373, 1305, 90, 91, 1701,
+ 960, 1257, 922, 65, 1195, 1661, 1517, 553, 47, 1013,
+ 820, 1469, 328, 776, 777, 778, 780, 1741, 1475, 1324,
+ 661, 92, 288, 1009, 1532, 439, 1389, 1023, 923, 1107,
+ 1191, 788, 569, 575, 1258, 1509, 482, 929, 1390, 93,
+ 1259, 332, 251, 370, 1260, 48, 102, 1027, 90, 91,
+ 483, 304, 1689, 588, 589, 844, 375, 1192, 1031, 805,
+ 1261, 828, 402, 49, 845, 846, 821, 977, 440, 441,
+ 376, 554, 484, 754, 99, 662, 631, 1014, 930, 1521,
+ 1153, 1262, 1024, 66, 1158, 1522, 90, 91, 824, 94,
+ 1662, 485, 50, 952, 377, 1196, 847, 1263, 863, 151,
+ 222, 1526, 1028, 1010, 486, 378, 51, 487, 555, 52,
+ 152, 671, 1535, 1032, 931, 289, 506, 379, 90, 91,
+ 627, 53, 838, 755, 223, 1264, 932, 933, 67, 380,
+ 305, 403, 488, 489, 949, 978, 1663, 576, 570, 1154,
+ 1518, 875, 153, 252, 849, 398, 556, 404, 405, 406,
+ 154, 581, 924, 850, 851, 407, 948, 1015, 1533, 961,
+ 1265, 90, 91, 102, 1229, 1155, 1011, 582, 408, 95,
+ 701, 1266, 507, 1230, 1231, 409, 424, 996, 997, 998,
+ 999, 104, 1267, 1000, 490, 1002, 410, 1003, 628, 1005,
+ 1592, 491, 1519, 224, 2285, 929, 852, 110, 925, 1593,
+ 1594, 931, 425, 155, 1042, 1816, 225, 523, 1159, 1268,
+ 1534, 577, 1527, 932, 933, 979, 1232, 934, 935, 663,
+ 1016, 1269, 926, 1270, 1271, 1060, 1025, 230, 1035, 1036,
+ 524, 1039, 1040, 1061, 356, 704, 930, 1558, 1559, 1156,
+ 1164, 583, 1595, 1395, 1052, 1053, 1029, 492, 493, 273,
+ 1289, 1057, 1058, 156, 1160, 445, 96, 1033, 578, 665,
+ 226, 297, 107, 1272, 1528, 496, 525, 108, 109, 1063,
+ 1064, 1065, 54, 1290, 499, 157, 1291, 158, 1161, 1292,
+ 1560, 579, 69, 1578, 1579, 498, 1157, 1898, 1084, 1085,
+ 1086, 515, 1088, 411, 1090, 705, 1091, 298, 758, 1603,
+ 159, 227, 90, 91, 934, 935, 1293, 1911, 1604, 1605,
+ 1171, 228, 538, 1094, 110, 1096, 231, 1529, 1614, 494,
+ 853, 854, 1948, 516, 357, 1951, 1580, 1615, 1616, 545,
+ 366, 1101, 1294, 1959, 1295, 447, 1962, 666, 518, 1108,
+ 1233, 1234, 448, 1110, 1970, 274, 547, 1973, 1472, 112,
+ 567, 1606, 232, 526, 1980, 1121, 1123, 532, 1998, 931,
+ 568, 706, 1163, 1165, 1168, 160, 1596, 1597, 585, 1172,
+ 1617, 932, 933, 2008, 1178, 1179, 1832, 667, 586, 834,
+ 90, 91, 1220, 90, 91, 367, 855, 1664, 759, 1187,
+ 299, 587, 300, 533, 358, 856, 857, 70, 142, 2025,
+ 858, 622, 143, 144, 1561, 1562, 1235, 625, 301, 233,
+ 1046, 1047, 275, 623, 655, 1236, 1237, 1625, 1626, 71,
+ 1238, 276, 639, 72, 964, 56, 646, 859, 1250, 987,
+ 57, 368, 1598, 1282, 647, 1915, 1916, 90, 1120, 707,
+ 352, 1599, 1600, 1296, 708, 549, 1601, 1239, 1309, 652,
+ 1581, 1582, 90, 91, 90, 91, 1283, 660, 760, 1284,
+ 1627, 1056, 934, 935, 654, 58, 1470, 1471, 1332, 353,
+ 1563, 73, 1665, 1602, 669, 1607, 1608, 1338, 1917, 1564,
+ 1565, 69, 656, 670, 1924, 1925, 534, 59, 550, 1285,
+ 255, 1365, 675, 1366, 1618, 1619, 1297, 1367, 1368, 1369,
+ 90, 91, 90, 91, 535, 74, 1435, 1375, 90, 91,
+ 1376, 1566, 1379, 75, 76, 1286, 1583, 1287, 1666, 679,
+ 1933, 1934, 1167, 1373, 1374, 1584, 1585, 1926, 1382, 680,
+ 1383, 683, 60, 691, 1386, 1387, 392, 1242, 90, 91,
+ 1659, 1609, 1248, 1249, 1243, 1244, 1694, 1695, 1393, 1394,
+ 1610, 1611, 2278, 1396, 1397, 1612, 1719, 1586, 698, 1398,
+ 1620, 1399, 1422, 1935, 1401, 699, 1402, 710, 2417, 1621,
+ 1622, 90, 91, 1654, 1623, 715, 61, 2360, 2426, 90,
+ 91, 1657, 1613, 716, 1628, 1629, 721, 1419, 551, 723,
+ 1421, 732, 733, 2375, 726, 1245, 70, 1408, 1409, 1246,
+ 727, 1624, 1918, 1919, 393, 1427, 382, 1430, 749, 1432,
+ 1433, 1434, 1436, 384, 750, 1439, 1440, 757, 71, 762,
+ 1774, 764, 1828, 770, 256, 772, 1288, 774, 790, 257,
+ 2354, 258, 793, 2357, 1456, 2359, 90, 91, 1698, 2363,
+ 2364, 1461, 911, 799, 2147, 1462, 1463, 1464, 797, 801,
+ 1630, 1927, 1928, 2156, 802, 2377, 912, 803, 1473, 1631,
+ 1632, 1476, 2165, 804, 825, 913, 826, 830, 1920, 1488,
+ 73, 833, 1490, 835, 836, 914, 2071, 1921, 1922, 2415,
+ 2416, 2491, 837, 2419, 394, 2421, 2494, 1936, 1937, 2424,
+ 2425, 1633, 90, 91, 2429, 2430, 848, 860, 382, 383,
+ 384, 915, 2433, 2434, 74, 869, 90, 91, 1674, 1923,
+ 1248, 1249, 75, 76, 1537, 871, 1538, 1929, 872, 1539,
+ 1540, 873, 916, 1541, 874, 965, 1930, 1931, 928, 1543,
+ 2521, 1544, 2522, 966, 939, 937, 944, 1335, 1550, 967,
+ 2466, 993, 2102, 2467, 994, 2249, 995, 1006, 2470, 2253,
+ 426, 1018, 2472, 1938, 2258, 968, 1019, 2475, 1932, 1020,
+ 1021, 1022, 1939, 1940, 1037, 2115, 917, 1045, 427, 1789,
+ 1790, 1791, 1792, 1793, 1794, 1795, 1796, 90, 91, 1700,
+ 969, 1248, 1249, 1048, 1054, 428, 1055, 1059, 970, 1062,
+ 1381, 1067, 1169, 1080, 1941, 1081, 1100, 429, 1092, 1093,
+ 1388, 918, 1115, 1655, 1656, 1658, 1250, 204, 90, 91,
+ 1116, 430, 1248, 1249, 431, 1118, 1119, 2507, 1174, 1180,
+ 2510, 1184, 1198, 919, 971, 1668, 432, 1185, 205, 1671,
+ 1188, 972, 1250, 1189, 1190, 2518, 1199, 1838, 2520, 1200,
+ 1201, 1203, 1204, 1205, 1206, 1212, 1213, 2523, 2524, 1840,
+ 1697, 1699, 1250, 1215, 1216, 1222, 1224, 1225, 1227, 1240,
+ 1707, 206, 920, 1717, 921, 1241, 1252, 433, 207, 1253,
+ 973, 1254, 1255, 1275, 1274, 1280, 1299, 1281, 208, 209,
+ 1298, 974, 1300, 1730, 1301, 210, 1302, 1303, 1732, 1312,
+ 1319, 1316, 1734, 1320, 1737, 1738, 975, 1740, 1742, 1743,
+ 1325, 1745, 1326, 211, 1748, 1749, 1750, 1751, 1752, 1753,
+ 1754, 1757, 1759, 1760, 1327, 1336, 1762, 1763, 1764, 1765,
+ 212, 1328, 1337, 1404, 1334, 1372, 1771, 1772, 1385, 1391,
+ 1392, 1400, 1775, 1776, 1777, 1403, 213, 1779, 1780, 2350,
+ 1410, 1411, 1412, 1415, 214, 1413, 2028, 2358, 1414, 1782,
+ 1783, 2362, 1784, 1785, 1416, 1417, 2367, 1418, 1420, 1426,
+ 2032, 2033, 1424, 215, 2035, 1425, 1438, 1431, 265, 2038,
+ 1797, 2040, 1798, 1437, 1454, 1457, 1445, 1799, 1802, 2271,
+ 1804, 1805, 1806, 1446, 1807, 1808, 1447, 1810, 2275, 1448,
+ 1813, 1814, 1449, 1455, 1458, 1450, 1459, 216, 1465, 1451,
+ 1453, 1466, 1474, -408, 1483, 1489, 1498, 1826, 266, 1491,
+ 1499, 1510, 1530, 1548, 1830, 2076, 1531, 1520, 1536, 1500,
+ 1505, 1513, 371, 1835, 1836, 1514, 1549, 1542, 1554, 1573,
+ 1576, 1634, 1587, 1839, 2290, 1589, 1591, 2292, 1635, 1841,
+ 2293, 1636, 2294, 217, 1637, 2084, 1641, 399, 1642, 1811,
+ 1644, 1645, 1646, 1685, 218, 1667, 1670, 1676, 1686, 1687,
+ 1677, 1651, 1688, 1690, 1691, 1692, 1696, 1716, 1682, 1733,
+ 1693, 1876, 1768, 1735, 1781, 1739, 1746, 1747, 1761, 1809,
+ 1815, 1812, 1817, 219, 1818, 1942, 1819, 400, 1820, 1821,
+ 1669, 1888, 1822, 1837, 1673, 1890, 1842, 2087, 1843, 1844,
+ 1889, 1893, 1891, 1892, 2091, 1895, 1896, 1897, 1899, 1900,
+ 1452, 1901, 460, 1904, 469, 472, 475, 479, 1702, 1906,
+ 1907, 1908, 1912, 1913, 1953, 1914, 1943, 1944, 1945, 1720,
+ 1949, 1950, 1964, 1952, 1954, 1955, 1724, 1725, 1956, 1960,
+ 1961, 1971, 544, 1963, 1965, 1966, 1967, 1731, 1972, 2387,
+ 1974, 1975, 1976, 465, 1977, 473, 476, 480, 1981, 558,
+ 562, 1982, 1985, 2490, 508, 1983, 1986, 1988, 1989, -1036,
+ 1997, 1999, 2003, 2007, 2018, 2266, 2019, 537, 2020, 2443,
+ 2024, 2063, 2068, 2069, 2072, 2078, 731, 2088, 2089, 2090,
+ 1072, 2094, 2480, 2095, 2096, 2435, 2105, 2108, 2109, 2134,
+ 2137, 2140, 2481, 2142, 633, 2143, 1993, 1994, 2144, 1996,
+ 2148, 1250, 2149, 2477, 2150, 2151, 2152, 2153, 2157, 2158,
+ 2166, 653, 2159, 2160, 2161, 2162, 1250, 2009, 2010, 2011,
+ 2012, 2013, 2014, 2015, 2016, 2017, 2167, 2175, 310, 2168,
+ 2178, 2186, 2189, 2192, 634, 311, 2193, 2195, 2021, 2198,
+ 2023, 2199, 1250, 2200, 2202, 2208, 2212, 2030, 2228, 2273,
+ 2274, 0, 2280, 2281, 2282, 2284, 2304, 1823, 2031, 2229,
+ 2230, 2231, 2286, 2288, 2235, 2289, 2237, 2238, 2295, 2240,
+ 2308, 2242, 2315, 2321, 2325, 2041, 2042, 2043, 2044, 2045,
+ 2046, 2047, 2048, 2049, 2050, 2328, 2051, 2052, 2053, 2054,
+ 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2334, 2064, 2341,
+ 2065, 2066, 2067, 2352, 0, 2374, 2381, 2383, 2385, 2386,
+ 728, 2389, 2414, 2420, 2276, 2423, 2077, 2428, 0, 2441,
+ 734, 2442, 2444, 2451, 2460, 2468, 2438, 2473, 2484, 742,
+ 2482, 2483, 2486, 2489, 0, 2499, 2500, 2509, 2517, 2080,
+ 2081, 2513, 2083, 2514, 2519, 2085, 0, 2086, 0, 0,
+ 0, 0, 0, 0, 2092, 2093, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 743,
+ 2100, 0, 2101, 0, 0, 0, 2104, 0, 0, 0,
+ 2106, 0, 0, 0, 0, 2438, 0, 0, 0, 1041,
+ 0, 0, 0, 0, 0, 779, 0, 0, 781, 782,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 786,
+ 0, 0, 0, 0, 789, 0, 0, 0, 0, 0,
+ 0, 0, 0, 798, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2136, 0, 0, 0, 312, 0,
+ 313, 637, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 792, 0, 0,
+ 0, 2344, 0, 0, 0, 0, 0, 0, 0, 2347,
+ 0, 0, 0, 2002, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 823,
+ 692, 831, 832, 0, 0, 0, 2372, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2026, 114, 115, 116,
+ 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
+ 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
+ 137, 138, 139, 140, 141, 0, 0, 2206, 0, 0,
+ 963, 0, 0, 0, 0, 0, 0, 722, 0, 0,
+ 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222,
+ 0, 0, 0, 0, 2226, 0, 0, 0, 0, 0,
+ 0, 2232, 0, 0, 2236, 0, 0, 0, 0, 2241,
+ 0, 0, 2243, 2244, 2245, 2246, 2247, 2248, 1250, 2250,
+ 2251, 2252, 1250, 2254, 2255, 2256, 2257, 1250, 2259, 2260,
+ 2261, 2262, 2263, 0, 2265, 0, 1250, 2269, 2270, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2515, 0, 2479, 0, 2517, 2370, 0, 0, 0,
- 2374, 0, 0, 0, 2520, 2521, 0, 1448, 1235, 0,
- 0, 1235, 2487, 0, 2488, 0, 1235, 2490, 0, 0,
- 1456, 0, 0, 0, 0, 110, 0, 0, 1417, 111,
- 2497, 0, 0, 0, 0, 0, 0, 0, 2504, 0,
- 0, 2507, 0, 1480, 0, 0, 0, 0, 1487, 0,
+ 0, 0, 0, 0, 2277, 0, 0, 0, 2279, 0,
+ 0, 0, 0, 2283, 0, 0, 775, 0, 0, 0,
+ 0, 0, 0, 0, 0, 783, 0, 0, 784, 0,
+ 0, 785, 1066, 0, 0, 787, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1235, 0, 1235, 0, 0,
+ 0, 1087, 0, 0, 0, 0, 0, 2296, 114, 115,
+ 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
+ 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 0, 1097, 1098, 1099,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1470, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1481, 0,
- 0, 0, 0, 1488, 0, 0, 0, 0, 0, 0,
- 0, 0, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 829, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 1095, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2336,
+ 0, 0, 0, 2338, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 2339, 1183, 0, 0, 0, 0, 2343,
+ 0, 0, 0, 0, 0, 0, 2346, 0, 0, 0,
+ 0, 0, 1250, 0, 2351, 0, 0, 2355, 2356, 0,
+ 1250, 0, 0, 0, 1250, 0, 0, 2365, 2366, 1250,
+ 2368, 2369, 2370, 2371, 0, 1194, 2373, 0, 0, 1001,
+ 2376, 0, 0, 0, 0, 0, 1007, 0, 0, 0,
+ 2384, 0, 0, 0, 0, 0, 2388, 0, 0, 0,
+ 99, 1313, 0, 0, 0, 0, 0, 2390, 0, 0,
+ 0, 0, 0, 0, 1341, 100, 0, 0, 0, 1342,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 101, 0, 0, 1343, 1344, 0, 1345,
+ 1346, 1314, 0, 0, 0, 2272, 0, 2405, 102, 2407,
+ 1347, 1371, 0, 0, 2411, 0, 0, 0, 0, 0,
+ 0, 1377, 1348, 1349, 1380, 0, 1250, 2418, 0, 0,
+ 1350, 0, 0, 1351, 1082, 0, 1250, 2427, 0, 0,
+ 1083, 2431, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1352, 0, 0, 103, 0, 1353, 1354, 0, 1355, 2449,
+ 0, 1378, 0, 0, 0, 0, 0, 104, 0, 0,
+ 0, 0, 0, 0, 0, 0, 2458, 0, 0, 0,
+ 0, 0, 2463, 0, 2465, 0, 0, 1102, 0, 0,
+ 0, 2469, 1106, 0, 2471, 1109, 0, 0, 0, 2474,
+ 0, 0, 0, 0, 1117, 105, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1428, 1356, 0, 0, 0,
+ 0, 2485, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1250, 0, 0, 1250,
+ 2492, 106, 2493, 0, 1250, 2495, 0, 0, 107, 1460,
+ 0, 0, 0, 108, 109, 1429, 2501, 0, 0, 110,
+ 0, 0, 1468, 2508, 0, 111, 2511, 1357, 0, 0,
+ 100, 0, 1358, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1359, 1496, 0, 1250, 0,
+ 1250, 1503, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 102, 0, 2378, 0, 0, 0, 2382,
+ 0, 0, 0, 0, 1482, 0, 0, 0, 0, 0,
+ 0, 1360, 1361, 0, 0, 0, 1497, 0, 0, 0,
+ 0, 1504, 0, 0, 0, 112, 0, 0, 0, 0,
+ 0, 0, 1362, 0, 0, 0, 0, 0, 103, 0,
+ 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
+ 1551, 1552, 1553, 0, 142, 0, 1363, 0, 143, 144,
+ 1555, 1556, 1557, 0, 0, 0, 1568, 1569, 1570, 0,
+ 105, 1571, 1572, 0, 1574, 1575, 0, 1650, 0, 0,
+ 0, 0, 1652, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1637, 0, 0, 0, 0, 0,
- 0, 0, 0, 1059, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1411, 1060, 0, 0, 0, 0, 1886,
- 0, 0, 1657, 0, 0, 0, 0, 1892, 1893, 0,
- 0, 0, 0, 0, 0, 0, 0, 1429, 956, 1061,
- 2494, 0, 1929, 1930, 0, 0, 957, 0, 1688, 1638,
- 0, 1690, 958, 1940, 1941, 1695, 0, 0, 1698, 1699,
- 0, 0, 1702, 1704, 1951, 1952, 0, 0, 959, 1707,
- 1455, 0, 1062, 0, 1961, 1962, 1709, 0, 0, 0,
- 1967, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1970, 0, 0, 960, 0, 0, 0, 0, 0, 0,
- 0, 961, 0, 1689, 0, 0, 1691, 0, 0, 0,
- 0, 0, 0, 0, 1700, 0, 1748, 1703, 0, 1751,
- 1752, 0, 0, 0, 1708, 0, 0, 0, 0, 0,
- 1760, 1710, 0, 0, 0, 0, 0, 962, 0, 0,
- 1541, 1542, 1543, 0, 963, 0, 0, 0, 0, 0,
- 1545, 1546, 1547, 0, 0, 0, 1558, 1559, 1560, 0,
- 0, 1561, 1562, 0, 1564, 1565, 0, 0, 0, 0,
- 0, 0, 1782, 0, 0, 0, 0, 0, 0, 0,
- 964, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 965, 0, 0, 0, 0, 0, 0, 0, 0,
- 1806, 1807, 0, 0, 0, 966, 0, 0, 0, 0,
- 0, 0, 0, 0, 1063, 1816, 1064, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1783, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1826, 1828, 1830, 1832, 1834, 0, 0, 1837, 0, 0,
- 1839, 0, 0, 1841, 1843, 1845, 1847, 1849, 1851, 0,
- 1853, 1854, 0, 0, 0, 1858, 0, 1859, 0, 1861,
- 1065, 0, 1864, 0, 0, 1865, 1866, 0, 1696, 0,
- 0, 1868, 1869, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1827, 1829, 1831, 1833, 1835,
- 0, 0, 1838, 0, 0, 1840, 0, 0, 1842, 1844,
- 1846, 1848, 1850, 1852, 0, 0, 1855, 0, 0, 0,
- 0, 0, 1860, 0, 1862, 0, 0, 0, 0, 0,
- 0, 1867, 0, 0, 0, 0, 0, 1870, 0, 1749,
- 0, 0, 0, 2126, 2017, 1755, 0, 0, 0, 0,
- 0, 0, 0, 2128, 0, 0, 0, 2132, 2133, 0,
- 0, 0, 0, 0, 0, 0, 2141, 2142, 0, 0,
- 0, 0, 0, 0, 0, 2150, 2151, 0, 0, 0,
- 0, 2156, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2166, 2167, 0, 0, 0, 1785, 1974, 0, 0,
- 1977, 0, 2177, 2178, 0, 90, 91, 0, 0, 0,
- 0, 1982, 0, 2181, 1986, 0, 0, 0, 0, 0,
- 0, 100, 2183, 0, 2184, 0, 0, 0, 1809, 0,
- 0, 0, 0, 0, 0, 0, 1815, 0, 258, 0,
- 0, 2004, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 102, 0, 0, 0, 0, 0, 0,
- 1825, 2089, 0, 0, 0, 0, 1983, 1836, 0, 1987,
- 0, 2094, 0, 2095, 0, 2096, 0, 0, 0, 2098,
- 0, 0, 2100, 0, 2101, 0, 0, 0, 2103, 0,
- 2104, 0, 2105, 0, 0, 2048, 2107, 103, 2108, 0,
- 0, 0, 0, 2112, 0, 1877, 2114, 0, 0, 2116,
- 2117, 0, 0, 2119, 0, 0, 0, 0, 1885, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1888, 0,
+ 1672, 0, 0, 0, 0, 0, 0, 0, 1423, 0,
+ 0, 0, 1653, 0, 110, 0, 0, 0, 0, 0,
+ 111, 0, 0, 0, 0, 0, 1703, 0, 0, 1705,
+ 0, 0, 1441, 0, 0, 0, 0, 0, 1721, 1723,
+ 0, 0, 0, 0, 0, 1726, 0, 0, 0, 0,
+ 0, 0, 1728, 0, 0, 0, 1210, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1467, 1704, 0, 0, 1706,
+ 0, 0, 0, 0, 2498, 0, 0, 0, 1722, 0,
+ 0, 0, 0, 0, 0, 1727, 0, 0, 0, 0,
+ 0, 1766, 1729, 0, 1769, 1770, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1778, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1800, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 105,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 2085, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1824, 1825, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1801, 0, 0,
+ 1834, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 1846,
+ 1848, 1850, 1852, 1854, 0, 0, 1857, 0, 0, 1859,
+ 0, 0, 1861, 1863, 1865, 1867, 1869, 1871, 0, 1873,
+ 1874, 0, 0, 0, 1877, 1878, 1880, 0, 1882, 1883,
+ 0, 0, 0, 0, 1885, 1886, 0, 0, 0, 1847,
+ 1849, 1851, 1853, 1855, 0, 0, 1858, 0, 0, 1860,
+ 0, 0, 1862, 1864, 1866, 1868, 1870, 1872, 0, 1718,
+ 1875, 0, 0, 0, 0, 1879, 1881, 0, 0, 1884,
+ 592, 593, 0, 0, 0, 1887, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1894, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1902,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1905,
+ 0, 0, 0, 0, 0, 0, 0, 1767, 0, 0,
+ 0, 0, 594, 1773, 0, 0, 0, 0, 595, 0,
+ 0, 0, 0, 0, 0, 596, 0, 597, 0, 0,
+ 0, 0, 598, 0, 0, 599, 0, 0, 0, 0,
+ 0, 600, 0, 0, 0, 1992, 0, 0, 1995, 0,
+ 0, 601, 0, 0, 0, 0, 0, 602, 0, 2000,
+ 0, 0, 2004, 0, 1803, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1068, 1567, 0, 603, 0, 0,
+ 0, 0, 0, 0, 0, 1069, 0, 1577, 0, 2022,
+ 0, 0, 0, 0, 0, 0, 1827, 0, 604, 2001,
+ 0, 0, 2005, 0, 1833, 1638, 1639, 0, 0, 0,
+ 965, 1070, 0, 0, 605, 0, 0, 0, 966, 0,
+ 0, 0, 606, 607, 967, 0, 0, 0, 0, 0,
+ 0, 0, 1845, 0, 0, 0, 0, 0, 0, 1856,
+ 968, 0, 608, 2103, 1071, 0, 2062, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2110, 0, 2111, 0, 2112,
+ 0, 0, 609, 2114, 0, 969, 2116, 0, 2117, 0,
+ 0, 0, 2119, 970, 2120, 610, 2121, 611, 0, 0,
+ 2123, 0, 2124, 0, 0, 0, 2127, 0, 612, 2129,
+ 0, 2130, 0, 613, 2132, 0, 0, 0, 0, 614,
+ 0, 0, 0, 0, 0, 0, 615, 0, 0, 971,
+ 0, 0, 0, 0, 0, 0, 972, 2099, 0, 0,
+ 0, 0, 0, 0, 616, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 617, 618, 0,
+ 619, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 973, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 974, 2126, 0, 0,
+ 0, 0, 2107, 0, 0, 0, 0, 0, 0, 0,
+ 620, 975, 0, 0, 0, 0, 1990, 0, 1991, 0,
+ 0, 1072, 0, 1073, 0, 0, 0, 0, 0, 0,
+ 0, 2201, 0, 0, 2205, 0, 0, 0, 2006, 2209,
+ 0, 0, 0, 2210, 0, 0, 0, 0, 0, 0,
+ 0, 2135, 0, 0, 0, 2138, 0, 0, 0, 0,
+ 0, 2225, 0, 0, 0, 0, 0, 0, 0, 2027,
+ 0, 2029, 0, 0, 0, 0, 0, 1074, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2034, 0, 2036,
+ 0, 0, 2037, 0, 2039, 2170, 2171, 2172, 2173, 2174,
+ 0, 2176, 2177, 0, 0, 0, 2181, 2182, 2183, 2184,
+ 2185, 0, 2187, 2188, 0, 2203, 0, 0, 2207, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2211, 0,
+ 0, 0, 2070, 0, 0, 2074, 2075, 0, 2287, 0,
+ 0, 0, 2223, 0, 2079, 2227, 0, 0, 0, 0,
+ 0, 0, 2233, 0, 0, 2204, 0, 2239, 0, 0,
+ 0, 0, 0, 0, 0, 2291, 2082, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1903, 0, 0, 0, 0,
+ 0, 0, 2224, 1909, 1910, 0, 0, 0, 0, 0,
+ 2097, 2098, 2234, 0, 0, 0, 0, 0, 1946, 1947,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1957,
+ 1958, 0, 0, 0, 0, 0, 0, 0, 2113, 0,
+ 1968, 1969, 0, 1124, 1125, 1126, 0, 2118, 0, 0,
+ 1978, 1979, 0, 0, 0, 2122, 1984, 0, 0, 0,
+ 2125, 0, 2333, 0, 2128, 0, 1987, 1127, 1128, 2131,
+ 0, 1129, 2133, 0, 0, 0, 0, 0, 1130, 0,
+ 0, 1131, 2340, 0, 0, 1132, 0, 0, 0, 0,
+ 0, 0, 2345, 1133, 1134, 0, 0, 0, 2348, 0,
+ 0, 1135, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2297, 0, 0, 2299, 2300, 2301, 2302, 2303, 0,
+ 2305, 2306, 0, 0, 0, 0, 1136, 1137, 0, 1138,
+ 0, 0, 2310, 2311, 2312, 2313, 2314, 0, 2316, 2317,
+ 0, 2319, 0, 2331, 1139, 0, 0, 0, 0, 0,
+ 0, 2322, 2323, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2326, 0, 0, 1140, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 2287, 0, 259, 0, 0, 0, 0,
- 0, 0, 0, 2296, 0, 0, 0, 0, 0, 0,
- 0, 0, 2298, 110, 0, 0, 0, 111, 0, 0,
- 0, 2307, 0, 0, 2110, 260, 0, 1973, 2309, 2188,
- 0, 0, 2192, 0, 0, 0, 0, 2196, 0, 2313,
- 1032, 2197, 0, 0, 0, 2316, 2093, 1988, 2318, 0,
- 0, 2319, 0, 0, 0, 0, 0, 0, 0, 2212,
+ 0, 2349, 0, 2332, 0, 0, 0, 1141, 0, 0,
+ 2401, 0, 0, 2361, 0, 0, 1142, 0, 0, 0,
+ 90, 91, 0, 0, 0, 0, 0, 0, 2413, 0,
+ 0, 0, 0, 0, 0, 0, 100, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2009, 0,
- 2011, 261, 0, 0, 0, 2014, 0, 0, 0, 0,
- 0, 0, 2019, 0, 2021, 0, 2122, 2022, 0, 2024,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
- 134, 135, 136, 137, 138, 139, 140, 141, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2056, 0,
- 2276, 2060, 2061, 0, 2190, 0, 0, 2194, 0, 0,
- 2065, 0, 0, 0, 0, 0, 0, 2198, 0, 2382,
- 0, 0, 0, 2384, 0, 2279, 0, 0, 0, 0,
- 2385, 2210, 2068, 0, 2214, 0, 2388, 90, 91, 0,
- 2390, 2220, 0, 2391, 0, 0, 0, 0, 0, 2227,
- 0, 0, 0, 100, 0, 0, 2083, 2084, 0, 2191,
+ 0, 0, 0, 260, 0, 0, 1143, 0, 0, 0,
+ 0, 0, 0, 1144, 1145, 0, 0, 0, 2264, 102,
+ 0, 0, 0, 0, 0, 0, 1146, 0, 0, 0,
+ 0, 2456, 0, 2457, 0, 2459, 1147, 2461, 0, 2462,
+ 0, 2464, 0, 0, 0, 2402, 2404, 0, 2406, 2392,
+ 0, 0, 2408, 2410, 0, 0, 0, 2412, 0, 0,
+ 2395, 1148, 2396, 1149, 103, 0, 2398, 0, 0, 0,
+ 0, 0, 0, 1150, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2432, 1151, 0, 2403, 0, 0, 0, 0,
+ 0, 0, 2409, 0, 0, 0, 2139, 0, 0, 90,
+ 91, 0, 0, 0, 0, 0, 2141, 0, 0, 0,
+ 2145, 2146, 0, 0, 0, 100, 105, 1152, 0, 2154,
+ 2155, 0, 0, 0, 0, 2512, 0, 0, 2163, 2164,
+ 0, 0, 0, 2452, 2169, 0, 2453, 0, 0, 2454,
+ 0, 2455, 0, 0, 2179, 2180, 0, 0, 102, 0,
+ 0, 0, 261, 0, 0, 2190, 2191, 0, 0, 0,
+ 0, 0, 0, 2335, 0, 0, 2194, 2337, 0, 0,
+ 110, 2487, 0, 0, 0, 2196, 111, 2197, 0, 0,
+ 0, 0, 0, 2342, 0, 0, 262, 2496, 0, 0,
+ 0, 0, 0, 103, 0, 0, 0, 2502, 0, 0,
+ 2505, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2488, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 90, 91, 0, 0, 0, 0, 0, 2503, 0, 0,
+ 2506, 0, 0, 263, 0, 105, 100, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2097, 0, 0, 0, 2211, 0, 0, 0,
- 0, 2102, 0, 0, 0, 0, 2221, 0, 0, 2106,
- 0, 0, 0, 0, 2109, 2322, 0, 0, 0, 2113,
- 0, 0, 0, 0, 0, 0, 2118, 2125, 0, 2120,
- 0, 0, 0, 0, 0, 2329, 0, 0, 0, 103,
- 0, 0, 0, 0, 0, 2334, 0, 0, 0, 0,
- 0, 0, 2338, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2157, 2158, 2159,
- 2160, 2161, 0, 2163, 2164, 0, 0, 0, 2168, 2169,
- 2170, 2171, 2172, 0, 2174, 2175, 0, 0, 0, 0,
- 0, 105, 114, 115, 116, 117, 118, 119, 120, 121,
+ 0, 0, 114, 115, 116, 117, 118, 119, 120, 121,
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
- 0, 0, 0, 0, 0, 0, 0, 2320, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2392, 0, 0, 0, 111,
+ 0, 0, 478, 0, 0, 0, 0, 0, 0, 110,
+ 0, 0, 0, 0, 0, 111, 0, 100, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2422, 0, 0,
+ 0, 0, 0, 0, 103, 0, 0, 0, 0, 0,
+ 0, 0, 2298, 0, 0, 0, 0, 0, 0, 0,
+ 102, 0, 2307, 0, 0, 0, 0, 0, 0, 0,
+ 0, 2309, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2318, 0, 0, 0, 0, 0, 0, 2320, 0, 0,
+ 0, 0, 0, 0, 0, 0, 105, 0, 2324, 0,
+ 0, 0, 0, 0, 2327, 103, 0, 2329, 2476, 0,
+ 2330, 114, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
+ 133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2404, 0, 2339, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2351, 0,
- 0, 0, 2321, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 111, 105, 0, 0,
+ 0, 0, 0, 2504, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 2515, 0,
+ 0, 2516, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2253, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2448, 0,
- 2449, 0, 2451, 0, 2453, 0, 2454, 0, 0, 0,
- 0, 0, 114, 115, 116, 117, 118, 119, 120, 121,
+ 0, 0, 0, 559, 100, 0, 0, 0, 0, 0,
+ 0, 110, 0, 0, 0, 0, 2391, 111, 0, 0,
+ 2393, 0, 0, 0, 0, 0, 0, 2394, 0, 0,
+ 0, 0, 0, 2397, 0, 0, 0, 2399, 0, 560,
+ 2400, 0, 114, 115, 116, 117, 118, 119, 120, 121,
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
- 0, 2393, 2395, 0, 2397, 554, 100, 2286, 2399, 2401,
- 2288, 2289, 2290, 2291, 2292, 0, 2294, 2295, 0, 0,
- 0, 2484, 0, 0, 0, 0, 0, 0, 2299, 2300,
- 2301, 2302, 2303, 0, 2305, 2306, 0, 2308, 0, 0,
- 555, 2424, 0, 0, 99, 0, 0, 2311, 2312, 0,
- 0, 0, 0, 0, 0, 0, 2394, 2509, 2315, 100,
- 0, 0, 0, 2400, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 101, 0, 0,
- 0, 2456, 103, 0, 0, 0, 0, 0, 0, 0,
- 0, 102, 556, 0, 2324, 0, 0, 0, 2326, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2331, 0, 0, 0, 475, 0,
+ 0, 0, 103, 0, 0, 0, 0, 0, 0, 100,
+ 0, 0, 561, 0, 0, 0, 0, 0, 0, 0,
+ 0, 450, 0, 114, 115, 116, 117, 118, 119, 120,
+ 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
+ 141, 451, 452, 0, 105, 453, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2481, 0, 0, 100, 105, 103, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2492, 104,
- 0, 0, 0, 0, 0, 0, 0, 0, 2498, 0,
- 0, 2501, 307, 0, 0, 102, 0, 0, 0, 308,
- 0, 0, 0, 0, 0, 0, 0, 2383, 0, 0,
- 0, 0, 0, 0, 0, 2482, 0, 105, 2386, 0,
- 2387, 0, 111, 0, 2389, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
- 0, 0, 0, 2499, 0, 0, 2502, 0, 0, 0,
- 0, 0, 0, 106, 0, 0, 0, 0, 0, 0,
- 107, 0, 0, 0, 0, 108, 109, 0, 0, 0,
- 0, 110, 0, 0, 0, 111, 0, 0, 0, 0,
- 0, 2413, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 105, 0, 2444, 0, 0, 2445, 0, 0, 2446,
- 0, 2447, 0, 0, 0, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 112, 0, 0, 110, 0, 0, 0, 111,
- 0, 0, 0, 0, 2470, 0, 0, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 0, 0, 0, 0,
- 0, 142, 0, 0, 0, 143, 144, 309, 0, 310,
+ 0, 0, 0, 0, 0, 0, 0, 454, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 103, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 2500, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 2512, 0,
- 0, 2513, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
- 0, 0, 100, 0, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
- 140, 141, 100, 0, 102, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 447, 114, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
- 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 141, 448, 449, 0, 0, 450, 103, 0,
+ 861, 0, 0, 0, 0, 0, 862, 0, 0, 0,
+ 0, 0, 0, 0, 111, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 451, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 103, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 105,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 455, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 456, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 457, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 111,
+ 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
+ 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
+ 134, 135, 136, 137, 138, 139, 140, 141, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 458, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 114, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
+ 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
+ 139, 140, 141, 0, 459, 876, 877, 878, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 452, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 110, 0, 0, 0, 111, 453,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 879,
+ 880, 0, 0, 881, 0, 100, 882, 0, 0, 0,
+ 0, 0, 0, 883, 0, 0, 0, 884, 0, 0,
+ 0, 0, 0, 0, 0, 885, 886, 0, 0, 0,
+ 0, 0, 0, 887, 888, 0, 0, 0, 102, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 454, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 111, 0,
+ 889, 0, 0, 0, 0, 0, 890, 0, 891, 892,
+ 100, 893, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 894, 0, 0, 0,
+ 0, 0, 0, 103, 0, 0, 0, 0, 100, 0,
+ 0, 0, 0, 0, 0, 0, 467, 895, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 468,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 896,
+ 0, 1182, 100, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 105, 0, 0, 103, 0,
+ 0, 897, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 103, 0, 898, 0,
+ 899, 0, 0, 0, 0, 900, 901, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 902, 903, 110,
+ 105, 0, 0, 0, 0, 111, 0, 0, 904, 0,
+ 103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 105, 0,
+ 0, 0, 0, 905, 0, 906, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 907, 0, 908,
+ 0, 0, 0, 0, 0, 909, 0, 0, 0, 471,
+ 111, 0, 105, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 455, 0, 0, 0, 0, 0, 0, 0,
- 0, 114, 115, 116, 117, 118, 119, 120, 121, 122,
- 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
- 133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 111, 910,
0, 114, 115, 116, 117, 118, 119, 120, 121, 122,
123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
133, 134, 135, 136, 137, 138, 139, 140, 141, 0,
- 456, 867, 868, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 869, 870, 0, 0, 871, 0, 100,
- 872, 0, 0, 0, 0, 0, 0, 873, 0, 0,
- 0, 874, 0, 0, 0, 0, 0, 0, 875, 876,
- 0, 0, 0, 0, 0, 0, 877, 878, 100, 0,
- 0, 102, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 879, 0, 0, 0, 0, 0, 880,
- 0, 881, 882, 0, 883, 0, 0, 0, 0, 0,
- 102, 0, 0, 0, 0, 0, 0, 0, 0, 884,
- 0, 0, 0, 0, 0, 103, 0, 0, 0, 100,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 885, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 103, 0, 0, 0, 0, 0,
- 100, 0, 886, 0, 464, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 105, 0, 0,
- 0, 0, 0, 0, 887, 0, 0, 0, 0, 0,
- 0, 0, 1173, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 103, 105, 888, 0, 889,
- 0, 0, 0, 0, 890, 891, 892, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 893, 894, 0,
- 0, 110, 0, 0, 0, 111, 103, 0, 895, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 105, 0, 0,
- 110, 896, 0, 897, 111, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 898, 0, 899, 0, 0,
- 0, 0, 0, 900, 0, 0, 0, 0, 105, 1297,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 100, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 111, 0, 901, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 111, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 465, 103, 853, 0, 0,
- 0, 0, 0, 854, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 0, 0, 105, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 140, 141, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 111, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 111, 468, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 114, 115,
+ 0, 0, 0, 0, 0, 0, 114, 115, 116, 117,
+ 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
+ 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
+ 138, 139, 140, 141, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
+ 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
+ 140, 141, 0, 0, 0, 0, 0, 0, 114, 115,
116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
- 135, 136, 137, 138, 139, 140, 141, 1115, 1116, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1117,
- 1118, 0, 0, 1119, 0, 0, 0, 0, 0, 0,
- 1120, 0, 0, 1121, 1, 0, 2, 1122, 0, 0,
- 0, 0, 0, 0, 1123, 1124, 0, 0, 0, 0,
- 3, 0, 1125, 0, 0, 4, 5, 0, 0, 6,
- 7, 0, 0, 0, 0, 0, 0, 8, 0, 0,
- 0, 0, 0, 0, 9, 0, 10, 1126, 1127, 0,
- 1128, 0, 0, 0, 0, 11, 12, 0, 0, 0,
- 0, 0, 0, 0, 0, 1129, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13, 0, 0, 0, 0, 0, 1130, 0, 0, 0,
- 0, 0, 14, 0, 0, 0, 15, 0, 0, 16,
- 0, 0, 0, 0, 17, 0, 18, 0, 1131, 0,
- 0, 0, 19, 0, 0, 0, 0, 1132, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 20, 0, 0, 0, 21, 22, 0, 0, 23,
- 24, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 25, 1133, 0, 0, 0, 165, 0, 166,
- 1134, 1135, 1136, 0, 0, 26, 27, 28, 0, 0,
- 0, 0, 0, 0, 1137, 0, 29, 0, 0, 167,
- 0, 168, 169, 170, 1138, 0, 30, 0, 0, 31,
- 171, 32, 172, 33, 0, 0, 0, 173, 34, 174,
- 0, 175, 0, 0, 0, 0, 176, 1139, 177, 1140,
- 35, 0, 0, 0, 0, 36, 0, 0, 0, 1141,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 1142,
- 0, 37, 178, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 38, 0, 39, 0, 0, 0, 0, 179,
- 40, 0, 0, 41, 42, 0, 0, 0, 0, 0,
- 0, 180, 181, 1143, 0, 182, 0, 0, 0, 183,
- 0, 0, 0, 1209, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 43, 0, 0, 0, 0, 0,
- 44, 0, 184, 185, 0, 0, 186, 0, 0, 0,
- 0, 0, 0, 0, 0, 187, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 188, 189,
- 0, 0, 0, 0, 0, 190, 0, 0, 0, 0,
+ 136, 137, 138, 139, 140, 141, 1, 0, 2, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 191, 0, 192, 0, 0, 0,
+ 0, 0, 0, 3, 0, 0, 0, 0, 4, 5,
+ 0, 0, 6, 7, 0, 0, 0, 0, 0, 0,
+ 0, 8, 0, 0, 0, 0, 0, 0, 9, 0,
+ 10, 0, 0, 165, 0, 166, 0, 0, 0, 11,
+ 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 167, 0, 168, 169,
+ 170, 0, 0, 0, 13, 0, 0, 0, 171, 0,
+ 172, 0, 0, 0, 0, 173, 14, 174, 0, 175,
+ 15, 0, 0, 16, 176, 0, 177, 0, 17, 0,
+ 18, 0, 0, 0, 0, 0, 19, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 193, 0,
+ 178, 0, 0, 0, 0, 20, 0, 0, 0, 21,
+ 22, 0, 0, 23, 24, 0, 0, 179, 0, 0,
+ 0, 0, 0, 0, 0, 0, 25, 0, 0, 180,
+ 181, 0, 0, 182, 0, 0, 0, 183, 0, 26,
+ 27, 28, 1218, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 29, 0, 0, 0, 0, 0,
+ 184, 185, 0, 30, 186, 0, 31, 0, 32, 0,
+ 33, 0, 0, 187, 0, 34, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 188, 189, 35, 0,
+ 0, 0, 0, 36, 0, 190, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 194, 0, 0, 0, 0, 0,
- 0, 0, 195, 0, 0, 0, 0, 0, 0, 196,
- 0, 0, 0, 0, 0, 197, 0, 198, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 141, 1210, 0, 0, 0,
- 0, 0, 0, 199
+ 37, 0, 0, 0, 0, 191, 0, 192, 0, 0,
+ 0, 38, 0, 39, 0, 0, 0, 0, 0, 40,
+ 0, 0, 41, 42, 0, 0, 0, 0, 0, 0,
+ 193, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 194, 0, 0,
+ 0, 0, 0, 43, 0, 195, 0, 0, 0, 44,
+ 0, 0, 196, 0, 0, 0, 0, 0, 197, 0,
+ 198, 0, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+ 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
+ 1219, 0, 0, 0, 0, 0, 199
};
static const yytype_int16 yycheck[] =
{
- 9, 5, 5, 42, 199, 1450, 5, 1452, 6, 4,
- 16, 605, 61, 867, 31, 5, 600, 601, 27, 3,
- 4, 5, 5, 4, 33, 56, 3, 4, 3, 4,
- 3, 4, 41, 3, 4, 44, 85, 17, 47, 3,
- 4, 4, 51, 0, 61, 54, 4, 5, 57, 847,
- 4, 60, 850, 12, 63, 3, 4, 74, 67, 34,
- 77, 32, 37, 72, 37, 4, 3, 4, 85, 51,
- 34, 3, 4, 3, 4, 4, 93, 91, 27, 5,
- 27, 54, 26, 92, 82, 94, 95, 96, 97, 48,
- 93, 3, 4, 35, 4, 159, 99, 122, 1277, 13,
- 3, 4, 156, 61, 113, 131, 5, 66, 3, 4,
- 207, 20, 110, 21, 182, 21, 2429, 107, 3, 4,
- 147, 51, 34, 134, 82, 77, 123, 127, 103, 30,
- 103, 776, 777, 778, 45, 94, 182, 160, 136, 148,
- 6, 93, 4, 207, 167, 35, 121, 174, 165, 108,
- 12, 109, 111, 212, 42, 133, 87, 121, 167, 2472,
- 21, 229, 259, 172, 123, 191, 166, 56, 61, 113,
- 128, 17, 103, 4, 5, 61, 159, 822, 189, 185,
- 109, 52, 93, 229, 5, 27, 203, 11, 12, 243,
- 120, 181, 61, 176, 18, 259, 3, 4, 22, 109,
- 177, 226, 3, 4, 28, 182, 14, 15, 183, 121,
- 183, 21, 159, 183, 125, 232, 810, 197, 227, 201,
- 212, 232, 219, 21, 207, 59, 240, 61, 259, 268,
- 239, 240, 190, 5, 58, 225, 213, 195, 196, 14,
- 15, 250, 27, 182, 110, 177, 177, 21, 56, 258,
- 259, 282, 261, 262, 1433, 264, 396, 247, 207, 236,
- 207, 190, 225, 262, 178, 274, 195, 196, 317, 409,
- 56, 201, 281, 282, 177, 278, 259, 281, 109, 27,
- 190, 56, 263, 184, 267, 195, 196, 258, 297, 298,
- 270, 300, 265, 288, 269, 304, 305, 281, 892, 269,
- 317, 227, 279, 172, 261, 269, 315, 316, 217, 263,
- 269, 219, 321, 219, 272, 909, 158, 326, 327, 317,
- 278, 269, 259, 265, 110, 334, 225, 151, 152, 153,
- 154, 155, 156, 157, 158, 159, 160, 208, 172, 269,
- 349, 350, 351, 272, 353, 322, 323, 279, 357, 358,
- 359, 197, 361, 263, 58, 176, 940, 269, 219, 190,
- 271, 249, 272, 321, 195, 196, 324, 325, 326, 378,
- 259, 179, 180, 382, 269, 265, 279, 219, 387, 388,
- 389, 390, 391, 392, 269, 394, 1240, 971, 397, 398,
- 322, 323, 321, 282, 98, 58, 325, 326, 219, 268,
- 207, 410, 30, 61, 179, 180, 207, 39, 279, 219,
- 158, 321, 1266, 237, 238, 325, 326, 259, 140, 322,
- 323, 219, 207, 37, 270, 28, 37, 28, 1226, 58,
- 4, 1229, 1286, 241, 268, 98, 260, 209, 259, 14,
- 15, 272, 250, 251, 17, 219, 37, 278, 1093, 0,
- 459, 460, 461, 462, 41, 1100, 30, 288, 4, 5,
- 5, 119, 3, 4, 250, 17, 241, 54, 477, 98,
- 294, 219, 17, 281, 4, 250, 251, 5, 56, 37,
- 246, 56, 3, 4, 113, 56, 5, 145, 75, 103,
- 321, 631, 103, 27, 325, 326, 505, 81, 537, 3,
- 4, 4, 56, 61, 3, 4, 281, 94, 5, 55,
- 4, 259, 103, 5, 218, 61, 238, 14, 15, 92,
- 107, 51, 4, 110, 152, 534, 230, 231, 5, 161,
- 5, 17, 110, 572, 238, 93, 3, 4, 141, 110,
- 141, 99, 1136, 37, 5, 103, 4, 51, 135, 136,
- 3, 4, 22, 1147, 37, 218, 110, 566, 216, 56,
- 163, 119, 163, 147, 167, 5, 167, 230, 231, 183,
- 198, 112, 183, 119, 44, 584, 51, 47, 152, 5,
- 3, 4, 140, 30, 4, 60, 132, 54, 183, 218,
- 599, 219, 183, 602, 140, 735, 107, 149, 156, 145,
- 187, 230, 231, 261, 179, 180, 76, 194, 211, 103,
- 211, 620, 621, 622, 623, 319, 320, 626, 140, 628,
- 103, 630, 61, 632, 198, 159, 184, 191, 242, 4,
- 5, 242, 102, 49, 104, 2080, 160, 676, 3, 4,
- 780, 88, 245, 72, 245, 219, 5, 193, 4, 5,
- 253, 254, 253, 254, 176, 113, 319, 320, 216, 246,
- 247, 670, 671, 209, 673, 674, 241, 213, 84, 227,
- 216, 201, 250, 207, 65, 250, 251, 686, 687, 250,
- 238, 198, 179, 180, 693, 694, 97, 72, 82, 183,
- 319, 320, 238, 83, 193, 61, 250, 201, 244, 5,
- 183, 5, 711, 712, 713, 263, 281, 154, 14, 15,
- 14, 15, 106, 129, 83, 261, 139, 275, 99, 277,
- 278, 730, 731, 732, 40, 734, 201, 736, 5, 738,
- 317, 225, 213, 162, 192, 260, 560, 14, 15, 209,
- 193, 2345, 264, 26, 241, 168, 755, 112, 757, 31,
- 56, 2355, 56, 250, 251, 1553, 320, 140, 255, 317,
- 282, 325, 5, 327, 773, 81, 177, 3, 4, 160,
- 4, 317, 781, 24, 25, 1573, 785, 162, 99, 56,
- 604, 175, 229, 4, 281, 609, 5, 234, 797, 798,
- 1588, 1645, 5, 1591, 188, 804, 805, 806, 3, 4,
- 229, 1599, 811, 184, 1602, 92, 1660, 816, 817, 225,
- 1455, 4, 1610, 22, 853, 1613, 4, 5, 27, 5,
- 203, 830, 1620, 3, 4, 22, 3, 4, 115, 147,
- 113, 4, 1686, 224, 43, 44, 4, 46, 47, 4,
- 91, 5, 233, 4, 229, 239, 227, 44, 57, 54,
- 47, 91, 992, 50, 4, 238, 2460, 37, 867, 68,
- 69, 2465, 4, 184, 151, 181, 149, 76, 4, 5,
- 79, 3, 4, 179, 180, 179, 180, 54, 887, 76,
- 247, 177, 891, 4, 278, 17, 182, 96, 3, 4,
- 4, 274, 101, 102, 288, 104, 4, 12, 4, 908,
- 1095, 1096, 179, 180, 222, 102, 227, 104, 917, 4,
- 2514, 5, 2516, 3, 4, 5, 4, 213, 3, 4,
- 4, 29, 931, 103, 933, 384, 385, 12, 937, 938,
- 939, 4, 40, 1012, 1013, 241, 5, 241, 947, 4,
- 236, 950, 260, 952, 250, 251, 250, 251, 235, 255,
- 4, 255, 4, 162, 9, 140, 19, 1097, 5, 968,
- 11, 970, 70, 5, 241, 974, 975, 14, 15, 160,
- 78, 246, 4, 250, 251, 281, 4, 281, 255, 988,
- 989, 182, 160, 279, 993, 994, 3, 4, 167, 4,
- 999, 176, 1001, 1032, 4, 1004, 185, 1006, 185, 5,
- 209, 109, 5, 183, 281, 214, 215, 4, 71, 56,
- 185, 5, 209, 208, 4, 78, 4, 4, 1027, 228,
- 37, 1030, 185, 131, 81, 88, 89, 323, 3, 4,
- 4, 81, 95, 14, 15, 5, 1045, 4, 1047, 4,
- 1049, 1050, 1051, 1052, 3, 4, 1055, 1056, 7, 8,
- 113, 5, 93, 262, 263, 17, 14, 15, 3, 4,
- 5, 5, 37, 4, 261, 1074, 17, 130, 3, 4,
- 5, 17, 1081, 181, 283, 56, 1085, 1086, 1087, 264,
- 4, 266, 190, 146, 4, 4, 103, 195, 196, 1098,
- 914, 154, 1101, 91, 202, 5, 204, 282, 56, 5,
- 1109, 3, 4, 1112, 1749, 1903, 4, 9, 10, 11,
- 173, 3, 4, 5, 1912, 7, 8, 225, 327, 4,
- 3, 4, 5, 1921, 7, 8, 2233, 157, 103, 2236,
- 4, 2238, 179, 180, 12, 2242, 2243, 14, 15, 5,
- 12, 4, 205, 967, 4, 1154, 4, 1156, 4, 48,
- 1159, 1160, 2259, 977, 1163, 5, 5, 4, 4, 1299,
- 1169, 5, 1171, 4, 272, 237, 263, 66, 5, 1178,
- 1815, 3, 4, 5, 4, 7, 8, 5, 2032, 56,
- 288, 5, 2036, 82, 5, 5, 249, 2041, 4, 4,
- 248, 1836, 5, 5, 241, 94, 259, 5, 179, 180,
- 5, 5, 4, 250, 251, 4, 219, 5, 255, 108,
- 5, 5, 111, 321, 5, 5, 5, 325, 326, 4,
- 4, 179, 180, 219, 123, 288, 1366, 219, 1237, 1238,
- 1239, 1240, 99, 219, 281, 1399, 1400, 1401, 1402, 1403,
- 1404, 1405, 1406, 5, 99, 127, 219, 219, 99, 37,
- 1259, 5, 223, 246, 1263, 197, 37, 1266, 197, 5,
- 241, 4, 1336, 14, 15, 164, 5, 5, 1463, 250,
- 251, 197, 197, 4, 4, 1284, 1285, 1286, 5, 5,
- 1475, 5, 5, 241, 103, 1294, 103, 1296, 4, 328,
- 5, 5, 250, 251, 4, 12, 5, 5, 4, 4,
- 281, 5, 179, 180, 5, 56, 4, 6, 5, 5,
- 1319, 4, 12, 5, 328, 1324, 328, 328, 6, 1328,
- 328, 1330, 1331, 281, 1333, 1334, 1335, 328, 1337, 328,
- 4, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348,
- 1349, 1350, 4, 328, 1353, 1354, 1355, 1356, 4, 33,
- 4, 4, 4, 4, 1363, 1364, 5, 0, 5, 127,
- 1369, 1370, 1371, 159, 241, 1374, 1375, 219, 4, 4,
- 246, 219, 5, 250, 251, 2229, 219, 1386, 1387, 219,
- 1389, 1390, 227, 2237, 219, 219, 193, 2241, 185, 4,
- 4, 4, 2246, 4, 248, 27, 5, 5, 1407, 5,
- 1409, 5, 5, 4, 281, 1414, 1415, 4, 1417, 1418,
- 1419, 2056, 1421, 1422, 5, 1424, 100, 4, 1427, 1428,
- 2065, 4, 4, 61, 5, 5, 219, 219, 179, 180,
- 4, 4, 116, 117, 118, 1444, 74, 1261, 4, 219,
- 124, 1265, 1451, 285, 4, 83, 4, 285, 4, 81,
- 27, 1460, 1461, 137, 4, 93, 5, 207, 207, 207,
- 144, 1470, 5, 207, 2109, 1289, 207, 1476, 2113, 5,
- 5, 155, 6, 2118, 106, 2120, 6, 4, 1302, 5,
- 4, 119, 5, 5, 5, 1309, 1310, 4, 4, 4,
- 241, 5, 5, 4, 4, 1504, 1320, 5, 5, 250,
- 251, 5, 140, 5, 4, 4, 248, 5, 4, 12,
- 5, 5, 5, 4, 4, 248, 5, 5, 5, 5,
- 4, 1530, 4, 248, 5, 1534, 5, 5, 5, 106,
- 281, 1540, 4, 4, 281, 5, 5, 5, 5, 171,
- 4, 173, 174, 175, 176, 4, 184, 5, 5, 1689,
- 5, 5, 4, 4, 261, 5, 1696, 1697, 4, 4,
- 4, 4, 4, 1703, 5, 5, 5, 5, 1708, 201,
- 1710, 5, 4, 257, 5, 5, 4, 4, 216, 4,
- 4, 4, 261, 5, 5, 217, 218, 4, 6, 4,
- 6, 5, 4, 6, 5, 172, 5, 174, 175, 176,
- 238, 5, 4, 2457, 4, 4, 183, 5, 5, 5,
- 4, 4, 383, 5, 5, 1755, 5, 1441, 5, 196,
- 4, 4, 1066, 5, 5, 5, 5, 4, 4, 261,
- 5, 1640, 1641, 4, 1643, 4, 1645, 275, 4, 277,
- 4, 4, 4, 4, 4, 1785, 278, 4, 4, 4,
- 4, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668,
- 1669, 4, 4, 4, 4, 4, 2370, 5, 5, 5,
- 4, 4, 4, 1682, 5, 1684, 5, 1686, 5, 4,
- 4, 4, 1691, 4, 261, 1694, 4, 5, 4, 4,
- 4, 4, 4, 2431, 5, 5, 5, 5, 5, 4,
- 4, 4, 4, 4, 4, 4, 1715, 1716, 1717, 1718,
- 1719, 1720, 1721, 1722, 1723, 1724, 5, 1726, 1727, 1728,
- 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 5,
- 1739, 5, 1741, 1742, 1743, 4, 4, 55, 4, 4,
- 328, 5, 5, 61, 376, 5, 4, 4, 1757, 67,
- 85, 69, 4, 4, 386, 5, 74, 5, 93, 77,
- 5, 5, 5, 395, 99, 83, 4, 4, 2427, -1,
- -1, 1780, 1781, -1, 1783, 93, -1, 1786, 2372, 1788,
- 115, 99, -1, -1, -1, -1, 1795, 1796, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 119, 1811, -1, 1813, 140, -1, -1, 1817, -1,
- -1, -1, 1821, 148, -1, -1, -1, -1, 395, -1,
- -1, -1, 140, -1, -1, -1, -1, -1, -1, 461,
- 1654, -1, 464, 465, -1, -1, -1, 2431, 156, -1,
- -1, -1, -1, 475, -1, -1, 164, 165, 480, 184,
- -1, -1, -1, 263, -1, -1, 191, 489, -1, -1,
- -1, -1, -1, 1687, -1, -1, 184, 1876, -1, 2009,
- 2010, 2011, -1, -1, -1, 2015, -1, -1, -1, 2019,
- 2020, -1, 2022, -1, 2024, 203, -1, -1, -1, -1,
- -1, -1, 227, -1, -1, 213, -1, -1, 216, -1,
- -1, 311, -1, 238, -1, -1, 483, -1, -1, 227,
- -1, -1, 846, -1, 232, -1, -1, 252, -1, -1,
- 238, -1, -1, 555, 556, -1, 244, -1, 2068, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 515, -1,
- -1, -1, -1, 261, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 274, 275, 368, 277,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 1978,
- -1, 603, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, -1, -1, -1, -1, 2005, -1, -1, 317,
- -1, -1, -1, 2012, -1, -1, -1, 2016, -1, -1,
- -1, -1, -1, -1, 2023, -1, -1, 2026, 2027, 2028,
- 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038,
- 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, -1,
- 2049, -1, 2051, 2052, 2053, -1, -1, 457, -1, -1,
- -1, -1, -1, -1, -1, -1, 466, -1, -1, 469,
- 2069, -1, 472, -1, 2073, -1, 476, -1, -1, 2078,
- -1, -1, -1, -1, -1, -1, 2216, -1, -1, -1,
- -1, -1, 714, -1, -1, 2225, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 733, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 2253, 2123, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 541, -1, -1, -1, -1, -1, 769, 770, 771,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 2239, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 2250, -1, 755, -1,
- -1, -1, 2256, -1, -1, -1, 2195, -1, -1, -1,
- 2199, -1, -1, 825, -1, -1, -1, -1, -1, -1,
- 2209, -1, -1, -1, -1, -1, 2215, -1, -1, -1,
- -1, -1, -1, 2222, -1, -1, -1, 627, -1, -1,
- 2229, -1, 2231, -1, 634, 2234, 2235, -1, 2237, -1,
- -1, -1, 2241, 2057, -1, 2244, 2245, 2246, 2247, 2248,
- 2249, -1, 2251, -1, -1, 2254, -1, -1, -1, 2258,
- -1, -1, -1, -1, -1, -1, -1, -1, 890, 2268,
- 1194, -1, -1, -1, -1, 2274, -1, 3, 4, 2343,
- 2344, -1, 1206, 2347, -1, 2349, 2285, -1, -1, 2353,
- 2354, -1, -1, 19, 2358, 2359, -1, -1, -1, -1,
- 1224, 1225, -1, -1, 2368, 2369, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 941,
- -1, 721, -1, 890, -1, 51, 2325, 727, 2327, 951,
- -1, -1, 954, 2332, -1, -1, -1, -1, -1, -1,
- -1, 2405, -1, -1, 2408, -1, 2345, 2346, -1, 2413,
- -1, -1, -1, 2417, -1, -1, 2355, 2356, 2422, 2423,
- -1, 2360, -1, -1, -1, -1, -1, -1, -1, 95,
- -1, -1, -1, -1, 774, -1, -1, -1, -1, 779,
- -1, 2380, 782, -1, 951, -1, -1, -1, -1, -1,
- -1, 791, -1, -1, -1, -1, -1, 2396, -1, -1,
- -1, -1, -1, 2402, -1, 2404, -1, -1, -1, -1,
- -1, -1, 2411, -1, -1, 2414, 835, -1, -1, -1,
- 2419, 147, 2486, 1045, -1, 2489, -1, 2491, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 2505, -1, 2442, -1, 2509, 2260, -1, -1, -1,
- 2264, -1, -1, -1, 2518, 2519, -1, 1079, 2457, -1,
- -1, 2460, 2461, -1, 2463, -1, 2465, 2466, -1, -1,
- 1092, -1, -1, -1, -1, 201, -1, -1, 1045, 205,
- 2479, -1, -1, -1, -1, -1, -1, -1, 2487, -1,
- -1, 2490, -1, 1115, -1, -1, -1, -1, 1120, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 2514, -1, 2516, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 1104, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 1115, -1,
- -1, -1, -1, 1120, -1, -1, -1, -1, -1, -1,
- -1, -1, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
- 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 1236, -1, -1, -1, -1, -1,
- -1, -1, -1, 50, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 1033, 61, -1, -1, -1, -1, 1563,
- -1, -1, 1264, -1, -1, -1, -1, 1571, 1572, -1,
- -1, -1, -1, -1, -1, -1, -1, 1057, 85, 86,
- 2474, -1, 1586, 1587, -1, -1, 93, -1, 1290, 1236,
- -1, 1293, 99, 1597, 1598, 1297, -1, -1, 1300, 1301,
- -1, -1, 1304, 1305, 1608, 1609, -1, -1, 115, 1311,
- 1090, -1, 119, -1, 1618, 1619, 1318, -1, -1, -1,
- 1624, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 1634, -1, -1, 140, -1, -1, -1, -1, -1, -1,
- -1, 148, -1, 1290, -1, -1, 1293, -1, -1, -1,
- -1, -1, -1, -1, 1301, -1, 1358, 1304, -1, 1361,
- 1362, -1, -1, -1, 1311, -1, -1, -1, -1, -1,
- 1372, 1318, -1, -1, -1, -1, -1, 184, -1, -1,
- 1179, 1180, 1181, -1, 191, -1, -1, -1, -1, -1,
- 1189, 1190, 1191, -1, -1, -1, 1195, 1196, 1197, -1,
- -1, 1200, 1201, -1, 1203, 1204, -1, -1, -1, -1,
- -1, -1, 1414, -1, -1, -1, -1, -1, -1, -1,
- 227, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 238, -1, -1, -1, -1, -1, -1, -1, -1,
- 1442, 1443, -1, -1, -1, 252, -1, -1, -1, -1,
- -1, -1, -1, -1, 261, 1457, 263, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 1414, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 1482, 1483, 1484, 1485, 1486, -1, -1, 1489, -1, -1,
- 1492, -1, -1, 1495, 1496, 1497, 1498, 1499, 1500, -1,
- 1502, 1503, -1, -1, -1, 1507, -1, 1509, -1, 1511,
- 317, -1, 1514, -1, -1, 1517, 1518, -1, 1298, -1,
- -1, 1523, 1524, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 1482, 1483, 1484, 1485, 1486,
- -1, -1, 1489, -1, -1, 1492, -1, -1, 1495, 1496,
- 1497, 1498, 1499, 1500, -1, -1, 1503, -1, -1, -1,
- -1, -1, 1509, -1, 1511, -1, -1, -1, -1, -1,
- -1, 1518, -1, -1, -1, -1, -1, 1524, -1, 1359,
- -1, -1, -1, 1887, 1699, 1365, -1, -1, -1, -1,
- -1, -1, -1, 1897, -1, -1, -1, 1901, 1902, -1,
- -1, -1, -1, -1, -1, -1, 1910, 1911, -1, -1,
- -1, -1, -1, -1, -1, 1919, 1920, -1, -1, -1,
- -1, 1925, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 1935, 1936, -1, -1, -1, 1416, 1639, -1, -1,
- 1642, -1, 1946, 1947, -1, 3, 4, -1, -1, -1,
- -1, 1653, -1, 1957, 1656, -1, -1, -1, -1, -1,
- -1, 19, 1966, -1, 1968, -1, -1, -1, 1448, -1,
- -1, -1, -1, -1, -1, -1, 1456, -1, 36, -1,
- -1, 1683, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 51, -1, -1, -1, -1, -1, -1,
- 1480, 1816, -1, -1, -1, -1, 1653, 1487, -1, 1656,
- -1, 1826, -1, 1828, -1, 1830, -1, -1, -1, 1834,
- -1, -1, 1837, -1, 1839, -1, -1, -1, 1843, -1,
- 1845, -1, 1847, -1, -1, 1737, 1851, 95, 1853, -1,
- -1, -1, -1, 1858, -1, 1544, 1861, -1, -1, 1864,
- 1865, -1, -1, 1868, -1, -1, -1, -1, 1557, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 1567, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 147,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 1808, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 2127, -1, 183, -1, -1, -1, -1,
- -1, -1, -1, 2137, -1, -1, -1, -1, -1, -1,
- -1, -1, 2146, 201, -1, -1, -1, 205, -1, -1,
- -1, 2155, -1, -1, 1856, 213, -1, 1637, 2162, 1974,
- -1, -1, 1977, -1, -1, -1, -1, 1982, -1, 2173,
- 6, 1986, -1, -1, -1, 2179, 1823, 1657, 2182, -1,
- -1, 2185, -1, -1, -1, -1, -1, -1, -1, 2004,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 1688, -1,
- 1690, 269, -1, -1, -1, 1695, -1, -1, -1, -1,
- -1, -1, 1702, -1, 1704, -1, 1873, 1707, -1, 1709,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
+ 9, 199, 1462, 42, 1464, 606, 607, 611, 35, 4,
+ 5, 4, 35, 4, 6, 877, 5, 4, 27, 855,
+ 3, 4, 858, 5, 33, 5, 32, 0, 3, 4,
+ 5, 27, 41, 4, 4, 44, 4, 5, 47, 27,
+ 3, 4, 51, 5, 20, 54, 53, 32, 57, 3,
+ 4, 60, 3, 4, 63, 21, 44, 4, 67, 47,
+ 4, 3, 4, 72, 16, 62, 52, 62, 3, 4,
+ 58, 3, 4, 50, 17, 5, 125, 3, 4, 161,
+ 34, 399, 21, 92, 4, 94, 95, 96, 97, 84,
+ 93, 37, 84, 81, 412, 3, 4, 62, 46, 34,
+ 99, 3, 4, 124, 113, 52, 95, 3, 4, 86,
+ 98, 133, 101, 17, 142, 1349, 111, 39, 111, 83,
+ 112, 13, 87, 213, 2437, 31, 24, 25, 0, 3,
+ 4, 213, 783, 784, 785, 130, 17, 4, 5, 148,
+ 111, 42, 218, 111, 204, 79, 138, 95, 3, 4,
+ 52, 211, 212, 30, 131, 129, 62, 62, 167, 105,
+ 246, 95, 57, 172, 160, 2478, 252, 3, 4, 123,
+ 76, 193, 184, 79, 17, 224, 266, 174, 829, 127,
+ 179, 87, 3, 4, 21, 149, 4, 5, 123, 95,
+ 94, 57, 274, 62, 168, 93, 252, 192, 34, 192,
+ 55, 37, 197, 198, 197, 198, 266, 214, 151, 5,
+ 231, 135, 21, 817, 21, 243, 179, 203, 114, 228,
+ 122, 192, 234, 21, 192, 5, 197, 198, 224, 197,
+ 198, 270, 241, 242, 185, 187, 27, 218, 56, 185,
+ 114, 163, 245, 252, 62, 272, 222, 3, 4, 272,
+ 27, 260, 261, 230, 263, 264, 203, 266, 224, 265,
+ 230, 167, 14, 15, 184, 11, 12, 276, 230, 105,
+ 266, 179, 18, 27, 283, 284, 22, 270, 275, 286,
+ 265, 213, 28, 270, 279, 224, 279, 123, 180, 269,
+ 285, 300, 301, 276, 303, 268, 285, 901, 307, 308,
+ 206, 203, 232, 121, 295, 57, 288, 184, 279, 318,
+ 319, 279, 58, 288, 918, 324, 134, 285, 199, 637,
+ 329, 330, 276, 286, 142, 276, 270, 295, 337, 147,
+ 278, 237, 324, 328, 276, 328, 331, 332, 333, 332,
+ 333, 276, 4, 352, 353, 354, 334, 356, 949, 185,
+ 276, 360, 361, 362, 255, 364, 199, 328, 179, 324,
+ 328, 332, 333, 184, 332, 333, 329, 330, 60, 160,
+ 62, 266, 381, 26, 276, 37, 385, 195, 286, 980,
+ 4, 390, 391, 392, 393, 394, 395, 224, 397, 5,
+ 59, 400, 401, 1255, 289, 37, 277, 215, 219, 1235,
+ 266, 219, 1238, 221, 413, 151, 152, 153, 154, 155,
+ 156, 157, 158, 159, 160, 224, 37, 224, 324, 1281,
+ 241, 329, 330, 289, 742, 243, 224, 3, 4, 181,
+ 182, 100, 250, 224, 277, 215, 213, 3, 4, 1301,
+ 276, 62, 4, 105, 158, 101, 27, 142, 12, 37,
+ 268, 1102, 4, 462, 463, 464, 465, 213, 1109, 213,
+ 57, 37, 115, 105, 27, 286, 5, 57, 30, 787,
+ 149, 480, 6, 5, 95, 266, 41, 59, 17, 55,
+ 101, 5, 174, 5, 105, 49, 52, 57, 3, 4,
+ 55, 115, 1292, 239, 240, 247, 4, 176, 57, 508,
+ 121, 540, 33, 67, 256, 257, 324, 37, 329, 330,
+ 17, 206, 77, 184, 4, 112, 262, 105, 100, 246,
+ 62, 142, 112, 185, 30, 252, 3, 4, 537, 105,
+ 186, 96, 96, 115, 5, 249, 288, 158, 577, 29,
+ 84, 1145, 112, 185, 109, 5, 110, 112, 243, 113,
+ 40, 297, 1156, 112, 223, 208, 5, 5, 3, 4,
+ 37, 125, 571, 234, 108, 186, 235, 236, 230, 4,
+ 194, 102, 137, 138, 243, 105, 232, 109, 112, 121,
+ 161, 590, 72, 275, 5, 185, 281, 118, 119, 120,
+ 80, 89, 154, 14, 15, 126, 605, 185, 161, 608,
+ 221, 3, 4, 52, 5, 147, 248, 105, 139, 185,
+ 12, 232, 61, 14, 15, 146, 109, 626, 627, 628,
+ 629, 111, 243, 632, 189, 634, 157, 636, 105, 638,
+ 5, 196, 213, 177, 2094, 59, 57, 203, 200, 14,
+ 15, 223, 62, 133, 683, 1445, 190, 94, 154, 270,
+ 213, 183, 161, 235, 236, 185, 57, 326, 327, 256,
+ 248, 282, 224, 284, 285, 4, 256, 26, 677, 678,
+ 117, 680, 681, 12, 74, 30, 100, 14, 15, 221,
+ 195, 179, 57, 1001, 693, 694, 256, 252, 253, 66,
+ 22, 700, 701, 183, 200, 162, 272, 256, 230, 149,
+ 244, 142, 192, 324, 213, 200, 153, 197, 198, 718,
+ 719, 720, 276, 45, 85, 205, 48, 207, 224, 51,
+ 57, 253, 28, 14, 15, 5, 268, 1563, 737, 738,
+ 739, 62, 741, 264, 743, 90, 745, 178, 74, 5,
+ 230, 285, 3, 4, 326, 327, 78, 1583, 14, 15,
+ 195, 295, 85, 762, 203, 764, 115, 266, 5, 324,
+ 181, 182, 1598, 219, 164, 1601, 57, 14, 15, 68,
+ 136, 780, 104, 1609, 106, 162, 1612, 227, 267, 788,
+ 181, 182, 169, 792, 1620, 162, 31, 1623, 1106, 279,
+ 5, 57, 151, 240, 1630, 804, 805, 142, 1660, 223,
+ 4, 156, 811, 812, 813, 295, 181, 182, 5, 818,
+ 57, 235, 236, 1675, 823, 824, 1467, 267, 4, 565,
+ 3, 4, 861, 3, 4, 191, 247, 101, 164, 838,
+ 271, 5, 273, 178, 234, 256, 257, 143, 328, 1701,
+ 261, 5, 332, 333, 181, 182, 247, 5, 289, 208,
+ 4, 5, 229, 4, 37, 256, 257, 14, 15, 165,
+ 261, 238, 4, 169, 610, 179, 4, 288, 877, 615,
+ 184, 237, 247, 22, 4, 14, 15, 3, 4, 234,
+ 141, 256, 257, 215, 239, 40, 261, 288, 897, 5,
+ 181, 182, 3, 4, 3, 4, 45, 93, 234, 48,
+ 57, 12, 326, 327, 4, 219, 1104, 1105, 917, 170,
+ 247, 217, 186, 288, 5, 181, 182, 926, 57, 256,
+ 257, 28, 105, 4, 14, 15, 271, 241, 83, 78,
+ 193, 940, 4, 942, 181, 182, 268, 946, 947, 948,
+ 3, 4, 3, 4, 289, 251, 55, 956, 3, 4,
+ 959, 288, 961, 259, 260, 104, 247, 106, 232, 253,
+ 14, 15, 17, 4, 5, 256, 257, 57, 977, 4,
+ 979, 4, 286, 4, 983, 984, 37, 204, 3, 4,
+ 5, 247, 7, 8, 211, 212, 4, 5, 997, 998,
+ 256, 257, 55, 1002, 1003, 261, 1314, 288, 4, 1008,
+ 247, 1010, 1041, 57, 1013, 5, 1015, 4, 2355, 256,
+ 257, 3, 4, 5, 261, 4, 330, 2251, 2365, 3,
+ 4, 5, 288, 4, 181, 182, 5, 1036, 183, 4,
+ 1039, 387, 388, 2267, 4, 262, 143, 1021, 1022, 266,
+ 4, 288, 181, 182, 105, 1054, 9, 1056, 5, 1058,
+ 1059, 1060, 1061, 11, 252, 1064, 1065, 162, 165, 4,
+ 1378, 4, 169, 184, 327, 169, 215, 162, 4, 332,
+ 2245, 334, 187, 2248, 1083, 2250, 3, 4, 5, 2254,
+ 2255, 1090, 62, 4, 1920, 1094, 1095, 1096, 187, 5,
+ 247, 181, 182, 1929, 5, 2270, 76, 4, 1107, 256,
+ 257, 1110, 1938, 187, 5, 85, 214, 5, 247, 1118,
+ 217, 4, 1121, 4, 4, 95, 1767, 256, 257, 2353,
+ 2354, 2468, 187, 2357, 185, 2359, 2473, 181, 182, 2363,
+ 2364, 288, 3, 4, 2368, 2369, 83, 83, 9, 10,
+ 11, 121, 2376, 2377, 251, 5, 3, 4, 5, 288,
+ 7, 8, 259, 260, 1163, 4, 1165, 247, 4, 1168,
+ 1169, 5, 142, 1172, 4, 87, 256, 257, 5, 1178,
+ 2517, 1180, 2519, 95, 17, 95, 5, 923, 1187, 101,
+ 2414, 17, 1833, 2417, 17, 2047, 4, 4, 2422, 2051,
+ 49, 4, 2426, 247, 2056, 117, 93, 2431, 288, 5,
+ 5, 4, 256, 257, 4, 1856, 186, 4, 67, 1411,
+ 1412, 1413, 1414, 1415, 1416, 1417, 1418, 3, 4, 5,
+ 142, 7, 8, 4, 12, 84, 5, 12, 150, 4,
+ 976, 4, 242, 4, 288, 4, 4, 96, 5, 5,
+ 986, 221, 159, 1252, 1253, 1254, 1255, 19, 3, 4,
+ 4, 110, 7, 8, 113, 5, 4, 2491, 270, 5,
+ 2494, 4, 4, 243, 186, 1274, 125, 5, 40, 1278,
+ 5, 193, 1281, 5, 5, 2509, 4, 1475, 2512, 5,
+ 5, 254, 5, 5, 5, 4, 4, 2521, 2522, 1487,
+ 1299, 1300, 1301, 5, 5, 5, 5, 5, 5, 4,
+ 1309, 73, 282, 1312, 284, 4, 224, 166, 80, 224,
+ 232, 224, 101, 5, 224, 129, 224, 101, 90, 91,
+ 37, 243, 224, 1332, 101, 97, 5, 199, 1337, 228,
+ 199, 37, 1341, 5, 1343, 1344, 258, 1346, 1347, 1348,
+ 4, 1350, 5, 115, 1353, 1354, 1355, 1356, 1357, 1358,
+ 1359, 1360, 1361, 1362, 5, 4, 1365, 1366, 1367, 1368,
+ 132, 199, 4, 4, 199, 5, 1375, 1376, 5, 5,
+ 5, 105, 1381, 1382, 1383, 105, 148, 1386, 1387, 2241,
+ 5, 5, 4, 4, 156, 5, 1704, 2249, 5, 1398,
+ 1399, 2253, 1401, 1402, 5, 5, 2258, 4, 4, 12,
+ 1718, 1719, 5, 175, 1722, 5, 4, 12, 27, 1727,
+ 1419, 1729, 1421, 6, 5, 4, 335, 1426, 1427, 2070,
+ 1429, 1430, 1431, 335, 1433, 1434, 335, 1436, 2079, 335,
+ 1439, 1440, 335, 6, 4, 335, 4, 209, 4, 335,
+ 335, 4, 4, 0, 5, 4, 224, 1456, 27, 5,
+ 224, 129, 4, 4, 1463, 1773, 232, 161, 195, 224,
+ 224, 224, 81, 1472, 1473, 224, 4, 187, 4, 4,
+ 4, 254, 5, 1482, 2125, 5, 5, 2128, 5, 1488,
+ 2131, 5, 2133, 255, 5, 1803, 4, 106, 4, 6,
+ 5, 4, 4, 292, 266, 5, 5, 224, 4, 4,
+ 224, 1247, 4, 4, 4, 4, 4, 4, 224, 5,
+ 292, 1520, 5, 213, 5, 213, 213, 213, 213, 5,
+ 4, 6, 5, 295, 4, 254, 5, 106, 5, 5,
+ 1276, 1540, 4, 4, 1280, 1544, 4, 12, 5, 5,
+ 4, 1550, 5, 4, 6, 5, 5, 5, 4, 4,
+ 1075, 5, 171, 4, 173, 174, 175, 176, 1304, 5,
+ 5, 5, 4, 4, 254, 5, 5, 5, 5, 1315,
+ 4, 4, 254, 5, 5, 5, 1322, 1323, 5, 4,
+ 4, 4, 201, 5, 5, 5, 5, 1333, 4, 6,
+ 5, 5, 5, 172, 5, 174, 175, 176, 4, 218,
+ 219, 4, 4, 2465, 183, 5, 4, 4, 4, 268,
+ 5, 5, 5, 5, 4, 288, 5, 196, 4, 6,
+ 5, 5, 4, 4, 4, 4, 386, 5, 5, 4,
+ 268, 4, 335, 5, 4, 2378, 5, 5, 5, 4,
+ 4, 4, 2439, 5, 263, 5, 1655, 1656, 5, 1658,
+ 4, 1660, 4, 2435, 5, 5, 5, 5, 4, 4,
+ 4, 280, 5, 5, 5, 5, 1675, 1676, 1677, 1678,
+ 1679, 1680, 1681, 1682, 1683, 1684, 4, 4, 16, 5,
+ 4, 4, 4, 4, 263, 23, 4, 4, 1697, 4,
+ 1699, 4, 1701, 4, 4, 4, 4, 1706, 4, 4,
+ 4, -1, 5, 5, 4, 4, 4, 1453, 1717, 2027,
+ 2028, 2029, 5, 5, 2032, 5, 2034, 2035, 5, 2037,
+ 4, 2039, 4, 4, 4, 1734, 1735, 1736, 1737, 1738,
+ 1739, 1740, 1741, 1742, 1743, 4, 1745, 1746, 1747, 1748,
+ 1749, 1750, 1751, 1752, 1753, 1754, 1755, 4, 1757, 4,
+ 1759, 1760, 1761, 4, -1, 5, 5, 5, 5, 4,
+ 379, 5, 4, 4, 2082, 4, 1775, 4, -1, 5,
+ 389, 5, 4, 4, 4, 4, 2380, 4, 4, 398,
+ 5, 5, 4, 4, -1, 5, 5, 4, 4, 1798,
+ 1799, 5, 1801, 5, 4, 1804, -1, 1806, -1, -1,
+ -1, -1, -1, -1, 1813, 1814, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 398,
+ 1829, -1, 1831, -1, -1, -1, 1835, -1, -1, -1,
+ 1839, -1, -1, -1, -1, 2439, -1, -1, -1, 6,
+ -1, -1, -1, -1, -1, 464, -1, -1, 467, 468,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 478,
+ -1, -1, -1, -1, 483, -1, -1, -1, -1, -1,
+ -1, -1, -1, 492, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 1893, -1, -1, -1, 226, -1,
+ 228, 265, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 486, -1, -1,
+ -1, 2229, -1, -1, -1, -1, -1, -1, -1, 2237,
+ -1, -1, -1, 1669, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 518,
+ 314, 560, 561, -1, -1, -1, 2264, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1702, 295, 296, 297,
298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
- 308, 309, 310, 311, 312, 313, 314, 315, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 1748, -1,
- 2085, 1751, 1752, -1, 1976, -1, -1, 1979, -1, -1,
- 1760, -1, -1, -1, -1, -1, -1, 1989, -1, 2293,
- -1, -1, -1, 2297, -1, 2110, -1, -1, -1, -1,
- 2304, 2003, 1782, -1, 2006, -1, 2310, 3, 4, -1,
- 2314, 2013, -1, 2317, -1, -1, -1, -1, -1, 2021,
- -1, -1, -1, 19, -1, -1, 1806, 1807, -1, 1976,
+ 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
+ 318, 319, 320, 321, 322, -1, -1, 1996, -1, -1,
+ 609, -1, -1, -1, -1, -1, -1, 371, -1, -1,
+ 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018,
+ -1, -1, -1, -1, 2023, -1, -1, -1, -1, -1,
+ -1, 2030, -1, -1, 2033, -1, -1, -1, -1, 2038,
+ -1, -1, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048,
+ 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058,
+ 2059, 2060, 2061, -1, 2063, -1, 2065, 2066, 2067, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 2083, -1, -1, -1, 2087, -1,
+ -1, -1, -1, 2092, -1, -1, 460, -1, -1, -1,
+ -1, -1, -1, -1, -1, 469, -1, -1, 472, -1,
+ -1, 475, 721, -1, -1, 479, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 1832, -1, -1, -1, 2003, -1, -1, -1,
- -1, 1841, -1, -1, -1, -1, 2013, -1, -1, 1849,
- -1, -1, -1, -1, 1854, 2190, -1, -1, -1, 1859,
- -1, -1, -1, -1, -1, -1, 1866, 1886, -1, 1869,
- -1, -1, -1, -1, -1, 2210, -1, -1, -1, 95,
- -1, -1, -1, -1, -1, 2220, -1, -1, -1, -1,
- -1, -1, 2227, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 1926, 1927, 1928,
- 1929, 1930, -1, 1932, 1933, -1, -1, -1, 1937, 1938,
- 1939, 1940, 1941, -1, 1943, 1944, -1, -1, -1, -1,
- -1, 147, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
- 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- -1, -1, -1, -1, -1, -1, -1, 2189, -1, -1,
+ -1, 740, -1, -1, -1, -1, -1, 2136, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
+ 317, 318, 319, 320, 321, 322, -1, 776, 777, 778,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 2320, -1, -1, -1, 205,
+ 544, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 762, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 2208,
+ -1, -1, -1, 2212, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 2222, 833, -1, -1, -1, -1, 2228,
+ -1, -1, -1, -1, -1, -1, 2235, -1, -1, -1,
+ -1, -1, 2241, -1, 2243, -1, -1, 2246, 2247, -1,
+ 2249, -1, -1, -1, 2253, -1, -1, 2256, 2257, 2258,
+ 2259, 2260, 2261, 2262, -1, 843, 2265, -1, -1, 633,
+ 2269, -1, -1, -1, -1, -1, 640, -1, -1, -1,
+ 2279, -1, -1, -1, -1, -1, 2285, -1, -1, -1,
+ 4, 900, -1, -1, -1, -1, -1, 2296, -1, -1,
+ -1, -1, -1, -1, 22, 19, -1, -1, -1, 27,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 2339, -1, 2228, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 2240, -1,
- -1, -1, 2189, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 37, -1, -1, 44, 45, -1, 47,
+ 48, 900, -1, -1, -1, 2071, -1, 2336, 52, 2338,
+ 58, 950, -1, -1, 2343, -1, -1, -1, -1, -1,
+ -1, 960, 70, 71, 963, -1, 2355, 2356, -1, -1,
+ 78, -1, -1, 81, 728, -1, 2365, 2366, -1, -1,
+ 734, 2370, -1, -1, -1, -1, -1, -1, -1, -1,
+ 98, -1, -1, 97, -1, 103, 104, -1, 106, 2388,
+ -1, 960, -1, -1, -1, -1, -1, 111, -1, -1,
+ -1, -1, -1, -1, -1, -1, 2405, -1, -1, -1,
+ -1, -1, 2411, -1, 2413, -1, -1, 781, -1, -1,
+ -1, 2420, 786, -1, 2423, 789, -1, -1, -1, 2428,
+ -1, -1, -1, -1, 798, 149, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1054, 164, -1, -1, -1,
+ -1, 2450, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 2465, -1, -1, 2468,
+ 2469, 185, 2471, -1, 2473, 2474, -1, -1, 192, 1088,
+ -1, -1, -1, 197, 198, 1054, 2485, -1, -1, 203,
+ -1, -1, 1101, 2492, -1, 209, 2495, 215, -1, -1,
+ 19, -1, 220, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 233, 1125, -1, 2517, -1,
+ 2519, 1130, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 52, -1, 2271, -1, -1, -1, 2275,
+ -1, -1, -1, -1, 1113, -1, -1, -1, -1, -1,
+ -1, 269, 270, -1, -1, -1, 1125, -1, -1, -1,
+ -1, 1130, -1, -1, -1, 279, -1, -1, -1, -1,
+ -1, -1, 290, -1, -1, -1, -1, -1, 97, -1,
+ 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
+ 314, 315, 316, 317, 318, 319, 320, 321, 322, -1,
+ 1188, 1189, 1190, -1, 328, -1, 334, -1, 332, 333,
+ 1198, 1199, 1200, -1, -1, -1, 1204, 1205, 1206, -1,
+ 149, 1209, 1210, -1, 1212, 1213, -1, 1246, -1, -1,
+ -1, -1, 1251, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 2048, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 2393, -1,
- 2395, -1, 2397, -1, 2399, -1, 2401, -1, -1, -1,
- -1, -1, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
- 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- -1, 2323, 2324, -1, 2326, 18, 19, 2126, 2330, 2331,
- 2129, 2130, 2131, 2132, 2133, -1, 2135, 2136, -1, -1,
- -1, 2456, -1, -1, -1, -1, -1, -1, 2147, 2148,
- 2149, 2150, 2151, -1, 2153, 2154, -1, 2156, -1, -1,
- 53, 2363, -1, -1, 4, -1, -1, 2166, 2167, -1,
- -1, -1, -1, -1, -1, -1, 2323, 2492, 2177, 19,
- -1, -1, -1, 2330, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 37, -1, -1,
- -1, 2403, 95, -1, -1, -1, -1, -1, -1, -1,
- -1, 51, 105, -1, 2194, -1, -1, -1, 2198, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 2214, -1, -1, -1, 4, -1,
+ 1279, -1, -1, -1, -1, -1, -1, -1, 1042, -1,
+ -1, -1, 1251, -1, 203, -1, -1, -1, -1, -1,
+ 209, -1, -1, -1, -1, -1, 1305, -1, -1, 1308,
+ -1, -1, 1066, -1, -1, -1, -1, -1, 1317, 1318,
+ -1, -1, -1, -1, -1, 1324, -1, -1, -1, -1,
+ -1, -1, 1331, -1, -1, -1, 854, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1099, 1305, -1, -1, 1308,
+ -1, -1, -1, -1, 2480, -1, -1, -1, 1317, -1,
+ -1, -1, -1, -1, -1, 1324, -1, -1, -1, -1,
+ -1, 1370, 1331, -1, 1373, 1374, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1384, 295, 296, 297, 298,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
+ 319, 320, 321, 322, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 1426, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 2452, -1, -1, 19, 147, 95, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 2470, 109,
- -1, -1, -1, -1, -1, -1, -1, -1, 2480, -1,
- -1, 2483, 16, -1, -1, 51, -1, -1, -1, 23,
- -1, -1, -1, -1, -1, -1, -1, 2296, -1, -1,
- -1, -1, -1, -1, -1, 2452, -1, 147, 2307, -1,
- 2309, -1, 205, -1, 2313, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
- -1, -1, -1, 2480, -1, -1, 2483, -1, -1, -1,
- -1, -1, -1, 183, -1, -1, -1, -1, -1, -1,
- 190, -1, -1, -1, -1, 195, 196, -1, -1, -1,
- -1, 201, -1, -1, -1, 205, -1, -1, -1, -1,
- -1, 2351, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 147, -1, 2382, -1, -1, 2385, -1, -1, 2388,
- -1, 2390, -1, -1, -1, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
- 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 272, -1, -1, 201, -1, -1, -1, 205,
- -1, -1, -1, -1, 2424, -1, -1, 287, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, -1, -1, -1, -1,
- -1, 321, -1, -1, -1, 325, 326, 221, -1, 223,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 2481, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 2498, -1,
- -1, 2501, 288, 289, 290, 291, 292, 293, 294, 295,
- 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
- 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
- -1, -1, 19, -1, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ -1, -1, -1, -1, -1, 1454, 1455, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 1426, -1, -1,
+ 1469, 295, 296, 297, 298, 299, 300, 301, 302, 303,
304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 19, -1, 51, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 31, 288, 289, 290, 291, 292,
- 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
- 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
- 313, 314, 315, 60, 61, -1, -1, 64, 95, -1,
+ 314, 315, 316, 317, 318, 319, 320, 321, 322, 1498,
+ 1499, 1500, 1501, 1502, -1, -1, 1505, -1, -1, 1508,
+ -1, -1, 1511, 1512, 1513, 1514, 1515, 1516, -1, 1518,
+ 1519, -1, -1, -1, 1523, 1524, 1525, -1, 1527, 1528,
+ -1, -1, -1, -1, 1533, 1534, -1, -1, -1, 1498,
+ 1499, 1500, 1501, 1502, -1, -1, 1505, -1, -1, 1508,
+ -1, -1, 1511, 1512, 1513, 1514, 1515, 1516, -1, 1313,
+ 1519, -1, -1, -1, -1, 1524, 1525, -1, -1, 1528,
+ 4, 5, -1, -1, -1, 1534, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 1554, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1567,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1577,
+ -1, -1, -1, -1, -1, -1, -1, 1371, -1, -1,
+ -1, -1, 56, 1377, -1, -1, -1, -1, 62, -1,
+ -1, -1, -1, -1, -1, 69, -1, 71, -1, -1,
+ -1, -1, 76, -1, -1, 79, -1, -1, -1, -1,
+ -1, 85, -1, -1, -1, 1654, -1, -1, 1657, -1,
+ -1, 95, -1, -1, -1, -1, -1, 101, -1, 1668,
+ -1, -1, 1671, -1, 1428, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 51, 1203, -1, 121, -1, -1,
+ -1, -1, -1, -1, -1, 62, -1, 1215, -1, 1698,
+ -1, -1, -1, -1, -1, -1, 1460, -1, 142, 1668,
+ -1, -1, 1671, -1, 1468, 1233, 1234, -1, -1, -1,
+ 87, 88, -1, -1, 158, -1, -1, -1, 95, -1,
+ -1, -1, 166, 167, 101, -1, -1, -1, -1, -1,
+ -1, -1, 1496, -1, -1, -1, -1, -1, -1, 1503,
+ 117, -1, 186, 1834, 121, -1, 1755, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1846, -1, 1848, -1, 1850,
+ -1, -1, 206, 1854, -1, 142, 1857, -1, 1859, -1,
+ -1, -1, 1863, 150, 1865, 219, 1867, 221, -1, -1,
+ 1871, -1, 1873, -1, -1, -1, 1877, -1, 232, 1880,
+ -1, 1882, -1, 237, 1885, -1, -1, -1, -1, 243,
+ -1, -1, -1, -1, -1, -1, 250, -1, -1, 186,
+ -1, -1, -1, -1, -1, -1, 193, 1826, -1, -1,
+ -1, -1, -1, -1, 268, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 281, 282, -1,
+ 284, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 232, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 243, 1876, -1, -1,
+ -1, -1, 1841, -1, -1, -1, -1, -1, -1, -1,
+ 324, 258, -1, -1, -1, -1, 1650, -1, 1652, -1,
+ -1, 268, -1, 270, -1, -1, -1, -1, -1, -1,
+ -1, 1992, -1, -1, 1995, -1, -1, -1, 1672, 2000,
+ -1, -1, -1, 2004, -1, -1, -1, -1, -1, -1,
+ -1, 1890, -1, -1, -1, 1903, -1, -1, -1, -1,
+ -1, 2022, -1, -1, -1, -1, -1, -1, -1, 1703,
+ -1, 1705, -1, -1, -1, -1, -1, 324, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 1721, -1, 1723,
+ -1, -1, 1726, -1, 1728, 1943, 1944, 1945, 1946, 1947,
+ -1, 1949, 1950, -1, -1, -1, 1954, 1955, 1956, 1957,
+ 1958, -1, 1960, 1961, -1, 1994, -1, -1, 1997, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 2007, -1,
+ -1, -1, 1766, -1, -1, 1769, 1770, -1, 2099, -1,
+ -1, -1, 2021, -1, 1778, 2024, -1, -1, -1, -1,
+ -1, -1, 2031, -1, -1, 1994, -1, 2036, -1, -1,
+ -1, -1, -1, -1, -1, 2126, 1800, -1, -1, -1,
+ -1, -1, -1, -1, -1, 1573, -1, -1, -1, -1,
+ -1, -1, 2021, 1581, 1582, -1, -1, -1, -1, -1,
+ 1824, 1825, 2031, -1, -1, -1, -1, -1, 1596, 1597,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1607,
+ 1608, -1, -1, -1, -1, -1, -1, -1, 1852, -1,
+ 1618, 1619, -1, 20, 21, 22, -1, 1861, -1, -1,
+ 1628, 1629, -1, -1, -1, 1869, 1634, -1, -1, -1,
+ 1874, -1, 2203, -1, 1878, -1, 1644, 44, 45, 1883,
+ -1, 48, 1886, -1, -1, -1, -1, -1, 55, -1,
+ -1, 58, 2223, -1, -1, 62, -1, -1, -1, -1,
+ -1, -1, 2233, 70, 71, -1, -1, -1, 2239, -1,
+ -1, 78, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 2139, -1, -1, 2142, 2143, 2144, 2145, 2146, -1,
+ 2148, 2149, -1, -1, -1, -1, 103, 104, -1, 106,
+ -1, -1, 2160, 2161, 2162, 2163, 2164, -1, 2166, 2167,
+ -1, 2169, -1, 2202, 121, -1, -1, -1, -1, -1,
+ -1, 2179, 2180, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 2190, -1, -1, 142, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 85, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 95, -1,
+ -1, 2240, -1, 2202, -1, -1, -1, 164, -1, -1,
+ 2331, -1, -1, 2252, -1, -1, 173, -1, -1, -1,
+ 3, 4, -1, -1, -1, -1, -1, -1, 2349, -1,
+ -1, -1, -1, -1, -1, -1, 19, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 36, -1, -1, 213, -1, -1, -1,
+ -1, -1, -1, 220, 221, -1, -1, -1, 2062, 52,
+ -1, -1, -1, -1, -1, -1, 233, -1, -1, -1,
+ -1, 2402, -1, 2404, -1, 2406, 243, 2408, -1, 2410,
+ -1, 2412, -1, -1, -1, 2334, 2335, -1, 2337, 2307,
+ -1, -1, 2341, 2342, -1, -1, -1, 2346, -1, -1,
+ 2318, 268, 2320, 270, 97, -1, 2324, -1, -1, -1,
+ -1, -1, -1, 280, -1, -1, -1, -1, -1, -1,
+ -1, -1, 2371, 290, -1, 2334, -1, -1, -1, -1,
+ -1, -1, 2341, -1, -1, -1, 1904, -1, -1, 3,
+ 4, -1, -1, -1, -1, -1, 1914, -1, -1, -1,
+ 1918, 1919, -1, -1, -1, 19, 149, 324, -1, 1927,
+ 1928, -1, -1, -1, -1, 2496, -1, -1, 1936, 1937,
+ -1, -1, -1, 2391, 1942, -1, 2394, -1, -1, 2397,
+ -1, 2399, -1, -1, 1952, 1953, -1, -1, 52, -1,
+ -1, -1, 185, -1, -1, 1963, 1964, -1, -1, -1,
+ -1, -1, -1, 2207, -1, -1, 1974, 2211, -1, -1,
+ 203, 2460, -1, -1, -1, 1983, 209, 1985, -1, -1,
+ -1, -1, -1, 2227, -1, -1, 219, 2476, -1, -1,
+ -1, -1, -1, 97, -1, -1, -1, 2486, -1, -1,
+ 2489, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 2460, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 147, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 3, 4, -1, -1, -1, -1, -1, 2486, -1, -1,
+ 2489, -1, -1, 276, -1, 149, 19, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
+ 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
+ -1, -1, 4, -1, -1, -1, -1, -1, -1, 203,
+ -1, -1, -1, -1, -1, 209, -1, 19, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 2361, -1, -1,
+ -1, -1, -1, -1, 97, -1, -1, -1, -1, -1,
+ -1, -1, 2140, -1, -1, -1, -1, -1, -1, -1,
+ 52, -1, 2150, -1, -1, -1, -1, -1, -1, -1,
+ -1, 2159, -1, -1, -1, -1, -1, -1, -1, -1,
+ 2168, -1, -1, -1, -1, -1, -1, 2175, -1, -1,
+ -1, -1, -1, -1, -1, -1, 149, -1, 2186, -1,
+ -1, -1, -1, -1, 2192, 97, -1, 2195, 2432, -1,
+ 2198, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
+ 314, 315, 316, 317, 318, 319, 320, 321, 322, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 147, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 160, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 201, -1, -1, -1, 205, 176,
+ -1, -1, -1, -1, -1, -1, 209, 149, -1, -1,
+ -1, -1, -1, 2487, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 2502, -1,
+ -1, 2505, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 193, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 205, -1,
+ -1, -1, -1, 18, 19, -1, -1, -1, -1, -1,
+ -1, 203, -1, -1, -1, -1, 2304, 209, -1, -1,
+ 2308, -1, -1, -1, -1, -1, -1, 2315, -1, -1,
+ -1, -1, -1, 2321, -1, -1, -1, 2325, -1, 54,
+ 2328, -1, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
+ 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 256,
+ -1, -1, 97, -1, -1, -1, -1, -1, -1, 19,
+ -1, -1, 107, -1, -1, -1, -1, -1, -1, -1,
+ -1, 31, -1, 295, 296, 297, 298, 299, 300, 301,
+ 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
+ 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
+ 322, 61, 62, -1, 149, 65, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 87, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 97, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 249, -1, -1, -1, -1, -1, -1, -1,
- -1, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, -1,
- -1, 288, 289, 290, 291, 292, 293, 294, 295, 296,
- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, -1,
- 317, 21, 22, -1, -1, -1, -1, -1, -1, -1,
+ 149, -1, -1, -1, -1, -1, 155, -1, -1, -1,
+ -1, -1, -1, -1, 209, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 43, 44, -1, -1, 47, -1, 19,
- 50, -1, -1, -1, -1, -1, -1, 57, -1, -1,
- -1, 61, -1, -1, -1, -1, -1, -1, 68, 69,
- -1, -1, -1, -1, -1, -1, 76, 77, 19, -1,
- -1, 51, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 93, -1, -1, -1, -1, -1, 99,
- -1, 101, 102, -1, 104, -1, -1, -1, -1, -1,
- 51, -1, -1, -1, -1, -1, -1, -1, -1, 119,
- -1, -1, -1, -1, -1, 95, -1, -1, -1, 19,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 149,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 140, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
- 19, -1, 162, -1, 54, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 147, -1, -1,
- -1, -1, -1, -1, 184, -1, -1, -1, -1, -1,
- -1, -1, 51, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 95, 147, 207, -1, 209,
- -1, -1, -1, -1, 214, 215, 216, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 227, 228, -1,
- -1, 201, -1, -1, -1, 205, 95, -1, 238, -1,
+ -1, -1, 162, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 178, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 147, -1, -1,
- 201, 261, -1, 263, 205, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 275, -1, 277, -1, -1,
- -1, -1, -1, 283, -1, -1, -1, -1, 147, 259,
+ -1, -1, -1, -1, -1, 195, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 209,
+ 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
+ 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 19, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 205, -1, 317, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, 205, 288, 289, 290,
- 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
- 311, 312, 313, 314, 315, 265, 95, 147, -1, -1,
- -1, -1, -1, 153, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, -1, -1, 147, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
+ -1, -1, -1, -1, -1, 255, 295, 296, 297, 298,
299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 205, -1, -1, -1,
+ 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
+ 319, 320, 321, 322, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
+ 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
+ 320, 321, 322, -1, 324, 20, 21, 22, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 44,
+ 45, -1, -1, 48, -1, 19, 51, -1, -1, -1,
+ -1, -1, -1, 58, -1, -1, -1, 62, -1, -1,
+ -1, -1, -1, -1, -1, 70, 71, -1, -1, -1,
+ -1, -1, -1, 78, 79, -1, -1, -1, 52, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, -1, -1, -1, -1,
+ 95, -1, -1, -1, -1, -1, 101, -1, 103, 104,
+ 19, 106, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 121, -1, -1, -1,
+ -1, -1, -1, 97, -1, -1, -1, -1, 19, -1,
+ -1, -1, -1, -1, -1, -1, 55, 142, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 288,
- 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
- 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
- 309, 310, 311, 312, 313, 314, 315, 21, 22, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 164,
+ -1, 52, 19, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 149, -1, -1, 97, -1,
+ -1, 186, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 43,
- 44, -1, -1, 47, -1, -1, -1, -1, -1, -1,
- 54, -1, -1, 57, 38, -1, 40, 61, -1, -1,
- -1, -1, -1, -1, 68, 69, -1, -1, -1, -1,
- 54, -1, 76, -1, -1, 59, 60, -1, -1, 63,
- 64, -1, -1, -1, -1, -1, -1, 71, -1, -1,
- -1, -1, -1, -1, 78, -1, 80, 101, 102, -1,
- 104, -1, -1, -1, -1, 89, 90, -1, -1, -1,
- -1, -1, -1, -1, -1, 119, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 97, -1, 213, -1,
+ 215, -1, -1, -1, -1, 220, 221, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 232, 233, 203,
+ 149, -1, -1, -1, -1, 209, -1, -1, 243, -1,
+ 97, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 149, -1,
+ -1, -1, -1, 268, -1, 270, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 282, -1, 284,
+ -1, -1, -1, -1, -1, 290, -1, -1, -1, 263,
+ 209, -1, 149, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 114, -1, -1, -1, -1, -1, 140, -1, -1, -1,
- -1, -1, 126, -1, -1, -1, 130, -1, -1, 133,
- -1, -1, -1, -1, 138, -1, 140, -1, 162, -1,
- -1, -1, 146, -1, -1, -1, -1, 171, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 209, 324,
+ -1, 295, 296, 297, 298, 299, 300, 301, 302, 303,
+ 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
+ 314, 315, 316, 317, 318, 319, 320, 321, 322, -1,
+ -1, -1, 209, 272, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 165, -1, -1, -1, 169, 170, -1, -1, 173,
- 174, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 186, 207, -1, -1, -1, 38, -1, 40,
- 214, 215, 216, -1, -1, 199, 200, 201, -1, -1,
- -1, -1, -1, -1, 228, -1, 210, -1, -1, 60,
- -1, 62, 63, 64, 238, -1, 220, -1, -1, 223,
- 71, 225, 73, 227, -1, -1, -1, 78, 232, 80,
- -1, 82, -1, -1, -1, -1, 87, 261, 89, 263,
- 244, -1, -1, -1, -1, 249, -1, -1, -1, 273,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 283,
- -1, 265, 113, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 276, -1, 278, -1, -1, -1, -1, 130,
- 284, -1, -1, 287, 288, -1, -1, -1, -1, -1,
- -1, 142, 143, 317, -1, 146, -1, -1, -1, 150,
- -1, -1, -1, 153, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 318, -1, -1, -1, -1, -1,
- 324, -1, 173, 174, -1, -1, 177, -1, -1, -1,
- -1, -1, -1, -1, -1, 186, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 199, 200,
- -1, -1, -1, -1, -1, 206, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 295, 296, 297, 298,
+ 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
+ 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
+ 319, 320, 321, 322, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
+ 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
+ 321, 322, -1, -1, -1, -1, -1, -1, 295, 296,
+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
+ 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
+ 317, 318, 319, 320, 321, 322, 38, -1, 40, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 225, -1, 227, -1, -1, -1,
+ -1, -1, -1, 55, -1, -1, -1, -1, 60, 61,
+ -1, -1, 64, 65, -1, -1, -1, -1, -1, -1,
+ -1, 73, -1, -1, -1, -1, -1, -1, 80, -1,
+ 82, -1, -1, 38, -1, 40, -1, -1, -1, 91,
+ 92, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 61, -1, 63, 64,
+ 65, -1, -1, -1, 116, -1, -1, -1, 73, -1,
+ 75, -1, -1, -1, -1, 80, 128, 82, -1, 84,
+ 132, -1, -1, 135, 89, -1, 91, -1, 140, -1,
+ 142, -1, -1, -1, -1, -1, 148, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 249, -1,
+ 115, -1, -1, -1, -1, 167, -1, -1, -1, 171,
+ 172, -1, -1, 175, 176, -1, -1, 132, -1, -1,
+ -1, -1, -1, -1, -1, -1, 188, -1, -1, 144,
+ 145, -1, -1, 148, -1, -1, -1, 152, -1, 201,
+ 202, 203, 155, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 216, -1, -1, -1, -1, -1,
+ 175, 176, -1, 225, 179, -1, 228, -1, 230, -1,
+ 232, -1, -1, 188, -1, 237, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 201, 202, 250, -1,
+ -1, -1, -1, 255, -1, 210, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 265, -1, -1, -1, -1, -1,
- -1, -1, 273, -1, -1, -1, -1, -1, -1, 280,
- -1, -1, -1, -1, -1, 286, -1, 288, 288, 289,
- 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
- 310, 311, 312, 313, 314, 315, 316, -1, -1, -1,
- -1, -1, -1, 324
+ 272, -1, -1, -1, -1, 230, -1, 232, -1, -1,
+ -1, 283, -1, 285, -1, -1, -1, -1, -1, 291,
+ -1, -1, 294, 295, -1, -1, -1, -1, -1, -1,
+ 255, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 272, -1, -1,
+ -1, -1, -1, 325, -1, 280, -1, -1, -1, 331,
+ -1, -1, 287, -1, -1, -1, -1, -1, 293, -1,
+ 295, -1, 295, 296, 297, 298, 299, 300, 301, 302,
+ 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
+ 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
+ 323, -1, -1, -1, -1, -1, 331
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint16 yystos[] =
{
- 0, 38, 40, 54, 59, 60, 63, 64, 71, 78,
- 80, 89, 90, 114, 126, 130, 133, 138, 140, 146,
- 165, 169, 170, 173, 174, 186, 199, 200, 201, 210,
- 220, 223, 225, 227, 232, 244, 249, 265, 276, 278,
- 284, 287, 288, 318, 324, 330, 61, 12, 48, 66,
- 94, 108, 111, 123, 269, 357, 177, 182, 213, 236,
- 279, 323, 362, 4, 37, 103, 183, 225, 369, 28,
- 141, 163, 167, 211, 245, 253, 254, 345, 371, 31,
- 61, 74, 77, 85, 93, 165, 203, 232, 317, 372,
- 3, 4, 37, 54, 103, 183, 265, 331, 376, 4,
- 19, 37, 51, 95, 109, 147, 183, 190, 195, 196,
- 201, 205, 272, 287, 288, 289, 290, 291, 292, 293,
- 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
- 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
- 314, 315, 321, 325, 326, 333, 342, 343, 344, 378,
- 333, 29, 40, 70, 78, 131, 181, 202, 204, 225,
- 288, 332, 333, 133, 379, 38, 40, 60, 62, 63,
- 64, 71, 73, 78, 80, 82, 87, 89, 113, 130,
- 142, 143, 146, 150, 173, 174, 177, 186, 199, 200,
- 206, 225, 227, 249, 265, 273, 280, 286, 288, 324,
- 380, 77, 93, 418, 19, 71, 78, 88, 89, 95,
- 113, 130, 146, 154, 173, 205, 249, 259, 288, 420,
- 333, 82, 106, 175, 188, 239, 278, 288, 425, 26,
- 113, 149, 428, 212, 444, 5, 61, 82, 128, 278,
- 324, 333, 445, 52, 208, 279, 461, 59, 61, 172,
- 268, 480, 61, 191, 320, 325, 327, 481, 36, 183,
- 213, 269, 331, 342, 344, 482, 5, 278, 288, 333,
- 485, 65, 160, 224, 233, 486, 461, 56, 259, 282,
- 492, 183, 269, 331, 493, 26, 113, 495, 45, 93,
- 125, 271, 501, 502, 140, 176, 264, 266, 282, 356,
- 4, 113, 192, 503, 269, 331, 505, 16, 23, 221,
- 223, 343, 506, 212, 510, 269, 331, 511, 0, 5,
- 54, 331, 358, 246, 5, 4, 269, 331, 359, 5,
- 32, 258, 360, 112, 331, 361, 182, 229, 366, 177,
- 279, 322, 323, 331, 365, 333, 127, 166, 364, 139,
- 168, 331, 363, 72, 162, 229, 368, 331, 4, 225,
- 370, 331, 331, 134, 189, 232, 373, 5, 342, 5,
- 209, 374, 4, 17, 5, 5, 5, 4, 331, 9,
- 10, 11, 331, 338, 339, 340, 341, 331, 331, 37,
- 103, 183, 331, 377, 331, 183, 342, 344, 331, 33,
- 100, 116, 117, 118, 124, 137, 144, 155, 257, 346,
- 331, 333, 333, 333, 333, 333, 333, 333, 333, 333,
- 333, 107, 61, 48, 66, 82, 94, 108, 111, 123,
- 164, 381, 177, 182, 213, 236, 279, 322, 323, 331,
- 383, 384, 160, 387, 160, 167, 389, 31, 60, 61,
- 64, 85, 160, 176, 193, 249, 317, 342, 391, 120,
- 269, 331, 344, 395, 54, 265, 342, 396, 256, 342,
- 344, 397, 342, 344, 398, 4, 342, 344, 399, 41,
- 54, 75, 94, 107, 110, 135, 136, 187, 194, 246,
- 247, 317, 403, 198, 408, 5, 83, 6, 82, 110,
- 136, 317, 401, 5, 60, 344, 400, 461, 61, 172,
- 268, 409, 61, 213, 410, 260, 56, 259, 282, 411,
- 92, 115, 151, 235, 334, 412, 123, 219, 413, 140,
- 176, 264, 282, 414, 344, 83, 16, 185, 415, 334,
- 417, 342, 31, 421, 40, 81, 181, 422, 140, 203,
- 238, 274, 423, 342, 18, 53, 105, 342, 424, 4,
- 182, 427, 5, 4, 6, 110, 331, 5, 225, 429,
- 5, 107, 181, 225, 247, 431, 87, 103, 177, 443,
- 4, 5, 333, 333, 331, 331, 4, 5, 55, 61,
- 67, 69, 74, 77, 83, 93, 99, 119, 140, 156,
- 164, 165, 184, 203, 213, 216, 227, 232, 238, 244,
- 261, 274, 275, 277, 317, 446, 5, 4, 331, 5,
- 331, 37, 103, 331, 484, 333, 331, 342, 344, 483,
- 331, 346, 331, 4, 343, 49, 84, 129, 225, 487,
- 4, 4, 331, 140, 238, 488, 5, 342, 4, 37,
- 103, 331, 494, 331, 91, 56, 110, 250, 496, 147,
- 222, 260, 497, 4, 333, 13, 178, 491, 4, 331,
- 331, 331, 247, 4, 331, 331, 4, 509, 4, 263,
- 507, 4, 263, 508, 4, 346, 112, 331, 512, 331,
- 331, 4, 5, 331, 12, 331, 331, 30, 88, 154,
- 229, 234, 367, 4, 331, 331, 331, 331, 4, 4,
- 331, 331, 331, 331, 5, 346, 4, 460, 468, 4,
- 4, 342, 331, 331, 338, 340, 340, 342, 331, 331,
- 331, 331, 331, 331, 331, 342, 344, 341, 331, 331,
- 341, 331, 5, 246, 97, 177, 382, 182, 229, 385,
- 160, 72, 162, 229, 386, 4, 388, 4, 390, 61,
- 85, 317, 392, 182, 393, 167, 394, 160, 346, 331,
- 331, 331, 342, 331, 342, 342, 346, 346, 346, 342,
- 346, 331, 342, 4, 405, 344, 185, 4, 288, 404,
- 185, 342, 4, 407, 5, 5, 4, 185, 331, 4,
- 5, 55, 61, 119, 132, 140, 145, 193, 209, 213,
- 216, 238, 244, 261, 317, 455, 344, 331, 5, 208,
- 416, 343, 346, 342, 342, 4, 333, 4, 4, 185,
- 331, 14, 15, 56, 179, 180, 241, 250, 251, 281,
- 81, 5, 14, 15, 56, 179, 180, 241, 250, 251,
- 255, 281, 81, 147, 153, 343, 434, 438, 81, 147,
- 440, 5, 432, 4, 4, 4, 331, 21, 22, 43,
- 44, 47, 50, 57, 61, 68, 69, 76, 77, 93,
- 99, 101, 102, 104, 119, 140, 162, 184, 207, 209,
- 214, 215, 216, 227, 228, 238, 261, 263, 275, 277,
- 283, 317, 61, 74, 83, 93, 119, 140, 184, 216,
- 238, 275, 277, 4, 30, 152, 198, 219, 449, 5,
- 58, 98, 218, 230, 231, 319, 320, 454, 93, 447,
- 17, 37, 103, 183, 453, 5, 17, 197, 270, 331,
- 238, 454, 462, 113, 454, 463, 34, 37, 103, 121,
- 183, 269, 331, 464, 342, 333, 85, 93, 99, 115,
- 140, 148, 184, 191, 227, 238, 252, 467, 37, 103,
- 183, 5, 262, 17, 197, 270, 471, 263, 333, 472,
- 5, 93, 99, 278, 17, 17, 4, 331, 331, 331,
- 331, 331, 346, 331, 331, 341, 331, 4, 346, 37,
- 103, 183, 242, 489, 37, 103, 183, 242, 490, 4,
- 91, 5, 5, 4, 56, 110, 250, 498, 56, 110,
- 250, 500, 56, 110, 250, 499, 331, 331, 4, 504,
- 331, 331, 6, 343, 4, 5, 4, 4, 5, 4,
- 91, 240, 347, 331, 331, 12, 5, 12, 331, 331,
- 12, 4, 12, 4, 331, 331, 331, 342, 4, 50,
- 61, 86, 119, 261, 263, 317, 465, 466, 467, 478,
- 479, 4, 4, 346, 346, 331, 331, 331, 342, 331,
- 341, 331, 331, 5, 5, 331, 344, 331, 342, 342,
- 342, 4, 331, 346, 347, 347, 347, 346, 341, 331,
- 346, 331, 122, 226, 335, 406, 157, 4, 346, 5,
- 4, 4, 331, 402, 331, 21, 22, 43, 44, 47,
- 54, 57, 61, 68, 69, 76, 101, 102, 104, 119,
- 140, 162, 171, 207, 214, 215, 216, 228, 238, 261,
- 263, 273, 283, 317, 61, 119, 145, 216, 261, 30,
- 152, 198, 219, 456, 331, 193, 331, 457, 17, 331,
- 237, 467, 193, 331, 458, 263, 459, 17, 92, 331,
- 331, 5, 347, 51, 342, 4, 5, 426, 331, 5,
- 5, 5, 147, 174, 352, 352, 156, 243, 350, 4,
- 4, 5, 5, 430, 248, 5, 5, 5, 17, 149,
- 351, 351, 350, 4, 4, 350, 5, 5, 433, 153,
- 316, 343, 437, 5, 436, 5, 5, 441, 5, 442,
- 5, 14, 15, 56, 179, 180, 241, 250, 251, 255,
- 281, 4, 4, 7, 8, 331, 337, 219, 219, 219,
- 99, 37, 61, 93, 99, 103, 119, 140, 156, 184,
- 216, 227, 238, 263, 275, 277, 278, 317, 448, 219,
- 5, 27, 158, 219, 259, 127, 99, 22, 44, 47,
- 76, 102, 104, 209, 22, 44, 47, 50, 76, 102,
- 104, 209, 261, 37, 219, 219, 99, 5, 197, 27,
- 207, 34, 121, 269, 331, 246, 223, 259, 342, 344,
- 259, 331, 467, 37, 207, 259, 197, 5, 5, 227,
- 27, 207, 4, 5, 5, 197, 34, 121, 269, 331,
- 467, 197, 333, 4, 4, 331, 5, 281, 22, 27,
- 43, 44, 46, 47, 57, 68, 69, 76, 79, 96,
- 101, 102, 104, 162, 209, 214, 215, 228, 262, 263,
- 283, 327, 450, 331, 331, 331, 331, 331, 454, 342,
- 5, 4, 5, 331, 331, 342, 344, 331, 342, 333,
- 331, 331, 454, 5, 331, 331, 333, 5, 17, 5,
- 5, 331, 331, 341, 331, 331, 331, 331, 103, 331,
- 331, 103, 4, 39, 161, 355, 355, 355, 5, 5,
- 4, 5, 5, 4, 5, 5, 4, 331, 4, 331,
- 343, 346, 5, 5, 12, 331, 342, 344, 331, 12,
- 331, 331, 331, 54, 331, 6, 4, 331, 331, 346,
- 42, 249, 375, 328, 328, 328, 328, 328, 328, 328,
- 466, 328, 5, 6, 331, 4, 4, 4, 342, 331,
- 331, 331, 331, 4, 4, 346, 342, 347, 334, 334,
- 341, 331, 4, 347, 331, 35, 265, 35, 265, 4,
- 344, 5, 24, 25, 91, 348, 331, 4, 331, 5,
- 342, 344, 219, 219, 219, 21, 219, 342, 344, 219,
- 27, 158, 219, 259, 127, 21, 219, 219, 219, 21,
- 219, 27, 159, 207, 159, 246, 5, 159, 176, 207,
- 259, 267, 5, 176, 219, 259, 467, 159, 207, 259,
- 4, 227, 27, 159, 207, 467, 193, 331, 331, 331,
- 331, 331, 185, 331, 331, 20, 217, 419, 4, 4,
- 331, 352, 352, 352, 4, 352, 352, 352, 14, 15,
- 56, 179, 180, 241, 250, 251, 281, 351, 352, 352,
- 352, 352, 352, 4, 352, 352, 4, 351, 14, 15,
- 56, 179, 180, 241, 250, 251, 281, 5, 435, 5,
- 439, 5, 5, 14, 15, 56, 179, 180, 241, 250,
- 251, 255, 281, 5, 14, 15, 56, 179, 180, 241,
- 250, 251, 255, 281, 5, 14, 15, 56, 179, 180,
- 241, 250, 251, 255, 281, 14, 15, 56, 179, 180,
- 241, 250, 251, 281, 248, 5, 5, 5, 351, 351,
- 350, 4, 4, 350, 5, 4, 4, 342, 344, 5,
- 331, 331, 5, 331, 5, 337, 99, 184, 227, 99,
- 184, 227, 5, 331, 333, 5, 331, 342, 333, 5,
- 337, 219, 219, 21, 219, 21, 219, 219, 21, 219,
- 285, 4, 4, 4, 448, 4, 4, 4, 285, 4,
- 5, 4, 331, 5, 331, 5, 337, 333, 342, 344,
- 342, 344, 331, 4, 331, 342, 346, 341, 342, 342,
- 344, 333, 342, 344, 342, 333, 333, 342, 344, 342,
- 344, 331, 333, 331, 5, 331, 207, 207, 331, 331,
- 207, 331, 207, 331, 331, 468, 331, 207, 207, 331,
- 331, 331, 331, 331, 331, 331, 331, 5, 281, 331,
- 451, 331, 331, 207, 331, 331, 331, 331, 342, 346,
- 5, 342, 342, 331, 331, 346, 341, 331, 331, 331,
- 342, 331, 331, 5, 331, 331, 331, 331, 131, 191,
- 353, 353, 353, 353, 353, 353, 353, 353, 353, 331,
- 331, 331, 342, 344, 331, 346, 331, 331, 331, 331,
- 331, 5, 331, 6, 6, 331, 331, 4, 448, 5,
- 4, 5, 5, 5, 4, 333, 342, 342, 331, 346,
- 167, 345, 331, 345, 347, 346, 342, 331, 331, 4,
- 334, 331, 334, 331, 4, 346, 342, 344, 342, 344,
- 342, 344, 342, 344, 342, 344, 346, 342, 344, 342,
- 344, 342, 344, 342, 344, 342, 344, 342, 344, 342,
- 344, 342, 344, 342, 342, 344, 331, 5, 342, 342,
- 344, 342, 344, 5, 342, 342, 342, 344, 342, 342,
- 344, 331, 4, 331, 5, 4, 331, 352, 5, 5,
- 5, 350, 4, 4, 5, 352, 351, 4, 352, 5,
- 5, 5, 351, 351, 350, 4, 4, 5, 14, 15,
- 56, 179, 180, 241, 250, 251, 281, 14, 15, 56,
- 179, 180, 241, 250, 251, 281, 14, 15, 56, 179,
- 180, 241, 250, 251, 281, 248, 5, 5, 5, 351,
- 351, 350, 4, 4, 350, 5, 248, 5, 5, 5,
- 351, 351, 350, 4, 4, 350, 5, 248, 5, 5,
- 5, 351, 351, 350, 4, 4, 350, 5, 5, 5,
- 5, 351, 351, 350, 4, 4, 5, 351, 4, 4,
- 351, 4, 4, 346, 342, 331, 331, 342, 331, 5,
- 337, 5, 342, 344, 333, 5, 342, 344, 346, 5,
- 337, 331, 331, 331, 331, 331, 331, 331, 331, 331,
- 4, 5, 4, 331, 342, 331, 5, 337, 333, 346,
- 341, 346, 331, 331, 346, 341, 341, 348, 4, 346,
- 341, 346, 346, 341, 346, 341, 331, 331, 331, 331,
- 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
- 331, 331, 331, 331, 331, 331, 331, 331, 342, 5,
- 331, 331, 331, 331, 4, 4, 346, 347, 4, 452,
- 346, 346, 341, 331, 4, 346, 331, 331, 346, 331,
- 341, 331, 331, 12, 5, 5, 4, 6, 331, 331,
- 4, 5, 4, 346, 346, 342, 331, 331, 347, 348,
- 331, 5, 331, 344, 348, 348, 348, 346, 348, 347,
- 348, 348, 346, 348, 348, 348, 346, 348, 348, 346,
- 342, 5, 348, 346, 348, 5, 348, 348, 346, 348,
- 346, 4, 344, 331, 4, 352, 351, 4, 351, 5,
- 5, 5, 351, 351, 350, 4, 4, 5, 5, 5,
- 5, 351, 351, 350, 4, 4, 5, 5, 5, 5,
- 351, 351, 350, 4, 4, 5, 351, 352, 352, 352,
- 352, 352, 4, 352, 352, 4, 351, 351, 352, 352,
- 352, 352, 352, 4, 352, 352, 4, 351, 351, 4,
- 4, 351, 4, 351, 351, 4, 4, 4, 348, 4,
- 342, 344, 348, 331, 342, 4, 348, 348, 342, 4,
- 331, 331, 331, 331, 331, 331, 331, 331, 331, 331,
- 342, 344, 348, 331, 342, 4, 341, 341, 341, 331,
- 342, 344, 341, 331, 4, 341, 341, 342, 341, 331,
- 341, 331, 331, 331, 331, 331, 331, 337, 331, 331,
- 331, 337, 331, 331, 331, 331, 337, 331, 331, 331,
- 331, 331, 331, 346, 331, 281, 336, 337, 331, 331,
- 347, 333, 4, 4, 347, 341, 331, 54, 331, 5,
- 5, 4, 331, 4, 345, 5, 348, 5, 347, 348,
- 5, 347, 347, 347, 5, 331, 352, 351, 352, 352,
- 352, 352, 352, 4, 352, 352, 351, 4, 351, 352,
- 352, 352, 352, 352, 4, 352, 352, 351, 352, 351,
- 4, 352, 352, 351, 4, 352, 351, 4, 351, 351,
- 342, 344, 348, 4, 346, 331, 346, 331, 331, 348,
- 4, 346, 331, 341, 348, 331, 4, 341, 348, 342,
- 337, 331, 4, 354, 354, 331, 331, 354, 337, 354,
- 468, 342, 337, 354, 354, 331, 331, 337, 331, 331,
- 331, 5, 468, 331, 341, 331, 5, 468, 331, 354,
- 333, 469, 470, 5, 333, 5, 331, 5, 4, 6,
- 331, 331, 351, 352, 351, 351, 352, 352, 351, 352,
- 351, 351, 348, 342, 344, 342, 331, 342, 331, 342,
- 344, 342, 331, 4, 348, 4, 468, 468, 336, 331,
- 468, 4, 468, 346, 4, 468, 468, 336, 331, 4,
- 468, 468, 331, 5, 342, 468, 468, 469, 475, 476,
- 467, 473, 474, 5, 5, 6, 4, 177, 279, 322,
- 323, 331, 349, 4, 352, 352, 352, 352, 348, 348,
- 331, 348, 4, 348, 348, 331, 342, 331, 468, 468,
- 4, 331, 468, 331, 468, 4, 331, 5, 468, 468,
- 346, 475, 477, 478, 328, 474, 5, 5, 4, 331,
- 4, 342, 344, 4, 348, 337, 336, 331, 331, 336,
- 331, 5, 342, 478, 333, 5, 5, 331, 342, 344,
- 346, 342, 344, 468, 331, 4, 468, 331, 468, 348,
- 5, 5, 346, 346, 4, 468, 4, 468, 336, 336,
- 468, 468
+ 0, 38, 40, 55, 60, 61, 64, 65, 73, 80,
+ 82, 91, 92, 116, 128, 132, 135, 140, 142, 148,
+ 167, 171, 172, 175, 176, 188, 201, 202, 203, 216,
+ 225, 228, 230, 232, 237, 250, 255, 272, 283, 285,
+ 291, 294, 295, 325, 331, 337, 62, 12, 49, 67,
+ 96, 110, 113, 125, 276, 367, 179, 184, 219, 241,
+ 286, 330, 372, 4, 37, 105, 185, 230, 379, 28,
+ 143, 165, 169, 217, 251, 259, 260, 352, 381, 31,
+ 62, 76, 79, 87, 95, 167, 206, 237, 324, 382,
+ 3, 4, 37, 55, 105, 185, 272, 338, 386, 4,
+ 19, 37, 52, 97, 111, 149, 185, 192, 197, 198,
+ 203, 209, 279, 294, 295, 296, 297, 298, 299, 300,
+ 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
+ 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
+ 321, 322, 328, 332, 333, 340, 349, 350, 351, 388,
+ 340, 29, 40, 72, 80, 133, 183, 205, 207, 230,
+ 295, 339, 340, 135, 389, 38, 40, 61, 63, 64,
+ 65, 73, 75, 80, 82, 84, 89, 91, 115, 132,
+ 144, 145, 148, 152, 175, 176, 179, 188, 201, 202,
+ 210, 230, 232, 255, 272, 280, 287, 293, 295, 331,
+ 390, 79, 95, 428, 19, 40, 73, 80, 90, 91,
+ 97, 115, 132, 148, 156, 175, 209, 255, 266, 295,
+ 430, 340, 84, 108, 177, 190, 244, 285, 295, 436,
+ 26, 115, 151, 208, 439, 218, 455, 5, 62, 84,
+ 130, 285, 331, 340, 456, 53, 214, 286, 472, 60,
+ 62, 174, 275, 491, 62, 193, 327, 332, 334, 492,
+ 36, 185, 219, 276, 338, 349, 351, 493, 5, 285,
+ 295, 340, 496, 66, 162, 229, 238, 497, 472, 57,
+ 266, 289, 503, 185, 276, 338, 504, 26, 115, 208,
+ 506, 46, 95, 127, 278, 512, 513, 142, 178, 271,
+ 273, 289, 366, 4, 115, 194, 514, 276, 338, 516,
+ 16, 23, 226, 228, 350, 517, 218, 521, 276, 338,
+ 522, 0, 5, 55, 338, 368, 252, 5, 4, 276,
+ 338, 369, 5, 32, 265, 370, 114, 338, 371, 184,
+ 234, 376, 179, 286, 329, 330, 338, 375, 340, 129,
+ 168, 374, 141, 170, 338, 373, 74, 164, 234, 378,
+ 338, 4, 230, 380, 338, 338, 136, 191, 237, 383,
+ 5, 349, 5, 215, 384, 4, 17, 5, 5, 5,
+ 4, 338, 9, 10, 11, 338, 345, 346, 347, 348,
+ 338, 338, 37, 105, 185, 338, 387, 338, 185, 349,
+ 351, 338, 33, 102, 118, 119, 120, 126, 139, 146,
+ 157, 264, 353, 338, 340, 340, 340, 340, 340, 340,
+ 340, 340, 340, 340, 109, 62, 49, 67, 84, 96,
+ 110, 113, 125, 166, 391, 179, 184, 219, 241, 286,
+ 329, 330, 338, 393, 394, 162, 397, 162, 169, 399,
+ 31, 61, 62, 65, 87, 162, 178, 195, 255, 324,
+ 349, 401, 122, 276, 338, 351, 405, 55, 272, 349,
+ 406, 263, 349, 351, 407, 349, 351, 408, 4, 349,
+ 351, 409, 41, 55, 77, 96, 109, 112, 137, 138,
+ 189, 196, 252, 253, 324, 413, 200, 418, 5, 85,
+ 6, 84, 112, 138, 324, 411, 5, 61, 351, 410,
+ 472, 62, 174, 275, 419, 62, 219, 420, 267, 57,
+ 266, 289, 421, 94, 117, 153, 240, 341, 422, 125,
+ 224, 423, 142, 178, 271, 289, 424, 351, 85, 16,
+ 187, 425, 341, 427, 349, 68, 431, 31, 432, 40,
+ 83, 183, 433, 142, 206, 243, 281, 434, 349, 18,
+ 54, 107, 349, 435, 4, 184, 438, 5, 4, 6,
+ 112, 338, 5, 230, 440, 5, 109, 183, 230, 253,
+ 442, 89, 105, 179, 454, 5, 4, 5, 340, 340,
+ 338, 338, 4, 5, 56, 62, 69, 71, 76, 79,
+ 85, 95, 101, 121, 142, 158, 166, 167, 186, 206,
+ 219, 221, 232, 237, 243, 250, 268, 281, 282, 284,
+ 324, 457, 5, 4, 338, 5, 338, 37, 105, 338,
+ 495, 340, 338, 349, 351, 494, 338, 353, 338, 4,
+ 350, 50, 86, 131, 230, 498, 4, 4, 338, 142,
+ 243, 499, 5, 349, 4, 37, 105, 338, 505, 338,
+ 93, 57, 112, 256, 507, 149, 227, 267, 508, 5,
+ 4, 340, 13, 180, 502, 4, 338, 338, 338, 253,
+ 4, 338, 338, 4, 520, 4, 270, 518, 4, 270,
+ 519, 4, 353, 114, 338, 523, 338, 338, 4, 5,
+ 338, 12, 338, 338, 30, 90, 156, 234, 239, 377,
+ 4, 338, 338, 338, 338, 4, 4, 338, 338, 338,
+ 338, 5, 353, 4, 471, 479, 4, 4, 349, 338,
+ 338, 345, 347, 347, 349, 338, 338, 338, 338, 338,
+ 338, 338, 349, 351, 348, 338, 338, 348, 338, 5,
+ 252, 99, 179, 392, 184, 234, 395, 162, 74, 164,
+ 234, 396, 4, 398, 4, 400, 62, 87, 324, 402,
+ 184, 403, 169, 404, 162, 353, 338, 338, 338, 349,
+ 338, 349, 349, 353, 353, 353, 349, 353, 338, 349,
+ 4, 415, 351, 187, 4, 295, 414, 187, 349, 4,
+ 417, 5, 5, 4, 187, 338, 4, 5, 56, 62,
+ 121, 134, 142, 147, 195, 215, 219, 221, 243, 250,
+ 268, 324, 466, 351, 338, 5, 214, 426, 350, 353,
+ 5, 349, 349, 4, 340, 4, 4, 187, 338, 14,
+ 15, 57, 181, 182, 247, 256, 257, 288, 83, 5,
+ 14, 15, 57, 181, 182, 247, 256, 257, 261, 288,
+ 83, 149, 155, 350, 445, 449, 83, 149, 451, 5,
+ 443, 4, 4, 5, 4, 338, 20, 21, 22, 44,
+ 45, 48, 51, 58, 62, 70, 71, 78, 79, 95,
+ 101, 103, 104, 106, 121, 142, 164, 186, 213, 215,
+ 220, 221, 232, 233, 243, 268, 270, 282, 284, 290,
+ 324, 62, 76, 85, 95, 121, 142, 186, 221, 243,
+ 282, 284, 4, 30, 154, 200, 224, 460, 5, 59,
+ 100, 223, 235, 236, 326, 327, 465, 95, 458, 17,
+ 37, 105, 185, 464, 5, 17, 199, 277, 338, 243,
+ 465, 473, 115, 465, 474, 34, 37, 105, 123, 185,
+ 276, 338, 475, 349, 340, 87, 95, 101, 117, 142,
+ 150, 186, 193, 232, 243, 258, 478, 37, 105, 185,
+ 5, 269, 17, 199, 277, 482, 270, 340, 483, 5,
+ 95, 101, 285, 17, 17, 4, 338, 338, 338, 338,
+ 338, 353, 338, 338, 348, 338, 4, 353, 37, 105,
+ 185, 248, 500, 37, 105, 185, 248, 501, 4, 93,
+ 5, 5, 4, 57, 112, 256, 509, 57, 112, 256,
+ 511, 57, 112, 256, 510, 338, 338, 4, 515, 338,
+ 338, 6, 350, 4, 5, 4, 4, 5, 4, 93,
+ 245, 354, 338, 338, 12, 5, 12, 338, 338, 12,
+ 4, 12, 4, 338, 338, 338, 349, 4, 51, 62,
+ 88, 121, 268, 270, 324, 476, 477, 478, 489, 490,
+ 4, 4, 353, 353, 338, 338, 338, 349, 338, 348,
+ 338, 338, 5, 5, 338, 351, 338, 349, 349, 349,
+ 4, 338, 353, 354, 354, 354, 353, 348, 338, 353,
+ 338, 124, 231, 342, 416, 159, 4, 353, 5, 4,
+ 4, 338, 412, 338, 20, 21, 22, 44, 45, 48,
+ 55, 58, 62, 70, 71, 78, 103, 104, 106, 121,
+ 142, 164, 173, 213, 220, 221, 233, 243, 268, 270,
+ 280, 290, 324, 62, 121, 147, 221, 268, 30, 154,
+ 200, 224, 467, 338, 195, 338, 468, 17, 338, 242,
+ 478, 195, 338, 469, 270, 470, 17, 94, 338, 338,
+ 5, 354, 52, 349, 4, 5, 437, 338, 5, 5,
+ 5, 149, 176, 359, 359, 158, 249, 357, 4, 4,
+ 5, 5, 441, 254, 5, 5, 5, 17, 151, 358,
+ 358, 357, 4, 4, 357, 5, 5, 444, 155, 323,
+ 350, 448, 5, 447, 5, 5, 452, 5, 453, 5,
+ 14, 15, 57, 181, 182, 247, 256, 257, 261, 288,
+ 4, 4, 204, 211, 212, 262, 266, 363, 7, 8,
+ 338, 344, 224, 224, 224, 101, 37, 62, 95, 101,
+ 105, 121, 142, 158, 186, 221, 232, 243, 270, 282,
+ 284, 285, 324, 459, 224, 5, 27, 160, 224, 266,
+ 129, 101, 22, 45, 48, 78, 104, 106, 215, 22,
+ 45, 48, 51, 78, 104, 106, 215, 268, 37, 224,
+ 224, 101, 5, 199, 27, 213, 34, 123, 276, 338,
+ 246, 252, 228, 349, 351, 478, 37, 213, 266, 199,
+ 5, 5, 232, 27, 213, 4, 5, 5, 199, 34,
+ 123, 276, 338, 478, 199, 340, 4, 4, 338, 5,
+ 288, 22, 27, 44, 45, 47, 48, 58, 70, 71,
+ 78, 81, 98, 103, 104, 106, 164, 215, 220, 233,
+ 269, 270, 290, 334, 461, 338, 338, 338, 338, 338,
+ 465, 349, 5, 4, 5, 338, 338, 349, 351, 338,
+ 349, 340, 338, 338, 465, 5, 338, 338, 340, 5,
+ 17, 5, 5, 338, 338, 348, 338, 338, 338, 338,
+ 105, 338, 338, 105, 4, 39, 163, 365, 365, 365,
+ 5, 5, 4, 5, 5, 4, 5, 5, 4, 338,
+ 4, 338, 350, 353, 5, 5, 12, 338, 349, 351,
+ 338, 12, 338, 338, 338, 55, 338, 6, 4, 338,
+ 338, 353, 42, 255, 385, 335, 335, 335, 335, 335,
+ 335, 335, 477, 335, 5, 6, 338, 4, 4, 4,
+ 349, 338, 338, 338, 338, 4, 4, 353, 349, 354,
+ 341, 341, 348, 338, 4, 354, 338, 35, 272, 35,
+ 272, 4, 351, 5, 24, 25, 93, 355, 338, 4,
+ 338, 5, 204, 211, 212, 266, 349, 351, 224, 224,
+ 224, 21, 224, 349, 351, 224, 27, 160, 224, 266,
+ 129, 21, 224, 224, 224, 21, 224, 27, 161, 213,
+ 161, 246, 252, 161, 213, 274, 478, 161, 213, 266,
+ 4, 232, 27, 161, 213, 478, 195, 338, 338, 338,
+ 338, 338, 187, 338, 338, 20, 222, 429, 4, 4,
+ 338, 359, 359, 359, 4, 359, 359, 359, 14, 15,
+ 57, 181, 182, 247, 256, 257, 288, 358, 359, 359,
+ 359, 359, 359, 4, 359, 359, 4, 358, 14, 15,
+ 57, 181, 182, 247, 256, 257, 288, 5, 446, 5,
+ 450, 5, 5, 14, 15, 57, 181, 182, 247, 256,
+ 257, 261, 288, 5, 14, 15, 57, 181, 182, 247,
+ 256, 257, 261, 288, 5, 14, 15, 57, 181, 182,
+ 247, 256, 257, 261, 288, 14, 15, 57, 181, 182,
+ 247, 256, 257, 288, 254, 5, 5, 5, 358, 358,
+ 357, 4, 4, 357, 5, 4, 4, 32, 265, 364,
+ 349, 340, 349, 351, 5, 338, 338, 5, 338, 5,
+ 344, 101, 186, 232, 101, 186, 232, 5, 338, 340,
+ 5, 338, 349, 340, 5, 344, 224, 224, 21, 224,
+ 21, 224, 224, 21, 224, 292, 4, 4, 4, 459,
+ 4, 4, 4, 292, 4, 5, 4, 338, 5, 338,
+ 5, 344, 340, 349, 351, 349, 351, 338, 27, 44,
+ 47, 58, 81, 98, 334, 361, 4, 338, 353, 348,
+ 340, 349, 351, 349, 340, 340, 349, 351, 349, 351,
+ 338, 340, 338, 5, 338, 213, 213, 338, 338, 213,
+ 338, 213, 338, 338, 479, 338, 213, 213, 338, 338,
+ 338, 338, 338, 338, 338, 5, 288, 338, 462, 338,
+ 338, 213, 338, 338, 338, 338, 349, 353, 5, 349,
+ 349, 338, 338, 353, 348, 338, 338, 338, 349, 338,
+ 338, 5, 338, 338, 338, 338, 133, 193, 360, 360,
+ 360, 360, 360, 360, 360, 360, 360, 338, 338, 338,
+ 349, 351, 338, 353, 338, 338, 338, 338, 338, 5,
+ 338, 6, 6, 338, 338, 4, 459, 5, 4, 5,
+ 5, 5, 4, 340, 349, 349, 338, 353, 169, 352,
+ 338, 352, 354, 353, 349, 338, 338, 4, 341, 338,
+ 341, 338, 4, 5, 5, 353, 349, 351, 349, 351,
+ 349, 351, 349, 351, 349, 351, 353, 349, 351, 349,
+ 351, 349, 351, 349, 351, 349, 351, 349, 351, 349,
+ 351, 349, 351, 349, 349, 351, 338, 349, 349, 351,
+ 349, 351, 349, 349, 351, 349, 349, 351, 338, 4,
+ 338, 5, 4, 338, 359, 5, 5, 5, 357, 4,
+ 4, 5, 359, 358, 4, 359, 5, 5, 5, 358,
+ 358, 357, 4, 4, 5, 14, 15, 57, 181, 182,
+ 247, 256, 257, 288, 14, 15, 57, 181, 182, 247,
+ 256, 257, 288, 14, 15, 57, 181, 182, 247, 256,
+ 257, 288, 254, 5, 5, 5, 358, 358, 357, 4,
+ 4, 357, 5, 254, 5, 5, 5, 358, 358, 357,
+ 4, 4, 357, 5, 254, 5, 5, 5, 358, 358,
+ 357, 4, 4, 357, 5, 5, 5, 5, 358, 358,
+ 357, 4, 4, 5, 358, 4, 4, 358, 4, 4,
+ 353, 353, 349, 338, 338, 349, 338, 5, 344, 5,
+ 349, 351, 340, 5, 349, 351, 353, 5, 344, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 4, 5,
+ 4, 338, 349, 338, 5, 344, 340, 353, 348, 353,
+ 338, 338, 348, 348, 353, 348, 353, 353, 348, 353,
+ 348, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 349, 5, 338, 338, 338, 338, 4, 4,
+ 353, 354, 4, 463, 353, 353, 348, 338, 4, 353,
+ 338, 338, 353, 338, 348, 338, 338, 12, 5, 5,
+ 4, 6, 338, 338, 4, 5, 4, 353, 353, 349,
+ 338, 338, 354, 355, 338, 5, 338, 351, 5, 5,
+ 355, 355, 355, 353, 355, 354, 355, 355, 353, 355,
+ 355, 355, 353, 355, 355, 353, 349, 355, 353, 355,
+ 355, 353, 355, 353, 4, 351, 338, 4, 359, 358,
+ 4, 358, 5, 5, 5, 358, 358, 357, 4, 4,
+ 5, 5, 5, 5, 358, 358, 357, 4, 4, 5,
+ 5, 5, 5, 358, 358, 357, 4, 4, 5, 358,
+ 359, 359, 359, 359, 359, 4, 359, 359, 4, 358,
+ 358, 359, 359, 359, 359, 359, 4, 359, 359, 4,
+ 358, 358, 4, 4, 358, 4, 358, 358, 4, 4,
+ 4, 355, 4, 349, 351, 355, 338, 349, 4, 355,
+ 355, 349, 4, 338, 338, 338, 338, 338, 338, 338,
+ 338, 338, 338, 349, 351, 355, 338, 349, 4, 348,
+ 348, 348, 338, 349, 351, 348, 338, 348, 348, 349,
+ 348, 338, 348, 338, 338, 338, 338, 338, 338, 344,
+ 338, 338, 338, 344, 338, 338, 338, 338, 344, 338,
+ 338, 338, 338, 338, 353, 338, 288, 343, 344, 338,
+ 338, 354, 340, 4, 4, 354, 348, 338, 55, 338,
+ 5, 5, 4, 338, 4, 352, 5, 355, 5, 5,
+ 354, 355, 354, 354, 354, 5, 338, 359, 358, 359,
+ 359, 359, 359, 359, 4, 359, 359, 358, 4, 358,
+ 359, 359, 359, 359, 359, 4, 359, 359, 358, 359,
+ 358, 4, 359, 359, 358, 4, 359, 358, 4, 358,
+ 358, 349, 351, 355, 4, 353, 338, 353, 338, 338,
+ 355, 4, 353, 338, 348, 355, 338, 348, 355, 349,
+ 344, 338, 4, 362, 362, 338, 338, 362, 344, 362,
+ 479, 349, 344, 362, 362, 338, 338, 344, 338, 338,
+ 338, 338, 348, 338, 5, 479, 338, 362, 340, 480,
+ 481, 5, 340, 5, 338, 5, 4, 6, 338, 5,
+ 338, 358, 359, 358, 358, 359, 359, 358, 359, 358,
+ 358, 355, 349, 351, 349, 338, 349, 338, 349, 351,
+ 349, 338, 349, 355, 4, 479, 479, 343, 338, 479,
+ 4, 479, 353, 4, 479, 479, 343, 338, 4, 479,
+ 479, 338, 349, 479, 479, 480, 486, 487, 478, 484,
+ 485, 5, 5, 6, 4, 179, 286, 329, 330, 338,
+ 356, 4, 359, 359, 359, 359, 355, 355, 338, 355,
+ 4, 355, 355, 338, 355, 338, 479, 479, 4, 338,
+ 479, 338, 479, 4, 338, 479, 353, 486, 488, 489,
+ 335, 485, 5, 5, 4, 338, 4, 349, 351, 4,
+ 344, 343, 338, 338, 343, 338, 349, 489, 340, 5,
+ 5, 338, 349, 351, 353, 349, 351, 479, 338, 4,
+ 479, 338, 355, 5, 5, 353, 353, 4, 479, 4,
+ 479, 343, 343, 479, 479
};
#define yyerrok (yyerrstatus = 0)
@@ -4935,275 +4923,275 @@ yyreduce:
switch (yyn)
{
case 4:
-#line 430 "parser.Y"
+#line 440 "parser.Y"
{fr->bgColorCmd((yyvsp[(3) - (3)].str));;}
break;
case 5:
-#line 431 "parser.Y"
+#line 441 "parser.Y"
{fr->centerCmd();;}
break;
case 6:
-#line 432 "parser.Y"
+#line 442 "parser.Y"
{fr->clearCmd();;}
break;
case 13:
-#line 439 "parser.Y"
+#line 449 "parser.Y"
{fr->DATASECCmd((yyvsp[(2) - (2)].integer));;}
break;
case 18:
-#line 444 "parser.Y"
+#line 454 "parser.Y"
{fr->hideCmd();;}
break;
case 19:
-#line 445 "parser.Y"
+#line 455 "parser.Y"
{fr->highliteCmd((yyvsp[(2) - (2)].integer));;}
break;
case 26:
-#line 452 "parser.Y"
+#line 462 "parser.Y"
{fr->nanColorCmd((yyvsp[(3) - (3)].str));;}
break;
case 31:
-#line 457 "parser.Y"
+#line 467 "parser.Y"
{fr->resetCmd();;}
break;
case 36:
-#line 462 "parser.Y"
+#line 472 "parser.Y"
{fr->showCmd();;}
break;
case 39:
-#line 465 "parser.Y"
+#line 475 "parser.Y"
{fr->unloadFitsCmd();;}
break;
case 41:
-#line 467 "parser.Y"
+#line 477 "parser.Y"
{fr->msg("Frame 1.0");;}
break;
case 46:
-#line 474 "parser.Y"
+#line 484 "parser.Y"
{(yyval.real)=(yyvsp[(1) - (1)].real);;}
break;
case 47:
-#line 475 "parser.Y"
+#line 485 "parser.Y"
{(yyval.real)=(yyvsp[(1) - (1)].integer);;}
break;
case 48:
-#line 478 "parser.Y"
+#line 488 "parser.Y"
{yydebug=(yyvsp[(1) - (1)].integer);;}
break;
case 49:
-#line 479 "parser.Y"
+#line 489 "parser.Y"
{DebugAST=(yyvsp[(2) - (2)].integer);;}
break;
case 50:
-#line 480 "parser.Y"
+#line 490 "parser.Y"
{DebugMosaic=(yyvsp[(2) - (2)].integer);;}
break;
case 51:
-#line 481 "parser.Y"
+#line 491 "parser.Y"
{yydebug=(yyvsp[(2) - (2)].integer);;}
break;
case 52:
-#line 482 "parser.Y"
+#line 492 "parser.Y"
{DebugPerf=(yyvsp[(2) - (2)].integer);;}
break;
case 53:
-#line 483 "parser.Y"
+#line 493 "parser.Y"
{DebugWCS=(yyvsp[(2) - (2)].integer);;}
break;
case 54:
-#line 484 "parser.Y"
+#line 494 "parser.Y"
{DebugBin=(yyvsp[(2) - (2)].integer);;}
break;
case 55:
-#line 485 "parser.Y"
+#line 495 "parser.Y"
{DebugCompress=(yyvsp[(2) - (2)].integer);}
break;
case 56:
-#line 486 "parser.Y"
+#line 496 "parser.Y"
{DebugCrop=(yyvsp[(2) - (2)].integer);}
break;
case 57:
-#line 487 "parser.Y"
+#line 497 "parser.Y"
{DebugGZ=(yyvsp[(2) - (2)].integer);;}
break;
case 58:
-#line 488 "parser.Y"
+#line 498 "parser.Y"
{DebugRGB=(yyvsp[(2) - (2)].integer);;}
break;
case 59:
-#line 491 "parser.Y"
+#line 501 "parser.Y"
{(yyval.integer)=((yyvsp[(1) - (1)].integer) ? 1 : 0);;}
break;
case 60:
-#line 493 "parser.Y"
+#line 503 "parser.Y"
{(yyval.integer)=1;;}
break;
case 61:
-#line 494 "parser.Y"
+#line 504 "parser.Y"
{(yyval.integer)=1;;}
break;
case 62:
-#line 495 "parser.Y"
+#line 505 "parser.Y"
{(yyval.integer)=1;;}
break;
case 63:
-#line 496 "parser.Y"
+#line 506 "parser.Y"
{(yyval.integer)=1;;}
break;
case 64:
-#line 498 "parser.Y"
+#line 508 "parser.Y"
{(yyval.integer)=0;;}
break;
case 65:
-#line 499 "parser.Y"
+#line 509 "parser.Y"
{(yyval.integer)=0;;}
break;
case 66:
-#line 500 "parser.Y"
+#line 510 "parser.Y"
{(yyval.integer)=0;;}
break;
case 67:
-#line 501 "parser.Y"
+#line 511 "parser.Y"
{(yyval.integer)=0;;}
break;
case 68:
-#line 504 "parser.Y"
- {(yyval.integer) = DEFAULT;;}
+#line 514 "parser.Y"
+ {(yyval.integer) = Base::DEFAULT;;}
break;
case 69:
-#line 505 "parser.Y"
- {(yyval.integer) = DEFAULT;;}
+#line 515 "parser.Y"
+ {(yyval.integer) = Base::DEFAULT;;}
break;
case 70:
-#line 506 "parser.Y"
- {(yyval.integer) = FIXED;;}
+#line 516 "parser.Y"
+ {(yyval.integer) = Base::FIXED;;}
break;
case 71:
-#line 507 "parser.Y"
- {(yyval.integer) = SCIENTIFIC;;}
+#line 517 "parser.Y"
+ {(yyval.integer) = Base::SCIENTIFIC;;}
break;
case 72:
-#line 508 "parser.Y"
- {(yyval.integer) = INTEGER;;}
+#line 518 "parser.Y"
+ {(yyval.integer) = Base::INTEGER;;}
break;
case 73:
-#line 511 "parser.Y"
+#line 521 "parser.Y"
{(yyval.integer) = Base::ROOTBASE;;}
break;
case 74:
-#line 512 "parser.Y"
+#line 522 "parser.Y"
{(yyval.integer) = Base::ROOTBASE;;}
break;
case 75:
-#line 513 "parser.Y"
+#line 523 "parser.Y"
{(yyval.integer) = Base::FULLBASE;;}
break;
case 76:
-#line 514 "parser.Y"
+#line 524 "parser.Y"
{(yyval.integer) = Base::ROOT;;}
break;
case 77:
-#line 515 "parser.Y"
+#line 525 "parser.Y"
{(yyval.integer) = Base::FULL;;}
break;
case 78:
-#line 516 "parser.Y"
+#line 526 "parser.Y"
{(yyval.integer) = Base::ROOT3D;;}
break;
case 79:
-#line 517 "parser.Y"
+#line 527 "parser.Y"
{(yyval.integer) = Base::FULL3D;;}
break;
case 80:
-#line 520 "parser.Y"
+#line 530 "parser.Y"
{(yyval.real) = 0;;}
break;
case 81:
-#line 521 "parser.Y"
+#line 531 "parser.Y"
{(yyval.real) = (yyvsp[(1) - (1)].real);;}
break;
case 82:
-#line 524 "parser.Y"
+#line 534 "parser.Y"
{(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
break;
case 83:
-#line 525 "parser.Y"
+#line 535 "parser.Y"
{(yyval.real) = degToRad((yyvsp[(1) - (1)].real));;}
break;
case 84:
-#line 526 "parser.Y"
+#line 536 "parser.Y"
{(yyval.real)=(yyvsp[(1) - (1)].real);;}
break;
case 85:
-#line 529 "parser.Y"
+#line 539 "parser.Y"
{(yyval.real) = parseSEXStr((yyvsp[(1) - (1)].str));;}
break;
case 86:
-#line 532 "parser.Y"
+#line 542 "parser.Y"
{(yyval.real) = parseHMSStr((yyvsp[(1) - (1)].str));;}
break;
case 87:
-#line 535 "parser.Y"
+#line 545 "parser.Y"
{(yyval.real) = parseDMSStr((yyvsp[(1) - (1)].str));;}
break;
case 88:
-#line 539 "parser.Y"
+#line 549 "parser.Y"
{
Vector r;
- if (currentSky == GALACTIC || currentSky == ECLIPTIC)
+ if (currentSky == Coord::GALACTIC || currentSky == Coord::ECLIPTIC)
r = Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real));
else
r = Vector((yyvsp[(1) - (2)].real)*360./24.,(yyvsp[(2) - (2)].real));
@@ -5215,7 +5203,7 @@ yyreduce:
break;
case 89:
-#line 551 "parser.Y"
+#line 561 "parser.Y"
{
Vector r = Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real));
(yyval.vector)[0] = r[0];
@@ -5225,7 +5213,7 @@ yyreduce:
break;
case 90:
-#line 558 "parser.Y"
+#line 568 "parser.Y"
{
Vector r = Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real));
(yyval.vector)[0] = r[0];
@@ -5235,7 +5223,7 @@ yyreduce:
break;
case 91:
-#line 565 "parser.Y"
+#line 575 "parser.Y"
{
(yyval.vector)[0] = (yyvsp[(1) - (2)].real);
(yyval.vector)[1] = (yyvsp[(2) - (2)].real);
@@ -5244,2382 +5232,2462 @@ yyreduce:
break;
case 92:
-#line 572 "parser.Y"
- {(yyval.integer) = currentCoord = IMAGE;;}
+#line 582 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::IMAGE;;}
break;
case 93:
-#line 573 "parser.Y"
- {(yyval.integer) = currentCoord = PHYSICAL;;}
+#line 583 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::PHYSICAL;;}
break;
case 94:
-#line 574 "parser.Y"
- {(yyval.integer) = currentCoord = DETECTOR;;}
+#line 584 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::DETECTOR;;}
break;
case 95:
-#line 575 "parser.Y"
- {(yyval.integer) = currentCoord = AMPLIFIER;;}
+#line 585 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::AMPLIFIER;;}
break;
case 96:
-#line 576 "parser.Y"
- {(yyval.integer) = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
+#line 586 "parser.Y"
+ {(yyval.integer) = (Coord::CoordSystem)(yyvsp[(1) - (1)].integer);;}
break;
case 97:
-#line 579 "parser.Y"
- {(yyval.integer) = currentCoord = WCS;;}
+#line 589 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCS;;}
break;
case 98:
-#line 580 "parser.Y"
- {(yyval.integer) = currentCoord = WCSA;;}
+#line 590 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSA;;}
break;
case 99:
-#line 581 "parser.Y"
- {(yyval.integer) = currentCoord = WCSB;;}
+#line 591 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSB;;}
break;
case 100:
-#line 582 "parser.Y"
- {(yyval.integer) = currentCoord = WCSC;;}
+#line 592 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSC;;}
break;
case 101:
-#line 583 "parser.Y"
- {(yyval.integer) = currentCoord = WCSD;;}
+#line 593 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSD;;}
break;
case 102:
-#line 584 "parser.Y"
- {(yyval.integer) = currentCoord = WCSE;;}
+#line 594 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSE;;}
break;
case 103:
-#line 585 "parser.Y"
- {(yyval.integer) = currentCoord = WCSF;;}
+#line 595 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSF;;}
break;
case 104:
-#line 586 "parser.Y"
- {(yyval.integer) = currentCoord = WCSG;;}
+#line 596 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSG;;}
break;
case 105:
-#line 587 "parser.Y"
- {(yyval.integer) = currentCoord = WCSH;;}
+#line 597 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSH;;}
break;
case 106:
-#line 588 "parser.Y"
- {(yyval.integer) = currentCoord = WCSI;;}
+#line 598 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSI;;}
break;
case 107:
-#line 589 "parser.Y"
- {(yyval.integer) = currentCoord = WCSJ;;}
+#line 599 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSJ;;}
break;
case 108:
-#line 590 "parser.Y"
- {(yyval.integer) = currentCoord = WCSK;;}
+#line 600 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSK;;}
break;
case 109:
-#line 591 "parser.Y"
- {(yyval.integer) = currentCoord = WCSL;;}
+#line 601 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSL;;}
break;
case 110:
-#line 592 "parser.Y"
- {(yyval.integer) = currentCoord = WCSM;;}
+#line 602 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSM;;}
break;
case 111:
-#line 593 "parser.Y"
- {(yyval.integer) = currentCoord = WCSN;;}
+#line 603 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSN;;}
break;
case 112:
-#line 594 "parser.Y"
- {(yyval.integer) = currentCoord = WCSO;;}
+#line 604 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSO;;}
break;
case 113:
-#line 595 "parser.Y"
- {(yyval.integer) = currentCoord = WCSP;;}
+#line 605 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSP;;}
break;
case 114:
-#line 596 "parser.Y"
- {(yyval.integer) = currentCoord = WCSQ;;}
+#line 606 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSQ;;}
break;
case 115:
-#line 597 "parser.Y"
- {(yyval.integer) = currentCoord = WCSR;;}
+#line 607 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSR;;}
break;
case 116:
-#line 598 "parser.Y"
- {(yyval.integer) = currentCoord = WCSS;;}
+#line 608 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSS;;}
break;
case 117:
-#line 599 "parser.Y"
- {(yyval.integer) = currentCoord = WCST;;}
+#line 609 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCST;;}
break;
case 118:
-#line 600 "parser.Y"
- {(yyval.integer) = currentCoord = WCSU;;}
+#line 610 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSU;;}
break;
case 119:
-#line 601 "parser.Y"
- {(yyval.integer) = currentCoord = WCSV;;}
+#line 611 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSV;;}
break;
case 120:
-#line 602 "parser.Y"
- {(yyval.integer) = currentCoord = WCSW;;}
+#line 612 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSW;;}
break;
case 121:
-#line 603 "parser.Y"
- {(yyval.integer) = currentCoord = WCSX;;}
+#line 613 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSX;;}
break;
case 122:
-#line 604 "parser.Y"
- {(yyval.integer) = currentCoord = WCSY;;}
+#line 614 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSY;;}
break;
case 123:
-#line 605 "parser.Y"
- {(yyval.integer) = currentCoord = WCSZ;;}
+#line 615 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCSZ;;}
break;
case 124:
-#line 606 "parser.Y"
- {(yyval.integer) = currentCoord = WCS0;;}
+#line 616 "parser.Y"
+ {(yyval.integer) = currentCoord = Coord::WCS0;;}
break;
case 125:
-#line 609 "parser.Y"
- {(yyval.integer) = CANVAS;;}
+#line 619 "parser.Y"
+ {(yyval.integer) = Coord::CANVAS;;}
break;
case 126:
-#line 610 "parser.Y"
- {(yyval.integer) = PANNER;;}
+#line 620 "parser.Y"
+ {(yyval.integer) = Coord::PANNER;;}
break;
case 127:
-#line 613 "parser.Y"
+#line 623 "parser.Y"
{(yyval.integer) = FrScale::LINEARSCALE;;}
break;
case 128:
-#line 614 "parser.Y"
+#line 624 "parser.Y"
{(yyval.integer) = FrScale::LOGSCALE;;}
break;
case 129:
-#line 615 "parser.Y"
+#line 625 "parser.Y"
{(yyval.integer) = FrScale::POWSCALE;;}
break;
case 130:
-#line 616 "parser.Y"
+#line 626 "parser.Y"
{(yyval.integer) = FrScale::SQRTSCALE;;}
break;
case 131:
-#line 617 "parser.Y"
+#line 627 "parser.Y"
{(yyval.integer) = FrScale::SQUAREDSCALE;;}
break;
case 132:
-#line 618 "parser.Y"
+#line 628 "parser.Y"
{(yyval.integer) = FrScale::ASINHSCALE;;}
break;
case 133:
-#line 619 "parser.Y"
+#line 629 "parser.Y"
{(yyval.integer) = FrScale::SINHSCALE;;}
break;
case 134:
-#line 620 "parser.Y"
+#line 630 "parser.Y"
{(yyval.integer) = FrScale::HISTEQUSCALE;;}
break;
case 135:
-#line 623 "parser.Y"
- {(yyval.integer) = currentSky = FK5;;}
+#line 633 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::FK5;;}
break;
case 136:
-#line 624 "parser.Y"
- {(yyval.integer) = currentSky = FK4;;}
+#line 634 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::FK4;;}
break;
case 137:
-#line 625 "parser.Y"
- {(yyval.integer) = currentSky = FK4_NO_E;;}
+#line 635 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::FK4_NO_E;;}
break;
case 138:
-#line 626 "parser.Y"
- {(yyval.integer) = currentSky = FK4;;}
+#line 636 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::FK4;;}
break;
case 139:
-#line 627 "parser.Y"
- {(yyval.integer) = currentSky = FK5;;}
+#line 637 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::FK5;;}
break;
case 140:
-#line 628 "parser.Y"
- {(yyval.integer) = currentSky = FK5;;}
+#line 638 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::FK5;;}
break;
case 141:
-#line 629 "parser.Y"
- {(yyval.integer) = currentSky = ICRS;;}
+#line 639 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::ICRS;;}
break;
case 142:
-#line 630 "parser.Y"
- {(yyval.integer) = currentSky = GALACTIC;;}
+#line 640 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::GALACTIC;;}
break;
case 143:
-#line 631 "parser.Y"
- {(yyval.integer) = currentSky = SUPERGALACTIC;;}
+#line 641 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::SUPERGALACTIC;;}
break;
case 144:
-#line 632 "parser.Y"
- {(yyval.integer) = currentSky = ECLIPTIC;;}
+#line 642 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::ECLIPTIC;;}
break;
case 145:
-#line 633 "parser.Y"
- {(yyval.integer) = currentSky = HELIOECLIPTIC;;}
+#line 643 "parser.Y"
+ {(yyval.integer) = currentSky = Coord::HELIOECLIPTIC;;}
break;
case 146:
-#line 636 "parser.Y"
- {(yyval.integer)=DEGREES;;}
+#line 646 "parser.Y"
+ {(yyval.integer)=Coord::DEGREES;;}
break;
case 147:
-#line 637 "parser.Y"
- {(yyval.integer)=DEGREES;;}
+#line 647 "parser.Y"
+ {(yyval.integer)=Coord::DEGREES;;}
break;
case 148:
-#line 638 "parser.Y"
- {(yyval.integer)=SEXAGESIMAL;;}
+#line 648 "parser.Y"
+ {(yyval.integer)=Coord::SEXAGESIMAL;;}
break;
case 149:
-#line 641 "parser.Y"
- {(yyval.integer)=DEGREE;;}
+#line 651 "parser.Y"
+ {(yyval.integer)=Coord::DEGREE;;}
break;
case 150:
-#line 642 "parser.Y"
- {(yyval.integer)=DEGREE;;}
+#line 652 "parser.Y"
+ {(yyval.integer)=Coord::DEGREE;;}
break;
case 151:
-#line 643 "parser.Y"
- {(yyval.integer)=ARCMIN;;}
+#line 653 "parser.Y"
+ {(yyval.integer)=Coord::ARCMIN;;}
break;
case 152:
-#line 644 "parser.Y"
- {(yyval.integer)=ARCSEC;;}
+#line 654 "parser.Y"
+ {(yyval.integer)=Coord::ARCSEC;;}
break;
case 153:
-#line 647 "parser.Y"
+#line 657 "parser.Y"
{(yyval.real) = (yyvsp[(1) - (1)].real);;}
break;
case 154:
-#line 648 "parser.Y"
+#line 658 "parser.Y"
{(yyval.real) = FrScale::MINMAX;;}
break;
case 155:
-#line 649 "parser.Y"
+#line 659 "parser.Y"
{(yyval.real) = FrScale::ZSCALE;;}
break;
case 156:
-#line 650 "parser.Y"
+#line 660 "parser.Y"
{(yyval.real) = FrScale::ZMAX;;}
break;
case 157:
-#line 651 "parser.Y"
+#line 661 "parser.Y"
{(yyval.real) = FrScale::USERCLIP;;}
break;
case 158:
-#line 654 "parser.Y"
+#line 664 "parser.Y"
{(yyval.integer) = Base::SHMID;;}
break;
case 159:
-#line 655 "parser.Y"
+#line 665 "parser.Y"
{(yyval.integer) = Base::SHMID;;}
break;
case 160:
-#line 656 "parser.Y"
+#line 666 "parser.Y"
{(yyval.integer) = Base::KEY;;}
break;
case 161:
-#line 659 "parser.Y"
+#line 669 "parser.Y"
{(yyval.integer) = Base::LOADALL;;}
break;
case 162:
-#line 660 "parser.Y"
+#line 670 "parser.Y"
{(yyval.integer) = Base::LOADALL;;}
break;
case 163:
-#line 661 "parser.Y"
+#line 671 "parser.Y"
{(yyval.integer) = Base::INCR;;}
break;
case 164:
-#line 664 "parser.Y"
+#line 674 "parser.Y"
{(yyval.integer) = Base::IMG;;}
break;
case 165:
-#line 665 "parser.Y"
+#line 675 "parser.Y"
{(yyval.integer) = Base::IMG;;}
break;
case 166:
-#line 666 "parser.Y"
+#line 676 "parser.Y"
{(yyval.integer) = Base::MASK;;}
break;
case 167:
-#line 669 "parser.Y"
+#line 679 "parser.Y"
{(yyval.integer) = Base::NOCOMPRESS;;}
break;
case 168:
-#line 670 "parser.Y"
+#line 680 "parser.Y"
{(yyval.integer) = Base::NOCOMPRESS;;}
break;
case 169:
-#line 671 "parser.Y"
+#line 681 "parser.Y"
{(yyval.integer) = Base::GZ;;}
break;
case 170:
-#line 674 "parser.Y"
- {(yyval.integer) = POINTSIZE;;}
+#line 684 "parser.Y"
+ {(yyval.integer) = Point::CIRCLE;;}
break;
case 171:
-#line 675 "parser.Y"
- {(yyval.integer) = (yyvsp[(1) - (1)].integer);;}
+#line 685 "parser.Y"
+ {(yyval.integer) = Point::CIRCLE;;}
break;
case 172:
-#line 678 "parser.Y"
- {(yyval.integer) = FitsFile::BIGENDIAN;;}
+#line 686 "parser.Y"
+ {(yyval.integer) = Point::BOX;;}
break;
case 173:
-#line 679 "parser.Y"
- {(yyval.integer) = FitsFile::BIGENDIAN;;}
+#line 687 "parser.Y"
+ {(yyval.integer) = Point::DIAMOND;;}
break;
case 174:
-#line 680 "parser.Y"
- {(yyval.integer) = FitsFile::LITTLEENDIAN;;}
+#line 688 "parser.Y"
+ {(yyval.integer) = Point::CROSS;;}
break;
case 175:
-#line 683 "parser.Y"
- {fr->set3dViewCmd((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real));;}
+#line 689 "parser.Y"
+ {(yyval.integer) = Point::EX;;}
break;
case 176:
-#line 684 "parser.Y"
- {fr->set3dHighliteCmd((yyvsp[(2) - (2)].integer));;}
+#line 690 "parser.Y"
+ {(yyval.integer) = Point::ARROW;;}
break;
case 177:
-#line 685 "parser.Y"
- {fr->set3dRenderMethodCmd((yyvsp[(2) - (2)].integer));;}
+#line 691 "parser.Y"
+ {(yyval.integer) = Point::BOXCIRCLE;;}
break;
case 178:
-#line 686 "parser.Y"
- {fr->set3dThreadsCmd((yyvsp[(2) - (2)].integer));;}
+#line 694 "parser.Y"
+ {(yyval.integer) = POINTSIZE;;}
break;
case 179:
-#line 688 "parser.Y"
- {/* needed for compatibility with old version of backup */;}
+#line 695 "parser.Y"
+ {(yyval.integer) = (yyvsp[(1) - (1)].integer);;}
+ break;
+
+ case 180:
+#line 698 "parser.Y"
+ {(yyval.integer) = Marker::STATS;;}
break;
case 181:
-#line 692 "parser.Y"
- {fr->binColsCmd((yyvsp[(2) - (4)].str),(yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].str));;}
+#line 699 "parser.Y"
+ {(yyval.integer) = Marker::PLOT2D;;}
break;
case 182:
-#line 693 "parser.Y"
- {fr->binDepthCmd((yyvsp[(2) - (2)].integer));;}
+#line 700 "parser.Y"
+ {(yyval.integer) = Marker::PLOT3D;;}
+ break;
+
+ case 183:
+#line 703 "parser.Y"
+ {(yyval.integer) = Marker::AVERAGE;;}
+ break;
+
+ case 184:
+#line 704 "parser.Y"
+ {(yyval.integer) = Marker::AVERAGE;;}
break;
case 185:
-#line 696 "parser.Y"
- {fr->binBufferSizeCmd((yyvsp[(3) - (3)].integer));;}
+#line 705 "parser.Y"
+ {(yyval.integer) = Marker::SUM;;}
+ break;
+
+ case 186:
+#line 708 "parser.Y"
+ {(yyval.integer) = FitsFile::BIGENDIAN;;}
break;
case 187:
-#line 698 "parser.Y"
- {fr->binFilterCmd((yyvsp[(2) - (2)].str));;}
+#line 709 "parser.Y"
+ {(yyval.integer) = FitsFile::BIGENDIAN;;}
break;
case 188:
-#line 701 "parser.Y"
- {fr->binAboutCmd();;}
+#line 710 "parser.Y"
+ {(yyval.integer) = FitsFile::LITTLEENDIAN;;}
break;
case 189:
-#line 702 "parser.Y"
- {fr->binAboutCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+#line 713 "parser.Y"
+ {fr->set3dViewCmd((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real));;}
break;
case 190:
-#line 705 "parser.Y"
- {fr->binFactorCmd(Vector((yyvsp[(1) - (1)].real),(yyvsp[(1) - (1)].real)));;}
+#line 714 "parser.Y"
+ {fr->set3dHighliteCmd((yyvsp[(2) - (2)].integer));;}
break;
case 191:
-#line 706 "parser.Y"
- {fr->binFactorCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+#line 715 "parser.Y"
+ {fr->set3dRenderMethodCmd((yyvsp[(2) - (2)].integer));;}
break;
case 192:
-#line 708 "parser.Y"
- {fr->binFactorAboutCmd(Vector((yyvsp[(1) - (4)].real),(yyvsp[(1) - (4)].real)), Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+#line 716 "parser.Y"
+ {fr->set3dThreadsCmd((yyvsp[(2) - (2)].integer));;}
break;
case 193:
-#line 710 "parser.Y"
+#line 718 "parser.Y"
+ {/* needed for compatibility with old version of backup */;}
+ break;
+
+ case 195:
+#line 722 "parser.Y"
+ {fr->binColsCmd((yyvsp[(2) - (4)].str),(yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].str));;}
+ break;
+
+ case 196:
+#line 723 "parser.Y"
+ {fr->binDepthCmd((yyvsp[(2) - (2)].integer));;}
+ break;
+
+ case 199:
+#line 726 "parser.Y"
+ {fr->binBufferSizeCmd((yyvsp[(3) - (3)].integer));;}
+ break;
+
+ case 201:
+#line 728 "parser.Y"
+ {fr->binFilterCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 202:
+#line 731 "parser.Y"
+ {fr->binAboutCmd();;}
+ break;
+
+ case 203:
+#line 732 "parser.Y"
+ {fr->binAboutCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 204:
+#line 735 "parser.Y"
+ {fr->binFactorCmd(Vector((yyvsp[(1) - (1)].real),(yyvsp[(1) - (1)].real)));;}
+ break;
+
+ case 205:
+#line 736 "parser.Y"
+ {fr->binFactorCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
+ break;
+
+ case 206:
+#line 738 "parser.Y"
+ {fr->binFactorAboutCmd(Vector((yyvsp[(1) - (4)].real),(yyvsp[(1) - (4)].real)), Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+ break;
+
+ case 207:
+#line 740 "parser.Y"
{fr->binFactorAboutCmd(Vector((yyvsp[(1) - (5)].real),(yyvsp[(2) - (5)].real)), Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;}
break;
- case 194:
-#line 711 "parser.Y"
+ case 208:
+#line 741 "parser.Y"
{fr->binFactorToCmd(Vector((yyvsp[(2) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 195:
-#line 712 "parser.Y"
+ case 209:
+#line 742 "parser.Y"
{fr->binFactorToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 196:
-#line 714 "parser.Y"
+ case 210:
+#line 744 "parser.Y"
{fr->binFactorToAboutCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(2) - (5)].real)), Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;}
break;
- case 197:
-#line 716 "parser.Y"
+ case 211:
+#line 746 "parser.Y"
{fr->binFactorToAboutCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)), Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
break;
- case 198:
-#line 719 "parser.Y"
+ case 212:
+#line 749 "parser.Y"
{fr->binFunctionCmd(FitsHist::AVERAGE);;}
break;
- case 199:
-#line 720 "parser.Y"
+ case 213:
+#line 750 "parser.Y"
{fr->binFunctionCmd(FitsHist::SUM);;}
break;
- case 200:
-#line 723 "parser.Y"
+ case 214:
+#line 753 "parser.Y"
{fr->binToFitCmd();;}
break;
- case 201:
-#line 725 "parser.Y"
+ case 215:
+#line 755 "parser.Y"
{fr->binCmd(Vector((yyvsp[(1) - (7)].real),(yyvsp[(2) - (7)].real)), (yyvsp[(5) - (7)].str), (yyvsp[(6) - (7)].str), (yyvsp[(7) - (7)].str));;}
break;
- case 202:
-#line 728 "parser.Y"
+ case 216:
+#line 758 "parser.Y"
{fr->binCmd(Vector((yyvsp[(1) - (11)].real),(yyvsp[(2) - (11)].real)), (yyvsp[(3) - (11)].integer), Vector((yyvsp[(4) - (11)].real),(yyvsp[(5) - (11)].real)), (yyvsp[(8) - (11)].str), (yyvsp[(9) - (11)].str), (yyvsp[(10) - (11)].str), (yyvsp[(11) - (11)].str));;}
break;
- case 203:
-#line 730 "parser.Y"
+ case 217:
+#line 760 "parser.Y"
{fr->binCmd(Vector((yyvsp[(1) - (8)].real),(yyvsp[(2) - (8)].real)), Vector((yyvsp[(4) - (8)].real),(yyvsp[(5) - (8)].real)), (yyvsp[(6) - (8)].str), (yyvsp[(7) - (8)].str), (yyvsp[(8) - (8)].str));;}
break;
- case 204:
-#line 733 "parser.Y"
+ case 218:
+#line 763 "parser.Y"
{fr->binCmd(Vector((yyvsp[(1) - (12)].real),(yyvsp[(2) - (12)].real)), (yyvsp[(3) - (12)].integer), Vector((yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real)), Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
(yyvsp[(9) - (12)].str), (yyvsp[(10) - (12)].str), (yyvsp[(11) - (12)].str), (yyvsp[(12) - (12)].str));;}
break;
- case 210:
-#line 742 "parser.Y"
+ case 224:
+#line 772 "parser.Y"
{fr->clipPreserveCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 211:
-#line 745 "parser.Y"
+ case 225:
+#line 775 "parser.Y"
{fr->clipUserCmd((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real));;}
break;
- case 212:
-#line 746 "parser.Y"
+ case 226:
+#line 776 "parser.Y"
{fr->clipUserLowCmd((yyvsp[(2) - (2)].real));;}
break;
- case 213:
-#line 747 "parser.Y"
+ case 227:
+#line 777 "parser.Y"
{fr->clipUserHighCmd((yyvsp[(2) - (2)].real));;}
break;
- case 214:
-#line 750 "parser.Y"
+ case 228:
+#line 780 "parser.Y"
{fr->clipScopeCmd(FrScale::GLOBAL);;}
break;
- case 215:
-#line 751 "parser.Y"
+ case 229:
+#line 781 "parser.Y"
{fr->clipScopeCmd(FrScale::LOCAL);;}
break;
- case 216:
-#line 754 "parser.Y"
+ case 230:
+#line 784 "parser.Y"
{fr->clipModeCmd((yyvsp[(1) - (1)].real));;}
break;
- case 217:
-#line 755 "parser.Y"
+ case 231:
+#line 785 "parser.Y"
{fr->clipModeCmd(FrScale::MINMAX);;}
break;
- case 218:
-#line 756 "parser.Y"
+ case 232:
+#line 786 "parser.Y"
{fr->clipModeCmd(FrScale::ZSCALE);;}
break;
- case 219:
-#line 757 "parser.Y"
+ case 233:
+#line 787 "parser.Y"
{fr->clipModeCmd(FrScale::ZMAX);;}
break;
- case 220:
-#line 758 "parser.Y"
+ case 234:
+#line 788 "parser.Y"
{fr->clipModeCmd(FrScale::USERCLIP);;}
break;
- case 222:
-#line 762 "parser.Y"
+ case 236:
+#line 792 "parser.Y"
{fr->clipMinMaxSampleCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 223:
-#line 765 "parser.Y"
+ case 237:
+#line 795 "parser.Y"
{fr->clipMinMaxModeCmd(FrScale::AUTOSCAN);;}
break;
- case 224:
-#line 766 "parser.Y"
+ case 238:
+#line 796 "parser.Y"
{fr->clipMinMaxModeCmd(FrScale::SCAN);;}
break;
- case 225:
-#line 767 "parser.Y"
+ case 239:
+#line 797 "parser.Y"
{fr->clipMinMaxModeCmd(FrScale::SAMPLE);;}
break;
- case 226:
-#line 768 "parser.Y"
+ case 240:
+#line 798 "parser.Y"
{fr->clipMinMaxModeCmd(FrScale::DATAMIN);;}
break;
- case 227:
-#line 769 "parser.Y"
+ case 241:
+#line 799 "parser.Y"
{fr->clipMinMaxModeCmd(FrScale::IRAFMIN);;}
break;
- case 228:
-#line 772 "parser.Y"
+ case 242:
+#line 802 "parser.Y"
{fr->clipZScaleContrastCmd((yyvsp[(2) - (2)].real));;}
break;
- case 229:
-#line 773 "parser.Y"
+ case 243:
+#line 803 "parser.Y"
{fr->clipZScaleSampleCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 230:
-#line 774 "parser.Y"
+ case 244:
+#line 804 "parser.Y"
{fr->clipZScaleLineCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 231:
-#line 778 "parser.Y"
+ case 245:
+#line 808 "parser.Y"
{fr->colormapCmd((yyvsp[(1) - (7)].integer), (yyvsp[(2) - (7)].real), (yyvsp[(3) - (7)].real), (yyvsp[(4) - (7)].integer), (unsigned short*)(yyvsp[(5) - (7)].ptr),
(unsigned char*)(yyvsp[(6) - (7)].ptr), (yyvsp[(7) - (7)].integer));;}
break;
- case 232:
-#line 781 "parser.Y"
+ case 246:
+#line 811 "parser.Y"
{fr->colormapCmd((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real),(yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].real),(yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].integer),(unsigned char*)(yyvsp[(9) - (10)].ptr),(yyvsp[(10) - (10)].integer));;}
break;
- case 233:
-#line 782 "parser.Y"
+ case 247:
+#line 812 "parser.Y"
{fr->colormapBeginCmd();;}
break;
- case 235:
-#line 784 "parser.Y"
+ case 249:
+#line 814 "parser.Y"
{fr->colormapEndCmd();;}
break;
- case 236:
-#line 788 "parser.Y"
+ case 250:
+#line 818 "parser.Y"
{fr->colormapMotionCmd((yyvsp[(1) - (7)].integer), (yyvsp[(2) - (7)].real), (yyvsp[(3) - (7)].real), (yyvsp[(4) - (7)].integer), (unsigned short*)(yyvsp[(5) - (7)].ptr),
(unsigned char*)(yyvsp[(6) - (7)].ptr), (yyvsp[(7) - (7)].integer));;}
break;
- case 237:
-#line 791 "parser.Y"
+ case 251:
+#line 821 "parser.Y"
{fr->colormapMotionCmd((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real),(yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].real),(yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].integer),
(unsigned char*)(yyvsp[(9) - (10)].ptr),(yyvsp[(10) - (10)].integer));;}
break;
- case 238:
-#line 794 "parser.Y"
+ case 252:
+#line 824 "parser.Y"
{fr->colorScaleCmd((FrScale::ColorScaleType)(yyvsp[(1) - (1)].integer));;}
break;
- case 239:
-#line 795 "parser.Y"
+ case 253:
+#line 825 "parser.Y"
{fr->colorScaleLogCmd((yyvsp[(2) - (2)].real));;}
break;
- case 241:
-#line 799 "parser.Y"
+ case 255:
+#line 829 "parser.Y"
{fr->contourSetColorCmd((yyvsp[(2) - (2)].str));;}
break;
- case 242:
-#line 801 "parser.Y"
- {fr->contourCopyCmd((CoordSystem)(yyvsp[(2) - (3)].integer), (SkyFrame)(yyvsp[(3) - (3)].integer));;}
+ case 256:
+#line 831 "parser.Y"
+ {fr->contourCopyCmd((Coord::CoordSystem)(yyvsp[(2) - (3)].integer), (Coord::SkyFrame)(yyvsp[(3) - (3)].integer));;}
break;
- case 244:
-#line 803 "parser.Y"
+ case 258:
+#line 833 "parser.Y"
{fr->contourSetDashCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 245:
-#line 804 "parser.Y"
+ case 259:
+#line 834 "parser.Y"
{fr->contourDeleteCmd();;}
break;
- case 246:
-#line 805 "parser.Y"
+ case 260:
+#line 835 "parser.Y"
{fr->contourDeleteAllCmd();;}
break;
- case 247:
-#line 807 "parser.Y"
- {fr->contourLoadCmd((yyvsp[(2) - (7)].str), (yyvsp[(3) - (7)].integer), (yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].str), (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyFrame)(yyvsp[(7) - (7)].integer));;}
+ case 261:
+#line 837 "parser.Y"
+ {fr->contourLoadCmd((yyvsp[(2) - (7)].str), (yyvsp[(3) - (7)].integer), (yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].str), (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::SkyFrame)(yyvsp[(7) - (7)].integer));;}
break;
- case 248:
-#line 809 "parser.Y"
- {fr->contourPasteCmd((yyvsp[(2) - (7)].str), (yyvsp[(3) - (7)].integer), (yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].ptr), (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyFrame)(yyvsp[(7) - (7)].integer));;}
+ case 262:
+#line 839 "parser.Y"
+ {fr->contourPasteCmd((yyvsp[(2) - (7)].str), (yyvsp[(3) - (7)].integer), (yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].ptr), (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::SkyFrame)(yyvsp[(7) - (7)].integer));;}
break;
- case 249:
-#line 811 "parser.Y"
- {fr->contourSaveCmd((yyvsp[(2) - (4)].str), (CoordSystem)(yyvsp[(3) - (4)].integer), (SkyFrame)(yyvsp[(4) - (4)].integer));;}
+ case 263:
+#line 841 "parser.Y"
+ {fr->contourSaveCmd((yyvsp[(2) - (4)].str), (Coord::CoordSystem)(yyvsp[(3) - (4)].integer), (Coord::SkyFrame)(yyvsp[(4) - (4)].integer));;}
break;
- case 250:
-#line 812 "parser.Y"
+ case 264:
+#line 842 "parser.Y"
{fr->contourSetLineWidthCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 251:
-#line 815 "parser.Y"
+ case 265:
+#line 845 "parser.Y"
{fr->contourAuxHeadCmd();;}
break;
- case 252:
-#line 816 "parser.Y"
+ case 266:
+#line 846 "parser.Y"
{fr->contourAuxNextCmd();;}
break;
- case 253:
-#line 818 "parser.Y"
- {fr->contourAuxSaveCmd((yyvsp[(2) - (4)].str), (CoordSystem)(yyvsp[(3) - (4)].integer), (SkyFrame)(yyvsp[(4) - (4)].integer));;}
+ case 267:
+#line 848 "parser.Y"
+ {fr->contourAuxSaveCmd((yyvsp[(2) - (4)].str), (Coord::CoordSystem)(yyvsp[(3) - (4)].integer), (Coord::SkyFrame)(yyvsp[(4) - (4)].integer));;}
break;
- case 254:
-#line 822 "parser.Y"
+ case 268:
+#line 852 "parser.Y"
{fr->contourCreateCmd((yyvsp[(1) - (12)].str),(yyvsp[(2) - (12)].integer),(yyvsp[(3) - (12)].integer),(FVContour::Method)(yyvsp[(4) - (12)].integer),(yyvsp[(5) - (12)].integer),(yyvsp[(6) - (12)].integer),(FrScale::ColorScaleType)(yyvsp[(7) - (12)].integer),(yyvsp[(8) - (12)].real),(yyvsp[(9) - (12)].real),Vector((yyvsp[(10) - (12)].real),(yyvsp[(11) - (12)].real)),(yyvsp[(12) - (12)].str));;}
break;
- case 255:
-#line 824 "parser.Y"
+ case 269:
+#line 854 "parser.Y"
{fr->createContourPolygonCmd(currentColor,currentDash,currentWidth,
currentFont, currentText, currentProps, NULL, taglist,cblist);;}
break;
- case 256:
-#line 828 "parser.Y"
+ case 270:
+#line 858 "parser.Y"
{(yyval.integer) = FVContour::SMOOTH;;}
break;
- case 257:
-#line 829 "parser.Y"
+ case 271:
+#line 859 "parser.Y"
{(yyval.integer) = FVContour::BLOCK;;}
break;
- case 258:
-#line 832 "parser.Y"
+ case 272:
+#line 862 "parser.Y"
{fr->cropCmd();;}
break;
- case 259:
-#line 834 "parser.Y"
+ case 273:
+#line 864 "parser.Y"
{fr->cropCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)), Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),
- (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyFrame)(yyvsp[(6) - (6)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(5) - (6)].integer), (Coord::SkyFrame)(yyvsp[(6) - (6)].integer));;}
break;
- case 260:
-#line 837 "parser.Y"
- {fr->cropCenterCmd(Vector((yyvsp[(2) - (8)].vector)), (CoordSystem)(yyvsp[(3) - (8)].integer), (SkyFrame)(yyvsp[(4) - (8)].integer),
- Vector((yyvsp[(5) - (8)].real),(yyvsp[(6) - (8)].real)), (CoordSystem)(yyvsp[(7) - (8)].integer), (SkyDist)(yyvsp[(8) - (8)].integer));;}
+ case 274:
+#line 867 "parser.Y"
+ {fr->cropCenterCmd(Vector((yyvsp[(2) - (8)].vector)), (Coord::CoordSystem)(yyvsp[(3) - (8)].integer), (Coord::SkyFrame)(yyvsp[(4) - (8)].integer),
+ Vector((yyvsp[(5) - (8)].real),(yyvsp[(6) - (8)].real)), (Coord::CoordSystem)(yyvsp[(7) - (8)].integer), (Coord::SkyDist)(yyvsp[(8) - (8)].integer));;}
break;
- case 262:
-#line 840 "parser.Y"
+ case 276:
+#line 870 "parser.Y"
{fr->cropBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 263:
-#line 841 "parser.Y"
+ case 277:
+#line 871 "parser.Y"
{fr->cropMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 264:
-#line 842 "parser.Y"
+ case 278:
+#line 872 "parser.Y"
{fr->cropEndCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 265:
-#line 845 "parser.Y"
+ case 279:
+#line 875 "parser.Y"
{fr->crop3dCmd();;}
break;
- case 266:
-#line 846 "parser.Y"
- {fr->crop3dCmd((yyvsp[(1) - (3)].real), (yyvsp[(2) - (3)].real), (CoordSystem)(yyvsp[(3) - (3)].integer));;}
+ case 280:
+#line 876 "parser.Y"
+ {fr->crop3dCmd((yyvsp[(1) - (3)].real), (yyvsp[(2) - (3)].real), (Coord::CoordSystem)(yyvsp[(3) - (3)].integer));;}
break;
- case 267:
-#line 847 "parser.Y"
+ case 281:
+#line 877 "parser.Y"
{fr->crop3dBeginCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
break;
- case 268:
-#line 848 "parser.Y"
+ case 282:
+#line 878 "parser.Y"
{fr->crop3dMotionCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
break;
- case 269:
-#line 849 "parser.Y"
+ case 283:
+#line 879 "parser.Y"
{fr->crop3dEndCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
break;
- case 270:
-#line 853 "parser.Y"
- {fr->crosshairCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)), (InternalSystem)(yyvsp[(1) - (3)].integer));;}
+ case 284:
+#line 883 "parser.Y"
+ {fr->crosshairCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)), (Coord::InternalSystem)(yyvsp[(1) - (3)].integer));;}
break;
- case 271:
-#line 855 "parser.Y"
- {fr->crosshairCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer));;}
+ case 285:
+#line 885 "parser.Y"
+ {fr->crosshairCmd(Vector((yyvsp[(3) - (3)].vector)), (Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer));;}
break;
- case 272:
-#line 856 "parser.Y"
+ case 286:
+#line 886 "parser.Y"
{fr->crosshairCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 273:
-#line 857 "parser.Y"
+ case 287:
+#line 887 "parser.Y"
{fr->crosshairWarpCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 274:
-#line 860 "parser.Y"
- {fr->crosshairCmd(Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)), (InternalSystem)(yyvsp[(3) - (5)].integer));;}
+ case 288:
+#line 890 "parser.Y"
+ {fr->crosshairCmd(Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)), (Coord::InternalSystem)(yyvsp[(3) - (5)].integer));;}
break;
- case 275:
-#line 862 "parser.Y"
- {fr->crosshairCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)), (InternalSystem)(yyvsp[(2) - (4)].integer));;}
+ case 289:
+#line 892 "parser.Y"
+ {fr->crosshairCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)), (Coord::InternalSystem)(yyvsp[(2) - (4)].integer));;}
break;
- case 276:
-#line 864 "parser.Y"
- {fr->crosshairCmd(Vector((yyvsp[(4) - (4)].vector)), (CoordSystem)(yyvsp[(3) - (4)].integer));;}
+ case 290:
+#line 894 "parser.Y"
+ {fr->crosshairCmd(Vector((yyvsp[(4) - (4)].vector)), (Coord::CoordSystem)(yyvsp[(3) - (4)].integer));;}
break;
- case 277:
-#line 866 "parser.Y"
- {fr->crosshairCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(2) - (3)].integer));;}
+ case 291:
+#line 896 "parser.Y"
+ {fr->crosshairCmd(Vector((yyvsp[(3) - (3)].vector)), (Coord::CoordSystem)(yyvsp[(2) - (3)].integer));;}
break;
- case 278:
-#line 869 "parser.Y"
+ case 292:
+#line 899 "parser.Y"
{fr->fitsyHasExtCmd((yyvsp[(3) - (3)].str));;}
break;
- case 279:
-#line 872 "parser.Y"
+ case 293:
+#line 902 "parser.Y"
{fr->getBgColorCmd();;}
break;
- case 283:
-#line 876 "parser.Y"
+ case 297:
+#line 906 "parser.Y"
{fr->getColorbarCmd();;}
break;
- case 291:
-#line 884 "parser.Y"
+ case 305:
+#line 914 "parser.Y"
{fr->getDATASECCmd();;}
break;
- case 294:
-#line 887 "parser.Y"
+ case 308:
+#line 917 "parser.Y"
{fr->getHistogramCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].str));;}
break;
- case 295:
-#line 889 "parser.Y"
- {fr->getHorzCutCmd((yyvsp[(3) - (7)].str),(yyvsp[(4) - (7)].str),Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)),(InternalSystem)(yyvsp[(7) - (7)].integer));;}
+ case 309:
+#line 919 "parser.Y"
+ {fr->getHorzCutCmd((yyvsp[(3) - (7)].str),(yyvsp[(4) - (7)].str),Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)),(Coord::InternalSystem)(yyvsp[(7) - (7)].integer));;}
break;
- case 298:
-#line 892 "parser.Y"
+ case 312:
+#line 922 "parser.Y"
{fr->getMinMaxCmd();;}
break;
- case 301:
-#line 895 "parser.Y"
+ case 315:
+#line 925 "parser.Y"
{fr->getNANColorCmd();;}
break;
- case 302:
-#line 896 "parser.Y"
+ case 316:
+#line 926 "parser.Y"
{fr->getOrientCmd();;}
break;
- case 304:
-#line 899 "parser.Y"
- {fr->getPixelTableCmd(Vector((yyvsp[(4) - (8)].real),(yyvsp[(5) - (8)].real)), (InternalSystem)(yyvsp[(3) - (8)].integer), (yyvsp[(6) - (8)].integer), (yyvsp[(7) - (8)].integer), (yyvsp[(8) - (8)].str));;}
+ case 318:
+#line 929 "parser.Y"
+ {fr->getPixelTableCmd(Vector((yyvsp[(4) - (8)].real),(yyvsp[(5) - (8)].real)), (Coord::InternalSystem)(yyvsp[(3) - (8)].integer), (yyvsp[(6) - (8)].integer), (yyvsp[(7) - (8)].integer), (yyvsp[(8) - (8)].str));;}
break;
- case 309:
-#line 904 "parser.Y"
+ case 323:
+#line 934 "parser.Y"
{fr->getTypeCmd();;}
break;
- case 310:
-#line 906 "parser.Y"
- {fr->getValueCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),(InternalSystem)(yyvsp[(2) - (4)].integer));;}
+ case 324:
+#line 936 "parser.Y"
+ {fr->getValueCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),(Coord::InternalSystem)(yyvsp[(2) - (4)].integer));;}
break;
- case 311:
-#line 908 "parser.Y"
- {fr->getVertCutCmd((yyvsp[(3) - (7)].str),(yyvsp[(4) - (7)].str),Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)),(InternalSystem)(yyvsp[(7) - (7)].integer));;}
+ case 325:
+#line 938 "parser.Y"
+ {fr->getVertCutCmd((yyvsp[(3) - (7)].str),(yyvsp[(4) - (7)].str),Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)),(Coord::InternalSystem)(yyvsp[(7) - (7)].integer));;}
break;
- case 314:
-#line 913 "parser.Y"
+ case 328:
+#line 943 "parser.Y"
{fr->getBinDepthCmd();;}
break;
- case 315:
-#line 914 "parser.Y"
+ case 329:
+#line 944 "parser.Y"
{fr->getBinFactorCmd();;}
break;
- case 316:
-#line 915 "parser.Y"
+ case 330:
+#line 945 "parser.Y"
{fr->getBinFunctionCmd();;}
break;
- case 317:
-#line 916 "parser.Y"
+ case 331:
+#line 946 "parser.Y"
{fr->getBinBufferSizeCmd();;}
break;
- case 318:
-#line 917 "parser.Y"
+ case 332:
+#line 947 "parser.Y"
{fr->getBinCursorCmd();;}
break;
- case 319:
-#line 918 "parser.Y"
+ case 333:
+#line 948 "parser.Y"
{fr->getBinFilterCmd();;}
break;
- case 321:
-#line 920 "parser.Y"
+ case 335:
+#line 950 "parser.Y"
{fr->getBinListCmd();;}
break;
- case 322:
-#line 923 "parser.Y"
+ case 336:
+#line 953 "parser.Y"
{fr->getBinColsCmd();;}
break;
- case 323:
-#line 924 "parser.Y"
+ case 337:
+#line 954 "parser.Y"
{fr->getBinColsMinMaxCmd((yyvsp[(2) - (2)].str));;}
break;
- case 324:
-#line 925 "parser.Y"
+ case 338:
+#line 955 "parser.Y"
{fr->getBinColsDimCmd((yyvsp[(2) - (2)].str));;}
break;
- case 326:
-#line 929 "parser.Y"
+ case 340:
+#line 959 "parser.Y"
{fr->getClipScopeCmd();;}
break;
- case 327:
-#line 930 "parser.Y"
+ case 341:
+#line 960 "parser.Y"
{fr->getClipModeCmd();;}
break;
- case 329:
-#line 932 "parser.Y"
+ case 343:
+#line 962 "parser.Y"
{fr->getClipUserCmd();;}
break;
- case 331:
-#line 934 "parser.Y"
+ case 345:
+#line 964 "parser.Y"
{fr->getClipPreserveCmd();;}
break;
- case 332:
-#line 937 "parser.Y"
+ case 346:
+#line 967 "parser.Y"
{fr->getClipCmd();;}
break;
- case 333:
-#line 938 "parser.Y"
+ case 347:
+#line 968 "parser.Y"
{fr->getClipCmd((yyvsp[(1) - (1)].real));;}
break;
- case 334:
-#line 939 "parser.Y"
+ case 348:
+#line 969 "parser.Y"
{fr->getClipCmd(FrScale::MINMAX);;}
break;
- case 335:
-#line 940 "parser.Y"
+ case 349:
+#line 970 "parser.Y"
{fr->getClipCmd(FrScale::ZSCALE);;}
break;
- case 336:
-#line 941 "parser.Y"
+ case 350:
+#line 971 "parser.Y"
{fr->getClipCmd(FrScale::ZMAX);;}
break;
- case 337:
-#line 942 "parser.Y"
+ case 351:
+#line 972 "parser.Y"
{fr->getClipCmd(FrScale::USERCLIP);;}
break;
- case 338:
-#line 945 "parser.Y"
+ case 352:
+#line 975 "parser.Y"
{fr->getClipMinMaxModeCmd();;}
break;
- case 339:
-#line 946 "parser.Y"
+ case 353:
+#line 976 "parser.Y"
{fr->getClipMinMaxSampleCmd();;}
break;
- case 340:
-#line 949 "parser.Y"
+ case 354:
+#line 979 "parser.Y"
{fr->getClipZScaleContrastCmd();;}
break;
- case 341:
-#line 950 "parser.Y"
+ case 355:
+#line 980 "parser.Y"
{fr->getClipZScaleSampleCmd();;}
break;
- case 342:
-#line 951 "parser.Y"
+ case 356:
+#line 981 "parser.Y"
{fr->getClipZScaleLineCmd();;}
break;
- case 344:
-#line 957 "parser.Y"
+ case 358:
+#line 987 "parser.Y"
{fr->getColorMapLevelCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 345:
-#line 959 "parser.Y"
- {fr->getColorMapLevelCmd((yyvsp[(1) - (4)].integer),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),(InternalSystem)(yyvsp[(2) - (4)].integer));;}
+ case 359:
+#line 989 "parser.Y"
+ {fr->getColorMapLevelCmd((yyvsp[(1) - (4)].integer),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),(Coord::InternalSystem)(yyvsp[(2) - (4)].integer));;}
break;
- case 346:
-#line 961 "parser.Y"
+ case 360:
+#line 991 "parser.Y"
{fr->getColorMapLevelCmd((yyvsp[(1) - (5)].integer),(yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real),(FrScale::ColorScaleType)(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].real));;}
break;
- case 347:
-#line 964 "parser.Y"
+ case 361:
+#line 994 "parser.Y"
{fr->getColorScaleCmd();;}
break;
- case 349:
-#line 966 "parser.Y"
+ case 363:
+#line 996 "parser.Y"
{fr->getColorScaleLogCmd();;}
break;
- case 350:
-#line 970 "parser.Y"
+ case 364:
+#line 1000 "parser.Y"
{fr->getColorScaleLevelCmd((yyvsp[(1) - (5)].integer),(yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real),(FrScale::ColorScaleType)(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].real));;}
break;
- case 351:
-#line 974 "parser.Y"
- {fr->getContourCmd((CoordSystem)(yyvsp[(1) - (2)].integer),(SkyFrame)(yyvsp[(2) - (2)].integer));;}
+ case 365:
+#line 1004 "parser.Y"
+ {fr->getContourCmd((Coord::CoordSystem)(yyvsp[(1) - (2)].integer),(Coord::SkyFrame)(yyvsp[(2) - (2)].integer));;}
break;
- case 354:
-#line 977 "parser.Y"
+ case 368:
+#line 1007 "parser.Y"
{fr->getContourColorNameCmd();;}
break;
- case 355:
-#line 978 "parser.Y"
+ case 369:
+#line 1008 "parser.Y"
{fr->getContourDashCmd();;}
break;
- case 356:
-#line 979 "parser.Y"
+ case 370:
+#line 1009 "parser.Y"
{fr->getContourLevelCmd();;}
break;
- case 357:
-#line 980 "parser.Y"
+ case 371:
+#line 1010 "parser.Y"
{fr->getContourNumLevelCmd();;}
break;
- case 358:
-#line 981 "parser.Y"
+ case 372:
+#line 1011 "parser.Y"
{fr->getContourMethodCmd();;}
break;
- case 360:
-#line 983 "parser.Y"
+ case 374:
+#line 1013 "parser.Y"
{fr->getContourSmoothCmd();;}
break;
- case 361:
-#line 984 "parser.Y"
+ case 375:
+#line 1014 "parser.Y"
{fr->getContourLineWidthCmd();;}
break;
- case 362:
-#line 987 "parser.Y"
+ case 376:
+#line 1017 "parser.Y"
{fr->getContourAuxColorNameCmd();;}
break;
- case 363:
-#line 988 "parser.Y"
+ case 377:
+#line 1018 "parser.Y"
{fr->getContourAuxDashCmd();;}
break;
- case 364:
-#line 989 "parser.Y"
+ case 378:
+#line 1019 "parser.Y"
{fr->getContourAuxLineWidthCmd();;}
break;
- case 365:
-#line 992 "parser.Y"
+ case 379:
+#line 1022 "parser.Y"
{fr->getContourClipCmd();;}
break;
- case 366:
-#line 993 "parser.Y"
+ case 380:
+#line 1023 "parser.Y"
{fr->getContourClipModeCmd();;}
break;
- case 367:
-#line 996 "parser.Y"
+ case 381:
+#line 1026 "parser.Y"
{fr->getContourScaleCmd();;}
break;
- case 368:
-#line 997 "parser.Y"
+ case 382:
+#line 1027 "parser.Y"
{fr->getContourScaleLogCmd();;}
break;
- case 369:
-#line 1001 "parser.Y"
- {fr->getCoordCmd(Vector((yyvsp[(1) - (5)].real),(yyvsp[(2) - (5)].real)), (CoordSystem)(yyvsp[(3) - (5)].integer), (SkyFrame)(yyvsp[(4) - (5)].integer),
- (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+ case 383:
+#line 1031 "parser.Y"
+ {fr->getCoordCmd(Vector((yyvsp[(1) - (5)].real),(yyvsp[(2) - (5)].real)), (Coord::CoordSystem)(yyvsp[(3) - (5)].integer), (Coord::SkyFrame)(yyvsp[(4) - (5)].integer),
+ (Coord::SkyFormat)(yyvsp[(5) - (5)].integer));;}
break;
- case 370:
-#line 1004 "parser.Y"
+ case 384:
+#line 1034 "parser.Y"
{
// backward compatibility
- fr->getCoordCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)), (CoordSystem)(yyvsp[(4) - (6)].integer), (SkyFrame)(yyvsp[(5) - (6)].integer),
- (SkyFormat)(yyvsp[(6) - (6)].integer));
+ fr->getCoordCmd(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), (Coord::SkyFrame)(yyvsp[(5) - (6)].integer),
+ (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));
;}
break;
- case 371:
-#line 1010 "parser.Y"
- {fr->getCoordFromRefCmd((yyvsp[(1) - (3)].real), (CoordSystem)(yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
+ case 385:
+#line 1040 "parser.Y"
+ {fr->getCoordFromRefCmd((yyvsp[(1) - (3)].real), (Coord::CoordSystem)(yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
break;
- case 372:
-#line 1012 "parser.Y"
- {fr->getCoordFromRefCmd((yyvsp[(2) - (4)].real), (CoordSystem)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer));;}
+ case 386:
+#line 1042 "parser.Y"
+ {fr->getCoordFromRefCmd((yyvsp[(2) - (4)].real), (Coord::CoordSystem)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer));;}
break;
- case 373:
-#line 1014 "parser.Y"
- {fr->getCoordToRefCmd((yyvsp[(2) - (4)].real), (CoordSystem)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer));;}
+ case 387:
+#line 1044 "parser.Y"
+ {fr->getCoordToRefCmd((yyvsp[(2) - (4)].real), (Coord::CoordSystem)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer));;}
break;
- case 374:
-#line 1018 "parser.Y"
- {fr->getCropCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer), (SkyFormat)(yyvsp[(3) - (3)].integer));;}
+ case 388:
+#line 1048 "parser.Y"
+ {fr->getCropCmd((Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer), (Coord::SkyFormat)(yyvsp[(3) - (3)].integer));;}
break;
- case 375:
-#line 1020 "parser.Y"
- {fr->getCropCenterCmd((CoordSystem)(yyvsp[(2) - (6)].integer), (SkyFrame)(yyvsp[(3) - (6)].integer), (SkyFormat)(yyvsp[(4) - (6)].integer),
- (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyDist)(yyvsp[(6) - (6)].integer));;}
+ case 389:
+#line 1050 "parser.Y"
+ {fr->getCropCenterCmd((Coord::CoordSystem)(yyvsp[(2) - (6)].integer), (Coord::SkyFrame)(yyvsp[(3) - (6)].integer), (Coord::SkyFormat)(yyvsp[(4) - (6)].integer),
+ (Coord::CoordSystem)(yyvsp[(5) - (6)].integer), (Coord::SkyDist)(yyvsp[(6) - (6)].integer));;}
break;
- case 376:
-#line 1022 "parser.Y"
- {fr->getCrop3dCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ case 390:
+#line 1052 "parser.Y"
+ {fr->getCrop3dCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;}
break;
- case 377:
-#line 1025 "parser.Y"
- {fr->getCrosshairCmd((InternalSystem)(yyvsp[(1) - (1)].integer));;}
+ case 391:
+#line 1055 "parser.Y"
+ {fr->getCrosshairCmd((Coord::InternalSystem)(yyvsp[(1) - (1)].integer));;}
break;
- case 378:
-#line 1027 "parser.Y"
- {fr->getCrosshairCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (SkyFrame)(yyvsp[(2) - (4)].integer), (SkyFormat)(yyvsp[(3) - (4)].integer),
- (Precision)(yyvsp[(4) - (4)].integer));}
+ case 392:
+#line 1057 "parser.Y"
+ {fr->getCrosshairCmd((Coord::CoordSystem)(yyvsp[(1) - (4)].integer), (Coord::SkyFrame)(yyvsp[(2) - (4)].integer), (Coord::SkyFormat)(yyvsp[(3) - (4)].integer),
+ (Base::Precision)(yyvsp[(4) - (4)].integer));}
break;
- case 379:
-#line 1029 "parser.Y"
+ case 393:
+#line 1059 "parser.Y"
{fr->getCrosshairStatusCmd();;}
break;
- case 380:
-#line 1032 "parser.Y"
- {fr->getCursorCmd((InternalSystem)(yyvsp[(1) - (1)].integer));;}
+ case 394:
+#line 1062 "parser.Y"
+ {fr->getCursorCmd((Coord::InternalSystem)(yyvsp[(1) - (1)].integer));;}
break;
- case 381:
-#line 1034 "parser.Y"
- {fr->getCursorCmd((CoordSystem)(yyvsp[(1) - (4)].integer), (SkyFrame)(yyvsp[(2) - (4)].integer), (SkyFormat)(yyvsp[(3) - (4)].integer),
- (Precision)(yyvsp[(4) - (4)].integer));;}
+ case 395:
+#line 1064 "parser.Y"
+ {fr->getCursorCmd((Coord::CoordSystem)(yyvsp[(1) - (4)].integer), (Coord::SkyFrame)(yyvsp[(2) - (4)].integer), (Coord::SkyFormat)(yyvsp[(3) - (4)].integer),
+ (Base::Precision)(yyvsp[(4) - (4)].integer));;}
break;
- case 382:
-#line 1039 "parser.Y"
+ case 396:
+#line 1069 "parser.Y"
{fr->getDataValuesCmd(1, Vector((yyvsp[(3) - (6)].vector)),
- (CoordSystem)(yyvsp[(1) - (6)].integer), (SkyFrame)(yyvsp[(2) - (6)].integer), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)), (yyvsp[(6) - (6)].str));;}
+ (Coord::CoordSystem)(yyvsp[(1) - (6)].integer), (Coord::SkyFrame)(yyvsp[(2) - (6)].integer), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)), (yyvsp[(6) - (6)].str));;}
break;
- case 383:
-#line 1042 "parser.Y"
+ case 397:
+#line 1072 "parser.Y"
{fr->getDataValuesCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].vector)),
- (CoordSystem)(yyvsp[(2) - (7)].integer), (SkyFrame)(yyvsp[(3) - (7)].integer), Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)), (yyvsp[(7) - (7)].str));;}
+ (Coord::CoordSystem)(yyvsp[(2) - (7)].integer), (Coord::SkyFrame)(yyvsp[(3) - (7)].integer), Vector((yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].real)), (yyvsp[(7) - (7)].str));;}
break;
- case 384:
-#line 1045 "parser.Y"
- {fr->getDataValuesCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),(InternalSystem)(yyvsp[(1) - (5)].integer),
+ case 398:
+#line 1075 "parser.Y"
+ {fr->getDataValuesCmd(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),(Coord::InternalSystem)(yyvsp[(1) - (5)].integer),
Vector((yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer)));;}
break;
- case 385:
-#line 1049 "parser.Y"
+ case 399:
+#line 1079 "parser.Y"
{fr->getInfoCmd((yyvsp[(1) - (1)].str));;}
break;
- case 386:
-#line 1050 "parser.Y"
+ case 400:
+#line 1080 "parser.Y"
{fr->getInfoClipCmd();;}
break;
- case 387:
-#line 1052 "parser.Y"
- {fr->getInfoCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)), (InternalSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].str));;}
+ case 401:
+#line 1082 "parser.Y"
+ {fr->getInfoCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)), (Coord::InternalSystem)(yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].str));;}
break;
- case 388:
-#line 1055 "parser.Y"
+ case 402:
+#line 1085 "parser.Y"
{fr->iisGetCmd((char*)(yyvsp[(1) - (5)].ptr),(yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
break;
- case 389:
-#line 1056 "parser.Y"
+ case 403:
+#line 1086 "parser.Y"
{fr->iisGetCursorCmd();;}
break;
- case 390:
-#line 1057 "parser.Y"
+ case 404:
+#line 1087 "parser.Y"
{fr->getWidthCmd();;}
break;
- case 391:
-#line 1058 "parser.Y"
+ case 405:
+#line 1088 "parser.Y"
{fr->getHeightCmd();;}
break;
- case 393:
-#line 1062 "parser.Y"
+ case 407:
+#line 1092 "parser.Y"
{fr->iisGetFileNameCmd();;}
break;
- case 394:
-#line 1063 "parser.Y"
+ case 408:
+#line 1093 "parser.Y"
{fr->iisGetFileNameCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 395:
-#line 1064 "parser.Y"
+ case 409:
+#line 1094 "parser.Y"
{fr->iisGetFileNameCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 396:
-#line 1067 "parser.Y"
+ case 410:
+#line 1097 "parser.Y"
{fr->getFitsNAxesCmd();;}
break;
- case 397:
-#line 1069 "parser.Y"
- {fr->getFitsCenterCmd((CoordSystem)(yyvsp[(2) - (5)].integer),(SkyFrame)(yyvsp[(3) - (5)].integer),(SkyFormat)(yyvsp[(4) - (5)].integer),
- (Precision)(yyvsp[(5) - (5)].integer));;}
+ case 411:
+#line 1099 "parser.Y"
+ {fr->getFitsCenterCmd((Coord::CoordSystem)(yyvsp[(2) - (5)].integer),(Coord::SkyFrame)(yyvsp[(3) - (5)].integer),(Coord::SkyFormat)(yyvsp[(4) - (5)].integer),
+ (Base::Precision)(yyvsp[(5) - (5)].integer));;}
break;
- case 398:
-#line 1071 "parser.Y"
+ case 412:
+#line 1101 "parser.Y"
{fr->getFitsCountCmd();;}
break;
- case 400:
-#line 1073 "parser.Y"
+ case 414:
+#line 1103 "parser.Y"
{fr->getBitpixCmd();;}
break;
- case 401:
-#line 1075 "parser.Y"
- {fr->getFitsExtCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),(InternalSystem)(yyvsp[(2) - (4)].integer));;}
+ case 415:
+#line 1105 "parser.Y"
+ {fr->getFitsExtCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),(Coord::InternalSystem)(yyvsp[(2) - (4)].integer));;}
break;
- case 404:
-#line 1078 "parser.Y"
+ case 418:
+#line 1108 "parser.Y"
{fr->getHeightCmd();;}
break;
- case 405:
-#line 1079 "parser.Y"
+ case 419:
+#line 1109 "parser.Y"
{fr->getFitsObjectNameCmd();;}
break;
- case 406:
-#line 1080 "parser.Y"
+ case 420:
+#line 1110 "parser.Y"
{fr->getFitsSizeCmd();;}
break;
- case 407:
-#line 1082 "parser.Y"
- {fr->getFitsSizeCmd((CoordSystem)(yyvsp[(2) - (5)].integer),(SkyFrame)(yyvsp[(3) - (5)].integer),(SkyDist)(yyvsp[(4) - (5)].integer),
- (Precision)(yyvsp[(5) - (5)].integer));;}
+ case 421:
+#line 1112 "parser.Y"
+ {fr->getFitsSizeCmd((Coord::CoordSystem)(yyvsp[(2) - (5)].integer),(Coord::SkyFrame)(yyvsp[(3) - (5)].integer),(Coord::SkyDist)(yyvsp[(4) - (5)].integer),
+ (Base::Precision)(yyvsp[(5) - (5)].integer));;}
break;
- case 409:
-#line 1085 "parser.Y"
+ case 423:
+#line 1115 "parser.Y"
{fr->getWidthCmd();;}
break;
- case 410:
-#line 1088 "parser.Y"
+ case 424:
+#line 1118 "parser.Y"
{fr->getFitsHeaderCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 411:
-#line 1089 "parser.Y"
+ case 425:
+#line 1119 "parser.Y"
{fr->getFitsHeaderKeywordCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
break;
- case 412:
-#line 1090 "parser.Y"
+ case 426:
+#line 1120 "parser.Y"
{fr->getFitsHeaderWCSCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 413:
-#line 1093 "parser.Y"
+ case 427:
+#line 1123 "parser.Y"
{fr->getFitsDepthCmd(2);;}
break;
- case 414:
-#line 1094 "parser.Y"
+ case 428:
+#line 1124 "parser.Y"
{fr->getFitsDepthCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 415:
-#line 1098 "parser.Y"
+ case 429:
+#line 1128 "parser.Y"
{fr->getFitsFileNameCmd((Base::FileNameType)(yyvsp[(1) - (1)].integer));;}
break;
- case 416:
-#line 1100 "parser.Y"
- {fr->getFitsFileNameCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)), (InternalSystem)(yyvsp[(2) - (4)].integer),
+ case 430:
+#line 1130 "parser.Y"
+ {fr->getFitsFileNameCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)), (Coord::InternalSystem)(yyvsp[(2) - (4)].integer),
(Base::FileNameType)(yyvsp[(1) - (4)].integer));;}
break;
- case 417:
-#line 1103 "parser.Y"
+ case 431:
+#line 1133 "parser.Y"
{fr->getFitsFileNameCmd((yyvsp[(2) - (2)].integer), (Base::FileNameType)(yyvsp[(1) - (2)].integer));;}
break;
- case 418:
-#line 1106 "parser.Y"
+ case 432:
+#line 1136 "parser.Y"
{fr->getFitsSliceCmd(2);;}
break;
- case 419:
-#line 1107 "parser.Y"
+ case 433:
+#line 1137 "parser.Y"
{fr->getFitsSliceCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 420:
-#line 1110 "parser.Y"
+ case 434:
+#line 1140 "parser.Y"
{fr->getGridCmd();;}
break;
- case 421:
-#line 1111 "parser.Y"
+ case 435:
+#line 1141 "parser.Y"
{fr->getGridOptionCmd();;}
break;
- case 422:
-#line 1114 "parser.Y"
+ case 436:
+#line 1144 "parser.Y"
{fr->getMaskColorCmd();;}
break;
- case 423:
-#line 1115 "parser.Y"
+ case 437:
+#line 1145 "parser.Y"
{fr->getMaskMarkCmd();;}
break;
- case 424:
-#line 1116 "parser.Y"
+ case 438:
+#line 1146 "parser.Y"
{fr->getMaskTransparencyCmd();;}
break;
- case 425:
-#line 1119 "parser.Y"
+ case 439:
+#line 1149 "parser.Y"
{fr->getPanPreserveCmd();;}
break;
- case 426:
-#line 1122 "parser.Y"
+ case 440:
+#line 1152 "parser.Y"
{fr->getRGBChannelCmd();;}
break;
- case 427:
-#line 1123 "parser.Y"
+ case 441:
+#line 1153 "parser.Y"
{fr->getRGBSystemCmd();;}
break;
- case 428:
-#line 1124 "parser.Y"
+ case 442:
+#line 1154 "parser.Y"
{fr->getRGBViewCmd();;}
break;
- case 429:
-#line 1127 "parser.Y"
- {fr->getRotateCmd((Precision)(yyvsp[(1) - (1)].integer));;}
+ case 443:
+#line 1157 "parser.Y"
+ {fr->getRotateCmd((Base::Precision)(yyvsp[(1) - (1)].integer));;}
break;
- case 430:
-#line 1130 "parser.Y"
+ case 444:
+#line 1160 "parser.Y"
{fr->getSmoothFunctionCmd();;}
break;
- case 431:
-#line 1131 "parser.Y"
+ case 445:
+#line 1161 "parser.Y"
{fr->getSmoothRadiusCmd();;}
break;
- case 432:
-#line 1134 "parser.Y"
+ case 446:
+#line 1164 "parser.Y"
{fr->get3dViewCmd();;}
break;
- case 433:
-#line 1135 "parser.Y"
+ case 447:
+#line 1165 "parser.Y"
{fr->get3dHighliteCmd();;}
break;
- case 434:
-#line 1136 "parser.Y"
+ case 448:
+#line 1166 "parser.Y"
{fr->get3dRenderMethodCmd();;}
break;
- case 435:
-#line 1137 "parser.Y"
+ case 449:
+#line 1167 "parser.Y"
{fr->get3dThreadsCmd();;}
break;
- case 436:
-#line 1140 "parser.Y"
+ case 450:
+#line 1170 "parser.Y"
{fr->getWCSCmd();;}
break;
- case 438:
-#line 1142 "parser.Y"
- {fr->getWCSNameCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ case 452:
+#line 1172 "parser.Y"
+ {fr->getWCSNameCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;}
break;
- case 439:
-#line 1145 "parser.Y"
+ case 453:
+#line 1175 "parser.Y"
{fr->getWCSAlignCmd();;}
break;
- case 440:
-#line 1146 "parser.Y"
+ case 454:
+#line 1176 "parser.Y"
{fr->getWCSAlignPointerCmd();;}
break;
- case 441:
-#line 1149 "parser.Y"
- {fr->getZoomCmd((Precision)(yyvsp[(1) - (1)].integer));;}
+ case 455:
+#line 1179 "parser.Y"
+ {fr->getZoomCmd((Base::Precision)(yyvsp[(1) - (1)].integer));;}
break;
- case 442:
-#line 1153 "parser.Y"
- {fr->gridCmd((CoordSystem)(yyvsp[(2) - (6)].integer), (SkyFrame)(yyvsp[(3) - (6)].integer), (SkyFormat)(yyvsp[(4) - (6)].integer),
+ case 456:
+#line 1183 "parser.Y"
+ {fr->gridCmd((Coord::CoordSystem)(yyvsp[(2) - (6)].integer), (Coord::SkyFrame)(yyvsp[(3) - (6)].integer), (Coord::SkyFormat)(yyvsp[(4) - (6)].integer),
(Grid2d::GridType)(yyvsp[(5) - (6)].integer), (yyvsp[(6) - (6)].str));;}
break;
- case 443:
-#line 1155 "parser.Y"
+ case 457:
+#line 1185 "parser.Y"
{fr->gridDeleteCmd();;}
break;
- case 444:
-#line 1158 "parser.Y"
+ case 458:
+#line 1188 "parser.Y"
{(yyval.integer)=Grid2d::ANALYSIS;;}
break;
- case 445:
-#line 1159 "parser.Y"
+ case 459:
+#line 1189 "parser.Y"
{(yyval.integer)=Grid2d::PUBLICATION;;}
break;
- case 446:
-#line 1162 "parser.Y"
+ case 460:
+#line 1192 "parser.Y"
{fr->hasAmplifierCmd();;}
break;
- case 448:
-#line 1164 "parser.Y"
+ case 463:
+#line 1195 "parser.Y"
{fr->hasCropCmd();;}
break;
- case 449:
-#line 1165 "parser.Y"
+ case 464:
+#line 1196 "parser.Y"
{fr->hasDATAMINCmd();;}
break;
- case 450:
-#line 1166 "parser.Y"
+ case 465:
+#line 1197 "parser.Y"
{fr->hasDATASECCmd();;}
break;
- case 451:
-#line 1167 "parser.Y"
+ case 466:
+#line 1198 "parser.Y"
{fr->hasDetectorCmd();;}
break;
- case 453:
-#line 1169 "parser.Y"
+ case 468:
+#line 1200 "parser.Y"
{fr->hasGridCmd();;}
break;
- case 454:
-#line 1170 "parser.Y"
+ case 469:
+#line 1201 "parser.Y"
{fr->hasIISCmd();;}
break;
- case 455:
-#line 1171 "parser.Y"
+ case 470:
+#line 1202 "parser.Y"
{fr->hasIRAFMINCmd();;}
break;
- case 457:
-#line 1173 "parser.Y"
+ case 472:
+#line 1204 "parser.Y"
{fr->hasPhysicalCmd();;}
break;
- case 458:
-#line 1174 "parser.Y"
+ case 473:
+#line 1205 "parser.Y"
{fr->hasSmoothCmd();;}
break;
- case 459:
-#line 1175 "parser.Y"
- {fr->hasSystemCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ case 474:
+#line 1206 "parser.Y"
+ {fr->hasSystemCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;}
break;
- case 461:
-#line 1179 "parser.Y"
+ case 476:
+#line 1210 "parser.Y"
+ {fr->hasBinColCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 477:
+#line 1213 "parser.Y"
{fr->hasContourCmd();;}
break;
- case 462:
-#line 1180 "parser.Y"
+ case 478:
+#line 1214 "parser.Y"
{fr->hasContourAuxCmd();;}
break;
- case 463:
-#line 1183 "parser.Y"
+ case 479:
+#line 1217 "parser.Y"
{fr->hasFitsCmd();;}
break;
- case 464:
-#line 1184 "parser.Y"
+ case 480:
+#line 1218 "parser.Y"
{fr->hasFitsBinCmd();;}
break;
- case 465:
-#line 1185 "parser.Y"
+ case 481:
+#line 1219 "parser.Y"
{fr->hasFitsCubeCmd();;}
break;
- case 466:
-#line 1186 "parser.Y"
+ case 482:
+#line 1220 "parser.Y"
{fr->hasFitsMosaicCmd();;}
break;
- case 467:
-#line 1189 "parser.Y"
+ case 483:
+#line 1223 "parser.Y"
{fr->hasMarkerHighlitedCmd();;}
break;
- case 468:
-#line 1190 "parser.Y"
+ case 484:
+#line 1224 "parser.Y"
{fr->hasMarkerSelectedCmd();;}
break;
- case 469:
-#line 1191 "parser.Y"
+ case 485:
+#line 1225 "parser.Y"
{fr->hasMarkerPasteCmd();;}
break;
- case 470:
-#line 1192 "parser.Y"
+ case 486:
+#line 1226 "parser.Y"
{fr->hasMarkerUndoCmd();;}
break;
- case 471:
-#line 1195 "parser.Y"
- {fr->hasWCSCmd((CoordSystem)(yyvsp[(1) - (1)].integer));;}
+ case 487:
+#line 1229 "parser.Y"
+ {fr->hasWCSCmd((Coord::CoordSystem)(yyvsp[(1) - (1)].integer));;}
break;
- case 472:
-#line 1196 "parser.Y"
- {fr->hasWCSEquCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ case 488:
+#line 1230 "parser.Y"
+ {fr->hasWCSEquCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;}
break;
- case 473:
-#line 1197 "parser.Y"
- {fr->hasWCSCelCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ case 489:
+#line 1231 "parser.Y"
+ {fr->hasWCSCelCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;}
break;
- case 474:
-#line 1198 "parser.Y"
+ case 490:
+#line 1232 "parser.Y"
{fr->hasWCSAltCmd();;}
break;
- case 475:
-#line 1201 "parser.Y"
+ case 491:
+#line 1235 "parser.Y"
{fr->iisCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
break;
- case 476:
-#line 1202 "parser.Y"
+ case 492:
+#line 1236 "parser.Y"
{fr->iisEraseCmd();;}
break;
- case 477:
-#line 1203 "parser.Y"
+ case 493:
+#line 1237 "parser.Y"
{fr->iisMessageCmd((yyvsp[(2) - (2)].str));;}
break;
- case 480:
-#line 1207 "parser.Y"
+ case 496:
+#line 1241 "parser.Y"
{fr->iisSetCmd((const char*)(yyvsp[(2) - (6)].ptr),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;}
break;
- case 481:
-#line 1208 "parser.Y"
+ case 497:
+#line 1242 "parser.Y"
{fr->iisUpdateCmd();;}
break;
- case 482:
-#line 1211 "parser.Y"
+ case 498:
+#line 1245 "parser.Y"
{fr->iisWCSCmd(Matrix((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real),(yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].real),(yyvsp[(7) - (10)].real)),Vector((yyvsp[(8) - (10)].real),(yyvsp[(9) - (10)].real)),(yyvsp[(10) - (10)].integer));;}
break;
- case 483:
-#line 1214 "parser.Y"
+ case 499:
+#line 1248 "parser.Y"
{fr->iisSetFileNameCmd((yyvsp[(1) - (1)].str));;}
break;
- case 484:
-#line 1215 "parser.Y"
+ case 500:
+#line 1249 "parser.Y"
{fr->iisSetFileNameCmd((yyvsp[(1) - (2)].str),(yyvsp[(2) - (2)].integer));;}
break;
- case 485:
-#line 1219 "parser.Y"
- {fr->iisSetCursorCmd(Vector((yyvsp[(1) - (3)].integer),(yyvsp[(2) - (3)].integer)),CANVAS);;}
+ case 501:
+#line 1253 "parser.Y"
+ {fr->iisSetCursorCmd(Vector((yyvsp[(1) - (3)].integer),(yyvsp[(2) - (3)].integer)),Coord::CANVAS);;}
break;
- case 486:
-#line 1221 "parser.Y"
- {fr->iisSetCursorCmd(Vector((yyvsp[(1) - (3)].integer),(yyvsp[(2) - (3)].integer)),(CoordSystem)(yyvsp[(3) - (3)].integer));;}
+ case 502:
+#line 1255 "parser.Y"
+ {fr->iisSetCursorCmd(Vector((yyvsp[(1) - (3)].integer),(yyvsp[(2) - (3)].integer)),(Coord::CoordSystem)(yyvsp[(3) - (3)].integer));;}
break;
- case 487:
-#line 1222 "parser.Y"
+ case 503:
+#line 1256 "parser.Y"
{fr->iisCursorModeCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 491:
-#line 1231 "parser.Y"
- {fr->loadArrAllocCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
+ case 507:
+#line 1262 "parser.Y"
+ {fr->loadPhotoCmd((yyvsp[(2) - (3)].str),(yyvsp[(3) - (3)].str));;}
break;
- case 492:
-#line 1233 "parser.Y"
+ case 508:
+#line 1266 "parser.Y"
+ {fr->loadArrAllocCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 509:
+#line 1268 "parser.Y"
{fr->loadArrAllocGZCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 493:
-#line 1235 "parser.Y"
+ case 510:
+#line 1270 "parser.Y"
{fr->loadArrChannelCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 494:
-#line 1237 "parser.Y"
+ case 511:
+#line 1272 "parser.Y"
{fr->loadArrMMapCmd((yyvsp[(1) - (3)].str), (Base::LayerType)(yyvsp[(3) - (3)].integer));;}
break;
- case 495:
-#line 1239 "parser.Y"
+ case 512:
+#line 1274 "parser.Y"
{fr->loadArrMMapIncrCmd((yyvsp[(1) - (3)].str), (Base::LayerType)(yyvsp[(3) - (3)].integer));;}
break;
- case 496:
-#line 1241 "parser.Y"
+ case 513:
+#line 1276 "parser.Y"
{fr->loadArrShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
(Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 497:
-#line 1244 "parser.Y"
+ case 514:
+#line 1279 "parser.Y"
{fr->loadArrSocketCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 498:
-#line 1246 "parser.Y"
+ case 515:
+#line 1281 "parser.Y"
{fr->loadArrSocketGZCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 499:
-#line 1248 "parser.Y"
+ case 516:
+#line 1283 "parser.Y"
{fr->loadArrVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 501:
-#line 1252 "parser.Y"
+ case 518:
+#line 1287 "parser.Y"
{fr->loadArrRGBCubeAllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 502:
-#line 1253 "parser.Y"
+ case 519:
+#line 1288 "parser.Y"
{fr->loadArrRGBCubeAllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 503:
-#line 1254 "parser.Y"
+ case 520:
+#line 1289 "parser.Y"
{fr->loadArrRGBCubeChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 504:
-#line 1255 "parser.Y"
+ case 521:
+#line 1290 "parser.Y"
{fr->loadArrRGBCubeMMapCmd((yyvsp[(1) - (2)].str));;}
break;
- case 505:
-#line 1256 "parser.Y"
+ case 522:
+#line 1291 "parser.Y"
{fr->loadArrRGBCubeMMapIncrCmd((yyvsp[(1) - (2)].str));;}
break;
- case 506:
-#line 1258 "parser.Y"
+ case 523:
+#line 1293 "parser.Y"
{fr->loadArrRGBCubeShareCmd((Base::ShmType)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(1) - (4)].str));;}
break;
- case 507:
-#line 1259 "parser.Y"
+ case 524:
+#line 1294 "parser.Y"
{fr->loadArrRGBCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 508:
-#line 1260 "parser.Y"
+ case 525:
+#line 1295 "parser.Y"
{fr->loadArrRGBCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 509:
-#line 1261 "parser.Y"
+ case 526:
+#line 1296 "parser.Y"
{fr->loadArrRGBCubeVarCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 510:
-#line 1265 "parser.Y"
+ case 527:
+#line 1300 "parser.Y"
{fr->loadFitsAllocCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 511:
-#line 1267 "parser.Y"
+ case 528:
+#line 1302 "parser.Y"
{fr->loadFitsAllocGZCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 512:
-#line 1269 "parser.Y"
+ case 529:
+#line 1304 "parser.Y"
{fr->loadFitsChannelCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 513:
-#line 1271 "parser.Y"
+ case 530:
+#line 1306 "parser.Y"
{fr->loadFitsMMapCmd((yyvsp[(1) - (4)].str),(Base::LoadMethod)(yyvsp[(3) - (4)].integer),
(Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 514:
-#line 1274 "parser.Y"
+ case 531:
+#line 1309 "parser.Y"
{fr->loadFitsSMMapCmd((yyvsp[(1) - (5)].str), (yyvsp[(2) - (5)].str),(Base::LoadMethod)(yyvsp[(4) - (5)].integer),
(Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 515:
-#line 1277 "parser.Y"
+ case 532:
+#line 1312 "parser.Y"
{fr->loadFitsMMapIncrCmd((yyvsp[(1) - (4)].str),(Base::LoadMethod)(yyvsp[(3) - (4)].integer),
(Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 516:
-#line 1280 "parser.Y"
+ case 533:
+#line 1315 "parser.Y"
{fr->loadFitsShareCmd((Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(1) - (6)].str),
(Base::LoadMethod)(yyvsp[(5) - (6)].integer),(Base::LayerType)(yyvsp[(6) - (6)].integer));;}
break;
- case 517:
-#line 1283 "parser.Y"
+ case 534:
+#line 1318 "parser.Y"
{fr->loadFitsSShareCmd((Base::ShmType)(yyvsp[(3) - (7)].integer), (yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), (yyvsp[(1) - (7)].str),
(Base::LoadMethod)(yyvsp[(6) - (7)].integer),(Base::LayerType)(yyvsp[(7) - (7)].integer));;}
break;
- case 518:
-#line 1286 "parser.Y"
+ case 535:
+#line 1321 "parser.Y"
{fr->loadFitsSocketCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 519:
-#line 1288 "parser.Y"
+ case 536:
+#line 1323 "parser.Y"
{fr->loadFitsSocketGZCmd((yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 520:
-#line 1290 "parser.Y"
+ case 537:
+#line 1325 "parser.Y"
{fr->loadFitsVarCmd((yyvsp[(3) - (5)].str), (yyvsp[(1) - (5)].str), (Base::LoadMethod)(yyvsp[(4) - (5)].integer),
(Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 525:
-#line 1299 "parser.Y"
+ case 542:
+#line 1334 "parser.Y"
{fr->loadSliceAllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 526:
-#line 1301 "parser.Y"
+ case 543:
+#line 1336 "parser.Y"
{fr->loadSliceAllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 527:
-#line 1303 "parser.Y"
+ case 544:
+#line 1338 "parser.Y"
{fr->loadSliceChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 528:
-#line 1305 "parser.Y"
+ case 545:
+#line 1340 "parser.Y"
{fr->loadSliceMMapCmd((yyvsp[(1) - (3)].str), (Base::LoadMethod)(yyvsp[(3) - (3)].integer));;}
break;
- case 529:
-#line 1307 "parser.Y"
+ case 546:
+#line 1342 "parser.Y"
{fr->loadSliceSMMapCmd((yyvsp[(1) - (4)].str), (yyvsp[(2) - (4)].str), (Base::LoadMethod)(yyvsp[(4) - (4)].integer));;}
break;
- case 530:
-#line 1309 "parser.Y"
+ case 547:
+#line 1344 "parser.Y"
{fr->loadSliceMMapIncrCmd((yyvsp[(1) - (3)].str), (Base::LoadMethod)(yyvsp[(3) - (3)].integer));;}
break;
- case 531:
-#line 1311 "parser.Y"
+ case 548:
+#line 1346 "parser.Y"
{fr->loadSliceShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str), (Base::LoadMethod)(yyvsp[(5) - (5)].integer));;}
break;
- case 532:
-#line 1313 "parser.Y"
+ case 549:
+#line 1348 "parser.Y"
{fr->loadSliceSShareCmd((Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(1) - (6)].str), (Base::LoadMethod)(yyvsp[(6) - (6)].integer));;}
break;
- case 533:
-#line 1315 "parser.Y"
+ case 550:
+#line 1350 "parser.Y"
{fr->loadSliceSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 534:
-#line 1317 "parser.Y"
+ case 551:
+#line 1352 "parser.Y"
{fr->loadSliceSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 535:
-#line 1319 "parser.Y"
+ case 552:
+#line 1354 "parser.Y"
{fr->loadSliceVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LoadMethod)(yyvsp[(4) - (4)].integer));;}
break;
- case 536:
-#line 1323 "parser.Y"
+ case 553:
+#line 1358 "parser.Y"
{fr->loadExtCubeAllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 537:
-#line 1325 "parser.Y"
+ case 554:
+#line 1360 "parser.Y"
{fr->loadExtCubeAllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 538:
-#line 1327 "parser.Y"
+ case 555:
+#line 1362 "parser.Y"
{fr->loadExtCubeChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 539:
-#line 1329 "parser.Y"
+ case 556:
+#line 1364 "parser.Y"
{fr->loadExtCubeMMapCmd((yyvsp[(1) - (3)].str), (Base::LoadMethod)(yyvsp[(3) - (3)].integer));;}
break;
- case 540:
-#line 1331 "parser.Y"
+ case 557:
+#line 1366 "parser.Y"
{fr->loadExtCubeMMapIncrCmd((yyvsp[(1) - (3)].str), (Base::LoadMethod)(yyvsp[(3) - (3)].integer));;}
break;
- case 541:
-#line 1333 "parser.Y"
+ case 558:
+#line 1368 "parser.Y"
{fr->loadExtCubeShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
(Base::LoadMethod)(yyvsp[(5) - (5)].integer));;}
break;
- case 542:
-#line 1336 "parser.Y"
+ case 559:
+#line 1371 "parser.Y"
{fr->loadExtCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 543:
-#line 1338 "parser.Y"
+ case 560:
+#line 1373 "parser.Y"
{fr->loadExtCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 544:
-#line 1340 "parser.Y"
+ case 561:
+#line 1375 "parser.Y"
{fr->loadExtCubeVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LoadMethod)(yyvsp[(4) - (4)].integer));;}
break;
- case 550:
-#line 1351 "parser.Y"
- {fr->loadMosaicImageAllocCmd(Base::IRAF, WCS,
+ case 567:
+#line 1386 "parser.Y"
+ {fr->loadMosaicImageAllocCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 551:
-#line 1354 "parser.Y"
- {fr->loadMosaicImageAllocGZCmd(Base::IRAF, WCS,
+ case 568:
+#line 1389 "parser.Y"
+ {fr->loadMosaicImageAllocGZCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str),(Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 552:
-#line 1357 "parser.Y"
- {fr->loadMosaicImageChannelCmd(Base::IRAF, WCS,
+ case 569:
+#line 1392 "parser.Y"
+ {fr->loadMosaicImageChannelCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str),(Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 553:
-#line 1360 "parser.Y"
- {fr->loadMosaicImageMMapCmd(Base::IRAF, WCS,
+ case 570:
+#line 1395 "parser.Y"
+ {fr->loadMosaicImageMMapCmd(Base::IRAF, Coord::WCS,
(yyvsp[(1) - (4)].str),(Base::LoadMethod)(yyvsp[(3) - (4)].integer), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 554:
-#line 1363 "parser.Y"
- {fr->loadMosaicImageMMapIncrCmd(Base::IRAF, WCS,
+ case 571:
+#line 1398 "parser.Y"
+ {fr->loadMosaicImageMMapIncrCmd(Base::IRAF, Coord::WCS,
(yyvsp[(1) - (4)].str),(Base::LoadMethod)(yyvsp[(3) - (4)].integer), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 555:
-#line 1366 "parser.Y"
- {fr->loadMosaicImageShareCmd(Base::IRAF, WCS,
+ case 572:
+#line 1401 "parser.Y"
+ {fr->loadMosaicImageShareCmd(Base::IRAF, Coord::WCS,
(Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(1) - (6)].str), (Base::LoadMethod)(yyvsp[(5) - (6)].integer),
(Base::LayerType)(yyvsp[(6) - (6)].integer));;}
break;
- case 556:
-#line 1370 "parser.Y"
- {fr->loadMosaicImageSocketCmd(Base::IRAF, WCS,
+ case 573:
+#line 1405 "parser.Y"
+ {fr->loadMosaicImageSocketCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 557:
-#line 1373 "parser.Y"
- {fr->loadMosaicImageSocketGZCmd(Base::IRAF, WCS,
+ case 574:
+#line 1408 "parser.Y"
+ {fr->loadMosaicImageSocketGZCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 558:
-#line 1376 "parser.Y"
- {fr->loadMosaicImageVarCmd(Base::IRAF, WCS,
+ case 575:
+#line 1411 "parser.Y"
+ {fr->loadMosaicImageVarCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (5)].str), (yyvsp[(1) - (5)].str), (Base::LoadMethod)(yyvsp[(4) - (5)].integer), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 559:
-#line 1381 "parser.Y"
- {fr->loadMosaicAllocCmd(Base::IRAF, WCS,
+ case 576:
+#line 1416 "parser.Y"
+ {fr->loadMosaicAllocCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 560:
-#line 1384 "parser.Y"
- {fr->loadMosaicAllocGZCmd(Base::IRAF, WCS,
+ case 577:
+#line 1419 "parser.Y"
+ {fr->loadMosaicAllocGZCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 561:
-#line 1387 "parser.Y"
- {fr->loadMosaicChannelCmd(Base::IRAF, WCS,
+ case 578:
+#line 1422 "parser.Y"
+ {fr->loadMosaicChannelCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 562:
-#line 1390 "parser.Y"
- {fr->loadMosaicMMapCmd(Base::IRAF, WCS,
+ case 579:
+#line 1425 "parser.Y"
+ {fr->loadMosaicMMapCmd(Base::IRAF, Coord::WCS,
(yyvsp[(1) - (4)].str),(Base::LoadMethod)(yyvsp[(3) - (4)].integer), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 563:
-#line 1393 "parser.Y"
- {fr->loadMosaicSMMapCmd(Base::IRAF, WCS,
+ case 580:
+#line 1428 "parser.Y"
+ {fr->loadMosaicSMMapCmd(Base::IRAF, Coord::WCS,
(yyvsp[(1) - (5)].str), (yyvsp[(2) - (5)].str),(Base::LoadMethod)(yyvsp[(4) - (5)].integer), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 564:
-#line 1396 "parser.Y"
- {fr->loadMosaicMMapIncrCmd(Base::IRAF, WCS,
+ case 581:
+#line 1431 "parser.Y"
+ {fr->loadMosaicMMapIncrCmd(Base::IRAF, Coord::WCS,
(yyvsp[(1) - (4)].str),(Base::LoadMethod)(yyvsp[(3) - (4)].integer), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 565:
-#line 1399 "parser.Y"
- {fr->loadMosaicShareCmd(Base::IRAF, WCS,
+ case 582:
+#line 1434 "parser.Y"
+ {fr->loadMosaicShareCmd(Base::IRAF, Coord::WCS,
(Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(1) - (6)].str), (Base::LoadMethod)(yyvsp[(5) - (6)].integer),
(Base::LayerType)(yyvsp[(6) - (6)].integer));;}
break;
- case 566:
-#line 1403 "parser.Y"
- {fr->loadMosaicSShareCmd(Base::IRAF, WCS,
+ case 583:
+#line 1438 "parser.Y"
+ {fr->loadMosaicSShareCmd(Base::IRAF, Coord::WCS,
(Base::ShmType)(yyvsp[(3) - (7)].integer), (yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), (yyvsp[(1) - (7)].str), (Base::LoadMethod)(yyvsp[(6) - (7)].integer),
(Base::LayerType)(yyvsp[(7) - (7)].integer));;}
break;
- case 567:
-#line 1407 "parser.Y"
- {fr->loadMosaicSocketCmd(Base::IRAF, WCS,
+ case 584:
+#line 1442 "parser.Y"
+ {fr->loadMosaicSocketCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 568:
-#line 1410 "parser.Y"
- {fr->loadMosaicSocketGZCmd(Base::IRAF, WCS,
+ case 585:
+#line 1445 "parser.Y"
+ {fr->loadMosaicSocketGZCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str), (Base::LayerType)(yyvsp[(4) - (4)].integer));;}
break;
- case 569:
-#line 1413 "parser.Y"
- {fr->loadMosaicVarCmd(Base::IRAF, WCS,
+ case 586:
+#line 1448 "parser.Y"
+ {fr->loadMosaicVarCmd(Base::IRAF, Coord::WCS,
(yyvsp[(3) - (5)].str), (yyvsp[(1) - (5)].str), (Base::LoadMethod)(yyvsp[(4) - (5)].integer), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 570:
-#line 1418 "parser.Y"
- {fr->loadMosaicImageAllocCmd(Base::WCSMOSAIC, (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 587:
+#line 1453 "parser.Y"
+ {fr->loadMosaicImageAllocCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 571:
-#line 1421 "parser.Y"
- {fr->loadMosaicImageAllocGZCmd(Base::WCSMOSAIC, (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 588:
+#line 1456 "parser.Y"
+ {fr->loadMosaicImageAllocGZCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 572:
-#line 1424 "parser.Y"
- {fr->loadMosaicImageChannelCmd(Base::WCSMOSAIC, (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 589:
+#line 1459 "parser.Y"
+ {fr->loadMosaicImageChannelCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 573:
-#line 1427 "parser.Y"
- {fr->loadMosaicImageMMapCmd(Base::WCSMOSAIC, (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 590:
+#line 1462 "parser.Y"
+ {fr->loadMosaicImageMMapCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(2) - (5)].str), (Base::LoadMethod)(yyvsp[(4) - (5)].integer), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 574:
-#line 1430 "parser.Y"
- {fr->loadMosaicImageMMapIncrCmd(Base::WCSMOSAIC, (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 591:
+#line 1465 "parser.Y"
+ {fr->loadMosaicImageMMapIncrCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(2) - (5)].str), (Base::LoadMethod)(yyvsp[(4) - (5)].integer), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 575:
-#line 1433 "parser.Y"
- {fr->loadMosaicImageShareCmd(Base::WCSMOSAIC, (CoordSystem)(yyvsp[(1) - (7)].integer),
+ case 592:
+#line 1468 "parser.Y"
+ {fr->loadMosaicImageShareCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (7)].integer),
(Base::ShmType)(yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), (yyvsp[(2) - (7)].str), (Base::LoadMethod)(yyvsp[(6) - (7)].integer),
(Base::LayerType)(yyvsp[(7) - (7)].integer));;}
break;
- case 576:
-#line 1437 "parser.Y"
- {fr->loadMosaicImageSocketCmd(Base::WCSMOSAIC, (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 593:
+#line 1472 "parser.Y"
+ {fr->loadMosaicImageSocketCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(4) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 577:
-#line 1440 "parser.Y"
- {fr->loadMosaicImageSocketGZCmd(Base::WCSMOSAIC, (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 594:
+#line 1475 "parser.Y"
+ {fr->loadMosaicImageSocketGZCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(4) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 578:
-#line 1443 "parser.Y"
- {fr->loadMosaicImageVarCmd(Base::WCSMOSAIC, (CoordSystem)(yyvsp[(1) - (6)].integer),
+ case 595:
+#line 1478 "parser.Y"
+ {fr->loadMosaicImageVarCmd(Base::WCSMOSAIC, (Coord::CoordSystem)(yyvsp[(1) - (6)].integer),
(yyvsp[(4) - (6)].str), (yyvsp[(2) - (6)].str), (Base::LoadMethod)(yyvsp[(5) - (6)].integer), (Base::LayerType)(yyvsp[(6) - (6)].integer));;}
break;
- case 579:
-#line 1448 "parser.Y"
- {fr->loadMosaicAllocCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 596:
+#line 1483 "parser.Y"
+ {fr->loadMosaicAllocCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 580:
-#line 1451 "parser.Y"
- {fr->loadMosaicAllocGZCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 597:
+#line 1486 "parser.Y"
+ {fr->loadMosaicAllocGZCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 581:
-#line 1454 "parser.Y"
- {fr->loadMosaicChannelCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 598:
+#line 1489 "parser.Y"
+ {fr->loadMosaicChannelCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(4) - (5)].str), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 582:
-#line 1457 "parser.Y"
- {fr->loadMosaicMMapCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 599:
+#line 1492 "parser.Y"
+ {fr->loadMosaicMMapCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(2) - (5)].str), (Base::LoadMethod)(yyvsp[(4) - (5)].integer), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 583:
-#line 1460 "parser.Y"
- {fr->loadMosaicSMMapCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (6)].integer),
+ case 600:
+#line 1495 "parser.Y"
+ {fr->loadMosaicSMMapCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (6)].integer),
(yyvsp[(2) - (6)].str), (yyvsp[(3) - (6)].str), (Base::LoadMethod)(yyvsp[(5) - (6)].integer), (Base::LayerType)(yyvsp[(6) - (6)].integer));;}
break;
- case 584:
-#line 1463 "parser.Y"
- {fr->loadMosaicMMapIncrCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 601:
+#line 1498 "parser.Y"
+ {fr->loadMosaicMMapIncrCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(2) - (5)].str), (Base::LoadMethod)(yyvsp[(4) - (5)].integer), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 585:
-#line 1466 "parser.Y"
- {fr->loadMosaicShareCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (7)].integer),
+ case 602:
+#line 1501 "parser.Y"
+ {fr->loadMosaicShareCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (7)].integer),
(Base::ShmType)(yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer), (yyvsp[(2) - (7)].str), (Base::LoadMethod)(yyvsp[(6) - (7)].integer),
(Base::LayerType)(yyvsp[(7) - (7)].integer));;}
break;
- case 586:
-#line 1470 "parser.Y"
- {fr->loadMosaicSShareCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (8)].integer),
+ case 603:
+#line 1505 "parser.Y"
+ {fr->loadMosaicSShareCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (8)].integer),
(Base::ShmType)(yyvsp[(4) - (8)].integer), (yyvsp[(5) - (8)].integer), (yyvsp[(6) - (8)].integer), (yyvsp[(2) - (8)].str), (Base::LoadMethod)(yyvsp[(7) - (8)].integer),
(Base::LayerType)(yyvsp[(8) - (8)].integer));;}
break;
- case 587:
-#line 1474 "parser.Y"
- {fr->loadMosaicSocketCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 604:
+#line 1509 "parser.Y"
+ {fr->loadMosaicSocketCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(4) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 588:
-#line 1477 "parser.Y"
- {fr->loadMosaicSocketGZCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (5)].integer),
+ case 605:
+#line 1512 "parser.Y"
+ {fr->loadMosaicSocketGZCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (5)].integer),
(yyvsp[(4) - (5)].integer), (yyvsp[(2) - (5)].str), (Base::LayerType)(yyvsp[(5) - (5)].integer));;}
break;
- case 589:
-#line 1480 "parser.Y"
- {fr->loadMosaicVarCmd((Base::WCSMOSAIC), (CoordSystem)(yyvsp[(1) - (6)].integer),
+ case 606:
+#line 1515 "parser.Y"
+ {fr->loadMosaicVarCmd((Base::WCSMOSAIC), (Coord::CoordSystem)(yyvsp[(1) - (6)].integer),
(yyvsp[(4) - (6)].str), (yyvsp[(2) - (6)].str), (Base::LoadMethod)(yyvsp[(5) - (6)].integer), (Base::LayerType)(yyvsp[(6) - (6)].integer));;}
break;
- case 590:
-#line 1485 "parser.Y"
+ case 607:
+#line 1520 "parser.Y"
{fr->loadMosaicImageWFPC2AllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 591:
-#line 1487 "parser.Y"
+ case 608:
+#line 1522 "parser.Y"
{fr->loadMosaicImageWFPC2AllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 592:
-#line 1489 "parser.Y"
+ case 609:
+#line 1524 "parser.Y"
{fr->loadMosaicImageWFPC2ChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 593:
-#line 1491 "parser.Y"
+ case 610:
+#line 1526 "parser.Y"
{fr->loadMosaicImageWFPC2MMapCmd((yyvsp[(1) - (3)].str),(Base::LoadMethod)(yyvsp[(3) - (3)].integer));;}
break;
- case 594:
-#line 1493 "parser.Y"
+ case 611:
+#line 1528 "parser.Y"
{fr->loadMosaicImageWFPC2MMapIncrCmd((yyvsp[(1) - (3)].str),(Base::LoadMethod)(yyvsp[(3) - (3)].integer));;}
break;
- case 595:
-#line 1495 "parser.Y"
+ case 612:
+#line 1530 "parser.Y"
{fr->loadMosaicImageWFPC2ShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer),
(yyvsp[(1) - (5)].str), (Base::LoadMethod)(yyvsp[(5) - (5)].integer));;}
break;
- case 596:
-#line 1498 "parser.Y"
+ case 613:
+#line 1533 "parser.Y"
{fr->loadMosaicImageWFPC2SocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 597:
-#line 1500 "parser.Y"
+ case 614:
+#line 1535 "parser.Y"
{fr->loadMosaicImageWFPC2SocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 598:
-#line 1502 "parser.Y"
+ case 615:
+#line 1537 "parser.Y"
{fr->loadMosaicImageWFPC2VarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LoadMethod)(yyvsp[(4) - (4)].integer));;}
break;
- case 601:
-#line 1508 "parser.Y"
+ case 618:
+#line 1543 "parser.Y"
{fr->loadRGBCubeAllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 602:
-#line 1509 "parser.Y"
+ case 619:
+#line 1544 "parser.Y"
{fr->loadRGBCubeAllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 603:
-#line 1510 "parser.Y"
+ case 620:
+#line 1545 "parser.Y"
{fr->loadRGBCubeChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 604:
-#line 1512 "parser.Y"
+ case 621:
+#line 1547 "parser.Y"
{fr->loadRGBCubeMMapCmd((yyvsp[(1) - (3)].str), (Base::LoadMethod)(yyvsp[(3) - (3)].integer));;}
break;
- case 605:
-#line 1514 "parser.Y"
+ case 622:
+#line 1549 "parser.Y"
{fr->loadRGBCubeSMMapCmd((yyvsp[(1) - (4)].str), (yyvsp[(2) - (4)].str), (Base::LoadMethod)(yyvsp[(4) - (4)].integer));;}
break;
- case 606:
-#line 1516 "parser.Y"
+ case 623:
+#line 1551 "parser.Y"
{fr->loadRGBCubeMMapIncrCmd((yyvsp[(1) - (3)].str), (Base::LoadMethod)(yyvsp[(3) - (3)].integer));;}
break;
- case 607:
-#line 1518 "parser.Y"
+ case 624:
+#line 1553 "parser.Y"
{fr->loadRGBCubeShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
(Base::LoadMethod)(yyvsp[(5) - (5)].integer));;}
break;
- case 608:
-#line 1521 "parser.Y"
+ case 625:
+#line 1556 "parser.Y"
{fr->loadRGBCubeSShareCmd((Base::ShmType)(yyvsp[(3) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(5) - (6)].integer), (yyvsp[(1) - (6)].str),
(Base::LoadMethod)(yyvsp[(6) - (6)].integer));;}
break;
- case 609:
-#line 1523 "parser.Y"
+ case 626:
+#line 1558 "parser.Y"
{fr->loadRGBCubeSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 610:
-#line 1524 "parser.Y"
+ case 627:
+#line 1559 "parser.Y"
{fr->loadRGBCubeSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 611:
-#line 1526 "parser.Y"
- {fr->loadRGBCubeVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LoadMethod)(yyvsp[(4) - (4)].integer));;}
+ case 628:
+#line 1561 "parser.Y"
+ {fr->loadRGBCubeVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LoadMethod)(yyvsp[(4) - (4)].integer));;}
break;
- case 612:
-#line 1529 "parser.Y"
+ case 629:
+#line 1564 "parser.Y"
{fr->loadRGBImageAllocCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 613:
-#line 1530 "parser.Y"
+ case 630:
+#line 1565 "parser.Y"
{fr->loadRGBImageAllocGZCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 614:
-#line 1531 "parser.Y"
+ case 631:
+#line 1566 "parser.Y"
{fr->loadRGBImageChannelCmd((yyvsp[(3) - (3)].str), (yyvsp[(1) - (3)].str));;}
break;
- case 615:
-#line 1533 "parser.Y"
+ case 632:
+#line 1568 "parser.Y"
{fr->loadRGBImageMMapCmd((yyvsp[(1) - (3)].str), (Base::LoadMethod)(yyvsp[(3) - (3)].integer));;}
break;
- case 616:
-#line 1535 "parser.Y"
+ case 633:
+#line 1570 "parser.Y"
{fr->loadRGBImageMMapIncrCmd((yyvsp[(1) - (3)].str), (Base::LoadMethod)(yyvsp[(3) - (3)].integer));;}
break;
- case 617:
-#line 1537 "parser.Y"
+ case 634:
+#line 1572 "parser.Y"
{fr->loadRGBImageShareCmd((Base::ShmType)(yyvsp[(3) - (5)].integer), (yyvsp[(4) - (5)].integer), (yyvsp[(1) - (5)].str),
(Base::LoadMethod)(yyvsp[(5) - (5)].integer));;}
break;
- case 618:
-#line 1539 "parser.Y"
+ case 635:
+#line 1574 "parser.Y"
{fr->loadRGBImageSocketCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 619:
-#line 1540 "parser.Y"
+ case 636:
+#line 1575 "parser.Y"
{fr->loadRGBImageSocketGZCmd((yyvsp[(3) - (3)].integer), (yyvsp[(1) - (3)].str));;}
break;
- case 620:
-#line 1542 "parser.Y"
+ case 637:
+#line 1577 "parser.Y"
{fr->loadRGBImageVarCmd((yyvsp[(3) - (4)].str), (yyvsp[(1) - (4)].str), (Base::LoadMethod)(yyvsp[(4) - (4)].integer));;}
break;
- case 621:
-#line 1545 "parser.Y"
+ case 638:
+#line 1580 "parser.Y"
{fr->loadIncrDataCmd((yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;}
break;
- case 622:
-#line 1546 "parser.Y"
+ case 639:
+#line 1581 "parser.Y"
{fr->loadIncrMinMaxCmd((yyvsp[(2) - (6)].integer),(yyvsp[(3) - (6)].integer),(yyvsp[(4) - (6)].integer),(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;}
break;
- case 623:
-#line 1547 "parser.Y"
+ case 640:
+#line 1582 "parser.Y"
{fr->loadIncrEndCmd();;}
break;
- case 624:
-#line 1550 "parser.Y"
+ case 641:
+#line 1585 "parser.Y"
{
#ifdef _MACOSX
fr->macosxPrintCmd();
@@ -7627,1800 +7695,1767 @@ yyreduce:
;}
break;
- case 625:
-#line 1557 "parser.Y"
+ case 642:
+#line 1592 "parser.Y"
{fr->magnifierCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 626:
-#line 1558 "parser.Y"
+ case 643:
+#line 1593 "parser.Y"
{fr->magnifierGraphicsCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 627:
-#line 1559 "parser.Y"
+ case 644:
+#line 1594 "parser.Y"
{fr->magnifierCursorCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 628:
-#line 1560 "parser.Y"
+ case 645:
+#line 1595 "parser.Y"
{fr->magnifierColorCmd((yyvsp[(2) - (2)].str));;}
break;
- case 629:
-#line 1561 "parser.Y"
+ case 646:
+#line 1596 "parser.Y"
{fr->magnifierCmd((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
break;
- case 630:
-#line 1562 "parser.Y"
+ case 647:
+#line 1597 "parser.Y"
{fr->updateMagnifierCmd(Vector((yyvsp[(2) - (3)].real), (yyvsp[(3) - (3)].real)));;}
break;
- case 631:
-#line 1563 "parser.Y"
+ case 648:
+#line 1598 "parser.Y"
{fr->magnifierZoomCmd((yyvsp[(2) - (2)].real));;}
break;
- case 633:
-#line 1567 "parser.Y"
+ case 650:
+#line 1602 "parser.Y"
{fr->markerColorCmd((yyvsp[(2) - (2)].str));;}
break;
- case 634:
-#line 1568 "parser.Y"
+ case 651:
+#line 1603 "parser.Y"
{fr->markerCopyCmd();;}
break;
- case 635:
-#line 1570 "parser.Y"
+ case 652:
+#line 1605 "parser.Y"
{fr->markerCommandCmd((Base::MarkerFormat)(yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].str));;}
break;
- case 636:
-#line 1572 "parser.Y"
+ case 653:
+#line 1607 "parser.Y"
{fr->markerCommandVarCmd((Base::MarkerFormat)(yyvsp[(2) - (4)].integer),(yyvsp[(4) - (4)].str));;}
break;
- case 637:
-#line 1573 "parser.Y"
+ case 654:
+#line 1608 "parser.Y"
{fr->markerCompositeDeleteCmd();;}
break;
- case 638:
-#line 1574 "parser.Y"
+ case 655:
+#line 1609 "parser.Y"
{maperr =0;;}
break;
- case 640:
-#line 1575 "parser.Y"
+ case 657:
+#line 1610 "parser.Y"
{fr->markerCutCmd();;}
break;
- case 641:
-#line 1576 "parser.Y"
+ case 658:
+#line 1611 "parser.Y"
{fr->markerDeleteCmd();;}
break;
- case 642:
-#line 1577 "parser.Y"
+ case 659:
+#line 1612 "parser.Y"
{fr->markerDeleteAllCmd();;}
break;
- case 644:
-#line 1579 "parser.Y"
+ case 661:
+#line 1614 "parser.Y"
{fr->markerFontCmd((yyvsp[(2) - (2)].str));;}
break;
- case 645:
-#line 1581 "parser.Y"
+ case 662:
+#line 1616 "parser.Y"
{fr->markerHighliteAllCmd();;}
break;
- case 646:
-#line 1583 "parser.Y"
+ case 663:
+#line 1618 "parser.Y"
{fr->markerHighliteOnlyCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
break;
- case 647:
-#line 1585 "parser.Y"
+ case 664:
+#line 1620 "parser.Y"
{fr->markerHighliteToggleCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
break;
- case 648:
-#line 1587 "parser.Y"
+ case 665:
+#line 1623 "parser.Y"
+ {fr->markerAnalysisCmd((yyvsp[(1) - (4)].integer), (Marker::AnalysisMethod)(yyvsp[(3) - (4)].integer), (yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 666:
+#line 1625 "parser.Y"
+ {fr->markerAnalysisParamCmd((yyvsp[(1) - (4)].integer), (Marker::AnalysisParamType)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 667:
+#line 1627 "parser.Y"
+ {fr->markerAnalysisSystemCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer),(Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 668:
+#line 1629 "parser.Y"
{fr->markerAngleCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].real));;}
break;
- case 649:
-#line 1588 "parser.Y"
+ case 669:
+#line 1630 "parser.Y"
{fr->markerAngleCmd((yyvsp[(1) - (4)].integer),(yyvsp[(3) - (4)].real));;}
break;
- case 650:
-#line 1590 "parser.Y"
- {fr->markerAngleCmd((yyvsp[(1) - (5)].integer),(yyvsp[(3) - (5)].real),(CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ case 670:
+#line 1632 "parser.Y"
+ {fr->markerAngleCmd((yyvsp[(1) - (5)].integer),(yyvsp[(3) - (5)].real),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;}
break;
- case 651:
-#line 1593 "parser.Y"
- {fr->markerAnnulusRadiusCmd((yyvsp[(1) - (7)].integer), (yyvsp[(4) - (7)].real), (yyvsp[(5) - (7)].real), (yyvsp[(6) - (7)].integer), (InternalSystem)(yyvsp[(7) - (7)].integer));;}
+ case 671:
+#line 1635 "parser.Y"
+ {fr->markerAnnulusRadiusCmd((yyvsp[(1) - (7)].integer), (yyvsp[(4) - (7)].real), (yyvsp[(5) - (7)].real), (yyvsp[(6) - (7)].integer), (Coord::InternalSystem)(yyvsp[(7) - (7)].integer));;}
break;
- case 652:
-#line 1595 "parser.Y"
+ case 672:
+#line 1637 "parser.Y"
{fr->markerAnnulusRadiusCmd((yyvsp[(1) - (8)].integer), (yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].real), (yyvsp[(6) - (8)].integer),
- (CoordSystem)(yyvsp[(7) - (8)].integer), (SkyDist)(yyvsp[(8) - (8)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(7) - (8)].integer), (Coord::SkyDist)(yyvsp[(8) - (8)].integer));;}
break;
- case 653:
-#line 1598 "parser.Y"
- {fr->markerAnnulusRadiusCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].str),(CoordSystem)(yyvsp[(5) - (6)].integer),(SkyDist)(yyvsp[(6) - (6)].integer));;}
+ case 673:
+#line 1640 "parser.Y"
+ {fr->markerAnnulusRadiusCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].str),(Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::SkyDist)(yyvsp[(6) - (6)].integer));;}
break;
- case 654:
-#line 1601 "parser.Y"
+ case 674:
+#line 1643 "parser.Y"
{fr->markerBoxAnnulusRadiusCmd((yyvsp[(1) - (8)].integer), Vector((yyvsp[(4) - (8)].real), (yyvsp[(5) - (8)].real)),
- Vector((yyvsp[(6) - (8)].real), (yyvsp[(6) - (8)].real)*(yyvsp[(5) - (8)].real)/(yyvsp[(4) - (8)].real)), (yyvsp[(7) - (8)].integer), (InternalSystem)(yyvsp[(8) - (8)].integer));;}
+ Vector((yyvsp[(6) - (8)].real), (yyvsp[(6) - (8)].real)*(yyvsp[(5) - (8)].real)/(yyvsp[(4) - (8)].real)), (yyvsp[(7) - (8)].integer), (Coord::InternalSystem)(yyvsp[(8) - (8)].integer));;}
break;
- case 655:
-#line 1605 "parser.Y"
+ case 675:
+#line 1647 "parser.Y"
{fr->markerBoxAnnulusRadiusCmd((yyvsp[(1) - (9)].integer), Vector((yyvsp[(4) - (9)].real), (yyvsp[(5) - (9)].real)),
- Vector((yyvsp[(6) - (9)].real), (yyvsp[(6) - (9)].real)*(yyvsp[(5) - (9)].real)/(yyvsp[(4) - (9)].real)), (yyvsp[(7) - (9)].integer), (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyDist)(yyvsp[(9) - (9)].integer));;}
+ Vector((yyvsp[(6) - (9)].real), (yyvsp[(6) - (9)].real)*(yyvsp[(5) - (9)].real)/(yyvsp[(4) - (9)].real)), (yyvsp[(7) - (9)].integer), (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::SkyDist)(yyvsp[(9) - (9)].integer));;}
break;
- case 656:
-#line 1608 "parser.Y"
- {fr->markerBoxAnnulusRadiusCmd((yyvsp[(1) - (6)].integer),(yyvsp[(4) - (6)].str),(CoordSystem)(yyvsp[(5) - (6)].integer),(SkyDist)(yyvsp[(6) - (6)].integer));;}
+ case 676:
+#line 1650 "parser.Y"
+ {fr->markerBoxAnnulusRadiusCmd((yyvsp[(1) - (6)].integer),(yyvsp[(4) - (6)].str),(Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::SkyDist)(yyvsp[(6) - (6)].integer));;}
break;
- case 657:
-#line 1611 "parser.Y"
- {fr->markerBoxRadiusCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)), (InternalSystem)(yyvsp[(6) - (6)].integer));;}
+ case 677:
+#line 1653 "parser.Y"
+ {fr->markerBoxRadiusCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)), (Coord::InternalSystem)(yyvsp[(6) - (6)].integer));;}
break;
- case 658:
-#line 1613 "parser.Y"
+ case 678:
+#line 1655 "parser.Y"
{fr->markerBoxRadiusCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
- (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyDist)(yyvsp[(7) - (7)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::SkyDist)(yyvsp[(7) - (7)].integer));;}
break;
- case 659:
-#line 1617 "parser.Y"
+ case 679:
+#line 1658 "parser.Y"
{fr->markerBpandaEditCmd((yyvsp[(1) - (10)].integer), (yyvsp[(4) - (10)].real), (yyvsp[(5) - (10)].real), (yyvsp[(6) - (10)].integer),
Vector((yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real)), Vector((yyvsp[(9) - (10)].real),(yyvsp[(9) - (10)].real)*(yyvsp[(8) - (10)].real)/(yyvsp[(7) - (10)].real)), (yyvsp[(10) - (10)].integer));;}
break;
- case 660:
-#line 1621 "parser.Y"
+ case 680:
+#line 1662 "parser.Y"
{fr->markerBpandaEditCmd((yyvsp[(1) - (11)].integer), (yyvsp[(4) - (11)].real), (yyvsp[(5) - (11)].real), (yyvsp[(6) - (11)].integer),
Vector((yyvsp[(7) - (11)].real),(yyvsp[(8) - (11)].real)), Vector((yyvsp[(9) - (11)].real),(yyvsp[(9) - (11)].real)*(yyvsp[(8) - (11)].real)/(yyvsp[(7) - (11)].real)), (yyvsp[(10) - (11)].integer));;}
break;
- case 661:
-#line 1625 "parser.Y"
+ case 681:
+#line 1666 "parser.Y"
{fr->markerBpandaEditCmd((yyvsp[(1) - (12)].integer), (yyvsp[(4) - (12)].real), (yyvsp[(5) - (12)].real), (yyvsp[(6) - (12)].integer),
Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)), Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(8) - (12)].real)/(yyvsp[(7) - (12)].real)), (yyvsp[(10) - (12)].integer),
- (CoordSystem)(yyvsp[(11) - (12)].integer), (SkyFrame)(yyvsp[(12) - (12)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(11) - (12)].integer), (Coord::SkyFrame)(yyvsp[(12) - (12)].integer));;}
break;
- case 662:
-#line 1630 "parser.Y"
+ case 682:
+#line 1671 "parser.Y"
{fr->markerBpandaEditCmd((yyvsp[(1) - (9)].integer), (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str),
- (CoordSystem)(yyvsp[(6) - (9)].integer), (SkyFrame)(yyvsp[(7) - (9)].integer), (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyDist)(yyvsp[(9) - (9)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(6) - (9)].integer), (Coord::SkyFrame)(yyvsp[(7) - (9)].integer), (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::SkyDist)(yyvsp[(9) - (9)].integer));;}
break;
- case 663:
-#line 1634 "parser.Y"
+ case 683:
+#line 1675 "parser.Y"
{fr->markerCallBackCmd((yyvsp[(1) - (5)].integer),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str));;}
break;
- case 664:
-#line 1637 "parser.Y"
- {fr->markerCircleRadiusCmd((yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].real), (InternalSystem)(yyvsp[(5) - (5)].integer));;}
+ case 684:
+#line 1677 "parser.Y"
+ {fr->markerCircleRadiusCmd((yyvsp[(1) - (5)].integer), (yyvsp[(4) - (5)].real), (Coord::InternalSystem)(yyvsp[(5) - (5)].integer));;}
break;
- case 665:
-#line 1639 "parser.Y"
- {fr->markerCircleRadiusCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real), (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyDist)(yyvsp[(6) - (6)].integer));;}
+ case 685:
+#line 1679 "parser.Y"
+ {fr->markerCircleRadiusCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real), (Coord::CoordSystem)(yyvsp[(5) - (6)].integer), (Coord::SkyDist)(yyvsp[(6) - (6)].integer));;}
break;
- case 666:
-#line 1641 "parser.Y"
+ case 686:
+#line 1680 "parser.Y"
{fr->markerColorCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
break;
- case 667:
-#line 1644 "parser.Y"
+ case 687:
+#line 1682 "parser.Y"
{fr->markerCompassArrowCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
break;
- case 668:
-#line 1646 "parser.Y"
+ case 688:
+#line 1684 "parser.Y"
{fr->markerCompassLabelCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str));;}
break;
- case 669:
-#line 1648 "parser.Y"
- {fr->markerCompassRadiusCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].real),(InternalSystem)(yyvsp[(5) - (5)].integer));;}
+ case 689:
+#line 1686 "parser.Y"
+ {fr->markerCompassRadiusCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].real),(Coord::InternalSystem)(yyvsp[(5) - (5)].integer));;}
break;
- case 670:
-#line 1650 "parser.Y"
- {fr->markerCompassRadiusCmd((yyvsp[(1) - (6)].integer),(yyvsp[(4) - (6)].real),(CoordSystem)(yyvsp[(5) - (6)].integer),(SkyDist)(yyvsp[(6) - (6)].integer));;}
+ case 690:
+#line 1688 "parser.Y"
+ {fr->markerCompassRadiusCmd((yyvsp[(1) - (6)].integer),(yyvsp[(4) - (6)].real),(Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::SkyDist)(yyvsp[(6) - (6)].integer));;}
break;
- case 671:
-#line 1652 "parser.Y"
- {fr->markerCompassSystemCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ case 691:
+#line 1690 "parser.Y"
+ {fr->markerCompassSystemCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;}
break;
- case 672:
-#line 1654 "parser.Y"
+ case 692:
+#line 1691 "parser.Y"
{fr->markerCompositeCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 673:
-#line 1657 "parser.Y"
+ case 693:
+#line 1693 "parser.Y"
{fr->markerCpandaEditCmd((yyvsp[(1) - (9)].integer), (yyvsp[(4) - (9)].real), (yyvsp[(5) - (9)].real), (yyvsp[(6) - (9)].integer), (yyvsp[(7) - (9)].real), (yyvsp[(8) - (9)].real), (yyvsp[(9) - (9)].integer));;}
break;
- case 674:
-#line 1659 "parser.Y"
+ case 694:
+#line 1695 "parser.Y"
{fr->markerCpandaEditCmd((yyvsp[(1) - (10)].integer), (yyvsp[(4) - (10)].real), (yyvsp[(5) - (10)].real), (yyvsp[(6) - (10)].integer), (yyvsp[(7) - (10)].real), (yyvsp[(8) - (10)].real), (yyvsp[(9) - (10)].integer));;}
break;
- case 675:
-#line 1662 "parser.Y"
+ case 695:
+#line 1698 "parser.Y"
{fr->markerCpandaEditCmd((yyvsp[(1) - (11)].integer), (yyvsp[(4) - (11)].real), (yyvsp[(5) - (11)].real), (yyvsp[(6) - (11)].integer), (yyvsp[(7) - (11)].real), (yyvsp[(8) - (11)].real), (yyvsp[(9) - (11)].integer),
- (CoordSystem)(yyvsp[(10) - (11)].integer), (SkyFrame)(yyvsp[(11) - (11)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(10) - (11)].integer), (Coord::SkyFrame)(yyvsp[(11) - (11)].integer));;}
break;
- case 676:
-#line 1666 "parser.Y"
- {fr->markerCpandaEditCmd((yyvsp[(1) - (9)].integer), (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str), (CoordSystem)(yyvsp[(6) - (9)].integer), (SkyFrame)(yyvsp[(7) - (9)].integer),
- (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyDist)(yyvsp[(9) - (9)].integer));;}
+ case 696:
+#line 1702 "parser.Y"
+ {fr->markerCpandaEditCmd((yyvsp[(1) - (9)].integer), (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str), (Coord::CoordSystem)(yyvsp[(6) - (9)].integer), (Coord::SkyFrame)(yyvsp[(7) - (9)].integer),
+ (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::SkyDist)(yyvsp[(9) - (9)].integer));;}
break;
- case 677:
-#line 1670 "parser.Y"
+ case 697:
+#line 1706 "parser.Y"
{fr->markerAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
break;
- case 678:
-#line 1672 "parser.Y"
+ case 698:
+#line 1708 "parser.Y"
{fr->markerBoxAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
break;
- case 679:
-#line 1674 "parser.Y"
+ case 699:
+#line 1710 "parser.Y"
{fr->markerBpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
break;
- case 680:
-#line 1676 "parser.Y"
+ case 700:
+#line 1712 "parser.Y"
{fr->markerBpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
break;
- case 681:
-#line 1678 "parser.Y"
+ case 701:
+#line 1714 "parser.Y"
{fr->markerEllipseAnnulusCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
break;
- case 682:
-#line 1680 "parser.Y"
+ case 702:
+#line 1716 "parser.Y"
{fr->markerEpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
break;
- case 683:
-#line 1682 "parser.Y"
+ case 703:
+#line 1718 "parser.Y"
{fr->markerEpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
break;
- case 684:
-#line 1684 "parser.Y"
+ case 704:
+#line 1720 "parser.Y"
{fr->markerCpandaCreateAnglesCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
break;
- case 685:
-#line 1686 "parser.Y"
+ case 705:
+#line 1722 "parser.Y"
{fr->markerCpandaCreateRadiusCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));;}
break;
- case 686:
-#line 1688 "parser.Y"
+ case 706:
+#line 1724 "parser.Y"
{fr->markerPolygonCreateVertexCmd((yyvsp[(1) - (7)].integer),(yyvsp[(5) - (7)].integer),Vector((yyvsp[(6) - (7)].real),(yyvsp[(7) - (7)].real)));;}
break;
- case 687:
-#line 1690 "parser.Y"
+ case 707:
+#line 1726 "parser.Y"
{fr->markerDeleteCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 688:
-#line 1692 "parser.Y"
+ case 708:
+#line 1728 "parser.Y"
{fr->markerAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 689:
-#line 1694 "parser.Y"
+ case 709:
+#line 1730 "parser.Y"
{fr->markerBoxAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 690:
-#line 1695 "parser.Y"
+ case 710:
+#line 1731 "parser.Y"
{fr->markerBpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 691:
-#line 1697 "parser.Y"
+ case 711:
+#line 1733 "parser.Y"
{fr->markerEllipseAnnulusDeleteRadiusCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 692:
-#line 1699 "parser.Y"
+ case 712:
+#line 1735 "parser.Y"
{fr->markerDeleteCallBackCmd((yyvsp[(1) - (5)].integer),(CallBack::Type)(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].str));;}
break;
- case 693:
-#line 1700 "parser.Y"
+ case 713:
+#line 1736 "parser.Y"
{fr->markerEpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 694:
-#line 1701 "parser.Y"
+ case 714:
+#line 1737 "parser.Y"
{fr->markerCpandaDeleteCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 695:
-#line 1703 "parser.Y"
+ case 715:
+#line 1739 "parser.Y"
{fr->markerPolygonDeleteVertexCmd((yyvsp[(1) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
break;
- case 696:
-#line 1704 "parser.Y"
+ case 716:
+#line 1740 "parser.Y"
{fr->markerDeleteTagCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 697:
-#line 1705 "parser.Y"
+ case 717:
+#line 1741 "parser.Y"
{fr->markerDeleteTagCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].str));;}
break;
- case 698:
-#line 1706 "parser.Y"
+ case 718:
+#line 1742 "parser.Y"
{fr->markerDeleteTagCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 699:
-#line 1708 "parser.Y"
+ case 719:
+#line 1744 "parser.Y"
{fr->markerEditBeginCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 700:
-#line 1711 "parser.Y"
- {fr->markerEllipseRadiusCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(4) - (6)].real), (yyvsp[(5) - (6)].real)), (InternalSystem)(yyvsp[(6) - (6)].integer));;}
+ case 720:
+#line 1746 "parser.Y"
+ {fr->markerEllipseRadiusCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(4) - (6)].real), (yyvsp[(5) - (6)].real)), (Coord::InternalSystem)(yyvsp[(6) - (6)].integer));;}
break;
- case 701:
-#line 1713 "parser.Y"
+ case 721:
+#line 1748 "parser.Y"
{fr->markerEllipseRadiusCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].real), (yyvsp[(5) - (7)].real)),
- (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyDist)(yyvsp[(7) - (7)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::SkyDist)(yyvsp[(7) - (7)].integer));;}
break;
- case 702:
-#line 1718 "parser.Y"
+ case 722:
+#line 1752 "parser.Y"
{fr->markerEllipseAnnulusRadiusCmd((yyvsp[(1) - (8)].integer), Vector((yyvsp[(4) - (8)].real),(yyvsp[(5) - (8)].real)),
- Vector((yyvsp[(6) - (8)].real),(yyvsp[(6) - (8)].real)*(yyvsp[(5) - (8)].real)/(yyvsp[(4) - (8)].real)), (yyvsp[(7) - (8)].integer), (InternalSystem)(yyvsp[(8) - (8)].integer));;}
+ Vector((yyvsp[(6) - (8)].real),(yyvsp[(6) - (8)].real)*(yyvsp[(5) - (8)].real)/(yyvsp[(4) - (8)].real)), (yyvsp[(7) - (8)].integer), (Coord::InternalSystem)(yyvsp[(8) - (8)].integer));;}
break;
- case 703:
-#line 1722 "parser.Y"
+ case 723:
+#line 1756 "parser.Y"
{fr->markerEllipseAnnulusRadiusCmd((yyvsp[(1) - (9)].integer), Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),
- Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(5) - (9)].real)/(yyvsp[(4) - (9)].real)), (yyvsp[(7) - (9)].integer), (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyDist)(yyvsp[(9) - (9)].integer));;}
+ Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(5) - (9)].real)/(yyvsp[(4) - (9)].real)), (yyvsp[(7) - (9)].integer), (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::SkyDist)(yyvsp[(9) - (9)].integer));;}
break;
- case 704:
-#line 1725 "parser.Y"
+ case 724:
+#line 1759 "parser.Y"
{fr->markerEllipseAnnulusRadiusCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].str),
- (CoordSystem)(yyvsp[(5) - (6)].integer), (SkyDist)(yyvsp[(6) - (6)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(5) - (6)].integer), (Coord::SkyDist)(yyvsp[(6) - (6)].integer));;}
break;
- case 705:
-#line 1729 "parser.Y"
+ case 725:
+#line 1762 "parser.Y"
{fr->markerEpandaEditCmd((yyvsp[(1) - (10)].integer), (yyvsp[(4) - (10)].real), (yyvsp[(5) - (10)].real), (yyvsp[(6) - (10)].integer),
Vector((yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real)), Vector((yyvsp[(9) - (10)].real),(yyvsp[(9) - (10)].real)*(yyvsp[(8) - (10)].real)/(yyvsp[(7) - (10)].real)), (yyvsp[(10) - (10)].integer));;}
break;
- case 706:
-#line 1733 "parser.Y"
+ case 726:
+#line 1766 "parser.Y"
{fr->markerEpandaEditCmd((yyvsp[(1) - (11)].integer), (yyvsp[(4) - (11)].real), (yyvsp[(5) - (11)].real), (yyvsp[(6) - (11)].integer),
Vector((yyvsp[(7) - (11)].real),(yyvsp[(8) - (11)].real)), Vector((yyvsp[(9) - (11)].real),(yyvsp[(9) - (11)].real)*(yyvsp[(8) - (11)].real)/(yyvsp[(7) - (11)].real)), (yyvsp[(10) - (11)].integer));;}
break;
- case 707:
-#line 1737 "parser.Y"
+ case 727:
+#line 1770 "parser.Y"
{fr->markerEpandaEditCmd((yyvsp[(1) - (12)].integer), (yyvsp[(4) - (12)].real), (yyvsp[(5) - (12)].real), (yyvsp[(6) - (12)].integer),
Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)), Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(8) - (12)].real)/(yyvsp[(7) - (12)].real)), (yyvsp[(10) - (12)].integer),
- (CoordSystem)(yyvsp[(11) - (12)].integer), (SkyFrame)(yyvsp[(12) - (12)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(11) - (12)].integer), (Coord::SkyFrame)(yyvsp[(12) - (12)].integer));;}
break;
- case 708:
-#line 1742 "parser.Y"
+ case 728:
+#line 1775 "parser.Y"
{fr->markerEpandaEditCmd((yyvsp[(1) - (9)].integer), (yyvsp[(4) - (9)].str), (yyvsp[(5) - (9)].str),
- (CoordSystem)(yyvsp[(6) - (9)].integer), (SkyFrame)(yyvsp[(7) - (9)].integer),
- (CoordSystem)(yyvsp[(8) - (9)].integer), (SkyDist)(yyvsp[(9) - (9)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(6) - (9)].integer), (Coord::SkyFrame)(yyvsp[(7) - (9)].integer),
+ (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::SkyDist)(yyvsp[(9) - (9)].integer));;}
break;
- case 709:
-#line 1746 "parser.Y"
+ case 729:
+#line 1779 "parser.Y"
{fr->markerFontCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
break;
- case 710:
-#line 1747 "parser.Y"
+ case 730:
+#line 1780 "parser.Y"
{fr->markerHighliteCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 711:
-#line 1748 "parser.Y"
+ case 731:
+#line 1781 "parser.Y"
{fr->markerHighliteOnlyCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 712:
-#line 1750 "parser.Y"
+ case 732:
+#line 1783 "parser.Y"
{fr->markerLineArrowCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].integer),(yyvsp[(5) - (5)].integer));;}
break;
- case 713:
-#line 1752 "parser.Y"
- {fr->markerLineCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(5) - (6)].vector)), Vector((yyvsp[(6) - (6)].vector)), (InternalSystem)(yyvsp[(4) - (6)].integer));;}
+ case 733:
+#line 1785 "parser.Y"
+ {fr->markerLineCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(5) - (6)].vector)), Vector((yyvsp[(6) - (6)].vector)), (Coord::InternalSystem)(yyvsp[(4) - (6)].integer));;}
break;
- case 714:
-#line 1754 "parser.Y"
+ case 734:
+#line 1787 "parser.Y"
{fr->markerLineCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(6) - (7)].vector)), Vector((yyvsp[(7) - (7)].vector)),
- (CoordSystem)(yyvsp[(4) - (7)].integer), (SkyFrame)(yyvsp[(5) - (7)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(4) - (7)].integer), (Coord::SkyFrame)(yyvsp[(5) - (7)].integer));;}
break;
- case 715:
-#line 1758 "parser.Y"
+ case 735:
+#line 1791 "parser.Y"
{fr->markerMoveCmd((yyvsp[(1) - (4)].integer), Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
break;
- case 716:
-#line 1759 "parser.Y"
+ case 736:
+#line 1792 "parser.Y"
{fr->markerFrontCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 717:
-#line 1760 "parser.Y"
+ case 737:
+#line 1793 "parser.Y"
{fr->markerBackCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 718:
-#line 1762 "parser.Y"
- {fr->markerMoveToCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)), (InternalSystem)(yyvsp[(4) - (6)].integer));;}
+ case 738:
+#line 1795 "parser.Y"
+ {fr->markerMoveToCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)), (Coord::InternalSystem)(yyvsp[(4) - (6)].integer));;}
break;
- case 719:
-#line 1764 "parser.Y"
- {fr->markerMoveToCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(6) - (6)].vector)),(CoordSystem)(yyvsp[(4) - (6)].integer),(SkyFrame)(yyvsp[(5) - (6)].integer));;}
+ case 739:
+#line 1797 "parser.Y"
+ {fr->markerMoveToCmd((yyvsp[(1) - (6)].integer),Vector((yyvsp[(6) - (6)].vector)),(Coord::CoordSystem)(yyvsp[(4) - (6)].integer),(Coord::SkyFrame)(yyvsp[(5) - (6)].integer));;}
break;
- case 720:
-#line 1767 "parser.Y"
- {fr->markerPolygonResetCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),(InternalSystem)(yyvsp[(6) - (6)].integer));;}
+ case 740:
+#line 1800 "parser.Y"
+ {fr->markerPolygonResetCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),(Coord::InternalSystem)(yyvsp[(6) - (6)].integer));;}
break;
- case 721:
-#line 1769 "parser.Y"
+ case 741:
+#line 1802 "parser.Y"
{fr->markerPolygonResetCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
- (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyDist)(yyvsp[(7) - (7)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::SkyDist)(yyvsp[(7) - (7)].integer));;}
break;
- case 722:
-#line 1772 "parser.Y"
- {fr->markerPointSizeCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 723:
-#line 1775 "parser.Y"
- {fr->markerProjectionCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(4) - (7)].vector)), Vector((yyvsp[(5) - (7)].vector)),
- (InternalSystem)(yyvsp[(3) - (7)].integer), (yyvsp[(6) - (7)].real), (yyvsp[(7) - (7)].integer));;}
- break;
-
- case 724:
-#line 1779 "parser.Y"
- {fr->markerProjectionCmd((yyvsp[(1) - (10)].integer), Vector((yyvsp[(5) - (10)].vector)), Vector((yyvsp[(6) - (10)].vector)),
- (CoordSystem)(yyvsp[(3) - (10)].integer), (SkyFrame)(yyvsp[(4) - (10)].integer), (yyvsp[(7) - (10)].real), (yyvsp[(8) - (10)].integer),
- (CoordSystem)(yyvsp[(9) - (10)].integer), (SkyDist)(yyvsp[(10) - (10)].integer));;}
- break;
-
- case 725:
-#line 1783 "parser.Y"
- {fr->markerProjectionSystemCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ case 742:
+#line 1805 "parser.Y"
+ {fr->markerPointShapeCmd((yyvsp[(1) - (4)].integer),(Point::PointShape)(yyvsp[(4) - (4)].integer));;}
break;
- case 726:
-#line 1786 "parser.Y"
- {fr->markerCircle3dCmd((yyvsp[(1) - (5)].integer), (yyvsp[(3) - (5)].real), (InternalSystem)(yyvsp[(4) - (5)].integer), (yyvsp[(5) - (5)].integer));;}
+ case 743:
+#line 1806 "parser.Y"
+ {fr->markerPointSizeCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 727:
-#line 1788 "parser.Y"
- {fr->markerCircle3dCmd((yyvsp[(1) - (6)].integer), (yyvsp[(3) - (6)].real), (CoordSystem)(yyvsp[(4) - (6)].integer),(SkyDist)(yyvsp[(5) - (6)].integer),(yyvsp[(6) - (6)].integer));;}
+ case 744:
+#line 1809 "parser.Y"
+ {fr->markerProjectionCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(4) - (6)].vector)), Vector((yyvsp[(5) - (6)].vector)),
+ (Coord::InternalSystem)(yyvsp[(3) - (6)].integer), (yyvsp[(6) - (6)].real));;}
break;
- case 728:
-#line 1790 "parser.Y"
- {fr->markerCircle3dSystemCmd((yyvsp[(1) - (4)].integer),(CoordSystem)(yyvsp[(4) - (4)].integer));;}
+ case 745:
+#line 1813 "parser.Y"
+ {fr->markerProjectionCmd((yyvsp[(1) - (9)].integer), Vector((yyvsp[(5) - (9)].vector)), Vector((yyvsp[(6) - (9)].vector)),
+ (Coord::CoordSystem)(yyvsp[(3) - (9)].integer), (Coord::SkyFrame)(yyvsp[(4) - (9)].integer), (yyvsp[(7) - (9)].real),
+ (Coord::CoordSystem)(yyvsp[(8) - (9)].integer), (Coord::SkyDist)(yyvsp[(9) - (9)].integer));;}
break;
- case 729:
-#line 1793 "parser.Y"
+ case 746:
+#line 1817 "parser.Y"
{fr->markerPropertyCmd((yyvsp[(1) - (4)].integer),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 730:
-#line 1794 "parser.Y"
+ case 747:
+#line 1819 "parser.Y"
{fr->markerRotateBeginCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 731:
-#line 1797 "parser.Y"
+ case 748:
+#line 1821 "parser.Y"
{fr->markerRulerPointCmd((yyvsp[(1) - (6)].integer), Vector((yyvsp[(5) - (6)].vector)), Vector((yyvsp[(6) - (6)].vector)),
- (InternalSystem)(yyvsp[(4) - (6)].integer));;}
+ (Coord::InternalSystem)(yyvsp[(4) - (6)].integer));;}
break;
- case 732:
-#line 1800 "parser.Y"
+ case 749:
+#line 1824 "parser.Y"
{fr->markerRulerPointCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(6) - (7)].vector)), Vector((yyvsp[(7) - (7)].vector)),
- (CoordSystem)(yyvsp[(4) - (7)].integer), (SkyFrame)(yyvsp[(5) - (7)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(4) - (7)].integer), (Coord::SkyFrame)(yyvsp[(5) - (7)].integer));;}
break;
- case 733:
-#line 1803 "parser.Y"
- {fr->markerRulerSystemCmd((yyvsp[(1) - (7)].integer), (CoordSystem)(yyvsp[(4) - (7)].integer), (SkyFrame)(yyvsp[(5) - (7)].integer),
- (CoordSystem)(yyvsp[(6) - (7)].integer), (SkyDist)(yyvsp[(7) - (7)].integer));;}
+ case 750:
+#line 1827 "parser.Y"
+ {fr->markerRulerSystemCmd((yyvsp[(1) - (7)].integer), (Coord::CoordSystem)(yyvsp[(4) - (7)].integer), (Coord::SkyFrame)(yyvsp[(5) - (7)].integer),
+ (Coord::CoordSystem)(yyvsp[(6) - (7)].integer), (Coord::SkyDist)(yyvsp[(7) - (7)].integer));;}
break;
- case 734:
-#line 1806 "parser.Y"
+ case 751:
+#line 1830 "parser.Y"
{fr->markerSelectCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 735:
-#line 1807 "parser.Y"
+ case 752:
+#line 1831 "parser.Y"
{fr->markerSelectOnlyCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 736:
-#line 1808 "parser.Y"
+ case 753:
+#line 1833 "parser.Y"
{fr->markerTagCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
break;
- case 737:
-#line 1809 "parser.Y"
+ case 754:
+#line 1834 "parser.Y"
{fr->markerTextCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].str));;}
break;
- case 738:
-#line 1810 "parser.Y"
- {fr->markerTextRotateCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 739:
-#line 1811 "parser.Y"
- {fr->markerUnhighliteCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 740:
-#line 1812 "parser.Y"
- {fr->markerUnselectCmd((yyvsp[(1) - (2)].integer));;}
- break;
-
- case 741:
-#line 1814 "parser.Y"
- {fr->markerVectorArrowCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 742:
-#line 1816 "parser.Y"
- {fr->markerVectorCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(5) - (7)].vector)), (InternalSystem)(yyvsp[(4) - (7)].integer), (yyvsp[(6) - (7)].real), (yyvsp[(7) - (7)].real));;}
- break;
-
- case 743:
-#line 1819 "parser.Y"
- {fr->markerVectorCmd((yyvsp[(1) - (10)].integer), Vector((yyvsp[(6) - (10)].vector)), (CoordSystem)(yyvsp[(4) - (10)].integer), (SkyFrame)(yyvsp[(5) - (10)].integer),
- (yyvsp[(9) - (10)].real), (CoordSystem)(yyvsp[(7) - (10)].integer), (SkyDist)(yyvsp[(8) - (10)].integer), (yyvsp[(10) - (10)].real));;}
- break;
-
- case 744:
-#line 1822 "parser.Y"
- {fr->markerLineWidthCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 745:
-#line 1824 "parser.Y"
- {fr->markerKeyCmd();;}
- break;
-
- case 746:
-#line 1825 "parser.Y"
- {fr->markerKeyCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
- break;
-
- case 750:
-#line 1830 "parser.Y"
- {fr->markerPreserveCmd((yyvsp[(2) - (2)].integer));;}
- break;
-
- case 751:
-#line 1831 "parser.Y"
- {fr->markerPropertyCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
- break;
-
- case 752:
-#line 1833 "parser.Y"
- {fr->markerPropertyCmd((yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;}
- break;
-
- case 753:
+ case 755:
#line 1835 "parser.Y"
- {fr->markerRotateBeginCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+ {fr->markerTextRotateCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 754:
+ case 756:
#line 1837 "parser.Y"
- {fr->markerRotateMotionCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real)),(yyvsp[(5) - (5)].integer));;}
+ {fr->markerUnhighliteCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 755:
+ case 757:
#line 1838 "parser.Y"
- {fr->markerRotateEndCmd();;}
+ {fr->markerUnselectCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 756:
+ case 758:
#line 1840 "parser.Y"
- {fr->markerSaveCmd((yyvsp[(2) - (7)].str), (Base::MarkerFormat)(yyvsp[(3) - (7)].integer),
- (CoordSystem)(yyvsp[(4) - (7)].integer), (SkyFrame)(yyvsp[(5) - (7)].integer), (SkyFormat)(yyvsp[(6) - (7)].integer), (yyvsp[(7) - (7)].integer));;}
+ {fr->markerVectorArrowCmd((yyvsp[(1) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 757:
+ case 759:
#line 1842 "parser.Y"
- {fr->markerSaveTemplateCmd((yyvsp[(3) - (3)].str));;}
+ {fr->markerVectorCmd((yyvsp[(1) - (7)].integer), Vector((yyvsp[(5) - (7)].vector)), (Coord::InternalSystem)(yyvsp[(4) - (7)].integer), (yyvsp[(6) - (7)].real), (yyvsp[(7) - (7)].real));;}
break;
case 760:
-#line 1847 "parser.Y"
- {fr->markerColorCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;}
+#line 1845 "parser.Y"
+ {fr->markerVectorCmd((yyvsp[(1) - (10)].integer), Vector((yyvsp[(6) - (10)].vector)), (Coord::CoordSystem)(yyvsp[(4) - (10)].integer), (Coord::SkyFrame)(yyvsp[(5) - (10)].integer),
+ (yyvsp[(9) - (10)].real), (Coord::CoordSystem)(yyvsp[(7) - (10)].integer), (Coord::SkyDist)(yyvsp[(8) - (10)].integer), (yyvsp[(10) - (10)].real));;}
break;
case 761:
#line 1848 "parser.Y"
- {fr->markerCopyCmd((yyvsp[(1) - (2)].str));;}
+ {fr->markerLineWidthCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
break;
case 762:
-#line 1849 "parser.Y"
- {fr->markerDeleteCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 763:
#line 1850 "parser.Y"
- {fr->markerCutCmd((yyvsp[(1) - (2)].str));;}
+ {fr->markerKeyCmd();;}
break;
- case 764:
+ case 763:
#line 1851 "parser.Y"
- {fr->markerFontCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;}
- break;
-
- case 765:
-#line 1852 "parser.Y"
- {fr->markerHighliteCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 766:
-#line 1853 "parser.Y"
- {fr->markerHighliteOnlyCmd((yyvsp[(1) - (3)].str));;}
+ {fr->markerKeyCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
case 767:
-#line 1854 "parser.Y"
- {fr->markerMoveCmd((yyvsp[(1) - (4)].str),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
+#line 1856 "parser.Y"
+ {fr->markerPreserveCmd((yyvsp[(2) - (2)].integer));;}
break;
case 768:
-#line 1855 "parser.Y"
- {fr->markerFrontCmd((yyvsp[(1) - (3)].str));;}
+#line 1857 "parser.Y"
+ {fr->markerPropertyCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
break;
case 769:
-#line 1856 "parser.Y"
- {fr->markerBackCmd((yyvsp[(1) - (3)].str));;}
+#line 1859 "parser.Y"
+ {fr->markerPropertyCmd((yyvsp[(2) - (5)].integer),(yyvsp[(3) - (5)].integer),Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;}
break;
case 770:
-#line 1858 "parser.Y"
- {fr->markerMoveToCmd((yyvsp[(1) - (5)].str),Vector((yyvsp[(5) - (5)].vector)),(InternalSystem)(yyvsp[(4) - (5)].integer));;}
+#line 1861 "parser.Y"
+ {fr->markerRotateBeginCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
break;
case 771:
-#line 1860 "parser.Y"
- {fr->markerMoveToCmd((yyvsp[(1) - (6)].str),Vector((yyvsp[(6) - (6)].vector)),(CoordSystem)(yyvsp[(4) - (6)].integer),(SkyFrame)(yyvsp[(5) - (6)].integer));;}
+#line 1863 "parser.Y"
+ {fr->markerRotateMotionCmd(Vector((yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real)),(yyvsp[(5) - (5)].integer));;}
break;
case 772:
-#line 1862 "parser.Y"
- {fr->markerPropertyCmd((yyvsp[(1) - (4)].str),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
+#line 1864 "parser.Y"
+ {fr->markerRotateEndCmd();;}
break;
case 773:
-#line 1863 "parser.Y"
- {fr->markerSelectCmd((yyvsp[(1) - (2)].str));;}
+#line 1866 "parser.Y"
+ {fr->markerSaveCmd((yyvsp[(2) - (7)].str), (Base::MarkerFormat)(yyvsp[(3) - (7)].integer),
+ (Coord::CoordSystem)(yyvsp[(4) - (7)].integer), (Coord::SkyFrame)(yyvsp[(5) - (7)].integer), (Coord::SkyFormat)(yyvsp[(6) - (7)].integer), (yyvsp[(7) - (7)].integer));;}
break;
case 774:
-#line 1864 "parser.Y"
- {fr->markerSelectOnlyCmd((yyvsp[(1) - (3)].str));;}
- break;
-
- case 775:
-#line 1865 "parser.Y"
- {fr->markerUnhighliteCmd((yyvsp[(1) - (2)].str));;}
- break;
-
- case 776:
-#line 1866 "parser.Y"
- {fr->markerUnselectCmd((yyvsp[(1) - (2)].str));;}
+#line 1868 "parser.Y"
+ {fr->markerSaveTemplateCmd((yyvsp[(3) - (3)].str));;}
break;
case 777:
-#line 1868 "parser.Y"
- {fr->markerTagEditCmd((yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].str));;}
+#line 1873 "parser.Y"
+ {fr->markerColorCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;}
break;
case 778:
-#line 1869 "parser.Y"
- {fr->markerTagDeleteCmd((yyvsp[(3) - (3)].str));;}
+#line 1874 "parser.Y"
+ {fr->markerCopyCmd((yyvsp[(1) - (2)].str));;}
break;
case 779:
-#line 1870 "parser.Y"
- {fr->markerTagDeleteAllCmd();;}
+#line 1875 "parser.Y"
+ {fr->markerDeleteCmd((yyvsp[(1) - (2)].str));;}
break;
case 780:
-#line 1871 "parser.Y"
- {fr->markerTagCmd((yyvsp[(2) - (2)].str));;}
+#line 1876 "parser.Y"
+ {fr->markerCutCmd((yyvsp[(1) - (2)].str));;}
break;
case 781:
-#line 1872 "parser.Y"
- {fr->markerTagUpdateCmd((yyvsp[(3) - (3)].str));;}
+#line 1877 "parser.Y"
+ {fr->markerFontCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].str));;}
break;
case 782:
-#line 1874 "parser.Y"
- {fr->markerPasteCmd();;}
+#line 1878 "parser.Y"
+ {fr->markerHighliteCmd((yyvsp[(1) - (2)].str));;}
break;
case 783:
-#line 1876 "parser.Y"
- {fr->markerPasteCmd((CoordSystem)(yyvsp[(2) - (3)].integer), (CoordSystem)(yyvsp[(3) - (3)].integer));;}
+#line 1879 "parser.Y"
+ {fr->markerHighliteOnlyCmd((yyvsp[(1) - (3)].str));;}
break;
case 784:
-#line 1877 "parser.Y"
- {fr->markerUndoCmd();;}
+#line 1880 "parser.Y"
+ {fr->markerMoveCmd((yyvsp[(1) - (4)].str),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
break;
case 785:
-#line 1878 "parser.Y"
- {fr->markerUnhighliteAllCmd();;}
+#line 1881 "parser.Y"
+ {fr->markerFrontCmd((yyvsp[(1) - (3)].str));;}
break;
case 786:
-#line 1879 "parser.Y"
- {fr->markerUnselectAllCmd();;}
+#line 1882 "parser.Y"
+ {fr->markerBackCmd((yyvsp[(1) - (3)].str));;}
break;
case 787:
-#line 1880 "parser.Y"
- {fr->markerLineWidthCmd((yyvsp[(2) - (2)].integer));;}
+#line 1884 "parser.Y"
+ {fr->markerMoveToCmd((yyvsp[(1) - (5)].str),Vector((yyvsp[(5) - (5)].vector)),(Coord::InternalSystem)(yyvsp[(4) - (5)].integer));;}
break;
case 788:
-#line 1883 "parser.Y"
- {(yyval.integer) = CallBack::SELECTCB;;}
+#line 1886 "parser.Y"
+ {fr->markerMoveToCmd((yyvsp[(1) - (6)].str),Vector((yyvsp[(6) - (6)].vector)),(Coord::CoordSystem)(yyvsp[(4) - (6)].integer),(Coord::SkyFrame)(yyvsp[(5) - (6)].integer));;}
break;
case 789:
-#line 1884 "parser.Y"
- {(yyval.integer) = CallBack::UNSELECTCB;;}
+#line 1888 "parser.Y"
+ {fr->markerPropertyCmd((yyvsp[(1) - (4)].str),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
case 790:
-#line 1885 "parser.Y"
- {(yyval.integer) = CallBack::HIGHLITECB;;}
+#line 1889 "parser.Y"
+ {fr->markerSelectCmd((yyvsp[(1) - (2)].str));;}
break;
case 791:
-#line 1886 "parser.Y"
- {(yyval.integer) = CallBack::UNHIGHLITECB;;}
+#line 1890 "parser.Y"
+ {fr->markerSelectOnlyCmd((yyvsp[(1) - (3)].str));;}
break;
case 792:
-#line 1887 "parser.Y"
- {(yyval.integer) = CallBack::MOVEBEGINCB;;}
+#line 1891 "parser.Y"
+ {fr->markerUnhighliteCmd((yyvsp[(1) - (2)].str));;}
break;
case 793:
-#line 1888 "parser.Y"
- {(yyval.integer) = CallBack::MOVECB;;}
+#line 1892 "parser.Y"
+ {fr->markerUnselectCmd((yyvsp[(1) - (2)].str));;}
break;
case 794:
-#line 1889 "parser.Y"
- {(yyval.integer) = CallBack::MOVEENDCB;;}
+#line 1894 "parser.Y"
+ {fr->markerTagEditCmd((yyvsp[(3) - (4)].str),(yyvsp[(4) - (4)].str));;}
break;
case 795:
-#line 1890 "parser.Y"
- {(yyval.integer) = CallBack::EDITBEGINCB;;}
+#line 1895 "parser.Y"
+ {fr->markerTagDeleteCmd((yyvsp[(3) - (3)].str));;}
break;
case 796:
-#line 1891 "parser.Y"
- {(yyval.integer) = CallBack::EDITCB;;}
+#line 1896 "parser.Y"
+ {fr->markerTagDeleteAllCmd();;}
break;
case 797:
-#line 1892 "parser.Y"
- {(yyval.integer) = CallBack::EDITENDCB;;}
+#line 1897 "parser.Y"
+ {fr->markerTagCmd((yyvsp[(2) - (2)].str));;}
break;
case 798:
-#line 1893 "parser.Y"
- {(yyval.integer) = CallBack::ROTATEBEGINCB;;}
+#line 1898 "parser.Y"
+ {fr->markerTagUpdateCmd((yyvsp[(3) - (3)].str));;}
break;
case 799:
-#line 1894 "parser.Y"
- {(yyval.integer) = CallBack::ROTATECB;;}
+#line 1900 "parser.Y"
+ {fr->markerPasteCmd();;}
break;
case 800:
-#line 1895 "parser.Y"
- {(yyval.integer) = CallBack::ROTATEENDCB;;}
+#line 1902 "parser.Y"
+ {fr->markerPasteCmd((Coord::CoordSystem)(yyvsp[(2) - (3)].integer), (Coord::CoordSystem)(yyvsp[(3) - (3)].integer));;}
break;
case 801:
-#line 1896 "parser.Y"
- {(yyval.integer) = CallBack::DELETECB;;}
+#line 1903 "parser.Y"
+ {fr->markerUndoCmd();;}
break;
case 802:
-#line 1897 "parser.Y"
- {(yyval.integer) = CallBack::TEXTCB;;}
+#line 1904 "parser.Y"
+ {fr->markerUnhighliteAllCmd();;}
break;
case 803:
-#line 1898 "parser.Y"
- {(yyval.integer) = CallBack::COLORCB;;}
+#line 1905 "parser.Y"
+ {fr->markerUnselectAllCmd();;}
break;
case 804:
-#line 1899 "parser.Y"
- {(yyval.integer) = CallBack::LINEWIDTHCB;;}
+#line 1906 "parser.Y"
+ {fr->markerLineWidthCmd((yyvsp[(2) - (2)].integer));;}
break;
case 805:
-#line 1900 "parser.Y"
- {(yyval.integer) = CallBack::PROPERTYCB;;}
+#line 1909 "parser.Y"
+ {(yyval.integer) = CallBack::SELECTCB;;}
break;
case 806:
-#line 1901 "parser.Y"
- {(yyval.integer) = CallBack::FONTCB;;}
+#line 1910 "parser.Y"
+ {(yyval.integer) = CallBack::UNSELECTCB;;}
break;
case 807:
-#line 1902 "parser.Y"
- {(yyval.integer) = CallBack::KEYCB;;}
+#line 1911 "parser.Y"
+ {(yyval.integer) = CallBack::HIGHLITECB;;}
break;
case 808:
-#line 1903 "parser.Y"
- {(yyval.integer) = CallBack::UPDATECB;;}
+#line 1912 "parser.Y"
+ {(yyval.integer) = CallBack::UNHIGHLITECB;;}
break;
case 809:
-#line 1906 "parser.Y"
- {fr->markerCentroidCmd();;}
+#line 1913 "parser.Y"
+ {(yyval.integer) = CallBack::MOVEBEGINCB;;}
break;
case 810:
-#line 1907 "parser.Y"
- {fr->markerCentroidCmd((yyvsp[(1) - (1)].integer));;}
+#line 1914 "parser.Y"
+ {(yyval.integer) = CallBack::MOVECB;;}
break;
case 811:
-#line 1908 "parser.Y"
- {fr->markerCentroidAutoCmd((yyvsp[(2) - (2)].integer));;}
+#line 1915 "parser.Y"
+ {(yyval.integer) = CallBack::MOVEENDCB;;}
break;
case 812:
-#line 1909 "parser.Y"
- {fr->markerCentroidRadiusCmd((yyvsp[(2) - (2)].real));;}
+#line 1916 "parser.Y"
+ {(yyval.integer) = CallBack::EDITBEGINCB;;}
break;
case 813:
-#line 1910 "parser.Y"
- {fr->markerCentroidIterationCmd((yyvsp[(2) - (2)].integer));;}
+#line 1917 "parser.Y"
+ {(yyval.integer) = CallBack::EDITCB;;}
break;
case 814:
-#line 1911 "parser.Y"
- {
- fr->markerCentroidIterationCmd((yyvsp[(2) - (3)].integer));
- fr->markerCentroidRadiusCmd((yyvsp[(3) - (3)].real));
- ;}
+#line 1918 "parser.Y"
+ {(yyval.integer) = CallBack::EDITENDCB;;}
break;
case 815:
-#line 1921 "parser.Y"
- {fr->createCircleCmd(fr->mapToRef(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),CANVAS),
- (yyvsp[(4) - (5)].real),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1919 "parser.Y"
+ {(yyval.integer) = CallBack::ROTATEBEGINCB;;}
break;
case 816:
-#line 1928 "parser.Y"
- {fr->createAnnulusCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),CANVAS),
- (yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].integer),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1920 "parser.Y"
+ {(yyval.integer) = CallBack::ROTATECB;;}
break;
case 817:
-#line 1936 "parser.Y"
- {fr->createCpandaCmd(fr->mapToRef(Vector((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real)),CANVAS),
- (yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].integer),
- (yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real),(yyvsp[(9) - (10)].integer),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1921 "parser.Y"
+ {(yyval.integer) = CallBack::ROTATEENDCB;;}
break;
case 818:
-#line 1946 "parser.Y"
- {fr->createEllipseCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),CANVAS),
- Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
- (yyvsp[(6) - (7)].real),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1922 "parser.Y"
+ {(yyval.integer) = CallBack::DELETECB;;}
break;
case 819:
-#line 1955 "parser.Y"
- {fr->createEllipseAnnulusCmd(fr->mapToRef(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real)),CANVAS),
- Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),
- Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(4) - (9)].real)/(yyvsp[(5) - (9)].real)),(yyvsp[(7) - (9)].integer),
- (yyvsp[(8) - (9)].real),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1923 "parser.Y"
+ {(yyval.integer) = CallBack::TEXTCB;;}
break;
case 820:
-#line 1966 "parser.Y"
- {fr->createEpandaCmd(fr->mapToRef(Vector((yyvsp[(2) - (12)].real),(yyvsp[(3) - (12)].real)),CANVAS),
- (yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real),(yyvsp[(6) - (12)].integer),
- Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
- Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(7) - (12)].real)/(yyvsp[(8) - (12)].real)),(yyvsp[(10) - (12)].integer),
- (yyvsp[(11) - (12)].real),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1924 "parser.Y"
+ {(yyval.integer) = CallBack::COLORCB;;}
break;
case 821:
-#line 1978 "parser.Y"
- {fr->createBoxCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),CANVAS),
- Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
- (yyvsp[(6) - (7)].real),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1925 "parser.Y"
+ {(yyval.integer) = CallBack::LINEWIDTHCB;;}
break;
case 822:
-#line 1987 "parser.Y"
- {fr->createBoxAnnulusCmd(fr->mapToRef(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real)),CANVAS),
- Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(4) - (9)].real)/(yyvsp[(5) - (9)].real)),(yyvsp[(7) - (9)].integer),
- (yyvsp[(8) - (9)].real),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1926 "parser.Y"
+ {(yyval.integer) = CallBack::PROPERTYCB;;}
break;
case 823:
-#line 1997 "parser.Y"
- {fr->createBpandaCmd(fr->mapToRef(Vector((yyvsp[(2) - (12)].real),(yyvsp[(3) - (12)].real)),CANVAS),
- (yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real),(yyvsp[(6) - (12)].integer),
- Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
- Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(7) - (12)].real)/(yyvsp[(8) - (12)].real)),(yyvsp[(10) - (12)].integer),
- (yyvsp[(11) - (12)].real),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1927 "parser.Y"
+ {(yyval.integer) = CallBack::FONTCB;;}
break;
case 824:
-#line 2008 "parser.Y"
- {fr->createLineCmd(fr->mapToRef(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)),CANVAS),
- fr->mapToRef(Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),CANVAS),
- 0, 0,
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1928 "parser.Y"
+ {(yyval.integer) = CallBack::KEYCB;;}
break;
case 825:
-#line 2016 "parser.Y"
- {fr->createVectCmd(fr->mapToRef(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)),CANVAS),
- fr->mapToRef(Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),CANVAS),
- 1,
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1929 "parser.Y"
+ {(yyval.integer) = CallBack::UPDATECB;;}
break;
case 826:
-#line 2025 "parser.Y"
- {fr->createProjectionCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),CANVAS),
- fr->mapToRef(Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),CANVAS),
- (yyvsp[(6) - (7)].real),
- NULL,NULL,
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1932 "parser.Y"
+ {fr->markerCentroidCmd();;}
break;
case 827:
-#line 2036 "parser.Y"
- {fr->createProjectionCmd(fr->mapToRef(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real)),CANVAS),
- fr->mapToRef(Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),CANVAS),
- (yyvsp[(6) - (9)].real),
- (yyvsp[(7) - (9)].str),(yyvsp[(8) - (9)].str),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1933 "parser.Y"
+ {fr->markerCentroidCmd((yyvsp[(1) - (1)].integer));;}
break;
case 828:
-#line 2045 "parser.Y"
- {fr->createCircle3dCmd(fr->mapToRef(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),CANVAS),
- (yyvsp[(4) - (5)].real),
- NULL,NULL,
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1934 "parser.Y"
+ {fr->markerCentroidAutoCmd((yyvsp[(2) - (2)].integer));;}
break;
case 829:
-#line 2054 "parser.Y"
- {fr->createCircle3dCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),CANVAS),
- (yyvsp[(4) - (7)].real),
- (yyvsp[(5) - (7)].str),(yyvsp[(6) - (7)].str),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1935 "parser.Y"
+ {fr->markerCentroidRadiusCmd((yyvsp[(2) - (2)].real));;}
break;
case 830:
-#line 2063 "parser.Y"
- {fr->createRulerCmd(fr->mapToRef(Vector((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real)),CANVAS),
- fr->mapToRef(Vector((yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real)),CANVAS),
- (CoordSystem)(yyvsp[(6) - (10)].integer), (SkyFrame)(yyvsp[(7) - (10)].integer), (CoordSystem)(yyvsp[(8) - (10)].integer), (SkyDist)(yyvsp[(9) - (10)].integer),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1936 "parser.Y"
+ {fr->markerCentroidIterationCmd((yyvsp[(2) - (2)].integer));;}
break;
case 831:
-#line 2071 "parser.Y"
- {fr->createCirclePointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),CANVAS), (yyvsp[(5) - (6)].integer),
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);;}
+#line 1937 "parser.Y"
+ {
+ fr->markerCentroidIterationCmd((yyvsp[(2) - (3)].integer));
+ fr->markerCentroidRadiusCmd((yyvsp[(3) - (3)].real));
+ ;}
break;
case 832:
-#line 2076 "parser.Y"
- {fr->createBoxPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),CANVAS), (yyvsp[(5) - (6)].integer),
+#line 1947 "parser.Y"
+ {fr->createCircleCmd(fr->mapToRef(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),Coord::CANVAS),
+ (yyvsp[(4) - (5)].real),
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);;}
break;
case 833:
-#line 2081 "parser.Y"
- {fr->createDiamondPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),CANVAS), (yyvsp[(5) - (6)].integer),
+#line 1955 "parser.Y"
+ {fr->createEllipseCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),Coord::CANVAS),
+ Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
+ (yyvsp[(6) - (7)].real),
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);;}
break;
case 834:
-#line 2086 "parser.Y"
- {fr->createCrossPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),CANVAS), (yyvsp[(5) - (6)].integer),
+#line 1964 "parser.Y"
+ {fr->createBoxCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),Coord::CANVAS),
+ Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),
+ (yyvsp[(6) - (7)].real),
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);;}
break;
case 835:
-#line 2091 "parser.Y"
- {fr->createExPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),CANVAS), (yyvsp[(5) - (6)].integer),
+#line 1972 "parser.Y"
+ {fr->createPolygonCmd(fr->mapToRef(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)),Coord::CANVAS),
+ Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);;}
break;
case 836:
-#line 2096 "parser.Y"
- {fr->createArrowPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),CANVAS), (yyvsp[(5) - (6)].integer),
+#line 1979 "parser.Y"
+ {fr->createLineCmd(fr->mapToRef(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)),Coord::CANVAS),
+ fr->mapToRef(Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),Coord::CANVAS),
+ 0, 0,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);;}
break;
case 837:
-#line 2101 "parser.Y"
- {fr->createBoxCirclePointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),CANVAS), (yyvsp[(5) - (6)].integer),
+#line 1987 "parser.Y"
+ {fr->createVectCmd(fr->mapToRef(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)),Coord::CANVAS),
+ fr->mapToRef(Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),Coord::CANVAS),
+ 1,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);;}
break;
case 838:
-#line 2108 "parser.Y"
- {fr->createTextCmd(fr->mapToRef(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),CANVAS),
+#line 1995 "parser.Y"
+ {fr->createTextCmd(fr->mapToRef(Vector((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real)),Coord::CANVAS),
(yyvsp[(4) - (5)].real), 1,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);;}
break;
case 839:
-#line 2116 "parser.Y"
- {fr->createPolygonCmd(fr->mapToRef(Vector((yyvsp[(2) - (6)].real),(yyvsp[(3) - (6)].real)),CANVAS),
- Vector((yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real)),
+#line 2000 "parser.Y"
+ {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS),
+ Point::CIRCLE, (yyvsp[(5) - (6)].integer),
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);;}
break;
case 840:
-#line 2125 "parser.Y"
- {fr->createCompassCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),CANVAS),
- (yyvsp[(4) - (7)].real),
- "N", "E", 1, 1,
- (CoordSystem)(yyvsp[(5) - (7)].integer), (SkyFrame)(yyvsp[(6) - (7)].integer),
+#line 2005 "parser.Y"
+ {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS),
+ Point::BOX, (yyvsp[(5) - (6)].integer),
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);;}
break;
case 841:
-#line 2133 "parser.Y"
- {fr->createCompositeCmd(
+#line 2010 "parser.Y"
+ {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS),
+ Point::DIAMOND, (yyvsp[(5) - (6)].integer),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
+ break;
+
+ case 842:
+#line 2015 "parser.Y"
+ {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS),
+ Point::CROSS, (yyvsp[(5) - (6)].integer),
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);;}
break;
case 843:
-#line 2141 "parser.Y"
- {fr->createTemplateCmd(fr->mapToRef(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)),CANVAS), (yyvsp[(1) - (3)].str));;}
+#line 2020 "parser.Y"
+ {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS),
+ Point::EX, (yyvsp[(5) - (6)].integer),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 844:
-#line 2143 "parser.Y"
- {fr->createTemplateVarCmd(fr->mapToRef(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),CANVAS), (yyvsp[(2) - (4)].str));;}
+#line 2025 "parser.Y"
+ {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS),
+ Point::ARROW, (yyvsp[(5) - (6)].integer),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 845:
-#line 2145 "parser.Y"
- {
- // backward compatibility
- fr->createTemplateVarCmd(fr->mapToRef(Vector((yyvsp[(1) - (4)].real),(yyvsp[(2) - (4)].real)),CANVAS), (yyvsp[(4) - (4)].str));
- ;}
+#line 2030 "parser.Y"
+ {fr->createPointCmd(fr->mapToRef(Vector((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real)),Coord::CANVAS),
+ Point::BOXCIRCLE, (yyvsp[(5) - (6)].integer),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 846:
-#line 2150 "parser.Y"
- {fr->createTemplateCmd(Vector((yyvsp[(4) - (4)].vector)),(CoordSystem)(yyvsp[(2) - (4)].integer),(SkyFrame)(yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str));;}
+#line 2039 "parser.Y"
+ {fr->createRulerCmd(fr->mapToRef(Vector((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real)),Coord::CANVAS),
+ fr->mapToRef(Vector((yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real)),Coord::CANVAS),
+ (Coord::CoordSystem)(yyvsp[(6) - (10)].integer), (Coord::SkyFrame)(yyvsp[(7) - (10)].integer), (Coord::CoordSystem)(yyvsp[(8) - (10)].integer), (Coord::SkyDist)(yyvsp[(9) - (10)].integer),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 847:
-#line 2153 "parser.Y"
- {(yyval.dash)[0] = (yyvsp[(1) - (2)].integer); (yyval.dash)[1] = (yyvsp[(2) - (2)].integer);;}
+#line 2048 "parser.Y"
+ {fr->createCompassCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),Coord::CANVAS),
+ (yyvsp[(4) - (7)].real),
+ "N", "E", 1, 1,
+ (Coord::CoordSystem)(yyvsp[(5) - (7)].integer), (Coord::SkyFrame)(yyvsp[(6) - (7)].integer),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 848:
-#line 2157 "parser.Y"
- {fr->markerEditBeginCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
+#line 2058 "parser.Y"
+ {fr->createProjectionCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),Coord::CANVAS),
+ fr->mapToRef(Vector((yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real)),Coord::CANVAS),
+ (yyvsp[(6) - (7)].real),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 849:
-#line 2159 "parser.Y"
- {fr->markerEditMotionCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
+#line 2067 "parser.Y"
+ {fr->createAnnulusCmd(fr->mapToRef(Vector((yyvsp[(2) - (7)].real),(yyvsp[(3) - (7)].real)),Coord::CANVAS),
+ (yyvsp[(4) - (7)].real),(yyvsp[(5) - (7)].real),(yyvsp[(6) - (7)].integer),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 850:
-#line 2160 "parser.Y"
- {fr->markerEditEndCmd();;}
+#line 2075 "parser.Y"
+ {fr->createEllipseAnnulusCmd(fr->mapToRef(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real)),Coord::CANVAS),
+ Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),
+ Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(4) - (9)].real)/(yyvsp[(5) - (9)].real)),(yyvsp[(7) - (9)].integer),
+ (yyvsp[(8) - (9)].real),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 851:
-#line 2163 "parser.Y"
- {(yyval.integer) = Base::DS9;;}
+#line 2085 "parser.Y"
+ {fr->createBoxAnnulusCmd(fr->mapToRef(Vector((yyvsp[(2) - (9)].real),(yyvsp[(3) - (9)].real)),Coord::CANVAS),
+ Vector((yyvsp[(4) - (9)].real),(yyvsp[(5) - (9)].real)),Vector((yyvsp[(6) - (9)].real),(yyvsp[(6) - (9)].real)*(yyvsp[(4) - (9)].real)/(yyvsp[(5) - (9)].real)),(yyvsp[(7) - (9)].integer),
+ (yyvsp[(8) - (9)].real),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 852:
-#line 2164 "parser.Y"
- {(yyval.integer) = Base::XML;;}
+#line 2095 "parser.Y"
+ {fr->createCpandaCmd(fr->mapToRef(Vector((yyvsp[(2) - (10)].real),(yyvsp[(3) - (10)].real)),Coord::CANVAS),
+ (yyvsp[(4) - (10)].real),(yyvsp[(5) - (10)].real),(yyvsp[(6) - (10)].integer),
+ (yyvsp[(7) - (10)].real),(yyvsp[(8) - (10)].real),(yyvsp[(9) - (10)].integer),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 853:
-#line 2165 "parser.Y"
- {(yyval.integer) = Base::CIAO;;}
+#line 2105 "parser.Y"
+ {fr->createEpandaCmd(fr->mapToRef(Vector((yyvsp[(2) - (12)].real),(yyvsp[(3) - (12)].real)),Coord::CANVAS),
+ (yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real),(yyvsp[(6) - (12)].integer),
+ Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
+ Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(7) - (12)].real)/(yyvsp[(8) - (12)].real)),(yyvsp[(10) - (12)].integer),
+ (yyvsp[(11) - (12)].real),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 854:
-#line 2166 "parser.Y"
- {(yyval.integer) = Base::SAOTNG;;}
+#line 2117 "parser.Y"
+ {fr->createBpandaCmd(fr->mapToRef(Vector((yyvsp[(2) - (12)].real),(yyvsp[(3) - (12)].real)),Coord::CANVAS),
+ (yyvsp[(4) - (12)].real),(yyvsp[(5) - (12)].real),(yyvsp[(6) - (12)].integer),
+ Vector((yyvsp[(7) - (12)].real),(yyvsp[(8) - (12)].real)),
+ Vector((yyvsp[(9) - (12)].real),(yyvsp[(9) - (12)].real)*(yyvsp[(7) - (12)].real)/(yyvsp[(8) - (12)].real)),(yyvsp[(10) - (12)].integer),
+ (yyvsp[(11) - (12)].real),
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
case 855:
-#line 2167 "parser.Y"
- {(yyval.integer) = Base::SAOIMAGE;;}
+#line 2126 "parser.Y"
+ {fr->createCompositeCmd(
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);;}
break;
- case 856:
-#line 2168 "parser.Y"
- {(yyval.integer) = Base::PROS;;}
+ case 857:
+#line 2134 "parser.Y"
+ {fr->createTemplateCmd(fr->mapToRef(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)),Coord::CANVAS), (yyvsp[(1) - (3)].str));;}
break;
- case 857:
-#line 2169 "parser.Y"
- {(yyval.integer) = Base::RAWXY;;}
+ case 858:
+#line 2136 "parser.Y"
+ {fr->createTemplateVarCmd(fr->mapToRef(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)),Coord::CANVAS), (yyvsp[(2) - (4)].str));;}
break;
case 859:
-#line 2173 "parser.Y"
- {fr->getMarkerColorCmd();;}
+#line 2138 "parser.Y"
+ {
+ // backward compatibility
+ fr->createTemplateVarCmd(fr->mapToRef(Vector((yyvsp[(1) - (4)].real),(yyvsp[(2) - (4)].real)),Coord::CANVAS), (yyvsp[(4) - (4)].str));
+ ;}
break;
case 860:
-#line 2174 "parser.Y"
- {fr->getMarkerFontCmd();;}
+#line 2143 "parser.Y"
+ {fr->createTemplateCmd(Vector((yyvsp[(4) - (4)].vector)),(Coord::CoordSystem)(yyvsp[(2) - (4)].integer),(Coord::SkyFrame)(yyvsp[(3) - (4)].integer), (yyvsp[(1) - (4)].str));;}
break;
case 861:
-#line 2175 "parser.Y"
- {fr->getMarkerHandleCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+#line 2146 "parser.Y"
+ {(yyval.dash)[0] = (yyvsp[(1) - (2)].integer); (yyval.dash)[1] = (yyvsp[(2) - (2)].integer);;}
break;
case 862:
-#line 2176 "parser.Y"
- {fr->getMarkerIdCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
+#line 2150 "parser.Y"
+ {fr->markerEditBeginCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
break;
case 863:
-#line 2177 "parser.Y"
- {fr->getMarkerIdAllCmd();;}
+#line 2152 "parser.Y"
+ {fr->markerEditMotionCmd(Vector((yyvsp[(2) - (4)].real),(yyvsp[(3) - (4)].real)),(yyvsp[(4) - (4)].integer));;}
break;
case 864:
-#line 2178 "parser.Y"
- {fr->getMarkerAngleCmd((yyvsp[(1) - (2)].integer));;}
+#line 2153 "parser.Y"
+ {fr->markerEditEndCmd();;}
break;
case 865:
-#line 2179 "parser.Y"
- {fr->getMarkerAngleCmd((yyvsp[(1) - (3)].integer));;}
+#line 2156 "parser.Y"
+ {(yyval.integer) = Base::DS9;;}
break;
case 866:
-#line 2181 "parser.Y"
- {fr->getMarkerAngleCmd((yyvsp[(1) - (4)].integer),(CoordSystem)(yyvsp[(3) - (4)].integer), (SkyFrame)(yyvsp[(4) - (4)].integer));;}
+#line 2157 "parser.Y"
+ {(yyval.integer) = Base::XML;;}
break;
case 867:
-#line 2183 "parser.Y"
- {fr->getMarkerAnnulusRadiusCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+#line 2158 "parser.Y"
+ {(yyval.integer) = Base::CIAO;;}
break;
case 868:
-#line 2185 "parser.Y"
- {fr->getMarkerAnnulusRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2159 "parser.Y"
+ {(yyval.integer) = Base::SAOTNG;;}
break;
case 869:
-#line 2187 "parser.Y"
- {fr->getMarkerBoxAnnulusRadiusCmd((yyvsp[(1) - (4)].integer),(InternalSystem)(yyvsp[(4) - (4)].integer));;}
+#line 2160 "parser.Y"
+ {(yyval.integer) = Base::SAOIMAGE;;}
break;
case 870:
-#line 2189 "parser.Y"
- {fr->getMarkerBoxAnnulusRadiusCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2161 "parser.Y"
+ {(yyval.integer) = Base::PROS;;}
break;
case 871:
-#line 2191 "parser.Y"
- {fr->getMarkerBoxRadiusCmd((yyvsp[(1) - (4)].integer),(InternalSystem)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 872:
-#line 2193 "parser.Y"
- {fr->getMarkerBoxRadiusCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2162 "parser.Y"
+ {(yyval.integer) = Base::RAWXY;;}
break;
case 873:
-#line 2194 "parser.Y"
- {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (3)].integer));;}
+#line 2166 "parser.Y"
+ {fr->getMarkerColorCmd();;}
break;
case 874:
-#line 2195 "parser.Y"
- {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (4)].integer));;}
+#line 2167 "parser.Y"
+ {fr->getMarkerFontCmd();;}
break;
case 875:
-#line 2197 "parser.Y"
- {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
+#line 2168 "parser.Y"
+ {fr->getMarkerHandleCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
case 876:
-#line 2199 "parser.Y"
- {fr->getMarkerBpandaRadiusCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+#line 2169 "parser.Y"
+ {fr->getMarkerIdCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
case 877:
-#line 2201 "parser.Y"
- {fr->getMarkerBpandaRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2172 "parser.Y"
+ {fr->getMarkerAnalysisPlot2dCmd((yyvsp[(1) - (7)].integer),(yyvsp[(4) - (7)].str),(yyvsp[(5) - (7)].str),(yyvsp[(6) - (7)].str),(yyvsp[(7) - (7)].str));;}
break;
case 878:
-#line 2203 "parser.Y"
- {fr->getMarkerCenterCmd((yyvsp[(1) - (3)].integer), (InternalSystem)(yyvsp[(3) - (3)].integer));;}
+#line 2174 "parser.Y"
+ {fr->getMarkerAnalysisPlot3dCmd((yyvsp[(1) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str));;}
break;
case 879:
-#line 2205 "parser.Y"
- {fr->getMarkerCenterCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(3) - (5)].integer), (SkyFrame)(yyvsp[(4) - (5)].integer),
- (SkyFormat)(yyvsp[(5) - (5)].integer));;}
+#line 2175 "parser.Y"
+ {fr->getMarkerAnalysisParamCmd((yyvsp[(1) - (3)].integer));;}
break;
case 880:
-#line 2208 "parser.Y"
- {fr->getMarkerCircleRadiusCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+#line 2176 "parser.Y"
+ {fr->getMarkerAnalysisSystemCmd((yyvsp[(1) - (3)].integer));;}
break;
case 881:
-#line 2210 "parser.Y"
- {fr->getMarkerCircleRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2178 "parser.Y"
+ {fr->getMarkerIdAllCmd();;}
break;
case 882:
-#line 2211 "parser.Y"
- {fr->getMarkerColorCmd((yyvsp[(1) - (2)].integer));;}
+#line 2179 "parser.Y"
+ {fr->getMarkerAngleCmd((yyvsp[(1) - (2)].integer));;}
break;
case 883:
-#line 2212 "parser.Y"
- {fr->getMarkerCompassArrowCmd((yyvsp[(1) - (3)].integer));;}
+#line 2180 "parser.Y"
+ {fr->getMarkerAngleCmd((yyvsp[(1) - (3)].integer));;}
break;
case 884:
-#line 2213 "parser.Y"
- {fr->getMarkerCompassLabelCmd((yyvsp[(1) - (3)].integer));;}
+#line 2182 "parser.Y"
+ {fr->getMarkerAngleCmd((yyvsp[(1) - (4)].integer),(Coord::CoordSystem)(yyvsp[(3) - (4)].integer), (Coord::SkyFrame)(yyvsp[(4) - (4)].integer));;}
break;
case 885:
-#line 2215 "parser.Y"
- {fr->getMarkerCompassRadiusCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+#line 2184 "parser.Y"
+ {fr->getMarkerAnnulusRadiusCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
break;
case 886:
-#line 2217 "parser.Y"
- {fr->getMarkerCompassRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2186 "parser.Y"
+ {fr->getMarkerAnnulusRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
break;
case 887:
-#line 2218 "parser.Y"
- {fr->getMarkerCompassSystemCmd((yyvsp[(1) - (3)].integer));;}
+#line 2189 "parser.Y"
+ {fr->getMarkerBoxAnnulusRadiusCmd((yyvsp[(1) - (4)].integer),(Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
break;
case 888:
-#line 2219 "parser.Y"
- {fr->getMarkerCompositeCmd((yyvsp[(1) - (3)].integer));;}
+#line 2191 "parser.Y"
+ {fr->getMarkerBoxAnnulusRadiusCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer),(Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
break;
case 889:
-#line 2220 "parser.Y"
- {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (3)].integer));;}
+#line 2193 "parser.Y"
+ {fr->getMarkerBoxRadiusCmd((yyvsp[(1) - (4)].integer),(Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
break;
case 890:
-#line 2221 "parser.Y"
- {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (4)].integer));;}
+#line 2195 "parser.Y"
+ {fr->getMarkerBoxRadiusCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
break;
case 891:
-#line 2223 "parser.Y"
- {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
+#line 2196 "parser.Y"
+ {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (3)].integer));;}
break;
case 892:
-#line 2225 "parser.Y"
- {fr->getMarkerCpandaRadiusCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+#line 2197 "parser.Y"
+ {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (4)].integer));;}
break;
case 893:
-#line 2227 "parser.Y"
- {fr->getMarkerCpandaRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2199 "parser.Y"
+ {fr->getMarkerBpandaAnglesCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;}
break;
case 894:
-#line 2229 "parser.Y"
- {fr->getMarkerEllipseRadiusCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+#line 2201 "parser.Y"
+ {fr->getMarkerBpandaRadiusCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
break;
case 895:
-#line 2231 "parser.Y"
- {fr->getMarkerEllipseRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2203 "parser.Y"
+ {fr->getMarkerBpandaRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
break;
case 896:
-#line 2233 "parser.Y"
- {fr->getMarkerEllipseAnnulusRadiusCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+#line 2206 "parser.Y"
+ {fr->getMarkerCenterCmd((yyvsp[(1) - (3)].integer), (Coord::InternalSystem)(yyvsp[(3) - (3)].integer));;}
break;
case 897:
-#line 2235 "parser.Y"
- {fr->getMarkerEllipseAnnulusRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer),
- (SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2208 "parser.Y"
+ {fr->getMarkerCenterCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(3) - (5)].integer), (Coord::SkyFrame)(yyvsp[(4) - (5)].integer),
+ (Coord::SkyFormat)(yyvsp[(5) - (5)].integer));;}
break;
case 898:
-#line 2237 "parser.Y"
- {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (3)].integer));;}
+#line 2211 "parser.Y"
+ {fr->getMarkerCircleRadiusCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
break;
case 899:
-#line 2238 "parser.Y"
- {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (4)].integer));;}
+#line 2213 "parser.Y"
+ {fr->getMarkerCircleRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
break;
case 900:
-#line 2240 "parser.Y"
- {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyFrame)(yyvsp[(5) - (5)].integer));;}
+#line 2214 "parser.Y"
+ {fr->getMarkerColorCmd((yyvsp[(1) - (2)].integer));;}
break;
case 901:
-#line 2242 "parser.Y"
- {fr->getMarkerEpandaRadiusCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+#line 2215 "parser.Y"
+ {fr->getMarkerCompassArrowCmd((yyvsp[(1) - (3)].integer));;}
break;
case 902:
-#line 2244 "parser.Y"
- {fr->getMarkerEpandaRadiusCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2216 "parser.Y"
+ {fr->getMarkerCompassLabelCmd((yyvsp[(1) - (3)].integer));;}
break;
case 903:
-#line 2245 "parser.Y"
- {fr->getMarkerFontCmd((yyvsp[(1) - (2)].integer));;}
+#line 2218 "parser.Y"
+ {fr->getMarkerCompassRadiusCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
break;
case 904:
-#line 2246 "parser.Y"
- {fr->getMarkerHighlitedCmd((yyvsp[(1) - (2)].integer));;}
+#line 2220 "parser.Y"
+ {fr->getMarkerCompassRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
break;
case 905:
-#line 2247 "parser.Y"
- {fr->getMarkerLineArrowCmd((yyvsp[(1) - (3)].integer));;}
+#line 2221 "parser.Y"
+ {fr->getMarkerCompassSystemCmd((yyvsp[(1) - (3)].integer));;}
break;
case 906:
-#line 2249 "parser.Y"
- {fr->getMarkerLineLengthCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+#line 2222 "parser.Y"
+ {fr->getMarkerCompositeCmd((yyvsp[(1) - (3)].integer));;}
break;
case 907:
-#line 2251 "parser.Y"
- {fr->getMarkerLineCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+#line 2223 "parser.Y"
+ {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (3)].integer));;}
break;
case 908:
-#line 2253 "parser.Y"
- {fr->getMarkerLineCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
- (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+#line 2224 "parser.Y"
+ {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (4)].integer));;}
break;
case 909:
-#line 2256 "parser.Y"
- {fr->getMarkerMapLenFromRefCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real),
- (CoordSystem)(yyvsp[(5) - (6)].integer),(SkyDist)(yyvsp[(6) - (6)].integer));;}
+#line 2226 "parser.Y"
+ {fr->getMarkerCpandaAnglesCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;}
break;
case 910:
-#line 2258 "parser.Y"
- {fr->getMarkerPointSizeCmd((yyvsp[(1) - (3)].integer));;}
+#line 2228 "parser.Y"
+ {fr->getMarkerCpandaRadiusCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 911:
+#line 2230 "parser.Y"
+ {fr->getMarkerCpandaRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 912:
+#line 2232 "parser.Y"
+ {fr->getMarkerEllipseRadiusCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 913:
+#line 2234 "parser.Y"
+ {fr->getMarkerEllipseRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 914:
+#line 2236 "parser.Y"
+ {fr->getMarkerEllipseAnnulusRadiusCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 915:
+#line 2238 "parser.Y"
+ {fr->getMarkerEllipseAnnulusRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer),
+ (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 916:
+#line 2240 "parser.Y"
+ {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 917:
+#line 2241 "parser.Y"
+ {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (4)].integer));;}
+ break;
+
+ case 918:
+#line 2243 "parser.Y"
+ {fr->getMarkerEpandaAnglesCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyFrame)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 919:
+#line 2245 "parser.Y"
+ {fr->getMarkerEpandaRadiusCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 920:
+#line 2247 "parser.Y"
+ {fr->getMarkerEpandaRadiusCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 921:
+#line 2248 "parser.Y"
+ {fr->getMarkerFontCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 922:
+#line 2249 "parser.Y"
+ {fr->getMarkerHighlitedCmd((yyvsp[(1) - (2)].integer));;}
+ break;
+
+ case 923:
+#line 2250 "parser.Y"
+ {fr->getMarkerLineArrowCmd((yyvsp[(1) - (3)].integer));;}
+ break;
+
+ case 924:
+#line 2252 "parser.Y"
+ {fr->getMarkerLineLengthCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
+ break;
+
+ case 925:
+#line 2254 "parser.Y"
+ {fr->getMarkerLineCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
+ break;
+
+ case 926:
+#line 2256 "parser.Y"
+ {fr->getMarkerLineCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer),
+ (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;}
break;
- case 911:
-#line 2260 "parser.Y"
- {fr->getMarkerProjectionCmd((yyvsp[(1) - (6)].integer),(yyvsp[(3) - (6)].str),(yyvsp[(4) - (6)].str),(yyvsp[(5) - (6)].str),(yyvsp[(6) - (6)].str));;}
+ case 927:
+#line 2259 "parser.Y"
+ {fr->getMarkerMapLenFromRefCmd((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].real),
+ (Coord::CoordSystem)(yyvsp[(5) - (6)].integer),(Coord::SkyDist)(yyvsp[(6) - (6)].integer));;}
break;
- case 912:
+ case 928:
#line 2262 "parser.Y"
- {fr->getMarkerProjectionPointsCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+ {fr->getMarkerPointShapeCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 913:
-#line 2264 "parser.Y"
- {fr->getMarkerProjectionPointsCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
- (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ case 929:
+#line 2263 "parser.Y"
+ {fr->getMarkerPointSizeCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 914:
-#line 2267 "parser.Y"
- {fr->getMarkerProjectionLengthCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer),
- (SkyDist)(yyvsp[(5) - (5)].integer));;}
+ case 930:
+#line 2265 "parser.Y"
+ {fr->getMarkerProjectionPointsCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
break;
- case 915:
-#line 2269 "parser.Y"
- {fr->getMarkerProjectionMethodCmd((yyvsp[(1) - (3)].integer));;}
+ case 931:
+#line 2267 "parser.Y"
+ {fr->getMarkerProjectionPointsCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer),
+ (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;}
break;
- case 916:
-#line 2271 "parser.Y"
- {fr->getMarkerProjectionWidthCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+ case 932:
+#line 2270 "parser.Y"
+ {fr->getMarkerProjectionLengthCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer),
+ (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
break;
- case 917:
+ case 933:
#line 2273 "parser.Y"
- {fr->getMarkerProjectionWidthCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyDist)(yyvsp[(5) - (5)].integer));;}
+ {fr->getMarkerProjectionWidthCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
break;
- case 918:
-#line 2274 "parser.Y"
- {fr->getMarkerProjectionSystemCmd((yyvsp[(1) - (3)].integer));;}
+ case 934:
+#line 2275 "parser.Y"
+ {fr->getMarkerProjectionWidthCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer),(Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
break;
- case 919:
+ case 935:
#line 2276 "parser.Y"
- {fr->getMarkerCircle3dCmd((yyvsp[(1) - (5)].integer),(yyvsp[(3) - (5)].str),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str));;}
+ {fr->getMarkerPropertyCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 920:
+ case 936:
#line 2277 "parser.Y"
- {fr->getMarkerCircle3dMethodCmd((yyvsp[(1) - (3)].integer));;}
+ {fr->getMarkerPropertyCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
break;
- case 921:
+ case 937:
#line 2279 "parser.Y"
- {fr->getMarkerCircle3dRadiusCmd((yyvsp[(1) - (5)].integer),
- (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+ {fr->getMarkerRulerLengthCmd((yyvsp[(1) - (5)].integer),(Coord::CoordSystem)(yyvsp[(4) - (5)].integer),(Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
break;
- case 922:
+ case 938:
#line 2281 "parser.Y"
- {fr->getMarkerCircle3dSystemCmd((yyvsp[(1) - (3)].integer));;}
- break;
-
- case 923:
-#line 2282 "parser.Y"
- {fr->getMarkerPropertyCmd((yyvsp[(1) - (2)].integer));;}
+ {fr->getMarkerRulerPointCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
break;
- case 924:
+ case 939:
#line 2283 "parser.Y"
- {fr->getMarkerPropertyCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
+ {fr->getMarkerRulerPointCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer),
+ (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;}
break;
- case 925:
+ case 940:
#line 2285 "parser.Y"
- {fr->getMarkerRulerLengthCmd((yyvsp[(1) - (5)].integer),(CoordSystem)(yyvsp[(4) - (5)].integer),(SkyDist)(yyvsp[(5) - (5)].integer));;}
- break;
-
- case 926:
-#line 2287 "parser.Y"
- {fr->getMarkerRulerPointCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
- break;
-
- case 927:
-#line 2289 "parser.Y"
- {fr->getMarkerRulerPointCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
- (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
- break;
-
- case 928:
-#line 2291 "parser.Y"
{fr->getMarkerRulerSystemCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 929:
-#line 2292 "parser.Y"
+ case 941:
+#line 2286 "parser.Y"
{fr->getMarkerSelectedCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 930:
-#line 2293 "parser.Y"
+ case 942:
+#line 2288 "parser.Y"
{fr->getMarkerTagCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 931:
-#line 2294 "parser.Y"
+ case 943:
+#line 2289 "parser.Y"
{fr->getMarkerTagCmd((yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
break;
- case 932:
-#line 2295 "parser.Y"
+ case 944:
+#line 2290 "parser.Y"
{fr->getMarkerTextCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 933:
-#line 2296 "parser.Y"
+ case 945:
+#line 2291 "parser.Y"
{fr->getMarkerTextRotateCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 934:
-#line 2297 "parser.Y"
+ case 946:
+#line 2292 "parser.Y"
{fr->getMarkerTypeCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 935:
-#line 2298 "parser.Y"
+ case 947:
+#line 2294 "parser.Y"
{fr->getMarkerVectorArrowCmd((yyvsp[(1) - (3)].integer));;}
break;
- case 936:
-#line 2300 "parser.Y"
- {fr->getMarkerVectorLengthCmd((yyvsp[(1) - (5)].integer), (CoordSystem)(yyvsp[(4) - (5)].integer), (SkyDist)(yyvsp[(5) - (5)].integer));;}
+ case 948:
+#line 2296 "parser.Y"
+ {fr->getMarkerVectorLengthCmd((yyvsp[(1) - (5)].integer), (Coord::CoordSystem)(yyvsp[(4) - (5)].integer), (Coord::SkyDist)(yyvsp[(5) - (5)].integer));;}
break;
- case 937:
-#line 2302 "parser.Y"
- {fr->getMarkerVectorCmd((yyvsp[(1) - (4)].integer), (InternalSystem)(yyvsp[(4) - (4)].integer));;}
+ case 949:
+#line 2298 "parser.Y"
+ {fr->getMarkerVectorCmd((yyvsp[(1) - (4)].integer), (Coord::InternalSystem)(yyvsp[(4) - (4)].integer));;}
break;
- case 938:
-#line 2304 "parser.Y"
- {fr->getMarkerVectorCmd((yyvsp[(1) - (6)].integer), (CoordSystem)(yyvsp[(4) - (6)].integer),
- (SkyFrame)(yyvsp[(5) - (6)].integer), (SkyFormat)(yyvsp[(6) - (6)].integer));;}
+ case 950:
+#line 2300 "parser.Y"
+ {fr->getMarkerVectorCmd((yyvsp[(1) - (6)].integer), (Coord::CoordSystem)(yyvsp[(4) - (6)].integer),
+ (Coord::SkyFrame)(yyvsp[(5) - (6)].integer), (Coord::SkyFormat)(yyvsp[(6) - (6)].integer));;}
break;
- case 939:
-#line 2306 "parser.Y"
+ case 951:
+#line 2302 "parser.Y"
{fr->getMarkerLineWidthCmd((yyvsp[(1) - (2)].integer));;}
break;
- case 941:
-#line 2308 "parser.Y"
+ case 953:
+#line 2304 "parser.Y"
{fr->getMarkerHighlitedNumberCmd();;}
break;
- case 942:
-#line 2309 "parser.Y"
+ case 954:
+#line 2305 "parser.Y"
{fr->getMarkerNumberCmd();;}
break;
- case 943:
-#line 2311 "parser.Y"
+ case 955:
+#line 2307 "parser.Y"
{fr->getMarkerPolygonSegmentCmd(Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
break;
- case 944:
-#line 2312 "parser.Y"
+ case 956:
+#line 2308 "parser.Y"
{fr->getMarkerPreserveCmd();;}
break;
- case 945:
-#line 2313 "parser.Y"
+ case 957:
+#line 2309 "parser.Y"
{fr->getMarkerPropertyCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 947:
-#line 2315 "parser.Y"
+ case 959:
+#line 2311 "parser.Y"
{fr->getMarkerSelectedNumberCmd();;}
break;
- case 949:
-#line 2319 "parser.Y"
+ case 961:
+#line 2315 "parser.Y"
{fr->getMarkerColorCmd((yyvsp[(1) - (2)].str));;}
break;
- case 950:
-#line 2320 "parser.Y"
+ case 962:
+#line 2316 "parser.Y"
{fr->getMarkerFontCmd((yyvsp[(1) - (2)].str));;}
break;
- case 951:
-#line 2321 "parser.Y"
+ case 963:
+#line 2317 "parser.Y"
{fr->getMarkerIdCmd((yyvsp[(1) - (2)].str));;}
break;
- case 952:
-#line 2322 "parser.Y"
+ case 964:
+#line 2318 "parser.Y"
{fr->getMarkerPropertyCmd((yyvsp[(1) - (3)].str),(yyvsp[(3) - (3)].integer));;}
break;
- case 953:
-#line 2323 "parser.Y"
+ case 965:
+#line 2319 "parser.Y"
{fr->getMarkerTagCmd((yyvsp[(1) - (2)].str));;}
break;
- case 954:
-#line 2324 "parser.Y"
+ case 966:
+#line 2320 "parser.Y"
{fr->getMarkerTagNumberCmd((yyvsp[(1) - (3)].str));;}
break;
- case 955:
-#line 2326 "parser.Y"
+ case 967:
+#line 2322 "parser.Y"
{fr->getMarkerTagsCmd();;}
break;
- case 956:
-#line 2327 "parser.Y"
+ case 968:
+#line 2323 "parser.Y"
{fr->getMarkerTagDefaultNameCmd();;}
break;
- case 957:
-#line 2329 "parser.Y"
+ case 969:
+#line 2325 "parser.Y"
{fr->getMarkerLineWidthCmd();;}
break;
- case 958:
-#line 2332 "parser.Y"
+ case 970:
+#line 2328 "parser.Y"
{fr->getMarkerCentroidAutoCmd();;}
break;
- case 959:
-#line 2333 "parser.Y"
+ case 971:
+#line 2329 "parser.Y"
{fr->getMarkerCentroidRadiusCmd();;}
break;
- case 960:
-#line 2334 "parser.Y"
+ case 972:
+#line 2330 "parser.Y"
{fr->getMarkerCentroidIterationCmd();;}
break;
- case 961:
-#line 2335 "parser.Y"
+ case 973:
+#line 2331 "parser.Y"
{fr->getMarkerCentroidOptionCmd();;}
break;
- case 962:
-#line 2338 "parser.Y"
+ case 974:
+#line 2334 "parser.Y"
{fr->getMarkerHighlitedCmd();;}
break;
- case 963:
-#line 2339 "parser.Y"
+ case 975:
+#line 2335 "parser.Y"
{fr->getMarkerHighlitedCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 964:
-#line 2342 "parser.Y"
+ case 976:
+#line 2338 "parser.Y"
{fr->getMarkerSelectedCmd();;}
break;
- case 965:
-#line 2343 "parser.Y"
+ case 977:
+#line 2339 "parser.Y"
{fr->getMarkerSelectedCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 966:
-#line 2346 "parser.Y"
+ case 978:
+#line 2342 "parser.Y"
{fr->getMarkerShowCmd();;}
break;
- case 967:
-#line 2347 "parser.Y"
+ case 979:
+#line 2343 "parser.Y"
{fr->getMarkerShowTextCmd();;}
break;
- case 968:
-#line 2350 "parser.Y"
+ case 980:
+#line 2346 "parser.Y"
{
strncpy(currentFont, "helvetica 10 normal roman", 32);
strncpy(currentColor, "green", 16);
@@ -9434,709 +9469,714 @@ yyreduce:
;}
break;
- case 969:
-#line 2363 "parser.Y"
+ case 981:
+#line 2359 "parser.Y"
{fr->markerLayerCmd(Base::USER);;}
break;
- case 970:
-#line 2364 "parser.Y"
+ case 982:
+#line 2360 "parser.Y"
{fr->markerLayerCmd(Base::USER);;}
break;
- case 971:
-#line 2365 "parser.Y"
+ case 983:
+#line 2361 "parser.Y"
{fr->markerLayerCmd(Base::USER);;}
break;
- case 972:
-#line 2366 "parser.Y"
+ case 984:
+#line 2362 "parser.Y"
{fr->markerLayerCmd(Base::CATALOG);;}
break;
- case 973:
-#line 2371 "parser.Y"
+ case 985:
+#line 2367 "parser.Y"
{fr->markerListCmd((Base::MarkerFormat)(yyvsp[(1) - (7)].integer),
- (CoordSystem)(yyvsp[(2) - (7)].integer), (SkyFrame)(yyvsp[(3) - (7)].integer), (SkyFormat)(yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer),
+ (Coord::CoordSystem)(yyvsp[(2) - (7)].integer), (Coord::SkyFrame)(yyvsp[(3) - (7)].integer), (Coord::SkyFormat)(yyvsp[(4) - (7)].integer), (yyvsp[(5) - (7)].integer),
0, propQMask, propQValue, taglist);;}
break;
- case 974:
-#line 2376 "parser.Y"
+ case 986:
+#line 2372 "parser.Y"
{fr->markerListCmd((Base::MarkerFormat)(yyvsp[(2) - (8)].integer),
- (CoordSystem)(yyvsp[(3) - (8)].integer), (SkyFrame)(yyvsp[(4) - (8)].integer), (SkyFormat)(yyvsp[(5) - (8)].integer), (yyvsp[(6) - (8)].integer),
+ (Coord::CoordSystem)(yyvsp[(3) - (8)].integer), (Coord::SkyFrame)(yyvsp[(4) - (8)].integer), (Coord::SkyFormat)(yyvsp[(5) - (8)].integer), (yyvsp[(6) - (8)].integer),
1, propQMask, propQValue, taglist);;}
break;
- case 975:
-#line 2382 "parser.Y"
+ case 987:
+#line 2378 "parser.Y"
{fr->markerLoadCmd((Base::MarkerFormat)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].str));;}
break;
- case 976:
-#line 2384 "parser.Y"
+ case 988:
+#line 2380 "parser.Y"
{fr->markerLoadCmd((Base::MarkerFormat)(yyvsp[(1) - (4)].integer),(yyvsp[(2) - (4)].str),
- (CoordSystem)(yyvsp[(3) - (4)].integer),(SkyFrame)(yyvsp[(4) - (4)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(3) - (4)].integer),(Coord::SkyFrame)(yyvsp[(4) - (4)].integer));;}
break;
- case 977:
-#line 2387 "parser.Y"
+ case 989:
+#line 2383 "parser.Y"
{fr->markerLoadCmd((Base::MarkerFormat)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;}
break;
- case 978:
-#line 2389 "parser.Y"
+ case 990:
+#line 2385 "parser.Y"
{fr->markerLoadCmd((Base::MarkerFormat)(yyvsp[(1) - (4)].integer),(yyvsp[(2) - (4)].integer),
- (CoordSystem)(yyvsp[(3) - (4)].integer),(SkyFrame)(yyvsp[(4) - (4)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(3) - (4)].integer),(Coord::SkyFrame)(yyvsp[(4) - (4)].integer));;}
break;
- case 979:
-#line 2392 "parser.Y"
+ case 991:
+#line 2388 "parser.Y"
{fr->markerLoadFitsCmd((yyvsp[(2) - (6)].str), (yyvsp[(3) - (6)].str), (yyvsp[(4) - (6)].dash), (yyvsp[(5) - (6)].integer), (yyvsp[(6) - (6)].str));;}
break;
- case 980:
-#line 2395 "parser.Y"
+ case 992:
+#line 2391 "parser.Y"
{fr->markerMoveCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 981:
-#line 2396 "parser.Y"
+ case 993:
+#line 2392 "parser.Y"
{fr->markerFrontCmd();;}
break;
- case 982:
-#line 2397 "parser.Y"
+ case 994:
+#line 2393 "parser.Y"
{fr->markerBackCmd();;}
break;
- case 983:
-#line 2398 "parser.Y"
+ case 995:
+#line 2394 "parser.Y"
{fr->markerMoveBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 984:
-#line 2399 "parser.Y"
+ case 996:
+#line 2395 "parser.Y"
{fr->markerMoveMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 985:
-#line 2400 "parser.Y"
+ case 997:
+#line 2396 "parser.Y"
{fr->markerMoveEndCmd();;}
break;
- case 986:
-#line 2402 "parser.Y"
- {fr->markerMoveToCmd(Vector((yyvsp[(3) - (3)].vector)), (InternalSystem)(yyvsp[(2) - (3)].integer));;}
+ case 998:
+#line 2398 "parser.Y"
+ {fr->markerMoveToCmd(Vector((yyvsp[(3) - (3)].vector)), (Coord::InternalSystem)(yyvsp[(2) - (3)].integer));;}
break;
- case 987:
-#line 2404 "parser.Y"
- {fr->markerMoveToCmd(Vector((yyvsp[(4) - (4)].vector)), (CoordSystem)(yyvsp[(2) - (4)].integer), (SkyFrame)(yyvsp[(3) - (4)].integer));;}
+ case 999:
+#line 2400 "parser.Y"
+ {fr->markerMoveToCmd(Vector((yyvsp[(4) - (4)].vector)), (Coord::CoordSystem)(yyvsp[(2) - (4)].integer), (Coord::SkyFrame)(yyvsp[(3) - (4)].integer));;}
break;
- case 990:
-#line 2411 "parser.Y"
+ case 1002:
+#line 2407 "parser.Y"
{setProps(¤tProps,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
break;
- case 991:
-#line 2412 "parser.Y"
+ case 1003:
+#line 2408 "parser.Y"
{strncpy(currentColor,(yyvsp[(3) - (3)].str),16);;}
break;
- case 992:
-#line 2413 "parser.Y"
+ case 1004:
+#line 2409 "parser.Y"
{currentDash[0]=(yyvsp[(3) - (4)].integer);currentDash[1]=(yyvsp[(4) - (4)].integer);;}
break;
- case 993:
-#line 2414 "parser.Y"
+ case 1005:
+#line 2410 "parser.Y"
{currentWidth = (yyvsp[(3) - (3)].integer);;}
break;
- case 994:
-#line 2415 "parser.Y"
+ case 1006:
+#line 2411 "parser.Y"
{strncpy(currentFont,(yyvsp[(3) - (3)].str),32);;}
break;
- case 995:
-#line 2416 "parser.Y"
+ case 1007:
+#line 2412 "parser.Y"
{strncpy(currentText,(yyvsp[(3) - (3)].str),80);;}
break;
- case 998:
-#line 2421 "parser.Y"
+ case 1010:
+#line 2417 "parser.Y"
{(yyval.integer) = Marker::NONE;;}
break;
- case 999:
-#line 2422 "parser.Y"
+ case 1011:
+#line 2418 "parser.Y"
{(yyval.integer) = Marker::SELECT;;}
break;
- case 1000:
-#line 2423 "parser.Y"
+ case 1012:
+#line 2419 "parser.Y"
{(yyval.integer) = Marker::HIGHLITE;;}
break;
- case 1001:
-#line 2424 "parser.Y"
+ case 1013:
+#line 2420 "parser.Y"
{(yyval.integer) = Marker::DASH;;}
break;
- case 1002:
-#line 2425 "parser.Y"
+ case 1014:
+#line 2421 "parser.Y"
{(yyval.integer) = Marker::FIXED;;}
break;
- case 1003:
-#line 2426 "parser.Y"
+ case 1015:
+#line 2422 "parser.Y"
{(yyval.integer) = Marker::EDIT;;}
break;
- case 1004:
-#line 2427 "parser.Y"
+ case 1016:
+#line 2423 "parser.Y"
{(yyval.integer) = Marker::MOVE;;}
break;
- case 1005:
-#line 2428 "parser.Y"
+ case 1017:
+#line 2424 "parser.Y"
{(yyval.integer) = Marker::ROTATE;;}
break;
- case 1006:
-#line 2429 "parser.Y"
+ case 1018:
+#line 2425 "parser.Y"
{(yyval.integer) = Marker::DELETE;;}
break;
- case 1007:
-#line 2430 "parser.Y"
+ case 1019:
+#line 2426 "parser.Y"
{(yyval.integer) = Marker::INCLUDE;;}
break;
- case 1008:
-#line 2431 "parser.Y"
+ case 1020:
+#line 2427 "parser.Y"
{(yyval.integer) = Marker::SOURCE;;}
break;
- case 1011:
-#line 2438 "parser.Y"
+ case 1023:
+#line 2434 "parser.Y"
{propQMask=0;propQValue=0;;}
break;
- case 1012:
-#line 2439 "parser.Y"
+ case 1024:
+#line 2435 "parser.Y"
{propQMask=0;propQValue=0;;}
break;
- case 1014:
-#line 2442 "parser.Y"
+ case 1026:
+#line 2438 "parser.Y"
{fr->markerSelectAllCmd();;}
break;
- case 1015:
-#line 2443 "parser.Y"
+ case 1027:
+#line 2439 "parser.Y"
{fr->markerSelectOnlyCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 1016:
-#line 2444 "parser.Y"
+ case 1028:
+#line 2440 "parser.Y"
{fr->markerSelectToggleCmd();;}
break;
- case 1017:
-#line 2445 "parser.Y"
+ case 1029:
+#line 2441 "parser.Y"
{fr->markerSelectToggleCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 1018:
-#line 2448 "parser.Y"
+ case 1030:
+#line 2444 "parser.Y"
{fr->markerShowCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 1019:
-#line 2449 "parser.Y"
+ case 1031:
+#line 2445 "parser.Y"
{fr->markerShowTextCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 1022:
-#line 2457 "parser.Y"
+ case 1034:
+#line 2453 "parser.Y"
{propQMask |= (yyvsp[(1) - (3)].integer); setProps(&propQValue,(yyvsp[(1) - (3)].integer),(yyvsp[(3) - (3)].integer));;}
break;
- case 1023:
-#line 2460 "parser.Y"
+ case 1035:
+#line 2456 "parser.Y"
{taglist.deleteAll();}
break;
- case 1024:
-#line 2461 "parser.Y"
+ case 1036:
+#line 2457 "parser.Y"
{taglist.deleteAll();}
break;
- case 1028:
-#line 2468 "parser.Y"
+ case 1040:
+#line 2464 "parser.Y"
{taglist.append(new Tag((yyvsp[(3) - (3)].str)));;}
break;
- case 1029:
-#line 2471 "parser.Y"
+ case 1041:
+#line 2467 "parser.Y"
{cblist.append(
new CallBack(fr->getInterp(),(CallBack::Type)(yyvsp[(3) - (5)].integer),(yyvsp[(4) - (5)].str),(yyvsp[(5) - (5)].str)));;}
break;
- case 1030:
-#line 2475 "parser.Y"
+ case 1042:
+#line 2471 "parser.Y"
{fr->maskClearCmd();;}
break;
- case 1031:
-#line 2476 "parser.Y"
+ case 1043:
+#line 2472 "parser.Y"
{fr->maskColorCmd((yyvsp[(2) - (2)].str));;}
break;
- case 1032:
-#line 2477 "parser.Y"
+ case 1044:
+#line 2473 "parser.Y"
{fr->maskMarkCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 1033:
-#line 2478 "parser.Y"
+ case 1045:
+#line 2474 "parser.Y"
{fr->maskTransparencyCmd((yyvsp[(2) - (2)].real));;}
break;
- case 1034:
-#line 2481 "parser.Y"
- {fr->orientCmd(XX);;}
+ case 1046:
+#line 2477 "parser.Y"
+ {fr->orientCmd(Coord::XX);;}
break;
- case 1035:
-#line 2482 "parser.Y"
- {fr->orientCmd(YY);;}
+ case 1047:
+#line 2478 "parser.Y"
+ {fr->orientCmd(Coord::YY);;}
break;
- case 1036:
-#line 2483 "parser.Y"
- {fr->orientCmd(XY);;}
+ case 1048:
+#line 2479 "parser.Y"
+ {fr->orientCmd(Coord::XY);;}
break;
- case 1037:
-#line 2484 "parser.Y"
- {fr->orientCmd(NORMAL);;}
+ case 1049:
+#line 2480 "parser.Y"
+ {fr->orientCmd(Coord::NORMAL);;}
break;
- case 1038:
-#line 2488 "parser.Y"
+ case 1050:
+#line 2484 "parser.Y"
{fr->panCmd(Vector((yyvsp[(1) - (4)].real),(yyvsp[(2) - (4)].real)),Vector((yyvsp[(3) - (4)].real),(yyvsp[(4) - (4)].real)));;}
break;
- case 1039:
-#line 2489 "parser.Y"
+ case 1051:
+#line 2485 "parser.Y"
{fr->panCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 1040:
-#line 2491 "parser.Y"
+ case 1052:
+#line 2487 "parser.Y"
{
// backward compatibility
fr->panCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));
;}
break;
- case 1041:
-#line 2496 "parser.Y"
- {fr->panCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer));;}
+ case 1053:
+#line 2492 "parser.Y"
+ {fr->panCmd(Vector((yyvsp[(3) - (3)].vector)), (Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer));;}
break;
- case 1043:
-#line 2498 "parser.Y"
+ case 1055:
+#line 2494 "parser.Y"
{fr->panBBoxCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 1045:
-#line 2500 "parser.Y"
+ case 1057:
+#line 2496 "parser.Y"
{fr->panPreserveCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 1046:
-#line 2503 "parser.Y"
+ case 1058:
+#line 2499 "parser.Y"
{fr->panToCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 1047:
-#line 2505 "parser.Y"
+ case 1059:
+#line 2501 "parser.Y"
{
// backward compatibility
fr->panToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));
;}
break;
- case 1048:
-#line 2510 "parser.Y"
- {fr->panToCmd(Vector((yyvsp[(3) - (3)].vector)), (CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer));;}
+ case 1060:
+#line 2506 "parser.Y"
+ {fr->panToCmd(Vector((yyvsp[(3) - (3)].vector)), (Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer));;}
break;
- case 1049:
-#line 2513 "parser.Y"
+ case 1061:
+#line 2509 "parser.Y"
{fr->panBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 1050:
-#line 2514 "parser.Y"
+ case 1062:
+#line 2510 "parser.Y"
{fr->panMotionCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 1051:
-#line 2515 "parser.Y"
+ case 1063:
+#line 2511 "parser.Y"
{fr->panEndCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 1052:
-#line 2518 "parser.Y"
+ case 1064:
+#line 2514 "parser.Y"
{fr->pannerCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 1053:
-#line 2520 "parser.Y"
- {fr->pannerCmd((CoordSystem)(yyvsp[(2) - (3)].integer),(SkyFrame)(yyvsp[(3) - (3)].integer));;}
+ case 1065:
+#line 2516 "parser.Y"
+ {fr->pannerCmd((Coord::CoordSystem)(yyvsp[(2) - (3)].integer),(Coord::SkyFrame)(yyvsp[(3) - (3)].integer));;}
break;
- case 1054:
-#line 2521 "parser.Y"
+ case 1066:
+#line 2517 "parser.Y"
{fr->pannerCmd((yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
break;
- case 1055:
-#line 2522 "parser.Y"
+ case 1067:
+#line 2518 "parser.Y"
{fr->updatePannerCmd();;}
break;
- case 1056:
-#line 2526 "parser.Y"
+ case 1068:
+#line 2522 "parser.Y"
{fr->psColorSpaceCmd((Widget::PSColorSpace)(yyvsp[(2) - (2)].integer));;}
break;
- case 1057:
-#line 2527 "parser.Y"
+ case 1069:
+#line 2523 "parser.Y"
{fr->psLevelCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 1058:
-#line 2528 "parser.Y"
+ case 1070:
+#line 2524 "parser.Y"
{fr->psResolutionCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 1059:
-#line 2529 "parser.Y"
+ case 1071:
+#line 2525 "parser.Y"
{fr->psScaleCmd((yyvsp[(2) - (2)].real));;}
break;
- case 1060:
-#line 2532 "parser.Y"
+ case 1072:
+#line 2528 "parser.Y"
{(yyval.integer) = Widget::BW;;}
break;
- case 1061:
-#line 2533 "parser.Y"
+ case 1073:
+#line 2529 "parser.Y"
{(yyval.integer) = Widget::GRAY;;}
break;
- case 1062:
-#line 2534 "parser.Y"
+ case 1074:
+#line 2530 "parser.Y"
{(yyval.integer) = Widget::RGB;;}
break;
- case 1063:
-#line 2535 "parser.Y"
+ case 1075:
+#line 2531 "parser.Y"
{(yyval.integer) = Widget::CMYK;;}
break;
- case 1066:
-#line 2543 "parser.Y"
+ case 1078:
+#line 2539 "parser.Y"
{fr->regionHighliteBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 1067:
-#line 2545 "parser.Y"
+ case 1079:
+#line 2541 "parser.Y"
{fr->regionHighliteMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 1068:
-#line 2546 "parser.Y"
+ case 1080:
+#line 2542 "parser.Y"
{fr->regionHighliteEndCmd();;}
break;
- case 1069:
-#line 2547 "parser.Y"
+ case 1081:
+#line 2543 "parser.Y"
{fr->regionHighliteShiftEndCmd();;}
break;
- case 1070:
-#line 2551 "parser.Y"
+ case 1082:
+#line 2547 "parser.Y"
{fr->regionSelectBeginCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 1071:
-#line 2552 "parser.Y"
+ case 1083:
+#line 2548 "parser.Y"
{fr->regionSelectMotionCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 1072:
-#line 2553 "parser.Y"
+ case 1084:
+#line 2549 "parser.Y"
{fr->regionSelectEndCmd();;}
break;
- case 1073:
-#line 2554 "parser.Y"
+ case 1085:
+#line 2550 "parser.Y"
{fr->regionSelectShiftEndCmd();;}
break;
- case 1074:
-#line 2557 "parser.Y"
+ case 1086:
+#line 2553 "parser.Y"
{(yyval.integer) = Frame3dBase::MIP;;}
break;
- case 1075:
-#line 2558 "parser.Y"
+ case 1087:
+#line 2554 "parser.Y"
{(yyval.integer) = Frame3dBase::AIP;;}
break;
- case 1076:
-#line 2561 "parser.Y"
+ case 1088:
+#line 2557 "parser.Y"
{fr->setRGBChannelCmd((yyvsp[(2) - (2)].str));;}
break;
- case 1077:
-#line 2562 "parser.Y"
- {fr->setRGBSystemCmd((CoordSystem)(yyvsp[(2) - (2)].integer));;}
+ case 1089:
+#line 2558 "parser.Y"
+ {fr->setRGBSystemCmd((Coord::CoordSystem)(yyvsp[(2) - (2)].integer));;}
break;
- case 1078:
-#line 2563 "parser.Y"
+ case 1090:
+#line 2559 "parser.Y"
{fr->setRGBViewCmd((yyvsp[(2) - (4)].integer),(yyvsp[(3) - (4)].integer),(yyvsp[(4) - (4)].integer));;}
break;
- case 1079:
-#line 2566 "parser.Y"
+ case 1091:
+#line 2562 "parser.Y"
{fr->rotateCmd(degToRad((yyvsp[(1) - (1)].real)));;}
break;
- case 1080:
-#line 2567 "parser.Y"
+ case 1092:
+#line 2563 "parser.Y"
{fr->rotateCmd(degToRad((yyvsp[(1) - (2)].real)));;}
break;
- case 1082:
-#line 2569 "parser.Y"
+ case 1094:
+#line 2565 "parser.Y"
{fr->rotateToCmd(degToRad((yyvsp[(2) - (2)].real)));;}
break;
- case 1083:
-#line 2570 "parser.Y"
+ case 1095:
+#line 2566 "parser.Y"
{fr->rotateToCmd(degToRad((yyvsp[(2) - (3)].real)));;}
break;
- case 1084:
-#line 2573 "parser.Y"
+ case 1096:
+#line 2569 "parser.Y"
{fr->rotateBeginCmd();;}
break;
- case 1085:
-#line 2574 "parser.Y"
+ case 1097:
+#line 2570 "parser.Y"
{fr->rotateMotionCmd(degToRad((yyvsp[(1) - (1)].real)));;}
break;
- case 1086:
-#line 2575 "parser.Y"
+ case 1098:
+#line 2571 "parser.Y"
{fr->rotateEndCmd();;}
break;
- case 1089:
-#line 2583 "parser.Y"
+ case 1101:
+#line 2576 "parser.Y"
+ {fr->savePhotoCmd((yyvsp[(2) - (2)].str));;}
+ break;
+
+ case 1102:
+#line 2580 "parser.Y"
{fr->saveArrayFileCmd((yyvsp[(2) - (3)].str), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;}
break;
- case 1090:
-#line 2585 "parser.Y"
+ case 1103:
+#line 2582 "parser.Y"
{fr->saveArrayChannelCmd((yyvsp[(2) - (3)].str), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;}
break;
- case 1091:
-#line 2587 "parser.Y"
+ case 1104:
+#line 2584 "parser.Y"
{fr->saveArraySocketCmd((yyvsp[(2) - (3)].integer), (FitsFile::ArchType)(yyvsp[(3) - (3)].integer));;}
break;
- case 1095:
-#line 2595 "parser.Y"
+ case 1108:
+#line 2592 "parser.Y"
{fr->saveFitsImageFileCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
break;
- case 1096:
-#line 2596 "parser.Y"
+ case 1109:
+#line 2593 "parser.Y"
{fr->saveFitsImageChannelCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
break;
- case 1097:
-#line 2597 "parser.Y"
+ case 1110:
+#line 2594 "parser.Y"
{fr->saveFitsImageSocketCmd((yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
break;
- case 1098:
-#line 2600 "parser.Y"
+ case 1111:
+#line 2597 "parser.Y"
{fr->saveFitsTableFileCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
break;
- case 1099:
-#line 2601 "parser.Y"
+ case 1112:
+#line 2598 "parser.Y"
{fr->saveFitsTableChannelCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
break;
- case 1100:
-#line 2602 "parser.Y"
+ case 1113:
+#line 2599 "parser.Y"
{fr->saveFitsTableSocketCmd((yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
break;
- case 1101:
-#line 2606 "parser.Y"
+ case 1114:
+#line 2603 "parser.Y"
{fr->saveFitsResampleFileCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
break;
- case 1102:
-#line 2608 "parser.Y"
+ case 1115:
+#line 2605 "parser.Y"
{fr->saveFitsResampleChannelCmd((yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].integer));;}
break;
- case 1103:
-#line 2610 "parser.Y"
+ case 1116:
+#line 2607 "parser.Y"
{fr->saveFitsResampleSocketCmd((yyvsp[(2) - (3)].integer), (yyvsp[(3) - (3)].integer));;}
break;
- case 1104:
-#line 2613 "parser.Y"
+ case 1117:
+#line 2610 "parser.Y"
{fr->smoothCmd((FitsImage::SmoothFunction)(yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;}
break;
- case 1105:
-#line 2614 "parser.Y"
+ case 1118:
+#line 2611 "parser.Y"
{fr->smoothDeleteCmd();;}
break;
- case 1106:
-#line 2617 "parser.Y"
+ case 1119:
+#line 2614 "parser.Y"
{(yyval.integer) = FitsImage::BOXCAR;;}
break;
- case 1107:
-#line 2618 "parser.Y"
+ case 1120:
+#line 2615 "parser.Y"
{(yyval.integer) = FitsImage::GAUSSIAN;;}
break;
- case 1108:
-#line 2619 "parser.Y"
+ case 1121:
+#line 2616 "parser.Y"
{(yyval.integer) = FitsImage::TOPHAT;;}
break;
- case 1109:
-#line 2622 "parser.Y"
+ case 1122:
+#line 2619 "parser.Y"
{fr->updateFitsCmd(0);;}
break;
- case 1110:
-#line 2624 "parser.Y"
+ case 1123:
+#line 2621 "parser.Y"
{fr->updateFitsCmd((yyvsp[(1) - (5)].integer),BBox((yyvsp[(2) - (5)].real),(yyvsp[(3) - (5)].real),(yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)),0);;}
break;
- case 1111:
-#line 2625 "parser.Y"
+ case 1124:
+#line 2622 "parser.Y"
{fr->updateFitsCmd(1);;}
break;
- case 1112:
-#line 2627 "parser.Y"
+ case 1125:
+#line 2624 "parser.Y"
{fr->updateFitsCmd((yyvsp[(2) - (6)].integer),BBox((yyvsp[(3) - (6)].real),(yyvsp[(4) - (6)].real),(yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)),1);;}
break;
- case 1114:
-#line 2631 "parser.Y"
+ case 1127:
+#line 2628 "parser.Y"
{fr->sliceCmd(2, (yyvsp[(1) - (1)].integer));;}
break;
- case 1115:
-#line 2632 "parser.Y"
+ case 1128:
+#line 2629 "parser.Y"
{fr->sliceCmd((yyvsp[(1) - (2)].integer), (yyvsp[(2) - (2)].integer));;}
break;
- case 1116:
-#line 2635 "parser.Y"
+ case 1129:
+#line 2632 "parser.Y"
{fr->warpCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 1117:
-#line 2636 "parser.Y"
+ case 1130:
+#line 2633 "parser.Y"
{fr->warpToCmd(Vector((yyvsp[(2) - (3)].real),(yyvsp[(3) - (3)].real)));;}
break;
- case 1118:
-#line 2640 "parser.Y"
- {fr->wcsCmd((CoordSystem)(yyvsp[(1) - (3)].integer), (SkyFrame)(yyvsp[(2) - (3)].integer), (SkyFormat)(yyvsp[(3) - (3)].integer));;}
+ case 1131:
+#line 2637 "parser.Y"
+ {fr->wcsCmd((Coord::CoordSystem)(yyvsp[(1) - (3)].integer), (Coord::SkyFrame)(yyvsp[(2) - (3)].integer), (Coord::SkyFormat)(yyvsp[(3) - (3)].integer));;}
break;
- case 1120:
-#line 2642 "parser.Y"
+ case 1133:
+#line 2639 "parser.Y"
{fr->wcsResetCmd((yyvsp[(2) - (2)].integer));;}
break;
- case 1123:
-#line 2647 "parser.Y"
+ case 1136:
+#line 2644 "parser.Y"
{fr->wcsAppendCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;}
break;
- case 1124:
-#line 2648 "parser.Y"
+ case 1137:
+#line 2645 "parser.Y"
{fr->wcsAppendCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].str));;}
break;
- case 1125:
-#line 2649 "parser.Y"
+ case 1138:
+#line 2646 "parser.Y"
{fr->wcsAppendTxtCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].str));;}
break;
- case 1126:
-#line 2652 "parser.Y"
+ case 1139:
+#line 2649 "parser.Y"
{fr->wcsReplaceCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].integer));;}
break;
- case 1127:
-#line 2653 "parser.Y"
+ case 1140:
+#line 2650 "parser.Y"
{fr->wcsReplaceCmd((yyvsp[(1) - (2)].integer),(yyvsp[(2) - (2)].str));;}
break;
- case 1128:
-#line 2654 "parser.Y"
+ case 1141:
+#line 2651 "parser.Y"
{fr->wcsReplaceTxtCmd((yyvsp[(2) - (3)].integer),(yyvsp[(3) - (3)].str));;}
break;
- case 1129:
-#line 2657 "parser.Y"
+ case 1142:
+#line 2654 "parser.Y"
{fr->wcsAlignCmd((yyvsp[(1) - (1)].integer));;}
break;
- case 1130:
-#line 2659 "parser.Y"
+ case 1143:
+#line 2656 "parser.Y"
{
// used by backup
- fr->wcsAlignCmd((yyvsp[(1) - (3)].integer), (CoordSystem)(yyvsp[(2) - (3)].integer), (SkyFrame)(yyvsp[(3) - (3)].integer));
+ fr->wcsAlignCmd((yyvsp[(1) - (3)].integer), (Coord::CoordSystem)(yyvsp[(2) - (3)].integer), (Coord::SkyFrame)(yyvsp[(3) - (3)].integer));
;}
break;
- case 1131:
-#line 2664 "parser.Y"
- {fr->wcsAlignCmd((yyvsp[(1) - (3)].integer), (FitsImage*)(yyvsp[(2) - (3)].ptr), (CoordSystem)(yyvsp[(3) - (3)].integer));;}
+ case 1144:
+#line 2661 "parser.Y"
+ {fr->wcsAlignCmd((yyvsp[(1) - (3)].integer), (FitsImage*)(yyvsp[(2) - (3)].ptr), (Coord::CoordSystem)(yyvsp[(3) - (3)].integer));;}
break;
- case 1132:
-#line 2667 "parser.Y"
+ case 1145:
+#line 2664 "parser.Y"
{
#ifdef _WIN32
fr->win32PrintCmd();
@@ -10144,67 +10184,67 @@ yyreduce:
;}
break;
- case 1133:
-#line 2674 "parser.Y"
+ case 1146:
+#line 2671 "parser.Y"
{fr->zoomCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 1134:
-#line 2676 "parser.Y"
+ case 1147:
+#line 2673 "parser.Y"
{fr->zoomAboutCmd(Vector((yyvsp[(1) - (5)].real),(yyvsp[(2) - (5)].real)),Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;}
break;
- case 1135:
-#line 2678 "parser.Y"
+ case 1148:
+#line 2675 "parser.Y"
{
// backward compatibility
fr->zoomAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));
;}
break;
- case 1136:
-#line 2683 "parser.Y"
+ case 1149:
+#line 2680 "parser.Y"
{fr->zoomAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(6) - (6)].vector)),
- (CoordSystem)(yyvsp[(4) - (6)].integer),(SkyFrame)(yyvsp[(5) - (6)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(4) - (6)].integer),(Coord::SkyFrame)(yyvsp[(5) - (6)].integer));;}
break;
- case 1138:
-#line 2688 "parser.Y"
+ case 1151:
+#line 2685 "parser.Y"
{fr->zoomToFitCmd(1);;}
break;
- case 1139:
-#line 2689 "parser.Y"
+ case 1152:
+#line 2686 "parser.Y"
{fr->zoomToFitCmd((yyvsp[(2) - (2)].real));;}
break;
- case 1140:
-#line 2690 "parser.Y"
+ case 1153:
+#line 2687 "parser.Y"
{fr->zoomToCmd(Vector((yyvsp[(1) - (2)].real),(yyvsp[(2) - (2)].real)));;}
break;
- case 1141:
-#line 2692 "parser.Y"
+ case 1154:
+#line 2689 "parser.Y"
{fr->zoomToAboutCmd(Vector((yyvsp[(1) - (5)].real),(yyvsp[(2) - (5)].real)),Vector((yyvsp[(4) - (5)].real),(yyvsp[(5) - (5)].real)));;}
break;
- case 1142:
-#line 2694 "parser.Y"
+ case 1155:
+#line 2691 "parser.Y"
{
// backward compatibility
fr->zoomToAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)),Vector((yyvsp[(5) - (6)].real),(yyvsp[(6) - (6)].real)));
;}
break;
- case 1143:
-#line 2699 "parser.Y"
+ case 1156:
+#line 2696 "parser.Y"
{fr->zoomToAboutCmd(Vector((yyvsp[(1) - (6)].real),(yyvsp[(2) - (6)].real)), Vector((yyvsp[(6) - (6)].vector)),
- (CoordSystem)(yyvsp[(4) - (6)].integer), (SkyFrame)(yyvsp[(5) - (6)].integer));;}
+ (Coord::CoordSystem)(yyvsp[(4) - (6)].integer), (Coord::SkyFrame)(yyvsp[(5) - (6)].integer));;}
break;
/* Line 1267 of yacc.c. */
-#line 10208 "parser.C"
+#line 10248 "parser.C"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -10418,7 +10458,7 @@ yyreturn:
}
-#line 2703 "parser.Y"
+#line 2700 "parser.Y"
static void setProps(unsigned short* props, unsigned short prop, int value)
diff --git a/saotk/frame/parser.H b/saotk/frame/parser.H
index 8695ee8..1f88f21 100644
--- a/saotk/frame/parser.H
+++ b/saotk/frame/parser.H
@@ -79,288 +79,295 @@
BIN_ = 295,
BITPIX_ = 296,
BLOCK_ = 297,
- BOX_ = 298,
- BOXANNULUS_ = 299,
- BOXCAR_ = 300,
- BOXCIRCLE_ = 301,
- BPANDA_ = 302,
- BUFFER_ = 303,
- BW_ = 304,
- CALLBACK_ = 305,
- CANVAS_ = 306,
- CATALOG_ = 307,
- CELESTRIAL_ = 308,
- CENTER_ = 309,
- CENTROID_ = 310,
- CHANNEL_ = 311,
- CIRCLE_ = 312,
- CIAO_ = 313,
- CLEAR_ = 314,
- CLIP_ = 315,
- COLOR_ = 316,
- COLORBAR_ = 317,
- COLORMAP_ = 318,
- COLORSCALE_ = 319,
- COLORSPACE_ = 320,
- COLS_ = 321,
- COMMAND_ = 322,
- COMPASS_ = 323,
- COMPOSITE_ = 324,
- COMPRESS_ = 325,
- CONTOUR_ = 326,
- CONTRAST_ = 327,
- COORDINATES_ = 328,
- COPY_ = 329,
- COUNT_ = 330,
- CPANDA_ = 331,
- CREATE_ = 332,
- CROP_ = 333,
- CROSS_ = 334,
- CROSSHAIR_ = 335,
- CUBE_ = 336,
- CURSOR_ = 337,
- CUT_ = 338,
- CMYK_ = 339,
- DASH_ = 340,
- DASHLIST_ = 341,
- DATA_ = 342,
- DATAMIN_ = 343,
- DATASEC_ = 344,
- DEBUG_ = 345,
- DEGREES_ = 346,
- DEFAULT_ = 347,
- DELETE_ = 348,
- DEPTH_ = 349,
- DETECTOR_ = 350,
- DIAMOND_ = 351,
- DIM_ = 352,
- DS9_ = 353,
- EDIT_ = 354,
- ECLIPTIC_ = 355,
- ELLIPSE_ = 356,
- ELLIPSEANNULUS_ = 357,
- END_ = 358,
- EPANDA_ = 359,
- EQUATORIAL_ = 360,
- ERASE_ = 361,
- EXT_ = 362,
- FACTOR_ = 363,
- FALSE_ = 364,
- FILE_ = 365,
- FILTER_ = 366,
- FIT_ = 367,
- FITS_ = 368,
- FITSY_ = 369,
- FIXED_ = 370,
- FK4_ = 371,
- FK4_NO_E_ = 372,
- FK5_ = 373,
- FONT_ = 374,
- FROM_ = 375,
- FRONT_ = 376,
- FULL_ = 377,
- FUNCTION_ = 378,
- GALACTIC_ = 379,
- GAUSSIAN_ = 380,
- GET_ = 381,
- GLOBAL_ = 382,
- GRAPHICS_ = 383,
- GRAY_ = 384,
- GRID_ = 385,
- GZ_ = 386,
- HANDLE_ = 387,
- HAS_ = 388,
- HEAD_ = 389,
- HEADER_ = 390,
- HEIGHT_ = 391,
- HELIOECLIPTIC_ = 392,
- HIDE_ = 393,
- HIGH_ = 394,
- HIGHLITE_ = 395,
- HISTEQU_ = 396,
- HISTOGRAM_ = 397,
- HORIZONTAL_ = 398,
- ICRS_ = 399,
- ID_ = 400,
- IIS_ = 401,
- IMAGE_ = 402,
- INCLUDE_ = 403,
- INCR_ = 404,
- INFO_ = 405,
- INTEGER_ = 406,
- ITERATION_ = 407,
- IRAF_ = 408,
- IRAFMIN_ = 409,
- J2000_ = 410,
- KEY_ = 411,
- KEYWORD_ = 412,
- LABEL_ = 413,
- LENGTH_ = 414,
- LEVEL_ = 415,
- LITTLEENDIAN_ = 416,
- LINE_ = 417,
- LINEAR_ = 418,
- LIST_ = 419,
- LOAD_ = 420,
- LOCAL_ = 421,
- LOG_ = 422,
- LOW_ = 423,
- MACOSX_ = 424,
- MAGNIFIER_ = 425,
- MAP_ = 426,
- MARK_ = 427,
- MARKER_ = 428,
- MASK_ = 429,
- MESSAGE_ = 430,
- METHOD_ = 431,
- MINMAX_ = 432,
- MIP_ = 433,
- MMAP_ = 434,
- MMAPINCR_ = 435,
- MOSAIC_ = 436,
- MODE_ = 437,
- MOTION_ = 438,
- MOVE_ = 439,
- NAME_ = 440,
- NAN_ = 441,
- NAXES_ = 442,
- NEW_ = 443,
- NEXT_ = 444,
- NO_ = 445,
- NONE_ = 446,
- NOW_ = 447,
- NUMBER_ = 448,
- OBJECT_ = 449,
- OFF_ = 450,
- ON_ = 451,
- ONLY_ = 452,
- OPTION_ = 453,
- ORIENT_ = 454,
- PAN_ = 455,
- PANNER_ = 456,
- PARSER_ = 457,
- PASTE_ = 458,
- PERF_ = 459,
- PHYSICAL_ = 460,
- PIXEL_ = 461,
- POINT_ = 462,
- POINTER_ = 463,
- POLYGON_ = 464,
- POSTSCRIPT_ = 465,
- POW_ = 466,
- PRINT_ = 467,
- PRESERVE_ = 468,
- PROJECTION_ = 469,
- CIRCLE3D_ = 470,
- PROPERTY_ = 471,
- PUBLICATION_ = 472,
- PROS_ = 473,
- RADIUS_ = 474,
- REGION_ = 475,
- REPLACE_ = 476,
- RESAMPLE_ = 477,
- RESET_ = 478,
- RESOLUTION_ = 479,
- RGB_ = 480,
- ROOT_ = 481,
- ROTATE_ = 482,
- RULER_ = 483,
- SAMPLE_ = 484,
- SAOIMAGE_ = 485,
- SAOTNG_ = 486,
- SAVE_ = 487,
- SCALE_ = 488,
- SCAN_ = 489,
- SCIENTIFIC_ = 490,
- SCOPE_ = 491,
- SEGMENT_ = 492,
- SELECT_ = 493,
- SET_ = 494,
- SEXAGESIMAL_ = 495,
- SHARED_ = 496,
- SHIFT_ = 497,
- SHMID_ = 498,
- SHOW_ = 499,
- SINH_ = 500,
- SIZE_ = 501,
- SLICE_ = 502,
- SMMAP_ = 503,
- SMOOTH_ = 504,
- SOCKET_ = 505,
- SOCKETGZ_ = 506,
- SOURCE_ = 507,
- SQRT_ = 508,
- SQUARED_ = 509,
- SSHARED_ = 510,
- STATUS_ = 511,
- SUPERGALACTIC_ = 512,
- SUM_ = 513,
- SYSTEM_ = 514,
- TABLE_ = 515,
- TAG_ = 516,
- TEMPLATE_ = 517,
- TEXT_ = 518,
- THREADS_ = 519,
- THREED_ = 520,
- THRESHOLD_ = 521,
- THICK_ = 522,
- TRANSPARENCY_ = 523,
- TO_ = 524,
- TOGGLE_ = 525,
- TOPHAT_ = 526,
- TRUE_ = 527,
- TYPE_ = 528,
- UNDO_ = 529,
- UNHIGHLITE_ = 530,
- UNLOAD_ = 531,
- UNSELECT_ = 532,
- UPDATE_ = 533,
- USER_ = 534,
- VALUE_ = 535,
- VAR_ = 536,
- VIEW_ = 537,
- VECTOR_ = 538,
- VERSION_ = 539,
- VERTEX_ = 540,
- VERTICAL_ = 541,
- WARP_ = 542,
- WCS_ = 543,
- WCSA_ = 544,
- WCSB_ = 545,
- WCSC_ = 546,
- WCSD_ = 547,
- WCSE_ = 548,
- WCSF_ = 549,
- WCSG_ = 550,
- WCSH_ = 551,
- WCSI_ = 552,
- WCSJ_ = 553,
- WCSK_ = 554,
- WCSL_ = 555,
- WCSM_ = 556,
- WCSN_ = 557,
- WCSO_ = 558,
- WCSP_ = 559,
- WCSQ_ = 560,
- WCSR_ = 561,
- WCSS_ = 562,
- WCST_ = 563,
- WCSU_ = 564,
- WCSV_ = 565,
- WCSW_ = 566,
- WCSX_ = 567,
- WCSY_ = 568,
- WCSZ_ = 569,
- WCS0_ = 570,
- WFPC2_ = 571,
- WIDTH_ = 572,
- WIN32_ = 573,
- XML_ = 574,
- XY_ = 575,
- YES_ = 576,
- ZMAX_ = 577,
- ZSCALE_ = 578,
- ZOOM_ = 579
+ BLT_ = 298,
+ BOX_ = 299,
+ BOXANNULUS_ = 300,
+ BOXCAR_ = 301,
+ BOXCIRCLE_ = 302,
+ BPANDA_ = 303,
+ BUFFER_ = 304,
+ BW_ = 305,
+ CALLBACK_ = 306,
+ CANVAS_ = 307,
+ CATALOG_ = 308,
+ CELESTRIAL_ = 309,
+ CENTER_ = 310,
+ CENTROID_ = 311,
+ CHANNEL_ = 312,
+ CIRCLE_ = 313,
+ CIAO_ = 314,
+ CLEAR_ = 315,
+ CLIP_ = 316,
+ COLOR_ = 317,
+ COLORBAR_ = 318,
+ COLORMAP_ = 319,
+ COLORSCALE_ = 320,
+ COLORSPACE_ = 321,
+ COLS_ = 322,
+ COLUMN_ = 323,
+ COMMAND_ = 324,
+ COMPASS_ = 325,
+ COMPOSITE_ = 326,
+ COMPRESS_ = 327,
+ CONTOUR_ = 328,
+ CONTRAST_ = 329,
+ COORDINATES_ = 330,
+ COPY_ = 331,
+ COUNT_ = 332,
+ CPANDA_ = 333,
+ CREATE_ = 334,
+ CROP_ = 335,
+ CROSS_ = 336,
+ CROSSHAIR_ = 337,
+ CUBE_ = 338,
+ CURSOR_ = 339,
+ CUT_ = 340,
+ CMYK_ = 341,
+ DASH_ = 342,
+ DASHLIST_ = 343,
+ DATA_ = 344,
+ DATAMIN_ = 345,
+ DATASEC_ = 346,
+ DEBUG_ = 347,
+ DEGREES_ = 348,
+ DEFAULT_ = 349,
+ DELETE_ = 350,
+ DEPTH_ = 351,
+ DETECTOR_ = 352,
+ DIAMOND_ = 353,
+ DIM_ = 354,
+ DS9_ = 355,
+ EDIT_ = 356,
+ ECLIPTIC_ = 357,
+ ELLIPSE_ = 358,
+ ELLIPSEANNULUS_ = 359,
+ END_ = 360,
+ EPANDA_ = 361,
+ EQUATORIAL_ = 362,
+ ERASE_ = 363,
+ EXT_ = 364,
+ FACTOR_ = 365,
+ FALSE_ = 366,
+ FILE_ = 367,
+ FILTER_ = 368,
+ FIT_ = 369,
+ FITS_ = 370,
+ FITSY_ = 371,
+ FIXED_ = 372,
+ FK4_ = 373,
+ FK4_NO_E_ = 374,
+ FK5_ = 375,
+ FONT_ = 376,
+ FROM_ = 377,
+ FRONT_ = 378,
+ FULL_ = 379,
+ FUNCTION_ = 380,
+ GALACTIC_ = 381,
+ GAUSSIAN_ = 382,
+ GET_ = 383,
+ GLOBAL_ = 384,
+ GRAPHICS_ = 385,
+ GRAY_ = 386,
+ GRID_ = 387,
+ GZ_ = 388,
+ HANDLE_ = 389,
+ HAS_ = 390,
+ HEAD_ = 391,
+ HEADER_ = 392,
+ HEIGHT_ = 393,
+ HELIOECLIPTIC_ = 394,
+ HIDE_ = 395,
+ HIGH_ = 396,
+ HIGHLITE_ = 397,
+ HISTEQU_ = 398,
+ HISTOGRAM_ = 399,
+ HORIZONTAL_ = 400,
+ ICRS_ = 401,
+ ID_ = 402,
+ IIS_ = 403,
+ IMAGE_ = 404,
+ INCLUDE_ = 405,
+ INCR_ = 406,
+ INFO_ = 407,
+ INTEGER_ = 408,
+ ITERATION_ = 409,
+ IRAF_ = 410,
+ IRAFMIN_ = 411,
+ J2000_ = 412,
+ KEY_ = 413,
+ KEYWORD_ = 414,
+ LABEL_ = 415,
+ LENGTH_ = 416,
+ LEVEL_ = 417,
+ LITTLEENDIAN_ = 418,
+ LINE_ = 419,
+ LINEAR_ = 420,
+ LIST_ = 421,
+ LOAD_ = 422,
+ LOCAL_ = 423,
+ LOG_ = 424,
+ LOW_ = 425,
+ MACOSX_ = 426,
+ MAGNIFIER_ = 427,
+ MAP_ = 428,
+ MARK_ = 429,
+ MARKER_ = 430,
+ MASK_ = 431,
+ MESSAGE_ = 432,
+ METHOD_ = 433,
+ MINMAX_ = 434,
+ MIP_ = 435,
+ MMAP_ = 436,
+ MMAPINCR_ = 437,
+ MOSAIC_ = 438,
+ MODE_ = 439,
+ MOTION_ = 440,
+ MOVE_ = 441,
+ NAME_ = 442,
+ NAN_ = 443,
+ NAXES_ = 444,
+ NEW_ = 445,
+ NEXT_ = 446,
+ NO_ = 447,
+ NONE_ = 448,
+ NOW_ = 449,
+ NUMBER_ = 450,
+ OBJECT_ = 451,
+ OFF_ = 452,
+ ON_ = 453,
+ ONLY_ = 454,
+ OPTION_ = 455,
+ ORIENT_ = 456,
+ PAN_ = 457,
+ PANNER_ = 458,
+ PARAM_ = 459,
+ PARSER_ = 460,
+ PASTE_ = 461,
+ PERF_ = 462,
+ PHOTO_ = 463,
+ PHYSICAL_ = 464,
+ PIXEL_ = 465,
+ PLOT2D_ = 466,
+ PLOT3D_ = 467,
+ POINT_ = 468,
+ POINTER_ = 469,
+ POLYGON_ = 470,
+ POSTSCRIPT_ = 471,
+ POW_ = 472,
+ PRINT_ = 473,
+ PRESERVE_ = 474,
+ PROJECTION_ = 475,
+ PROPERTY_ = 476,
+ PUBLICATION_ = 477,
+ PROS_ = 478,
+ RADIUS_ = 479,
+ REGION_ = 480,
+ REPLACE_ = 481,
+ RESAMPLE_ = 482,
+ RESET_ = 483,
+ RESOLUTION_ = 484,
+ RGB_ = 485,
+ ROOT_ = 486,
+ ROTATE_ = 487,
+ RULER_ = 488,
+ SAMPLE_ = 489,
+ SAOIMAGE_ = 490,
+ SAOTNG_ = 491,
+ SAVE_ = 492,
+ SCALE_ = 493,
+ SCAN_ = 494,
+ SCIENTIFIC_ = 495,
+ SCOPE_ = 496,
+ SEGMENT_ = 497,
+ SELECT_ = 498,
+ SET_ = 499,
+ SEXAGESIMAL_ = 500,
+ SHAPE_ = 501,
+ SHARED_ = 502,
+ SHIFT_ = 503,
+ SHMID_ = 504,
+ SHOW_ = 505,
+ SINH_ = 506,
+ SIZE_ = 507,
+ SLICE_ = 508,
+ SMMAP_ = 509,
+ SMOOTH_ = 510,
+ SOCKET_ = 511,
+ SOCKETGZ_ = 512,
+ SOURCE_ = 513,
+ SQRT_ = 514,
+ SQUARED_ = 515,
+ SSHARED_ = 516,
+ STATS_ = 517,
+ STATUS_ = 518,
+ SUPERGALACTIC_ = 519,
+ SUM_ = 520,
+ SYSTEM_ = 521,
+ TABLE_ = 522,
+ TAG_ = 523,
+ TEMPLATE_ = 524,
+ TEXT_ = 525,
+ THREADS_ = 526,
+ THREED_ = 527,
+ THRESHOLD_ = 528,
+ THICK_ = 529,
+ TRANSPARENCY_ = 530,
+ TO_ = 531,
+ TOGGLE_ = 532,
+ TOPHAT_ = 533,
+ TRUE_ = 534,
+ TYPE_ = 535,
+ UNDO_ = 536,
+ UNHIGHLITE_ = 537,
+ UNLOAD_ = 538,
+ UNSELECT_ = 539,
+ UPDATE_ = 540,
+ USER_ = 541,
+ VALUE_ = 542,
+ VAR_ = 543,
+ VIEW_ = 544,
+ VECTOR_ = 545,
+ VERSION_ = 546,
+ VERTEX_ = 547,
+ VERTICAL_ = 548,
+ WARP_ = 549,
+ WCS_ = 550,
+ WCSA_ = 551,
+ WCSB_ = 552,
+ WCSC_ = 553,
+ WCSD_ = 554,
+ WCSE_ = 555,
+ WCSF_ = 556,
+ WCSG_ = 557,
+ WCSH_ = 558,
+ WCSI_ = 559,
+ WCSJ_ = 560,
+ WCSK_ = 561,
+ WCSL_ = 562,
+ WCSM_ = 563,
+ WCSN_ = 564,
+ WCSO_ = 565,
+ WCSP_ = 566,
+ WCSQ_ = 567,
+ WCSR_ = 568,
+ WCSS_ = 569,
+ WCST_ = 570,
+ WCSU_ = 571,
+ WCSV_ = 572,
+ WCSW_ = 573,
+ WCSX_ = 574,
+ WCSY_ = 575,
+ WCSZ_ = 576,
+ WCS0_ = 577,
+ WFPC2_ = 578,
+ WIDTH_ = 579,
+ WIN32_ = 580,
+ XML_ = 581,
+ XY_ = 582,
+ YES_ = 583,
+ ZMAX_ = 584,
+ ZSCALE_ = 585,
+ ZOOM_ = 586
};
#endif
/* Tokens. */
@@ -404,288 +411,295 @@
#define BIN_ 295
#define BITPIX_ 296
#define BLOCK_ 297
-#define BOX_ 298
-#define BOXANNULUS_ 299
-#define BOXCAR_ 300
-#define BOXCIRCLE_ 301
-#define BPANDA_ 302
-#define BUFFER_ 303
-#define BW_ 304
-#define CALLBACK_ 305
-#define CANVAS_ 306
-#define CATALOG_ 307
-#define CELESTRIAL_ 308
-#define CENTER_ 309
-#define CENTROID_ 310
-#define CHANNEL_ 311
-#define CIRCLE_ 312
-#define CIAO_ 313
-#define CLEAR_ 314
-#define CLIP_ 315
-#define COLOR_ 316
-#define COLORBAR_ 317
-#define COLORMAP_ 318
-#define COLORSCALE_ 319
-#define COLORSPACE_ 320
-#define COLS_ 321
-#define COMMAND_ 322
-#define COMPASS_ 323
-#define COMPOSITE_ 324
-#define COMPRESS_ 325
-#define CONTOUR_ 326
-#define CONTRAST_ 327
-#define COORDINATES_ 328
-#define COPY_ 329
-#define COUNT_ 330
-#define CPANDA_ 331
-#define CREATE_ 332
-#define CROP_ 333
-#define CROSS_ 334
-#define CROSSHAIR_ 335
-#define CUBE_ 336
-#define CURSOR_ 337
-#define CUT_ 338
-#define CMYK_ 339
-#define DASH_ 340
-#define DASHLIST_ 341
-#define DATA_ 342
-#define DATAMIN_ 343
-#define DATASEC_ 344
-#define DEBUG_ 345
-#define DEGREES_ 346
-#define DEFAULT_ 347
-#define DELETE_ 348
-#define DEPTH_ 349
-#define DETECTOR_ 350
-#define DIAMOND_ 351
-#define DIM_ 352
-#define DS9_ 353
-#define EDIT_ 354
-#define ECLIPTIC_ 355
-#define ELLIPSE_ 356
-#define ELLIPSEANNULUS_ 357
-#define END_ 358
-#define EPANDA_ 359
-#define EQUATORIAL_ 360
-#define ERASE_ 361
-#define EXT_ 362
-#define FACTOR_ 363
-#define FALSE_ 364
-#define FILE_ 365
-#define FILTER_ 366
-#define FIT_ 367
-#define FITS_ 368
-#define FITSY_ 369
-#define FIXED_ 370
-#define FK4_ 371
-#define FK4_NO_E_ 372
-#define FK5_ 373
-#define FONT_ 374
-#define FROM_ 375
-#define FRONT_ 376
-#define FULL_ 377
-#define FUNCTION_ 378
-#define GALACTIC_ 379
-#define GAUSSIAN_ 380
-#define GET_ 381
-#define GLOBAL_ 382
-#define GRAPHICS_ 383
-#define GRAY_ 384
-#define GRID_ 385
-#define GZ_ 386
-#define HANDLE_ 387
-#define HAS_ 388
-#define HEAD_ 389
-#define HEADER_ 390
-#define HEIGHT_ 391
-#define HELIOECLIPTIC_ 392
-#define HIDE_ 393
-#define HIGH_ 394
-#define HIGHLITE_ 395
-#define HISTEQU_ 396
-#define HISTOGRAM_ 397
-#define HORIZONTAL_ 398
-#define ICRS_ 399
-#define ID_ 400
-#define IIS_ 401
-#define IMAGE_ 402
-#define INCLUDE_ 403
-#define INCR_ 404
-#define INFO_ 405
-#define INTEGER_ 406
-#define ITERATION_ 407
-#define IRAF_ 408
-#define IRAFMIN_ 409
-#define J2000_ 410
-#define KEY_ 411
-#define KEYWORD_ 412
-#define LABEL_ 413
-#define LENGTH_ 414
-#define LEVEL_ 415
-#define LITTLEENDIAN_ 416
-#define LINE_ 417
-#define LINEAR_ 418
-#define LIST_ 419
-#define LOAD_ 420
-#define LOCAL_ 421
-#define LOG_ 422
-#define LOW_ 423
-#define MACOSX_ 424
-#define MAGNIFIER_ 425
-#define MAP_ 426
-#define MARK_ 427
-#define MARKER_ 428
-#define MASK_ 429
-#define MESSAGE_ 430
-#define METHOD_ 431
-#define MINMAX_ 432
-#define MIP_ 433
-#define MMAP_ 434
-#define MMAPINCR_ 435
-#define MOSAIC_ 436
-#define MODE_ 437
-#define MOTION_ 438
-#define MOVE_ 439
-#define NAME_ 440
-#define NAN_ 441
-#define NAXES_ 442
-#define NEW_ 443
-#define NEXT_ 444
-#define NO_ 445
-#define NONE_ 446
-#define NOW_ 447
-#define NUMBER_ 448
-#define OBJECT_ 449
-#define OFF_ 450
-#define ON_ 451
-#define ONLY_ 452
-#define OPTION_ 453
-#define ORIENT_ 454
-#define PAN_ 455
-#define PANNER_ 456
-#define PARSER_ 457
-#define PASTE_ 458
-#define PERF_ 459
-#define PHYSICAL_ 460
-#define PIXEL_ 461
-#define POINT_ 462
-#define POINTER_ 463
-#define POLYGON_ 464
-#define POSTSCRIPT_ 465
-#define POW_ 466
-#define PRINT_ 467
-#define PRESERVE_ 468
-#define PROJECTION_ 469
-#define CIRCLE3D_ 470
-#define PROPERTY_ 471
-#define PUBLICATION_ 472
-#define PROS_ 473
-#define RADIUS_ 474
-#define REGION_ 475
-#define REPLACE_ 476
-#define RESAMPLE_ 477
-#define RESET_ 478
-#define RESOLUTION_ 479
-#define RGB_ 480
-#define ROOT_ 481
-#define ROTATE_ 482
-#define RULER_ 483
-#define SAMPLE_ 484
-#define SAOIMAGE_ 485
-#define SAOTNG_ 486
-#define SAVE_ 487
-#define SCALE_ 488
-#define SCAN_ 489
-#define SCIENTIFIC_ 490
-#define SCOPE_ 491
-#define SEGMENT_ 492
-#define SELECT_ 493
-#define SET_ 494
-#define SEXAGESIMAL_ 495
-#define SHARED_ 496
-#define SHIFT_ 497
-#define SHMID_ 498
-#define SHOW_ 499
-#define SINH_ 500
-#define SIZE_ 501
-#define SLICE_ 502
-#define SMMAP_ 503
-#define SMOOTH_ 504
-#define SOCKET_ 505
-#define SOCKETGZ_ 506
-#define SOURCE_ 507
-#define SQRT_ 508
-#define SQUARED_ 509
-#define SSHARED_ 510
-#define STATUS_ 511
-#define SUPERGALACTIC_ 512
-#define SUM_ 513
-#define SYSTEM_ 514
-#define TABLE_ 515
-#define TAG_ 516
-#define TEMPLATE_ 517
-#define TEXT_ 518
-#define THREADS_ 519
-#define THREED_ 520
-#define THRESHOLD_ 521
-#define THICK_ 522
-#define TRANSPARENCY_ 523
-#define TO_ 524
-#define TOGGLE_ 525
-#define TOPHAT_ 526
-#define TRUE_ 527
-#define TYPE_ 528
-#define UNDO_ 529
-#define UNHIGHLITE_ 530
-#define UNLOAD_ 531
-#define UNSELECT_ 532
-#define UPDATE_ 533
-#define USER_ 534
-#define VALUE_ 535
-#define VAR_ 536
-#define VIEW_ 537
-#define VECTOR_ 538
-#define VERSION_ 539
-#define VERTEX_ 540
-#define VERTICAL_ 541
-#define WARP_ 542
-#define WCS_ 543
-#define WCSA_ 544
-#define WCSB_ 545
-#define WCSC_ 546
-#define WCSD_ 547
-#define WCSE_ 548
-#define WCSF_ 549
-#define WCSG_ 550
-#define WCSH_ 551
-#define WCSI_ 552
-#define WCSJ_ 553
-#define WCSK_ 554
-#define WCSL_ 555
-#define WCSM_ 556
-#define WCSN_ 557
-#define WCSO_ 558
-#define WCSP_ 559
-#define WCSQ_ 560
-#define WCSR_ 561
-#define WCSS_ 562
-#define WCST_ 563
-#define WCSU_ 564
-#define WCSV_ 565
-#define WCSW_ 566
-#define WCSX_ 567
-#define WCSY_ 568
-#define WCSZ_ 569
-#define WCS0_ 570
-#define WFPC2_ 571
-#define WIDTH_ 572
-#define WIN32_ 573
-#define XML_ 574
-#define XY_ 575
-#define YES_ 576
-#define ZMAX_ 577
-#define ZSCALE_ 578
-#define ZOOM_ 579
+#define BLT_ 298
+#define BOX_ 299
+#define BOXANNULUS_ 300
+#define BOXCAR_ 301
+#define BOXCIRCLE_ 302
+#define BPANDA_ 303
+#define BUFFER_ 304
+#define BW_ 305
+#define CALLBACK_ 306
+#define CANVAS_ 307
+#define CATALOG_ 308
+#define CELESTRIAL_ 309
+#define CENTER_ 310
+#define CENTROID_ 311
+#define CHANNEL_ 312
+#define CIRCLE_ 313
+#define CIAO_ 314
+#define CLEAR_ 315
+#define CLIP_ 316
+#define COLOR_ 317
+#define COLORBAR_ 318
+#define COLORMAP_ 319
+#define COLORSCALE_ 320
+#define COLORSPACE_ 321
+#define COLS_ 322
+#define COLUMN_ 323
+#define COMMAND_ 324
+#define COMPASS_ 325
+#define COMPOSITE_ 326
+#define COMPRESS_ 327
+#define CONTOUR_ 328
+#define CONTRAST_ 329
+#define COORDINATES_ 330
+#define COPY_ 331
+#define COUNT_ 332
+#define CPANDA_ 333
+#define CREATE_ 334
+#define CROP_ 335
+#define CROSS_ 336
+#define CROSSHAIR_ 337
+#define CUBE_ 338
+#define CURSOR_ 339
+#define CUT_ 340
+#define CMYK_ 341
+#define DASH_ 342
+#define DASHLIST_ 343
+#define DATA_ 344
+#define DATAMIN_ 345
+#define DATASEC_ 346
+#define DEBUG_ 347
+#define DEGREES_ 348
+#define DEFAULT_ 349
+#define DELETE_ 350
+#define DEPTH_ 351
+#define DETECTOR_ 352
+#define DIAMOND_ 353
+#define DIM_ 354
+#define DS9_ 355
+#define EDIT_ 356
+#define ECLIPTIC_ 357
+#define ELLIPSE_ 358
+#define ELLIPSEANNULUS_ 359
+#define END_ 360
+#define EPANDA_ 361
+#define EQUATORIAL_ 362
+#define ERASE_ 363
+#define EXT_ 364
+#define FACTOR_ 365
+#define FALSE_ 366
+#define FILE_ 367
+#define FILTER_ 368
+#define FIT_ 369
+#define FITS_ 370
+#define FITSY_ 371
+#define FIXED_ 372
+#define FK4_ 373
+#define FK4_NO_E_ 374
+#define FK5_ 375
+#define FONT_ 376
+#define FROM_ 377
+#define FRONT_ 378
+#define FULL_ 379
+#define FUNCTION_ 380
+#define GALACTIC_ 381
+#define GAUSSIAN_ 382
+#define GET_ 383
+#define GLOBAL_ 384
+#define GRAPHICS_ 385
+#define GRAY_ 386
+#define GRID_ 387
+#define GZ_ 388
+#define HANDLE_ 389
+#define HAS_ 390
+#define HEAD_ 391
+#define HEADER_ 392
+#define HEIGHT_ 393
+#define HELIOECLIPTIC_ 394
+#define HIDE_ 395
+#define HIGH_ 396
+#define HIGHLITE_ 397
+#define HISTEQU_ 398
+#define HISTOGRAM_ 399
+#define HORIZONTAL_ 400
+#define ICRS_ 401
+#define ID_ 402
+#define IIS_ 403
+#define IMAGE_ 404
+#define INCLUDE_ 405
+#define INCR_ 406
+#define INFO_ 407
+#define INTEGER_ 408
+#define ITERATION_ 409
+#define IRAF_ 410
+#define IRAFMIN_ 411
+#define J2000_ 412
+#define KEY_ 413
+#define KEYWORD_ 414
+#define LABEL_ 415
+#define LENGTH_ 416
+#define LEVEL_ 417
+#define LITTLEENDIAN_ 418
+#define LINE_ 419
+#define LINEAR_ 420
+#define LIST_ 421
+#define LOAD_ 422
+#define LOCAL_ 423
+#define LOG_ 424
+#define LOW_ 425
+#define MACOSX_ 426
+#define MAGNIFIER_ 427
+#define MAP_ 428
+#define MARK_ 429
+#define MARKER_ 430
+#define MASK_ 431
+#define MESSAGE_ 432
+#define METHOD_ 433
+#define MINMAX_ 434
+#define MIP_ 435
+#define MMAP_ 436
+#define MMAPINCR_ 437
+#define MOSAIC_ 438
+#define MODE_ 439
+#define MOTION_ 440
+#define MOVE_ 441
+#define NAME_ 442
+#define NAN_ 443
+#define NAXES_ 444
+#define NEW_ 445
+#define NEXT_ 446
+#define NO_ 447
+#define NONE_ 448
+#define NOW_ 449
+#define NUMBER_ 450
+#define OBJECT_ 451
+#define OFF_ 452
+#define ON_ 453
+#define ONLY_ 454
+#define OPTION_ 455
+#define ORIENT_ 456
+#define PAN_ 457
+#define PANNER_ 458
+#define PARAM_ 459
+#define PARSER_ 460
+#define PASTE_ 461
+#define PERF_ 462
+#define PHOTO_ 463
+#define PHYSICAL_ 464
+#define PIXEL_ 465
+#define PLOT2D_ 466
+#define PLOT3D_ 467
+#define POINT_ 468
+#define POINTER_ 469
+#define POLYGON_ 470
+#define POSTSCRIPT_ 471
+#define POW_ 472
+#define PRINT_ 473
+#define PRESERVE_ 474
+#define PROJECTION_ 475
+#define PROPERTY_ 476
+#define PUBLICATION_ 477
+#define PROS_ 478
+#define RADIUS_ 479
+#define REGION_ 480
+#define REPLACE_ 481
+#define RESAMPLE_ 482
+#define RESET_ 483
+#define RESOLUTION_ 484
+#define RGB_ 485
+#define ROOT_ 486
+#define ROTATE_ 487
+#define RULER_ 488
+#define SAMPLE_ 489
+#define SAOIMAGE_ 490
+#define SAOTNG_ 491
+#define SAVE_ 492
+#define SCALE_ 493
+#define SCAN_ 494
+#define SCIENTIFIC_ 495
+#define SCOPE_ 496
+#define SEGMENT_ 497
+#define SELECT_ 498
+#define SET_ 499
+#define SEXAGESIMAL_ 500
+#define SHAPE_ 501
+#define SHARED_ 502
+#define SHIFT_ 503
+#define SHMID_ 504
+#define SHOW_ 505
+#define SINH_ 506
+#define SIZE_ 507
+#define SLICE_ 508
+#define SMMAP_ 509
+#define SMOOTH_ 510
+#define SOCKET_ 511
+#define SOCKETGZ_ 512
+#define SOURCE_ 513
+#define SQRT_ 514
+#define SQUARED_ 515
+#define SSHARED_ 516
+#define STATS_ 517
+#define STATUS_ 518
+#define SUPERGALACTIC_ 519
+#define SUM_ 520
+#define SYSTEM_ 521
+#define TABLE_ 522
+#define TAG_ 523
+#define TEMPLATE_ 524
+#define TEXT_ 525
+#define THREADS_ 526
+#define THREED_ 527
+#define THRESHOLD_ 528
+#define THICK_ 529
+#define TRANSPARENCY_ 530
+#define TO_ 531
+#define TOGGLE_ 532
+#define TOPHAT_ 533
+#define TRUE_ 534
+#define TYPE_ 535
+#define UNDO_ 536
+#define UNHIGHLITE_ 537
+#define UNLOAD_ 538
+#define UNSELECT_ 539
+#define UPDATE_ 540
+#define USER_ 541
+#define VALUE_ 542
+#define VAR_ 543
+#define VIEW_ 544
+#define VECTOR_ 545
+#define VERSION_ 546
+#define VERTEX_ 547
+#define VERTICAL_ 548
+#define WARP_ 549
+#define WCS_ 550
+#define WCSA_ 551
+#define WCSB_ 552
+#define WCSC_ 553
+#define WCSD_ 554
+#define WCSE_ 555
+#define WCSF_ 556
+#define WCSG_ 557
+#define WCSH_ 558
+#define WCSI_ 559
+#define WCSJ_ 560
+#define WCSK_ 561
+#define WCSL_ 562
+#define WCSM_ 563
+#define WCSN_ 564
+#define WCSO_ 565
+#define WCSP_ 566
+#define WCSQ_ 567
+#define WCSR_ 568
+#define WCSS_ 569
+#define WCST_ 570
+#define WCSU_ 571
+#define WCSV_ 572
+#define WCSW_ 573
+#define WCSX_ 574
+#define WCSY_ 575
+#define WCSZ_ 576
+#define WCS0_ 577
+#define WFPC2_ 578
+#define WIDTH_ 579
+#define WIN32_ 580
+#define XML_ 581
+#define XY_ 582
+#define YES_ 583
+#define ZMAX_ 584
+#define ZSCALE_ 585
+#define ZOOM_ 586
@@ -704,7 +718,7 @@ typedef union YYSTYPE
int dash[2];
}
/* Line 1529 of yacc.c. */
-#line 708 "parser.H"
+#line 722 "parser.H"
YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
diff --git a/saotk/frame/parser.Y b/saotk/frame/parser.Y
index 737dfd8..2d9fb7f 100644
--- a/saotk/frame/parser.Y
+++ b/saotk/frame/parser.Y
@@ -26,8 +26,8 @@
extern int frlex(void*, frFlexLexer*);
extern void frerror(Base*, frFlexLexer*, const char*);
-static CoordSystem currentCoord = IMAGE;
-static SkyFrame currentSky = FK5;
+static Coord::CoordSystem currentCoord = Coord::IMAGE;
+static Coord::SkyFrame currentSky = Coord::FK5;
static unsigned short defaultProps = Marker::SELECT | Marker::HIGHLITE |
Marker::EDIT | Marker::MOVE | Marker::ROTATE |
@@ -92,9 +92,12 @@ static void setProps(unsigned short* props, unsigned short prop, int value);
%type <integer> compressType
%type <integer> fileNameType
%type <integer> smoothFunction
+%type <integer> pointShape
%type <integer> pointSize
%type <integer> endian
%type <integer> renderMethod
+%type <integer> analysisMethod
+%type <integer> analysisParam
%token <real> REAL
%token <integer> INT
@@ -139,6 +142,7 @@ static void setProps(unsigned short* props, unsigned short prop, int value);
%token BIN_
%token BITPIX_
%token BLOCK_
+%token BLT_
%token BOX_
%token BOXANNULUS_
%token BOXCAR_
@@ -163,6 +167,7 @@ static void setProps(unsigned short* props, unsigned short prop, int value);
%token COLORSCALE_
%token COLORSPACE_
%token COLS_
+%token COLUMN_
%token COMMAND_
%token COMPASS_
%token COMPOSITE_
@@ -298,11 +303,15 @@ static void setProps(unsigned short* props, unsigned short prop, int value);
%token ORIENT_
%token PAN_
%token PANNER_
+%token PARAM_
%token PARSER_
%token PASTE_
%token PERF_
+%token PHOTO_
%token PHYSICAL_
%token PIXEL_
+%token PLOT2D_
+%token PLOT3D_
%token POINT_
%token POINTER_
%token POLYGON_
@@ -311,7 +320,6 @@ static void setProps(unsigned short* props, unsigned short prop, int value);
%token PRINT_
%token PRESERVE_
%token PROJECTION_
-%token CIRCLE3D_
%token PROPERTY_
%token PUBLICATION_
%token PROS_
@@ -337,6 +345,7 @@ static void setProps(unsigned short* props, unsigned short prop, int value);
%token SELECT_
%token SET_
%token SEXAGESIMAL_
+%token SHAPE_
%token SHARED_
%token SHIFT_
%token SHMID_
@@ -352,6 +361,7 @@ static void setProps(unsigned short* props, unsigned short prop, int value);
%token SQRT_
%token SQUARED_
%token SSHARED_
+%token STATS_
%token STATUS_
%token SUPERGALACTIC_
%token SUM_
@@ -501,11 +511,11 @@ yesno : INT {$$=($1 ? 1 : 0);}
| FALSE_ {$$=0;}
;
-precision : /* empty */ {$$ = DEFAULT;}
- | DEFAULT_ {$$ = DEFAULT;}
- | FIXED_ {$$ = FIXED;}
- | SCIENTIFIC_ {$$ = SCIENTIFIC;}
- | INTEGER_ {$$ = INTEGER;}
+precision : /* empty */ {$$ = Base::DEFAULT;}
+ | DEFAULT_ {$$ = Base::DEFAULT;}
+ | FIXED_ {$$ = Base::FIXED;}
+ | SCIENTIFIC_ {$$ = Base::SCIENTIFIC;}
+ | INTEGER_ {$$ = Base::INTEGER;}
;
fileNameType : /* empty */ {$$ = Base::ROOTBASE;}
@@ -538,7 +548,7 @@ dms : DMSSTR {$$ = parseDMSStr($1);}
coord : sexagesimal sexagesimal
{
Vector r;
- if (currentSky == GALACTIC || currentSky == ECLIPTIC)
+ if (currentSky == Coord::GALACTIC || currentSky == Coord::ECLIPTIC)
r = Vector($1,$2);
else
r = Vector($1*360./24.,$2);
@@ -569,45 +579,45 @@ coord : sexagesimal sexagesimal
}
;
-coordSystem :IMAGE_ {$$ = currentCoord = IMAGE;}
- | PHYSICAL_ {$$ = currentCoord = PHYSICAL;}
- | DETECTOR_ {$$ = currentCoord = DETECTOR;}
- | AMPLIFIER_ {$$ = currentCoord = AMPLIFIER;}
- | wcsSystem {$$ = (CoordSystem)$1;}
- ;
-
-wcsSystem : WCS_ {$$ = currentCoord = WCS;}
- | WCSA_ {$$ = currentCoord = WCSA;}
- | WCSB_ {$$ = currentCoord = WCSB;}
- | WCSC_ {$$ = currentCoord = WCSC;}
- | WCSD_ {$$ = currentCoord = WCSD;}
- | WCSE_ {$$ = currentCoord = WCSE;}
- | WCSF_ {$$ = currentCoord = WCSF;}
- | WCSG_ {$$ = currentCoord = WCSG;}
- | WCSH_ {$$ = currentCoord = WCSH;}
- | WCSI_ {$$ = currentCoord = WCSI;}
- | WCSJ_ {$$ = currentCoord = WCSJ;}
- | WCSK_ {$$ = currentCoord = WCSK;}
- | WCSL_ {$$ = currentCoord = WCSL;}
- | WCSM_ {$$ = currentCoord = WCSM;}
- | WCSN_ {$$ = currentCoord = WCSN;}
- | WCSO_ {$$ = currentCoord = WCSO;}
- | WCSP_ {$$ = currentCoord = WCSP;}
- | WCSQ_ {$$ = currentCoord = WCSQ;}
- | WCSR_ {$$ = currentCoord = WCSR;}
- | WCSS_ {$$ = currentCoord = WCSS;}
- | WCST_ {$$ = currentCoord = WCST;}
- | WCSU_ {$$ = currentCoord = WCSU;}
- | WCSV_ {$$ = currentCoord = WCSV;}
- | WCSW_ {$$ = currentCoord = WCSW;}
- | WCSX_ {$$ = currentCoord = WCSX;}
- | WCSY_ {$$ = currentCoord = WCSY;}
- | WCSZ_ {$$ = currentCoord = WCSZ;}
- | WCS0_ {$$ = currentCoord = WCS0;}
- ;
-
-internalSystem : CANVAS_ {$$ = CANVAS;}
- | PANNER_ {$$ = PANNER;}
+coordSystem :IMAGE_ {$$ = currentCoord = Coord::IMAGE;}
+ | PHYSICAL_ {$$ = currentCoord = Coord::PHYSICAL;}
+ | DETECTOR_ {$$ = currentCoord = Coord::DETECTOR;}
+ | AMPLIFIER_ {$$ = currentCoord = Coord::AMPLIFIER;}
+ | wcsSystem {$$ = (Coord::CoordSystem)$1;}
+ ;
+
+wcsSystem : WCS_ {$$ = currentCoord = Coord::WCS;}
+ | WCSA_ {$$ = currentCoord = Coord::WCSA;}
+ | WCSB_ {$$ = currentCoord = Coord::WCSB;}
+ | WCSC_ {$$ = currentCoord = Coord::WCSC;}
+ | WCSD_ {$$ = currentCoord = Coord::WCSD;}
+ | WCSE_ {$$ = currentCoord = Coord::WCSE;}
+ | WCSF_ {$$ = currentCoord = Coord::WCSF;}
+ | WCSG_ {$$ = currentCoord = Coord::WCSG;}
+ | WCSH_ {$$ = currentCoord = Coord::WCSH;}
+ | WCSI_ {$$ = currentCoord = Coord::WCSI;}
+ | WCSJ_ {$$ = currentCoord = Coord::WCSJ;}
+ | WCSK_ {$$ = currentCoord = Coord::WCSK;}
+ | WCSL_ {$$ = currentCoord = Coord::WCSL;}
+ | WCSM_ {$$ = currentCoord = Coord::WCSM;}
+ | WCSN_ {$$ = currentCoord = Coord::WCSN;}
+ | WCSO_ {$$ = currentCoord = Coord::WCSO;}
+ | WCSP_ {$$ = currentCoord = Coord::WCSP;}
+ | WCSQ_ {$$ = currentCoord = Coord::WCSQ;}
+ | WCSR_ {$$ = currentCoord = Coord::WCSR;}
+ | WCSS_ {$$ = currentCoord = Coord::WCSS;}
+ | WCST_ {$$ = currentCoord = Coord::WCST;}
+ | WCSU_ {$$ = currentCoord = Coord::WCSU;}
+ | WCSV_ {$$ = currentCoord = Coord::WCSV;}
+ | WCSW_ {$$ = currentCoord = Coord::WCSW;}
+ | WCSX_ {$$ = currentCoord = Coord::WCSX;}
+ | WCSY_ {$$ = currentCoord = Coord::WCSY;}
+ | WCSZ_ {$$ = currentCoord = Coord::WCSZ;}
+ | WCS0_ {$$ = currentCoord = Coord::WCS0;}
+ ;
+
+internalSystem : CANVAS_ {$$ = Coord::CANVAS;}
+ | PANNER_ {$$ = Coord::PANNER;}
;
scaleType: LINEAR_ {$$ = FrScale::LINEARSCALE;}
@@ -620,28 +630,28 @@ scaleType: LINEAR_ {$$ = FrScale::LINEARSCALE;}
| HISTEQU_ {$$ = FrScale::HISTEQUSCALE;}
;
-skyFrame : /* empty */ {$$ = currentSky = FK5;}
- | FK4_ {$$ = currentSky = FK4;}
- | FK4_NO_E_ {$$ = currentSky = FK4_NO_E;}
- | B1950_ {$$ = currentSky = FK4;}
- | FK5_ {$$ = currentSky = FK5;}
- | J2000_ {$$ = currentSky = FK5;}
- | ICRS_ {$$ = currentSky = ICRS;}
- | GALACTIC_ {$$ = currentSky = GALACTIC;}
- | SUPERGALACTIC_ {$$ = currentSky = SUPERGALACTIC;}
- | ECLIPTIC_ {$$ = currentSky = ECLIPTIC;}
- | HELIOECLIPTIC_ {$$ = currentSky = HELIOECLIPTIC;}
+skyFrame : /* empty */ {$$ = currentSky = Coord::FK5;}
+ | FK4_ {$$ = currentSky = Coord::FK4;}
+ | FK4_NO_E_ {$$ = currentSky = Coord::FK4_NO_E;}
+ | B1950_ {$$ = currentSky = Coord::FK4;}
+ | FK5_ {$$ = currentSky = Coord::FK5;}
+ | J2000_ {$$ = currentSky = Coord::FK5;}
+ | ICRS_ {$$ = currentSky = Coord::ICRS;}
+ | GALACTIC_ {$$ = currentSky = Coord::GALACTIC;}
+ | SUPERGALACTIC_ {$$ = currentSky = Coord::SUPERGALACTIC;}
+ | ECLIPTIC_ {$$ = currentSky = Coord::ECLIPTIC;}
+ | HELIOECLIPTIC_ {$$ = currentSky = Coord::HELIOECLIPTIC;}
;
-skyFormat : /* empty */ {$$=DEGREES;}
- | DEGREES_ {$$=DEGREES;}
- | SEXAGESIMAL_ {$$=SEXAGESIMAL;}
+skyFormat : /* empty */ {$$=Coord::DEGREES;}
+ | DEGREES_ {$$=Coord::DEGREES;}
+ | SEXAGESIMAL_ {$$=Coord::SEXAGESIMAL;}
;
-skyDist : /* empty */ {$$=DEGREE;}
- | DEGREES_ {$$=DEGREE;}
- | ARCMIN_ {$$=ARCMIN;}
- | ARCSEC_ {$$=ARCSEC;}
+skyDist : /* empty */ {$$=Coord::DEGREE;}
+ | DEGREES_ {$$=Coord::DEGREE;}
+ | ARCMIN_ {$$=Coord::ARCMIN;}
+ | ARCSEC_ {$$=Coord::ARCSEC;}
;
contourClipMode: numeric {$$ = $1;}
@@ -671,10 +681,30 @@ compressType: /* empty */ {$$ = Base::NOCOMPRESS;}
| GZ_ {$$ = Base::GZ;}
;
+pointShape: /* empty */ {$$ = Point::CIRCLE;}
+ | CIRCLE_ {$$ = Point::CIRCLE;}
+ | BOX_ {$$ = Point::BOX;}
+ | DIAMOND_ {$$ = Point::DIAMOND;}
+ | CROSS_ {$$ = Point::CROSS;}
+ | 'X' {$$ = Point::EX;}
+ | ARROW_ {$$ = Point::ARROW;}
+ | BOXCIRCLE_ {$$ = Point::BOXCIRCLE;}
+ ;
+
pointSize: /* empty */ {$$ = POINTSIZE;}
| INT {$$ = $1;}
;
+analysisMethod: STATS_ {$$ = Marker::STATS;}
+ | PLOT2D_ {$$ = Marker::PLOT2D;}
+ | PLOT3D_ {$$ = Marker::PLOT3D;}
+ ;
+
+analysisParam : /* emtpy */ {$$ = Marker::AVERAGE;}
+ | AVERAGE_ {$$ = Marker::AVERAGE;}
+ | SUM_ {$$ = Marker::SUM;}
+ ;
+
endian : /* empty */ {$$ = FitsFile::BIGENDIAN;}
| BIGENDIAN_ {$$ = FitsFile::BIGENDIAN;}
| LITTLEENDIAN_ {$$ = FitsFile::LITTLEENDIAN;}
@@ -798,24 +828,24 @@ colorscale : scaleType {fr->colorScaleCmd((FrScale::ColorScaleType)$1);}
contour : AUX_ contourAux
| COLOR_ STRING {fr->contourSetColorCmd($2);}
| COPY_ coordSystem skyFrame
- {fr->contourCopyCmd((CoordSystem)$2, (SkyFrame)$3);}
+ {fr->contourCopyCmd((Coord::CoordSystem)$2, (Coord::SkyFrame)$3);}
| CREATE_ contourCreate
| DASH_ INT {fr->contourSetDashCmd($2);}
| DELETE_ {fr->contourDeleteCmd();}
| DELETE_ ALL_ {fr->contourDeleteAllCmd();}
| LOAD_ STRING INT INT STRING coordSystem skyFrame
- {fr->contourLoadCmd($2, $3, $4, $5, (CoordSystem)$6, (SkyFrame)$7);}
+ {fr->contourLoadCmd($2, $3, $4, $5, (Coord::CoordSystem)$6, (Coord::SkyFrame)$7);}
| PASTE_ STRING INT INT POINTER coordSystem skyFrame
- {fr->contourPasteCmd($2, $3, $4, $5, (CoordSystem)$6, (SkyFrame)$7);}
+ {fr->contourPasteCmd($2, $3, $4, $5, (Coord::CoordSystem)$6, (Coord::SkyFrame)$7);}
| SAVE_ STRING coordSystem skyFrame
- {fr->contourSaveCmd($2, (CoordSystem)$3, (SkyFrame)$4);}
+ {fr->contourSaveCmd($2, (Coord::CoordSystem)$3, (Coord::SkyFrame)$4);}
| WIDTH_ INT {fr->contourSetLineWidthCmd($2);}
;
contourAux : HEAD_ {fr->contourAuxHeadCmd();}
| NEXT_ {fr->contourAuxNextCmd();}
| SAVE_ STRING coordSystem skyFrame
- {fr->contourAuxSaveCmd($2, (CoordSystem)$3, (SkyFrame)$4);}
+ {fr->contourAuxSaveCmd($2, (Coord::CoordSystem)$3, (Coord::SkyFrame)$4);}
;
contourCreate : STRING INT INT contourmethod INT INT scaleType numeric contourClipMode numeric numeric STRING
@@ -832,10 +862,10 @@ contourmethod : SMOOTH_ {$$ = FVContour::SMOOTH;}
crop : /* empty */ {fr->cropCmd();}
| numeric numeric numeric numeric coordSystem skyFrame
{fr->cropCmd(Vector($1,$2), Vector($3,$4),
- (CoordSystem)$5, (SkyFrame)$6);}
+ (Coord::CoordSystem)$5, (Coord::SkyFrame)$6);}
| CENTER_ coord coordSystem skyFrame numeric numeric coordSystem skyDist
- {fr->cropCenterCmd(Vector($2), (CoordSystem)$3, (SkyFrame)$4,
- Vector($5,$6), (CoordSystem)$7, (SkyDist)$8);}
+ {fr->cropCenterCmd(Vector($2), (Coord::CoordSystem)$3, (Coord::SkyFrame)$4,
+ Vector($5,$6), (Coord::CoordSystem)$7, (Coord::SkyDist)$8);}
| THREED_ crop3d
| BEGIN_ numeric numeric {fr->cropBeginCmd(Vector($2,$3));}
| MOTION_ numeric numeric {fr->cropMotionCmd(Vector($2,$3));}
@@ -843,27 +873,27 @@ crop : /* empty */ {fr->cropCmd();}
;
crop3d : /* empty */ {fr->crop3dCmd();}
- | numeric numeric coordSystem {fr->crop3dCmd($1, $2, (CoordSystem)$3);}
+ | numeric numeric coordSystem {fr->crop3dCmd($1, $2, (Coord::CoordSystem)$3);}
| BEGIN_ numeric numeric INT {fr->crop3dBeginCmd(Vector($2,$3),$4);}
| MOTION_ numeric numeric INT {fr->crop3dMotionCmd(Vector($2,$3),$4);}
| END_ numeric numeric INT {fr->crop3dEndCmd(Vector($2,$3),$4);}
;
crosshair: internalSystem numeric numeric
- {fr->crosshairCmd(Vector($2,$3), (InternalSystem)$1);}
+ {fr->crosshairCmd(Vector($2,$3), (Coord::InternalSystem)$1);}
| coordSystem skyFrame coord
- {fr->crosshairCmd(Vector($3), (CoordSystem)$1, (SkyFrame)$2);}
+ {fr->crosshairCmd(Vector($3), (Coord::CoordSystem)$1, (Coord::SkyFrame)$2);}
| yesno {fr->crosshairCmd($1);}
| WARP_ numeric numeric {fr->crosshairWarpCmd(Vector($2,$3));}
| BEGIN_ MOTION_ internalSystem numeric numeric
- {fr->crosshairCmd(Vector($4,$5), (InternalSystem)$3);}
+ {fr->crosshairCmd(Vector($4,$5), (Coord::InternalSystem)$3);}
| MOTION_ internalSystem numeric numeric
- {fr->crosshairCmd(Vector($3,$4), (InternalSystem)$2);}
+ {fr->crosshairCmd(Vector($3,$4), (Coord::InternalSystem)$2);}
| BEGIN_ MOTION_ coordSystem coord
- {fr->crosshairCmd(Vector($4), (CoordSystem)$3);}
+ {fr->crosshairCmd(Vector($4), (Coord::CoordSystem)$3);}
| MOTION_ coordSystem coord
- {fr->crosshairCmd(Vector($3), (CoordSystem)$2);}
+ {fr->crosshairCmd(Vector($3), (Coord::CoordSystem)$2);}
;
fitsy : HAS_ EXT_ STRING {fr->fitsyHasExtCmd($3);}
@@ -886,7 +916,7 @@ get : BG_ COLOR_ {fr->getBgColorCmd();}
| GRID_ getGrid
| HISTOGRAM_ STRING STRING {fr->getHistogramCmd($2,$3);}
| HORIZONTAL_ CUT_ STRING STRING numeric numeric internalSystem
- {fr->getHorzCutCmd($3,$4,Vector($5,$6),(InternalSystem)$7);}
+ {fr->getHorzCutCmd($3,$4,Vector($5,$6),(Coord::InternalSystem)$7);}
| IIS_ getiis
| INFO_ getInfo
| MINMAX_ {fr->getMinMaxCmd();}
@@ -896,16 +926,16 @@ get : BG_ COLOR_ {fr->getBgColorCmd();}
| ORIENT_ {fr->getOrientCmd();}
| PAN_ getPan
| PIXEL_ TABLE_ internalSystem numeric numeric INT INT STRING
- {fr->getPixelTableCmd(Vector($4,$5), (InternalSystem)$3, $6, $7, $8);}
+ {fr->getPixelTableCmd(Vector($4,$5), (Coord::InternalSystem)$3, $6, $7, $8);}
| RGB_ getRGB
| ROTATE_ getRotate
| SMOOTH_ getSmooth
| THREED_ getThreed
| TYPE_ {fr->getTypeCmd();}
| VALUE_ internalSystem numeric numeric
- {fr->getValueCmd(Vector($3,$4),(InternalSystem)$2);}
+ {fr->getValueCmd(Vector($3,$4),(Coord::InternalSystem)$2);}
| VERTICAL_ CUT_ STRING STRING numeric numeric internalSystem
- {fr->getVertCutCmd($3,$4,Vector($5,$6),(InternalSystem)$7);}
+ {fr->getVertCutCmd($3,$4,Vector($5,$6),(Coord::InternalSystem)$7);}
| WCS_ getWCS
| ZOOM_ getZoom
;
@@ -956,7 +986,7 @@ getColorMap : LEVEL_ getColorMapLevel
getColorMapLevel: INT {fr->getColorMapLevelCmd($1);}
| INT internalSystem numeric numeric
- {fr->getColorMapLevelCmd($1,Vector($3,$4),(InternalSystem)$2);}
+ {fr->getColorMapLevelCmd($1,Vector($3,$4),(Coord::InternalSystem)$2);}
| INT numeric numeric scaleType numeric
{fr->getColorMapLevelCmd($1,$2,$3,(FrScale::ColorScaleType)$4,$5);}
;
@@ -971,7 +1001,7 @@ getColorScaleLevel: INT numeric numeric scaleType numeric
;
getContour: coordSystem skyFrame
- {fr->getContourCmd((CoordSystem)$1,(SkyFrame)$2);}
+ {fr->getContourCmd((Coord::CoordSystem)$1,(Coord::SkyFrame)$2);}
| AUX_ getContourAux
| CLIP_ getContourClip
| COLOR_ {fr->getContourColorNameCmd();}
@@ -998,58 +1028,58 @@ getContourColorScale : /* empty */ {fr->getContourScaleCmd();}
;
getCoord : numeric numeric coordSystem skyFrame skyFormat
- {fr->getCoordCmd(Vector($1,$2), (CoordSystem)$3, (SkyFrame)$4,
- (SkyFormat)$5);}
+ {fr->getCoordCmd(Vector($1,$2), (Coord::CoordSystem)$3, (Coord::SkyFrame)$4,
+ (Coord::SkyFormat)$5);}
| internalSystem numeric numeric coordSystem skyFrame skyFormat
{
// backward compatibility
- fr->getCoordCmd(Vector($2,$3), (CoordSystem)$4, (SkyFrame)$5,
- (SkyFormat)$6);
+ fr->getCoordCmd(Vector($2,$3), (Coord::CoordSystem)$4, (Coord::SkyFrame)$5,
+ (Coord::SkyFormat)$6);
}
| numeric coordSystem INT
- {fr->getCoordFromRefCmd($1, (CoordSystem)$2, $3);}
+ {fr->getCoordFromRefCmd($1, (Coord::CoordSystem)$2, $3);}
| FROM_ numeric coordSystem INT
- {fr->getCoordFromRefCmd($2, (CoordSystem)$3, $4);}
+ {fr->getCoordFromRefCmd($2, (Coord::CoordSystem)$3, $4);}
| TO_ numeric coordSystem INT
- {fr->getCoordToRefCmd($2, (CoordSystem)$3, $4);}
+ {fr->getCoordToRefCmd($2, (Coord::CoordSystem)$3, $4);}
;
getCrop : coordSystem skyFrame skyFormat
- {fr->getCropCmd((CoordSystem)$1, (SkyFrame)$2, (SkyFormat)$3);}
+ {fr->getCropCmd((Coord::CoordSystem)$1, (Coord::SkyFrame)$2, (Coord::SkyFormat)$3);}
| CENTER_ coordSystem skyFrame skyFormat coordSystem skyDist
- {fr->getCropCenterCmd((CoordSystem)$2, (SkyFrame)$3, (SkyFormat)$4,
- (CoordSystem)$5, (SkyDist)$6);}
- | THREED_ coordSystem {fr->getCrop3dCmd((CoordSystem)$2);}
+ {fr->getCropCenterCmd((Coord::CoordSystem)$2, (Coord::SkyFrame)$3, (Coord::SkyFormat)$4,
+ (Coord::CoordSystem)$5, (Coord::SkyDist)$6);}
+ | THREED_ coordSystem {fr->getCrop3dCmd((Coord::CoordSystem)$2);}
;
-getCrosshair: internalSystem {fr->getCrosshairCmd((InternalSystem)$1);}
+getCrosshair: internalSystem {fr->getCrosshairCmd((Coord::InternalSystem)$1);}
| coordSystem skyFrame skyFormat precision
- {fr->getCrosshairCmd((CoordSystem)$1, (SkyFrame)$2, (SkyFormat)$3,
- (Precision)$4)}
+ {fr->getCrosshairCmd((Coord::CoordSystem)$1, (Coord::SkyFrame)$2, (Coord::SkyFormat)$3,
+ (Base::Precision)$4)}
| STATUS_ {fr->getCrosshairStatusCmd();}
;
-getCursor : internalSystem {fr->getCursorCmd((InternalSystem)$1);}
+getCursor : internalSystem {fr->getCursorCmd((Coord::InternalSystem)$1);}
| coordSystem skyFrame skyFormat precision
- {fr->getCursorCmd((CoordSystem)$1, (SkyFrame)$2, (SkyFormat)$3,
- (Precision)$4);}
+ {fr->getCursorCmd((Coord::CoordSystem)$1, (Coord::SkyFrame)$2, (Coord::SkyFormat)$3,
+ (Base::Precision)$4);}
;
getData : coordSystem skyFrame coord numeric numeric STRING
{fr->getDataValuesCmd(1, Vector($3),
- (CoordSystem)$1, (SkyFrame)$2, Vector($4,$5), $6);}
+ (Coord::CoordSystem)$1, (Coord::SkyFrame)$2, Vector($4,$5), $6);}
| INT coordSystem skyFrame coord numeric numeric STRING
{fr->getDataValuesCmd($1, Vector($4),
- (CoordSystem)$2, (SkyFrame)$3, Vector($5,$6), $7);}
+ (Coord::CoordSystem)$2, (Coord::SkyFrame)$3, Vector($5,$6), $7);}
| internalSystem numeric numeric INT INT
- {fr->getDataValuesCmd(Vector($2,$3),(InternalSystem)$1,
+ {fr->getDataValuesCmd(Vector($2,$3),(Coord::InternalSystem)$1,
Vector($4,$5));}
;
getInfo : STRING {fr->getInfoCmd($1);}
| CLIP_ {fr->getInfoClipCmd();}
| internalSystem numeric numeric STRING
- {fr->getInfoCmd(Vector($2,$3), (InternalSystem)$1, $4);}
+ {fr->getInfoCmd(Vector($2,$3), (Coord::InternalSystem)$1, $4);}
;
getiis : POINTER INT INT INT INT {fr->iisGetCmd((char*)$1,$2,$3,$4,$5);}
@@ -1066,21 +1096,21 @@ getIISFileName : /* empty */ {fr->iisGetFileNameCmd();}
getFits : NAXES_ /* empty */ {fr->getFitsNAxesCmd();}
| CENTER_ coordSystem skyFrame skyFormat precision
- {fr->getFitsCenterCmd((CoordSystem)$2,(SkyFrame)$3,(SkyFormat)$4,
- (Precision)$5);}
+ {fr->getFitsCenterCmd((Coord::CoordSystem)$2,(Coord::SkyFrame)$3,(Coord::SkyFormat)$4,
+ (Base::Precision)$5);}
| COUNT_ {fr->getFitsCountCmd();}
| DEPTH_ getFitsDepth
| BITPIX_ {fr->getBitpixCmd();}
| EXT_ internalSystem numeric numeric
- {fr->getFitsExtCmd(Vector($3,$4),(InternalSystem)$2);}
+ {fr->getFitsExtCmd(Vector($3,$4),(Coord::InternalSystem)$2);}
| FILE_ NAME_ getFitsFileName
| HEADER_ getFitsHeader
| HEIGHT_ {fr->getHeightCmd();}
| OBJECT_ NAME_ {fr->getFitsObjectNameCmd();}
| SIZE_ {fr->getFitsSizeCmd();}
| SIZE_ coordSystem skyFrame skyDist precision
- {fr->getFitsSizeCmd((CoordSystem)$2,(SkyFrame)$3,(SkyDist)$4,
- (Precision)$5);}
+ {fr->getFitsSizeCmd((Coord::CoordSystem)$2,(Coord::SkyFrame)$3,(Coord::SkyDist)$4,
+ (Base::Precision)$5);}
| SLICE_ getFitsSlice
| WIDTH_ {fr->getWidthCmd();}
;
@@ -1097,7 +1127,7 @@ getFitsDepth : /* empty */ {fr->getFitsDepthCmd(2);}
getFitsFileName: fileNameType
{fr->getFitsFileNameCmd((Base::FileNameType)$1);}
| fileNameType internalSystem numeric numeric
- {fr->getFitsFileNameCmd(Vector($3,$4), (InternalSystem)$2,
+ {fr->getFitsFileNameCmd(Vector($3,$4), (Coord::InternalSystem)$2,
(Base::FileNameType)$1);}
| fileNameType INT
{fr->getFitsFileNameCmd($2, (Base::FileNameType)$1);}
@@ -1124,7 +1154,7 @@ getRGB : CHANNEL_ {fr->getRGBChannelCmd();}
| VIEW_ {fr->getRGBViewCmd();}
;
-getRotate : precision {fr->getRotateCmd((Precision)$1);}
+getRotate : precision {fr->getRotateCmd((Base::Precision)$1);}
;
getSmooth : FUNCTION_ {fr->getSmoothFunctionCmd();}
@@ -1139,18 +1169,18 @@ getThreed : VIEW_ {fr->get3dViewCmd();}
getWCS : /* empty */ {fr->getWCSCmd();}
| ALIGN_ getWCSAlign
- | NAME_ wcsSystem {fr->getWCSNameCmd((CoordSystem)$2);}
+ | NAME_ wcsSystem {fr->getWCSNameCmd((Coord::CoordSystem)$2);}
;
getWCSAlign : /* empty */ {fr->getWCSAlignCmd();}
| POINTER_ {fr->getWCSAlignPointerCmd();}
;
-getZoom : precision {fr->getZoomCmd((Precision)$1);}
+getZoom : precision {fr->getZoomCmd((Base::Precision)$1);}
;
grid : CREATE_ coordSystem skyFrame skyFormat gridType STRING
- {fr->gridCmd((CoordSystem)$2, (SkyFrame)$3, (SkyFormat)$4,
+ {fr->gridCmd((Coord::CoordSystem)$2, (Coord::SkyFrame)$3, (Coord::SkyFormat)$4,
(Grid2d::GridType)$5, $6);}
| DELETE_ {fr->gridDeleteCmd();}
;
@@ -1160,6 +1190,7 @@ gridType : ANALYSIS_ {$$=Grid2d::ANALYSIS;}
;
has : AMPLIFIER_ {fr->hasAmplifierCmd();}
+ | BIN_ hasBin
| CONTOUR_ hasContour
| CROP_ {fr->hasCropCmd();}
| DATAMIN_ {fr->hasDATAMINCmd();}
@@ -1172,10 +1203,13 @@ has : AMPLIFIER_ {fr->hasAmplifierCmd();}
| MARKER_ hasMarker
| PHYSICAL_ {fr->hasPhysicalCmd();}
| SMOOTH_ {fr->hasSmoothCmd();}
- | SYSTEM_ coordSystem {fr->hasSystemCmd((CoordSystem)$2);}
+ | SYSTEM_ coordSystem {fr->hasSystemCmd((Coord::CoordSystem)$2);}
| WCS_ hasWCS
;
+hasBin : COLUMN_ STRING {fr->hasBinColCmd($2);}
+ ;
+
hasContour : /* empty */ {fr->hasContourCmd();}
| AUX_ {fr->hasContourAuxCmd();}
;
@@ -1192,9 +1226,9 @@ hasMarker : HIGHLITE_ {fr->hasMarkerHighlitedCmd();}
| UNDO_ {fr->hasMarkerUndoCmd();}
;
-hasWCS : coordSystem {fr->hasWCSCmd((CoordSystem)$1);}
- | EQUATORIAL_ coordSystem {fr->hasWCSEquCmd((CoordSystem)$2);}
- | CELESTRIAL_ coordSystem {fr->hasWCSCelCmd((CoordSystem)$2);}
+hasWCS : coordSystem {fr->hasWCSCmd((Coord::CoordSystem)$1);}
+ | EQUATORIAL_ coordSystem {fr->hasWCSEquCmd((Coord::CoordSystem)$2);}
+ | CELESTRIAL_ coordSystem {fr->hasWCSCelCmd((Coord::CoordSystem)$2);}
| ALT_ {fr->hasWCSAltCmd();}
;
@@ -1216,15 +1250,16 @@ iisSetFileName : STRING {fr->iisSetFileNameCmd($1);}
;
iiscursor: INT INT CANVAS_
- {fr->iisSetCursorCmd(Vector($1,$2),CANVAS);}
+ {fr->iisSetCursorCmd(Vector($1,$2),Coord::CANVAS);}
| INT INT coordSystem
- {fr->iisSetCursorCmd(Vector($1,$2),(CoordSystem)$3);}
+ {fr->iisSetCursorCmd(Vector($1,$2),(Coord::CoordSystem)$3);}
| MODE_ yesno {fr->iisCursorModeCmd($2);}
;
load : ARRAY_ loadArr
| FITS_ loadFits
| INCR_ loadIncr
+ | PHOTO_ STRING STRING {fr->loadPhotoCmd($2,$3);}
;
loadArr : STRING ALLOC_ STRING layerType
@@ -1348,136 +1383,136 @@ loadFitsMosaic : IMAGE_ IRAF_ loadFitsMosaicImageIRAF
;
loadFitsMosaicImageIRAF : STRING ALLOC_ STRING layerType
- {fr->loadMosaicImageAllocCmd(Base::IRAF, WCS,
+ {fr->loadMosaicImageAllocCmd(Base::IRAF, Coord::WCS,
$3, $1, (Base::LayerType)$4);}
| STRING ALLOCGZ_ STRING layerType
- {fr->loadMosaicImageAllocGZCmd(Base::IRAF, WCS,
+ {fr->loadMosaicImageAllocGZCmd(Base::IRAF, Coord::WCS,
$3, $1,(Base::LayerType)$4);}
| STRING CHANNEL_ STRING layerType
- {fr->loadMosaicImageChannelCmd(Base::IRAF, WCS,
+ {fr->loadMosaicImageChannelCmd(Base::IRAF, Coord::WCS,
$3, $1,(Base::LayerType)$4);}
| STRING MMAP_ incrLoad layerType
- {fr->loadMosaicImageMMapCmd(Base::IRAF, WCS,
+ {fr->loadMosaicImageMMapCmd(Base::IRAF, Coord::WCS,
$1,(Base::LoadMethod)$3, (Base::LayerType)$4);}
| STRING MMAPINCR_ incrLoad layerType
- {fr->loadMosaicImageMMapIncrCmd(Base::IRAF, WCS,
+ {fr->loadMosaicImageMMapIncrCmd(Base::IRAF, Coord::WCS,
$1,(Base::LoadMethod)$3, (Base::LayerType)$4);}
| STRING SHARED_ shmType INT incrLoad layerType
- {fr->loadMosaicImageShareCmd(Base::IRAF, WCS,
+ {fr->loadMosaicImageShareCmd(Base::IRAF, Coord::WCS,
(Base::ShmType)$3, $4, $1, (Base::LoadMethod)$5,
(Base::LayerType)$6);}
| STRING SOCKET_ INT layerType
- {fr->loadMosaicImageSocketCmd(Base::IRAF, WCS,
+ {fr->loadMosaicImageSocketCmd(Base::IRAF, Coord::WCS,
$3, $1, (Base::LayerType)$4);}
| STRING SOCKETGZ_ INT layerType
- {fr->loadMosaicImageSocketGZCmd(Base::IRAF, WCS,
+ {fr->loadMosaicImageSocketGZCmd(Base::IRAF, Coord::WCS,
$3, $1, (Base::LayerType)$4);}
| STRING VAR_ STRING incrLoad layerType
- {fr->loadMosaicImageVarCmd(Base::IRAF, WCS,
+ {fr->loadMosaicImageVarCmd(Base::IRAF, Coord::WCS,
$3, $1, (Base::LoadMethod)$4, (Base::LayerType)$5);}
;
loadFitsMosaicIRAF : STRING ALLOC_ STRING layerType
- {fr->loadMosaicAllocCmd(Base::IRAF, WCS,
+ {fr->loadMosaicAllocCmd(Base::IRAF, Coord::WCS,
$3, $1, (Base::LayerType)$4);}
| STRING ALLOCGZ_ STRING layerType
- {fr->loadMosaicAllocGZCmd(Base::IRAF, WCS,
+ {fr->loadMosaicAllocGZCmd(Base::IRAF, Coord::WCS,
$3, $1, (Base::LayerType)$4);}
| STRING CHANNEL_ STRING layerType
- {fr->loadMosaicChannelCmd(Base::IRAF, WCS,
+ {fr->loadMosaicChannelCmd(Base::IRAF, Coord::WCS,
$3, $1, (Base::LayerType)$4);}
| STRING MMAP_ incrLoad layerType
- {fr->loadMosaicMMapCmd(Base::IRAF, WCS,
+ {fr->loadMosaicMMapCmd(Base::IRAF, Coord::WCS,
$1,(Base::LoadMethod)$3, (Base::LayerType)$4);}
| STRING STRING SMMAP_ incrLoad layerType
- {fr->loadMosaicSMMapCmd(Base::IRAF, WCS,
+ {fr->loadMosaicSMMapCmd(Base::IRAF, Coord::WCS,
$1, $2,(Base::LoadMethod)$4, (Base::LayerType)$5);}
| STRING MMAPINCR_ incrLoad layerType
- {fr->loadMosaicMMapIncrCmd(Base::IRAF, WCS,
+ {fr->loadMosaicMMapIncrCmd(Base::IRAF, Coord::WCS,
$1,(Base::LoadMethod)$3, (Base::LayerType)$4);}
| STRING SHARED_ shmType INT incrLoad layerType
- {fr->loadMosaicShareCmd(Base::IRAF, WCS,
+ {fr->loadMosaicShareCmd(Base::IRAF, Coord::WCS,
(Base::ShmType)$3, $4, $1, (Base::LoadMethod)$5,
(Base::LayerType)$6);}
| STRING SSHARED_ shmType INT INT incrLoad layerType
- {fr->loadMosaicSShareCmd(Base::IRAF, WCS,
+ {fr->loadMosaicSShareCmd(Base::IRAF, Coord::WCS,
(Base::ShmType)$3, $4, $5, $1, (Base::LoadMethod)$6,
(Base::LayerType)$7);}
| STRING SOCKET_ INT layerType
- {fr->loadMosaicSocketCmd(Base::IRAF, WCS,
+ {fr->loadMosaicSocketCmd(Base::IRAF, Coord::WCS,
$3, $1, (Base::LayerType)$4);}
| STRING SOCKETGZ_ INT layerType
- {fr->loadMosaicSocketGZCmd(Base::IRAF, WCS,
+ {fr->loadMosaicSocketGZCmd(Base::IRAF, Coord::WCS,
$3, $1, (Base::LayerType)$4);}
| STRING VAR_ STRING incrLoad layerType
- {fr->loadMosaicVarCmd(Base::IRAF, WCS,
+ {fr->loadMosaicVarCmd(Base::IRAF, Coord::WCS,
$3, $1, (Base::LoadMethod)$4, (Base::LayerType)$5);}
;
loadFitsMosaicImageWCS : wcsSystem STRING ALLOC_ STRING layerType
- {fr->loadMosaicImageAllocCmd(Base::WCSMOSAIC, (CoordSystem)$1,
+ {fr->loadMosaicImageAllocCmd(Base::WCSMOSAIC, (Coord::CoordSystem)$1,
$4, $2, (Base::LayerType)$5);}
| wcsSystem STRING ALLOCGZ_ STRING layerType
- {fr->loadMosaicImageAllocGZCmd(Base::WCSMOSAIC, (CoordSystem)$1,
+ {fr->loadMosaicImageAllocGZCmd(Base::WCSMOSAIC, (Coord::CoordSystem)$1,
$4, $2, (Base::LayerType)$5);}
| wcsSystem STRING CHANNEL_ STRING layerType
- {fr->loadMosaicImageChannelCmd(Base::WCSMOSAIC, (CoordSystem)$1,
+ {fr->loadMosaicImageChannelCmd(Base::WCSMOSAIC, (Coord::CoordSystem)$1,
$4, $2, (Base::LayerType)$5);}
| wcsSystem STRING MMAP_ incrLoad layerType
- {fr->loadMosaicImageMMapCmd(Base::WCSMOSAIC, (CoordSystem)$1,
+ {fr->loadMosaicImageMMapCmd(Base::WCSMOSAIC, (Coord::CoordSystem)$1,
$2, (Base::LoadMethod)$4, (Base::LayerType)$5);}
| wcsSystem STRING MMAPINCR_ incrLoad layerType
- {fr->loadMosaicImageMMapIncrCmd(Base::WCSMOSAIC, (CoordSystem)$1,
+ {fr->loadMosaicImageMMapIncrCmd(Base::WCSMOSAIC, (Coord::CoordSystem)$1,
$2, (Base::LoadMethod)$4, (Base::LayerType)$5);}
| wcsSystem STRING SHARED_ shmType INT incrLoad layerType
- {fr->loadMosaicImageShareCmd(Base::WCSMOSAIC, (CoordSystem)$1,
+ {fr->loadMosaicImageShareCmd(Base::WCSMOSAIC, (Coord::CoordSystem)$1,
(Base::ShmType)$4, $5, $2, (Base::LoadMethod)$6,
(Base::LayerType)$7);}
| wcsSystem STRING SOCKET_ INT layerType
- {fr->loadMosaicImageSocketCmd(Base::WCSMOSAIC, (CoordSystem)$1,
+ {fr->loadMosaicImageSocketCmd(Base::WCSMOSAIC, (Coord::CoordSystem)$1,
$4, $2, (Base::LayerType)$5);}
| wcsSystem STRING SOCKETGZ_ INT layerType
- {fr->loadMosaicImageSocketGZCmd(Base::WCSMOSAIC, (CoordSystem)$1,
+ {fr->loadMosaicImageSocketGZCmd(Base::WCSMOSAIC, (Coord::CoordSystem)$1,
$4, $2, (Base::LayerType)$5);}
| wcsSystem STRING VAR_ STRING incrLoad layerType
- {fr->loadMosaicImageVarCmd(Base::WCSMOSAIC, (CoordSystem)$1,
+ {fr->loadMosaicImageVarCmd(Base::WCSMOSAIC, (Coord::CoordSystem)$1,
$4, $2, (Base::LoadMethod)$5, (Base::LayerType)$6);}
;
loadFitsMosaicWCS : wcsSystem STRING ALLOC_ STRING layerType
- {fr->loadMosaicAllocCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicAllocCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
$4, $2, (Base::LayerType)$5);}
| wcsSystem STRING ALLOCGZ_ STRING layerType
- {fr->loadMosaicAllocGZCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicAllocGZCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
$4, $2, (Base::LayerType)$5);}
| wcsSystem STRING CHANNEL_ STRING layerType
- {fr->loadMosaicChannelCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicChannelCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
$4, $2, (Base::LayerType)$5);}
| wcsSystem STRING MMAP_ incrLoad layerType
- {fr->loadMosaicMMapCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicMMapCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
$2, (Base::LoadMethod)$4, (Base::LayerType)$5);}
| wcsSystem STRING STRING SMMAP_ incrLoad layerType
- {fr->loadMosaicSMMapCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicSMMapCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
$2, $3, (Base::LoadMethod)$5, (Base::LayerType)$6);}
| wcsSystem STRING MMAPINCR_ incrLoad layerType
- {fr->loadMosaicMMapIncrCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicMMapIncrCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
$2, (Base::LoadMethod)$4, (Base::LayerType)$5);}
| wcsSystem STRING SHARED_ shmType INT incrLoad layerType
- {fr->loadMosaicShareCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicShareCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
(Base::ShmType)$4, $5, $2, (Base::LoadMethod)$6,
(Base::LayerType)$7);}
| wcsSystem STRING SSHARED_ shmType INT INT incrLoad layerType
- {fr->loadMosaicSShareCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicSShareCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
(Base::ShmType)$4, $5, $6, $2, (Base::LoadMethod)$7,
(Base::LayerType)$8);}
| wcsSystem STRING SOCKET_ INT layerType
- {fr->loadMosaicSocketCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicSocketCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
$4, $2, (Base::LayerType)$5);}
| wcsSystem STRING SOCKETGZ_ INT layerType
- {fr->loadMosaicSocketGZCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicSocketGZCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
$4, $2, (Base::LayerType)$5);}
| wcsSystem STRING VAR_ STRING incrLoad layerType
- {fr->loadMosaicVarCmd((Base::WCSMOSAIC), (CoordSystem)$1,
+ {fr->loadMosaicVarCmd((Base::WCSMOSAIC), (Coord::CoordSystem)$1,
$4, $2, (Base::LoadMethod)$5, (Base::LayerType)$6);}
;
@@ -1584,35 +1619,41 @@ marker : CENTROID_ markerCentroid
| HIGHLITE_ TOGGLE_ numeric numeric
{fr->markerHighliteToggleCmd(Vector($3,$4));}
+ | INT ANALYSIS_ analysisMethod yesno
+ {fr->markerAnalysisCmd($1, (Marker::AnalysisMethod)$3, $4);}
+ | INT ANALYSIS_ PARAM_ analysisParam
+ {fr->markerAnalysisParamCmd($1, (Marker::AnalysisParamType)$4);}
+ | INT ANALYSIS_ SYSTEM_ coordSystem skyFrame
+ {fr->markerAnalysisSystemCmd($1,(Coord::CoordSystem)$4,(Coord::SkyFrame)$5);}
+
| INT ANGLE_ angle {fr->markerAngleCmd($1,$3);}
| INT ANGLE_ angle internalSystem {fr->markerAngleCmd($1,$3);}
| INT ANGLE_ angle coordSystem skyFrame
- {fr->markerAngleCmd($1,$3,(CoordSystem)$4, (SkyFrame)$5);}
+ {fr->markerAngleCmd($1,$3,(Coord::CoordSystem)$4, (Coord::SkyFrame)$5);}
| INT ANNULUS_ RADIUS_ numeric numeric INT internalSystem
- {fr->markerAnnulusRadiusCmd($1, $4, $5, $6, (InternalSystem)$7);}
+ {fr->markerAnnulusRadiusCmd($1, $4, $5, $6, (Coord::InternalSystem)$7);}
| INT ANNULUS_ RADIUS_ numeric numeric INT coordSystem skyDist
{fr->markerAnnulusRadiusCmd($1, $4, $5, $6,
- (CoordSystem)$7, (SkyDist)$8);}
+ (Coord::CoordSystem)$7, (Coord::SkyDist)$8);}
| INT ANNULUS_ RADIUS_ STRING coordSystem skyDist
- {fr->markerAnnulusRadiusCmd($1, $4,(CoordSystem)$5,(SkyDist)$6);}
+ {fr->markerAnnulusRadiusCmd($1, $4,(Coord::CoordSystem)$5,(Coord::SkyDist)$6);}
| INT BOXANNULUS_ RADIUS_ numeric numeric numeric INT internalSystem
{fr->markerBoxAnnulusRadiusCmd($1, Vector($4, $5),
- Vector($6, $6*$5/$4), $7, (InternalSystem)$8);}
+ Vector($6, $6*$5/$4), $7, (Coord::InternalSystem)$8);}
| INT BOXANNULUS_ RADIUS_ numeric numeric numeric INT
coordSystem skyDist
{fr->markerBoxAnnulusRadiusCmd($1, Vector($4, $5),
- Vector($6, $6*$5/$4), $7, (CoordSystem)$8, (SkyDist)$9);}
+ Vector($6, $6*$5/$4), $7, (Coord::CoordSystem)$8, (Coord::SkyDist)$9);}
| INT BOXANNULUS_ RADIUS_ STRING coordSystem skyDist
- {fr->markerBoxAnnulusRadiusCmd($1,$4,(CoordSystem)$5,(SkyDist)$6);}
+ {fr->markerBoxAnnulusRadiusCmd($1,$4,(Coord::CoordSystem)$5,(Coord::SkyDist)$6);}
| INT BOX_ RADIUS_ numeric numeric internalSystem
- {fr->markerBoxRadiusCmd($1, Vector($4,$5), (InternalSystem)$6);}
+ {fr->markerBoxRadiusCmd($1, Vector($4,$5), (Coord::InternalSystem)$6);}
| INT BOX_ RADIUS_ numeric numeric coordSystem skyDist
{fr->markerBoxRadiusCmd($1, Vector($4,$5),
- (CoordSystem)$6, (SkyDist)$7);}
-
+ (Coord::CoordSystem)$6, (Coord::SkyDist)$7);}
| INT BPANDA_ EDIT_ angle angle INT numeric numeric numeric INT
{fr->markerBpandaEditCmd($1, $4, $5, $6,
Vector($7,$8), Vector($9,$9*$8/$7), $10);}
@@ -1624,35 +1665,30 @@ marker : CENTROID_ markerCentroid
coordSystem skyFrame
{fr->markerBpandaEditCmd($1, $4, $5, $6,
Vector($7,$8), Vector($9,$9*$8/$7), $10,
- (CoordSystem)$11, (SkyFrame)$12);}
+ (Coord::CoordSystem)$11, (Coord::SkyFrame)$12);}
| INT BPANDA_ EDIT_ STRING STRING coordSystem skyFrame
coordSystem skyDist
{fr->markerBpandaEditCmd($1, $4, $5,
- (CoordSystem)$6, (SkyFrame)$7, (CoordSystem)$8, (SkyDist)$9);}
+ (Coord::CoordSystem)$6, (Coord::SkyFrame)$7, (Coord::CoordSystem)$8, (Coord::SkyDist)$9);}
| INT CALLBACK_ markerCallBack STRING STRING
{fr->markerCallBackCmd($1,(CallBack::Type)$3,$4,$5);}
-
| INT CIRCLE_ RADIUS_ numeric internalSystem
- {fr->markerCircleRadiusCmd($1, $4, (InternalSystem)$5);}
+ {fr->markerCircleRadiusCmd($1, $4, (Coord::InternalSystem)$5);}
| INT CIRCLE_ RADIUS_ numeric coordSystem skyDist
- {fr->markerCircleRadiusCmd($1, $4, (CoordSystem)$5, (SkyDist)$6);}
-
+ {fr->markerCircleRadiusCmd($1, $4, (Coord::CoordSystem)$5, (Coord::SkyDist)$6);}
| INT COLOR_ STRING {fr->markerColorCmd($1,$3);}
-
| INT COMPASS_ ARROW_ yesno yesno
{fr->markerCompassArrowCmd($1,$4,$5);}
| INT COMPASS_ LABEL_ STRING STRING
{fr->markerCompassLabelCmd($1,$4,$5);}
| INT COMPASS_ RADIUS_ numeric internalSystem
- {fr->markerCompassRadiusCmd($1,$4,(InternalSystem)$5);}
+ {fr->markerCompassRadiusCmd($1,$4,(Coord::InternalSystem)$5);}
| INT COMPASS_ RADIUS_ numeric coordSystem skyDist
- {fr->markerCompassRadiusCmd($1,$4,(CoordSystem)$5,(SkyDist)$6);}
+ {fr->markerCompassRadiusCmd($1,$4,(Coord::CoordSystem)$5,(Coord::SkyDist)$6);}
| INT COMPASS_ SYSTEM_ coordSystem skyFrame
- {fr->markerCompassSystemCmd($1, (CoordSystem)$4, (SkyFrame)$5);}
-
+ {fr->markerCompassSystemCmd($1, (Coord::CoordSystem)$4, (Coord::SkyFrame)$5);}
| INT COMPOSITE_ GLOBAL_ yesno {fr->markerCompositeCmd($1,$4);}
-
| INT CPANDA_ EDIT_ angle angle INT numeric numeric INT
{fr->markerCpandaEditCmd($1, $4, $5, $6, $7, $8, $9);}
| INT CPANDA_ EDIT_ angle angle INT numeric numeric INT internalSystem
@@ -1660,11 +1696,11 @@ marker : CENTROID_ markerCentroid
| INT CPANDA_ EDIT_ angle angle INT numeric numeric INT
coordSystem skyFrame
{fr->markerCpandaEditCmd($1, $4, $5, $6, $7, $8, $9,
- (CoordSystem)$10, (SkyFrame)$11);}
+ (Coord::CoordSystem)$10, (Coord::SkyFrame)$11);}
| INT CPANDA_ EDIT_ STRING STRING coordSystem skyFrame
coordSystem skyDist
- {fr->markerCpandaEditCmd($1, $4, $5, (CoordSystem)$6, (SkyFrame)$7,
- (CoordSystem)$8, (SkyDist)$9);}
+ {fr->markerCpandaEditCmd($1, $4, $5, (Coord::CoordSystem)$6, (Coord::SkyFrame)$7,
+ (Coord::CoordSystem)$8, (Coord::SkyDist)$9);}
| INT CREATE_ ANNULUS_ RADIUS_ numeric numeric
{fr->markerAnnulusCreateRadiusCmd($1,Vector($5,$6));}
@@ -1706,25 +1742,22 @@ marker : CENTROID_ markerCentroid
| INT DELETE_ TAG_ INT {fr->markerDeleteTagCmd($1,$4);}
| INT EDIT_ BEGIN_ INT {fr->markerEditBeginCmd($1,$4);}
-
| INT ELLIPSE_ RADIUS_ numeric numeric internalSystem
- {fr->markerEllipseRadiusCmd($1, Vector($4, $5), (InternalSystem)$6);}
+ {fr->markerEllipseRadiusCmd($1, Vector($4, $5), (Coord::InternalSystem)$6);}
| INT ELLIPSE_ RADIUS_ numeric numeric coordSystem skyDist
{fr->markerEllipseRadiusCmd($1, Vector($4, $5),
- (CoordSystem)$6, (SkyDist)$7);}
-
+ (Coord::CoordSystem)$6, (Coord::SkyDist)$7);}
| INT ELLIPSEANNULUS_ RADIUS_ numeric numeric numeric INT
internalSystem
{fr->markerEllipseAnnulusRadiusCmd($1, Vector($4,$5),
- Vector($6,$6*$5/$4), $7, (InternalSystem)$8);}
+ Vector($6,$6*$5/$4), $7, (Coord::InternalSystem)$8);}
| INT ELLIPSEANNULUS_ RADIUS_ numeric numeric numeric INT
coordSystem skyDist
{fr->markerEllipseAnnulusRadiusCmd($1, Vector($4,$5),
- Vector($6,$6*$5/$4), $7, (CoordSystem)$8, (SkyDist)$9);}
+ Vector($6,$6*$5/$4), $7, (Coord::CoordSystem)$8, (Coord::SkyDist)$9);}
| INT ELLIPSEANNULUS_ RADIUS_ STRING coordSystem skyDist
{fr->markerEllipseAnnulusRadiusCmd($1, $4,
- (CoordSystem)$5, (SkyDist)$6);}
-
+ (Coord::CoordSystem)$5, (Coord::SkyDist)$6);}
| INT EPANDA_ EDIT_ angle angle INT numeric numeric numeric INT
{fr->markerEpandaEditCmd($1, $4, $5, $6,
Vector($7,$8), Vector($9,$9*$8/$7), $10);}
@@ -1736,12 +1769,12 @@ marker : CENTROID_ markerCentroid
coordSystem skyFrame
{fr->markerEpandaEditCmd($1, $4, $5, $6,
Vector($7,$8), Vector($9,$9*$8/$7), $10,
- (CoordSystem)$11, (SkyFrame)$12);}
+ (Coord::CoordSystem)$11, (Coord::SkyFrame)$12);}
| INT EPANDA_ EDIT_ STRING STRING coordSystem skyFrame
coordSystem skyDist
{fr->markerEpandaEditCmd($1, $4, $5,
- (CoordSystem)$6, (SkyFrame)$7,
- (CoordSystem)$8, (SkyDist)$9);}
+ (Coord::CoordSystem)$6, (Coord::SkyFrame)$7,
+ (Coord::CoordSystem)$8, (Coord::SkyDist)$9);}
| INT FONT_ STRING {fr->markerFontCmd($1,$3);}
| INT HIGHLITE_ {fr->markerHighliteCmd($1);}
@@ -1749,75 +1782,68 @@ marker : CENTROID_ markerCentroid
| INT LINE_ ARROW_ yesno yesno {fr->markerLineArrowCmd($1,$4,$5);}
| INT LINE_ POINT_ internalSystem coord coord
- {fr->markerLineCmd($1, Vector($5), Vector($6), (InternalSystem)$4);}
+ {fr->markerLineCmd($1, Vector($5), Vector($6), (Coord::InternalSystem)$4);}
| INT LINE_ POINT_ coordSystem skyFrame coord coord
{fr->markerLineCmd($1, Vector($6), Vector($7),
- (CoordSystem)$4, (SkyFrame)$5);}
+ (Coord::CoordSystem)$4, (Coord::SkyFrame)$5);}
| INT MOVE_ numeric numeric
{fr->markerMoveCmd($1, Vector($3,$4));}
| INT MOVE_ FRONT_ {fr->markerFrontCmd($1);}
| INT MOVE_ BACK_ {fr->markerBackCmd($1);}
| INT MOVE_ TO_ internalSystem numeric numeric
- {fr->markerMoveToCmd($1, Vector($5,$6), (InternalSystem)$4);}
+ {fr->markerMoveToCmd($1, Vector($5,$6), (Coord::InternalSystem)$4);}
| INT MOVE_ TO_ coordSystem skyFrame coord
- {fr->markerMoveToCmd($1,Vector($6),(CoordSystem)$4,(SkyFrame)$5);}
+ {fr->markerMoveToCmd($1,Vector($6),(Coord::CoordSystem)$4,(Coord::SkyFrame)$5);}
| INT POLYGON_ RESET_ numeric numeric internalSystem
- {fr->markerPolygonResetCmd($1, Vector($4,$5),(InternalSystem)$6);}
+ {fr->markerPolygonResetCmd($1, Vector($4,$5),(Coord::InternalSystem)$6);}
| INT POLYGON_ RESET_ numeric numeric coordSystem skyDist
{fr->markerPolygonResetCmd($1, Vector($4,$5),
- (CoordSystem)$6, (SkyDist)$7);}
-
+ (Coord::CoordSystem)$6, (Coord::SkyDist)$7);}
+ | INT POINT_ SHAPE_ pointShape
+ {fr->markerPointShapeCmd($1,(Point::PointShape)$4);}
| INT POINT_ SIZE_ INT {fr->markerPointSizeCmd($1,$4);}
- | INT PROJECTION_ internalSystem coord coord numeric INT
+ | INT PROJECTION_ internalSystem coord coord numeric
{fr->markerProjectionCmd($1, Vector($4), Vector($5),
- (InternalSystem)$3, $6, $7);}
- | INT PROJECTION_ coordSystem skyFrame coord coord numeric INT
+ (Coord::InternalSystem)$3, $6);}
+ | INT PROJECTION_ coordSystem skyFrame coord coord numeric
coordSystem skyDist
{fr->markerProjectionCmd($1, Vector($5), Vector($6),
- (CoordSystem)$3, (SkyFrame)$4, $7, $8,
- (CoordSystem)$9, (SkyDist)$10);}
- | INT PROJECTION_ SYSTEM_ coordSystem skyFrame
- {fr->markerProjectionSystemCmd($1,(CoordSystem)$4,(SkyFrame)$5);}
-
- | INT CIRCLE3D_ numeric internalSystem INT
- {fr->markerCircle3dCmd($1, $3, (InternalSystem)$4, $5);}
- | INT CIRCLE3D_ numeric coordSystem skyDist INT
- {fr->markerCircle3dCmd($1, $3, (CoordSystem)$4,(SkyDist)$5,$6);}
- | INT CIRCLE3D_ SYSTEM_ coordSystem
- {fr->markerCircle3dSystemCmd($1,(CoordSystem)$4);}
-
+ (Coord::CoordSystem)$3, (Coord::SkyFrame)$4, $7,
+ (Coord::CoordSystem)$8, (Coord::SkyDist)$9);}
| INT PROPERTY_ markerProperty yesno
{fr->markerPropertyCmd($1,$3,$4);}
- | INT ROTATE_ BEGIN_ {fr->markerRotateBeginCmd($1);}
+ | INT ROTATE_ BEGIN_ {fr->markerRotateBeginCmd($1);}
| INT RULER_ POINT_ internalSystem coord coord
{fr->markerRulerPointCmd($1, Vector($5), Vector($6),
- (InternalSystem)$4);}
+ (Coord::InternalSystem)$4);}
| INT RULER_ POINT_ coordSystem skyFrame coord coord
{fr->markerRulerPointCmd($1, Vector($6), Vector($7),
- (CoordSystem)$4, (SkyFrame)$5);}
+ (Coord::CoordSystem)$4, (Coord::SkyFrame)$5);}
| INT RULER_ SYSTEM_ coordSystem skyFrame coordSystem skyDist
- {fr->markerRulerSystemCmd($1, (CoordSystem)$4, (SkyFrame)$5,
- (CoordSystem)$6, (SkyDist)$7);}
+ {fr->markerRulerSystemCmd($1, (Coord::CoordSystem)$4, (Coord::SkyFrame)$5,
+ (Coord::CoordSystem)$6, (Coord::SkyDist)$7);}
| INT SELECT_ {fr->markerSelectCmd($1);}
| INT SELECT_ ONLY_ {fr->markerSelectOnlyCmd($1);}
+
| INT TAG_ STRING {fr->markerTagCmd($1,$3);}
| INT TEXT_ STRING {fr->markerTextCmd($1,$3);}
| INT TEXT_ ROTATE_ yesno {fr->markerTextRotateCmd($1,$4);}
+
| INT UNHIGHLITE_ {fr->markerUnhighliteCmd($1);}
| INT UNSELECT_ {fr->markerUnselectCmd($1);}
| INT VECTOR_ ARROW_ yesno {fr->markerVectorArrowCmd($1,$4);}
| INT VECTOR_ POINT_ internalSystem coord numeric angle
- {fr->markerVectorCmd($1, Vector($5), (InternalSystem)$4, $6, $7);}
+ {fr->markerVectorCmd($1, Vector($5), (Coord::InternalSystem)$4, $6, $7);}
| INT VECTOR_ POINT_ coordSystem skyFrame coord
coordSystem skyDist numeric angle
- {fr->markerVectorCmd($1, Vector($6), (CoordSystem)$4, (SkyFrame)$5,
- $9, (CoordSystem)$7, (SkyDist)$8, $10);}
+ {fr->markerVectorCmd($1, Vector($6), (Coord::CoordSystem)$4, (Coord::SkyFrame)$5,
+ $9, (Coord::CoordSystem)$7, (Coord::SkyDist)$8, $10);}
| INT WIDTH_ INT {fr->markerLineWidthCmd($1,$3);}
@@ -1838,7 +1864,7 @@ marker : CENTROID_ markerCentroid
| ROTATE_ END_ {fr->markerRotateEndCmd();}
| SAVE_ STRING markerFormat coordSystem skyFrame skyFormat yesno
{fr->markerSaveCmd($2, (Base::MarkerFormat)$3,
- (CoordSystem)$4, (SkyFrame)$5, (SkyFormat)$6, $7);}
+ (Coord::CoordSystem)$4, (Coord::SkyFrame)$5, (Coord::SkyFormat)$6, $7);}
| SAVE_ TEMPLATE_ STRING {fr->markerSaveTemplateCmd($3);}
| SELECT_ markerSelect
@@ -1855,9 +1881,9 @@ marker : CENTROID_ markerCentroid
| STRING MOVE_ FRONT_ {fr->markerFrontCmd($1);}
| STRING MOVE_ BACK_ {fr->markerBackCmd($1);}
| STRING MOVE_ TO_ internalSystem coord
- {fr->markerMoveToCmd($1,Vector($5),(InternalSystem)$4);}
+ {fr->markerMoveToCmd($1,Vector($5),(Coord::InternalSystem)$4);}
| STRING MOVE_ TO_ coordSystem skyFrame coord
- {fr->markerMoveToCmd($1,Vector($6),(CoordSystem)$4,(SkyFrame)$5);}
+ {fr->markerMoveToCmd($1,Vector($6),(Coord::CoordSystem)$4,(Coord::SkyFrame)$5);}
| STRING PROPERTY_ markerProperty yesno
{fr->markerPropertyCmd($1,$3,$4);}
| STRING SELECT_ {fr->markerSelectCmd($1);}
@@ -1873,7 +1899,7 @@ marker : CENTROID_ markerCentroid
| PASTE_ {fr->markerPasteCmd();}
| PASTE_ coordSystem coordSystem
- {fr->markerPasteCmd((CoordSystem)$2, (CoordSystem)$3);}
+ {fr->markerPasteCmd((Coord::CoordSystem)$2, (Coord::CoordSystem)$3);}
| UNDO_ {fr->markerUndoCmd();}
| UNHIGHLITE_ ALL_ {fr->markerUnhighliteAllCmd();}
| UNSELECT_ ALL_ {fr->markerUnselectAllCmd();}
@@ -1918,214 +1944,181 @@ markerCreate :
CIRCLE_ numeric numeric
numeric
markerProperties
- {fr->createCircleCmd(fr->mapToRef(Vector($2,$3),CANVAS),
+ {fr->createCircleCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
$4,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | ANNULUS_ numeric numeric
- numeric numeric INT
- markerProperties
- {fr->createAnnulusCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- $4,$5,$6,
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);}
- | CPANDA_ numeric numeric
- angle angle INT
- numeric numeric INT
- markerProperties
- {fr->createCpandaCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- $4,$5,$6,
- $7,$8,$9,
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);}
-
| ELLIPSE_ numeric numeric
numeric numeric
optangle
markerProperties
- {fr->createEllipseCmd(fr->mapToRef(Vector($2,$3),CANVAS),
+ {fr->createEllipseCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
Vector($4,$5),
$6,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | ELLIPSEANNULUS_ numeric numeric
- numeric numeric numeric INT
- optangle
- markerProperties
- {fr->createEllipseAnnulusCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- Vector($4,$5),
- Vector($6,$6*$4/$5),$7,
- $8,
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);}
- | EPANDA_ numeric numeric
- angle angle INT
- numeric numeric numeric INT
- optangle
- markerProperties
- {fr->createEpandaCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- $4,$5,$6,
- Vector($7,$8),
- Vector($9,$9*$7/$8),$10,
- $11,
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);}
-
| BOX_ numeric numeric
numeric numeric
optangle
markerProperties
- {fr->createBoxCmd(fr->mapToRef(Vector($2,$3),CANVAS),
+ {fr->createBoxCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
Vector($4,$5),
$6,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | BOXANNULUS_ numeric numeric
- numeric numeric numeric INT
- optangle
- markerProperties
- {fr->createBoxAnnulusCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- Vector($4,$5),Vector($6,$6*$4/$5),$7,
- $8,
- currentColor,currentDash,currentWidth,currentFont,
- currentText,currentProps,NULL,taglist,cblist);}
- | BPANDA_ numeric numeric
- angle angle INT
- numeric numeric numeric INT
- optangle
+ | POLYGON_ numeric numeric
+ numeric numeric
markerProperties
- {fr->createBpandaCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- $4,$5,$6,
- Vector($7,$8),
- Vector($9,$9*$7/$8),$10,
- $11,
+ {fr->createPolygonCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ Vector($4,$5),
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
-
| LINE_ numeric numeric
numeric numeric
markerProperties
- {fr->createLineCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- fr->mapToRef(Vector($4,$5),CANVAS),
+ {fr->createLineCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ fr->mapToRef(Vector($4,$5),Coord::CANVAS),
0, 0,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
| VECTOR_ numeric numeric
numeric numeric
markerProperties
- {fr->createVectCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- fr->mapToRef(Vector($4,$5),CANVAS),
+ {fr->createVectCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ fr->mapToRef(Vector($4,$5),Coord::CANVAS),
1,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | PROJECTION_ numeric numeric
- numeric numeric
- numeric
+ | TEXT_ numeric numeric
+ optangle
markerProperties
- {fr->createProjectionCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- fr->mapToRef(Vector($4,$5),CANVAS),
- $6,
- NULL,NULL,
+ {fr->createTextCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ $4, 1,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | PROJECTION_ numeric numeric
- numeric numeric
- numeric
- STRING STRING
- markerProperties
- {fr->createProjectionCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- fr->mapToRef(Vector($4,$5),CANVAS),
- $6,
- $7,$8,
+ | CIRCLE_ POINT_ numeric numeric pointSize markerProperties
+ {fr->createPointCmd(fr->mapToRef(Vector($3,$4),Coord::CANVAS),
+ Point::CIRCLE, $5,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | CIRCLE3D_ numeric numeric
- numeric
- markerProperties
- {fr->createCircle3dCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- $4,
- NULL,NULL,
+ | BOX_ POINT_ numeric numeric pointSize markerProperties
+ {fr->createPointCmd(fr->mapToRef(Vector($3,$4),Coord::CANVAS),
+ Point::BOX, $5,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | CIRCLE3D_ numeric numeric
- numeric
- STRING STRING
- markerProperties
- {fr->createCircle3dCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- $4,
- $5,$6,
+ | DIAMOND_ POINT_ numeric numeric pointSize markerProperties
+ {fr->createPointCmd(fr->mapToRef(Vector($3,$4),Coord::CANVAS),
+ Point::DIAMOND, $5,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | RULER_ numeric numeric
- numeric numeric
- coordSystem skyFrame coordSystem skyDist
- markerProperties
- {fr->createRulerCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- fr->mapToRef(Vector($4,$5),CANVAS),
- (CoordSystem)$6, (SkyFrame)$7, (CoordSystem)$8, (SkyDist)$9,
+ | CROSS_ POINT_ numeric numeric pointSize markerProperties
+ {fr->createPointCmd(fr->mapToRef(Vector($3,$4),Coord::CANVAS),
+ Point::CROSS, $5,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
-
- | CIRCLE_ POINT_ numeric numeric pointSize
- markerProperties
- {fr->createCirclePointCmd(fr->mapToRef(Vector($3,$4),CANVAS), $5,
+ | 'X' POINT_ numeric numeric pointSize markerProperties
+ {fr->createPointCmd(fr->mapToRef(Vector($3,$4),Coord::CANVAS),
+ Point::EX, $5,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | BOX_ POINT_ numeric numeric pointSize
- markerProperties
- {fr->createBoxPointCmd(fr->mapToRef(Vector($3,$4),CANVAS), $5,
+ | ARROW_ POINT_ numeric numeric pointSize markerProperties
+ {fr->createPointCmd(fr->mapToRef(Vector($3,$4),Coord::CANVAS),
+ Point::ARROW, $5,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | DIAMOND_ POINT_ numeric numeric pointSize
- markerProperties
- {fr->createDiamondPointCmd(fr->mapToRef(Vector($3,$4),CANVAS), $5,
+ | BOXCIRCLE_ POINT_ numeric numeric pointSize markerProperties
+ {fr->createPointCmd(fr->mapToRef(Vector($3,$4),Coord::CANVAS),
+ Point::BOXCIRCLE, $5,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | CROSS_ POINT_ numeric numeric pointSize
+
+ | RULER_ numeric numeric
+ numeric numeric
+ coordSystem skyFrame coordSystem skyDist
markerProperties
- {fr->createCrossPointCmd(fr->mapToRef(Vector($3,$4),CANVAS), $5,
+ {fr->createRulerCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ fr->mapToRef(Vector($4,$5),Coord::CANVAS),
+ (Coord::CoordSystem)$6, (Coord::SkyFrame)$7, (Coord::CoordSystem)$8, (Coord::SkyDist)$9,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | 'X' POINT_ numeric numeric pointSize
+ | COMPASS_ numeric numeric
+ numeric
+ coordSystem skyFrame
markerProperties
- {fr->createExPointCmd(fr->mapToRef(Vector($3,$4),CANVAS), $5,
+ {fr->createCompassCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ $4,
+ "N", "E", 1, 1,
+ (Coord::CoordSystem)$5, (Coord::SkyFrame)$6,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | ARROW_ POINT_ numeric numeric pointSize
+ | PROJECTION_ numeric numeric
+ numeric numeric
+ numeric
markerProperties
- {fr->createArrowPointCmd(fr->mapToRef(Vector($3,$4),CANVAS), $5,
+ {fr->createProjectionCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ fr->mapToRef(Vector($4,$5),Coord::CANVAS),
+ $6,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | BOXCIRCLE_ POINT_ numeric numeric pointSize
+
+ | ANNULUS_ numeric numeric
+ numeric numeric INT
markerProperties
- {fr->createBoxCirclePointCmd(fr->mapToRef(Vector($3,$4),CANVAS), $5,
+ {fr->createAnnulusCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ $4,$5,$6,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
-
- | TEXT_ numeric numeric
+ | ELLIPSEANNULUS_ numeric numeric
+ numeric numeric numeric INT
optangle
markerProperties
- {fr->createTextCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- $4, 1,
+ {fr->createEllipseAnnulusCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ Vector($4,$5),
+ Vector($6,$6*$4/$5),$7,
+ $8,
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);}
+ | BOXANNULUS_ numeric numeric
+ numeric numeric numeric INT
+ optangle
+ markerProperties
+ {fr->createBoxAnnulusCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ Vector($4,$5),Vector($6,$6*$4/$5),$7,
+ $8,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
- | POLYGON_ numeric numeric
- numeric numeric
+ | CPANDA_ numeric numeric
+ angle angle INT
+ numeric numeric INT
markerProperties
- {fr->createPolygonCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- Vector($4,$5),
+ {fr->createCpandaCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ $4,$5,$6,
+ $7,$8,$9,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
-
- | COMPASS_ numeric numeric
- numeric
- coordSystem skyFrame
+ | EPANDA_ numeric numeric
+ angle angle INT
+ numeric numeric numeric INT
+ optangle
markerProperties
- {fr->createCompassCmd(fr->mapToRef(Vector($2,$3),CANVAS),
- $4,
- "N", "E", 1, 1,
- (CoordSystem)$5, (SkyFrame)$6,
+ {fr->createEpandaCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ $4,$5,$6,
+ Vector($7,$8),
+ Vector($9,$9*$7/$8),$10,
+ $11,
+ currentColor,currentDash,currentWidth,currentFont,
+ currentText,currentProps,NULL,taglist,cblist);}
+ | BPANDA_ numeric numeric
+ angle angle INT
+ numeric numeric numeric INT
+ optangle
+ markerProperties
+ {fr->createBpandaCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS),
+ $4,$5,$6,
+ Vector($7,$8),
+ Vector($9,$9*$7/$8),$10,
+ $11,
currentColor,currentDash,currentWidth,currentFont,
currentText,currentProps,NULL,taglist,cblist);}
@@ -2138,16 +2131,16 @@ markerCreate :
;
markerCreateTemplate : STRING numeric numeric
- {fr->createTemplateCmd(fr->mapToRef(Vector($2,$3),CANVAS), $1);}
+ {fr->createTemplateCmd(fr->mapToRef(Vector($2,$3),Coord::CANVAS), $1);}
| VAR_ STRING numeric numeric
- {fr->createTemplateVarCmd(fr->mapToRef(Vector($3,$4),CANVAS), $2);}
+ {fr->createTemplateVarCmd(fr->mapToRef(Vector($3,$4),Coord::CANVAS), $2);}
| numeric numeric VAR_ STRING
{
// backward compatibility
- fr->createTemplateVarCmd(fr->mapToRef(Vector($1,$2),CANVAS), $4);
+ fr->createTemplateVarCmd(fr->mapToRef(Vector($1,$2),Coord::CANVAS), $4);
}
| STRING coordSystem skyFrame coord
- {fr->createTemplateCmd(Vector($4),(CoordSystem)$2,(SkyFrame)$3, $1);}
+ {fr->createTemplateCmd(Vector($4),(Coord::CoordSystem)$2,(Coord::SkyFrame)$3, $1);}
;
markerDash : INT INT {$$[0] = $1; $$[1] = $2;}
@@ -2174,135 +2167,138 @@ markerGet : CENTROID_ markerGetCentroid
| FONT_ {fr->getMarkerFontCmd();}
| HANDLE_ numeric numeric {fr->getMarkerHandleCmd(Vector($2,$3));}
| ID_ numeric numeric {fr->getMarkerIdCmd(Vector($2,$3));}
+
+ | INT ANALYSIS_ PLOT2D_ STRING STRING STRING STRING
+ {fr->getMarkerAnalysisPlot2dCmd($1,$4,$5,$6,$7);}
+ | INT ANALYSIS_ PLOT3D_ STRING STRING
+ {fr->getMarkerAnalysisPlot3dCmd($1,$4,$5);}
+ | INT ANALYSIS_ PARAM_ {fr->getMarkerAnalysisParamCmd($1);}
+ | INT ANALYSIS_ SYSTEM_ {fr->getMarkerAnalysisSystemCmd($1);}
+
| ID_ ALL_ {fr->getMarkerIdAllCmd();}
| INT ANGLE_ {fr->getMarkerAngleCmd($1);}
| INT ANGLE_ internalSystem {fr->getMarkerAngleCmd($1);}
| INT ANGLE_ coordSystem skyFrame
- {fr->getMarkerAngleCmd($1,(CoordSystem)$3, (SkyFrame)$4);}
+ {fr->getMarkerAngleCmd($1,(Coord::CoordSystem)$3, (Coord::SkyFrame)$4);}
| INT ANNULUS_ RADIUS_ internalSystem
- {fr->getMarkerAnnulusRadiusCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerAnnulusRadiusCmd($1, (Coord::InternalSystem)$4);}
| INT ANNULUS_ RADIUS_ coordSystem skyDist
- {fr->getMarkerAnnulusRadiusCmd($1, (CoordSystem)$4, (SkyDist)$5);}
+ {fr->getMarkerAnnulusRadiusCmd($1, (Coord::CoordSystem)$4, (Coord::SkyDist)$5);}
+
| INT BOXANNULUS_ RADIUS_ internalSystem
- {fr->getMarkerBoxAnnulusRadiusCmd($1,(InternalSystem)$4);}
+ {fr->getMarkerBoxAnnulusRadiusCmd($1,(Coord::InternalSystem)$4);}
| INT BOXANNULUS_ RADIUS_ coordSystem skyDist
- {fr->getMarkerBoxAnnulusRadiusCmd($1,(CoordSystem)$4,(SkyDist)$5);}
+ {fr->getMarkerBoxAnnulusRadiusCmd($1,(Coord::CoordSystem)$4,(Coord::SkyDist)$5);}
| INT BOX_ RADIUS_ internalSystem
- {fr->getMarkerBoxRadiusCmd($1,(InternalSystem)$4);}
+ {fr->getMarkerBoxRadiusCmd($1,(Coord::InternalSystem)$4);}
| INT BOX_ RADIUS_ coordSystem skyDist
- {fr->getMarkerBoxRadiusCmd($1,(CoordSystem)$4, (SkyDist)$5);}
+ {fr->getMarkerBoxRadiusCmd($1,(Coord::CoordSystem)$4, (Coord::SkyDist)$5);}
| INT BPANDA_ ANGLE_ {fr->getMarkerBpandaAnglesCmd($1);}
| INT BPANDA_ ANGLE_ internalSystem {fr->getMarkerBpandaAnglesCmd($1);}
| INT BPANDA_ ANGLE_ coordSystem skyFrame
- {fr->getMarkerBpandaAnglesCmd($1, (CoordSystem)$4, (SkyFrame)$5);}
+ {fr->getMarkerBpandaAnglesCmd($1, (Coord::CoordSystem)$4, (Coord::SkyFrame)$5);}
| INT BPANDA_ RADIUS_ internalSystem
- {fr->getMarkerBpandaRadiusCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerBpandaRadiusCmd($1, (Coord::InternalSystem)$4);}
| INT BPANDA_ RADIUS_ coordSystem skyDist
- {fr->getMarkerBpandaRadiusCmd($1, (CoordSystem)$4, (SkyDist)$5);}
+ {fr->getMarkerBpandaRadiusCmd($1, (Coord::CoordSystem)$4, (Coord::SkyDist)$5);}
+
| INT CENTER_ internalSystem
- {fr->getMarkerCenterCmd($1, (InternalSystem)$3);}
+ {fr->getMarkerCenterCmd($1, (Coord::InternalSystem)$3);}
| INT CENTER_ coordSystem skyFrame skyFormat
- {fr->getMarkerCenterCmd($1, (CoordSystem)$3, (SkyFrame)$4,
- (SkyFormat)$5);}
+ {fr->getMarkerCenterCmd($1, (Coord::CoordSystem)$3, (Coord::SkyFrame)$4,
+ (Coord::SkyFormat)$5);}
| INT CIRCLE_ RADIUS_ internalSystem
- {fr->getMarkerCircleRadiusCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerCircleRadiusCmd($1, (Coord::InternalSystem)$4);}
| INT CIRCLE_ RADIUS_ coordSystem skyDist
- {fr->getMarkerCircleRadiusCmd($1, (CoordSystem)$4, (SkyDist)$5);}
+ {fr->getMarkerCircleRadiusCmd($1, (Coord::CoordSystem)$4, (Coord::SkyDist)$5);}
| INT COLOR_ {fr->getMarkerColorCmd($1);}
| INT COMPASS_ ARROW_ {fr->getMarkerCompassArrowCmd($1);}
| INT COMPASS_ LABEL_ {fr->getMarkerCompassLabelCmd($1);}
| INT COMPASS_ RADIUS_ internalSystem
- {fr->getMarkerCompassRadiusCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerCompassRadiusCmd($1, (Coord::InternalSystem)$4);}
| INT COMPASS_ RADIUS_ coordSystem skyDist
- {fr->getMarkerCompassRadiusCmd($1, (CoordSystem)$4, (SkyDist)$5);}
+ {fr->getMarkerCompassRadiusCmd($1, (Coord::CoordSystem)$4, (Coord::SkyDist)$5);}
| INT COMPASS_ SYSTEM_ {fr->getMarkerCompassSystemCmd($1);}
| INT COMPOSITE_ GLOBAL_ {fr->getMarkerCompositeCmd($1);}
| INT CPANDA_ ANGLE_ {fr->getMarkerCpandaAnglesCmd($1);}
| INT CPANDA_ ANGLE_ internalSystem {fr->getMarkerCpandaAnglesCmd($1);}
| INT CPANDA_ ANGLE_ coordSystem skyFrame
- {fr->getMarkerCpandaAnglesCmd($1, (CoordSystem)$4, (SkyFrame)$5);}
+ {fr->getMarkerCpandaAnglesCmd($1, (Coord::CoordSystem)$4, (Coord::SkyFrame)$5);}
| INT CPANDA_ RADIUS_ internalSystem
- {fr->getMarkerCpandaRadiusCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerCpandaRadiusCmd($1, (Coord::InternalSystem)$4);}
| INT CPANDA_ RADIUS_ coordSystem skyDist
- {fr->getMarkerCpandaRadiusCmd($1, (CoordSystem)$4, (SkyDist)$5);}
+ {fr->getMarkerCpandaRadiusCmd($1, (Coord::CoordSystem)$4, (Coord::SkyDist)$5);}
| INT ELLIPSE_ RADIUS_ internalSystem
- {fr->getMarkerEllipseRadiusCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerEllipseRadiusCmd($1, (Coord::InternalSystem)$4);}
| INT ELLIPSE_ RADIUS_ coordSystem skyDist
- {fr->getMarkerEllipseRadiusCmd($1, (CoordSystem)$4, (SkyDist)$5);}
+ {fr->getMarkerEllipseRadiusCmd($1, (Coord::CoordSystem)$4, (Coord::SkyDist)$5);}
| INT ELLIPSEANNULUS_ RADIUS_ internalSystem
- {fr->getMarkerEllipseAnnulusRadiusCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerEllipseAnnulusRadiusCmd($1, (Coord::InternalSystem)$4);}
| INT ELLIPSEANNULUS_ RADIUS_ coordSystem skyDist
- {fr->getMarkerEllipseAnnulusRadiusCmd($1, (CoordSystem)$4,
- (SkyDist)$5);}
+ {fr->getMarkerEllipseAnnulusRadiusCmd($1, (Coord::CoordSystem)$4,
+ (Coord::SkyDist)$5);}
| INT EPANDA_ ANGLE_ {fr->getMarkerEpandaAnglesCmd($1);}
| INT EPANDA_ ANGLE_ internalSystem {fr->getMarkerEpandaAnglesCmd($1);}
| INT EPANDA_ ANGLE_ coordSystem skyFrame
- {fr->getMarkerEpandaAnglesCmd($1, (CoordSystem)$4, (SkyFrame)$5);}
+ {fr->getMarkerEpandaAnglesCmd($1, (Coord::CoordSystem)$4, (Coord::SkyFrame)$5);}
| INT EPANDA_ RADIUS_ internalSystem
- {fr->getMarkerEpandaRadiusCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerEpandaRadiusCmd($1, (Coord::InternalSystem)$4);}
| INT EPANDA_ RADIUS_ coordSystem skyDist
- {fr->getMarkerEpandaRadiusCmd($1, (CoordSystem)$4, (SkyDist)$5);}
+ {fr->getMarkerEpandaRadiusCmd($1, (Coord::CoordSystem)$4, (Coord::SkyDist)$5);}
| INT FONT_ {fr->getMarkerFontCmd($1);}
| INT HIGHLITE_ {fr->getMarkerHighlitedCmd($1);}
| INT LINE_ ARROW_ {fr->getMarkerLineArrowCmd($1);}
| INT LINE_ LENGTH_ coordSystem skyDist
- {fr->getMarkerLineLengthCmd($1, (CoordSystem)$4, (SkyDist)$5);}
+ {fr->getMarkerLineLengthCmd($1, (Coord::CoordSystem)$4, (Coord::SkyDist)$5);}
| INT LINE_ POINT_ internalSystem
- {fr->getMarkerLineCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerLineCmd($1, (Coord::InternalSystem)$4);}
| INT LINE_ POINT_ coordSystem skyFrame skyFormat
- {fr->getMarkerLineCmd($1, (CoordSystem)$4,
- (SkyFrame)$5, (SkyFormat)$6);}
+ {fr->getMarkerLineCmd($1, (Coord::CoordSystem)$4,
+ (Coord::SkyFrame)$5, (Coord::SkyFormat)$6);}
| INT MAP_ LENGTH_ numeric coordSystem skyDist
{fr->getMarkerMapLenFromRefCmd($1, $4,
- (CoordSystem)$5,(SkyDist)$6);}
+ (Coord::CoordSystem)$5,(Coord::SkyDist)$6);}
+
+ | INT POINT_ SHAPE_ {fr->getMarkerPointShapeCmd($1);}
| INT POINT_ SIZE_ {fr->getMarkerPointSizeCmd($1);}
- | INT PROJECTION_ STRING STRING STRING STRING
- {fr->getMarkerProjectionCmd($1,$3,$4,$5,$6);}
| INT PROJECTION_ POINT_ internalSystem
- {fr->getMarkerProjectionPointsCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerProjectionPointsCmd($1, (Coord::InternalSystem)$4);}
| INT PROJECTION_ POINT_ coordSystem skyFrame skyFormat
- {fr->getMarkerProjectionPointsCmd($1, (CoordSystem)$4,
- (SkyFrame)$5, (SkyFormat)$6);}
+ {fr->getMarkerProjectionPointsCmd($1, (Coord::CoordSystem)$4,
+ (Coord::SkyFrame)$5, (Coord::SkyFormat)$6);}
| INT PROJECTION_ LENGTH_ coordSystem skyDist
- {fr->getMarkerProjectionLengthCmd($1, (CoordSystem)$4,
- (SkyDist)$5);}
- | INT PROJECTION_ METHOD_ {fr->getMarkerProjectionMethodCmd($1);}
+ {fr->getMarkerProjectionLengthCmd($1, (Coord::CoordSystem)$4,
+ (Coord::SkyDist)$5);}
| INT PROJECTION_ THICK_ internalSystem
- {fr->getMarkerProjectionWidthCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerProjectionWidthCmd($1, (Coord::InternalSystem)$4);}
| INT PROJECTION_ THICK_ coordSystem skyDist
- {fr->getMarkerProjectionWidthCmd($1,(CoordSystem)$4,(SkyDist)$5);}
- | INT PROJECTION_ SYSTEM_ {fr->getMarkerProjectionSystemCmd($1);}
- | INT CIRCLE3D_ STRING STRING STRING
- {fr->getMarkerCircle3dCmd($1,$3,$4,$5);}
- | INT CIRCLE3D_ METHOD_ {fr->getMarkerCircle3dMethodCmd($1);}
- | INT CIRCLE3D_ RADIUS_ coordSystem skyDist
- {fr->getMarkerCircle3dRadiusCmd($1,
- (CoordSystem)$4, (SkyDist)$5);}
- | INT CIRCLE3D_ SYSTEM_ {fr->getMarkerCircle3dSystemCmd($1);}
+ {fr->getMarkerProjectionWidthCmd($1,(Coord::CoordSystem)$4,(Coord::SkyDist)$5);}
| INT PROPERTY_ {fr->getMarkerPropertyCmd($1);}
| INT PROPERTY_ markerProperty {fr->getMarkerPropertyCmd($1,$3);}
| INT RULER_ LENGTH_ coordSystem skyDist
- {fr->getMarkerRulerLengthCmd($1,(CoordSystem)$4,(SkyDist)$5);}
+ {fr->getMarkerRulerLengthCmd($1,(Coord::CoordSystem)$4,(Coord::SkyDist)$5);}
| INT RULER_ POINT_ internalSystem
- {fr->getMarkerRulerPointCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerRulerPointCmd($1, (Coord::InternalSystem)$4);}
| INT RULER_ POINT_ coordSystem skyFrame skyFormat
- {fr->getMarkerRulerPointCmd($1, (CoordSystem)$4,
- (SkyFrame)$5, (SkyFormat)$6);}
+ {fr->getMarkerRulerPointCmd($1, (Coord::CoordSystem)$4,
+ (Coord::SkyFrame)$5, (Coord::SkyFormat)$6);}
| INT RULER_ SYSTEM_ {fr->getMarkerRulerSystemCmd($1);}
| INT SELECT_ {fr->getMarkerSelectedCmd($1);}
+
| INT TAG_ {fr->getMarkerTagCmd($1);}
| INT TAG_ INT {fr->getMarkerTagCmd($1,$3);}
| INT TEXT_ {fr->getMarkerTextCmd($1);}
| INT TEXT_ ROTATE_ {fr->getMarkerTextRotateCmd($1);}
| INT TYPE_ {fr->getMarkerTypeCmd($1);}
+
| INT VECTOR_ ARROW_ {fr->getMarkerVectorArrowCmd($1);}
| INT VECTOR_ LENGTH_ coordSystem skyDist
- {fr->getMarkerVectorLengthCmd($1, (CoordSystem)$4, (SkyDist)$5);}
+ {fr->getMarkerVectorLengthCmd($1, (Coord::CoordSystem)$4, (Coord::SkyDist)$5);}
| INT VECTOR_ POINT_ internalSystem
- {fr->getMarkerVectorCmd($1, (InternalSystem)$4);}
+ {fr->getMarkerVectorCmd($1, (Coord::InternalSystem)$4);}
| INT VECTOR_ POINT_ coordSystem skyFrame skyFormat
- {fr->getMarkerVectorCmd($1, (CoordSystem)$4,
- (SkyFrame)$5, (SkyFormat)$6);}
+ {fr->getMarkerVectorCmd($1, (Coord::CoordSystem)$4,
+ (Coord::SkyFrame)$5, (Coord::SkyFormat)$6);}
| INT WIDTH_ {fr->getMarkerLineWidthCmd($1);}
| HIGHLITE_ markerGetHighlite
| HIGHLITE_ NUMBER_ {fr->getMarkerHighlitedNumberCmd();}
@@ -2369,12 +2365,12 @@ markerLayer : /* empty */ {fr->markerLayerCmd(Base::USER);}
markerList : markerFormat coordSystem skyFrame skyFormat
yesno markerQuery markerTags
{fr->markerListCmd((Base::MarkerFormat)$1,
- (CoordSystem)$2, (SkyFrame)$3, (SkyFormat)$4, $5,
+ (Coord::CoordSystem)$2, (Coord::SkyFrame)$3, (Coord::SkyFormat)$4, $5,
0, propQMask, propQValue, taglist);}
| SELECT_ markerFormat coordSystem skyFrame skyFormat
yesno markerQuery markerTags
{fr->markerListCmd((Base::MarkerFormat)$2,
- (CoordSystem)$3, (SkyFrame)$4, (SkyFormat)$5, $6,
+ (Coord::CoordSystem)$3, (Coord::SkyFrame)$4, (Coord::SkyFormat)$5, $6,
1, propQMask, propQValue, taglist);}
;
@@ -2382,12 +2378,12 @@ markerLoad : markerFormat STRING
{fr->markerLoadCmd((Base::MarkerFormat)$1,$2);}
| markerFormat STRING coordSystem skyFrame
{fr->markerLoadCmd((Base::MarkerFormat)$1,$2,
- (CoordSystem)$3,(SkyFrame)$4);}
+ (Coord::CoordSystem)$3,(Coord::SkyFrame)$4);}
| markerFormat INT
{fr->markerLoadCmd((Base::MarkerFormat)$1,$2);}
| markerFormat INT coordSystem skyFrame
{fr->markerLoadCmd((Base::MarkerFormat)$1,$2,
- (CoordSystem)$3,(SkyFrame)$4);}
+ (Coord::CoordSystem)$3,(Coord::SkyFrame)$4);}
| FITS_ STRING STRING markerDash INT STRING
{fr->markerLoadFitsCmd($2, $3, $4, $5, $6);}
;
@@ -2399,9 +2395,9 @@ markerMoveSelected : numeric numeric {fr->markerMoveCmd(Vector($1,$2));}
| MOTION_ numeric numeric {fr->markerMoveMotionCmd(Vector($2,$3));}
| END_ {fr->markerMoveEndCmd();}
| TO_ internalSystem coord
- {fr->markerMoveToCmd(Vector($3), (InternalSystem)$2);}
+ {fr->markerMoveToCmd(Vector($3), (Coord::InternalSystem)$2);}
| TO_ coordSystem skyFrame coord
- {fr->markerMoveToCmd(Vector($4), (CoordSystem)$2, (SkyFrame)$3);}
+ {fr->markerMoveToCmd(Vector($4), (Coord::CoordSystem)$2, (Coord::SkyFrame)$3);}
;
markerProps : markerProps markerProp
@@ -2478,10 +2474,10 @@ mask : CLEAR_ {fr->maskClearCmd();}
| TRANSPARENCY_ numeric {fr->maskTransparencyCmd($2);}
;
-orient : 'X' {fr->orientCmd(XX);}
- | 'Y' {fr->orientCmd(YY);}
- | XY_ {fr->orientCmd(XY);}
- | NONE_ {fr->orientCmd(NORMAL);}
+orient : 'X' {fr->orientCmd(Coord::XX);}
+ | 'Y' {fr->orientCmd(Coord::YY);}
+ | XY_ {fr->orientCmd(Coord::XY);}
+ | NONE_ {fr->orientCmd(Coord::NORMAL);}
;
pan : numeric numeric numeric numeric
@@ -2493,7 +2489,7 @@ pan : numeric numeric numeric numeric
fr->panCmd(Vector($2,$3));
}
| coordSystem skyFrame coord
- {fr->panCmd(Vector($3), (CoordSystem)$1, (SkyFrame)$2);}
+ {fr->panCmd(Vector($3), (Coord::CoordSystem)$1, (Coord::SkyFrame)$2);}
| TO_ panTo
| BBOX_ numeric numeric {fr->panBBoxCmd(Vector($2,$3));}
| MOTION_ panMotion
@@ -2507,7 +2503,7 @@ panTo : numeric numeric {fr->panToCmd(Vector($1,$2));}
fr->panToCmd(Vector($2,$3));
}
| coordSystem skyFrame coord
- {fr->panToCmd(Vector($3), (CoordSystem)$1, (SkyFrame)$2);}
+ {fr->panToCmd(Vector($3), (Coord::CoordSystem)$1, (Coord::SkyFrame)$2);}
;
panMotion : BEGIN_ numeric numeric {fr->panBeginCmd(Vector($2,$3));}
@@ -2517,7 +2513,7 @@ panMotion : BEGIN_ numeric numeric {fr->panBeginCmd(Vector($2,$3));}
panner : yesno {fr->pannerCmd($1);}
| WCS_ wcsSystem skyFrame
- {fr->pannerCmd((CoordSystem)$2,(SkyFrame)$3);}
+ {fr->pannerCmd((Coord::CoordSystem)$2,(Coord::SkyFrame)$3);}
| STRING INT INT {fr->pannerCmd($1, $2, $3);}
| UPDATE_ {fr->updatePannerCmd();}
;
@@ -2559,7 +2555,7 @@ renderMethod: MIP_ {$$ = Frame3dBase::MIP;}
;
rgb : CHANNEL_ STRING {fr->setRGBChannelCmd($2);}
- | SYSTEM_ coordSystem {fr->setRGBSystemCmd((CoordSystem)$2);}
+ | SYSTEM_ coordSystem {fr->setRGBSystemCmd((Coord::CoordSystem)$2);}
| VIEW_ INT INT INT {fr->setRGBViewCmd($2,$3,$4);}
;
@@ -2577,6 +2573,7 @@ rotateMotion : BEGIN_ {fr->rotateBeginCmd();}
save : ARRAY_ saveArray
| FITS_ saveFits
+ | PHOTO_ STRING {fr->savePhotoCmd($2);}
;
saveArray : FILE_ STRING endian
@@ -2637,7 +2634,7 @@ warp : numeric numeric {fr->warpCmd(Vector($1,$2));}
;
wcs : wcsSystem skyFrame skyFormat
- {fr->wcsCmd((CoordSystem)$1, (SkyFrame)$2, (SkyFormat)$3);}
+ {fr->wcsCmd((Coord::CoordSystem)$1, (Coord::SkyFrame)$2, (Coord::SkyFormat)$3);}
| ALIGN_ wcsAlign
| RESET_ INT {fr->wcsResetCmd($2);}
| REPLACE_ wcsReplace
@@ -2658,10 +2655,10 @@ wcsAlign : INT {fr->wcsAlignCmd($1);}
| INT wcsSystem skyFrame
{
// used by backup
- fr->wcsAlignCmd($1, (CoordSystem)$2, (SkyFrame)$3);
+ fr->wcsAlignCmd($1, (Coord::CoordSystem)$2, (Coord::SkyFrame)$3);
}
| INT POINTER wcsSystem
- {fr->wcsAlignCmd($1, (FitsImage*)$2, (CoordSystem)$3);}
+ {fr->wcsAlignCmd($1, (FitsImage*)$2, (Coord::CoordSystem)$3);}
;
win32 : PRINT_ {
@@ -2681,7 +2678,7 @@ zoom : numeric numeric {fr->zoomCmd(Vector($1,$2));}
}
| numeric numeric ABOUT_ coordSystem skyFrame coord
{fr->zoomAboutCmd(Vector($1,$2),Vector($6),
- (CoordSystem)$4,(SkyFrame)$5);}
+ (Coord::CoordSystem)$4,(Coord::SkyFrame)$5);}
| TO_ zoomTo
;
@@ -2697,7 +2694,7 @@ zoomTo : FIT_ {fr->zoomToFitCmd(1);}
}
| numeric numeric ABOUT_ coordSystem skyFrame coord
{fr->zoomToAboutCmd(Vector($1,$2), Vector($6),
- (CoordSystem)$4, (SkyFrame)$5);}
+ (Coord::CoordSystem)$4, (Coord::SkyFrame)$5);}
;
%%
diff --git a/saotk/frame/point.C b/saotk/frame/point.C
index 7810a23..e5534e8 100644
--- a/saotk/frame/point.C
+++ b/saotk/frame/point.C
@@ -3,25 +3,29 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "point.h"
-#include "framebase.h"
#include "fitsimage.h"
#define NUMSEG 16
Point::Point(const Point& a) : Marker(a)
{
- strncpy(pointtype,a.pointtype,16);
+ shape_ = a.shape_;
+ shapestr_ = dupstr(a.shapestr_);
size_ = a.size_;
}
-Point::Point(Base* p, const Vector& ctr, int size,
+Point::Point(Base* p, const Vector& ctr,
+ PointShape ss, int size,
const char* clr, int* dsh,
int wth, const char* fnt, const char* txt,
unsigned short prop, const char* cmt,
const List<Tag>& tg, const List<CallBack>& cb)
: Marker(p, ctr, 0, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
{
- pointtype[0] = '\0';
+ strcpy(type_, "point");
+
+ shape_ = ss;
+ shapeStr(ss);
size_ = size;
handle = new Vector[4];
@@ -30,115 +34,63 @@ Point::Point(Base* p, const Vector& ctr, int size,
updateBBox();
}
-// Support
-
-void Point::updateHandles()
+Point::~Point()
{
- // bound marker
- double ss = size_/2;
- Vector cc = center*parent->refToCanvas;
-
- Vector lla = cc+Vector(-ss,-ss);
- Vector llb = lla*parent->canvasToRef;
- Vector ll = parent->mapFromRef(llb,CANVAS);
-
- Vector lra = cc+Vector(-ss,ss);
- Vector lrb = lra*parent->canvasToRef;
- Vector lr = parent->mapFromRef(lrb,CANVAS);
-
- Vector ura = cc+Vector(ss,ss);
- Vector urb = ura*parent->canvasToRef;
- Vector ur = parent->mapFromRef(urb,CANVAS);
-
- Vector ula = cc+Vector(ss,-ss);
- Vector ulb = ula*parent->canvasToRef;
- Vector ul = parent->mapFromRef(ulb,CANVAS);
-
- handle[0] = ll;
- handle[1] = lr;
- handle[2] = ur;
- handle[3] = ul;
+ if (shapestr_)
+ delete [] shapestr_;
}
-void Point::setSize(int size)
-{
- size_ = size;
- updateBBox();
- doCallBack(CallBack::EDITCB);
-}
+// X11
-// Box
-Vector* Point::generateBox(InternalSystem sys)
+void Point::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
- Vector* vv = new Vector[5];
-
- Matrix mm;
- Matrix nn;
- setMatrices(sys,&mm,&nn);
-
- double ss = size_/2;
- Vector cc = center*mm;
-
- Vector v1a = cc+Vector(-ss,-ss);
- Vector v1b = v1a*nn;
- vv[0] = parent->mapFromRef(v1b,sys);
-
- Vector v2a = cc+Vector(-ss,ss);
- Vector v2b = v2a*nn;
- vv[1] = parent->mapFromRef(v2b,sys);
-
- Vector v3a = cc+Vector(ss,ss);
- Vector v3b = v3a*nn;
- vv[2] = parent->mapFromRef(v3b,sys);
-
- Vector v4a = cc+Vector(ss,-ss);
- Vector v4b = v4a*nn;
- vv[3] = parent->mapFromRef(v4b,sys);
-
- vv[4] = vv[0];
-
- return vv;
-}
-
-Vector* Point::generateCircle(InternalSystem sys, int ss)
-{
- Vector* vv = new Vector[NUMSEG+1];
-
- Matrix mm;
- Matrix nn;
- setMatrices(sys,&mm,&nn);
-
- Vector cc = center*mm;
+ GC lgc = renderXGC(mode);
+ Vector* vv = NULL;
- for (int ii=0; ii<NUMSEG; ii++) {
- double ang = ii*M_TWOPI/NUMSEG;
- Vector xy = Vector(cos(ang)*ss/2, sin(ang)*ss/2);
- Vector aa = cc+xy;
- Vector bb = aa*nn;
- vv[ii] = parent->mapFromRef(bb,sys);
+ switch (shape_) {
+ case CIRCLE:
+ renderXCircle(drawable, sys, mode, size_);
+ break;
+ case BOX:
+ renderXBox(drawable, sys, mode);
+ break;
+ case DIAMOND:
+ vv = generateDiamond(sys);
+ XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[1][0], vv[1][1]);
+ XDrawLine(display, drawable, lgc, vv[1][0], vv[1][1], vv[2][0], vv[2][1]);
+ XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
+ XDrawLine(display, drawable, lgc, vv[3][0], vv[3][1], vv[0][0], vv[0][1]);
+ break;
+ case CROSS:
+ vv = generateCross(sys);
+ XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[1][0], vv[1][1]);
+ XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
+ break;
+ case EX:
+ vv = generateEx(sys);
+ XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[1][0], vv[1][1]);
+ XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
+ break;
+ case ARROW:
+ vv = generateArrow(sys);
+ XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[3][0], vv[3][1]);
+ XDrawLine(display, drawable, lgc, vv[1][0], vv[1][1], vv[3][0], vv[3][1]);
+ XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
+ break;
+ case BOXCIRCLE:
+ renderXBox(drawable, sys, mode);
+ renderXCircle(drawable, sys, mode, size_-2);
+ break;
}
- vv[NUMSEG] = vv[0];
- return vv;
-}
-
-void Point::renderXBox(Drawable drawable, InternalSystem sys, RenderMode mode)
-{
- GC lgc = renderXGC(mode);
-
- Vector* vv = generateBox(sys);
- XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[1][0], vv[1][1]);
- XDrawLine(display, drawable, lgc, vv[1][0], vv[1][1], vv[2][0], vv[2][1]);
- XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
- XDrawLine(display, drawable, lgc, vv[3][0], vv[3][1], vv[0][0], vv[0][1]);
- delete [] vv;
+ if (vv)
+ delete [] vv;
}
-void Point::renderXCircle(Drawable drawable, InternalSystem sys,
+void Point::renderXCircle(Drawable drawable, Coord::InternalSystem sys,
RenderMode mode, int rr)
{
GC lgc = renderXGC(mode);
-
if (parent->isAzElZero()) {
Vector cc = parent->mapFromRef(center,sys);
Vector v = cc*Translate(-Vector(rr,rr)/2);
@@ -158,6 +110,17 @@ void Point::renderXCircle(Drawable drawable, InternalSystem sys,
}
}
+void Point::renderXBox(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
+{
+ GC lgc = renderXGC(mode);
+ Vector* vv = generateBox(sys);
+ XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[1][0], vv[1][1]);
+ XDrawLine(display, drawable, lgc, vv[1][0], vv[1][1], vv[2][0], vv[2][1]);
+ XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
+ XDrawLine(display, drawable, lgc, vv[3][0], vv[3][1], vv[0][0], vv[0][1]);
+ delete [] vv;
+}
+
void Point::renderXLineDash(GC lgc)
{
char dlist[2];
@@ -168,36 +131,91 @@ void Point::renderXLineDash(GC lgc)
XSetLineAttributes(display, lgc, ww, LineOnOffDash, CapButt, JoinMiter);
}
-void Point::renderPSBox(int mode)
+// PS
+
+void Point::renderPS(int mode)
{
renderPSGC(mode);
-
- Vector* vv = generateBox(CANVAS);
+ Vector* vv =NULL;
ostringstream str;
- str << "newpath "
- << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
- << vv[1].TkCanvasPs(parent->canvas) << " lineto" << endl
- << vv[2].TkCanvasPs(parent->canvas) << " lineto" << endl
- << vv[3].TkCanvasPs(parent->canvas) << " lineto" << endl
- << "closepath stroke" << endl
- << ends;
- Tcl_AppendResult(parent->interp, (char*)str.str().c_str(), NULL);
- delete [] vv;
+
+ switch (shape_) {
+ case CIRCLE:
+ renderPSCircle(mode, size_);
+ break;
+ case BOX:
+ renderPSBox(mode);
+ break;
+ case DIAMOND:
+ vv = generateDiamond(Coord::CANVAS);
+ str << "newpath "
+ << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
+ << vv[1].TkCanvasPs(parent->canvas) << " lineto" << endl
+ << vv[2].TkCanvasPs(parent->canvas) << " lineto" << endl
+ << vv[3].TkCanvasPs(parent->canvas) << " lineto" << endl
+ << "closepath stroke" << endl
+ << ends;
+ Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
+ break;
+ case CROSS:
+ vv = generateCross(Coord::CANVAS);
+ str << "newpath "
+ << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
+ << vv[1].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
+ << "newpath "
+ << vv[2].TkCanvasPs(parent->canvas) << " moveto" << endl
+ << vv[3].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
+ << "closepath stroke" << endl
+ << ends;
+ Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
+ break;
+ case EX:
+ vv = generateEx(Coord::CANVAS);
+ str << "newpath "
+ << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
+ << vv[1].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
+ << "newpath "
+ << vv[2].TkCanvasPs(parent->canvas) << " moveto" << endl
+ << vv[3].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
+ << "closepath stroke" << endl
+ << ends;
+ Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
+ break;
+ case ARROW:
+ vv = generateArrow(Coord::CANVAS);
+ str << "newpath "
+ << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
+ << vv[3].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
+ << "newpath "
+ << vv[1].TkCanvasPs(parent->canvas) << " moveto" << endl
+ << vv[3].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
+ << "newpath "
+ << vv[2].TkCanvasPs(parent->canvas) << " moveto" << endl
+ << vv[3].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
+ << ends;
+ Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
+ break;
+ case BOXCIRCLE:
+ renderPSBox(mode);
+ renderPSCircle(mode,size_-2);
+ break;
+ }
+
+ if (vv)
+ delete [] vv;
}
void Point::renderPSCircle(int mode, int ss)
{
- renderPSGC(mode);
-
if (parent->isAzElZero()) {
- Vector cc = parent->mapFromRef(center,CANVAS);
+ Vector cc = parent->mapFromRef(center,Coord::CANVAS);
ostringstream str;
str << "newpath " << cc.TkCanvasPs(parent->canvas) << ss/2.
<< " 0 360 arc stroke" << endl << ends;
Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
}
else {
- Vector* vv = generateCircle(CANVAS,ss);
+ Vector* vv = generateCircle(Coord::CANVAS,ss);
ostringstream str;
str << "newpath " << vv[0].TkCanvasPs(parent->canvas) << " moveto " << endl;
for (int ii=1; ii<NUMSEG; ii++)
@@ -208,6 +226,21 @@ void Point::renderPSCircle(int mode, int ss)
}
}
+void Point::renderPSBox(int mode)
+{
+ Vector* vv = generateBox(Coord::CANVAS);
+ ostringstream str;
+ str << "newpath "
+ << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
+ << vv[1].TkCanvasPs(parent->canvas) << " lineto" << endl
+ << vv[2].TkCanvasPs(parent->canvas) << " lineto" << endl
+ << vv[3].TkCanvasPs(parent->canvas) << " lineto" << endl
+ << "closepath stroke" << endl
+ << ends;
+ Tcl_AppendResult(parent->interp, (char*)str.str().c_str(), NULL);
+ delete [] vv;
+}
+
void Point::renderPSLineDash()
{
ostringstream str;
@@ -216,14 +249,48 @@ void Point::renderPSLineDash()
Tcl_AppendResult(parent->interp, (char*)str.str().c_str(), NULL);
}
+// MacOSX
+
#ifdef _MACOSX
-void Point::renderMACOSXBox()
+void Point::renderMACOSX()
{
renderMACOSXGC();
- Vector* vv = generateBox(CANVAS);
- macosxDrawLines(vv,5);
- delete [] vv;
+ switch (shape_) {
+ case CIRCLE:
+ renderMACOSXCircle(size_);
+ break;
+ case BOX:
+ renderMACOSXBox();
+ break;
+ case DIAMOND:
+ vv = generateDiamond(Coord::CANVAS);
+ macosxDrawLines(vv,5);
+ break;
+ case CROSS:
+ vv = generateCross(Coord::CANVAS);
+ macosxDrawLine(vv[0],vv[1]);
+ macosxDrawLine(vv[2],vv[3]);
+ break;
+ case EX:
+ vv = generateEx(Coord::CANVAS);
+ macosxDrawLine(vv[0],vv[1]);
+ macosxDrawLine(vv[2],vv[3]);
+ break;
+ case ARROW:
+ vv = generateArrow(Coord::CANVAS);
+ macosxDrawLine(vv[0],vv[3]);
+ macosxDrawLine(vv[1],vv[3]);
+ macosxDrawLine(vv[2],vv[3]);
+ break;
+ case BOXCIRCLE:
+ renderMACOSXBox();
+ renderMACOSXCircle(size_-2);
+ break;
+ }
+
+ if (vv)
+ delete [] vv;
}
void Point::renderMACOSXCircle(int ss)
@@ -231,16 +298,25 @@ void Point::renderMACOSXCircle(int ss)
renderMACOSXGC();
if (parent->isAzElZero()) {
- Vector cc = parent->mapFromRef(center,CANVAS);
+ Vector cc = parent->mapFromRef(center,Coord::CANVAS);
macosxDrawArc(cc, ss/2., 0, M_TWOPI);
}
else {
- Vector* vv = generateCircle(CANVAS, ss);
+ Vector* vv = generateCircle(Coord::CANVAS, ss);
macosxDrawLines(vv,NUMSEG+1);
delete [] vv;
}
}
+void Point::renderMACOSXBox()
+{
+ renderMACOSXGC();
+
+ Vector* vv = generateBox(Coord::CANVAS);
+ macosxDrawLines(vv,5);
+ delete [] vv;
+}
+
void Point::renderMACOSXLineDash()
{
macosxWidth(lineWidth);
@@ -249,31 +325,71 @@ void Point::renderMACOSXLineDash()
}
#endif
+// WIN32
+
#ifdef _WIN32
-void Point::renderWIN32Box()
+void Point::renderWIN32()
{
renderWIN32GC();
+ Vector* vv = NULL;
- Vector* vv = generateBox(CANVAS);
- win32DrawLines(vv,5);
- delete [] vv;
+ switch (shape_) {
+ case CIRCLE:
+ renderWIN32Circle(size_);
+ break;
+ case BOX:
+ renderWIN32Box();
+ break;
+ case DIAMOND:
+ vv = generateDiamond(Coord::CANVAS);
+ win32DrawLines(vv,5);
+ break;
+ case CROSS:
+ vv = generateCross(Coord::CANVAS);
+ win32DrawLine(vv[0],vv[1]);
+ win32DrawLine(vv[2],vv[3]);
+ break;
+ case EX:
+ vv = generateEx(Coord::CANVAS);
+ win32DrawLine(vv[0],vv[1]);
+ win32DrawLine(vv[2],vv[3]);
+ break;
+ case ARROW:
+ vv = generateArrow(Coord::CANVAS);
+ win32DrawLine(vv[0],vv[3]);
+ win32DrawLine(vv[1],vv[3]);
+ win32DrawLine(vv[2],vv[3]);
+ break;
+ case BOXCIRCLE:
+ renderWIN32Box();
+ renderWIN32Circle(size_-2);
+ break;
+ }
+
+ if (vv)
+ delete [] vv;
}
void Point::renderWIN32Circle(int ss)
{
- renderWIN32GC();
-
if (parent->isAzElZero()) {
- Vector cc = parent->mapFromRef(center,CANVAS);
+ Vector cc = parent->mapFromRef(center,Coord::CANVAS);
win32DrawArc(cc, ss/2., 0, M_TWOPI);
}
else {
- Vector* vv = generateCircle(CANVAS, ss);
+ Vector* vv = generateCircle(Coord::CANVAS, ss);
win32DrawLines(vv,NUMSEG+1);
delete [] vv;
}
}
+void Point::renderWIN32Box()
+{
+ Vector* vv = generateBox(Coord::CANVAS);
+ win32DrawLines(vv,5);
+ delete [] vv;
+}
+
void Point::renderWIN32LineDash()
{
win32Width(lineWidth);
@@ -282,122 +398,63 @@ void Point::renderWIN32LineDash()
}
#endif
-CirclePoint::CirclePoint(const CirclePoint& a) : Point(a) {}
-
-CirclePoint::CirclePoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb)
- : Point(p, ctr, size, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
-{
- strcpy(type,"circle point");
- strcpy(pointtype,"circle");
-}
-
-void CirclePoint::renderX(Drawable drawable, InternalSystem sys,
- RenderMode mode)
-{
- renderXCircle(drawable,sys,mode,size_);
-}
-
-void CirclePoint::renderPS(int mode)
-{
- renderPSCircle(mode, size_);
-}
+// Support
-#ifdef _MACOSX
-void CirclePoint::renderMACOSX()
+Vector* Point::generateCircle(Coord::InternalSystem sys, int ss)
{
- renderMACOSXCircle(size_);
-}
-#endif
-
-#ifdef _WIN32
-void CirclePoint::renderWIN32()
-{
- renderWIN32Circle(size_);
-}
-#endif
+ Vector* vv = new Vector[NUMSEG+1];
-BoxPoint::BoxPoint(const BoxPoint& a) : Point(a) {}
+ Matrix mm;
+ Matrix nn;
+ setMatrices(sys,&mm,&nn);
-BoxPoint::BoxPoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb)
- : Point(p, ctr, size, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
-{
- strcpy(type, "box point");
- strcpy(pointtype, "box");
-}
+ Vector cc = center*mm;
-void BoxPoint::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
-{
- GC lgc = renderXGC(mode);
+ for (int ii=0; ii<NUMSEG; ii++) {
+ double ang = ii*M_TWOPI/NUMSEG;
+ Vector xy = Vector(cos(ang)*ss/2, sin(ang)*ss/2);
+ Vector aa = cc+xy;
+ Vector bb = aa*nn;
+ vv[ii] = parent->mapFromRef(bb,sys);
+ }
+ vv[NUMSEG] = vv[0];
- Vector* vv = generateBox(sys);
- XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[1][0], vv[1][1]);
- XDrawLine(display, drawable, lgc, vv[1][0], vv[1][1], vv[2][0], vv[2][1]);
- XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
- XDrawLine(display, drawable, lgc, vv[3][0], vv[3][1], vv[0][0], vv[0][1]);
- delete [] vv;
+ return vv;
}
-void BoxPoint::renderPS(int mode)
+Vector* Point::generateBox(Coord::InternalSystem sys)
{
- renderPSGC(mode);
+ Vector* vv = new Vector[5];
- Vector* vv = generateBox(CANVAS);
- ostringstream str;
- str << "newpath "
- << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
- << vv[1].TkCanvasPs(parent->canvas) << " lineto" << endl
- << vv[2].TkCanvasPs(parent->canvas) << " lineto" << endl
- << vv[3].TkCanvasPs(parent->canvas) << " lineto" << endl
- << "closepath stroke" << endl
- << ends;
- Tcl_AppendResult(parent->interp, (char*)str.str().c_str(), NULL);
- delete [] vv;
-}
+ Matrix mm;
+ Matrix nn;
+ setMatrices(sys,&mm,&nn);
-#ifdef _MACOSX
-void BoxPoint::renderMACOSX()
-{
- renderMACOSXGC();
+ double ss = size_/2;
+ Vector cc = center*mm;
- Vector* vv = generateBox(CANVAS);
- macosxDrawLines(vv,5);
- delete [] vv;
-}
-#endif
+ Vector v1a = cc+Vector(-ss,-ss);
+ Vector v1b = v1a*nn;
+ vv[0] = parent->mapFromRef(v1b,sys);
+
+ Vector v2a = cc+Vector(-ss,ss);
+ Vector v2b = v2a*nn;
+ vv[1] = parent->mapFromRef(v2b,sys);
-#ifdef _WIN32
-void BoxPoint::renderWIN32()
-{
- renderWIN32GC();
+ Vector v3a = cc+Vector(ss,ss);
+ Vector v3b = v3a*nn;
+ vv[2] = parent->mapFromRef(v3b,sys);
- Vector* vv = generateBox(CANVAS);
- win32DrawLines(vv,5);
- delete [] vv;
-}
-#endif
+ Vector v4a = cc+Vector(ss,-ss);
+ Vector v4b = v4a*nn;
+ vv[3] = parent->mapFromRef(v4b,sys);
-DiamondPoint::DiamondPoint(const DiamondPoint& a) : Point(a) {}
+ vv[4] = vv[0];
-DiamondPoint::DiamondPoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb)
- : Point(p, ctr, size, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
-{
- strcpy(type, "diamond point");
- strcpy(pointtype, "diamond");
+ return vv;
}
-Vector* DiamondPoint::generate(InternalSystem sys)
+Vector* Point::generateDiamond(Coord::InternalSystem sys)
{
Vector* vv = new Vector[5];
@@ -430,72 +487,7 @@ Vector* DiamondPoint::generate(InternalSystem sys)
return vv;
}
-void DiamondPoint::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
-{
- GC lgc = renderXGC(mode);
-
- // don't round
- Vector* vv = generate(sys);
- XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[1][0], vv[1][1]);
- XDrawLine(display, drawable, lgc, vv[1][0], vv[1][1], vv[2][0], vv[2][1]);
- XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
- XDrawLine(display, drawable, lgc, vv[3][0], vv[3][1], vv[0][0], vv[0][1]);
- delete [] vv;
-}
-
-void DiamondPoint::renderPS(int mode)
-{
- renderPSGC(mode);
-
- Vector* vv = generate(CANVAS);
- ostringstream str;
- str << "newpath "
- << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
- << vv[1].TkCanvasPs(parent->canvas) << " lineto" << endl
- << vv[2].TkCanvasPs(parent->canvas) << " lineto" << endl
- << vv[3].TkCanvasPs(parent->canvas) << " lineto" << endl
- << "closepath stroke" << endl
- << ends;
- Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
- delete [] vv;
-}
-
-#ifdef _MACOSX
-void DiamondPoint::renderMACOSX()
-{
- renderMACOSXGC();
-
- Vector* vv = generate(CANVAS);
- macosxDrawLines(vv,5);
- delete [] vv;
-}
-#endif
-
-#ifdef _WIN32
-void DiamondPoint::renderWIN32()
-{
- renderWIN32GC();
-
- Vector* vv = generate(CANVAS);
- win32DrawLines(vv,5);
- delete [] vv;
-}
-#endif
-
-CrossPoint::CrossPoint(const CrossPoint& a) : Point(a) {}
-
-CrossPoint::CrossPoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb)
- : Point(p, ctr, size, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
-{
- strcpy(type, "cross point");
- strcpy(pointtype, "cross");
-}
-
-Vector* CrossPoint::generate(InternalSystem sys)
+Vector* Point::generateCross(Coord::InternalSystem sys)
{
Vector* vv = new Vector[4];
@@ -526,73 +518,7 @@ Vector* CrossPoint::generate(InternalSystem sys)
return vv;
}
-void CrossPoint::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
-{
- GC lgc = renderXGC(mode);
-
- // don't round
- Vector* vv = generate(sys);
- XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[1][0], vv[1][1]);
- XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
- delete [] vv;
-}
-
-void CrossPoint::renderPS(int mode)
-{
- renderPSGC(mode);
-
- Vector* vv = generate(CANVAS);
- ostringstream str;
- str << "newpath "
- << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
- << vv[1].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
- << "newpath "
- << vv[2].TkCanvasPs(parent->canvas) << " moveto" << endl
- << vv[3].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
- << "closepath stroke" << endl
- << ends;
- Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
- delete [] vv;
-}
-
-#ifdef _MACOSX
-void CrossPoint::renderMACOSX()
-{
- renderMACOSXGC();
-
- Vector* vv = generate(CANVAS);
- macosxDrawLine(vv[0],vv[1]);
- macosxDrawLine(vv[2],vv[3]);
- delete [] vv;
-}
-#endif
-
-#ifdef _WIN32
-void CrossPoint::renderWIN32()
-{
- renderWIN32GC();
-
- Vector* vv = generate(CANVAS);
- win32DrawLine(vv[0],vv[1]);
- win32DrawLine(vv[2],vv[3]);
- delete [] vv;
-}
-#endif
-
-ExPoint::ExPoint(const ExPoint& a) : Point(a) {}
-
-ExPoint::ExPoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb)
- : Point(p, ctr, size, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
-{
- strcpy(type, "x point");
- strcpy(pointtype, "x");
-}
-
-Vector* ExPoint::generate(InternalSystem sys)
+Vector* Point::generateEx(Coord::InternalSystem sys)
{
Vector* vv = new Vector[4];
@@ -623,73 +549,7 @@ Vector* ExPoint::generate(InternalSystem sys)
return vv;
}
-void ExPoint::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
-{
- GC lgc = renderXGC(mode);
-
- // don't round
- Vector* vv = generate(sys);
- XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[1][0], vv[1][1]);
- XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
- delete [] vv;
-}
-
-void ExPoint::renderPS(int mode)
-{
- renderPSGC(mode);
-
- Vector* vv = generate(CANVAS);
- ostringstream str;
- str << "newpath "
- << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
- << vv[1].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
- << "newpath "
- << vv[2].TkCanvasPs(parent->canvas) << " moveto" << endl
- << vv[3].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
- << "closepath stroke" << endl
- << ends;
- Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
- delete [] vv;
-}
-
-#ifdef _MACOSX
-void ExPoint::renderMACOSX()
-{
- renderMACOSXGC();
-
- Vector* vv = generate(CANVAS);
- macosxDrawLine(vv[0],vv[1]);
- macosxDrawLine(vv[2],vv[3]);
- delete [] vv;
-}
-#endif
-
-#ifdef _WIN32
-void ExPoint::renderWIN32()
-{
- renderWIN32GC();
-
- Vector* vv = generate(CANVAS);
- win32DrawLine(vv[0],vv[1]);
- win32DrawLine(vv[2],vv[3]);
- delete [] vv;
-}
-#endif
-
-ArrowPoint::ArrowPoint(const ArrowPoint& a) : Point(a) {}
-
-ArrowPoint::ArrowPoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb)
- : Point(p, ctr, size, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
-{
- strcpy(type, "arrow point");
- strcpy(pointtype, "arrow");
-}
-
-Vector* ArrowPoint::generate(InternalSystem sys)
+Vector* Point::generateArrow(Coord::InternalSystem sys)
{
Vector* vv = new Vector[4];
@@ -720,136 +580,147 @@ Vector* ArrowPoint::generate(InternalSystem sys)
return vv;
}
-void ArrowPoint::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Point::shapeStr(PointShape ss)
{
- GC lgc = renderXGC(mode);
-
- // don't round
- Vector* vv = generate(sys);
- XDrawLine(display, drawable, lgc, vv[0][0], vv[0][1], vv[3][0], vv[3][1]);
- XDrawLine(display, drawable, lgc, vv[1][0], vv[1][1], vv[3][0], vv[3][1]);
- XDrawLine(display, drawable, lgc, vv[2][0], vv[2][1], vv[3][0], vv[3][1]);
- delete [] vv;
+ switch (ss) {
+ case CIRCLE:
+ shapestr_ = dupstr("circle");
+ break;
+ case BOX:
+ shapestr_ = dupstr("box");
+ break;
+ case DIAMOND:
+ shapestr_ = dupstr("diamond");
+ break;
+ case CROSS:
+ shapestr_ = dupstr("cross");
+ break;
+ case EX:
+ shapestr_ = dupstr("x");
+ break;
+ case ARROW:
+ shapestr_ = dupstr("arrow");
+ break;
+ case BOXCIRCLE:
+ shapestr_ = dupstr("boxcircle");
+ break;
+ }
}
-void ArrowPoint::renderPS(int mode)
+void Point::setShape(PointShape ss)
{
- renderPSGC(mode);
-
- Vector* vv = generate(CANVAS);
- ostringstream str;
- str << "newpath "
- << vv[0].TkCanvasPs(parent->canvas) << " moveto" << endl
- << vv[3].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
- << "newpath "
- << vv[1].TkCanvasPs(parent->canvas) << " moveto" << endl
- << vv[3].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
- << "newpath "
- << vv[2].TkCanvasPs(parent->canvas) << " moveto" << endl
- << vv[3].TkCanvasPs(parent->canvas) << " lineto stroke" << endl
- << ends;
- Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
- delete [] vv;
+ shape_ = ss;
+ shapeStr(ss);
+ updateBBox();
+ doCallBack(CallBack::EDITCB);
}
-#ifdef _MACOSX
-void ArrowPoint::renderMACOSX()
+void Point::setSize(int size)
{
- renderMACOSXGC();
-
- Vector* vv = generate(CANVAS);
- macosxDrawLine(vv[0],vv[3]);
- macosxDrawLine(vv[1],vv[3]);
- macosxDrawLine(vv[2],vv[3]);
- delete [] vv;
+ size_ = size;
+ updateBBox();
+ doCallBack(CallBack::EDITCB);
}
-#endif
-#ifdef _WIN32
-void ArrowPoint::renderWIN32()
+void Point::updateHandles()
{
- renderWIN32GC();
+ // bound marker
+ double ss = size_/2;
+ Vector cc = center*parent->refToCanvas;
- Vector* vv = generate(CANVAS);
- win32DrawLine(vv[0],vv[3]);
- win32DrawLine(vv[1],vv[3]);
- win32DrawLine(vv[2],vv[3]);
- delete [] vv;
-}
-#endif
+ Vector lla = cc+Vector(-ss,-ss);
+ Vector llb = lla*parent->canvasToRef;
+ Vector ll = parent->mapFromRef(llb,Coord::CANVAS);
-BoxCirclePoint::BoxCirclePoint(const BoxCirclePoint& a) : Point(a) {}
+ Vector lra = cc+Vector(-ss,ss);
+ Vector lrb = lra*parent->canvasToRef;
+ Vector lr = parent->mapFromRef(lrb,Coord::CANVAS);
-BoxCirclePoint::BoxCirclePoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb)
- : Point(p, ctr, size, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
-{
- strcpy(type, "boxcircle point");
- strcpy(pointtype, "boxcircle");
-}
+ Vector ura = cc+Vector(ss,ss);
+ Vector urb = ura*parent->canvasToRef;
+ Vector ur = parent->mapFromRef(urb,Coord::CANVAS);
-void BoxCirclePoint::renderX(Drawable drawable, InternalSystem sys,
- RenderMode mode)
-{
- renderXBox(drawable, sys, mode);
- renderXCircle(drawable, sys, mode, size_-2);
+ Vector ula = cc+Vector(ss,-ss);
+ Vector ulb = ula*parent->canvasToRef;
+ Vector ul = parent->mapFromRef(ulb,Coord::CANVAS);
+
+ handle[0] = ll;
+ handle[1] = lr;
+ handle[2] = ur;
+ handle[3] = ul;
}
-void BoxCirclePoint::renderPS(int mode)
+void Point::analysis(AnalysisMethod mm, int which)
{
- renderPSBox(mode);
- renderPSCircle(mode,size_-2);
+ switch (mm) {
+ case PLOT3D:
+ if (!analysisPlot3d_ && which) {
+ addCallBack(CallBack::MOVECB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::DELETECB, analysisPlot3dCB_[1],
+ parent->options->cmdName);
+ }
+ if (analysisPlot3d_ && !which) {
+ deleteCallBack(CallBack::MOVECB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::DELETECB, analysisPlot3dCB_[1]);
+ }
+
+ analysisPlot3d_ = which;
+ break;
+ }
}
-#ifdef _MACOSX
-void BoxCirclePoint::renderMACOSX()
+void Point::analysisPlot3d(char* xname, char* yname)
{
- renderMACOSXBox();
- renderMACOSXCircle(size_-2);
+ double* x;
+ double* y;
+ Vector ll = -Vector(.5,.5) * Translate(center);
+ Vector ur = Vector(.5,.5) * Translate(center);
+ BBox bb(ll,ur);
+ int num = parent->markerAnalysisPlot3d(&x, &y, this, bb);
+ analysisPlot3dResult(xname, yname, x, y, num);
}
-#endif
-#ifdef _WIN32
-void BoxCirclePoint::renderWIN32()
+int Point::isIn(const Vector& vv, Coord::InternalSystem sys)
{
- renderWIN32Box();
- renderWIN32Circle(size_-2);
+ Vector pp = bckMap(vv,sys);
+
+ if (pp[0]<-.5 || pp[0]>=.5 || pp[1]<-.5 || pp[1]>=.5)
+ return 0;
+ else
+ return 1;
}
-#endif
// list
-void Point::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Point::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
- str << "point" << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
}
break;
default:
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- str << "point" << '(' << setprecision(8)
+ str << type_ << '(' << setprecision(8)
<< v[0] << ',' << v[1] << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -858,14 +729,14 @@ void Point::list(ostream& str, CoordSystem sys, SkyFrame sky,
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << "point" << '(' << ra << ',' << dec << ')';
+ str << type_ << '(' << ra << ',' << dec << ')';
}
break;
}
}
else {
Vector v = ptr->mapFromRef(center,sys);
- str << "point" << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
}
}
}
@@ -880,10 +751,11 @@ void Point::listPost(ostream& str, int conj, int strip)
if (conj)
str << " ||";
- str << " # point=" << pointtype;
+ str << " # point=" << shapestr_;
+
if (size_ != POINTSIZE)
str << ' ' << size_;
- listProperties(str, 0);
+ listProperties(str,0);
}
else {
if (conj)
@@ -893,47 +765,48 @@ void Point::listPost(ostream& str, int conj, int strip)
}
}
-void Point::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Point::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,"point");
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
- XMLRow(XMLPARAM,pointtype);
+
+ XMLRow(XMLPARAM,shapestr_);
XMLRow(XMLPARAM2,size_);
XMLRowProps(ptr,sys);
XMLRowEnd(str);
}
-void Point::listCiao(ostream& str, CoordSystem sys, int strip)
+void Point::listCiao(ostream& str, Coord::CoordSystem sys, int strip)
{
FitsImage* ptr = parent->findFits();
listCiaoPre(str);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,PHYSICAL);
- str << "point(" << setprecision(8) << v[0] << ',' << v[1] << ')';
+ Vector v = ptr->mapFromRef(center,Coord::PHYSICAL);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
}
break;
default:
if (ptr->hasWCSCel(sys)) {
char buf[64];
- ptr->mapFromRef(center,sys,FK5,SEXAGESIMAL,buf,64);
+ ptr->mapFromRef(center,sys,Coord::FK5,Coord::SEXAGESIMAL,buf,64);
char ra[16];
char dec[16];
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << "point" << '(' << ra << ',' << dec << ')';
+ str << type_ << '(' << ra << ',' << dec << ')';
}
break;
}
@@ -941,37 +814,37 @@ void Point::listCiao(ostream& str, CoordSystem sys, int strip)
listCiaoPost(str, strip);
}
-void Point::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Point::listPros(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
switch (sys) {
- case IMAGE:
- case DETECTOR:
- case AMPLIFIER:
- sys = IMAGE;
- case PHYSICAL:
+ case Coord::IMAGE:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
+ sys = Coord::IMAGE;
+ case Coord::PHYSICAL:
{
- listProsCoordSystem(str,sys,sky);
+ coord.listProsCoordSystem(str,sys,sky);
str << "; ";
Vector v = ptr->mapFromRef(center,sys);
- str << "point " << setprecision(8) << v;
+ str << type_ << ' ' << setprecision(8) << v;
}
break;
default:
if (ptr->hasWCSCel(sys)) {
- listProsCoordSystem(str,sys,sky);
+ coord.listProsCoordSystem(str,sys,sky);
str << "; ";
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- str << "point " << setprecision(8) << v[0] << "d " << v[1] << "d ";
+ str << type_ << ' ' << setprecision(8) << v[0] << "d " << v[1] << "d ";
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -981,9 +854,9 @@ void Point::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
istringstream wcs(x);
wcs >> ra >> dec;
if (dec[0]=='+')
- str << "point " << ra << ' ' << dec+1;
+ str << type_ << ' ' << ra << ' ' << dec+1;
else
- str << "point " << ra << ' ' << dec;
+ str << type_ << ' ' << ra << ' ' << dec;
}
break;
}
@@ -993,32 +866,32 @@ void Point::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
listProsPost(str, strip);
}
-void Point::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Point::listSAOtng(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
listSAOtngPre(str, strip);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,IMAGE);
- str << "point(" << setprecision(8) << v[0] << ',' << v[1] << ')';
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
}
break;
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- str << "point(" << setprecision(8) << v[0] << ',' << v[1] << ')';
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -1027,7 +900,7 @@ void Point::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << "point(" << ra << ',' << dec << ')';
+ str << type_ << '(' << ra << ',' << dec << ')';
}
break;
}
@@ -1044,8 +917,8 @@ void Point::listSAOimage(ostream& str, int strip)
// all coords are in image coords
- Vector v = ptr->mapFromRef(center,IMAGE);
- str << "point(" << setprecision(8) << v[0] << ',' << v[1] << ')';
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
listSAOimagePost(str, strip);
}
diff --git a/saotk/frame/point.h b/saotk/frame/point.h
index bca586f..9b86a91 100644
--- a/saotk/frame/point.h
+++ b/saotk/frame/point.h
@@ -8,226 +8,93 @@
#include "marker.h"
class Point : public Marker {
+ public:
+ enum PointShape {CIRCLE,BOX,DIAMOND,CROSS,EX,ARROW,BOXCIRCLE};
+
protected:
- char pointtype[16];
+ PointShape shape_;
+ char* shapestr_;
int size_;
- protected:
- Vector* generateBox(InternalSystem);
- Vector* generateCircle(InternalSystem,int);
+ Vector* generateCircle(Coord::InternalSystem, int);
+ Vector* generateBox(Coord::InternalSystem);
+ Vector* generateDiamond(Coord::InternalSystem);
+ Vector* generateCross(Coord::InternalSystem);
+ Vector* generateEx(Coord::InternalSystem);
+ Vector* generateArrow(Coord::InternalSystem);
- void renderXBox(Drawable drawable, InternalSystem sys, RenderMode mode);
- void renderXCircle(Drawable, InternalSystem, RenderMode, int);
+ void renderXCircle(Drawable, Coord::InternalSystem, RenderMode, int);
+ void renderXBox(Drawable drawable, Coord::InternalSystem sys, RenderMode mode);
void renderXLineDash(GC lgc);
- void renderPSBox(int);
void renderPSCircle(int,int);
+ void renderPSBox(int);
void renderPSLineDash();
#ifdef _MACOSX
- void renderMACOSXBox();
void renderMACOSXCircle(int);
+ void renderMACOSXBox();
void renderMACOSXLineDash();
#endif
#ifdef _WIN32
- void renderWIN32Box();
void renderWIN32Circle(int);
+ void renderWIN32Box();
void renderWIN32LineDash();
#endif
+ void shapeStr(PointShape);
void updateHandles();
public:
Point(const Point&);
- Point(Base* p, const Vector& ctr, int size,
+ Point(Base* p, const Vector& ctr,
+ PointShape shape, int size,
const char* clr, int* dsh,
int wth, const char* fnt, const char* txt,
unsigned short prop, const char* cmt,
const List<Tag>& tg, const List<CallBack>& cb);
+ virtual ~Point();
- virtual Marker* dup() =0;
+ virtual Marker* dup() {return new Point(*this);}
- int size() {return size_;}
- void setSize(int);
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
+ void renderPS(int mode);
- void editBegin(int) {}
- void edit(const Vector& v, int h) {}
- void editEnd() {}
-
- void rotateBegin() {}
- void rotate(const Vector& v, int h) {}
- void rotateEnd() {}
-
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listPost(ostream&, int, int);
- void listCiao(ostream&, CoordSystem, int);
- void listPros(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void listSAOtng(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void listSAOimage(ostream&, int);
-};
-
-class CirclePoint : public Point {
- private:
- void renderX(Drawable, InternalSystem, RenderMode);
- void renderPS(int);
#ifdef _MACOSX
void renderMACOSX();
#endif
-#ifdef _WIN32
- void renderWIN32();
-#endif
-
- public:
- CirclePoint(const CirclePoint&);
- CirclePoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb);
-
- Marker* dup() {return new CirclePoint(*this);}
-};
-
-class BoxPoint : public Point {
- private:
- void renderX(Drawable, InternalSystem, RenderMode);
- void renderPS(int);
-#ifdef _MACOSX
- void renderMACOSX();
-#endif
-#ifdef _WIN32
- void renderWIN32();
-#endif
-
- public:
- BoxPoint(const BoxPoint&);
- BoxPoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb);
-
- Marker* dup() {return new BoxPoint(*this);}
-};
-
-class DiamondPoint : public Point {
- private:
- Vector* generate(InternalSystem);
- void renderX(Drawable, InternalSystem, RenderMode);
- void renderPS(int);
-#ifdef _MACOSX
- void renderMACOSX();
-#endif
#ifdef _WIN32
void renderWIN32();
#endif
- public:
- DiamondPoint(const DiamondPoint&);
- DiamondPoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb);
-
- Marker* dup() {return new DiamondPoint(*this);}
-};
-
-class CrossPoint : public Point {
- private:
- Vector* generate(InternalSystem);
+ const char* shape() {return shapestr_;}
+ void setShape(PointShape);
- void renderX(Drawable, InternalSystem, RenderMode);
- void renderPS(int);
-#ifdef _MACOSX
- void renderMACOSX();
-#endif
-#ifdef _WIN32
- void renderWIN32();
-#endif
-
- public:
- CrossPoint(const CrossPoint&);
- CrossPoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb);
-
- Marker* dup() {return new CrossPoint(*this);}
-};
-
-class ExPoint : public Point {
- private:
- Vector* generate(InternalSystem);
-
- void renderX(Drawable, InternalSystem, RenderMode);
- void renderPS(int);
-#ifdef _MACOSX
- void renderMACOSX();
-#endif
-#ifdef _WIN32
- void renderWIN32();
-#endif
-
- public:
- ExPoint(const ExPoint&);
- ExPoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb);
-
- Marker* dup() {return new ExPoint(*this);}
-};
+ int size() {return size_;}
+ void setSize(int);
-class ArrowPoint : public Point {
- private:
- Vector* generate(InternalSystem);
+ int isIn(const Vector&, Coord::InternalSystem);
- void renderX(Drawable, InternalSystem, RenderMode);
- void renderPS(int);
-#ifdef _MACOSX
- void renderMACOSX();
-#endif
-#ifdef _WIN32
- void renderWIN32();
-#endif
+ void editBegin(int) {}
+ void edit(const Vector& v, int h) {}
+ void editEnd() {}
- public:
- ArrowPoint(const ArrowPoint&);
- ArrowPoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb);
-
- Marker* dup() {return new ArrowPoint(*this);}
-};
+ void rotateBegin() {}
+ void rotate(const Vector& v, int h) {}
+ void rotateEnd() {}
-class BoxCirclePoint : public Point {
- private:
- void renderX(Drawable, InternalSystem, RenderMode);
- void renderPS(int);
-#ifdef _MACOSX
- void renderMACOSX();
-#endif
-#ifdef _WIN32
- void renderWIN32();
-#endif
+ void analysis(AnalysisMethod, int);
+ void analysisPlot3d(char*, char*);
- public:
- BoxCirclePoint(const BoxCirclePoint&);
- BoxCirclePoint(Base* p, const Vector& ctr, int size,
- const char* clr, int* dsh,
- int wth, const char* fnt, const char* txt,
- unsigned short prop, const char* cmt,
- const List<Tag>& tg, const List<CallBack>& cb);
-
- Marker* dup() {return new BoxCirclePoint(*this);}
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void listPost(ostream&, int, int);
+ virtual void listCiao(ostream&, Coord::CoordSystem, int);
+ virtual void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ virtual void listSAOtng(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ virtual void listSAOimage(ostream&, int);
};
#endif
diff --git a/saotk/frame/polygon.C b/saotk/frame/polygon.C
index a7d661c..330e776 100644
--- a/saotk/frame/polygon.C
+++ b/saotk/frame/polygon.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "polygon.h"
-#include "framebase.h"
#include "fitsimage.h"
Polygon::Polygon(const Polygon& a) : Marker(a)
@@ -20,7 +19,7 @@ Polygon::Polygon(Base* p, const Vector& ctr,
: Marker(p, ctr, 0, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
{
angle = 0;
- strcpy(type, "polygon");
+ strcpy(type_, "polygon");
Vector bb = b;
vertex.append(new Vertex(-bb[0],-bb[1]));
@@ -40,7 +39,7 @@ Polygon::Polygon(Base* p, const List<Vertex>& v,
{
// Vertex list is in ref coords
angle = 0;
- strcpy(type, "polygon");
+ strcpy(type_, "polygon");
vertex = v;
// check to see if the first and last node are the same
@@ -65,7 +64,7 @@ Polygon::Polygon(Base* p, const List<Vertex>& v,
updateBBox();
}
-void Polygon::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Polygon::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
GC lgc = renderXGC(mode);
@@ -93,7 +92,7 @@ void Polygon::renderPS(int mode)
int first = 1;
do {
ostringstream str;
- Vector v = fwdMap(vertex.current()->vector,CANVAS);
+ Vector v = fwdMap(vertex.current()->vector,Coord::CANVAS);
if (first) {
str << "newpath " << endl
<< v.TkCanvasPs(parent->canvas) << " moveto" << endl << ends;
@@ -117,7 +116,7 @@ void Polygon::renderMACOSX()
vertex.head();
Vector v1;
- Vector v2 = fwdMap(vertex.current()->vector,CANVAS);
+ Vector v2 = fwdMap(vertex.current()->vector,Coord::CANVAS);
int done = 0;
do {
@@ -126,7 +125,7 @@ void Polygon::renderMACOSX()
vertex.head();
}
v1 = v2;
- v2 = fwdMap(vertex.current()->vector,CANVAS);
+ v2 = fwdMap(vertex.current()->vector,Coord::CANVAS);
macosxDrawLine(v1,v2);
} while (!done);
}
@@ -139,7 +138,7 @@ void Polygon::renderWIN32()
vertex.head();
Vector v1;
- Vector v2 = fwdMap(vertex.current()->vector,CANVAS);
+ Vector v2 = fwdMap(vertex.current()->vector,Coord::CANVAS);
int done = 0;
do {
@@ -148,7 +147,7 @@ void Polygon::renderWIN32()
vertex.head();
}
v1 = v2;
- v2 = fwdMap(vertex.current()->vector,CANVAS);
+ v2 = fwdMap(vertex.current()->vector,Coord::CANVAS);
win32DrawLine(v1,v2);
} while (!done);
}
@@ -175,16 +174,16 @@ void Polygon::updateHandles()
float r = 10/zz.length();
bb.expand(r); // give us more room
- handle[0] = fwdMap(bb.ll,CANVAS);
- handle[1] = fwdMap(bb.lr(),CANVAS);
- handle[2] = fwdMap(bb.ur,CANVAS);
- handle[3] = fwdMap(bb.ul(),CANVAS);
+ handle[0] = fwdMap(bb.ll,Coord::CANVAS);
+ handle[1] = fwdMap(bb.lr(),Coord::CANVAS);
+ handle[2] = fwdMap(bb.ur,Coord::CANVAS);
+ handle[3] = fwdMap(bb.ul(),Coord::CANVAS);
// and the rest are vertices
int i=4;
vertex.head();
do
- handle[i++] = fwdMap(vertex.current()->vector,CANVAS);
+ handle[i++] = fwdMap(vertex.current()->vector,Coord::CANVAS);
while (vertex.next());
}
@@ -203,7 +202,7 @@ void Polygon::edit(const Vector& v, int h)
{
if (h < 5) {
Vector s1 = v * bckMatrix();
- Vector s2 = bckMap(handle[h-1],CANVAS);
+ Vector s2 = bckMap(handle[h-1],Coord::CANVAS);
if (s1[0] != 0 && s1[1] != 0 && s2[0] != 0 && s2[1] != 0) {
double a = fabs(s1[0]/s2[0]);
@@ -258,7 +257,7 @@ void Polygon::reset(const Vector& b)
updateBBox();
}
-int Polygon::isIn(const Vector& vv)
+int Polygon::isIn(const Vector& vv, Coord::InternalSystem sys)
{
/*
v[0]-- x value of point being tested
@@ -274,7 +273,7 @@ int Polygon::isIn(const Vector& vv)
Points on a edge are considered inside.
*/
- Vector v = bckMap(vv,CANVAS);
+ Vector v = bckMap(vv,sys);
int crossings = 0; // number of crossings
vertex.head();
@@ -284,7 +283,6 @@ int Polygon::isIn(const Vector& vv)
int sign = ((v2[1])>=0) ? 1 : -1; // init sign
// for all edges
-
int done = 0;
do {
@@ -371,8 +369,8 @@ int Polygon::getSegment(const Vector& v)
}
v2 = vertex.current()->vector * mm;
- Vector l1 = parent->mapFromRef(v1,CANVAS);
- Vector l2 = parent->mapFromRef(v2,CANVAS);
+ Vector l1 = parent->mapFromRef(v1,Coord::CANVAS);
+ Vector l2 = parent->mapFromRef(v2,Coord::CANVAS);
double a = parent->isIIS() ? -(l2-l1).angle() : (l2-l1).angle();
Matrix mx = Translate(-l1) * flip_ * Rotate(-a);
Vector end = l2*mx;
@@ -418,22 +416,61 @@ void Polygon::recalcCenter()
while (vertex.next());
}
+void Polygon::analysis(AnalysisMethod mm, int which)
+{
+ switch (mm) {
+ case PLOT3D:
+ if (!analysisPlot3d_ && which) {
+ addCallBack(CallBack::MOVECB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::EDITCB, analysisPlot3dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::DELETECB, analysisPlot3dCB_[1],
+ parent->options->cmdName);
+ }
+ if (analysisPlot3d_ && !which) {
+ deleteCallBack(CallBack::MOVECB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::EDITCB, analysisPlot3dCB_[0]);
+ deleteCallBack(CallBack::DELETECB, analysisPlot3dCB_[1]);
+ }
+
+ analysisPlot3d_ = which;
+ break;
+ }
+}
+
+void Polygon::analysisPlot3d(char* xname, char* yname)
+{
+ double* x;
+ double* y;
+ BBox bb(center);
+
+ Matrix mm = Rotate(angle) * Translate(center);
+ vertex.head();
+ do
+ bb.bound(vertex.current()->vector * mm);
+ while (vertex.next());
+
+ int num = parent->markerAnalysisPlot3d(&x, &y, this, bb);
+ analysisPlot3dResult(xname, yname, x, y, num);
+}
+
// list
-void Polygon::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Polygon::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 0);
Matrix mm = fwdMatrix();
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- str << type << '(';
+ str << type_ << '(';
int first=1;
vertex.head();
do {
@@ -452,9 +489,9 @@ void Polygon::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
- str << type << '(';
+ str << type_ << '(';
int first=1;
vertex.head();
do {
@@ -469,13 +506,13 @@ void Polygon::list(ostream& str, CoordSystem sys, SkyFrame sky,
str << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
char ra[16];
char dec[16];
- str << type << '(';
+ str << type_ << '(';
int first=1;
vertex.head();
do {
@@ -496,7 +533,7 @@ void Polygon::list(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
else {
- str << type << '(';
+ str << type_ << '(';
int first=1;
vertex.head();
do {
@@ -516,15 +553,15 @@ void Polygon::list(ostream& str, CoordSystem sys, SkyFrame sky,
listPost(str, conj, strip);
}
-void Polygon::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Polygon::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
Matrix mm = fwdMatrix();
Vector* vv = new Vector[vertex.count()];
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
vertex.head();
int cnt =0;
@@ -538,19 +575,19 @@ void Polygon::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
XMLRowEnd(str);
}
-void Polygon::listCiao(ostream& str, CoordSystem sys, int strip)
+void Polygon::listCiao(ostream& str, Coord::CoordSystem sys, int strip)
{
FitsImage* ptr = parent->findFits();
Matrix mm = fwdMatrix();
listCiaoPre(str);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- str << type << '(';
+ str << type_ << '(';
int first=1;
vertex.head();
do {
@@ -558,7 +595,7 @@ void Polygon::listCiao(ostream& str, CoordSystem sys, int strip)
str << ',';
first=0;
- Vector v = ptr->mapFromRef(vertex.current()->vector * mm,PHYSICAL);
+ Vector v = ptr->mapFromRef(vertex.current()->vector * mm,Coord::PHYSICAL);
str << setprecision(8) << v[0] << ',' << v[1];
}
while (vertex.next());
@@ -571,7 +608,7 @@ void Polygon::listCiao(ostream& str, CoordSystem sys, int strip)
char ra[16];
char dec[16];
- str << type << '(';
+ str << type_ << '(';
int first=1;
vertex.head();
do {
@@ -579,7 +616,7 @@ void Polygon::listCiao(ostream& str, CoordSystem sys, int strip)
str << ',';
first=0;
- ptr->mapFromRef(vertex.current()->vector*mm,sys,FK5,SEXAGESIMAL,buf,64);
+ ptr->mapFromRef(vertex.current()->vector*mm,sys,Coord::FK5,Coord::SEXAGESIMAL,buf,64);
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
@@ -593,21 +630,21 @@ void Polygon::listCiao(ostream& str, CoordSystem sys, int strip)
listCiaoPost(str, strip);
}
-void Polygon::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Polygon::listPros(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
Matrix mm = fwdMatrix();
switch (sys) {
- case IMAGE:
- case DETECTOR:
- case AMPLIFIER:
- sys = IMAGE;
- case PHYSICAL:
+ case Coord::IMAGE:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
+ sys = Coord::IMAGE;
+ case Coord::PHYSICAL:
{
- listProsCoordSystem(str,sys,sky);
- str << "; " << type;
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_;
vertex.head();
do {
Vector v = ptr->mapFromRef(vertex.current()->vector*mm,sys);
@@ -618,11 +655,11 @@ void Polygon::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
break;
default:
if (ptr->hasWCSCel(sys)) {
- listProsCoordSystem(str,sys,sky);
- str << "; " << type << ' ';
+ coord.listProsCoordSystem(str,sys,sky);
+ str << "; " << type_ << ' ';
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
vertex.head();
do {
@@ -632,7 +669,7 @@ void Polygon::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
while (vertex.next());
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
char ra[16];
@@ -659,20 +696,20 @@ void Polygon::listPros(ostream& str, CoordSystem sys, SkyFrame sky,
listProsPost(str, strip);
}
-void Polygon::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Polygon::listSAOtng(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
Matrix mm = fwdMatrix();
listSAOtngPre(str, strip);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- str << type << '(';
+ str << type_ << '(';
int first=1;
vertex.head();
do {
@@ -690,9 +727,9 @@ void Polygon::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
- str << type << '(';
+ str << type_ << '(';
int first=1;
vertex.head();
do {
@@ -707,13 +744,13 @@ void Polygon::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
str << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
char ra[16];
char dec[16];
- str << type << '(';
+ str << type_ << '(';
int first=1;
vertex.head();
do {
@@ -745,7 +782,7 @@ void Polygon::listSAOimage(ostream& str, int strip)
listSAOimagePre(str);
Matrix mm = fwdMatrix();
- str << type << '(';
+ str << type_ << '(';
int first=1;
vertex.head();
do {
@@ -753,7 +790,7 @@ void Polygon::listSAOimage(ostream& str, int strip)
str << ',';
first=0;
- Vector v = ptr->mapFromRef(vertex.current()->vector*mm,IMAGE);
+ Vector v = ptr->mapFromRef(vertex.current()->vector*mm,Coord::IMAGE);
str << setprecision(8) << v[0] << ',' << v[1];
}
while (vertex.next());
diff --git a/saotk/frame/polygon.h b/saotk/frame/polygon.h
index 661e0d7..da0eed8 100644
--- a/saotk/frame/polygon.h
+++ b/saotk/frame/polygon.h
@@ -9,11 +9,10 @@
#include "list.h"
class Polygon : public Marker {
-private:
+ protected:
List<Vertex> vertex;
-private:
- void renderX(Drawable, InternalSystem, RenderMode);
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
void renderPS(int);
#ifdef _MACOSX
void renderMACOSX();
@@ -41,25 +40,29 @@ public:
unsigned short prop, const char* cmt,
const List<Tag>& tg, const List<CallBack>& cb);
- Marker* dup() {return new Polygon(*this);}
+ virtual Marker* dup() {return new Polygon(*this);}
void updateCoords(const Matrix&);
void edit(const Vector&, int);
void rotate(const Vector&, int);
- int isIn(const Vector& v);
- int isPolygon() {return 1;}
+
+ int isIn(const Vector& vv) {return isIn(vv, Coord::CANVAS);}
+ int isIn(const Vector&, Coord::InternalSystem);
+
+ void analysis(AnalysisMethod, int);
+ void analysisPlot3d(char*, char*);
void createVertex(int, const Vector&);
void deleteVertex(int);
int getSegment(const Vector&);
void reset(const Vector&);
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listCiao(ostream&, CoordSystem, int);
- void listSAOtng(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
- void listSAOimage(ostream&, int);
- void listPros(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ virtual void listCiao(ostream&, Coord::CoordSystem, int);
+ virtual void listSAOtng(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
+ virtual void listSAOimage(ostream&, int);
+ virtual void listPros(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
};
#endif
diff --git a/saotk/frame/projection.C b/saotk/frame/projection.C
index 6aeab8b..c06a0cf 100644
--- a/saotk/frame/projection.C
+++ b/saotk/frame/projection.C
@@ -3,24 +3,17 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "projection.h"
-#include "framebase.h"
#include "fitsimage.h"
Projection::Projection(const Projection& a) : BaseLine(a)
{
width = a.width;
- method = a.method;
-
- system = a.system;
- skyframe = a.skyframe;
-
p3 = a.p3;
p4 = a.p4;
}
Projection::Projection(Base* p, const Vector& ptr1, const Vector& ptr2,
double wd,
- const char* mvcb, const char* delcb,
const char* clr, int* dsh,
int wth, const char* fnt, const char* txt,
unsigned short prop, const char* cmt,
@@ -28,27 +21,16 @@ Projection::Projection(Base* p, const Vector& ptr1, const Vector& ptr2,
: BaseLine(p, ptr1, ptr2, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
{
width = wd;
- method = AVERAGE;
-
- system = PHYSICAL;
- skyframe = FK5;
- strcpy(type,"projection");
+ strcpy(type_,"projection");
handle = new Vector[3];
numHandle = 3;
- if (mvcb && *mvcb) {
- addCallBack(CallBack::MOVECB, mvcb, parent->options->cmdName);
- addCallBack(CallBack::EDITCB, mvcb, parent->options->cmdName);
- addCallBack(CallBack::UPDATECB, mvcb, parent->options->cmdName);
- }
- if (delcb && *delcb)
- addCallBack(CallBack::DELETECB, delcb, parent->options->cmdName);
-
+ analysis(PLOT2D,1);
updateBBox();
}
-void Projection::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Projection::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
GC lgc = renderXGC(mode);
@@ -95,8 +77,8 @@ void Projection::renderPS(int mode)
{
renderPSGC(mode);
- Vector aa = parent->mapFromRef(p1,CANVAS);
- Vector bb = parent->mapFromRef(p2,CANVAS);
+ Vector aa = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p2,Coord::CANVAS);
{
ostringstream str;
str << "newpath "
@@ -114,10 +96,10 @@ void Projection::renderPS(int mode)
Vector b = p2*imm;
Vector c = Vector(0,-width);
- Vector ll = fwdMap(a,CANVAS);
- Vector lr = fwdMap(b,CANVAS);
- Vector ul = fwdMap(a+c,CANVAS);
- Vector ur = fwdMap(b+c,CANVAS);
+ Vector ll = fwdMap(a,Coord::CANVAS);
+ Vector lr = fwdMap(b,Coord::CANVAS);
+ Vector ul = fwdMap(a+c,Coord::CANVAS);
+ Vector ur = fwdMap(b+c,Coord::CANVAS);
ostringstream str;
str << "newpath "
@@ -141,8 +123,8 @@ void Projection::renderMACOSX()
{
renderMACOSXGC();
- Vector aa = parent->mapFromRef(p1,CANVAS);
- Vector bb = parent->mapFromRef(p2,CANVAS);
+ Vector aa = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p2,Coord::CANVAS);
macosxDrawLine(aa,bb);
@@ -154,10 +136,10 @@ void Projection::renderMACOSX()
Vector b = p2*imm;
Vector c = Vector(0,-width);
- Vector ll = fwdMap(a,CANVAS);
- Vector lr = fwdMap(b,CANVAS);
- Vector ul = fwdMap(a+c,CANVAS);
- Vector ur = fwdMap(b+c,CANVAS);
+ Vector ll = fwdMap(a,Coord::CANVAS);
+ Vector lr = fwdMap(b,Coord::CANVAS);
+ Vector ul = fwdMap(a+c,Coord::CANVAS);
+ Vector ur = fwdMap(b+c,Coord::CANVAS);
macosxDrawLine(lr,ur);
macosxDrawLine(ur,ul);
@@ -177,8 +159,8 @@ void Projection::renderWIN32()
{
renderWIN32GC();
- Vector aa = parent->mapFromRef(p1,CANVAS);
- Vector bb = parent->mapFromRef(p2,CANVAS);
+ Vector aa = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p2,Coord::CANVAS);
win32DrawLine(aa,bb);
@@ -190,10 +172,10 @@ void Projection::renderWIN32()
Vector b = p2*imm;
Vector c = Vector(0,-width);
- Vector ll = fwdMap(a,CANVAS);
- Vector lr = fwdMap(b,CANVAS);
- Vector ul = fwdMap(a+c,CANVAS);
- Vector ur = fwdMap(b+c,CANVAS);
+ Vector ll = fwdMap(a,Coord::CANVAS);
+ Vector lr = fwdMap(b,Coord::CANVAS);
+ Vector ul = fwdMap(a+c,Coord::CANVAS);
+ Vector ur = fwdMap(b+c,Coord::CANVAS);
win32DrawLine(lr,ur);
win32DrawLine(ur,ul);
@@ -221,19 +203,19 @@ void Projection::updateHandles()
Vector a = p1*imm;
Vector b = p2*imm;
Vector c = Vector(0,-width);
- p3 = fwdMap(a+c,CANVAS);
- p4 = fwdMap(b+c,CANVAS);
- Vector hh = fwdMap(((b-a)/2+a)+c,CANVAS);
+ p3 = fwdMap(a+c,Coord::CANVAS);
+ p4 = fwdMap(b+c,Coord::CANVAS);
+ Vector hh = fwdMap(((b-a)/2+a)+c,Coord::CANVAS);
- // generate handles in CANVAS coords
- handle[0] = parent->mapFromRef(p1,CANVAS);
- handle[1] = parent->mapFromRef(p2,CANVAS);
+ // generate handles in Coord::CANVAS coords
+ handle[0] = parent->mapFromRef(p1,Coord::CANVAS);
+ handle[1] = parent->mapFromRef(p2,Coord::CANVAS);
handle[2] = hh;
}
void Projection::calcAllBBox()
{
- // p3/p4 are already in CANVAS coords
+ // p3/p4 are already in Coord::CANVAS coords
bbox.bound(p3);
bbox.bound(p4);
Marker::calcAllBBox();
@@ -268,19 +250,18 @@ int Projection::isIn(const Vector& v)
Vector a = p1*imm;
Vector b = p2*imm;
- Vector vv = -bckMap(v,CANVAS);
+ Vector vv = -bckMap(v,Coord::CANVAS);
return (vv[0]>a[0] && vv[0]<b[0] && vv[1]>0 && vv[1]<width);
}
else
return BaseLine::isIn(v);
}
-void Projection::set(const Vector& v1, const Vector& v2, double wd, int m)
+void Projection::set(const Vector& v1, const Vector& v2, double wd)
{
p1 = v1;
p2 = v2;
width = wd;
- method = (Method)m;
updateBBox();
doCallBack(CallBack::EDITCB);
@@ -302,24 +283,62 @@ void Projection::updateCoords(const Matrix& mx)
BaseLine::updateCoords(mx);
}
+void Projection::analysis(AnalysisMethod mm, int which)
+{
+ switch (mm) {
+ case PLOT2D:
+ if (!analysisPlot2d_ && which) {
+ addCallBack(CallBack::MOVECB, analysisPlot2dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::EDITCB, analysisPlot2dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::UPDATECB, analysisPlot2dCB_[0],
+ parent->options->cmdName);
+ addCallBack(CallBack::DELETECB, analysisPlot2dCB_[1],
+ parent->options->cmdName);
+ }
+ if (analysisPlot2d_ && !which) {
+ deleteCallBack(CallBack::MOVECB, analysisPlot2dCB_[0]);
+ deleteCallBack(CallBack::EDITCB, analysisPlot2dCB_[0]);
+ deleteCallBack(CallBack::UPDATECB, analysisPlot2dCB_[0]);
+ deleteCallBack(CallBack::DELETECB, analysisPlot2dCB_[1]);
+ }
+
+ analysisPlot2d_ = which;
+ break;
+ }
+}
+
+void Projection::analysisPlot2d(char* xname, char* yname,
+ char* xcname, char* ycname)
+{
+ double* x;
+ double* y;
+ double* xc;
+ double* yc;
+
+ int num = parent->markerAnalysisPlot2d(&x, &y, &xc, &yc, this, p1, p2, width);
+ analysisPlot2dResult(xname, yname, xcname, ycname, x, y, xc, yc, num);
+}
+
// list
-void Projection::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Projection::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
if (!strip) {
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 1);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v1 = ptr->mapFromRef(p1,sys);
Vector v2 = ptr->mapFromRef(p2,sys);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
<< v2[0] << ',' << v2[1] << ','
<< ptr->mapLenFromRef(width,sys) << ')';
}
@@ -328,16 +347,16 @@ void Projection::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSEqu(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v1 = ptr->mapFromRef(p1,sys,sky);
Vector v2 = ptr->mapFromRef(p2,sys,sky);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1]
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1]
<< ',' << v2[0] << ',' << v2[1] << ','
- << ptr->mapLenFromRef(width,sys,ARCSEC) << '"' << ')';
+ << ptr->mapLenFromRef(width,sys,Coord::ARCSEC) << '"' << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
char ra1[16], ra2[16];
@@ -354,9 +373,9 @@ void Projection::list(ostream& str, CoordSystem sys, SkyFrame sky,
istringstream wcs(x);
wcs >> ra2 >> dec2;
}
- str << type << '(' << ra1 << ',' << dec1 << ','
+ str << type_ << '(' << ra1 << ',' << dec1 << ','
<< ra2 << ',' << dec2 << ','
- << ptr->mapLenFromRef(width,sys,ARCSEC) << '"' << ')';
+ << ptr->mapLenFromRef(width,sys,Coord::ARCSEC) << '"' << ')';
}
break;
}
@@ -364,7 +383,7 @@ void Projection::list(ostream& str, CoordSystem sys, SkyFrame sky,
else {
Vector v1 = ptr->mapFromRef(p1,sys);
Vector v2 = ptr->mapFromRef(p2,sys);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1]
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1]
<< ',' << v2[0] << ',' << v2[1] << ','
<< ptr->mapLenFromRef(width,sys) << ')';
}
@@ -378,17 +397,17 @@ void Projection::list(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
-void Projection::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Projection::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
Vector vv[2];
vv[0] = p1;
vv[1] = p2;
- double rr = ptr->mapLenFromRef(width,sys,ARCSEC);
+ double rr = ptr->mapLenFromRef(width,sys,Coord::ARCSEC);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowPoint(ptr,sys,sky,format,vv,2);
XMLRow(XMLR,rr);
diff --git a/saotk/frame/projection.h b/saotk/frame/projection.h
index 22d6af9..8e40df2 100644
--- a/saotk/frame/projection.h
+++ b/saotk/frame/projection.h
@@ -8,20 +8,13 @@
#include "baseline.h"
class Projection : public BaseLine {
- public:
- enum Method {SUM,AVERAGE};
-
private:
double width;
- Method method;
- CoordSystem system;
- SkyFrame skyframe;
-
Vector p3; // used for bbox
Vector p4;
private:
- void renderX(Drawable, InternalSystem, RenderMode);
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
GC renderXGC(RenderMode);
void renderPS(int);
@@ -44,32 +37,27 @@ class Projection : public BaseLine {
Projection(const Projection&);
Projection(Base* p, const Vector& ptr1, const Vector& ptr2,
double wd,
- const char* mvcb, const char* delcb,
const char* clr, int* dsh,
int wth, const char* fnt, const char* txt,
unsigned short prop, const char* cmt,
const List<Tag>& tg, const List<CallBack>& cb);
Marker* dup() {return new Projection(*this);}
+ int isIn(const Vector&);
void updateCoords(const Matrix&);
void edit(const Vector&, int);
- int isIn(const Vector&);
+ void analysis(AnalysisMethod, int);
+ void analysisPlot2d(char*, char*, char*, char*);
- void set(const Vector&, const Vector&, double, int);
+ void set(const Vector&, const Vector&, double);
void setWidth(double);
double getWidth() {return width;}
- int getMethod() {return method;}
-
- CoordSystem getSystem() {return system;}
- SkyFrame getSkyFrame() {return skyframe;}
- void setSystem(CoordSystem sys, SkyFrame sky)
- {system = sys; skyframe = sky;}
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
};
#endif
diff --git a/saotk/frame/prosparser.C b/saotk/frame/prosparser.C
index 28bf48a..d883205 100644
--- a/saotk/frame/prosparser.C
+++ b/saotk/frame/prosparser.C
@@ -165,10 +165,10 @@ extern int proslex(void*, prosFlexLexer*);
extern void proserror(Base*, prosFlexLexer*, const char*);
extern void prosDiscard(int);
-static CoordSystem globalSystem;
-static SkyFrame globalSky;
-static CoordSystem localSystem;
-static SkyFrame localSky;
+static Coord::CoordSystem globalSystem;
+static Coord::SkyFrame globalSky;
+static Coord::CoordSystem localSystem;
+static Coord::SkyFrame localSky;
static unsigned short globalProps;
static unsigned short localProps;
@@ -194,8 +194,8 @@ static unsigned short aProps;
static char aComment[80];
static void setProps(unsigned short* props, unsigned short prop, int value);
-static CoordSystem checkWCSSystem();
-static SkyFrame checkWCSSky();
+static Coord::CoordSystem checkWCSSystem();
+static Coord::SkyFrame checkWCSSky();
/* Enabling traces. */
@@ -1625,12 +1625,12 @@ yyreduce:
case 8:
#line 135 "prosparser.Y"
- {globalSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
+ {globalSystem = (Coord::CoordSystem)(yyvsp[(1) - (1)].integer);;}
break;
case 10:
#line 136 "prosparser.Y"
- {globalSystem = WCS; globalSky = (SkyFrame)(yyvsp[(1) - (1)].integer);;}
+ {globalSystem = Coord::WCS; globalSky = (Coord::SkyFrame)(yyvsp[(1) - (1)].integer);;}
break;
case 16:
@@ -1685,28 +1685,28 @@ yyreduce:
case 32:
#line 175 "prosparser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), IMAGE);;}
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::IMAGE);;}
break;
case 33:
#line 176 "prosparser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), DEGREE);;}
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), Coord::DEGREE);;}
break;
case 34:
#line 177 "prosparser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCMIN);;}
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), Coord::ARCMIN);;}
break;
case 35:
#line 178 "prosparser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), ARCSEC);;}
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), checkWCSSystem(), Coord::ARCSEC);;}
break;
case 36:
#line 182 "prosparser.Y"
{
- Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::IMAGE);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1716,7 +1716,7 @@ yyreduce:
case 37:
#line 189 "prosparser.Y"
{
- Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),DEGREE);
+ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),Coord::DEGREE);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1726,7 +1726,7 @@ yyreduce:
case 38:
#line 196 "prosparser.Y"
{
- Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCMIN);
+ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),Coord::ARCMIN);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1736,7 +1736,7 @@ yyreduce:
case 39:
#line 203 "prosparser.Y"
{
- Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),ARCSEC);
+ Vector r=FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),checkWCSSystem(),Coord::ARCSEC);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1767,9 +1767,9 @@ yyreduce:
#line 224 "prosparser.Y"
{
Vector r;
- CoordSystem sys = checkWCSSystem();
- SkyFrame sky = checkWCSSky();
- if (sky == GALACTIC || sky == ECLIPTIC)
+ Coord::CoordSystem sys = checkWCSSystem();
+ Coord::SkyFrame sky = checkWCSSky();
+ if (sky == Coord::GALACTIC || sky == Coord::ECLIPTIC)
r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), sys, sky);
else
r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), sys, sky);
@@ -1824,12 +1824,12 @@ yyreduce:
case 49:
#line 269 "prosparser.Y"
- {(yyval.integer) = IMAGE;;}
+ {(yyval.integer) = Coord::IMAGE;;}
break;
case 50:
#line 270 "prosparser.Y"
- {(yyval.integer) = PHYSICAL;;}
+ {(yyval.integer) = Coord::PHYSICAL;;}
break;
case 51:
@@ -1839,40 +1839,40 @@ yyreduce:
case 52:
#line 274 "prosparser.Y"
- {(yyval.integer) = FK4;;}
+ {(yyval.integer) = Coord::FK4;;}
break;
case 53:
#line 275 "prosparser.Y"
- {(yyval.integer) = FK5;;}
+ {(yyval.integer) = Coord::FK5;;}
break;
case 54:
#line 276 "prosparser.Y"
- {(yyval.integer) = GALACTIC;;}
+ {(yyval.integer) = Coord::GALACTIC;;}
break;
case 55:
#line 277 "prosparser.Y"
- {(yyval.integer) = ECLIPTIC;;}
+ {(yyval.integer) = Coord::ECLIPTIC;;}
break;
case 56:
#line 280 "prosparser.Y"
- {(yyval.integer) = FK4;;}
+ {(yyval.integer) = Coord::FK4;;}
break;
case 57:
#line 281 "prosparser.Y"
- {(yyval.integer) = FK5;;}
+ {(yyval.integer) = Coord::FK5;;}
break;
case 58:
#line 284 "prosparser.Y"
{
// global properties
- globalSystem = IMAGE;
- globalSky = FK5;
+ globalSystem = Coord::IMAGE;
+ globalSky = Coord::FK5;
globalProps =
Marker::SELECT | Marker::EDIT | Marker::MOVE |
Marker::ROTATE | Marker::DELETE | Marker::HIGHLITE |
@@ -2010,7 +2010,7 @@ yyreduce:
case 73:
#line 387 "prosparser.Y"
- {fr->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].vector)), POINTSIZE,
+ {fr->createPointCmd(Vector((yyvsp[(3) - (5)].vector)), Point::BOXCIRCLE, POINTSIZE,
color,dash,1,font,text,localProps,localComment,taglist,cblist);;}
break;
@@ -2311,23 +2311,23 @@ static void setProps(unsigned short* props, unsigned short prop, int value)
*props &= ~prop;
}
-static CoordSystem checkWCSSystem()
+static Coord::CoordSystem checkWCSSystem()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return WCS;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::WCS;
default:
return localSystem;
}
}
-static SkyFrame checkWCSSky()
+static Coord::SkyFrame checkWCSSky()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return FK5;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::FK5;
default:
return localSky;
}
diff --git a/saotk/frame/prosparser.Y b/saotk/frame/prosparser.Y
index 410ac51..15319d8 100644
--- a/saotk/frame/prosparser.Y
+++ b/saotk/frame/prosparser.Y
@@ -29,10 +29,10 @@ extern int proslex(void*, prosFlexLexer*);
extern void proserror(Base*, prosFlexLexer*, const char*);
extern void prosDiscard(int);
-static CoordSystem globalSystem;
-static SkyFrame globalSky;
-static CoordSystem localSystem;
-static SkyFrame localSky;
+static Coord::CoordSystem globalSystem;
+static Coord::SkyFrame globalSky;
+static Coord::CoordSystem localSystem;
+static Coord::SkyFrame localSky;
static unsigned short globalProps;
static unsigned short localProps;
@@ -58,8 +58,8 @@ static unsigned short aProps;
static char aComment[80];
static void setProps(unsigned short* props, unsigned short prop, int value);
-static CoordSystem checkWCSSystem();
-static SkyFrame checkWCSSky();
+static Coord::CoordSystem checkWCSSystem();
+static Coord::SkyFrame checkWCSSky();
%}
%union {
@@ -132,8 +132,8 @@ commands: commands command terminator
command : /* empty */
| DEBUG_ debug
| VERSION_ {cerr << "PROS" << endl;}
- | coordSystem {globalSystem = (CoordSystem)$1;} comment
- | skyFrame {globalSystem = WCS; globalSky = (SkyFrame)$1;} comment
+ | coordSystem {globalSystem = (Coord::CoordSystem)$1;} comment
+ | skyFrame {globalSystem = Coord::WCS; globalSky = (Coord::SkyFrame)$1;} comment
| initLocal include shape
| generalComment
;
@@ -172,36 +172,36 @@ angle : numeric {$$ = degToRad($1);} /* assume degree */
| ANGRADIAN {$$=$1;}
;
-value : numeric {$$ = FITSPTR->mapLenToRef($1, IMAGE);}
- | ANGDEGREE {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), DEGREE);}
- | ARCMINUTE {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), ARCMIN);}
- | ARCSECOND {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), ARCSEC);}
+value : numeric {$$ = FITSPTR->mapLenToRef($1, Coord::IMAGE);}
+ | ANGDEGREE {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), Coord::DEGREE);}
+ | ARCMINUTE {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), Coord::ARCMIN);}
+ | ARCSECOND {$$ = FITSPTR->mapLenToRef($1, checkWCSSystem(), Coord::ARCSEC);}
;
vvalue : numeric sp numeric
{
- Vector r = FITSPTR->mapLenToRef(Vector($1,$3), IMAGE);
+ Vector r = FITSPTR->mapLenToRef(Vector($1,$3), Coord::IMAGE);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| ANGDEGREE sp ANGDEGREE
{
- Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),DEGREE);
+ Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),Coord::DEGREE);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| ARCMINUTE sp ARCMINUTE
{
- Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),ARCMIN);
+ Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),Coord::ARCMIN);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
}
| ARCSECOND sp ARCSECOND
{
- Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),ARCSEC);
+ Vector r=FITSPTR->mapLenToRef(Vector($1,$3),checkWCSSystem(),Coord::ARCSEC);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
@@ -223,9 +223,9 @@ dms : DMSSTR {$$ = parseDMSStr($1);}
coord : sexagesimal sp sexagesimal
{
Vector r;
- CoordSystem sys = checkWCSSystem();
- SkyFrame sky = checkWCSSky();
- if (sky == GALACTIC || sky == ECLIPTIC)
+ Coord::CoordSystem sys = checkWCSSystem();
+ Coord::SkyFrame sky = checkWCSSky();
+ if (sky == Coord::GALACTIC || sky == Coord::ECLIPTIC)
r = FITSPTR->mapToRef(Vector($1,$3), sys, sky);
else
r = FITSPTR->mapToRef(Vector($1*360./24.,$3), sys, sky);
@@ -266,25 +266,25 @@ coord : sexagesimal sp sexagesimal
}
;
-coordSystem : LOGICAL_ {$$ = IMAGE;}
- | PHYSICAL_ {$$ = PHYSICAL;}
+coordSystem : LOGICAL_ {$$ = Coord::IMAGE;}
+ | PHYSICAL_ {$$ = Coord::PHYSICAL;}
;
skyFrame : EQUATORIAL_ equatorial {$$ = $2;}
- | B1950_ {$$ = FK4;}
- | J2000_ {$$ = FK5;}
- | GALACTIC_ {$$ = GALACTIC;}
- | ECLIPTIC_ {$$ = ECLIPTIC;}
+ | B1950_ {$$ = Coord::FK4;}
+ | J2000_ {$$ = Coord::FK5;}
+ | GALACTIC_ {$$ = Coord::GALACTIC;}
+ | ECLIPTIC_ {$$ = Coord::ECLIPTIC;}
;
-equatorial : B1950_ {$$ = FK4;}
- | J2000_ {$$ = FK5;}
+equatorial : B1950_ {$$ = Coord::FK4;}
+ | J2000_ {$$ = Coord::FK5;}
;
initGlobal:{
// global properties
- globalSystem = IMAGE;
- globalSky = FK5;
+ globalSystem = Coord::IMAGE;
+ globalSky = Coord::FK5;
globalProps =
Marker::SELECT | Marker::EDIT | Marker::MOVE |
Marker::ROTATE | Marker::DELETE | Marker::HIGHLITE |
@@ -384,7 +384,7 @@ shape :
}
| POINT_ bp coord ep shapeComment
- {fr->createBoxCirclePointCmd(Vector($3), POINTSIZE,
+ {fr->createPointCmd(Vector($3), Point::BOXCIRCLE, POINTSIZE,
color,dash,1,font,text,localProps,localComment,taglist,cblist);}
| POLYGON_ {polylist.deleteAll();} bp polyNodes ep shapeComment
@@ -456,23 +456,23 @@ static void setProps(unsigned short* props, unsigned short prop, int value)
*props &= ~prop;
}
-static CoordSystem checkWCSSystem()
+static Coord::CoordSystem checkWCSSystem()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return WCS;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::WCS;
default:
return localSystem;
}
}
-static SkyFrame checkWCSSky()
+static Coord::SkyFrame checkWCSSky()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return FK5;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::FK5;
default:
return localSky;
}
diff --git a/saotk/frame/ruler.C b/saotk/frame/ruler.C
index db6fa13..17899b7 100644
--- a/saotk/frame/ruler.C
+++ b/saotk/frame/ruler.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "ruler.h"
-#include "framebase.h"
#include "fitsimage.h"
Ruler::Ruler(const Ruler& a) : BaseLine(a)
@@ -17,8 +16,8 @@ Ruler::Ruler(const Ruler& a) : BaseLine(a)
}
Ruler::Ruler(Base* p, const Vector& ptr1, const Vector& ptr2,
- CoordSystem sys, SkyFrame sky,
- CoordSystem distsys, SkyDist distfor,
+ Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::CoordSystem distsys, Coord::SkyDist distfor,
const char* clr, int* dsh,
int wth, const char* fnt, const char* txt,
unsigned short prop, const char* cmt,
@@ -31,14 +30,14 @@ Ruler::Ruler(Base* p, const Vector& ptr1, const Vector& ptr2,
distDist = distfor;
dist = 0;
- strcpy(type,"ruler");
+ strcpy(type_,"ruler");
handle = new Vector[2];
numHandle = 2;
updateBBox();
}
-void Ruler::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Ruler::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
GC lgc = renderXGC(mode);
@@ -97,11 +96,11 @@ void Ruler::renderPS(int mode)
{
renderPSGC(mode);
- Vector aa = parent->mapFromRef(p1,CANVAS);
- Vector bb = parent->mapFromRef(p2,CANVAS);
- Vector cc = parent->mapFromRef(p3,CANVAS);
- Vector dd = modifyArrow(p2,p1,CANVAS);
- Vector ee = modifyArrow(p1,p2,CANVAS);
+ Vector aa = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p2,Coord::CANVAS);
+ Vector cc = parent->mapFromRef(p3,Coord::CANVAS);
+ Vector dd = modifyArrow(p2,p1,Coord::CANVAS);
+ Vector ee = modifyArrow(p1,p2,Coord::CANVAS);
// line
{
@@ -111,8 +110,8 @@ void Ruler::renderPS(int mode)
<< ee.TkCanvasPs(parent->canvas) << "lineto"
<< " stroke" << endl << ends;
Tcl_AppendResult(parent->interp, str.str().c_str(), NULL);
- renderPSArrow(p2,p1,CANVAS);
- renderPSArrow(p1,p2,CANVAS);
+ renderPSArrow(p2,p1,Coord::CANVAS);
+ renderPSArrow(p1,p2,Coord::CANVAS);
}
// axes
@@ -172,16 +171,16 @@ void Ruler::renderMACOSX()
{
renderMACOSXGC();
- Vector aa = parent->mapFromRef(p1,CANVAS);
- Vector bb = parent->mapFromRef(p2,CANVAS);
- Vector cc = parent->mapFromRef(p3,CANVAS);
- Vector dd = modifyArrow(p2,p1,CANVAS);
- Vector ee = modifyArrow(p1,p2,CANVAS);
+ Vector aa = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p2,Coord::CANVAS);
+ Vector cc = parent->mapFromRef(p3,Coord::CANVAS);
+ Vector dd = modifyArrow(p2,p1,Coord::CANVAS);
+ Vector ee = modifyArrow(p1,p2,Coord::CANVAS);
// line
macosxDrawLine(dd,ee);
- renderMACOSXArrow(p2,p1,CANVAS);
- renderMACOSXArrow(p1,p2,CANVAS);
+ renderMACOSXArrow(p2,p1,Coord::CANVAS);
+ renderMACOSXArrow(p1,p2,Coord::CANVAS);
// axes
renderMACOSXLineDash();
@@ -226,16 +225,16 @@ void Ruler::renderWIN32()
{
renderWIN32GC();
- Vector aa = parent->mapFromRef(p1,CANVAS);
- Vector bb = parent->mapFromRef(p2,CANVAS);
- Vector cc = parent->mapFromRef(p3,CANVAS);
- Vector dd = modifyArrow(p2,p1,CANVAS);
- Vector ee = modifyArrow(p1,p2,CANVAS);
+ Vector aa = parent->mapFromRef(p1,Coord::CANVAS);
+ Vector bb = parent->mapFromRef(p2,Coord::CANVAS);
+ Vector cc = parent->mapFromRef(p3,Coord::CANVAS);
+ Vector dd = modifyArrow(p2,p1,Coord::CANVAS);
+ Vector ee = modifyArrow(p1,p2,Coord::CANVAS);
// line
win32DrawLine(dd,ee);
- renderWIN32Arrow(p2,p1,CANVAS);
- renderWIN32Arrow(p1,p2,CANVAS);
+ renderWIN32Arrow(p2,p1,Coord::CANVAS);
+ renderWIN32Arrow(p1,p2,Coord::CANVAS);
// axes
renderWIN32LineDash();
@@ -287,14 +286,14 @@ void Ruler::updateHandles()
dist = ptr->mapDistFromRef(p2, p1, distSystem, distDist);
// generate handles in canvas coords
- handle[0] = parent->mapFromRef(p1,CANVAS);
- handle[1] = parent->mapFromRef(p2,CANVAS);
+ handle[0] = parent->mapFromRef(p1,Coord::CANVAS);
+ handle[1] = parent->mapFromRef(p2,Coord::CANVAS);
}
void Ruler::calcAllBBox()
{
// P3
- bbox.bound(parent->mapFromRef(p3,CANVAS));
+ bbox.bound(parent->mapFromRef(p3,Coord::CANVAS));
// make room for text
if (tkfont_) {
@@ -308,9 +307,9 @@ void Ruler::calcAllBBox()
char* buf = dupstr(str.str().c_str());
int width = Tk_TextWidth(tkfont_, buf, strlen(buf));
- Vector ll = parent->mapFromRef(v,CANVAS) *
+ Vector ll = parent->mapFromRef(v,Coord::CANVAS) *
Translate(-width/2.,-metrics.descent);
- Vector ur = parent->mapFromRef(v,CANVAS) *
+ Vector ur = parent->mapFromRef(v,Coord::CANVAS) *
Translate(width/2.,metrics.ascent);
bbox.bound(ll);
@@ -337,8 +336,8 @@ int Ruler::isOn(const Vector& v, const Vector& v1, const Vector& v2)
// do this in canvas coords, not ref coords
- Vector l1 = parent->mapFromRef(v1,CANVAS);
- Vector l2 = parent->mapFromRef(v2,CANVAS);
+ Vector l1 = parent->mapFromRef(v1,Coord::CANVAS);
+ Vector l2 = parent->mapFromRef(v2,Coord::CANVAS);
double a = (l2-l1).angle();
Matrix m = Translate(-l1) * Rotate(a);
@@ -369,7 +368,7 @@ int Ruler::isIn(const Vector& vv)
*/
// analysis in ref coords
- Vector v = parent->mapToRef(vv,CANVAS);
+ Vector v = parent->mapToRef(vv,Coord::CANVAS);
int crossings = 0; // number of crossings
int sign;
@@ -410,8 +409,8 @@ int Ruler::isIn(const Vector& vv)
return fmod(float(crossings),float(2)) ? 1 : 0; // if odd, point is inside
}
-void Ruler::setCoordSystem(CoordSystem sys, SkyFrame sky,
- CoordSystem dsys, SkyDist dist)
+void Ruler::setCoordSystem(Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::CoordSystem dsys, Coord::SkyDist dist)
{
coordSystem = sys;
skyFrame = sky;
@@ -423,28 +422,28 @@ void Ruler::setCoordSystem(CoordSystem sys, SkyFrame sky,
void Ruler::distToStr(ostringstream& str)
{
switch (distSystem) {
- case IMAGE:
+ case Coord::IMAGE:
str << dist << " img";
break;
- case PHYSICAL:
+ case Coord::PHYSICAL:
str << dist << " phy";
break;
- case AMPLIFIER:
+ case Coord::AMPLIFIER:
str << dist << " amp";
break;
- case DETECTOR:
+ case Coord::DETECTOR:
str << dist << " det";
break;
default:
if (parent->findFits()->hasWCSCel(distSystem))
switch (distDist) {
- case DEGREES:
+ case Coord::DEGREE:
str << dist << " deg";
break;
- case ARCMIN:
+ case Coord::ARCMIN:
str << dist << '\'';
break;
- case ARCSEC:
+ case Coord::ARCSEC:
str << dist << '"';
break;
}
@@ -455,22 +454,22 @@ void Ruler::distToStr(ostringstream& str)
// list
-void Ruler::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Ruler::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
if (!strip) {
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 1);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v1 = ptr->mapFromRef(p1,sys);
Vector v2 = ptr->mapFromRef(p2,sys);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
<< v2[0] << ',' << v2[1] << ')';
}
break;
@@ -478,15 +477,15 @@ void Ruler::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v1 = ptr->mapFromRef(p1,sys,sky);
Vector v2 = ptr->mapFromRef(p2,sys,sky);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1]
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1]
<< ',' << v2[0] << ',' << v2[1] << ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
char ra1[16], ra2[16];
@@ -503,7 +502,7 @@ void Ruler::list(ostream& str, CoordSystem sys, SkyFrame sky,
istringstream wcs(x);
wcs >> ra2 >> dec2;
}
- str << type << '(' << ra1 << ',' << dec1 << ','
+ str << type_ << '(' << ra1 << ',' << dec1 << ','
<< ra2 << ',' << dec2 << ')';
}
break;
@@ -512,7 +511,7 @@ void Ruler::list(ostream& str, CoordSystem sys, SkyFrame sky,
else {
Vector v1 = ptr->mapFromRef(p1,sys);
Vector v2 = ptr->mapFromRef(p2,sys);
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1]
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1]
<< ',' << v2[0] << ',' << v2[1] << ')';
}
}
@@ -522,15 +521,15 @@ void Ruler::list(ostream& str, CoordSystem sys, SkyFrame sky,
str << " ||";
str << " ruler=";
- listCoordSystem(str, coordSystem, skyFrame, 1, ptr->hasWCSCel(coordSystem));
+ coord.listCoordSystem(str, coordSystem, skyFrame, 1, ptr->hasWCSCel(coordSystem));
str << ' ';
- listDistSystem(str, distSystem, distDist, ptr->hasWCSCel(distSystem));
+ coord.listDistSystem(str, distSystem, distDist, ptr->hasWCSCel(distSystem));
listProperties(str, 0);
}
}
-void Ruler::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Ruler::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
Vector vv[2];
@@ -538,12 +537,12 @@ void Ruler::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
vv[1] = p2;
ostringstream sysstr;
- listCoordSystem(sysstr,coordSystem,skyFrame,0,ptr->hasWCSCel(coordSystem));
+ coord.listCoordSystem(sysstr,coordSystem,skyFrame,0,ptr->hasWCSCel(coordSystem));
ostringstream diststr;
- listDistSystem(diststr,distSystem,distDist,ptr->hasWCSCel(distSystem));
+ coord.listDistSystem(diststr,distSystem,distDist,ptr->hasWCSCel(distSystem));
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowPoint(ptr,sys,sky,format,vv,2);
XMLRow(XMLPARAM,(char*)(sysstr.str().c_str()));
diff --git a/saotk/frame/ruler.h b/saotk/frame/ruler.h
index ac9d423..3902776 100644
--- a/saotk/frame/ruler.h
+++ b/saotk/frame/ruler.h
@@ -10,14 +10,14 @@
class Ruler : public BaseLine {
private:
Vector p3;
- CoordSystem coordSystem;
- SkyFrame skyFrame;
- CoordSystem distSystem;
- SkyDist distDist;
+ Coord::CoordSystem coordSystem;
+ Coord::SkyFrame skyFrame;
+ Coord::CoordSystem distSystem;
+ Coord::SkyDist distDist;
double dist;
private:
- void renderX(Drawable, InternalSystem, RenderMode);
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
GC renderXGC(RenderMode);
void renderPS(int);
@@ -42,8 +42,8 @@ private:
public:
Ruler(const Ruler&);
Ruler(Base* p, const Vector& ptr1, const Vector& ptr2,
- CoordSystem sys, SkyFrame sky,
- CoordSystem distsys, SkyDist distfor,
+ Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::CoordSystem distsys, Coord::SkyDist distfor,
const char* clr, int* dsh,
int wth, const char* fnt, const char* txt,
unsigned short prop, const char* cmt,
@@ -58,16 +58,16 @@ public:
const Vector& getP1() {return p1;}
const Vector& getP2() {return p2;}
const Vector& getP3() {return p3;}
- void setCoordSystem(CoordSystem, SkyFrame, CoordSystem, SkyDist);
+ void setCoordSystem(Coord::CoordSystem, Coord::SkyFrame, Coord::CoordSystem, Coord::SkyDist);
- CoordSystem getSystem() {return coordSystem;}
- SkyFrame getSkyFrame() {return skyFrame;}
+ Coord::CoordSystem getSystem() {return coordSystem;}
+ Coord::SkyFrame getSkyFrame() {return skyFrame;}
- CoordSystem getDistSystem() {return distSystem;}
- SkyDist getDistDist() {return distDist;}
+ Coord::CoordSystem getDistSystem() {return distSystem;}
+ Coord::SkyDist getDistDist() {return distDist;}
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
};
#endif
diff --git a/saotk/frame/saoparser.C b/saotk/frame/saoparser.C
index dcb4114..764f872 100644
--- a/saotk/frame/saoparser.C
+++ b/saotk/frame/saoparser.C
@@ -1574,13 +1574,13 @@ yyreduce:
case 26:
#line 143 "saoparser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), IMAGE);;}
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real), Coord::IMAGE);;}
break;
case 27:
#line 147 "saoparser.Y"
{
- Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::IMAGE);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1595,7 +1595,7 @@ yyreduce:
case 29:
#line 159 "saoparser.Y"
{
- Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
+ Vector r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::IMAGE);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1738,7 +1738,7 @@ yyreduce:
case 45:
#line 263 "saoparser.Y"
- {fr->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].vector)), POINTSIZE,
+ {fr->createPointCmd(Vector((yyvsp[(3) - (5)].vector)), Point::BOXCIRCLE, POINTSIZE,
color,dash,1,font,text,localProps,localComment,taglist,cblist);;}
break;
diff --git a/saotk/frame/saoparser.Y b/saotk/frame/saoparser.Y
index e284961..0adbf68 100644
--- a/saotk/frame/saoparser.Y
+++ b/saotk/frame/saoparser.Y
@@ -140,12 +140,12 @@ optangle: /* empty */ {$$ = 0;}
angle : numeric {$$ = degToRad($1);} /* assume degree */
;
-value : numeric {$$ = FITSPTR->mapLenToRef($1, IMAGE);}
+value : numeric {$$ = FITSPTR->mapLenToRef($1, Coord::IMAGE);}
;
vvalue : numeric sp numeric
{
- Vector r = FITSPTR->mapLenToRef(Vector($1,$3), IMAGE);
+ Vector r = FITSPTR->mapLenToRef(Vector($1,$3), Coord::IMAGE);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
@@ -157,7 +157,7 @@ numberof: N_ '=' INT {$$ = $3;}
coord : numeric sp numeric
{
- Vector r = FITSPTR->mapToRef(Vector($1,$3), IMAGE);
+ Vector r = FITSPTR->mapToRef(Vector($1,$3), Coord::IMAGE);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
@@ -260,7 +260,7 @@ shape : CIRCLE_ bp coord sp value ep shapeComment
}
| POINT_ bp coord ep shapeComment
- {fr->createBoxCirclePointCmd(Vector($3), POINTSIZE,
+ {fr->createPointCmd(Vector($3), Point::BOXCIRCLE, POINTSIZE,
color,dash,1,font,text,localProps,localComment,taglist,cblist);}
| POLYGON_ {polylist.deleteAll();} bp polyNodes ep shapeComment
diff --git a/saotk/frame/text.C b/saotk/frame/text.C
index 0b46c5c..71f6e8f 100644
--- a/saotk/frame/text.C
+++ b/saotk/frame/text.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "text.h"
-#include "framebase.h"
#include "fitsimage.h"
#include "rotstr.h"
@@ -24,7 +23,7 @@ Text::Text(Base* p, const Vector& ctr,
const List<Tag>& tg, const List<CallBack>& cb)
: Marker(p, ctr, ang, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
{
- strcpy(type,"text");
+ strcpy(type_,"text");
handle = new Vector[4];
numHandle = 4;
rotate = rot;
@@ -32,7 +31,7 @@ Text::Text(Base* p, const Vector& ctr,
updateBBox();
}
-void Text::renderX(Drawable drawable, InternalSystem sys, RenderMode mode)
+void Text::renderX(Drawable drawable, Coord::InternalSystem sys, RenderMode mode)
{
if (text && *text && tkfont_) {
GC lgc = renderXGC(mode);
@@ -73,7 +72,7 @@ void Text::renderPS(int mode)
<< " scalefont setfont" << endl;
double ang = rotate ? calcAngle() : 0;
- Vector cc = (parent->mapFromRef(center,CANVAS)).TkCanvasPs(parent->canvas);
+ Vector cc = (parent->mapFromRef(center,Coord::CANVAS)).TkCanvasPs(parent->canvas);
str << "newpath " << endl
<< cc << " moveto" << endl
<< '(' << psQuote(text) << ')' << endl
@@ -107,7 +106,7 @@ void Text::renderMACOSX()
int width = Tk_TextWidth(psfont_, text, strlen(text));
double ang = rotate ? calcAngle() : 0;
- Vector cc = parent->mapFromRef(center,CANVAS);
+ Vector cc = parent->mapFromRef(center,Coord::CANVAS);
Matrix mm = Translate(-cc) *
Translate(-width/2.,metrics.descent) *
Rotate(ang) *
@@ -132,7 +131,7 @@ void Text::renderWIN32()
int delta = (metrics.ascent-metrics.descent)/2.;
double ang = rotate ? calcAngle() : 0;
- Vector cc = parent->mapFromRef(center,CANVAS);
+ Vector cc = parent->mapFromRef(center,Coord::CANVAS);
Matrix mm = Translate(-cc) *
Translate(-width/2., delta) *
Rotate(ang) *
@@ -148,7 +147,7 @@ void Text::renderWIN32()
void Text::updateHandles()
{
- Vector cc = parent->mapFromRef(center,CANVAS);
+ Vector cc = parent->mapFromRef(center,Coord::CANVAS);
if (text && *text && tkfont_) {
Tk_FontMetrics metrics;
@@ -187,7 +186,7 @@ int Text::isIn(const Vector& vv)
float ww = Tk_TextWidth(tkfont_, text, strlen(text))/2.;
float hh = metrics.linespace/2.;
- Vector pp = bckMap(vv,CANVAS);
+ Vector pp = bckMap(vv,Coord::CANVAS);
if (pp[0]<-ww || pp[0]>ww || pp[1]<-hh || pp[1]>hh)
return 0;
@@ -206,35 +205,35 @@ void Text::setRotate(int rot)
// list
-void Text::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Text::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
if (!strip) {
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 1);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v = ptr->mapFromRef(center,sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
}
break;
default:
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1]
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1]
<< ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -244,14 +243,14 @@ void Text::list(ostream& str, CoordSystem sys, SkyFrame sky,
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << type << '(' << ra << ',' << dec << ')';
+ str << type_ << '(' << ra << ',' << dec << ')';
}
break;
}
}
else {
Vector v = ptr->mapFromRef(center,sys);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] << ')';
}
}
}
@@ -267,13 +266,13 @@ void Text::list(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
-void Text::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Text::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowCenter(ptr,sys,sky,format);
XMLRowAng(sys,sky);
@@ -283,8 +282,8 @@ void Text::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
XMLRowEnd(str);
}
-void Text::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int strip)
+void Text::listSAOtng(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int strip)
{
FitsImage* ptr = parent->findFits();
if (properties&INCLUDE)
@@ -293,27 +292,27 @@ void Text::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
str << '-';
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
- Vector v = ptr->mapFromRef(center,IMAGE);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1]
+ Vector v = ptr->mapFromRef(center,Coord::IMAGE);
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1]
<< ", \"" << text << "\")";
}
break;
default:
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v = ptr->mapFromRef(center,sys,sky);
- str << type << '(' << setprecision(8) << v[0] << ',' << v[1] <<", \""
+ str << type_ << '(' << setprecision(8) << v[0] << ',' << v[1] <<", \""
<< text << "\")";
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
ptr->mapFromRef(center,sys,sky,format,buf,64);
@@ -322,7 +321,7 @@ void Text::listSAOtng(ostream& str, CoordSystem sys, SkyFrame sky,
string x(buf);
istringstream wcs(x);
wcs >> ra >> dec;
- str << type << '(' << ra << ',' << dec
+ str << type_ << '(' << ra << ',' << dec
<< ", \"" << text << "\")";
}
break;
diff --git a/saotk/frame/text.h b/saotk/frame/text.h
index 0770a5c..61f7882 100644
--- a/saotk/frame/text.h
+++ b/saotk/frame/text.h
@@ -12,9 +12,9 @@ class Text : public Marker {
int rotate;
private:
- void renderX(Drawable, InternalSystem, RenderMode);
- void renderXText(Drawable, InternalSystem, RenderMode) {}
- void renderXInclude(Drawable, InternalSystem, RenderMode) {}
+ void renderX(Drawable, Coord::InternalSystem, RenderMode);
+ void renderXText(Drawable, Coord::InternalSystem, RenderMode) {}
+ void renderXInclude(Drawable, Coord::InternalSystem, RenderMode) {}
void renderPS(int);
void renderPSText(int) {}
@@ -45,6 +45,7 @@ class Text : public Marker {
const List<Tag>& tg, const List<CallBack>& cb);
Marker* dup() {return new Text(*this);}
+
int isIn(const Vector&);
void editBegin(int) {}
@@ -54,9 +55,9 @@ class Text : public Marker {
void setRotate(int);
int getRotate() {return rotate;}
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listSAOtng(ostream&, CoordSystem, SkyFrame, SkyFormat, int);
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void listSAOtng(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int);
};
#endif
diff --git a/saotk/frame/tngparser.C b/saotk/frame/tngparser.C
index 99bdd16..e91521d 100644
--- a/saotk/frame/tngparser.C
+++ b/saotk/frame/tngparser.C
@@ -193,10 +193,10 @@ extern int tnglex(void*, tngFlexLexer*);
extern void tngerror(Base*, tngFlexLexer*, const char*);
extern void tngDiscard(int);
-static CoordSystem globalSystem;
-static SkyFrame globalSky;
-static CoordSystem localSystem;
-static SkyFrame localSky;
+static Coord::CoordSystem globalSystem;
+static Coord::SkyFrame globalSky;
+static Coord::CoordSystem localSystem;
+static Coord::SkyFrame localSky;
static unsigned short globalProps;
static unsigned short localProps;
@@ -218,8 +218,8 @@ static List<Tag> taglist;
static List<CallBack> cblist;
static void setProps(unsigned short* props, unsigned short prop, int value);
-static CoordSystem checkWCSSystem();
-static SkyFrame checkWCSSky();
+static Coord::CoordSystem checkWCSSystem();
+static Coord::SkyFrame checkWCSSky();
/* Enabling traces. */
@@ -1662,13 +1662,13 @@ yyreduce:
case 27:
#line 177 "tngparser.Y"
- {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real),IMAGE);;}
+ {(yyval.real) = FITSPTR->mapLenToRef((yyvsp[(1) - (1)].real),Coord::IMAGE);;}
break;
case 28:
#line 181 "tngparser.Y"
{
- Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), IMAGE);
+ Vector r = FITSPTR->mapLenToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), Coord::IMAGE);
(yyval.vector)[0] = r[0];
(yyval.vector)[1] = r[1];
(yyval.vector)[2] = r[2];
@@ -1684,9 +1684,9 @@ yyreduce:
#line 193 "tngparser.Y"
{
Vector r;
- CoordSystem sys = checkWCSSystem();
- SkyFrame sky = checkWCSSky();
- if (sky == GALACTIC || sky == ECLIPTIC)
+ Coord::CoordSystem sys = checkWCSSystem();
+ Coord::SkyFrame sky = checkWCSSky();
+ if (sky == Coord::GALACTIC || sky == Coord::ECLIPTIC)
r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)), sys, sky);
else
r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)), sys, sky);
@@ -1720,60 +1720,60 @@ yyreduce:
case 33:
#line 223 "tngparser.Y"
- {(yyval.integer) = FK4;;}
+ {(yyval.integer) = Coord::FK4;;}
break;
case 34:
#line 224 "tngparser.Y"
- {(yyval.integer) = FK4;;}
+ {(yyval.integer) = Coord::FK4;;}
break;
case 35:
#line 225 "tngparser.Y"
- {(yyval.integer) = FK4_NO_E;;}
+ {(yyval.integer) = Coord::FK4_NO_E;;}
break;
case 36:
#line 226 "tngparser.Y"
- {(yyval.integer) = FK5;;}
+ {(yyval.integer) = Coord::FK5;;}
break;
case 37:
#line 227 "tngparser.Y"
- {(yyval.integer) = FK5;;}
+ {(yyval.integer) = Coord::FK5;;}
break;
case 38:
#line 228 "tngparser.Y"
- {(yyval.integer) = ICRS;;}
+ {(yyval.integer) = Coord::ICRS;;}
break;
case 39:
#line 229 "tngparser.Y"
- {(yyval.integer) = GALACTIC;;}
+ {(yyval.integer) = Coord::GALACTIC;;}
break;
case 40:
#line 230 "tngparser.Y"
- {(yyval.integer) = SUPERGALACTIC;;}
+ {(yyval.integer) = Coord::SUPERGALACTIC;;}
break;
case 41:
#line 231 "tngparser.Y"
- {(yyval.integer) = ECLIPTIC;;}
+ {(yyval.integer) = Coord::ECLIPTIC;;}
break;
case 42:
#line 232 "tngparser.Y"
- {(yyval.integer) = HELIOECLIPTIC;;}
+ {(yyval.integer) = Coord::HELIOECLIPTIC;;}
break;
case 43:
#line 235 "tngparser.Y"
{
// global properties
- globalSystem = IMAGE;
- globalSky = FK5;
+ globalSystem = Coord::IMAGE;
+ globalSky = Coord::FK5;
globalProps =
Marker::SELECT | Marker::EDIT | Marker::MOVE |
Marker::ROTATE | Marker::DELETE | Marker::HIGHLITE |
@@ -1854,7 +1854,7 @@ yyreduce:
case 52:
#line 298 "tngparser.Y"
- {fr->createBoxCirclePointCmd(Vector((yyvsp[(3) - (5)].vector)), POINTSIZE,
+ {fr->createPointCmd(Vector((yyvsp[(3) - (5)].vector)), Point::BOXCIRCLE, POINTSIZE,
localColor,dash,1,globalFont,localText,
localProps,localComment,taglist,cblist);;}
break;
@@ -1977,27 +1977,27 @@ yyreduce:
case 82:
#line 351 "tngparser.Y"
- {globalSystem = localSystem = IMAGE;;}
+ {globalSystem = localSystem = Coord::IMAGE;;}
break;
case 83:
#line 352 "tngparser.Y"
- {globalSystem = localSystem = IMAGE;;}
+ {globalSystem = localSystem = Coord::IMAGE;;}
break;
case 84:
#line 356 "tngparser.Y"
{
- globalSystem = localSystem = WCS;
- globalSky = localSky = FK5;
+ globalSystem = localSystem = Coord::WCS;
+ globalSky = localSky = Coord::FK5;
;}
break;
case 85:
#line 361 "tngparser.Y"
{
- globalSystem = localSystem = WCS;
- globalSky = localSky = (SkyFrame)(yyvsp[(2) - (3)].integer);
+ globalSystem = localSystem = Coord::WCS;
+ globalSky = localSky = (Coord::SkyFrame)(yyvsp[(2) - (3)].integer);
;}
break;
@@ -2228,23 +2228,23 @@ static void setProps(unsigned short* props, unsigned short prop, int value)
*props &= ~prop;
}
-static CoordSystem checkWCSSystem()
+static Coord::CoordSystem checkWCSSystem()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return WCS;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::WCS;
default:
return localSystem;
}
}
-static SkyFrame checkWCSSky()
+static Coord::SkyFrame checkWCSSky()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return FK5;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::FK5;
default:
return localSky;
}
diff --git a/saotk/frame/tngparser.Y b/saotk/frame/tngparser.Y
index 11c1e83..bc3ef9a 100644
--- a/saotk/frame/tngparser.Y
+++ b/saotk/frame/tngparser.Y
@@ -29,10 +29,10 @@ extern int tnglex(void*, tngFlexLexer*);
extern void tngerror(Base*, tngFlexLexer*, const char*);
extern void tngDiscard(int);
-static CoordSystem globalSystem;
-static SkyFrame globalSky;
-static CoordSystem localSystem;
-static SkyFrame localSky;
+static Coord::CoordSystem globalSystem;
+static Coord::SkyFrame globalSky;
+static Coord::CoordSystem localSystem;
+static Coord::SkyFrame localSky;
static unsigned short globalProps;
static unsigned short localProps;
@@ -54,8 +54,8 @@ static List<Tag> taglist;
static List<CallBack> cblist;
static void setProps(unsigned short* props, unsigned short prop, int value);
-static CoordSystem checkWCSSystem();
-static SkyFrame checkWCSSky();
+static Coord::CoordSystem checkWCSSystem();
+static Coord::SkyFrame checkWCSSky();
%}
%union {
@@ -174,12 +174,12 @@ angle : numeric {$$ = degToRad($1);} /* assume degree */
| ANGDEGREE {$$ = degToRad($1);}
;
-value : numeric {$$ = FITSPTR->mapLenToRef($1,IMAGE);}
+value : numeric {$$ = FITSPTR->mapLenToRef($1,Coord::IMAGE);}
;
vvalue : numeric sp numeric
{
- Vector r = FITSPTR->mapLenToRef(Vector($1,$3), IMAGE);
+ Vector r = FITSPTR->mapLenToRef(Vector($1,$3), Coord::IMAGE);
$$[0] = r[0];
$$[1] = r[1];
$$[2] = r[2];
@@ -192,9 +192,9 @@ sexagesimal: SEXSTR {$$ = parseSEXStr($1);}
coord : sexagesimal sp sexagesimal
{
Vector r;
- CoordSystem sys = checkWCSSystem();
- SkyFrame sky = checkWCSSky();
- if (sky == GALACTIC || sky == ECLIPTIC)
+ Coord::CoordSystem sys = checkWCSSystem();
+ Coord::SkyFrame sky = checkWCSSky();
+ if (sky == Coord::GALACTIC || sky == Coord::ECLIPTIC)
r = FITSPTR->mapToRef(Vector($1,$3), sys, sky);
else
r = FITSPTR->mapToRef(Vector($1*360./24.,$3), sys, sky);
@@ -220,22 +220,22 @@ coord : sexagesimal sp sexagesimal
}
;
-skyFrame : FK4_ {$$ = FK4;}
- | B1950_ {$$ = FK4;}
- | FK4_NO_E_ {$$ = FK4_NO_E;}
- | FK5_ {$$ = FK5;}
- | J2000_ {$$ = FK5;}
- | ICRS_ {$$ = ICRS;}
- | GALACTIC_ {$$ = GALACTIC;}
- | SUPERGALACTIC_ {$$ = SUPERGALACTIC;}
- | ECLIPTIC_ {$$ = ECLIPTIC;}
- | HELIOECLIPTIC_ {$$ = HELIOECLIPTIC;}
+skyFrame : FK4_ {$$ = Coord::FK4;}
+ | B1950_ {$$ = Coord::FK4;}
+ | FK4_NO_E_ {$$ = Coord::FK4_NO_E;}
+ | FK5_ {$$ = Coord::FK5;}
+ | J2000_ {$$ = Coord::FK5;}
+ | ICRS_ {$$ = Coord::ICRS;}
+ | GALACTIC_ {$$ = Coord::GALACTIC;}
+ | SUPERGALACTIC_ {$$ = Coord::SUPERGALACTIC;}
+ | ECLIPTIC_ {$$ = Coord::ECLIPTIC;}
+ | HELIOECLIPTIC_ {$$ = Coord::HELIOECLIPTIC;}
;
initGlobal:{
// global properties
- globalSystem = IMAGE;
- globalSky = FK5;
+ globalSystem = Coord::IMAGE;
+ globalSky = Coord::FK5;
globalProps =
Marker::SELECT | Marker::EDIT | Marker::MOVE |
Marker::ROTATE | Marker::DELETE | Marker::HIGHLITE |
@@ -295,7 +295,7 @@ shape : CIRCLE_ bp coord sp value ep shapeComment
localProps,localComment,taglist,cblist);}
| POINT_ bp coord ep shapeComment
- {fr->createBoxCirclePointCmd(Vector($3), POINTSIZE,
+ {fr->createPointCmd(Vector($3), Point::BOXCIRCLE, POINTSIZE,
localColor,dash,1,globalFont,localText,
localProps,localComment,taglist,cblist);}
@@ -348,19 +348,19 @@ shapeComment : /* empty */
tngFormat : HMS_ tngWCS
| DEGREES_ tngWCS
- | PIXELS_ {globalSystem = localSystem = IMAGE;}
- | PIXELS_ '(' PHYSICAL_ ')' {globalSystem = localSystem = IMAGE;}
+ | PIXELS_ {globalSystem = localSystem = Coord::IMAGE;}
+ | PIXELS_ '(' PHYSICAL_ ')' {globalSystem = localSystem = Coord::IMAGE;}
;
tngWCS : /* empty */
{
- globalSystem = localSystem = WCS;
- globalSky = localSky = FK5;
+ globalSystem = localSystem = Coord::WCS;
+ globalSky = localSky = Coord::FK5;
}
| '(' skyFrame ')'
{
- globalSystem = localSystem = WCS;
- globalSky = localSky = (SkyFrame)$2;
+ globalSystem = localSystem = Coord::WCS;
+ globalSky = localSky = (Coord::SkyFrame)$2;
}
;
@@ -374,23 +374,23 @@ static void setProps(unsigned short* props, unsigned short prop, int value)
*props &= ~prop;
}
-static CoordSystem checkWCSSystem()
+static Coord::CoordSystem checkWCSSystem()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return WCS;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::WCS;
default:
return localSystem;
}
}
-static SkyFrame checkWCSSky()
+static Coord::SkyFrame checkWCSSky()
{
switch (localSystem) {
- case IMAGE:
- case PHYSICAL:
- return FK5;
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ return Coord::FK5;
default:
return localSky;
}
diff --git a/saotk/frame/vect.C b/saotk/frame/vect.C
index 7089b53..c9c0142 100644
--- a/saotk/frame/vect.C
+++ b/saotk/frame/vect.C
@@ -3,7 +3,6 @@
// For conditions of distribution and use, see copyright notice in "copyright"
#include "vect.h"
-#include "framebase.h"
#include "fitsimage.h"
Vect::Vect(Base* p, const Vector& ptr1,
@@ -15,7 +14,7 @@ Vect::Vect(Base* p, const Vector& ptr1,
const List<Tag>& tg, const List<CallBack>& cb)
: Line(p, ptr1, ptr2, 0, arr, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
{
- strcpy(type,"vector");
+ strcpy(type_,"vector");
}
Vect::Vect(Base* p, const Vector& pt,
@@ -27,7 +26,7 @@ Vect::Vect(Base* p, const Vector& pt,
const List<Tag>& tg, const List<CallBack>& cb)
: Line(p, pt, pt, 0, arr, clr, dsh, wth, fnt, txt, prop, cmt, tg, cb)
{
- strcpy(type,"vector");
+ strcpy(type_,"vector");
p2 = Vector(mag,0) * Rotate(ang) * flip_ * Translate(p1);
updateBBox();
}
@@ -43,24 +42,24 @@ void Vect::setPoints(const Vector& pt, double mag, double ang)
// list
-void Vect::list(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format, int conj, int strip)
+void Vect::list(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format, int conj, int strip)
{
if (!strip) {
FitsImage* ptr = parent->findFits(sys,center);
listPre(str, sys, sky, ptr, strip, 1);
switch (sys) {
- case IMAGE:
- case PHYSICAL:
- case DETECTOR:
- case AMPLIFIER:
+ case Coord::IMAGE:
+ case Coord::PHYSICAL:
+ case Coord::DETECTOR:
+ case Coord::AMPLIFIER:
{
Vector v1 = ptr->mapFromRef(p1,sys);
Vector v2 = ptr->mapFromRef(p2,sys);
double mag = (p2-p1).length();
double ang = (p2-p1).angle();
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1] << ','
<< ptr->mapLenFromRef(mag,sys) << ','
<< radToDeg(parent->mapAngleFromRef(ang,sys)) << ')';
}
@@ -69,19 +68,19 @@ void Vect::list(ostream& str, CoordSystem sys, SkyFrame sky,
if (ptr->hasWCS(sys)) {
if (ptr->hasWCSCel(sys)) {
switch (format) {
- case DEGREES:
+ case Coord::DEGREES:
{
Vector v1 = ptr->mapFromRef(p1,sys,sky);
Vector v2 = ptr->mapFromRef(p2,sys,sky);
double mag = (p2-p1).length();
double ang = (p2-p1).angle();
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1]
- << ',' << ptr->mapLenFromRef(mag,sys,ARCSEC) << "\""
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1]
+ << ',' << ptr->mapLenFromRef(mag,sys,Coord::ARCSEC) << "\""
<< ',' << radToDeg(parent->mapAngleFromRef(ang,sys,sky))
<< ')';
}
break;
- case SEXAGESIMAL:
+ case Coord::SEXAGESIMAL:
{
char buf[64];
char ra1[16], ra2[16];
@@ -94,8 +93,8 @@ void Vect::list(ostream& str, CoordSystem sys, SkyFrame sky,
istringstream wcs(x);
wcs >> ra1 >> dec1;
}
- str << type << '(' << ra1 << ',' << dec1
- << ',' << ptr->mapLenFromRef(mag,sys,ARCSEC) << "\""
+ str << type_ << '(' << ra1 << ',' << dec1
+ << ',' << ptr->mapLenFromRef(mag,sys,Coord::ARCSEC) << "\""
<< ',' << radToDeg(parent->mapAngleFromRef(ang,sys,sky))
<< ')';
}
@@ -107,7 +106,7 @@ void Vect::list(ostream& str, CoordSystem sys, SkyFrame sky,
Vector v2 = ptr->mapFromRef(p2,sys);
double mag = (p2-p1).length();
double ang = (p2-p1).angle();
- str << type << '(' << setprecision(8) << v1[0] << ',' << v1[1]
+ str << type_ << '(' << setprecision(8) << v1[0] << ',' << v1[1]
<< ',' << ptr->mapLenFromRef(mag,sys)
<< ',' << radToDeg(parent->mapAngleFromRef(ang,sys)) << ')';
}
@@ -122,16 +121,16 @@ void Vect::list(ostream& str, CoordSystem sys, SkyFrame sky,
}
}
-void Vect::listXML(ostream& str, CoordSystem sys, SkyFrame sky,
- SkyFormat format)
+void Vect::listXML(ostream& str, Coord::CoordSystem sys, Coord::SkyFrame sky,
+ Coord::SkyFormat format)
{
FitsImage* ptr = parent->findFits(sys,center);
Vector v1 = ptr->mapFromRef(p1,sys,sky);
Vector v2 = ptr->mapFromRef(p2,sys,sky);
- double rr = ptr->mapLenFromRef((p2-p1).length(),sys,ARCSEC);
+ double rr = ptr->mapLenFromRef((p2-p1).length(),sys,Coord::ARCSEC);
XMLRowInit();
- XMLRow(XMLSHAPE,type);
+ XMLRow(XMLSHAPE,type_);
XMLRowPoint(ptr,sys,sky,format,p1);
XMLRow(XMLR,rr);
diff --git a/saotk/frame/vect.h b/saotk/frame/vect.h
index 631a4b1..31835d0 100644
--- a/saotk/frame/vect.h
+++ b/saotk/frame/vect.h
@@ -31,9 +31,9 @@ public:
void setPoints(const Vector& pt, double mag, double ang);
- void list(ostream&, CoordSystem, SkyFrame, SkyFormat, int, int);
- void listXML(ostream&, CoordSystem, SkyFrame, SkyFormat);
- void listSAOtng(ostream&, CoordSystem, SkyFrame, SkyFormat, int) {}
+ void list(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int, int);
+ void listXML(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat);
+ void listSAOtng(ostream&, Coord::CoordSystem, Coord::SkyFrame, Coord::SkyFormat, int) {}
};
#endif
diff --git a/saotk/frame/xyparser.C b/saotk/frame/xyparser.C
index 4a94b24..7a5a4ea 100644
--- a/saotk/frame/xyparser.C
+++ b/saotk/frame/xyparser.C
@@ -213,10 +213,10 @@ extern void xyerror(Base*, xyFlexLexer*, const char*);
static int dash[] = {8,3};
-static CoordSystem globalSystem;
-static SkyFrame globalSky;
-static CoordSystem localSystem;
-static SkyFrame localSky;
+static Coord::CoordSystem globalSystem;
+static Coord::SkyFrame globalSky;
+static Coord::CoordSystem localSystem;
+static Coord::SkyFrame localSky;
static List<Tag> taglist;
static List<CallBack> cblist;
@@ -1587,12 +1587,12 @@ yyreduce:
case 9:
#line 132 "xyparser.Y"
- {globalSystem = (CoordSystem)(yyvsp[(1) - (1)].integer);;}
+ {globalSystem = (Coord::CoordSystem)(yyvsp[(1) - (1)].integer);;}
break;
case 10:
#line 134 "xyparser.Y"
- {globalSystem = (CoordSystem)(yyvsp[(1) - (2)].integer); globalSky = (SkyFrame)(yyvsp[(2) - (2)].integer);;}
+ {globalSystem = (Coord::CoordSystem)(yyvsp[(1) - (2)].integer); globalSky = (Coord::SkyFrame)(yyvsp[(2) - (2)].integer);;}
break;
case 11:
@@ -1649,7 +1649,7 @@ yyreduce:
#line 176 "xyparser.Y"
{
Vector r;
- if (localSky == GALACTIC || localSky == ECLIPTIC)
+ if (localSky == Coord::GALACTIC || localSky == Coord::ECLIPTIC)
r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real),(yyvsp[(3) - (3)].real)),localSystem,localSky);
else
r = FITSPTR->mapToRef(Vector((yyvsp[(1) - (3)].real)*360./24.,(yyvsp[(3) - (3)].real)),localSystem,localSky);
@@ -1701,222 +1701,222 @@ yyreduce:
case 35:
#line 216 "xyparser.Y"
- {(yyval.integer) = IMAGE;;}
+ {(yyval.integer) = Coord::IMAGE;;}
break;
case 36:
#line 217 "xyparser.Y"
- {(yyval.integer) = IMAGE;;}
+ {(yyval.integer) = Coord::IMAGE;;}
break;
case 37:
#line 218 "xyparser.Y"
- {(yyval.integer) = PHYSICAL;;}
+ {(yyval.integer) = Coord::PHYSICAL;;}
break;
case 38:
#line 219 "xyparser.Y"
- {(yyval.integer) = PHYSICAL;;}
+ {(yyval.integer) = Coord::PHYSICAL;;}
break;
case 39:
#line 220 "xyparser.Y"
- {(yyval.integer) = AMPLIFIER;;}
+ {(yyval.integer) = Coord::AMPLIFIER;;}
break;
case 40:
#line 221 "xyparser.Y"
- {(yyval.integer) = DETECTOR;;}
+ {(yyval.integer) = Coord::DETECTOR;;}
break;
case 41:
#line 222 "xyparser.Y"
- {(yyval.integer) = WCS;;}
+ {(yyval.integer) = Coord::WCS;;}
break;
case 42:
#line 223 "xyparser.Y"
- {(yyval.integer) = WCSA;;}
+ {(yyval.integer) = Coord::WCSA;;}
break;
case 43:
#line 224 "xyparser.Y"
- {(yyval.integer) = WCSB;;}
+ {(yyval.integer) = Coord::WCSB;;}
break;
case 44:
#line 225 "xyparser.Y"
- {(yyval.integer) = WCSC;;}
+ {(yyval.integer) = Coord::WCSC;;}
break;
case 45:
#line 226 "xyparser.Y"
- {(yyval.integer) = WCSD;;}
+ {(yyval.integer) = Coord::WCSD;;}
break;
case 46:
#line 227 "xyparser.Y"
- {(yyval.integer) = WCSE;;}
+ {(yyval.integer) = Coord::WCSE;;}
break;
case 47:
#line 228 "xyparser.Y"
- {(yyval.integer) = WCSF;;}
+ {(yyval.integer) = Coord::WCSF;;}
break;
case 48:
#line 229 "xyparser.Y"
- {(yyval.integer) = WCSG;;}
+ {(yyval.integer) = Coord::WCSG;;}
break;
case 49:
#line 230 "xyparser.Y"
- {(yyval.integer) = WCSH;;}
+ {(yyval.integer) = Coord::WCSH;;}
break;
case 50:
#line 231 "xyparser.Y"
- {(yyval.integer) = WCSI;;}
+ {(yyval.integer) = Coord::WCSI;;}
break;
case 51:
#line 232 "xyparser.Y"
- {(yyval.integer) = WCSJ;;}
+ {(yyval.integer) = Coord::WCSJ;;}
break;
case 52:
#line 233 "xyparser.Y"
- {(yyval.integer) = WCSK;;}
+ {(yyval.integer) = Coord::WCSK;;}
break;
case 53:
#line 234 "xyparser.Y"
- {(yyval.integer) = WCSL;;}
+ {(yyval.integer) = Coord::WCSL;;}
break;
case 54:
#line 235 "xyparser.Y"
- {(yyval.integer) = WCSM;;}
+ {(yyval.integer) = Coord::WCSM;;}
break;
case 55:
#line 236 "xyparser.Y"
- {(yyval.integer) = WCSN;;}
+ {(yyval.integer) = Coord::WCSN;;}
break;
case 56:
#line 237 "xyparser.Y"
- {(yyval.integer) = WCSO;;}
+ {(yyval.integer) = Coord::WCSO;;}
break;
case 57:
#line 238 "xyparser.Y"
- {(yyval.integer) = WCSP;;}
+ {(yyval.integer) = Coord::WCSP;;}
break;
case 58:
#line 239 "xyparser.Y"
- {(yyval.integer) = WCSQ;;}
+ {(yyval.integer) = Coord::WCSQ;;}
break;
case 59:
#line 240 "xyparser.Y"
- {(yyval.integer) = WCSR;;}
+ {(yyval.integer) = Coord::WCSR;;}
break;
case 60:
#line 241 "xyparser.Y"
- {(yyval.integer) = WCSS;;}
+ {(yyval.integer) = Coord::WCSS;;}
break;
case 61:
#line 242 "xyparser.Y"
- {(yyval.integer) = WCST;;}
+ {(yyval.integer) = Coord::WCST;;}
break;
case 62:
#line 243 "xyparser.Y"
- {(yyval.integer) = WCSU;;}
+ {(yyval.integer) = Coord::WCSU;;}
break;
case 63:
#line 244 "xyparser.Y"
- {(yyval.integer) = WCSV;;}
+ {(yyval.integer) = Coord::WCSV;;}
break;
case 64:
#line 245 "xyparser.Y"
- {(yyval.integer) = WCSW;;}
+ {(yyval.integer) = Coord::WCSW;;}
break;
case 65:
#line 246 "xyparser.Y"
- {(yyval.integer) = WCSX;;}
+ {(yyval.integer) = Coord::WCSX;;}
break;
case 66:
#line 247 "xyparser.Y"
- {(yyval.integer) = WCSY;;}
+ {(yyval.integer) = Coord::WCSY;;}
break;
case 67:
#line 248 "xyparser.Y"
- {(yyval.integer) = WCSZ;;}
+ {(yyval.integer) = Coord::WCSZ;;}
break;
case 68:
#line 251 "xyparser.Y"
- {(yyval.integer) = FK4;;}
+ {(yyval.integer) = Coord::FK4;;}
break;
case 69:
#line 252 "xyparser.Y"
- {(yyval.integer) = FK4;;}
+ {(yyval.integer) = Coord::FK4;;}
break;
case 70:
#line 253 "xyparser.Y"
- {(yyval.integer) = FK4_NO_E;;}
+ {(yyval.integer) = Coord::FK4_NO_E;;}
break;
case 71:
#line 254 "xyparser.Y"
- {(yyval.integer) = FK5;;}
+ {(yyval.integer) = Coord::FK5;;}
break;
case 72:
#line 255 "xyparser.Y"
- {(yyval.integer) = FK5;;}
+ {(yyval.integer) = Coord::FK5;;}
break;
case 73:
#line 256 "xyparser.Y"
- {(yyval.integer) = ICRS;;}
+ {(yyval.integer) = Coord::ICRS;;}
break;
case 74:
#line 257 "xyparser.Y"
- {(yyval.integer) = GALACTIC;;}
+ {(yyval.integer) = Coord::GALACTIC;;}
break;
case 75:
#line 258 "xyparser.Y"
- {(yyval.integer) = SUPERGALACTIC;;}
+ {(yyval.integer) = Coord::SUPERGALACTIC;;}
break;
case 76:
#line 259 "xyparser.Y"
- {(yyval.integer) = ECLIPTIC;;}
+ {(yyval.integer) = Coord::ECLIPTIC;;}
break;
case 77:
#line 260 "xyparser.Y"
- {(yyval.integer) = HELIOECLIPTIC;;}
+ {(yyval.integer) = Coord::HELIOECLIPTIC;;}
break;
case 78:
#line 263 "xyparser.Y"
- {fr->createBoxCirclePointCmd(Vector((yyvsp[(1) - (1)].vector)), POINTSIZE,
+ {fr->createPointCmd(Vector((yyvsp[(1) - (1)].vector)), Point::BOXCIRCLE, POINTSIZE,
"green",dash,1,"helvetica 10 normal roman","",
Marker::SELECT | Marker::EDIT | Marker::MOVE | Marker::ROTATE |
Marker::DELETE | Marker::HIGHLITE |
diff --git a/saotk/frame/xyparser.Y b/saotk/frame/xyparser.Y
index f540f0d..b09f0f5 100644
--- a/saotk/frame/xyparser.Y
+++ b/saotk/frame/xyparser.Y
@@ -29,10 +29,10 @@ extern void xyerror(Base*, xyFlexLexer*, const char*);
static int dash[] = {8,3};
-static CoordSystem globalSystem;
-static SkyFrame globalSky;
-static CoordSystem localSystem;
-static SkyFrame localSky;
+static Coord::CoordSystem globalSystem;
+static Coord::SkyFrame globalSky;
+static Coord::CoordSystem localSystem;
+static Coord::SkyFrame localSky;
static List<Tag> taglist;
static List<CallBack> cblist;
@@ -129,9 +129,9 @@ commands: commands command terminator
command : /* empty */
| DEBUG_ debug
| VERSION_ {cerr << "X Y Format 1.0" << endl;}
- | coordSystem {globalSystem = (CoordSystem)$1;}
+ | coordSystem {globalSystem = (Coord::CoordSystem)$1;}
| coordSystem skyFrame
- {globalSystem = (CoordSystem)$1; globalSky = (SkyFrame)$2;}
+ {globalSystem = (Coord::CoordSystem)$1; globalSky = (Coord::SkyFrame)$2;}
| {localSystem = globalSystem; localSky = globalSky; maperr = 0;} shape comment
;
@@ -175,7 +175,7 @@ dms : DMSSTR {$$ = parseDMSStr($1);}
coord : sexagesimal sp sexagesimal
{
Vector r;
- if (localSky == GALACTIC || localSky == ECLIPTIC)
+ if (localSky == Coord::GALACTIC || localSky == Coord::ECLIPTIC)
r = FITSPTR->mapToRef(Vector($1,$3),localSystem,localSky);
else
r = FITSPTR->mapToRef(Vector($1*360./24.,$3),localSystem,localSky);
@@ -213,54 +213,54 @@ coord : sexagesimal sp sexagesimal
}
;
-coordSystem : IMAGE_ {$$ = IMAGE;}
- | LOGICAL_ {$$ = IMAGE;}
- | PHYSICAL_ {$$ = PHYSICAL;}
- | CCD_ {$$ = PHYSICAL;}
- | AMPLIFIER_ {$$ = AMPLIFIER;}
- | DETECTOR_ {$$ = DETECTOR;}
- | WCS_ {$$ = WCS;}
- | WCSA_ {$$ = WCSA;}
- | WCSB_ {$$ = WCSB;}
- | WCSC_ {$$ = WCSC;}
- | WCSD_ {$$ = WCSD;}
- | WCSE_ {$$ = WCSE;}
- | WCSF_ {$$ = WCSF;}
- | WCSG_ {$$ = WCSG;}
- | WCSH_ {$$ = WCSH;}
- | WCSI_ {$$ = WCSI;}
- | WCSJ_ {$$ = WCSJ;}
- | WCSK_ {$$ = WCSK;}
- | WCSL_ {$$ = WCSL;}
- | WCSM_ {$$ = WCSM;}
- | WCSN_ {$$ = WCSN;}
- | WCSO_ {$$ = WCSO;}
- | WCSP_ {$$ = WCSP;}
- | WCSQ_ {$$ = WCSQ;}
- | WCSR_ {$$ = WCSR;}
- | WCSS_ {$$ = WCSS;}
- | WCST_ {$$ = WCST;}
- | WCSU_ {$$ = WCSU;}
- | WCSV_ {$$ = WCSV;}
- | WCSW_ {$$ = WCSW;}
- | WCSX_ {$$ = WCSX;}
- | WCSY_ {$$ = WCSY;}
- | WCSZ_ {$$ = WCSZ;}
+coordSystem : IMAGE_ {$$ = Coord::IMAGE;}
+ | LOGICAL_ {$$ = Coord::IMAGE;}
+ | PHYSICAL_ {$$ = Coord::PHYSICAL;}
+ | CCD_ {$$ = Coord::PHYSICAL;}
+ | AMPLIFIER_ {$$ = Coord::AMPLIFIER;}
+ | DETECTOR_ {$$ = Coord::DETECTOR;}
+ | WCS_ {$$ = Coord::WCS;}
+ | WCSA_ {$$ = Coord::WCSA;}
+ | WCSB_ {$$ = Coord::WCSB;}
+ | WCSC_ {$$ = Coord::WCSC;}
+ | WCSD_ {$$ = Coord::WCSD;}
+ | WCSE_ {$$ = Coord::WCSE;}
+ | WCSF_ {$$ = Coord::WCSF;}
+ | WCSG_ {$$ = Coord::WCSG;}
+ | WCSH_ {$$ = Coord::WCSH;}
+ | WCSI_ {$$ = Coord::WCSI;}
+ | WCSJ_ {$$ = Coord::WCSJ;}
+ | WCSK_ {$$ = Coord::WCSK;}
+ | WCSL_ {$$ = Coord::WCSL;}
+ | WCSM_ {$$ = Coord::WCSM;}
+ | WCSN_ {$$ = Coord::WCSN;}
+ | WCSO_ {$$ = Coord::WCSO;}
+ | WCSP_ {$$ = Coord::WCSP;}
+ | WCSQ_ {$$ = Coord::WCSQ;}
+ | WCSR_ {$$ = Coord::WCSR;}
+ | WCSS_ {$$ = Coord::WCSS;}
+ | WCST_ {$$ = Coord::WCST;}
+ | WCSU_ {$$ = Coord::WCSU;}
+ | WCSV_ {$$ = Coord::WCSV;}
+ | WCSW_ {$$ = Coord::WCSW;}
+ | WCSX_ {$$ = Coord::WCSX;}
+ | WCSY_ {$$ = Coord::WCSY;}
+ | WCSZ_ {$$ = Coord::WCSZ;}
;
-skyFrame : FK4_ {$$ = FK4;}
- | B1950_ {$$ = FK4;}
- | FK4_NO_E_ {$$ = FK4_NO_E;}
- | FK5_ {$$ = FK5;}
- | J2000_ {$$ = FK5;}
- | ICRS_ {$$ = ICRS;}
- | GALACTIC_ {$$ = GALACTIC;}
- | SUPERGALACTIC_ {$$ = SUPERGALACTIC;}
- | ECLIPTIC_ {$$ = ECLIPTIC;}
- | HELIOECLIPTIC_ {$$ = HELIOECLIPTIC;}
+skyFrame : FK4_ {$$ = Coord::FK4;}
+ | B1950_ {$$ = Coord::FK4;}
+ | FK4_NO_E_ {$$ = Coord::FK4_NO_E;}
+ | FK5_ {$$ = Coord::FK5;}
+ | J2000_ {$$ = Coord::FK5;}
+ | ICRS_ {$$ = Coord::ICRS;}
+ | GALACTIC_ {$$ = Coord::GALACTIC;}
+ | SUPERGALACTIC_ {$$ = Coord::SUPERGALACTIC;}
+ | ECLIPTIC_ {$$ = Coord::ECLIPTIC;}
+ | HELIOECLIPTIC_ {$$ = Coord::HELIOECLIPTIC;}
;
-shape : coord {fr->createBoxCirclePointCmd(Vector($1), POINTSIZE,
+shape : coord {fr->createPointCmd(Vector($1), Point::BOXCIRCLE, POINTSIZE,
"green",dash,1,"helvetica 10 normal roman","",
Marker::SELECT | Marker::EDIT | Marker::MOVE | Marker::ROTATE |
Marker::DELETE | Marker::HIGHLITE |
diff --git a/saotk/util/grid25dbase.C b/saotk/util/grid25dbase.C
index a9b7ec1..0e829b8 100644
--- a/saotk/util/grid25dbase.C
+++ b/saotk/util/grid25dbase.C
@@ -34,7 +34,7 @@ int Grid25dBase::gLine(int n, float* x, float* y)
float yy[n];
for (int ii=0; ii<n; ii++) {
- vv[ii] = pp->mapFromRef(Vector(x[ii],y[ii]),WIDGET);
+ vv[ii] = pp->mapFromRef(Vector(x[ii],y[ii]),Coord::WIDGET);
xx[ii] = vv[ii][0];
yy[ii] = vv[ii][1];
}
@@ -104,7 +104,7 @@ int Grid25dBase::gText(const char* txt, float x, float y, const char* just,
return 0;
Frame3dBase* pp = (Frame3dBase*)parent_;
- Vector vv = pp->mapFromRef(Vector(x,y),WIDGET);
+ Vector vv = pp->mapFromRef(Vector(x,y),Coord::WIDGET);
switch (renderMode_) {
case X11:
@@ -156,7 +156,7 @@ int Grid25dBase::gTxExt(const char* txt, float x, float y, const char* just,
}
Frame3dBase* pp = (Frame3dBase*)parent_;
- Vector vv = pp->mapFromRef(Vector(x,y),WIDGET);
+ Vector vv = pp->mapFromRef(Vector(x,y),Coord::WIDGET);
double angle = 0;
Vector cc = vv * calcTextPos(vv, angle, txt, just, Vector(0, 1), font);
diff --git a/saotk/util/ps.C b/saotk/util/ps.C
index c855a00..49cbd23 100644
--- a/saotk/util/ps.C
+++ b/saotk/util/ps.C
@@ -286,9 +286,9 @@ Ascii85::Ascii85(int l) : Encode(l)
index = 0;
}
-BIT32 Ascii85::swap(unsigned BIT32* p)
+int32_t Ascii85::swap(uint32_t* p)
{
- BIT32 r;
+ int32_t r;
swap4((char*)p, (char*)&r);
return r;
}
@@ -317,18 +317,18 @@ void Ascii85::dump(ostream& str)
}
}
else {
- unsigned BIT32 b;
+ uint32_t b;
if (!byteswap)
b = buf85.c;
else
b = swap(&buf85.c);
for (int ii=4; ii>=0 ; ii--) {
- unsigned BIT32 base = 1;
+ uint32_t base = 1;
for (int jj=0; jj<ii; jj++)
base *= 85;
- unsigned BIT32 a = b / base;
+ uint32_t a = b / base;
b -= a * base;
str << (char)(a + '!');
if (++lineCount >= LINELIMIT) {
@@ -349,18 +349,18 @@ void Ascii85::eflush(ostream& str)
// we can't have any z's here
// also, only write index+1 chars
if (index) {
- unsigned BIT32 b;
+ uint32_t b;
if (!byteswap)
b = buf85.c;
else
b = swap(&buf85.c);
for (int ii=4; ii>=(4-index); ii--) {
- unsigned BIT32 base = 1;
+ uint32_t base = 1;
for (int jj=0; jj<ii; jj++)
base *= 85;
- unsigned BIT32 a = b / base;
+ uint32_t a = b / base;
b -= a * base;
str << (char)(a + '!');
if (++lineCount >= LINELIMIT) {
diff --git a/saotk/util/ps.h b/saotk/util/ps.h
index b1955ae..a7b4a29 100644
--- a/saotk/util/ps.h
+++ b/saotk/util/ps.h
@@ -5,6 +5,8 @@
#ifndef __ps_h__
#define __ps_h__
+#include <stdint.h>
+
#include <iostream>
#include <sstream>
#include <iomanip>
@@ -13,12 +15,6 @@ using namespace std;
#include "zlib.h"
extern int DebugGZ;
-#if defined( __alpha) || defined(__mips64) || defined(__sparcv9) || defined(__M64)
-#define BIT32 int
-#else
-#define BIT32 long
-#endif
-
// we need this large for gzip
#define GZIPSIZE 65536
#define BUFSIZE GZIPSIZE*2
@@ -123,11 +119,11 @@ private:
int byteswap;
union {
unsigned char b[4];
- unsigned BIT32 c;
+ uint32_t c;
} buf85;
void dump(ostream&);
- BIT32 swap(unsigned BIT32* ptr);
+ int32_t swap(uint32_t* ptr);
public:
Ascii85(int);
diff --git a/saotk/util/smooth.C b/saotk/util/smooth.C
index ff137b6..c5d86a2 100644
--- a/saotk/util/smooth.C
+++ b/saotk/util/smooth.C
@@ -82,11 +82,8 @@ void convolve(double* kernel, double* src, double* dest,
for (int mm=ii-r, pp=0; mm<=ii+r; mm++, pp++) {
if (mm>=0 && mm<width) {
double vv = src[nd+mm];
- if (!isnanf(vv))
+ if (!isnand(vv))
*dptr += vv*kernel[qd+pp];
- else
- if (nn==jj && mm==ii)
- *dptr = vv;
}
}
}
diff --git a/saotk/util/util.C b/saotk/util/util.C
index 7dd2676..8a44002 100644
--- a/saotk/util/util.C
+++ b/saotk/util/util.C
@@ -139,6 +139,15 @@ double zero360(double aa)
return rr;
}
+double m180To180(double aa)
+{
+ // incoming 0-360
+ double rr = aa;
+ if (rr>180)
+ rr -= 360;
+ return rr;
+}
+
double degToRad(double dd)
{
double rr = M_PI*dd/180.;
diff --git a/saotk/util/util.h b/saotk/util/util.h
index f041cb1..1f3bbd2 100644
--- a/saotk/util/util.h
+++ b/saotk/util/util.h
@@ -86,6 +86,7 @@ extern char* toConstUpper(const char*);
extern double zeroTWOPI(double);
extern double zero360(double);
+extern double m180To180(double);
extern double degToRad(double);
extern double radToDeg(double);
diff --git a/src/Makefile b/src/Makefile
index e7a6890..a65a9a0 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -52,6 +52,7 @@ SCRIPTS = \
error.tcl \
eso.tcl \
examine.tcl \
+ export.tcl \
external.tcl \
fits.tcl \
first.tcl \
@@ -66,12 +67,15 @@ SCRIPTS = \
hvsup.tcl \
iis.tcl \
imexam.tcl \
+ import.tcl \
imgsvr.tcl \
info.tcl \
layout.tcl \
line.tcl \
magnifier.tcl \
marker.tcl \
+ markeranalysisplot2d.tcl \
+ markeranalysisplot3d.tcl \
markerbase.tcl \
markerbaseannulus.tcl \
markerbaseannulusrect.tcl \
@@ -79,7 +83,6 @@ SCRIPTS = \
markerbaseline.tcl \
markerbasepanda.tcl \
markerbasepandarect.tcl \
- markerbaserect.tcl \
markerdialog.tcl \
mask.tcl \
manalysis.tcl \
@@ -109,12 +112,12 @@ SCRIPTS = \
prefsdialog.tcl \
print.tcl \
projection.tcl \
- projection3d.tcl \
rgb.tcl \
ruler.tcl \
samp.tcl \
sao.tcl \
- saveas.tcl \
+ saveimage.tcl \
+ savempeg.tcl \
scale.tcl \
skyview.tcl \
slider.tcl \
diff --git a/src/annulus.tcl b/src/annulus.tcl
index a9838e8..a1fbda1 100644
--- a/src/annulus.tcl
+++ b/src/annulus.tcl
@@ -38,7 +38,6 @@ proc AnnulusDialog {varname} {
MarkerBaseAnnulusMethodMenu $varname
# callbacks
- $var(frame) marker $var(id) callback move AnnulusEditCB $varname
$var(frame) marker $var(id) callback edit AnnulusEditCB $varname
$var(frame) marker $var(id) callback end edit AnnulusEditCB $varname
@@ -93,7 +92,6 @@ proc AnnulusClose {varname} {
upvar #0 $varname var
global $varname
- $var(frame) marker $var(id) delete callback move AnnulusEditCB
$var(frame) marker $var(id) delete callback edit AnnulusEditCB
$var(frame) marker $var(id) delete callback end edit AnnulusEditCB
@@ -169,6 +167,5 @@ proc AnnulusDistCB {varname {dummy {}}} {
puts stderr "AnnulusDistCB"
}
- MarkerBaseDistCB $varname
AnnulusEditCB $varname
}
diff --git a/src/backup.tcl b/src/backup.tcl
index c1f903d..08f337e 100644
--- a/src/backup.tcl
+++ b/src/backup.tcl
@@ -318,13 +318,57 @@ proc BackupFrameLoad {ch which fdir rdir channel} {
}
set param(file,name) "[file join $rdir $ff]"
}
+ photo {
+ if {$pds9(backup)} {
+ set id [string first "\[" $param(file,name)]
+ if {$id > 0} {
+ set fn [string range $param(file,name) 0 [expr $id-1]]
+ } else {
+ set fn $param(file,name)
+ }
+
+ set src [lindex [file split $fn] end]
+ if {![file exists [file join $fdir $src]]} {
+ if {[catch {file copy $fn $fdir}]} {
+ Error [msgcat::mc {An error has occurred during backup}]
+ return
+ }
+ }
+ set param(file,name) \
+ "$rdir/[lindex [file split $param(file,name)] end]"
+
+ } else {
+ if {[file pathtype $param(file,name)] == {relative}} {
+ set param(file,name) [file join [pwd] $param(file,name)]
+ }
+ }
+
+ puts $ch "global bcktmp"
+ puts $ch "if {\[catch {image create photo -file $param(file,name)} bcktmp\]} {"
+ puts $ch "Error \[msgcat::mc {An error has occurred during restore}\]"
+ puts $ch "return"
+ puts $ch "}"
+ }
}
puts $ch "global loadParam"
puts $ch "array set loadParam \[list [array get param]\]"
+
+ switch $param(load,type) {
+ photo {
+ puts $ch "set loadParam(var,name) \$bcktmp"
+ }
+ }
+
puts $ch "if \[BackupFindFile loadParam\] {"
puts $ch " ProcessLoad"
puts $ch "}"
+
+ switch $param(load,type) {
+ photo {
+ puts $ch "image delete \$bcktmp"
+ }
+ }
}
proc BackupGUI {ch} {
diff --git a/src/bin.tcl b/src/bin.tcl
index 74a9198..259cded 100644
--- a/src/bin.tcl
+++ b/src/bin.tcl
@@ -83,6 +83,21 @@ proc BinCols {x y z} {
global rgb
if {$current(frame) != {}} {
+ if {![$current(frame) has bin column $x]} {
+ Error "[msgcat::mc {Invalid Column Name}] $x"
+ return
+ }
+ if {![$current(frame) has bin column $y]} {
+ Error "[msgcat::mc {Invalid Column Name}] $y"
+ return
+ }
+ if {$z!={""}} {
+ if {![$current(frame) has bin column $z]} {
+ Error "[msgcat::mc {Invalid Column Name}] $z"
+ return
+ }
+ }
+
RGBEvalLockCurrent rgb(lock,bin) "$current(frame) bin cols \{$x\} \{$y\} \{$z\}"
UpdateBin
}
diff --git a/src/box.tcl b/src/box.tcl
index a9a4019..49ba28d 100644
--- a/src/box.tcl
+++ b/src/box.tcl
@@ -14,16 +14,53 @@ proc BoxDialog {varname} {
return
}
+ # variables
+ set rr [$var(frame) get wcs]
+ set var(dcoord) [lindex $rr 0]
+ set var(dformat) degrees
+ AdjustCoordSystem $varname dcoord
+
# procs
- set var(which) box
set var(proc,apply) BoxApply
set var(proc,close) BoxClose
set var(proc,coordCB) BoxCoordCB
- set var(proc,editCB) BoxEditCB
- set var(proc,distCB) BoxDistCB
# base
- MarkerBaseRectDialog $varname size
+ MarkerBaseCenterDialog $varname
+
+ # analysis
+ $var(mb) add cascade -label [msgcat::mc {Analysis}] -menu $var(mb).analysis
+ menu $var(mb).analysis
+
+ # plot3d
+ MarkerAnalysisPlot3dDialog $varname
+
+ # init
+ BoxEditCB $varname
+ MarkerBaseCenterRotateCB $varname
+
+ # callbacks
+ $var(frame) marker $var(id) callback edit BoxEditCB $varname
+ $var(frame) marker $var(id) callback rotate \
+ MarkerBaseCenterRotateCB $varname
+
+ set f $var(top).param
+
+ # Radius
+ ttk::label $f.tradius -text Size
+ ttk::entry $f.radius1 -textvariable ${varname}(radius1) -width 13
+ ttk::entry $f.radius2 -textvariable ${varname}(radius2) -width 13
+ DistMenuButton $f.uradius $varname dcoord 1 dformat \
+ [list BoxEditCB $varname]
+ DistMenuEnable $f.uradius.menu $varname dcoord 1 dformat
+
+ # Angle
+ ttk::label $f.tangle -text [msgcat::mc {Angle}]
+ ttk::entry $f.angle -textvariable ${varname}(angle) -width 13
+ ttk::label $f.uangle -text [msgcat::mc {Degrees}]
+
+ grid $f.tradius $f.radius1 $f.radius2 $f.uradius -padx 2 -pady 2 -sticky w
+ grid $f.tangle $f.angle $f.uangle -padx 2 -pady 2 -sticky w
}
# actions
@@ -32,14 +69,24 @@ proc BoxClose {varname} {
upvar #0 $varname var
global $varname
- MarkerBaseRectClose $varname
+ $var(frame) marker $var(id) delete callback edit BoxEditCB
+ $var(frame) marker $var(id) delete callback rotate MarkerBaseCenterRotateCB
+
+ MarkerBaseCenterClose $varname
}
proc BoxApply {varname} {
upvar #0 $varname var
global $varname
- MarkerBaseRectApply $varname
+ if {$var(radius1) != {} &&
+ $var(radius2) !={}} {
+ $var(frame) marker $var(id) box radius \
+ $var(radius1) $var(radius2) $var(dcoord) $var(dformat)
+ }
+
+ MarkerBaseCenterRotate $varname
+ MarkerBaseCenterApply $varname
}
# callbacks
@@ -53,7 +100,9 @@ proc BoxCoordCB {varname {dummy {}}} {
puts stderr "BoxCoordCB"
}
- MarkerBaseRectCoordCB $varname
+ MarkerBaseCoordCB $varname
+ MarkerBaseCenterMoveCB $varname
+ MarkerBaseCenterRotateCB $varname
}
proc BoxEditCB {varname {dummy {}}} {
@@ -65,17 +114,8 @@ proc BoxEditCB {varname {dummy {}}} {
puts stderr "BoxEditCB"
}
- MarkerBaseRectEditCB $varname
-}
-
-proc BoxDistCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "BoxDistCB"
- }
-
- MarkerBaseRectDistCB $varname
+ set r [$var(frame) get marker $var(id) box radius \
+ $var(dcoord) $var(dformat)]
+ set var(radius1) [lindex $r 0]
+ set var(radius2) [lindex $r 1]
}
diff --git a/src/boxannulus.tcl b/src/boxannulus.tcl
index abc6061..484f173 100644
--- a/src/boxannulus.tcl
+++ b/src/boxannulus.tcl
@@ -16,74 +16,13 @@ proc BoxAnnulusDialog {varname} {
# procs
set var(which) boxannulus
- set var(proc,apply) BoxAnnulusApply
- set var(proc,close) BoxAnnulusClose
- set var(proc,generate) BoxAnnulusGenerate
- set var(proc,coordCB) BoxAnnulusCoordCB
- set var(proc,editCB) BoxAnnulusEditCB
- set var(proc,distCB) BoxAnnulusDistCB
+ set var(proc,apply) MarkerBaseAnnulusRectApply
+ set var(proc,close) MarkerBaseAnnulusRectClose
+ set var(proc,generate) MarkerBaseAnnulusGenerateBox
+ set var(proc,coordCB) MarkerBaseAnnulusRectCoordCB
+ set var(proc,editCB) MarkerBaseAnnulusRectEditCB
+ set var(proc,distCB) MarkerBaseAnnulusRectDistCB
# base
MarkerBaseAnnulusRectDialog $varname size Width Height
}
-
-# actions
-
-proc BoxAnnulusClose {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBaseAnnulusRectClose $varname
-}
-
-proc BoxAnnulusApply {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBaseAnnulusRectApply $varname
-}
-
-proc BoxAnnulusGenerate {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBaseAnnulusGenerateBox $varname
-}
-
-# callbacks
-
-proc BoxAnnulusCoordCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "BoxAnnulusCoordCB"
- }
-
- MarkerBaseAnnulusRectCoordCB $varname
-}
-
-proc BoxAnnulusEditCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "BoxAnnulusEditCB"
- }
-
- MarkerBaseAnnulusRectEditCB $varname
-}
-
-proc BoxAnnulusDistCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "BoxAnnulusDistCB"
- }
-
- MarkerBaseAnnulusRectDistCB $varname
-}
diff --git a/src/bpanda.tcl b/src/bpanda.tcl
index 21a3327..35898d9 100644
--- a/src/bpanda.tcl
+++ b/src/bpanda.tcl
@@ -16,33 +16,17 @@ proc BpandaDialog {varname} {
# procs
set var(which) bpanda
- set var(proc,apply) BpandaApply
- set var(proc,close) BpandaClose
+ set var(proc,apply) MarkerBasePandaRectApply
+ set var(proc,close) MarkerBasePandaRectClose
set var(proc,generate) BpandaGenerate
- set var(proc,coordCB) BpandaCoordCB
- set var(proc,editCB) BpandaEditCB
- set var(proc,distCB) BpandaDistCB
+ set var(proc,coordCB) MarkerBasePandaRectCoordCB
+ set var(proc,editCB) MarkerBasePandaRectEditCB
+ set var(proc,distCB) MarkerBasePandaRectDistCB
# base panda rect dialog
MarkerBasePandaRectDialog $varname
}
-# actions
-
-proc BpandaClose {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBasePandaRectClose $varname
-}
-
-proc BpandaApply {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBasePandaRectApply $varname
-}
-
proc BpandaGenerate {varname} {
upvar #0 $varname var
global $varname
@@ -50,41 +34,3 @@ proc BpandaGenerate {varname} {
MarkerBaseAnnulusGenerateBox $varname
MarkerBasePandaGenerateAngles $varname
}
-
-# callbacks
-
-proc BpandaCoordCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "BpandaCoordCB"
- }
-
- MarkerBasePandaRectCoordCB $varname
-}
-
-proc BpandaEditCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "BpandaEditCB"
- }
-
- MarkerBasePandaRectEditCB $varname
-}
-
-proc BpandaDistCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "BpandaDistCB"
- }
-
- MarkerBasePandaDistCB $varname
-}
diff --git a/src/cat.tcl b/src/cat.tcl
index 9990e7c..bf37542 100644
--- a/src/cat.tcl
+++ b/src/cat.tcl
@@ -1065,7 +1065,7 @@ proc ProcessCatalogCmd {varname iname} {
global pcat
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
set cvarname {}
diff --git a/src/catcdssrch.tcl b/src/catcdssrch.tcl
index 2ee9ed9..74b7bbd 100644
--- a/src/catcdssrch.tcl
+++ b/src/catcdssrch.tcl
@@ -332,7 +332,7 @@ proc CATCDSSrchVOTParse {t token} {
set T(tree,prev) {}
if [catch {$xml parse [http::data $token]} err] {
if {$debug(tcl,cat)} {
- puts stderr "CATVOTParse: $err"
+ puts stderr "CATCDSSrchVOTParse: $err"
}
}
diff --git a/src/catdialog.tcl b/src/catdialog.tcl
index c7712e3..5601f56 100644
--- a/src/catdialog.tcl
+++ b/src/catdialog.tcl
@@ -25,7 +25,7 @@ proc CATDialog {varname format catalog title action} {
global debug
if {$debug(tcl,cat)} {
- puts stderr "CATDialog $varname :$format:$catalog:$title:$action"
+ puts stderr "CATDialog $varname:$format:$catalog:$title:$action"
}
# main dialog
@@ -86,7 +86,12 @@ proc CATDialog {varname format catalog title action} {
set w $var(top)
set mb $var(mb)
- Toplevel $w $mb 7 [msgcat::mc {Catalog Tool}] "CATDestroy $varname"
+ if {$title!= {}} {
+ set tt $title
+ } else {
+ set tt [msgcat::mc {Catalog Tool}]
+ }
+ Toplevel $w $mb 7 $tt "CATDestroy $varname"
$mb add cascade -label [msgcat::mc {File}] -menu $mb.file
$mb add cascade -label [msgcat::mc {Edit}] -menu $mb.edit
@@ -199,40 +204,43 @@ proc CATDialog {varname format catalog title action} {
-command "CATSymDialog $varname"
menu $mb.symbol.shape
- $mb.symbol.shape add radiobutton -label [msgcat::mc {Circle Point}] \
+ $mb.symbol.shape add radiobutton -label [msgcat::mc {Circle}] \
+ -variable ${flt}(1,$sn) -value circle \
+ -command "CATPlot $varname"
+ $mb.symbol.shape add radiobutton -label [msgcat::mc {Ellipse}] \
+ -variable ${flt}(1,$sn) -value ellipse \
+ -command "CATPlot $varname"
+ $mb.symbol.shape add radiobutton -label [msgcat::mc {Box}] \
+ -variable ${flt}(1,$sn) -value box \
+ -command "CATPlot $varname"
+ $mb.symbol.shape add radiobutton -label [msgcat::mc {Text}] \
+ -variable ${flt}(1,$sn) -value text \
+ -command "CATPlot $varname"
+ $mb.symbol.shape add cascade -label [msgcat::mc {Point}] \
+ -menu $mb.symbol.shape.point
+
+ menu $mb.symbol.shape.point
+ $mb.symbol.shape.point add radiobutton -label [msgcat::mc {Circle}] \
-variable ${flt}(1,$sn) -value {circle point} \
-command "CATPlot $varname"
- $mb.symbol.shape add radiobutton -label [msgcat::mc {Box Point}] \
+ $mb.symbol.shape.point add radiobutton -label [msgcat::mc {Box}] \
-variable ${flt}(1,$sn) -value {box point} \
-command "CATPlot $varname"
- $mb.symbol.shape add radiobutton -label [msgcat::mc {Diamond Point}] \
+ $mb.symbol.shape.point add radiobutton -label [msgcat::mc {Diamond}] \
-variable ${flt}(1,$sn) -value {diamond point} \
-command "CATPlot $varname"
- $mb.symbol.shape add radiobutton -label [msgcat::mc {Cross Point}] \
+ $mb.symbol.shape.point add radiobutton -label [msgcat::mc {Cross}] \
-variable ${flt}(1,$sn) -value {cross point} \
-command "CATPlot $varname"
- $mb.symbol.shape add radiobutton -label [msgcat::mc {X Point}] \
+ $mb.symbol.shape.point add radiobutton -label [msgcat::mc {X}] \
-variable ${flt}(1,$sn) -value {x point} \
-command "CATPlot $varname"
- $mb.symbol.shape add radiobutton -label [msgcat::mc {Arrow Point}] \
+ $mb.symbol.shape.point add radiobutton -label [msgcat::mc {Arrow}] \
-variable ${flt}(1,$sn) -value {arrow point} \
-command "CATPlot $varname"
- $mb.symbol.shape add radiobutton -label [msgcat::mc {BoxCircle Point}]\
+ $mb.symbol.shape.point add radiobutton -label [msgcat::mc {BoxCircle}]\
-variable ${flt}(1,$sn) -value {boxcircle point} \
-command "CATPlot $varname"
- $mb.symbol.shape add separator
- $mb.symbol.shape add radiobutton -label [msgcat::mc {Circle}] \
- -variable ${flt}(1,$sn) -value circle \
- -command "CATPlot $varname"
- $mb.symbol.shape add radiobutton -label [msgcat::mc {Ellipse}] \
- -variable ${flt}(1,$sn) -value ellipse \
- -command "CATPlot $varname"
- $mb.symbol.shape add radiobutton -label [msgcat::mc {Box}] \
- -variable ${flt}(1,$sn) -value box \
- -command "CATPlot $varname"
- $mb.symbol.shape add radiobutton -label [msgcat::mc {Text}] \
- -variable ${flt}(1,$sn) -value text \
- -command "CATPlot $varname"
ColorMenu $mb.symbol.color $flt 1,$cn [list CATPlot $varname]
@@ -263,8 +271,12 @@ proc CATDialog {varname format catalog title action} {
ttk::label $f.cat -textvariable ${varname}(catalog) \
-relief groove -width 60 -anchor w
- grid $f.ttitle x $f.title -padx 2 -pady 2 -sticky w
- grid $f.tcat x $f.cat -padx 2 -pady 2 -sticky w
+ ttk::label $f.loctitle -text [msgcat::mc {IAU Location Code}]
+ ttk::entry $f.loc -textvariable ${varname}(loc) -width 7
+
+ grid $f.ttitle $f.title -padx 2 -pady 2 -sticky w
+ grid $f.tcat $f.cat -padx 2 -pady 2 -sticky w
+ grid $f.loctitle $f.loc -padx 2 -pady 2 -sticky w
# Object
set f [ttk::labelframe $w.obj -text [msgcat::mc {Object}] -padding 2]
diff --git a/src/catreg.tcl b/src/catreg.tcl
index 6f6ec0b..94ef189 100644
--- a/src/catreg.tcl
+++ b/src/catreg.tcl
@@ -158,8 +158,9 @@ proc CATReg {varname row interactive resultname} {
# xx
set xx [starbase_get $var(tbldb) $ii $colx]
- if {$xformat == {h:m:s}} {
- set xx [uformat $xformat d $xx]
+ switch $xformat {
+ {h:m:s} -
+ {d:m:s} {set xx [uformat $xformat d $xx]}
}
# yy
diff --git a/src/catskybot.tcl b/src/catskybot.tcl
index a67a679..36d464d 100644
--- a/src/catskybot.tcl
+++ b/src/catskybot.tcl
@@ -101,14 +101,38 @@ proc CATSkyBotVOT {varname} {
if {$ut == {}} {
set ut [string trim [$current(frame) get fits header 1 keyword TIME_OBS]]
}
+
if {$ut != {}} {
append epoch "T$ut"
} else {
- ARError $varname [msgcat::mc {Unable to determine date of observation}]
+ ARError $varname [msgcat::mc {Unable to determine time of observation}]
return
}
}
+ # do we finally have a date with time?
+ set dt [split $epoch {T}]
+ set dd [lindex $dt 0]
+ set tt [lindex $dt 1]
+ if {$tt != {}} {
+ # do we have EXPTIME or EXP_TIME?
+ set exp [string trim [$current(frame) get fits header 1 keyword EXPTIME]]
+ if {$exp == {}} {
+ set exp [string trim [$current(frame) get fits header 1 keyword EXP_TIME]]
+ }
+
+ if {$exp != {} && [string is double $exp]} {
+ # ok, rebuild epoch
+ set ttt [split $tt {:}]
+ set total [expr [lindex $ttt 0]*60.*60. + [lindex $ttt 1]*60. + [lindex $ttt 2] + [expr $exp/2.]]
+ set hh [format "%02d" [expr int($total/60./60.)]]
+ set total [expr $total - $hh*60.*60.]
+ set mm [format "%02d" [expr int($total/60.)]]
+ set ss [format "%02.1f" [expr $total - $mm*60.]]
+ set epoch "${dd}T${hh}:${mm}:${ss}"
+ }
+ }
+
# query
set var(query) [http::formatQuery EPOCH $epoch RA $xx DEC $yy SR $rr VERB $type -mime votable -loc $var(loc)]
set var(url) "http://vo.imcce.fr/webservices/skybot/skybotconesearch_query.php"
diff --git a/src/catsym.tcl b/src/catsym.tcl
index aef6a9d..74d3a95 100644
--- a/src/catsym.tcl
+++ b/src/catsym.tcl
@@ -128,22 +128,6 @@ proc CATSymDialog {parent} {
-command "CATEditDialog $varname angle $pvar(catdb)"
menu $f.shape.menu
- $f.shape.menu add radiobutton -label [msgcat::mc {Circle Point}] \
- -variable ${varname}(shape) -value {circle point}
- $f.shape.menu add radiobutton -label [msgcat::mc {Box Point}] \
- -variable ${varname}(shape) -value {box point}
- $f.shape.menu add radiobutton -label [msgcat::mc {Diamond Point}] \
- -variable ${varname}(shape) -value {diamond point}
- $f.shape.menu add radiobutton -label [msgcat::mc {Cross Point}] \
- -variable ${varname}(shape) -value {cross point}
- $f.shape.menu add radiobutton -label [msgcat::mc {X Point}] \
- -variable ${varname}(shape) -value {x point}
- $f.shape.menu add radiobutton -label [msgcat::mc {Arrow Point}] \
- -variable ${varname}(shape) -value {arrow point}
- $f.shape.menu add radiobutton \
- -label [msgcat::mc {BoxCircle Point}] \
- -variable ${varname}(shape) -value {boxcircle point}
- $f.shape.menu add separator
$f.shape.menu add radiobutton -label [msgcat::mc {Circle}] \
-variable ${varname}(shape) -value {circle}
$f.shape.menu add radiobutton -label [msgcat::mc {Ellipse}] \
@@ -154,6 +138,24 @@ proc CATSymDialog {parent} {
-variable ${varname}(shape) -value {vector}
$f.shape.menu add radiobutton -label [msgcat::mc {Text}] \
-variable ${varname}(shape) -value {text}
+ $f.shape.menu add cascade -label [msgcat::mc {Point}] \
+ -menu $f.shape.menu.point
+
+ menu $f.shape.menu.point
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {Circle}] \
+ -variable ${varname}(shape) -value {circle point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {Box}] \
+ -variable ${varname}(shape) -value {box point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {Diamond}] \
+ -variable ${varname}(shape) -value {diamond point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {Cross}] \
+ -variable ${varname}(shape) -value {cross point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {X}] \
+ -variable ${varname}(shape) -value {x point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {Arrow}] \
+ -variable ${varname}(shape) -value {arrow point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {BoxCircle}] \
+ -variable ${varname}(shape) -value {boxcircle point}
grid $f.tcondition $f.condition $f.bcondition -padx 2 -pady 2 -sticky w
grid $f.tthen -padx 2 -pady 2 -sticky w
diff --git a/src/circle.tcl b/src/circle.tcl
index 0d28cdb..6f61749 100644
--- a/src/circle.tcl
+++ b/src/circle.tcl
@@ -21,21 +21,24 @@ proc CircleDialog {varname} {
AdjustCoordSystem $varname dcoord
# procs
- set var(which) circle
set var(proc,apply) CircleApply
set var(proc,close) CircleClose
set var(proc,coordCB) CircleCoordCB
- set var(proc,editCB) CircleEditCB
- set var(proc,distCB) CircleDistCB
# base
MarkerBaseCenterDialog $varname
+ # analysis
+ $var(mb) add cascade -label [msgcat::mc {Analysis}] -menu $var(mb).analysis
+ menu $var(mb).analysis
+
+ # plot3d
+ MarkerAnalysisPlot3dDialog $varname
+
# init
- CircleDistCB $varname
+ CircleEditCB $varname
# callbacks
- $var(frame) marker $var(id) callback move CircleEditCB $varname
$var(frame) marker $var(id) callback edit CircleEditCB $varname
set f $var(top).param
@@ -44,7 +47,7 @@ proc CircleDialog {varname} {
ttk::label $f.tradius -text [msgcat::mc {Radius}]
ttk::entry $f.radius -textvariable ${varname}(radius) -width 13
DistMenuButton $f.uradius $varname dcoord 1 dformat \
- [list CircleDistCB $varname]
+ [list CircleEditCB $varname]
DistMenuEnable $f.uradius.menu $varname dcoord 1 dformat
grid $f.tradius $f.radius $f.uradius -padx 2 -pady 2 -sticky w
@@ -56,7 +59,6 @@ proc CircleClose {varname} {
upvar #0 $varname var
global $varname
- $var(frame) marker $var(id) delete callback move CircleEditCB
$var(frame) marker $var(id) delete callback edit CircleEditCB
MarkerBaseCenterClose $varname
@@ -99,16 +101,3 @@ proc CircleEditCB {varname {dummy {}}} {
set var(radius) [$var(frame) get marker $var(id) circle radius \
$var(dcoord) $var(dformat)]
}
-
-proc CircleDistCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "CircleDistCB"
- }
-
- MarkerBaseDistCB $varname
- CircleEditCB $varname
-}
diff --git a/src/circle3d.tcl b/src/circle3d.tcl
deleted file mode 100644
index 3a32b2c..0000000
--- a/src/circle3d.tcl
+++ /dev/null
@@ -1,261 +0,0 @@
-# Copyright (C) 1999-2012
-# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
-# For conditions of distribution and use, see copyright notice in "copyright"
-
-package provide DS9 1.0
-
-proc Circle3dDialog {varname} {
- upvar #0 $varname var
- global $varname
-
- # see if we already have a header window visible
- if [winfo exists $var(top)] {
- raise $var(top)
- return
- }
-
- # variables
- set rr [$var(frame) get wcs]
- set var(dcoord) [lindex $rr 0]
- set var(dformat) degrees
- AdjustCoordSystem $varname dcoord
-
- # procs
- set var(which) circle3d
- set var(proc,apply) Circle3dApply
- set var(proc,close) Circle3dClose
- set var(proc,coordCB) Circle3dCoordCB
- set var(proc,editCB) Circle3dEditCB
- set var(proc,distCB) Circle3dDistCB
-
- # base
- MarkerBaseCenterDialog $varname
- set var(pcoord) $var(system)
-
- # menus
- $var(mb) add cascade -label [msgcat::mc {Method}] -menu $var(mb).method
- menu $var(mb).method
- $var(mb).method add radiobutton -label [msgcat::mc {Average}] \
- -variable ${varname}(method) -value 1 \
- -command "Circle3dApply $varname"
- $var(mb).method add radiobutton -label [msgcat::mc {Sum}] \
- -variable ${varname}(method) -value 0 \
- -command "Circle3dApply $varname"
-
- $var(mb) add cascade -label [msgcat::mc {Coordinate}] -menu $var(mb).coord
- CoordMenu $var(mb).coord $varname pcoord 2 {} {} \
- [list Circle3dSystem $varname]
- CoordMenuEnable $var(mb).coord $varname pcoord 2 {} {}
-
- # init
- Circle3dDistCB $varname
-
- # callbacks
- $var(frame) marker $var(id) callback move Circle3dEditCB $varname
- $var(frame) marker $var(id) callback edit Circle3dEditCB $varname
-
- set f $var(top).param
-
- # Radius
- ttk::label $f.tradius -text [msgcat::mc {Radius}]
- ttk::entry $f.radius -textvariable ${varname}(radius) -width 13
- DistMenuButton $f.uradius $varname dcoord 1 dformat \
- [list Circle3dDistCB $varname]
- DistMenuEnable $f.uradius.menu $varname dcoord 1 dformat
-
- grid $f.tradius $f.radius x $f.uradius -padx 2 -pady 2 -sticky w
-
- # make sure its opened
- Circle3dPlotCB $var(frame) $var(id)
-}
-
-
-# actions
-
-proc Circle3dClose {varname} {
- upvar #0 $varname var
- global $varname
-
- $var(frame) marker $var(id) delete callback move Circle3dEditCB
- $var(frame) marker $var(id) delete callback edit Circle3dEditCB
-
- MarkerBaseCenterClose $varname
-}
-
-proc Circle3dApply {varname} {
- upvar #0 $varname var
- global $varname
-
- $var(frame) marker $var(id) circle3d $var(radius) \
- $var(dcoord) $var(dformat) $var(method)
-
- MarkerBaseCenterApply $varname
-}
-
-# callbacks
-
-proc Circle3dCoordCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "Circle3dCoordCB"
- }
-
- MarkerBaseCoordCB $varname
- MarkerBaseCenterMoveCB $varname
-}
-
-proc Circle3dEditCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "Circle3dEditCB"
- }
-
- set var(radius) [$var(frame) get marker $var(id) circle3d radius \
- $var(dcoord) $var(dformat)]
- set var(method) [$var(frame) get marker $var(id) circle3d method]
-}
-
-proc Circle3dDistCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "Circle3dDistCB"
- }
-
- MarkerBaseDistCB $varname
- Circle3dEditCB $varname
-}
-
-# support
-
-proc Circle3dSystem {varname} {
- upvar #0 $varname var
- global $varname
-
- $var(frame) marker $var(id) circle3d system $var(pcoord)
-
- Circle3dPlotCB $var(frame) $var(id)
- Circle3dXAxisTitle $var(frame) $var(id)
-}
-
-# Plot
-
-proc Circle3dPlotInit {frame id} {
- $frame marker $id callback move Circle3dPlotCB $frame
- $frame marker $id callback edit Circle3dPlotCB $frame
- $frame marker $id callback update Circle3dPlotCB $frame
- $frame marker $id callback delete Circle3dPlotDeleteCB $frame
- Circle3dPlotCB $frame $id
-}
-
-# hardcoded into ds9parser.Y
-# hardcoded into frmarkerxml.C
-proc Circle3dPlotCB {frame id} {
- set varname proj${id}${frame}
- upvar #0 $varname var
- global $varname
-
- set tt proj${id}${frame}
- set xx proj${id}${frame}x
- set yy proj${id}${frame}y
- set xe proj${id}${frame}xe
- set ye proj${id}${frame}ye
-
- set xc proj${id}${frame}xc
-
- global $xx $yy $xe $ye $xc
- if {[APPing $varname]} {
- $frame get marker $id circle3d $xx $yy $xc
- APStats $varname
- } else {
- global ed
- set rr [$frame get wcs]
- set ed(system) [lindex $rr 0]
- set ed(sky) [lindex $rr 1]
- AdjustCoordSystem ed system
-
- APDialog $varname Circle3d Circle3d $ed(system) Counts
- $var(graph) xaxis configure -command [list Circle3dXAxis $frame $id]
-
- set var(xdata) $xx
- set var(ydata) $yy
- set var(xedata) $xe
- set var(yedata) $ye
-
- blt::vector create $xx $yy $xe $ye $xc
- $frame marker $id circle3d system $ed(system)
- $frame get marker $id circle3d $xx $yy $xc
-
- APExternal $varname
- Circle3dXAxisTitle $frame $id
- }
-}
-
-# hardcoded into ds9parser.Y
-# hardcoded into frmarkerxml.C
-proc Circle3dPlotDeleteCB {frame id} {
- set varname proj${id}${frame}
- upvar #0 $varname var
- global $varname
-
- set xc proj${id}${frame}xc
-
- global $xc
- catch {blt::vector destroy $xc}
- # clear any errors
- global errorInfo
- set errorInfo {}
-
- APDestroy $varname
-}
-
-proc Circle3dXAxisTitle {frame id} {
- set varname proj${id}${frame}
- upvar #0 $varname var
- global $varname
-
- set sys [$frame get marker $id circle3d system]
- switch -- $sys {
- image -
- physical -
- amplifier -
- detector {set title "$sys coordinates"}
- default {
- set w [string range $sys 3 3]
- set tt [string trim [$frame get fits header 1 keyword \{CTYPE3$w\}]]
- if {$tt != {}} {
- set title "$tt coordinates"
- } else {
- set title "$sys coordinates"
- }
- }
- }
- $var(graph) xaxis configure -title $title
-}
-
-proc Circle3dXAxis {frame id w xx} {
- set varname proj${id}${frame}
- upvar #0 $varname var
- global $varname
-
- set x [expr $xx-1]
- set xc proj${id}${frame}xc
-
- global $xc
- # sometimes, $x equals $xc length
- set ll [$xc length]
- if {($ll>=1) && ($x>=0) && ($x<$ll)} {
- set a [format "%6.3f" [expr "$$xc\($x\)"]]
- return "$a"
- } else {
- return {}
- }
-}
diff --git a/src/colorbar.tcl b/src/colorbar.tcl
index 219cbfe..0575203 100644
--- a/src/colorbar.tcl
+++ b/src/colorbar.tcl
@@ -18,10 +18,12 @@ proc ColorbarDef {} {
set icolorbar(horizontal,height) 45
set icolorbar(num) 1024
set icolorbar(start) $ds9(menu,start)
- set icolorbar(count) $ds9(menu,start)
- set icolorbar(cmaps) 0
+ set icolorbar(count) 0
+ set icolorbar(contrib) 0
+ set icolorbar(user) 0
set icolorbar(private) false
set icolorbar(frame) {}
+ set icolorbar(contrib,fn) [list cubehelix0.sao cubehelix1.sao]
set colorbar(lock) 0
@@ -138,14 +140,16 @@ proc LoadColormapFile {filename} {
set id [colorbar get id]
set colorbar(map) [colorbar get name]
- $ds9(mb).color insert $icolorbar(count) radiobutton \
+ $ds9(mb).color.user add radiobutton \
-label "$colorbar(map)" \
- -variable colorbar(map) -command [list ChangeColormapID $id]
+ -variable colorbar(map) \
+ -command [list ChangeColormapID $id]
if {[winfo exists $icolorbar(top)]} {
- $icolorbar(mb).colormap insert $icolorbar(count) \
- radiobutton -label "$colorbar(map)" \
- -variable colorbar(map) -command [list ChangeColormapID $id]
+ $icolorbar(mb).colormap.user add radiobutton \
+ -label "$colorbar(map)" \
+ -variable colorbar(map) \
+ -command [list ChangeColormapID $id]
}
incr icolorbar(count)
@@ -533,15 +537,43 @@ proc ColormapDialog {} {
EditMenu $mb icolorbar
menu $mb.colormap
- set count 1
+ menu $mb.colormap.contrib
+ menu $mb.colormap.user
+
set id [colorbar list id]
- foreach ii $id {
- set title [colorbar get name $ii]
- $mb.colormap insert $count radiobutton \
- -label [msgcat::mc $title] -variable colorbar(map) \
- -command "ChangeColormapID $ii"
- incr count
+ # base
+ for {set ii 0} {$ii<$icolorbar(contrib)} {incr ii} {
+ set jj [lindex $id $ii]
+ set name [colorbar get name $jj]
+ $mb.colormap add radiobutton \
+ -label [msgcat::mc $name] \
+ -variable colorbar(map) -value $name \
+ -command "ChangeColormapID $jj"
+ }
+ # contrib
+ for {set ii $icolorbar(contrib)} {$ii<$icolorbar(user)} {incr ii} {
+ set jj [lindex $id $ii]
+ set name [colorbar get name $jj]
+ $mb.colormap.contrib add radiobutton \
+ -label [msgcat::mc $name] \
+ -variable colorbar(map) -value $name \
+ -command "ChangeColormapID $jj"
+ }
+ # user
+ for {set ii $icolorbar(user)} {$ii<$icolorbar(count)} {incr ii} {
+ set jj [lindex $id $ii]
+ set name [colorbar get name $jj]
+ $mb.colormap.user add radiobutton \
+ -label [msgcat::mc $name] \
+ -variable colorbar(map) -value $name \
+ -command "ChangeColormapID $jj"
}
+
+ $mb.colormap add separator
+ $mb.colormap add cascade -label [msgcat::mc {Contributed}] \
+ -menu $mb.colormap.contrib
+ $mb.colormap add cascade -label [msgcat::mc {User}] \
+ -menu $mb.colormap.user
$mb.colormap add separator
$mb.colormap add checkbutton \
-label [msgcat::mc {Invert Colormap}] \
@@ -672,18 +704,26 @@ proc UpdateColorDialog {} {
"[msgcat::mc {Load Colormap}]..." -state normal
$icolorbar(mb).file entryconfig \
"[msgcat::mc {Save Colormap}]..." -state normal
- for {set i $icolorbar(start)} {$i<$icolorbar(count)} {incr i} {
- $icolorbar(mb).colormap entryconfig $i -state normal
+ for {set ii $icolorbar(start)} {$ii<=$icolorbar(contrib)} {incr ii} {
+ $icolorbar(mb).colormap entryconfig $ii -state normal
}
+ $icolorbar(mb).colormap entryconfig \
+ [msgcat::mc {Contributed}] -state normal
+ $icolorbar(mb).colormap entryconfig \
+ [msgcat::mc {User}] -state normal
}
rgb {
$icolorbar(mb).file entryconfig \
"[msgcat::mc {Load Colormap}]..." -state disabled
$icolorbar(mb).file entryconfig \
"[msgcat::mc {Save Colormap}]..." -state disabled
- for {set i $icolorbar(start)} {$i<$icolorbar(count)} {incr i} {
- $icolorbar(mb).colormap entryconfig $i -state disabled
+ for {set ii $icolorbar(start)} {$ii<=$icolorbar(contrib)} {incr ii} {
+ $icolorbar(mb).colormap entryconfig $ii -state disabled
}
+ $icolorbar(mb).colormap entryconfig \
+ [msgcat::mc {Contributed}] -state disabled
+ $icolorbar(mb).colormap entryconfig \
+ [msgcat::mc {User}] -state disabled
}
}
} else {
@@ -691,9 +731,13 @@ proc UpdateColorDialog {} {
"[msgcat::mc {Load Colormap}]..." -state normal
$icolorbar(mb).file entryconfig \
"[msgcat::mc {Save Colormap}]..." -state normal
- for {set i $icolorbar(start)} {$i<$icolorbar(count)} {incr i} {
- $icolorbar(mb).colormap entryconfig $i -state normal
+ for {set ii $icolorbar(start)} {$ii<=$icolorbar(contrib)} {incr ii} {
+ $icolorbar(mb).colormap entryconfig $ii -state normal
}
+ $icolorbar(mb).colormap entryconfig [msgcat::mc {Contributed}] \
+ -state normal
+ $icolorbar(mb).colormap entryconfig [msgcat::mc {User}] \
+ -state normal
}
}
}
@@ -815,8 +859,8 @@ proc ColorbarBackupCmaps {ch dir} {
# save any loaded cmaps
set id [colorbar list id]
- if {$icolorbar(cmaps)<[llength $id]} {
- for {set ii $icolorbar(cmaps)} {$ii<[llength $id]} {incr ii} {
+ if {$icolorbar(user)<[llength $id]} {
+ for {set ii $icolorbar(user)} {$ii<[llength $id]} {incr ii} {
set which [lindex $id $ii]
set nn [lindex [file split [colorbar get file name $which]] end]
colorbar save $which \"[file join $dir $nn]\"
@@ -838,7 +882,7 @@ proc ProcessCmapCmd {varname iname} {
global rgb
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
switch -- [string tolower [lindex $var $i]] {
open {ColormapDialog}
diff --git a/src/comm.tcl b/src/comm.tcl
index e2a4eb7..6a8129c 100644
--- a/src/comm.tcl
+++ b/src/comm.tcl
@@ -52,6 +52,8 @@ proc CommSet {fn paramlist} {
dsseso {ProcessESOCmd param i}
dssstsci {ProcessSTSCICmd param i}
exit {ProcessQuitCmd param i}
+ export -
+ savefits {ProcessExportCmd param i}
file {ProcessFileCmd param i {} {}}
first {ProcessFIRSTCmd param i}
fits {ProcessFitsCmd param i {} $fn}
@@ -62,6 +64,8 @@ proc CommSet {fn paramlist} {
iconify {ProcessIconifyCmd param i}
iis {ProcessIISCmd param i}
imexam {}
+ image -
+ import {ProcessImportCmd param i}
lock {ProcessLockCmd param i}
lower {ProcessLowerCmd param i}
magnifier {ProcessMagnifierCmd param i}
@@ -91,7 +95,6 @@ proc CommSet {fn paramlist} {
rgb {ProcessRGBCmd param i}
rotate {ProcessRotateCmd param i}
saveimage {ProcessSaveImageCmd param i}
- savefits {ProcessSaveFitsCmd param i}
savempeg {ProcessSaveMPEGCmd param i}
scale {ProcessScaleCmd param i}
single {ProcessSingleCmd param i}
@@ -156,6 +159,8 @@ proc CommGet {proc id paramlist fn} {
dsseso {ProcessSendESOCmd $proc $id $param}
dssstsci {ProcessSendSTSCICmd $proc $id $param}
exit {}
+ export -
+ savefits {}
file {ProcessSendFileCmd $proc $id $param}
first {ProcessSendFIRSTCmd $proc $id $param}
fits {ProcessSendFitsCmd $proc $id $param {} $fn}
@@ -166,6 +171,7 @@ proc CommGet {proc id paramlist fn} {
iconify {ProcessSendIconifyCmd $proc $id $param}
iis {ProcessSendIISCmd $proc $id $param}
imexam {ProcessSendImexamCmd $proc $id $param}
+ import {}
lock {ProcessSendLockCmd $proc $id $param}
lower {}
magnifier {ProcessSendMagnifierCmd $proc $id $param}
@@ -195,7 +201,6 @@ proc CommGet {proc id paramlist fn} {
rgb {ProcessSendRGBCmd $proc $id $param}
rotate {ProcessSendRotateCmd $proc $id $param}
saveimage {}
- savefits {}
savempeg {}
scale {ProcessSendScaleCmd $proc $id $param}
single {ProcessSendSingleCmd $proc $id $param}
diff --git a/src/command.tcl b/src/command.tcl
index 20b11fc..d5589d4 100644
--- a/src/command.tcl
+++ b/src/command.tcl
@@ -139,6 +139,8 @@ proc ProcessCommand {argv argc} {
-eso {incr i; ProcessESOCmd argv i}
-dssstsci -
-stsci {incr i; ProcessSTSCICmd argv i}
+ -export -
+ -savefits {incr i; ProcessExportCmd argv i}
-exit -
-quit {ProcessQuitCmd argv i}
-frame {incr i; ProcessFrameCmd argv i}
@@ -182,6 +184,8 @@ proc ProcessCommand {argv argc} {
}
-iconify {incr i; ProcessIconifyCmd argv i}
-iis {incr i; ProcessIISCmd argv i}
+ -image -
+ -import {set file(mode) photo}
-info {
# backward compatibility
set view(info) 1
@@ -325,7 +329,6 @@ proc ProcessCommand {argv argc} {
-samp {incr i; ProcessSAMPCmd argv i}
-saveas -
-saveimage {incr i; ProcessSaveImageCmd argv i}
- -savefits {incr i; ProcessSaveFitsCmd argv i}
-savempeg {incr i; ProcessSaveMPEGCmd argv i}
-scale -
-ztrans {incr i; ProcessScaleCmd argv i}
@@ -477,6 +480,7 @@ proc CommandLineLoad {item filename argvname iname} {
switch -- $file(mode) {
array {FileLast arrayfbox $item}
+ photo {FileLast importfbox $item}
url {}
default {FileLast fitsfbox $item}
}
@@ -567,13 +571,16 @@ proc CommandLineLoadBase {item filename argvname iname} {
LoadRGBArray $item
}
- slice {
- LoadSliceFits $item
- }
+ slice {LoadSliceFits $item}
url {
MultiLoad $file(layer)
LoadURL $item
}
+
+ photo {
+ MultiLoad
+ ImportPhoto $item
+ }
}
}
@@ -616,25 +623,30 @@ proc CommandLineLoadRGB {item filename argvname iname} {
}
rgbcube {
- CreateRGBFrame
+ MultiLoadRGB
LoadRGBCubeFits $item
}
srgbcube {
- CreateRGBFrame
+ MultiLoadRGB
incr i
LoadRGBCubeSFits $item [lindex $argv $i]
}
rgbimage {
- CreateRGBFrame
+ MultiLoadRGB
LoadRGBImageFits $item
}
rgbarray {
- CreateRGBFrame
+ MultiLoadRGB
LoadRGBArray $item
}
- slice {LoadSliceFits $item}
+ slice {LoadSliceFits $item}
url {LoadURL $item}
+
+ photo {
+ MultiLoadRGB
+ ImportPhoto $item
+ }
}
}
@@ -701,13 +713,16 @@ proc CommandLineLoad3D {item filename argvname iname} {
# not supported
}
- slice {
- LoadSliceFits $item
- }
+ slice {LoadSliceFits $item}
url {
MultiLoad
LoadURL $item
}
+
+ photo {
+ MultiLoad
+ ImportPhoto $item
+ }
}
}
diff --git a/src/contour.tcl b/src/contour.tcl
index e123905..6d67092 100644
--- a/src/contour.tcl
+++ b/src/contour.tcl
@@ -793,7 +793,7 @@ proc ProcessContourCmd {varname iname} {
global current
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
switch -- [string tolower [lindex $var $i]] {
open {ContourDialog}
diff --git a/src/convert.tcl b/src/convert.tcl
index c4f3f09..8407b20 100644
--- a/src/convert.tcl
+++ b/src/convert.tcl
@@ -61,6 +61,9 @@ proc strtod {d} {
if { [string first - $d] >= 0 } {
set sign "-"
regsub -all -- "-" $d {} d
+ } elseif { [string first + $d] >= 0 } {
+ set sign {}
+ regsub -all -- {\+} $d {} d
} else {
set sign {}
}
@@ -104,7 +107,9 @@ proc strtod {d} {
}
}
set val [expr $d + ($m / 60.0) + ($s / 3600.0)]
- set val [format "%s%g" $sign $val]
+ # we don't want this. it rounds off to a precision of 6, which can
+ # cause problems with h:m:s to degree convertions
+ # set val [format "%s%g" $sign $val]
return $val
}
diff --git a/src/crop.tcl b/src/crop.tcl
index d859ebe..73997b7 100644
--- a/src/crop.tcl
+++ b/src/crop.tcl
@@ -70,6 +70,7 @@ proc UpdateCrop {which} {
UpdateGraphXAxis $which
UpdateCropDialog
UpdateCubeDialog
+ UpdateScaleDialog
UpdateMain
GridUpdateZoom
}
@@ -383,7 +384,7 @@ proc ProcessCropCmd {varname iname} {
upvar $iname i
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
global crop
global current
diff --git a/src/crosshair.tcl b/src/crosshair.tcl
index ce6d9f7..d46022a 100644
--- a/src/crosshair.tcl
+++ b/src/crosshair.tcl
@@ -101,7 +101,7 @@ proc ProcessCrosshairCmd {varname iname} {
global crosshair
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
switch -- [string tolower [lindex $var $i]] {
match {
diff --git a/src/dialog.tcl b/src/dialog.tcl
index 719d85c..9af1480 100644
--- a/src/dialog.tcl
+++ b/src/dialog.tcl
@@ -252,10 +252,10 @@ proc SimpleTextDialog {varname title width height action pos txt
set var(search) {}
set var(destroyCB) $destroyCB
set var(destroyParam) $destroyParam
- set var(font) courier
- set var(font,size) [PixelsToPoints [font actual TkFixedFont -size]]
- set var(font,weight) [font actual TkFixedFont -weight]
- set var(font,slant) [font actual TkFixedFont -slant]
+ set var(font) $pds9(text,font)
+ set var(font,size) $pds9(text,font,size)
+ set var(font,weight) $pds9(text,font,weight)
+ set var(font,slant) $pds9(text,font,slant)
$var(mb) add cascade -label [msgcat::mc {File}] -menu $var(mb).file
menu $var(mb).file
diff --git a/src/ds9.tcl b/src/ds9.tcl
index acca11a..5ab2dc8 100755
--- a/src/ds9.tcl
+++ b/src/ds9.tcl
@@ -7,7 +7,7 @@ proc DS9Def {} {
global pds9
set ds9(title) "$ds9(app)"
- set ds9(version) {7.0 beta 18}
+ set ds9(version) {7.0 beta 19}
set ds9(top) .
set ds9(mb) .mb
@@ -16,8 +16,6 @@ proc DS9Def {} {
set ds9(depth) 8
set ds9(FTY_MAXAXES) 10
- set ds9(3D) 1
-
set ds9(x) -1
set ds9(y) -1
@@ -51,6 +49,7 @@ proc DS9Def {} {
set ds9(lock) 0
set ds9(next) {}
set ds9(next,num) 1
+ set ds9(last) {}
set ds9(event,opendoc) {}
set ds9(event,printdoc) {}
@@ -137,6 +136,11 @@ proc DS9Def {} {
set pds9(font,weight) [font configure TkDefaultFont -weight]
set pds9(font,slant) [font configure TkDefaultFont -slant]
+ set pds9(text,font) courier
+ set pds9(text,font,size) [PixelsToPoints [font actual TkFixedFont -size]]
+ set pds9(text,font,weight) [font actual TkFixedFont -weight]
+ set pds9(text,font,slant) [font actual TkFixedFont -slant]
+
set pds9(backup) 1
set pds9(automarker) 1
set pds9(tcl) 0
@@ -187,8 +191,12 @@ switch $ds9(wm) {
set ds9(root) "[pwd]/zvfsmntpt"
# tcl modules
-source $ds9(root)/tcl8/8.5/msgcat-1.4.3.tm
-source $ds9(root)/tcl8/8.4/http-2.7.5.tm
+if {![namespace exists msgcat]} {
+ source $ds9(root)/tcl8/8.5/msgcat-1.4.3.tm
+}
+if {![namespace exists http]} {
+ source $ds9(root)/tcl8/8.4/http-2.7.5.tm
+}
source $ds9(root)/tk8.5/tearoff.tcl
source $ds9(root)/tk8.5/comdlg.tcl
@@ -240,6 +248,7 @@ CursorDef
DebugDef
ESODef
ExamineDef
+ExportDef
FIRSTDef
GraphDef
GridDef
@@ -265,6 +274,7 @@ RGBDef
SAMPDef
SAODef
SaveImageDef
+SaveMPEGDef
ScaleDef
SkyViewDef
SmoothDef
diff --git a/src/ellipse.tcl b/src/ellipse.tcl
index e0018df..911111e 100644
--- a/src/ellipse.tcl
+++ b/src/ellipse.tcl
@@ -14,16 +14,53 @@ proc EllipseDialog {varname} {
return
}
+ # variables
+ set rr [$var(frame) get wcs]
+ set var(dcoord) [lindex $rr 0]
+ set var(dformat) degrees
+ AdjustCoordSystem $varname dcoord
+
# procs
- set var(which) ellipse
set var(proc,apply) EllipseApply
set var(proc,close) EllipseClose
set var(proc,coordCB) EllipseCoordCB
- set var(proc,editCB) EllipseEditCB
- set var(proc,distCB) EllipseDistCB
# base
- MarkerBaseRectDialog $varname radius
+ MarkerBaseCenterDialog $varname
+
+ # analysis
+ $var(mb) add cascade -label [msgcat::mc {Analysis}] -menu $var(mb).analysis
+ menu $var(mb).analysis
+
+ # plot3d
+ MarkerAnalysisPlot3dDialog $varname
+
+ # init
+ EllipseEditCB $varname
+ MarkerBaseCenterRotateCB $varname
+
+ # callbacks
+ $var(frame) marker $var(id) callback edit EllipseEditCB $varname
+ $var(frame) marker $var(id) callback rotate \
+ MarkerBaseCenterRotateCB $varname
+
+ set f $var(top).param
+
+ # Radius
+ ttk::label $f.tradius -text Radius
+ ttk::entry $f.radius1 -textvariable ${varname}(radius1) -width 13
+ ttk::entry $f.radius2 -textvariable ${varname}(radius2) -width 13
+ DistMenuButton $f.uradius $varname dcoord 1 dformat \
+ [list EllipseEditCB $varname]
+ DistMenuEnable $f.uradius.menu $varname dcoord 1 dformat
+
+ # Angle
+ ttk::label $f.tangle -text [msgcat::mc {Angle}]
+ ttk::entry $f.angle -textvariable ${varname}(angle) -width 13
+ ttk::label $f.uangle -text [msgcat::mc {Degrees}]
+
+ grid $f.tradius $f.radius1 $f.radius2 $f.uradius -padx 2 -pady 2 -sticky w
+ grid $f.tangle $f.angle $f.uangle -padx 2 -pady 2 -sticky w
}
# actions
@@ -32,14 +69,24 @@ proc EllipseClose {varname} {
upvar #0 $varname var
global $varname
- MarkerBaseRectClose $varname
+ $var(frame) marker $var(id) delete callback edit EllipseEditCB
+ $var(frame) marker $var(id) delete callback rotate MarkerBaseCenterRotateCB
+
+ MarkerBaseCenterClose $varname
}
proc EllipseApply {varname} {
upvar #0 $varname var
global $varname
- MarkerBaseRectApply $varname
+ if {$var(radius1) != {} &&
+ $var(radius2) !={}} {
+ $var(frame) marker $var(id) ellipse radius \
+ $var(radius1) $var(radius2) $var(dcoord) $var(dformat)
+ }
+
+ MarkerBaseCenterRotate $varname
+ MarkerBaseCenterApply $varname
}
# callbacks
@@ -53,7 +100,9 @@ proc EllipseCoordCB {varname {dummy {}}} {
puts stderr "EllipseCoordCB"
}
- MarkerBaseRectCoordCB $varname
+ MarkerBaseCoordCB $varname
+ MarkerBaseCenterMoveCB $varname
+ MarkerBaseCenterRotateCB $varname
}
proc EllipseEditCB {varname {dummy {}}} {
@@ -65,18 +114,8 @@ proc EllipseEditCB {varname {dummy {}}} {
puts stderr "EllipseEditCB"
}
- MarkerBaseRectEditCB $varname
+ set r [$var(frame) get marker $var(id) ellipse radius \
+ $var(dcoord) $var(dformat)]
+ set var(radius1) [lindex $r 0]
+ set var(radius2) [lindex $r 1]
}
-
-proc EllipseDistCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "EllipseDistCB"
- }
-
- MarkerBaseRectDistCB $varname
-}
-
diff --git a/src/ellipseannulus.tcl b/src/ellipseannulus.tcl
index d96482c..83d3e47 100644
--- a/src/ellipseannulus.tcl
+++ b/src/ellipseannulus.tcl
@@ -16,74 +16,13 @@ proc EllipseAnnulusDialog {varname} {
# procs
set var(which) ellipseannulus
- set var(proc,apply) EllipseAnnulusApply
- set var(proc,close) EllipseAnnulusClose
- set var(proc,generate) EllipseAnnulusGenerate
- set var(proc,coordCB) EllipseAnnulusCoordCB
- set var(proc,editCB) EllipseAnnulusEditCB
- set var(proc,distCB) EllipseAnnulusDistCB
+ set var(proc,apply) MarkerBaseAnnulusRectApply
+ set var(proc,close) MarkerBaseAnnulusRectClose
+ set var(proc,generate) MarkerBaseAnnulusGenerateEllipse
+ set var(proc,coordCB) MarkerBaseAnnulusRectCoordCB
+ set var(proc,editCB) MarkerBaseAnnulusRectEditCB
+ set var(proc,distCB) MarkerBaseAnnulusRectDistCB
# base
MarkerBaseAnnulusRectDialog $varname radius Major Minor
}
-
-# actions
-
-proc EllipseAnnulusClose {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBaseAnnulusRectClose $varname
-}
-
-proc EllipseAnnulusApply {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBaseAnnulusRectApply $varname
-}
-
-proc EllipseAnnulusGenerate {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBaseAnnulusGenerateEllipse $varname
-}
-
-# callbacks
-
-proc EllipseAnnulusCoordCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "EllipseAnnulusCoordCB"
- }
-
- MarkerBaseAnnulusRectCoordCB $varname
-}
-
-proc EllipseAnnulusEditCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "EllipseAnnulusEditCB"
- }
-
- MarkerBaseAnnulusRectEditCB $varname
-}
-
-proc EllipseAnnulusDistCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "EllipseAnnulusDistCB"
- }
-
- MarkerBaseAnnulusRectDistCB $varname
-}
diff --git a/src/epanda.tcl b/src/epanda.tcl
index effac89..09c5681 100644
--- a/src/epanda.tcl
+++ b/src/epanda.tcl
@@ -16,12 +16,12 @@ proc EpandaDialog {varname} {
# procs
set var(which) epanda
- set var(proc,apply) EpandaApply
- set var(proc,close) EpandaClose
+ set var(proc,apply) MarkerBasePandaRectApply
+ set var(proc,close) MarkerBasePandaRectClose
set var(proc,generate) EpandaGenerate
- set var(proc,coordCB) EpandaCoordCB
- set var(proc,editCB) EpandaEditCB
- set var(proc,distCB) EpandaDistCB
+ set var(proc,coordCB) MarkerBasePandaRectCoordCB
+ set var(proc,editCB) MarkerBasePandaRectEditCB
+ set var(proc,distCB) MarkerBasePandaRectDistCB
# base panda rect dialog
MarkerBasePandaRectDialog $varname
@@ -29,20 +29,6 @@ proc EpandaDialog {varname} {
# actions
-proc EpandaClose {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBasePandaRectClose $varname
-}
-
-proc EpandaApply {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBasePandaRectApply $varname
-}
-
proc EpandaGenerate {varname} {
upvar #0 $varname var
global $varname
@@ -50,41 +36,3 @@ proc EpandaGenerate {varname} {
MarkerBaseAnnulusGenerateEllipse $varname
MarkerBasePandaGenerateAngles $varname
}
-
-# callbacks
-
-proc EpandaCoordCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "EpandaCoordCB"
- }
-
- MarkerBasePandaRectCoordCB $varname
-}
-
-proc EpandaEditCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "EpandaEditCB"
- }
-
- MarkerBasePandaRectEditCB $varname
-}
-
-proc EpandaDistCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "EpandaDistCB"
- }
-
- MarkerBasePandaDistCB $varname
-}
diff --git a/src/export.tcl b/src/export.tcl
new file mode 100644
index 0000000..86a9924
--- /dev/null
+++ b/src/export.tcl
@@ -0,0 +1,210 @@
+# Copyright (C) 1999-2012
+# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+# For conditions of distribution and use, see copyright notice in "copyright"
+
+package provide DS9 1.0
+
+proc ExportDef {} {
+ global export
+
+ set export(base) ds9
+ set export(format) jpeg
+ set export(jpeg,quality) 75
+ set export(tiff,compression) none
+}
+
+proc ExportDialog {} {
+ global export
+ global exportfbox
+ global ed
+
+ set w {.export}
+
+ set ed(ok) 0
+ set ed(format) $export(format)
+
+ DialogCreate $w [msgcat::mc {Export}] ed(ok)
+
+ # Param
+ set f [ttk::frame $w.param]
+ ttk::label $f.title -text [msgcat::mc {Format}]
+ ttk::radiobutton $f.fits -text {FITS} \
+ -variable ed(format) -value fits
+ ttk::radiobutton $f.gif -text {GIF} \
+ -variable ed(format) -value gif
+ ttk::radiobutton $f.jpeg -text {JPEG} \
+ -variable ed(format) -value jpeg
+ ttk::radiobutton $f.tiff -text {TIFF RGB 24-bit} \
+ -variable ed(format) -value tiff
+ ttk::radiobutton $f.png -text {PNG 24-bit (Portable Network Graphics)} \
+ -variable ed(format) -value png
+ ttk::radiobutton $f.ppm -text {PPM RGB (Portable Pixmap)} \
+ -variable ed(format) -value ppm
+ grid $f.fits -padx 2 -pady 2 -sticky w
+ grid $f.gif -padx 2 -pady 2 -sticky w
+ grid $f.jpeg -padx 2 -pady 2 -sticky w
+ grid $f.tiff -padx 2 -pady 2 -sticky w
+ grid $f.png -padx 2 -pady 2 -sticky w
+ grid $f.ppm -padx 2 -pady 2 -sticky w
+
+ # Buttons
+ set f [ttk::frame $w.buttons]
+ ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed(ok) 1} \
+ -default active
+ ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed(ok) 0}
+ pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4
+
+ bind $w <Return> {set ed(ok) 1}
+
+ # Fini
+ ttk::separator $w.sep -orient horizontal
+ pack $w.buttons $w.sep -side bottom -fill x
+ pack $w.param -side top -fill both -expand true
+
+ DialogCenter $w
+ DialogWait $w ed(ok)
+ DialogDismiss $w
+
+ if {$ed(ok)} {
+ set export(format) $ed(format)
+ set exportfbox(types) [FormatToFBox $export(format)]
+ FileLast exportfbox "$export(base).$export(format)"
+ set fn [SaveFileDialog exportfbox]
+
+ if {$fn != {}} {
+ set export(base) [file rootname [file tail $fn]]
+
+ set ok 1
+ switch -- $export(format) {
+ fits {}
+ gif {}
+ jpeg {set ok [SaveJPEGParams export(jpeg,quality)]}
+ tiff {set ok [SaveTIFFParams export(tiff,compression)]}
+ png {}
+ ppm {}
+ }
+
+ if {$ok} {
+ Export $fn
+ }
+ }
+ }
+
+ set rr $ed(ok)
+ unset ed
+ return $rr
+}
+
+proc Export {fn} {
+ global current
+ global export
+
+ if {$fn == {} ||
+ ![$current(frame) has fits] ||
+ [$current(frame) get type] != {base}} {
+ return
+ }
+
+ switch -- $export(format) {
+ fits {$current(frame) save fits image file "\{$fn\}"}
+ default {ExportPhoto $fn}
+ }
+}
+
+# Support
+
+proc ExportPhoto {fn} {
+ global ds9
+ global export
+ global current
+
+ if {[catch {image create photo} ph]} {
+ Error [msgcat::mc {An error has occurred while creating image.}]
+ return
+ }
+
+ $current(frame) save photo $ph
+
+ switch -- $export(format) {
+ gif {$ph write $fn -format $export(format)}
+ jpeg {$ph write $fn -format \
+ [list $export(format) -quality $export(jpeg,quality)]}
+ tiff {$ph write $fn -format \
+ [list $export(format) -compression $export(tiff,compression)]}
+ png {$ph write $fn -format $export(format)}
+ ppm {$ph write $fn -format $export(format)}
+ }
+
+ image delete $ph
+}
+
+proc ProcessExportCmd {varname iname} {
+ upvar $varname var
+ upvar $iname i
+
+ # we need to be realized
+ ProcessRealizeDS9
+
+ set format {}
+ set fn [lindex $var $i]
+ if {$fn == {}} {
+ return
+ }
+
+ # backward compatibility
+ switch $fn {
+ fits -
+ gif -
+ tif -
+ tiff -
+ jpg -
+ jpeg -
+ png -
+ ppm {
+ set format $fn
+ set fn {}
+ incr i
+ }
+ }
+
+ # one last time
+ if {$fn == {}} {
+ set fn [lindex $var $i]
+ if {$fn == {}} {
+ return
+ }
+ }
+
+ global export
+ if {$format == {}} {
+ set export(format) [ExtToFormat $fn]
+ }
+
+ set param [string tolower [lindex $var [expr $i+1]]]
+ switch $export(format) {
+ fits -
+ gif -
+ png -
+ ppm {}
+ jpeg {
+ if {$param != {} && [string is integer $param]} {
+ set export(jpeg,quality) $param
+ incr i
+ }
+ }
+ tiff {
+ switch $param {
+ none -
+ jpeg -
+ packbits -
+ deflate {
+ set export(tiff,compression) $param
+ incr i
+ }
+ }
+ }
+ }
+
+ Export $fn
+ FileLast exportfbox $fn
+}
diff --git a/src/fits.tcl b/src/fits.tcl
index 60eda57..26d95d4 100644
--- a/src/fits.tcl
+++ b/src/fits.tcl
@@ -833,28 +833,49 @@ proc MultiLoad {{layer {}}} {
}
}
-proc MultiLoadBasic {} {
+proc MultiLoadBase {} {
global ds9
global current
global debug
if {$debug(tcl,layout)} {
- puts stderr "MultiLoadBasic"
+ puts stderr "MultiLoadBase"
}
- switch -- [$current(frame) get type] {
- base -
- 3d {
- CreateFrame
+ CreateFrame
- # go into tile mode if more than one
- set cnt [llength $ds9(frames)]
- if {$cnt > 1 && $current(display) != "tile"} {
- set current(display) tile
- DisplayMode
- }
+ # go into tile mode if more than one
+ set cnt [llength $ds9(frames)]
+ if {$cnt > 1 && $current(display) != "tile"} {
+ set current(display) tile
+ DisplayMode
+ }
+}
+
+proc MultiLoadRGB {} {
+ global ds9
+ global current
+
+ global debug
+ if {$debug(tcl,layout)} {
+ puts stderr "MultiLoadRGB"
+ }
+
+ if {$current(frame) != {}} {
+ if {![$current(frame) has fits]} {
+ return
}
- rgb {}
+ CreateRGBFrame
+ } else {
+ CreateRGBFrame
+ return
+ }
+
+ # go into tile mode if more than one
+ set cnt [llength $ds9(frames)]
+ if {$cnt > 1 && $current(display) != "tile"} {
+ set current(display) tile
+ DisplayMode
}
}
@@ -925,6 +946,9 @@ proc ProcessLoad {{err 1}} {
$loadParam(load,type) \
$loadParam(var,name) \
$loadParam(load,layer)}
+ photo {$current(frame) load $loadParam(file,type) \
+ $loadParam(var,name) \{$loadParam(file,name)\}
+ }
}
} rr] {
if {$err} {
diff --git a/src/frame.tcl b/src/frame.tcl
index cee1e32..454866a 100644
--- a/src/frame.tcl
+++ b/src/frame.tcl
@@ -2189,7 +2189,7 @@ proc ProcessSingleCmd {varname iname} {
upvar $iname i
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
global current
set current(display) single
@@ -2360,7 +2360,7 @@ proc ProcessLockCmd {varname iname} {
global colorbar
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
switch -- [string tolower [lindex $var $i]] {
frame -
@@ -2461,7 +2461,7 @@ proc ProcessMatchCmd {varname iname} {
global current
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
switch -- [string tolower [lindex $var $i]] {
frame -
diff --git a/src/hvsup.tcl b/src/hvsup.tcl
index 13f1b3c..02b4381 100644
--- a/src/hvsup.tcl
+++ b/src/hvsup.tcl
@@ -1260,21 +1260,11 @@ proc HVParseImg {varname} {
puts stderr "HVParseImg $var(url)"
}
- # fake html
- set html \
- "<html>\n<body>\n<img src=\"$var(fn)\" border=0>\n</body>\n</html>"
+ ImportPhoto $var(fn)
- HVSetURL $varname "$var(url)" {} {}
- HVSetResult $varname 200 "text/html"
- HVSetData $varname $html "$var(fn)"
-
- set var(cache,images) 0
-
- $var(widget) clear
- $var(widget) config -base {}
- $var(widget) parse $var(data)
-
- HVGotoHTML $varname
+ HVClearTmpFile $varname
+ HVClearAll $varname
+ HVUpdateDialog $varname
}
proc HVParseFITS {varname} {
@@ -1303,7 +1293,7 @@ proc HVParseFITS {varname} {
}
switch -- $var(frame) {
- new {MultiLoadBasic}
+ new {MultiLoadBase}
current {}
}
diff --git a/src/imgsvr.tcl b/src/imgsvr.tcl
index 9f6edba..3cadaf5 100644
--- a/src/imgsvr.tcl
+++ b/src/imgsvr.tcl
@@ -193,12 +193,12 @@ proc IMGSVRUpdate {varname force} {
return
}
}
+ } else {
+ set var(x) {}
+ set var(y) {}
+ set var(width) {}
+ set var(height) {}
}
-
- set var(x) {}
- set var(y) {}
- set var(width) {}
- set var(height) {}
}
}
@@ -243,7 +243,7 @@ proc IMGSVRServer {varname} {
if {($var(x) != {}) && ($var(y) != {})} {
switch -- $var(mode) {
- new {MultiLoadBasic}
+ new {MultiLoadBase}
current {}
}
diff --git a/src/import.tcl b/src/import.tcl
new file mode 100644
index 0000000..6b09253
--- /dev/null
+++ b/src/import.tcl
@@ -0,0 +1,56 @@
+# Copyright (C) 1999-2012
+# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+# For conditions of distribution and use, see copyright notice in "copyright"
+
+package provide DS9 1.0
+
+proc ImportDialog {} {
+ global importfbox
+
+ set fn [OpenFileDialog importfbox]
+ Import $fn
+}
+
+proc Import {fn} {
+ global current
+
+ if {$fn != {} && $current(frame) != {}} {
+ ImportPhoto $fn
+ }
+}
+
+# Support
+
+proc ImportPhoto {fn} {
+ global current
+ global loadParam
+
+ if {[catch {image create photo -file $fn} ph]} {
+ Error [msgcat::mc {An error has occurred while reading image.}]
+ return
+ }
+
+ StartLoad
+ set loadParam(load,type) photo
+ set loadParam(load,layer) {}
+ set loadParam(file,type) photo
+ set loadParam(file,mode) {}
+ set loadParam(file,name) $fn
+ set loadParam(var,name) $ph
+ ProcessLoad
+ FinishLoad
+
+ image delete $ph
+}
+
+proc ProcessImportCmd {varname iname} {
+ upvar $varname var
+ upvar $iname i
+
+ # we need to be realized
+ ProcessRealizeDS9
+
+ set fn [lindex $var $i]
+ Import $fn
+ FileLast importfbox $fn
+}
diff --git a/src/info.tcl b/src/info.tcl
index 1f28163..31f2cfb 100644
--- a/src/info.tcl
+++ b/src/info.tcl
@@ -646,6 +646,7 @@ proc LayoutInfoPanelHorz {} {
# wcs
foreach ll {{} a b c d e f g h i j k l m n o p q r s t u v w x y z} {
+ $ds9(info).wcsLabel$ll configure -width $ww
$ds9(info).wcsXValue$ll configure -width $ww
$ds9(info).wcsYValue$ll configure -width $ww
$ds9(info).wcsZValue$ll configure -width $ww
@@ -860,6 +861,7 @@ proc LayoutInfoPanelVert {} {
# wcs
foreach ll {{} a b c d e f g h i j k l m n o p q r s t u v w x y z} {
+ $ds9(info).wcsLabel$ll configure -width $ww
$ds9(info).wcsXValue$ll configure -width $ww
$ds9(info).wcsYValue$ll configure -width $ww
$ds9(info).wcsZValue$ll configure -width $ww
diff --git a/src/layout.tcl b/src/layout.tcl
index a86d7eb..5d9e3a3 100644
--- a/src/layout.tcl
+++ b/src/layout.tcl
@@ -793,7 +793,7 @@ proc ProcessHeightCmd {varname iname} {
upvar $iname i
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
global canvas
set canvas(height) [lindex $var $i]
@@ -810,7 +810,7 @@ proc ProcessWidthCmd {varname iname} {
upvar $iname i
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
global canvas
set canvas(width) [lindex $var $i]
diff --git a/src/line.tcl b/src/line.tcl
index 7029cbe..73fd6b2 100644
--- a/src/line.tcl
+++ b/src/line.tcl
@@ -22,7 +22,6 @@ proc LineDialog {varname} {
# procs
set var(which) line
set var(proc,apply) LineApply
- set var(proc,close) LineClose
set var(proc,coordCB) LineCoordCB
set var(proc,editCB) LineEditCB
set var(proc,distCB) LineDistCB
@@ -30,6 +29,13 @@ proc LineDialog {varname} {
# base
MarkerBaseLineDialog $varname 375 150
+ # analysis
+ $var(mb) add cascade -label [msgcat::mc {Analysis}] -menu $var(mb).analysis
+ menu $var(mb).analysis
+
+ # plot2d
+ MarkerAnalysisPlot2dDialog $varname
+
set f $var(top).param
# Arrows
@@ -44,13 +50,6 @@ proc LineDialog {varname} {
# actions
-proc LineClose {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBaseLineClose $varname
-}
-
proc LineApply {varname} {
upvar #0 $varname var
global $varname
@@ -61,6 +60,8 @@ proc LineApply {varname} {
MarkerBaseLineApply $varname
}
+# support
+
proc LineArrow {varname} {
upvar #0 $varname var
global $varname
@@ -109,8 +110,6 @@ proc LineDistCB {varname {dummy {}}} {
puts stderr "LineDistCB"
}
- MarkerBaseDistCB $varname
-
set var(dist) [$var(frame) get marker $var(id) line length \
$var(dcoord) $var(dformat)]
}
diff --git a/src/manalysis.tcl b/src/manalysis.tcl
index e63048e..a35d002 100644
--- a/src/manalysis.tcl
+++ b/src/manalysis.tcl
@@ -366,21 +366,6 @@ proc PrefsDialogCatalog {} {
-variable pcat(server) -value ukirt
menu $f.shape.menu
- $f.shape.menu add radiobutton -label [msgcat::mc {Circle Point}] \
- -variable pcat(sym,shape) -value {circle point}
- $f.shape.menu add radiobutton -label [msgcat::mc {Box Point}] \
- -variable pcat(sym,shape) -value {box point}
- $f.shape.menu add radiobutton -label [msgcat::mc {Diamond Point}] \
- -variable pcat(sym,shape) -value {diamond point}
- $f.shape.menu add radiobutton -label [msgcat::mc {Cross Point}] \
- -variable pcat(sym,shape) -value {cross point}
- $f.shape.menu add radiobutton -label [msgcat::mc {X Point}] \
- -variable pcat(sym,shape) -value {x point}
- $f.shape.menu add radiobutton -label [msgcat::mc {Arrow Point}] \
- -variable pcat(sym,shape) -value {arrow point}
- $f.shape.menu add radiobutton -label [msgcat::mc {BoxCircle Point}] \
- -variable pcat(sym,shape) -value {boxcircle point}
- $f.shape.menu add separator
$f.shape.menu add radiobutton -label [msgcat::mc {Circle}] \
-variable pcat(sym,shape) -value circle
$f.shape.menu add radiobutton -label [msgcat::mc {Ellipse}] \
@@ -389,6 +374,25 @@ proc PrefsDialogCatalog {} {
-variable pcat(sym,shape) -value box
$f.shape.menu add radiobutton -label [msgcat::mc {Text}] \
-variable pcat(sym,shape) -value text
+ $f.shape.menu add cascade -label [msgcat::mc {Point}] \
+ -menu $f.shape.menu.point
+
+ menu $f.shape.menu.point
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {Circle}] \
+ -variable pcat(sym,shape) -value {circle point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {Box}] \
+ -variable pcat(sym,shape) -value {box point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {Diamond}] \
+ -variable pcat(sym,shape) -value {diamond point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {Cross}] \
+ -variable pcat(sym,shape) -value {cross point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {X}] \
+ -variable pcat(sym,shape) -value {x point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {Arrow}] \
+ -variable pcat(sym,shape) -value {arrow point}
+ $f.shape.menu.point add radiobutton -label [msgcat::mc {BoxCircle}] \
+ -variable pcat(sym,shape) -value {boxcircle point}
+ $f.shape.menu.point add separator
grid $f.stitle $f.svr -padx 2 -pady 2 -sticky w
grid $f.shtitle $f.shape -padx 2 -pady 2 -sticky w
diff --git a/src/marker.tcl b/src/marker.tcl
index ca1508b..b3404f0 100644
--- a/src/marker.tcl
+++ b/src/marker.tcl
@@ -38,6 +38,8 @@ proc MarkerDef {} {
set marker(font,slant) roman
set marker(preserve) 0
+ set marker(analysis,3d) 0
+
set marker(copy) {}
set marker(copy,system) {}
set marker(maxdialog) 48
@@ -97,11 +99,8 @@ proc MarkerDef {} {
set pmarker(polygon,width) 20
set pmarker(polygon,height) 20
set pmarker(projection,thick) 0
- set pmarker(projection,method) 1
set pmarker(compass,radius) 40
set pmarker(point,size) 11
- set pmarker(circle3d,radius) 20
- set pmarker(circle3d,method) 1
}
# procs shared between pointer and catalog mode
@@ -340,14 +339,13 @@ proc MarkerButton {which x y} {
ruler -
compass -
projection -
- "circle point" -
- "box point" -
- "diamond point" -
- "cross point" -
- "x point" -
- "arrow point" -
- "boxcircle point" -
- circle3d {MarkerCreateShape $which $x $y}
+ {circle point} -
+ {box point} -
+ {diamond point} -
+ {cross point} -
+ {x point} -
+ {arrow point} -
+ {boxcircle point} {MarkerCreateShape $which $x $y}
default {
set fn "$ds9(root)/template/$itemplate($marker(shape))"
set ch [open $fn r]
@@ -450,9 +448,17 @@ proc MarkerRelease {which x y} {
$which marker edit end
MarkerDefault $which
- if {$marker(centroid,auto)} {
- $which marker centroid $imarker(id)
+ if {$imarker(id)>=0} {
+ if {$marker(centroid,auto)} {
+ $which marker centroid $imarker(id)
+ }
+
+ # special callbacks
+ switch [$which get marker $imarker(id) type] {
+ projection {MarkerAnalysisPlot2dCB $which $imarker(id)}
+ }
}
+
set imarker(id) -1
set imarker(x) -1
set imarker(y) -1
@@ -467,15 +473,17 @@ proc MarkerRelease {which x y} {
MarkerDefault $which
}
- # special callbacks
- switch [$which get marker $imarker(id) type] {
- projection {ProjectionPlotInit $which $imarker(id)}
- circle3d {Circle3dPlotInit $which $imarker(id)}
- }
+ if {$imarker(id)>=0} {
+ if {$marker(centroid,auto)} {
+ $which marker centroid $imarker(id)
+ }
- if {$marker(centroid,auto)} {
- $which marker centroid $imarker(id)
+ # special callbacks
+ switch [$which get marker $imarker(id) type] {
+ projection {MarkerAnalysisPlot2dCB $which $imarker(id)}
+ }
}
+
set imarker(id) -1
set imarker(x) -1
set imarker(y) -1
@@ -519,6 +527,21 @@ proc MarkerDouble {which x y} {
if {$id} {
if [$which get marker $id PROPERTY SELECT] {
MarkerDialog $which $id
+
+ set varname mk${which}-${id}
+ global $varname
+ upvar #0 $varname var
+
+ switch -- [$which get marker $id type] {
+ circle -
+ box -
+ ellipse -
+ point -
+ polygon {MarkerAnalysisPlot3d $varname}
+ line -
+ vector -
+ projection {MarkerAnalysisPlot2d $varname}
+ }
}
}
}
@@ -563,14 +586,13 @@ proc MarkerCreateShape {which x y} {
ruler {append cmd " $x $y $ed(system) $ed(sky) $ed(system) $ed(format)"}
compass {append cmd " 15 $ed(system) $ed(sky) "}
projection {append cmd " $x $y $pmarker(projection,thick) "}
- "circle point" -
- "box point" -
- "diamond point" -
- "cross point" -
- "x point" -
- "arrow point" -
- "boxcircle point" {append cmd " $pmarker(point,size)"}
- circle3d {append cmd " 0"}
+ {circle point} -
+ {box point} -
+ {diamond point} -
+ {cross point} -
+ {x point} -
+ {arrow point} -
+ {boxcircle point} {append cmd " $pmarker(point,size)"}
}
append cmd " color = $marker(color)"
append cmd " width = $marker(width)"
@@ -602,8 +624,7 @@ proc MarkerCreateShape {which x y} {
boxannulus -
bpanda -
compass -
- polygon -
- circle3d {
+ polygon {
set imarker(handle) 1
$which marker $imarker(id) edit begin $imarker(handle)
}
@@ -631,7 +652,8 @@ proc MarkerDefault {which} {
set zz $z2
}
- switch -- [$which get marker $imarker(id) type] {
+ set item [$which get marker $imarker(id) type]
+ switch -- $item {
circle {
$which marker $imarker(id) circle radius \
[expr ($pmarker(circle,radius)/$zz)] \
@@ -696,8 +718,8 @@ proc MarkerDefault {which} {
$pmarker(bpanda,annuli) image
}
compass {
- $which marker $imarker(id) compass radius $pmarker(compass,radius) \
- image degrees
+ $which marker $imarker(id) compass radius \
+ $pmarker(compass,radius) image degrees
}
polygon {
$which marker $imarker(id) polygon reset \
@@ -708,12 +730,11 @@ proc MarkerDefault {which} {
line -
vector -
ruler -
- projection {$which marker $imarker(id) delete}
- circle3d {
- $which marker $imarker(id) circle3d \
- [expr ($pmarker(circle3d,radius)/$zz)] \
- image degrees $pmarker(circle3d,method)
- Circle3dPlotInit $which $imarker(id)
+ projection {
+ $which marker $imarker(id) delete
+ set imarker(id) -1
+ set imarker(x) -1
+ set imarker(y) -1
}
}
}
@@ -1148,14 +1169,7 @@ proc MarkerDialog {frame id} {
ruler {RulerDialog $varname}
compass {CompassDialog $varname}
projection {ProjectionDialog $varname}
- {circle point} -
- {box point} -
- {diamond point} -
- {cross point} -
- {x point} -
- {arrow point} -
- {boxcircle point} {PointDialog $varname}
- circle3d {Circle3dDialog $varname}
+ point {PointDialog $varname}
composite {CompositeDialog $varname}
}
}
@@ -1299,8 +1313,8 @@ proc ProcessRegionsCmd {varname iname sock fn} {
global current
global marker
- # don't realize here, too slow
- # RealizeDS9
+ # we need to be realized
+ ProcessRealizeDS9
switch -- [string tolower [lindex $var $i]] {
show {
diff --git a/src/markeranalysisplot2d.tcl b/src/markeranalysisplot2d.tcl
new file mode 100644
index 0000000..808b2cf
--- /dev/null
+++ b/src/markeranalysisplot2d.tcl
@@ -0,0 +1,185 @@
+# Copyright (C) 1999-2012
+# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+# For conditions of distribution and use, see copyright notice in "copyright"
+
+package provide DS9 1.0
+
+# support
+
+proc MarkerAnalysisPlot2dDialog {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ # init
+ set var(plot2d) 0
+ set var(pcoord) $var(system)
+ set var(psky) $var(sky)
+ set var(method) [$var(frame) get marker $var(id) analysis param]
+
+ $var(mb).analysis add checkbutton -label [msgcat::mc {Plot 2D}] \
+ -variable ${varname}(plot2d) \
+ -command "MarkerAnalysisPlot2d $varname"
+ $var(mb).analysis add separator
+ $var(mb).analysis add cascade -label [msgcat::mc {Method}] \
+ -menu $var(mb).analysis.method
+ $var(mb).analysis add cascade -label [msgcat::mc {Coordinate}] \
+ -menu $var(mb).analysis.coord
+
+ menu $var(mb).analysis.method
+ $var(mb).analysis.method add radiobutton -label [msgcat::mc {Average}] \
+ -variable ${varname}(method) -value average \
+ -command "MarkerAnalysisPlot2dMethod $varname"
+ $var(mb).analysis.method add radiobutton -label [msgcat::mc {Sum}] \
+ -variable ${varname}(method) -value sum \
+ -command "MarkerAnalysisPlot2dMethod $varname"
+
+ CoordMenu $var(mb).analysis.coord $varname pcoord 1 psky {} \
+ [list MarkerAnalysisPlot2dSystem $varname]
+ CoordMenuEnable $var(mb).analysis.coord $varname pcoord 1 psky {}
+}
+
+proc MarkerAnalysisPlot2d {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ $var(frame) marker $var(id) analysis plot2d $var(plot2d)
+ if {$var(plot2d)} {
+ MarkerAnalysisPlot2dCB $var(frame) $var(id)
+
+ set id $var(id)
+ set frame $var(frame)
+ set vvarname proj${id}${frame}
+ upvar #0 $vvarname vvar
+ global $vvarname
+
+ APRaise $vvarname
+ } else {
+ MarkerAnalysisPlot2dDeleteCB $var(frame) $var(id)
+ }
+}
+
+proc MarkerAnalysisPlot2dMethod {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ $var(frame) marker $var(id) analysis param $var(method)
+ if {$var(plot2d)} {
+ MarkerAnalysisPlot2dCB $var(frame) $var(id)
+ }
+}
+
+proc MarkerAnalysisPlot2dSystem {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ $var(frame) marker $var(id) analysis system $var(pcoord) $var(psky)
+ if {$var(plot2d)} {
+ MarkerAnalysisPlot2dCB $var(frame) $var(id)
+ MarkerAnalysisPlot2dXAxisTitle $var(frame) $var(id)
+ }
+}
+
+# hardcoded marker.C
+proc MarkerAnalysisPlot2dCB {frame id} {
+ set varname proj${id}${frame}
+ upvar #0 $varname var
+ global $varname
+
+ set xx proj${id}${frame}x
+ set yy proj${id}${frame}y
+ set xe proj${id}${frame}xe
+ set ye proj${id}${frame}ye
+
+ set xc proj${id}${frame}xc
+ set yc proj${id}${frame}yc
+
+ global $xx $yy $xe $ye $xc $yc
+ if {[APPing $varname]} {
+ $frame get marker $id analysis plot2d $xx $yy $xc $yc
+ APStats $varname
+ } else {
+ global ed
+ set rr [$frame get wcs]
+ set ed(pcoord) [lindex $rr 0]
+ set ed(psky) [lindex $rr 1]
+ AdjustCoordSystem ed pcoord
+
+ set tt [string totitle [$frame get marker $id type]]
+ APDialog $varname $tt $tt $ed(pcoord) Counts
+ $var(graph) xaxis configure -command "MarkerAnalysisPlot2dXAxis $frame $id"
+
+ set var(xdata) $xx
+ set var(ydata) $yy
+ set var(xedata) $xe
+ set var(yedata) $ye
+
+ blt::vector create $xx $yy $xe $ye $xc $yc
+ $frame marker $id analysis system $ed(pcoord) $ed(psky)
+ $frame get marker $id analysis plot2d $xx $yy $xc $yc
+
+ APExternal $varname
+ MarkerAnalysisPlot2dXAxisTitle $frame $id
+ }
+}
+
+proc MarkerAnalysisPlot2dDeleteCB {frame id} {
+ set varname proj${id}${frame}
+ upvar #0 $varname var
+ global $varname
+
+ set xc proj${id}${frame}xc
+ set yc proj${id}${frame}yc
+
+ global $xc $yc
+ catch {blt::vector destroy $xc $yc}
+ # clear any errors
+ global errorInfo
+ set errorInfo {}
+
+ APDestroy $varname
+}
+
+proc MarkerAnalysisPlot2dXAxisTitle {frame id} {
+ set varname proj${id}${frame}
+ upvar #0 $varname var
+ global $varname
+
+ set ss [$frame get marker $id analysis system]
+ set system [lindex $ss 0]
+ set sky [lindex $ss 1]
+ switch -- $system {
+ image -
+ physical -
+ amplifier -
+ detector {set title "$system coordinates"}
+ default {
+ if {[$frame has wcs equatorial $system]} {
+ set title "$sky coordinates"
+ } else {
+ set title "[$frame get wcs name $system] coordinates"
+ }
+ }
+ }
+ $var(graph) xaxis configure -title $title
+}
+
+proc MarkerAnalysisPlot2dXAxis {frame id w xx} {
+ set varname proj${id}${frame}
+ upvar #0 $varname var
+ global $varname
+
+ set x [expr $xx-1]
+ set xc proj${id}${frame}xc
+ set yc proj${id}${frame}yc
+
+ global $xc $yc
+ # sometimes, $x equals $xc length
+ set ll [$xc length]
+ if {($ll>=1) && ($x>=0) && ($x<$ll)} {
+ set a [format "%6.3f" [expr "$$xc\($x\)"]]
+ set b [format "%6.3f" [expr "$$yc\($x\)"]]
+ return "$a\n$b"
+ } else {
+ return {}
+ }
+}
diff --git a/src/markeranalysisplot3d.tcl b/src/markeranalysisplot3d.tcl
new file mode 100644
index 0000000..45d73c8
--- /dev/null
+++ b/src/markeranalysisplot3d.tcl
@@ -0,0 +1,156 @@
+# Copyright (C) 1999-2012
+# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+# For conditions of distribution and use, see copyright notice in "copyright"
+
+package provide DS9 1.0
+
+proc MarkerAnalysisPlot3dDialog {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ # init
+ set var(plot3d) 0
+ set var(pcoord) $var(system)
+ set var(method) [$var(frame) get marker $var(id) analysis param]
+
+ $var(mb).analysis add checkbutton -label [msgcat::mc {Plot 3D}] \
+ -variable ${varname}(plot3d) \
+ -command "MarkerAnalysisPlot3d $varname"
+ $var(mb).analysis add separator
+ $var(mb).analysis add cascade -label [msgcat::mc {Method}] \
+ -menu $var(mb).analysis.method
+ $var(mb).analysis add cascade -label [msgcat::mc {Coordinate}] \
+ -menu $var(mb).analysis.coord
+
+ menu $var(mb).analysis.method
+ $var(mb).analysis.method add radiobutton -label [msgcat::mc {Average}] \
+ -variable ${varname}(method) -value average \
+ -command "MarkerAnalysisPlot3dMethod $varname"
+ $var(mb).analysis.method add radiobutton -label [msgcat::mc {Sum}] \
+ -variable ${varname}(method) -value sum \
+ -command "MarkerAnalysisPlot3dMethod $varname"
+
+ CoordMenu $var(mb).analysis.coord $varname pcoord 2 {} {} \
+ [list MarkerAnalysisPlot3dSystem $varname]
+ CoordMenuEnable $var(mb).analysis.coord $varname pcoord 2 {} {}
+}
+
+# support
+
+proc MarkerAnalysisPlot3d {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ $var(frame) marker $var(id) analysis plot3d $var(plot3d)
+ if {$var(plot3d)} {
+ MarkerAnalysisPlot3dCB $var(frame) $var(id)
+
+ set id $var(id)
+ set frame $var(frame)
+ set vvarname proj${id}${frame}
+ upvar #0 $vvarname vvar
+ global $vvarname
+
+ APRaise $vvarname
+ } else {
+ MarkerAnalysisPlot3dDeleteCB $var(frame) $var(id)
+ }
+}
+
+proc MarkerAnalysisPlot3dMethod {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ $var(frame) marker $var(id) analysis param $var(method)
+ if {$var(plot3d)} {
+ MarkerAnalysisPlot3dCB $var(frame) $var(id)
+ }
+}
+
+proc MarkerAnalysisPlot3dSystem {varname} {
+ upvar #0 $varname var
+ global $varname
+
+ $var(frame) marker $var(id) analysis system $var(pcoord)
+ if {$var(plot3d)} {
+ MarkerAnalysisPlot3dCB $var(frame) $var(id)
+ MarkerAnalysisPlot3dXAxisTitle $var(frame) $var(id)
+ }
+}
+
+# hardcoded marker.C
+proc MarkerAnalysisPlot3dCB {frame id} {
+ set varname proj${id}${frame}
+ upvar #0 $varname var
+ global $varname
+
+ set tt proj${id}${frame}
+ set xx proj${id}${frame}x
+ set yy proj${id}${frame}y
+ set xe proj${id}${frame}xe
+ set ye proj${id}${frame}ye
+
+ global $xx $yy $xe $ye
+ if {[APPing $varname]} {
+ $frame get marker $id analysis plot3d $xx $yy
+ APStats $varname
+ } else {
+ global ed
+ set rr [$frame get wcs]
+ set ed(system) [lindex $rr 0]
+ set ed(sky) [lindex $rr 1]
+ AdjustCoordSystem ed system
+
+ set tt [string totitle [$frame get marker $id type]]
+ APDialog $varname $tt $tt $ed(system) Counts
+
+ set var(xdata) $xx
+ set var(ydata) $yy
+ set var(xedata) $xe
+ set var(yedata) $ye
+
+ blt::vector create $xx $yy $xe $ye
+ $frame marker $id analysis system $ed(system)
+ $frame get marker $id analysis plot3d $xx $yy
+
+ APExternal $varname
+ MarkerAnalysisPlot3dXAxisTitle $frame $id
+ }
+}
+
+# hardcoded marker.C
+proc MarkerAnalysisPlot3dDeleteCB {frame id} {
+ set varname proj${id}${frame}
+ upvar #0 $varname var
+ global $varname
+
+ # clear any errors
+ global errorInfo
+ set errorInfo {}
+
+ APDestroy $varname
+}
+
+proc MarkerAnalysisPlot3dXAxisTitle {frame id} {
+ set varname proj${id}${frame}
+ upvar #0 $varname var
+ global $varname
+
+ set sys [lindex [$frame get marker $id analysis system] 0]
+ switch -- $sys {
+ image -
+ physical -
+ amplifier -
+ detector {set title "$sys coordinates"}
+ default {
+ set w [string range $sys 3 3]
+ set tt [string trim [$frame get fits header 1 keyword \{CTYPE3$w\}]]
+ if {$tt != {}} {
+ set title "$tt coordinates"
+ } else {
+ set title "$sys coordinates"
+ }
+ }
+ }
+ $var(graph) xaxis configure -title $title
+}
diff --git a/src/markerbase.tcl b/src/markerbase.tcl
index 822bfc9..c802321 100644
--- a/src/markerbase.tcl
+++ b/src/markerbase.tcl
@@ -249,16 +249,6 @@ proc MarkerBaseCoordCB {varname {dummy {}}} {
AdjustCoordSystem $varname system
}
-proc MarkerBaseDistCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "MarkerBaseDistCB"
- }
-}
-
# menus
proc MarkerBaseMenu {varname} {
diff --git a/src/markerbaseannulusrect.tcl b/src/markerbaseannulusrect.tcl
index b42b0a1..eed01ab 100644
--- a/src/markerbaseannulusrect.tcl
+++ b/src/markerbaseannulusrect.tcl
@@ -31,7 +31,7 @@ proc MarkerBaseAnnulusRectDialog {varname unit major minor} {
MarkerBaseAnnulusMethodMenu $varname
# callbacks
- $var(frame) marker $var(id) callback move $var(proc,editCB) $varname
+# $var(frame) marker $var(id) callback move $var(proc,editCB) $varname
$var(frame) marker $var(id) callback edit $var(proc,editCB) $varname
$var(frame) marker $var(id) callback end edit $var(proc,editCB) $varname
$var(frame) marker $var(id) callback rotate MarkerBaseCenterRotateCB $varname
@@ -100,7 +100,7 @@ proc MarkerBaseAnnulusRectClose {varname} {
upvar #0 $varname var
global $varname
- $var(frame) marker $var(id) delete callback move $var(proc,editCB)
+ # $var(frame) marker $var(id) delete callback move $var(proc,editCB)
$var(frame) marker $var(id) delete callback edit $var(proc,editCB)
$var(frame) marker $var(id) delete callback end edit $var(proc,editCB)
$var(frame) marker $var(id) delete callback rotate MarkerBaseCenterRotateCB
@@ -173,6 +173,5 @@ proc MarkerBaseAnnulusRectDistCB {varname {dummy {}}} {
puts stderr "MarkerBaseAnnulusRectDistCB"
}
- MarkerBaseDistCB $varname
$var(proc,editCB) $varname
}
diff --git a/src/markerbaseline.tcl b/src/markerbaseline.tcl
index 65260ff..2106d3a 100644
--- a/src/markerbaseline.tcl
+++ b/src/markerbaseline.tcl
@@ -17,6 +17,9 @@ proc MarkerBaseLineDialog {varname width height} {
}
AdjustCoordSystem $varname dcoord
+ # procs
+ set var(proc,close) MarkerBaseLineClose
+
# base
MarkerBaseDialog $varname
diff --git a/src/markerbasepanda.tcl b/src/markerbasepanda.tcl
index 5f408a0..7a32ed5 100644
--- a/src/markerbasepanda.tcl
+++ b/src/markerbasepanda.tcl
@@ -25,7 +25,7 @@ proc MarkerBasePandaDialog {varname} {
MarkerBaseAnnulusMethodMenu $varname
# callbacks
- $var(frame) marker $var(id) callback move $var(proc,editCB) $varname
+# $var(frame) marker $var(id) callback move $var(proc,editCB) $varname
$var(frame) marker $var(id) callback edit $var(proc,editCB) $varname
$var(frame) marker $var(id) callback end edit $var(proc,editCB) $varname
@@ -99,7 +99,7 @@ proc MarkerBasePandaClose {varname} {
upvar #0 $varname var
global $varname
- $var(frame) marker $var(id) delete callback move $var(proc,editCB)
+# $var(frame) marker $var(id) delete callback move $var(proc,editCB)
$var(frame) marker $var(id) delete callback edit $var(proc,editCB)
$var(frame) marker $var(id) delete callback end edit $var(proc,editCB)
@@ -201,7 +201,6 @@ proc MarkerBasePandaDistCB {varname {dummy {}}} {
puts stderr "MarkerBasePandaDistCB"
}
- MarkerBaseDistCB $varname
$var(proc,editCB) $varname
}
diff --git a/src/markerbaserect.tcl b/src/markerbaserect.tcl
deleted file mode 100644
index 8912548..0000000
--- a/src/markerbaserect.tcl
+++ /dev/null
@@ -1,120 +0,0 @@
-# Copyright (C) 1999-2012
-# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
-# For conditions of distribution and use, see copyright notice in "copyright"
-
-package provide DS9 1.0
-
-proc MarkerBaseRectDialog {varname unit} {
- upvar #0 $varname var
- global $varname
-
- set unit2 [string totitle $unit]
-
- # variables
- set rr [$var(frame) get wcs]
- set var(dcoord) [lindex $rr 0]
- set var(dformat) degrees
- AdjustCoordSystem $varname dcoord
-
- # base
- MarkerBaseCenterDialog $varname
-
- # init
- $var(proc,distCB) $varname
- MarkerBaseCenterRotateCB $varname
-
- # callbacks
- $var(frame) marker $var(id) callback move $var(proc,editCB) $varname
- $var(frame) marker $var(id) callback edit $var(proc,editCB) $varname
- $var(frame) marker $var(id) callback rotate \
- MarkerBaseCenterRotateCB $varname
-
- set f $var(top).param
-
- # Radius
- ttk::label $f.tradius -text $unit2
- ttk::entry $f.radius1 -textvariable ${varname}(radius1) -width 13
- ttk::entry $f.radius2 -textvariable ${varname}(radius2) -width 13
- DistMenuButton $f.uradius $varname dcoord 1 dformat \
- [list $var(proc,distCB) $varname]
- DistMenuEnable $f.uradius.menu $varname dcoord 1 dformat
-
- # Angle
- ttk::label $f.tangle -text [msgcat::mc {Angle}]
- ttk::entry $f.angle -textvariable ${varname}(angle) -width 13
- ttk::label $f.uangle -text [msgcat::mc {Degrees}]
-
- grid $f.tradius $f.radius1 $f.radius2 $f.uradius -padx 2 -pady 2 -sticky w
- grid $f.tangle $f.angle $f.uangle -padx 2 -pady 2 -sticky w
-}
-
-# actions
-
-proc MarkerBaseRectClose {varname} {
- upvar #0 $varname var
- global $varname
-
- $var(frame) marker $var(id) delete callback move $var(proc,editCB)
- $var(frame) marker $var(id) delete callback edit $var(proc,editCB)
- $var(frame) marker $var(id) delete callback rotate MarkerBaseCenterRotateCB
-
- MarkerBaseCenterClose $varname
-}
-
-proc MarkerBaseRectApply {varname} {
- upvar #0 $varname var
- global $varname
-
- if {$var(radius1) != {} &&
- $var(radius2) !={}} {
- $var(frame) marker $var(id) $var(which) radius \
- $var(radius1) $var(radius2) $var(dcoord) $var(dformat)
- }
-
- MarkerBaseCenterRotate $varname
- MarkerBaseCenterApply $varname
-}
-
-# callbacks
-
-proc MarkerBaseRectCoordCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "MarkerBaseRectCoordCB"
- }
-
- MarkerBaseCoordCB $varname
- MarkerBaseCenterMoveCB $varname
- MarkerBaseCenterRotateCB $varname
-}
-
-proc MarkerBaseRectEditCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "MarkerBaseRectEditCB"
- }
-
- set r [$var(frame) get marker $var(id) $var(which) radius \
- $var(dcoord) $var(dformat)]
- set var(radius1) [lindex $r 0]
- set var(radius2) [lindex $r 1]
-}
-
-proc MarkerBaseRectDistCB {varname {dummy {}}} {
- upvar #0 $varname var
- global $varname
-
- global debug
- if {$debug(tcl,marker)} {
- puts stderr "MarkerBaseRectDistCB"
- }
-
- MarkerBaseDistCB $varname
- $var(proc,editCB) $varname
-}
diff --git a/src/mcolor.tcl b/src/mcolor.tcl
index 46e065a..d6c5184 100644
--- a/src/mcolor.tcl
+++ b/src/mcolor.tcl
@@ -25,19 +25,27 @@ proc ColorMainMenu {} {
menu $ds9(mb).color
- # we don't have to worry about user added cmaps yet
set id [colorbar list id]
- foreach ii $id {
- set name [colorbar get name $ii]
+ # base
+ foreach jj $id {
+ set name [colorbar get name $jj]
$ds9(mb).color add radiobutton \
-label [msgcat::mc $name] \
-variable colorbar(map) -value $name \
- -command "ChangeColormapID $ii"
+ -command "ChangeColormapID $jj"
incr icolorbar(count)
- incr icolorbar(cmaps)
}
+ # no contrib
+ set icolorbar(contrib) $icolorbar(count)
+ # no user
+ set icolorbar(user) $icolorbar(contrib)
$ds9(mb).color add separator
+ $ds9(mb).color add cascade -label [msgcat::mc {Contributed}] \
+ -menu $ds9(mb).color.contrib
+ $ds9(mb).color add cascade -label [msgcat::mc {User}] \
+ -menu $ds9(mb).color.user
+ $ds9(mb).color add separator
$ds9(mb).color add checkbutton -label [msgcat::mc {Invert Colormap}] \
-variable colorbar(invert) -command InvertColorbar
$ds9(mb).color add command -label [msgcat::mc {Reset Colormap}] \
@@ -49,6 +57,9 @@ proc ColorMainMenu {} {
$ds9(mb).color add command -label "[msgcat::mc {Colormap Parameters}]..." \
-command ColormapDialog
+ menu $ds9(mb).color.contrib
+ menu $ds9(mb).color.user
+
menu $ds9(mb).color.colorbar
$ds9(mb).color.colorbar add cascade -label [msgcat::mc {Orientation}] \
-menu $ds9(mb).color.colorbar.orient
@@ -86,6 +97,31 @@ proc ColorMainMenu {} {
FontMenu $ds9(mb).color.colorbar.cb colorbar font font,size font,weight \
font,slant UpdateView
+
+ CreateContribColorMenu
+}
+
+proc CreateContribColorMenu {} {
+ global ds9
+ global icolorbar
+
+ foreach fn $icolorbar(contrib,fn) {
+ set ch [open "$ds9(root)/cmaps/$fn" r]
+ global vardata
+ set vardata [read $ch]
+ close $ch
+
+ colorbar load var "\{$fn\}" vardata
+ set id [colorbar get id]
+ set map [colorbar get name]
+ incr icolorbar(user)
+ incr icolorbar(count)
+
+ $ds9(mb).color.contrib add radiobutton \
+ -label "$map" \
+ -variable map \
+ -command [list ChangeColormapID $id]
+ }
}
proc PrefsDialogColorMenu {w} {
@@ -103,14 +139,17 @@ proc PrefsDialogColorMenu {w} {
set m $f.menu.menu
menu $m
- # we don't wany any user added cmaps
set id [colorbar list id]
- for {set ii 0} {$ii<$icolorbar(cmaps)} {incr ii} {
+ # base
+ for {set ii 0} {$ii<$icolorbar(contrib)} {incr ii} {
set jj [lindex $id $ii]
set name [colorbar get name $jj]
$m add radiobutton -label [msgcat::mc $name] \
-variable pcolorbar(map) -value $name
}
+ # no contrib
+ # no user
+
$m add separator
$m add checkbutton -label [msgcat::mc {Invert Colormap}] \
-variable pcolorbar(invert)
@@ -215,16 +254,20 @@ proc CreateButtonsColor {} {
global buttons
global ds9
global colorbar
+ global icolorbar
ttk::frame $ds9(buttons).color
- # don't worry about user created cmaps yet
set id [colorbar list id]
- foreach ii $id {
- set name [colorbar get name $ii]
+ # base
+ for {set ii 0} {$ii<$icolorbar(contrib)} {incr ii} {
+ set jj [lindex $id $ii]
+ set name [colorbar get name $jj]
RadioButton $ds9(buttons).color.$name [msgcat::mc $name] \
- colorbar(map) $name "ChangeColormapID $ii"
+ colorbar(map) $name "ChangeColormapID $jj"
}
+ # no contrib
+ # no user
CheckButton $ds9(buttons).color.invert \
[string tolower [msgcat::mc {Invert}]] colorbar(invert) InvertColorbar
@@ -250,12 +293,15 @@ proc CreateButtonsColor {} {
[string tolower [msgcat::mc {Parameters}]] ColormapDialog
set buttons(color) {}
- # don't worry about user created cmaps yet
set id [colorbar list id]
- foreach ii $id {
- set name [colorbar get name $ii]
+ # base
+ for {set ii 0} {$ii<$icolorbar(contrib)} {incr ii} {
+ set jj [lindex $id $ii]
+ set name [colorbar get name $jj]
append buttons(color) "$ds9(buttons).color.$name pbuttons(color,$name) "
}
+ # no contrib
+ # no user
append buttons(color) "$ds9(buttons).color.invert pbuttons(color,invert) "
append buttons(color) "$ds9(buttons).color.reset pbuttons(color,reset) "
append buttons(color) "$ds9(buttons).color.horz pbuttons(color,horz) "
@@ -276,15 +322,18 @@ proc PrefsDialogButtonbarColor {f} {
set m $f.menu
menu $m
- # we don't wany any user added cmaps
set id [colorbar list id]
- for {set ii 0} {$ii<$icolorbar(cmaps)} {incr ii} {
+ # base
+ for {set ii 0} {$ii<$icolorbar(contrib)} {incr ii} {
set jj [lindex $id $ii]
set name [colorbar get name $jj]
$m add checkbutton -label [msgcat::mc $name] \
-variable pbuttons(color,$name) \
-command {UpdateButtons buttons(color)}
}
+ # no contrib
+ # no user
+
$m add separator
$m add checkbutton -label [msgcat::mc {Invert Colormap}] \
-variable pbuttons(color,invert) \
@@ -344,14 +393,19 @@ proc UpdateColorMenu {} {
base -
3d {
# menus
- for {set ii $icolorbar(start)} {$ii<$icolorbar(count)} {incr ii} {
+ # base
+ for {set ii $icolorbar(start)} {$ii<=$icolorbar(contrib)} {incr ii} {
$ds9(mb).color entryconfig $ii -state normal
}
+ $ds9(mb).color entryconfig [msgcat::mc {Contributed}] \
+ -state normal
+ $ds9(mb).color entryconfig [msgcat::mc {User}] \
+ -state normal
# buttons
- # we don't wany any user added cmaps
set id [colorbar list id]
- for {set ii 0} {$ii<$icolorbar(cmaps)} {incr ii} {
+ # base
+ for {set ii 0} {$ii<$icolorbar(contrib)} {incr ii} {
set jj [lindex $id $ii]
set name [colorbar get name $jj]
$ds9(buttons).color.$name configure -state normal
@@ -359,14 +413,19 @@ proc UpdateColorMenu {} {
}
rgb {
# menus
- for {set ii $icolorbar(start)} {$ii<$icolorbar(count)} {incr ii} {
+ # base
+ for {set ii $icolorbar(start)} {$ii<=$icolorbar(contrib)} {incr ii} {
$ds9(mb).color entryconfig $ii -state disabled
}
+ $ds9(mb).color entryconfig [msgcat::mc {Contributed}] \
+ -state disabled
+ $ds9(mb).color entryconfig [msgcat::mc {User}] \
+ -state disable
# buttons
- # we don't wany any user added cmaps
set id [colorbar list id]
- for {set ii 0} {$ii<$icolorbar(cmaps)} {incr ii} {
+ # base
+ for {set ii 0} {$ii<$icolorbar(contrib)} {incr ii} {
set jj [lindex $id $ii]
set name [colorbar get name $jj]
$ds9(buttons).color.$name configure -state disabled
@@ -375,14 +434,17 @@ proc UpdateColorMenu {} {
}
} else {
# menus
- for {set ii $icolorbar(start)} {$ii<$icolorbar(count)} {incr ii} {
+ # base
+ for {set ii $icolorbar(start)} {$ii<=$icolorbar(contrib)} {incr ii} {
$ds9(mb).color entryconfig $ii -state normal
}
+ $ds9(mb).color entryconfig [msgcat::mc {Contributed}] -state normal
+ $ds9(mb).color entryconfig [msgcat::mc {User}] -state normal
# buttons
- # we don't wany any user added cmaps
set id [colorbar list id]
- for {set ii 0} {$ii<$icolorbar(cmaps)} {incr ii} {
+ # base
+ for {set ii 0} {$ii<$icolorbar(contrib)} {incr ii} {
set jj [lindex $id $ii]
set name [colorbar get name $jj]
$ds9(buttons).color.$name configure -state normal
diff --git a/src/mfile.tcl b/src/mfile.tcl
index 8659560..4d6738c 100644
--- a/src/mfile.tcl
+++ b/src/mfile.tcl
@@ -25,16 +25,19 @@ proc FileMainMenu {} {
$ds9(mb).file add cascade -label [msgcat::mc {Open Other}] \
-menu $ds9(mb).file.open
$ds9(mb).file add separator
- $ds9(mb).file add cascade -label [msgcat::mc {Preserve During Load}] \
- -menu $ds9(mb).file.preserve
+ $ds9(mb).file add command -label "[msgcat::mc {Import}]..." \
+ -command ImportDialog
+ $ds9(mb).file add command -label "[msgcat::mc {Export}]..." \
+ -command ExportDialog
$ds9(mb).file add separator
$ds9(mb).file add command -label "[msgcat::mc {Save Image}]..." \
-command SaveImageDialog
- $ds9(mb).file add command -label "[msgcat::mc {Save Frame as Fits}]..." \
- -command SaveFitsDialog
- $ds9(mb).file add command -label "[msgcat::mc {Save Frames as MPEG}]..." \
+ $ds9(mb).file add command -label "[msgcat::mc {Save Movie}]..." \
-command SaveMPEGDialog
$ds9(mb).file add separator
+ $ds9(mb).file add cascade -label [msgcat::mc {Preserve During Load}] \
+ -menu $ds9(mb).file.preserve
+ $ds9(mb).file add separator
$ds9(mb).file add command -label "[msgcat::mc {Display Fits Header}]..." \
-command DisplayHeaderMenu
$ds9(mb).file add separator
@@ -235,8 +238,9 @@ proc ButtonsFileDef {} {
array set pbuttons {
file,about 1
file,open 1
+ file,import 0
+ file,export 0
file,saveimage 1
- file,savefits 0
file,savempeg 0
file,header 1
file,samp,image 0
@@ -263,12 +267,15 @@ proc CreateButtonsFile {} {
ButtonButton $ds9(buttons).file.open \
[string tolower [msgcat::mc {Open}]] OpenFits
+ ButtonButton $ds9(buttons).file.export \
+ [string tolower [msgcat::mc {Import}]] ImportDialog
+ ButtonButton $ds9(buttons).file.import \
+ [string tolower [msgcat::mc {Export}]] ExportDialog
+
ButtonButton $ds9(buttons).file.saveimage \
[string tolower [msgcat::mc {Save Image}]] SaveImageDialog
- ButtonButton $ds9(buttons).file.savefits \
- [string tolower [msgcat::mc {Save FITS}]] SaveFitsDialog
ButtonButton $ds9(buttons).file.savempeg \
- [string tolower [msgcat::mc {Save MPEG}]] SaveMPEGDialog
+ [string tolower [msgcat::mc {Save Movie}]] SaveMPEGDialog
ButtonButton $ds9(buttons).file.header \
[string tolower [msgcat::mc {Header}]] DisplayHeaderMenu
@@ -317,12 +324,13 @@ proc CreateButtonsFile {} {
set buttons(file) "
$ds9(buttons).file.about pbuttons(file,about)
$ds9(buttons).file.open pbuttons(file,open)
+ $ds9(buttons).file.import pbuttons(file,import)
+ $ds9(buttons).file.export pbuttons(file,export)
$ds9(buttons).file.saveimage pbuttons(file,saveimage)
- $ds9(buttons).file.savefits pbuttons(file,savefits)
$ds9(buttons).file.savempeg pbuttons(file,savempeg)
+ $ds9(buttons).file.header pbuttons(file,header)
$ds9(buttons).file.sampimage pbuttons(file,samp,image)
$ds9(buttons).file.samptable pbuttons(file,samp,table)
- $ds9(buttons).file.header pbuttons(file,header)
$ds9(buttons).file.xpa pbuttons(file,xpa)
$ds9(buttons).file.console pbuttons(file,console)
$ds9(buttons).file.tcl pbuttons(file,tcl)
@@ -348,11 +356,14 @@ proc PrefsDialogButtonbarFile {f} {
$m add checkbutton -label "[msgcat::mc {Open}]..." \
-variable pbuttons(file,open) -command {UpdateButtons buttons(file)}
$m add separator
+ $m add checkbutton -label "[msgcat::mc {Import}]..." \
+ -variable pbuttons(file,import) -command {UpdateButtons buttons(file)}
+ $m add checkbutton -label "[msgcat::mc {Export}]..." \
+ -variable pbuttons(file,export) -command {UpdateButtons buttons(file)}
+ $m add separator
$m add checkbutton -label "[msgcat::mc {Save Image}]..." \
-variable pbuttons(file,saveimage) -command {UpdateButtons buttons(file)}
- $m add checkbutton -label "[msgcat::mc {Save Frame as Fits}]..." \
- -variable pbuttons(file,savefits) -command {UpdateButtons buttons(file)}
- $m add checkbutton -label "[msgcat::mc {Save Frames as MPEG}]..." \
+ $m add checkbutton -label "[msgcat::mc {Save Movie}]..." \
-variable pbuttons(file,savempeg) -command {UpdateButtons buttons(file)}
$m add separator
$m add checkbutton -label "[msgcat::mc {Display Fits Header}]..." \
@@ -404,32 +415,34 @@ proc UpdateFileMenuStatic {} {
-state normal
$ds9(mb).file entryconfig [msgcat::mc {Open Other}] \
-state normal
- $ds9(mb).file entryconfig "[msgcat::mc {Save Image}]..." \
+ $ds9(mb).file entryconfig "[msgcat::mc {Import}]..." \
-state normal
- $ds9(mb).file entryconfig "[msgcat::mc {Save Frame as Fits}]..." \
+ $ds9(mb).file entryconfig "[msgcat::mc {Save Image}]..." \
-state normal
- $ds9(mb).file entryconfig "[msgcat::mc {Save Frames as MPEG}]..." \
+ $ds9(mb).file entryconfig "[msgcat::mc {Save Movie}]..." \
-state normal
$ds9(buttons).file.open configure -state normal
+ $ds9(buttons).file.import configure -state normal
+ $ds9(buttons).file.export configure -state normal
$ds9(buttons).file.saveimage configure -state normal
- $ds9(buttons).file.savefits configure -state normal
$ds9(buttons).file.savempeg configure -state normal
} else {
$ds9(mb).file entryconfig "[msgcat::mc {Open}]..." \
-state disabled
$ds9(mb).file entryconfig [msgcat::mc {Open Other}] \
-state disabled
- $ds9(mb).file entryconfig "[msgcat::mc {Save Image}]..." \
+ $ds9(mb).file entryconfig "[msgcat::mc {Import}]..." \
-state disabled
- $ds9(mb).file entryconfig "[msgcat::mc {Save Frame as Fits}]..." \
+ $ds9(mb).file entryconfig "[msgcat::mc {Save Image}]..." \
-state disabled
- $ds9(mb).file entryconfig "[msgcat::mc {Save Frames as MPEG}]..." \
+ $ds9(mb).file entryconfig "[msgcat::mc {Save Movie}]..." \
-state disabled
$ds9(buttons).file.open configure -state disabled
+ $ds9(buttons).file.import configure -state disabled
+ $ds9(buttons).file.export configure -state disabled
$ds9(buttons).file.saveimage configure -state disabled
- $ds9(buttons).file.savefits configure -state disabled
$ds9(buttons).file.savempeg configure -state disabled
}
}
@@ -458,8 +471,8 @@ proc UpdateFileMenu {} {
}
switch -- [$current(frame) get type] {
- base -
- 3d {
+ base {
+ $mm entryconfig "[msgcat::mc {Export}]..." -state normal
$mm.open entryconfig \
"[msgcat::mc {Open RGB Fits Image}]..." -state disabled
$mm.open entryconfig \
@@ -468,6 +481,7 @@ proc UpdateFileMenu {} {
"[msgcat::mc {Open RGB Array}]..." -state disabled
}
rgb {
+ $mm entryconfig "[msgcat::mc {Export}]..." -state disabled
$mm.open entryconfig \
"[msgcat::mc {Open RGB Fits Image}]..." -state normal
$mm.open entryconfig \
@@ -475,6 +489,15 @@ proc UpdateFileMenu {} {
$mm.open entryconfig \
"[msgcat::mc {Open RGB Array}]..." -state normal
}
+ 3d {
+ $mm entryconfig "[msgcat::mc {Export}]..." -state disabled
+ $mm.open entryconfig \
+ "[msgcat::mc {Open RGB Fits Image}]..." -state disabled
+ $mm.open entryconfig \
+ "[msgcat::mc {Open RGB Fits Cube}]..." -state disabled
+ $mm.open entryconfig \
+ "[msgcat::mc {Open RGB Array}]..." -state disabled
+ }
}
if {[$current(frame) has fits]} {
diff --git a/src/mframe.tcl b/src/mframe.tcl
index af0ddfe..c35ac44 100644
--- a/src/mframe.tcl
+++ b/src/mframe.tcl
@@ -15,10 +15,8 @@ proc FrameMainMenu {} {
-command CreateFrame
$ds9(mb).frame add command -label [msgcat::mc {New Frame RGB}] \
-command CreateRGBFrame
- if {$ds9(3D)} {
- $ds9(mb).frame add command -label [msgcat::mc {New Frame 3D}] \
- -command Create3DFrame
- }
+ $ds9(mb).frame add command -label [msgcat::mc {New Frame 3D}] \
+ -command Create3DFrame
$ds9(mb).frame add separator
$ds9(mb).frame add command -label [msgcat::mc {Delete Frame}] \
-command DeleteCurrentFrame
@@ -64,10 +62,8 @@ proc FrameMainMenu {} {
-command CubeDialog
$ds9(mb).frame add command -label "[msgcat::mc {RGB}]..." \
-command RGBDialog
- if {$ds9(3D)} {
- $ds9(mb).frame add command -label "[msgcat::mc {3D}]..." \
- -command 3DDialog
- }
+ $ds9(mb).frame add command -label "[msgcat::mc {3D}]..." \
+ -command 3DDialog
$ds9(mb).frame add separator
$ds9(mb).frame add cascade -label [msgcat::mc {Frame Parameters}] \
-menu $ds9(mb).frame.params
@@ -325,7 +321,7 @@ proc ButtonsFrameDef {} {
array set pbuttons {
frame,new 1
frame,newrgb 1
- frame,new3d 0
+ frame,new3d 1
frame,delete 1
frame,deleteall 0
frame,clear 1
@@ -410,10 +406,8 @@ proc CreateButtonsFrame {} {
[string tolower [msgcat::mc {New}]] CreateFrame
ButtonButton $ds9(buttons).frame.newrgb \
[string tolower [msgcat::mc {New RGB}]] CreateRGBFrame
- if {$ds9(3D)} {
- ButtonButton $ds9(buttons).frame.new3d \
- [string tolower [msgcat::mc {New 3D}]] Create3DFrame
- }
+ ButtonButton $ds9(buttons).frame.new3d \
+ [string tolower [msgcat::mc {New 3D}]] Create3DFrame
ButtonButton $ds9(buttons).frame.delete \
[string tolower [msgcat::mc {Delete}]] DeleteCurrentFrame
@@ -582,10 +576,8 @@ proc CreateButtonsFrame {} {
[string tolower [msgcat::mc {Cube}]] CubeDialog
ButtonButton $ds9(buttons).frame.rgb \
[string tolower [msgcat::mc {RGB}]] RGBDialog
- if {$ds9(3D)} {
- ButtonButton $ds9(buttons).frame.3d \
+ ButtonButton $ds9(buttons).frame.3d \
[string tolower [msgcat::mc {3D}]] 3DDialog
- }
ButtonButton $ds9(buttons).frame.size \
[string tolower [msgcat::mc {Size}]] DisplayDefaultDialog
@@ -680,10 +672,8 @@ proc PrefsDialogButtonbarFrame {f} {
-variable pbuttons(frame,new) -command {UpdateButtons buttons(frame)}
$m add checkbutton -label [msgcat::mc {New Frame RGB}] \
-variable pbuttons(frame,newrgb) -command {UpdateButtons buttons(frame)}
- if {$ds9(3D)} {
- $m add checkbutton -label [msgcat::mc {New Frame 3D}] \
- -variable pbuttons(frame,new3d) -command {UpdateButtons buttons(frame)}
- }
+ $m add checkbutton -label [msgcat::mc {New Frame 3D}] \
+ -variable pbuttons(frame,new3d) -command {UpdateButtons buttons(frame)}
$m add separator
$m add checkbutton -label [msgcat::mc {Delete Frame}] \
-variable pbuttons(frame,delete) -command {UpdateButtons buttons(frame)}
@@ -722,10 +712,8 @@ proc PrefsDialogButtonbarFrame {f} {
-variable pbuttons(frame,cube) -command {UpdateButtons buttons(frame)}
$m add checkbutton -label "[msgcat::mc {RGB}]..." \
-variable pbuttons(frame,rgb) -command {UpdateButtons buttons(frame)}
- if {$ds9(3D)} {
- $m add checkbutton -label "[msgcat::mc {3D}]..." \
- -variable pbuttons(frame,3d) -command {UpdateButtons buttons(frame)}
- }
+ $m add checkbutton -label "[msgcat::mc {3D}]..." \
+ -variable pbuttons(frame,3d) -command {UpdateButtons buttons(frame)}
$m add separator
$m add cascade -label [msgcat::mc {Frame Parameters}] -menu $m.params
@@ -1040,38 +1028,26 @@ proc UpdateFrameMenu {} {
base {
$ds9(mb).frame entryconfig "[msgcat::mc {RGB}]..." \
-state disabled
- if {$ds9(3D)} {
$ds9(mb).frame entryconfig "[msgcat::mc {3D}]..." \
-state normal
- }
$ds9(buttons).frame.rgb configure -state disabled
- if {$ds9(3D)} {
- $ds9(buttons).frame.3d configure -state normal
- }
+ $ds9(buttons).frame.3d configure -state normal
}
rgb {
$ds9(mb).frame entryconfig "[msgcat::mc {RGB}]..." \
-state normal
- if {$ds9(3D)} {
$ds9(mb).frame entryconfig "[msgcat::mc {3D}]..." \
-state disabled
- }
$ds9(buttons).frame.rgb configure -state normal
- if {$ds9(3D)} {
- $ds9(buttons).frame.3d configure -state disabled
- }
+ $ds9(buttons).frame.3d configure -state disabled
}
3d {
$ds9(mb).frame entryconfig "[msgcat::mc {RGB}]..." \
-state disabled
- if {$ds9(3D)} {
- $ds9(mb).frame entryconfig "[msgcat::mc {3D}]..." \
- -state normal
- }
+ $ds9(mb).frame entryconfig "[msgcat::mc {3D}]..." \
+ -state normal
$ds9(buttons).frame.rgb configure -state disabled
- if {$ds9(3D)} {
- $ds9(buttons).frame.3d configure -state normal
- }
+ $ds9(buttons).frame.3d configure -state normal
}
}
} else {
@@ -1079,15 +1055,11 @@ proc UpdateFrameMenu {} {
-state disabled
$ds9(mb).frame entryconfig "[msgcat::mc {RGB}]..." \
-state disabled
- if {$ds9(3D)} {
- $ds9(mb).frame entryconfig "[msgcat::mc {3D}]..." \
- -state disabled
- }
+ $ds9(mb).frame entryconfig "[msgcat::mc {3D}]..." \
+ -state disabled
$ds9(buttons).frame.cube configure -state disabled
$ds9(buttons).frame.rgb configure -state disabled
- if {$ds9(3D)} {
- $ds9(buttons).frame.3d configure -state disabled
- }
+ $ds9(buttons).frame.3d configure -state disabled
}
}
diff --git a/src/mregion.tcl b/src/mregion.tcl
index 7dc4195..95e88a2 100644
--- a/src/mregion.tcl
+++ b/src/mregion.tcl
@@ -75,19 +75,23 @@ proc RegionMainMenu {} {
-variable marker(shape) -value box
$ds9(mb).region.shape add radiobutton -label [msgcat::mc {Polygon}] \
-variable marker(shape) -value polygon
+ $ds9(mb).region.shape add separator
$ds9(mb).region.shape add radiobutton -label [msgcat::mc {Line}] \
-variable marker(shape) -value line
$ds9(mb).region.shape add radiobutton -label [msgcat::mc {Vector}] \
-variable marker(shape) -value vector
+ $ds9(mb).region.shape add radiobutton -label [msgcat::mc {Projection}] \
+ -variable marker(shape) -value projection
+ $ds9(mb).region.shape add separator
$ds9(mb).region.shape add radiobutton -label [msgcat::mc {Text}] \
-variable marker(shape) -value text
+ $ds9(mb).region.shape add cascade -label [msgcat::mc {Point}] \
+ -menu $ds9(mb).region.shape.point
$ds9(mb).region.shape add separator
$ds9(mb).region.shape add radiobutton -label [msgcat::mc {Ruler}] \
-variable marker(shape) -value ruler
$ds9(mb).region.shape add radiobutton -label [msgcat::mc {Compass}] \
-variable marker(shape) -value compass
- $ds9(mb).region.shape add radiobutton -label [msgcat::mc {Projection}] \
- -variable marker(shape) -value projection
$ds9(mb).region.shape add separator
$ds9(mb).region.shape add radiobutton -label [msgcat::mc {Annulus}] \
-variable marker(shape) -value annulus
@@ -96,6 +100,7 @@ proc RegionMainMenu {} {
-variable marker(shape) -value ellipseannulus
$ds9(mb).region.shape add radiobutton -label [msgcat::mc {Box Annulus}] \
-variable marker(shape) -value boxannulus
+ $ds9(mb).region.shape add separator
$ds9(mb).region.shape add radiobutton -label [msgcat::mc {Panda}] \
-variable marker(shape) -value panda
$ds9(mb).region.shape add radiobutton \
@@ -103,25 +108,22 @@ proc RegionMainMenu {} {
-variable marker(shape) -value epanda
$ds9(mb).region.shape add radiobutton -label [msgcat::mc {Box Panda}] \
-variable marker(shape) -value bpanda
- $ds9(mb).region.shape add separator
- $ds9(mb).region.shape add radiobutton -label [msgcat::mc {Circle Point}] \
- -variable marker(shape) -value {circle point}
- $ds9(mb).region.shape add radiobutton -label [msgcat::mc {Box Point}] \
+
+ menu $ds9(mb).region.shape.point
+ $ds9(mb).region.shape.point add radiobutton -label [msgcat::mc {Circle}] \
+ -variable marker(shape) -value {circle point}
+ $ds9(mb).region.shape.point add radiobutton -label [msgcat::mc {Box}] \
-variable marker(shape) -value {box point}
- $ds9(mb).region.shape add radiobutton -label [msgcat::mc {Diamond Point}] \
+ $ds9(mb).region.shape.point add radiobutton -label [msgcat::mc {Diamond}] \
-variable marker(shape) -value {diamond point}
- $ds9(mb).region.shape add radiobutton -label [msgcat::mc {Cross Point}] \
+ $ds9(mb).region.shape.point add radiobutton -label [msgcat::mc {Cross}] \
-variable marker(shape) -value {cross point}
- $ds9(mb).region.shape add radiobutton -label [msgcat::mc {X Point}] \
+ $ds9(mb).region.shape.point add radiobutton -label [msgcat::mc {X}] \
-variable marker(shape) -value {x point}
- $ds9(mb).region.shape add radiobutton -label [msgcat::mc {Arrow Point}] \
- -variable marker(shape) -value {arrow point}
- $ds9(mb).region.shape add radiobutton \
- -label [msgcat::mc {BoxCircle Point}] \
+ $ds9(mb).region.shape.point add radiobutton -label [msgcat::mc {Arrow}] \
+ -variable marker(shape) -value {arrow point}
+ $ds9(mb).region.shape.point add radiobutton -label [msgcat::mc {BoxCircle}]\
-variable marker(shape) -value {boxcircle point}
- $ds9(mb).region.shape add separator
- $ds9(mb).region.shape add radiobutton -label [msgcat::mc {Circle3d}] \
- -variable marker(shape) -value circle3d
menu $ds9(mb).region.composite
$ds9(mb).region.composite add command -label [msgcat::mc {Create}] \
@@ -223,19 +225,23 @@ proc PrefsDialogRegionMenu {w} {
-variable pmarker(shape) -value box
$m.shape add radiobutton -label [msgcat::mc {Polygon}] \
-variable pmarker(shape) -value polygon
+ $m.shape add separator
$m.shape add radiobutton -label [msgcat::mc {Line}] \
-variable pmarker(shape) -value line
$m.shape add radiobutton -label [msgcat::mc {Vector}] \
-variable pmarker(shape) -value vector
+ $m.shape add radiobutton -label [msgcat::mc {Projection}] \
+ -variable pmarker(shape) -value projection
+ $m.shape add separator
$m.shape add radiobutton -label [msgcat::mc {Text}] \
-variable pmarker(shape) -value text
+ $m.shape add cascade -label [msgcat::mc {Point}] \
+ -menu $m.shape.point
$m.shape add separator
$m.shape add radiobutton -label [msgcat::mc {Ruler}] \
-variable pmarker(shape) -value ruler
$m.shape add radiobutton -label [msgcat::mc {Compass}] \
-variable pmarker(shape) -value compass
- $m.shape add radiobutton -label [msgcat::mc {Projection}] \
- -variable pmarker(shape) -value projection
$m.shape add separator
$m.shape add radiobutton -label [msgcat::mc {Annulus}] \
-variable pmarker(shape) -value annulus
@@ -243,30 +249,29 @@ proc PrefsDialogRegionMenu {w} {
-variable pmarker(shape) -value ellipseannulus
$m.shape add radiobutton -label [msgcat::mc {Box Annulus}] \
-variable pmarker(shape) -value boxannulus
+ $m.shape add separator
$m.shape add radiobutton -label [msgcat::mc {Panda}] \
-variable pmarker(shape) -value panda
$m.shape add radiobutton -label [msgcat::mc {Elliptical Panda}] \
-variable pmarker(shape) -value epanda
$m.shape add radiobutton -label [msgcat::mc {Box Panda}] \
-variable pmarker(shape) -value bpanda
- $m.shape add separator
- $m.shape add radiobutton -label [msgcat::mc {Circle Point}] \
+
+ menu $m.shape.point
+ $m.shape.point add radiobutton -label [msgcat::mc {Circle}] \
-variable pmarker(shape) -value {circle point}
- $m.shape add radiobutton -label [msgcat::mc {Box Point}] \
- -variable pmarker(shape) -value {box point}
- $m.shape add radiobutton -label [msgcat::mc {Diamond Point}] \
+ $m.shape.point add radiobutton -label [msgcat::mc {Box}] \
+ -variable pmarker(shape) -value {box point}
+ $m.shape.point add radiobutton -label [msgcat::mc {Diamond}] \
-variable pmarker(shape) -value {diamond point}
- $m.shape add radiobutton -label [msgcat::mc {Cross Point}] \
+ $m.shape.point add radiobutton -label [msgcat::mc {Cross}] \
-variable pmarker(shape) -value {cross point}
- $m.shape add radiobutton -label [msgcat::mc {X Point}] \
+ $m.shape.point add radiobutton -label [msgcat::mc {X}] \
-variable pmarker(shape) -value {x point}
- $m.shape add radiobutton -label [msgcat::mc {Arrow Point}] \
+ $m.shape.point add radiobutton -label [msgcat::mc {Arrow}] \
-variable pmarker(shape) -value {arrow point}
- $m.shape add radiobutton -label [msgcat::mc {BoxCircle Point}] \
+ $m.shape.point add radiobutton -label [msgcat::mc {BoxCircle}]\
-variable pmarker(shape) -value {boxcircle point}
- $m.shape add separator
- $m.shape add radiobutton -label [msgcat::mc {Circle3d}] \
- -variable pmarker(shape) -value circle3d
ColorMenu $m.color pmarker color {}
WidthDashMenu $m.width pmarker width dash {} {}
@@ -387,15 +392,6 @@ proc PrefsDialogRegion {} {
grid $f.title $f.radius1 $f.unit -padx 2 -pady 2 -sticky w
grid $f.title2 $f.radius2 $f.unit2 -padx 2 -pady 2 -sticky w
- # Point
- set f [ttk::labelframe $w.region.point -text [msgcat::mc {Point}]]
-
- ttk::label $f.title -text [msgcat::mc {Size}]
- ttk::entry $f.size -textvariable pmarker(point,size) -width 10
- ttk::label $f.unit -text [msgcat::mc {Pixels}]
-
- grid $f.title $f.size $f.unit -padx 2 -pady 2 -sticky w
-
# Projection
set f [ttk::labelframe $w.region.projection -text [msgcat::mc {Projection}]]
@@ -405,19 +401,18 @@ proc PrefsDialogRegion {} {
grid $f.title $f.thick $f.unit -padx 2 -pady 2 -sticky w
- # Default Circle3d
- set f [ttk::labelframe $w.region.circle3d -text [msgcat::mc {Circle3d}]]
+ # Point
+ set f [ttk::labelframe $w.region.point -text [msgcat::mc {Point}]]
- ttk::label $f.title -text [msgcat::mc {Radius}]
- ttk::entry $f.radius -textvariable pmarker(circle3d,radius) -width 10
- ttk::label $f.unit -text [msgcat::mc {Image}]
+ ttk::label $f.title -text [msgcat::mc {Size}]
+ ttk::entry $f.size -textvariable pmarker(point,size) -width 10
+ ttk::label $f.unit -text [msgcat::mc {Pixels}]
- grid $f.title $f.radius $f.unit -padx 2 -pady 2 -sticky w
+ grid $f.title $f.size $f.unit -padx 2 -pady 2 -sticky w
pack $w.region.format \
$w.region.centroid $w.region.circle $w.region.ellipse \
- $w.region.box $w.region.point $w.region.projection \
- $w.region.circle3d \
+ $w.region.box $w.region.projection $w.region.point \
-side top -fill both -expand true
}
@@ -623,18 +618,17 @@ proc ButtonsRegionDef {} {
region,polygon 0
region,line 0
region,vector 0
+ region,projection 0
region,text 0
region,point 0
region,ruler 0
region,compass 0
- region,projection 0
region,annulus 0
region,ellipseannulus 0
region,boxannulus 0
region,panda 0
region,epanda 0
region,bpanda 0
- region,circle3d 0
region,create 0
region,dissolve 0
region,loadtemplate 0
@@ -685,6 +679,9 @@ proc CreateButtonsRegion {} {
RadioButton $ds9(buttons).region.vector \
[string tolower [msgcat::mc {Vector}]] \
marker(shape) vector {}
+ RadioButton $ds9(buttons).region.projection \
+ [string tolower [msgcat::mc {Projection}]] \
+ marker(shape) projection {}
RadioButton $ds9(buttons).region.text \
[string tolower [msgcat::mc {Text}]] \
marker(shape) text {}
@@ -697,9 +694,6 @@ proc CreateButtonsRegion {} {
RadioButton $ds9(buttons).region.compass \
[string tolower [msgcat::mc {Compass}]] \
marker(shape) compass {}
- RadioButton $ds9(buttons).region.projection \
- [string tolower [msgcat::mc {Projection}]] \
- marker(shape) projection {}
RadioButton $ds9(buttons).region.annulus \
[string tolower [msgcat::mc {Annulus}]] \
marker(shape) annulus {}
@@ -718,9 +712,6 @@ proc CreateButtonsRegion {} {
RadioButton $ds9(buttons).region.bpanda \
[string tolower [msgcat::mc {Box Panda}]] \
marker(shape) bpanda {}
- RadioButton $ds9(buttons).region.circle3d \
- [string tolower [msgcat::mc {Circle3d}]] \
- marker(shape) circle3d {}
ButtonButton $ds9(buttons).region.create \
[string tolower [msgcat::mc {Composite}]] CompositeCreate
@@ -780,18 +771,17 @@ proc CreateButtonsRegion {} {
$ds9(buttons).region.polygon pbuttons(region,polygon)
$ds9(buttons).region.line pbuttons(region,line)
$ds9(buttons).region.vector pbuttons(region,vector)
+ $ds9(buttons).region.projection pbuttons(region,projection)
$ds9(buttons).region.text pbuttons(region,text)
$ds9(buttons).region.point pbuttons(region,point)
$ds9(buttons).region.ruler pbuttons(region,ruler)
$ds9(buttons).region.compass pbuttons(region,compass)
- $ds9(buttons).region.projection pbuttons(region,projection)
$ds9(buttons).region.annulus pbuttons(region,annulus)
$ds9(buttons).region.ellipseannulus pbuttons(region,ellipseannulus)
$ds9(buttons).region.boxannulus pbuttons(region,boxannulus)
$ds9(buttons).region.panda pbuttons(region,panda)
$ds9(buttons).region.epanda pbuttons(region,epanda)
$ds9(buttons).region.bpanda pbuttons(region,bpanda)
- $ds9(buttons).region.circle3d pbuttons(region,circle3d)
$ds9(buttons).region.create pbuttons(region,create)
$ds9(buttons).region.dissolve pbuttons(region,dissolve)
$ds9(buttons).region.loadtemplate pbuttons(region,loadtemplate)
@@ -890,12 +880,17 @@ proc PrefsDialogButtonbarRegion {f} {
$m.shape add checkbutton -label [msgcat::mc {Polygon}] \
-variable pbuttons(region,polygon) \
-command {UpdateButtons buttons(region)}
+ $m.shape add separator
$m.shape add checkbutton -label [msgcat::mc {Line}] \
-variable pbuttons(region,line) \
-command {UpdateButtons buttons(region)}
$m.shape add checkbutton -label [msgcat::mc {Vector}] \
-variable pbuttons(region,vector) \
-command {UpdateButtons buttons(region)}
+ $m.shape add checkbutton -label [msgcat::mc {Projection}] \
+ -variable pbuttons(region,projection) \
+ -command {UpdateButtons buttons(region)}
+ $m.shape add separator
$m.shape add checkbutton -label [msgcat::mc {Text}] \
-variable pbuttons(region,text) \
-command {UpdateButtons buttons(region)}
@@ -909,9 +904,6 @@ proc PrefsDialogButtonbarRegion {f} {
$m.shape add checkbutton -label [msgcat::mc {Compass}] \
-variable pbuttons(region,compass) \
-command {UpdateButtons buttons(region)}
- $m.shape add checkbutton -label [msgcat::mc {Projection}] \
- -variable pbuttons(region,projection) \
- -command {UpdateButtons buttons(region)}
$m.shape add separator
$m.shape add checkbutton -label [msgcat::mc {Annulus}] \
-variable pbuttons(region,annulus) \
@@ -931,10 +923,6 @@ proc PrefsDialogButtonbarRegion {f} {
$m.shape add checkbutton -label [msgcat::mc {Box Panda}] \
-variable pbuttons(region,bpanda) \
-command {UpdateButtons buttons(region)}
- $m.shape add separator
- $m.shape add checkbutton -label [msgcat::mc {Circle3d}] \
- -variable pbuttons(region,circle3d) \
- -command {UpdateButtons buttons(region)}
menu $m.composite
$m.composite add checkbutton -label [msgcat::mc {Create}] \
diff --git a/src/panner.tcl b/src/panner.tcl
index 5404dc7..5566849 100644
--- a/src/panner.tcl
+++ b/src/panner.tcl
@@ -197,6 +197,7 @@ proc Button1Panner {x y} {
proc Motion1Panner {x y} {
global ds9
+ global current
global debug
if {$debug(tcl,events)} {
@@ -204,6 +205,12 @@ proc Motion1Panner {x y} {
}
panner pan motion $x $y
+ if {$current(frame) != {}} {
+ UpdateColormapLevelMosaic $current(frame) $x $y panner
+ UpdateInfoBox $current(frame) $x $y panner
+ UpdatePixelTableDialog $current(frame) $x $y panner
+ UpdateGraph $current(frame) $x $y panner
+ }
}
proc Release1Panner {x y} {
@@ -219,6 +226,11 @@ proc Release1Panner {x y} {
panner pan end $x $y
$current(frame) pan bbox [panner get bbox]
+ UpdateColormapLevelMosaic $current(frame) $x $y panner
+ UpdateInfoBox $current(frame) $x $y panner
+ UpdatePixelTableDialog $current(frame) $x $y panner
+ UpdateGraph $current(frame) $x $y panner
+
LockFrameCurrent
UpdateGraphXAxis $current(frame)
UpdatePanZoomDialog
@@ -234,6 +246,11 @@ proc Release2Panner {x y} {
panner pan to $x $y
$current(frame) pan bbox [panner get bbox]
+ UpdateColormapLevelMosaic $current(frame) $x $y panner
+ UpdateInfoBox $current(frame) $x $y panner
+ UpdatePixelTableDialog $current(frame) $x $y panner
+ UpdateGraph $current(frame) $x $y panner
+
LockFrameCurrent
UpdateGraphXAxis $current(frame)
UpdatePanZoomDialog
diff --git a/src/panzoom.tcl b/src/panzoom.tcl
index 89a5877..a1abb88 100644
--- a/src/panzoom.tcl
+++ b/src/panzoom.tcl
@@ -585,8 +585,9 @@ proc MatchFrame {which sys} {
global wcs
global current
- # make sure matrices have been updated
- RealizeDS9
+ # NO-make sure matrices have been updated
+ # really messes up mousewheel events, just assume all is good
+ # RealizeDS9
switch -- $sys {
image -
@@ -677,7 +678,7 @@ proc ProcessPanCmd {varname iname} {
upvar $iname i
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
switch -- [string tolower [lindex $var $i]] {
open {PanZoomDialog}
@@ -725,7 +726,7 @@ proc ProcessZoomCmd {varname iname} {
upvar $iname i
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
global current
switch -- [string tolower [lindex $var $i]] {
@@ -781,7 +782,7 @@ proc ProcessOrientCmd {varname iname} {
upvar $iname i
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
global current
switch -- [string tolower [lindex $var $i]] {
@@ -804,7 +805,7 @@ proc ProcessRotateCmd {varname iname} {
upvar $iname i
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
global current
switch -- [string tolower [lindex $var $i]] {
diff --git a/src/point.tcl b/src/point.tcl
index 6380758..cff0a50 100644
--- a/src/point.tcl
+++ b/src/point.tcl
@@ -15,7 +15,6 @@ proc PointDialog {varname} {
}
# procs
- set var(which) point
set var(proc,apply) PointApply
set var(proc,close) PointClose
set var(proc,coordCB) PointCoordCB
@@ -23,7 +22,40 @@ proc PointDialog {varname} {
# base
MarkerBaseCenterDialog $varname
+ # menus
+ $var(mb) add cascade -label [msgcat::mc {Shape}] -menu $var(mb).shape
+ menu $var(mb).shape
+ $var(mb).shape add radiobutton -label [msgcat::mc {Circle}] \
+ -variable ${varname}(shape) -value circle \
+ -command "PointShape $varname"
+ $var(mb).shape add radiobutton -label [msgcat::mc {Box}] \
+ -variable ${varname}(shape) -value box \
+ -command "PointShape $varname"
+ $var(mb).shape add radiobutton -label [msgcat::mc {Diamond}] \
+ -variable ${varname}(shape) -value diamond \
+ -command "PointShape $varname"
+ $var(mb).shape add radiobutton -label [msgcat::mc {Cross}] \
+ -variable ${varname}(shape) -value cross \
+ -command "PointShape $varname"
+ $var(mb).shape add radiobutton -label [msgcat::mc {X}] \
+ -variable ${varname}(shape) -value x \
+ -command "PointShape $varname"
+ $var(mb).shape add radiobutton -label [msgcat::mc {Arrow}] \
+ -variable ${varname}(shape) -value arrow \
+ -command "PointShape $varname"
+ $var(mb).shape add radiobutton -label [msgcat::mc {BoxCircle}] \
+ -variable ${varname}(shape) -value boxcircle \
+ -command "PointShape $varname"
+
+ # analysis
+ $var(mb) add cascade -label [msgcat::mc {Analysis}] -menu $var(mb).analysis
+ menu $var(mb).analysis
+
+ # plot3d
+ MarkerAnalysisPlot3dDialog $varname
+
# init
+ set var(shape) [$var(frame) get marker $var(id) point shape]
set var(size) [$var(frame) get marker $var(id) point size]
set f $var(top).param
@@ -50,7 +82,6 @@ proc PointApply {varname} {
global $varname
$var(frame) marker $var(id) point size $var(size)
-
MarkerBaseCenterApply $varname
}
@@ -69,7 +100,11 @@ proc PointCoordCB {varname {dummy {}}} {
MarkerBaseCenterMoveCB $varname
}
+# support
+proc PointShape {varname} {
+ upvar #0 $varname var
+ global $varname
-
-
+ $var(frame) marker $var(id) point shape $var(shape)
+}
diff --git a/src/polygon.tcl b/src/polygon.tcl
index d100b3c..bd8f3b0 100644
--- a/src/polygon.tcl
+++ b/src/polygon.tcl
@@ -15,7 +15,6 @@ proc PolygonDialog {varname} {
}
# procs
- set var(which) polygon
set var(proc,apply) PolygonApply
set var(proc,close) PolygonClose
set var(proc,coordCB) PolygonCoordCB
@@ -23,12 +22,18 @@ proc PolygonDialog {varname} {
# base
MarkerBaseCenterDialog $varname
+ # analysis
+ $var(mb) add cascade -label [msgcat::mc {Analysis}] -menu $var(mb).analysis
+ menu $var(mb).analysis
+
+ # plot3d
+ MarkerAnalysisPlot3dDialog $varname
+
# init
MarkerBaseCenterRotateCB $varname
# callbacks
- $var(frame) marker $var(id) callback rotate \
- MarkerBaseCenterRotateCB $varname
+ $var(frame) marker $var(id) callback rotate MarkerBaseCenterRotateCB $varname
set f $var(top).param
@@ -74,4 +79,3 @@ proc PolygonCoordCB {varname {dummy {}}} {
MarkerBaseCenterMoveCB $varname
MarkerBaseCenterRotateCB $varname
}
-
diff --git a/src/prefsdialog.tcl b/src/prefsdialog.tcl
index 326fe3a..19d0730 100644
--- a/src/prefsdialog.tcl
+++ b/src/prefsdialog.tcl
@@ -56,9 +56,7 @@ proc PrefsDialog {{which {}}} {
PrefsDialogMenu
PrefsDialogPanner
PrefsDialogMagnifier
- if {$ds9(3D)} {
PrefsDialog3d
- }
PrefsDialogGraph
PrefsDialogScale
PrefsDialogColor
@@ -234,8 +232,8 @@ proc PrefsDialogGeneral {} {
grid $f.lang -padx 2 -pady 2 -sticky w
- # Font
- set f [ttk::labelframe $w.general.font -text [msgcat::mc {Menu Font}]]
+ # GUI Font
+ set f [ttk::labelframe $w.general.font -text [msgcat::mc {GUI Font}]]
FontMenuButton $f.font pds9 font \
font,size font,weight font,slant PrefsDefaultFont
@@ -244,6 +242,16 @@ proc PrefsDialogGeneral {} {
grid $f.font $f.reset -padx 2 -pady 2 -sticky w
+ # Text Font
+ set f [ttk::labelframe $w.general.textfont -text [msgcat::mc {Text Font}]]
+
+ FontMenuButton $f.textfont pds9 text,font \
+ text,font,size text,font,weight text,font,slant {}
+ ttk::button $f.textreset -text [msgcat::mc {Reset}] \
+ -command PrefsResetDefaultTextFont
+
+ grid $f.textfont $f.textreset -padx 2 -pady 2 -sticky w
+
# Color
set f [ttk::labelframe $w.general.color -text [msgcat::mc {Color}]]
@@ -280,7 +288,8 @@ proc PrefsDialogGeneral {} {
grid $f.all - -padx 2 -pady 2 -sticky w
- pack $w.general.misc $w.general.theme $w.general.lang $w.general.font \
+ pack $w.general.misc $w.general.theme $w.general.lang \
+ $w.general.font $w.general.textfont \
$w.general.color $w.general.box \
-side top -fill both -expand true
}
diff --git a/src/projection.tcl b/src/projection.tcl
index 41bc20a..51f7b36 100644
--- a/src/projection.tcl
+++ b/src/projection.tcl
@@ -23,30 +23,21 @@ proc ProjectionDialog {varname} {
# procs
set var(which) projection
set var(proc,apply) ProjectionApply
- set var(proc,close) ProjectionClose
set var(proc,coordCB) ProjectionCoordCB
set var(proc,editCB) ProjectionEditCB
set var(proc,distCB) ProjectionDistCB
# base
MarkerBaseLineDialog $varname 500 200
- set var(pcoord) $var(system)
- set var(psky) $var(sky)
- # menus
- $var(mb) add cascade -label [msgcat::mc {Method}] -menu $var(mb).method
- menu $var(mb).method
- $var(mb).method add radiobutton -label [msgcat::mc {Average}] \
- -variable ${varname}(method) -value 1 \
- -command "ProjectionApply $varname"
- $var(mb).method add radiobutton -label [msgcat::mc {Sum}] \
- -variable ${varname}(method) -value 0 \
- -command "ProjectionApply $varname"
+ # analysis
+ $var(mb) add cascade -label [msgcat::mc {Analysis}] -menu $var(mb).analysis
+ menu $var(mb).analysis
- $var(mb) add cascade -label [msgcat::mc {Coordinate}] -menu $var(mb).coord
- CoordMenu $var(mb).coord $varname pcoord 1 psky {} \
- [list ProjectionSystem $varname]
- CoordMenuEnable $var(mb).coord $varname pcoord 1 psky {}
+ # plot2d
+ MarkerAnalysisPlot2dDialog $varname
+ # make sure its on
+ set var(plot2d) 1
# init
ProjectionThickCB $varname
@@ -60,28 +51,18 @@ proc ProjectionDialog {varname} {
[list ProjectionThickCB $varname]
DistMenuEnable $f.uthick.menu $varname tcoord 1 tformat
- grid $f.tthick $f.thick x $f.uthick -padx 2 -pady 2 -sticky w
-
- # make sure its opened
- ProjectionPlotCB $var(frame) $var(id)
+ grid $f.tthick $f.thick $f.uthick -padx 2 -pady 2 -sticky w
}
# actions
-proc ProjectionClose {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBaseLineClose $varname
-}
-
proc ProjectionApply {varname} {
upvar #0 $varname var
global $varname
$var(frame) marker $var(id) projection $var(system) $var(sky) \
$var(x) $var(y) $var(x2) $var(y2) \
- $var(thick) $var(method) $var(tcoord) $var(tformat)
+ $var(thick) $var(tcoord) $var(tformat)
MarkerBaseLineApply $varname
}
@@ -112,7 +93,6 @@ proc ProjectionEditCB {varname {dummy {}}} {
MarkerBaseLineEditCB $varname
- set var(method) [$var(frame) get marker $var(id) projection method]
set var(dist) [$var(frame) get marker $var(id) projection length \
$var(dcoord) $var(dformat)]
set var(thick) [$var(frame) get marker $var(id) projection thick \
@@ -130,8 +110,6 @@ proc ProjectionDistCB {varname {dummy {}}} {
puts stderr "ProjectionDistCB"
}
- MarkerBaseDistCB $varname
-
set var(dist) [$var(frame) get marker $var(id) projection length \
$var(dcoord) $var(dformat)]
}
@@ -149,131 +127,3 @@ proc ProjectionThickCB {varname {dummy {}}} {
$var(tcoord) $var(tformat)]
}
-# support
-
-proc ProjectionSystem {varname} {
- upvar #0 $varname var
- global $varname
-
- $var(frame) marker $var(id) projection system $var(pcoord) $var(psky)
-
- ProjectionPlotCB $var(frame) $var(id)
- ProjectionXAxisTitle $var(frame) $var(id)
-}
-
-# Plot
-
-proc ProjectionPlotInit {frame id} {
- $frame marker $id callback move ProjectionPlotCB $frame
- $frame marker $id callback edit ProjectionPlotCB $frame
- $frame marker $id callback update ProjectionPlotCB $frame
- $frame marker $id callback delete ProjectionPlotDeleteCB $frame
- ProjectionPlotCB $frame $id
-}
-
-# hardcoded into ds9parser.Y
-# hardcoded into frmarkerxml.C
-proc ProjectionPlotCB {frame id} {
- set varname proj${id}${frame}
- upvar #0 $varname var
- global $varname
-
- set xx proj${id}${frame}x
- set yy proj${id}${frame}y
- set xe proj${id}${frame}xe
- set ye proj${id}${frame}ye
-
- set xc proj${id}${frame}xc
- set yc proj${id}${frame}yc
-
- global $xx $yy $xe $ye $xc $yc
- if {[APPing $varname]} {
- $frame get marker $id projection $xx $yy $xc $yc
- APStats $varname
- } else {
- global ed
- set rr [$frame get wcs]
- set ed(pcoord) [lindex $rr 0]
- set ed(psky) [lindex $rr 1]
- AdjustCoordSystem ed pcoord
-
- APDialog $varname Projection Projection $ed(pcoord) Counts
- $var(graph) xaxis configure -command "ProjectionXAxis $frame $id"
-
- set var(xdata) $xx
- set var(ydata) $yy
- set var(xedata) $xe
- set var(yedata) $ye
-
- blt::vector create $xx $yy $xe $ye $xc $yc
- $frame marker $id projection system $ed(pcoord) $ed(psky)
- $frame get marker $id projection $xx $yy $xc $yc
-
- APExternal $varname
- ProjectionXAxisTitle $frame $id
- }
-}
-
-# hardcoded into ds9parser.Y
-# hardcoded into frmarkerxml.C
-proc ProjectionPlotDeleteCB {frame id} {
- set varname proj${id}${frame}
- upvar #0 $varname var
- global $varname
-
- set xc proj${id}${frame}xc
- set yc proj${id}${frame}yc
-
- global $xc $yc
- catch {blt::vector destroy $xc $yc}
- # clear any errors
- global errorInfo
- set errorInfo {}
-
- APDestroy $varname
-}
-
-proc ProjectionXAxisTitle {frame id} {
- set varname proj${id}${frame}
- upvar #0 $varname var
- global $varname
-
- set ss [$frame get marker $id projection system]
- set system [lindex $ss 0]
- set sky [lindex $ss 1]
- switch -- $system {
- image -
- physical -
- amplifier -
- detector {set title "$system coordinates"}
- default {
- if {[$frame has wcs equatorial $system]} {
- set title "$sky coordinates"
- } else {
- set title "[$frame get wcs name $system] coordinates"
- }
- }
- }
- $var(graph) xaxis configure -title $title
-}
-
-proc ProjectionXAxis {frame id w xx} {
- set varname proj${id}${frame}
- upvar #0 $varname var
- global $varname
-
- set x [expr $xx-1]
- set xc proj${id}${frame}xc
- set yc proj${id}${frame}yc
-
- global $xc $yc
- # sometimes, $x equals $xc length
- set ll [$xc length]
- if {($ll>=1) && ($x>=0) && ($x<$ll)} {
- set a [format "%6.3f" [expr "$$xc\($x\)"]]
- set b [format "%6.3f" [expr "$$yc\($x\)"]]
- return "$a\n$b"
- } else {
- return {}
- }
-}
diff --git a/src/ruler.tcl b/src/ruler.tcl
index 3089f44..c7a08a7 100644
--- a/src/ruler.tcl
+++ b/src/ruler.tcl
@@ -25,7 +25,6 @@ proc RulerDialog {varname} {
# procs
set var(which) ruler
set var(proc,apply) RulerApply
- set var(proc,close) RulerClose
set var(proc,coordCB) RulerCoordCB
set var(proc,editCB) RulerEditCB
set var(proc,distCB) RulerDistCB
@@ -46,13 +45,6 @@ proc RulerDialog {varname} {
# actions
-proc RulerClose {varname} {
- upvar #0 $varname var
- global $varname
-
- MarkerBaseLineClose $varname
-}
-
proc RulerApply {varname} {
upvar #0 $varname var
global $varname
@@ -112,8 +104,6 @@ proc RulerDistCB {varname {dummy {}}} {
puts stderr "RulerDistCB"
}
- MarkerBaseDistCB $varname
-
$var(frame) marker $var(id) ruler system $var(system) $var(sky) \
$var(dcoord) $var(dformat)
diff --git a/src/samp.tcl b/src/samp.tcl
index 6cb7c6b..f77cd60 100644
--- a/src/samp.tcl
+++ b/src/samp.tcl
@@ -1581,7 +1581,7 @@ proc ProcessSAMPCmd {varname iname} {
global env
# we need to be realized
- RealizeDS9
+ ProcessRealizeDS9
SAMPUpdate
diff --git a/src/saveas.tcl b/src/saveas.tcl
deleted file mode 100644
index 766520c..0000000
--- a/src/saveas.tcl
+++ /dev/null
@@ -1,608 +0,0 @@
-# Copyright (C) 1999-2012
-# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
-# For conditions of distribution and use, see copyright notice in "copyright"
-
-package provide DS9 1.0
-
-# SaveImage
-
-proc SaveImageDef {} {
- global saveimage
-
- set saveimage(format) jpeg
- set saveimage(base) "ds9"
- set saveimage(jpeg,quality) 75
- set saveimage(tiff,compression) none
- set saveimage(mpeg,quality) 2
-}
-
-proc SaveImageDialog {} {
- global saveimage
- global saveimagefbox
- global ed
-
- set w {.saveimage}
-
- set ed(ok) 0
- set ed(format) $saveimage(format)
-
- DialogCreate $w [msgcat::mc {Save Image}] ed(ok)
-
- # Param
- set f [ttk::frame $w.param]
- ttk::label $f.title -text [msgcat::mc {Format}]
- ttk::radiobutton $f.fits -text {FITS} -variable ed(format) -value fits
- ttk::radiobutton $f.gif -text {GIF} -variable ed(format) -value gif
- ttk::radiobutton $f.jpeg -text {JPEG} -variable ed(format) -value jpeg
- ttk::radiobutton $f.tiff -text {TIFF RGB 24-bit} \
- -variable ed(format) -value tiff
- ttk::radiobutton $f.png -text {PNG 24-bit (Portable Network Graphics)} \
- -variable ed(format) -value png
- ttk::radiobutton $f.ppm -text {PPM RGB (Portable Pixmap)} \
- -variable ed(format) -value ppm
- ttk::radiobutton $f.mpeg -text {MPEG-1 (Movie)} \
- -variable ed(format) -value mpeg
- grid $f.fits -padx 2 -pady 2 -sticky w
- grid $f.gif -padx 2 -pady 2 -sticky w
- grid $f.jpeg -padx 2 -pady 2 -sticky w
- grid $f.tiff -padx 2 -pady 2 -sticky w
- grid $f.png -padx 2 -pady 2 -sticky w
- grid $f.ppm -padx 2 -pady 2 -sticky w
- grid $f.mpeg -padx 2 -pady 2 -sticky w
-
- # Buttons
- set f [ttk::frame $w.buttons]
- ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed(ok) 1} \
- -default active
- ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed(ok) 0}
- pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4
-
- bind $w <Return> {set ed(ok) 1}
-
- # Fini
- ttk::separator $w.sep -orient horizontal
- pack $w.buttons $w.sep -side bottom -fill x
- pack $w.param -side top -fill both -expand true
-
- DialogCenter $w
- DialogWait $w ed(ok)
- DialogDismiss $w
-
- if {$ed(ok)} {
- set saveimage(format) $ed(format)
- set fn {}
-
- switch -- $saveimage(format) {
- fits {
- set fn "$saveimage(base).fits"
- set saveimagefbox(types) \
- [list \
- [list {FITS} {*.fits}] \
- [list {FITS} {*.fit}] \
- [list [::msgcat::mc {All}] {*}] \
- ]
- }
- gif {
- set fn "$saveimage(base).gif"
- set saveimagefbox(types) \
- [list \
- [list {GIF} {*.gif}] \
- [list [::msgcat::mc {All}] {*}] \
- ]
- }
- jpeg {
- set fn "$saveimage(base).jpg"
- set saveimagefbox(types) \
- [list \
- [list {JPEG} {*.jpeg}] \
- [list {JPEG} {*.jpg}] \
- [list [::msgcat::mc {All}] {*}] \
- ]
- }
- tiff {
- set fn "$saveimage(base).tif"
- set saveimagefbox(types) \
- [list \
- [list {TIFF} {*.tiff}] \
- [list {TIFF} {*.tif}] \
- [list [::msgcat::mc {All}] {*}] \
- ]
- }
- png {
- set fn "$saveimage(base).png"
- set saveimagefbox(types) \
- [list \
- [list {PNG} {*.png}] \
- [list [::msgcat::mc {All}] {*}] \
- ]
- }
- ppm {
- set fn "$saveimage(base).ppm"
- set saveimagefbox(types) \
- [list \
- [list {PPM} {*.ppm}] \
- [list [::msgcat::mc {All}] {*}] \
- ]
- }
- mpeg {
- set fn "$saveimage(base).mpg"
- set saveimagefbox(types) \
- [list \
- [list {MPEG} {*.mpeg}] \
- [list {MPEG} {*.mpg}] \
- [list [::msgcat::mc {All}] {*}] \
- ]
- }
- }
- FileLast saveimagefbox $fn
- set fn [SaveFileDialog saveimagefbox]
-
- set saveimage(ok) 1
- if {$fn != {}} {
- set saveimage(base) [file rootname [file tail $fn]]
-
- switch -- $saveimage(format) {
- fits {}
- gif {}
- jpeg {set saveimage(ok) \
- [SaveJPEGParams saveimage(jpeg,quality)]}
- tiff {set saveimage(ok) \
- [SaveTIFFParams saveimage(tiff,compression)]}
- png {}
- ppm {}
- mpeg {set saveimage(ok) \
- [SaveMPEGParams saveimage(mpeg,quality)]}
- }
- }
-
- if {$fn != {} && $saveimage(ok)} {
- SaveImage $fn
- }
- }
-
- set rr $ed(ok)
- unset ed
- return $rr
-}
-
-proc SaveImage {fn} {
- global ds9
- global current
- global saveimage
- global cube
-
- if {$fn == {}} {
- return
- }
-
- # besure we are on top
- raise $ds9(top)
-
- # and no highlite
- $current(frame) highlite off
- # and refresh screen
- RealizeDS9
-
- set msg [msgcat::mc {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen}]
-
- switch [$current(frame) get type] {
- base -
- rgb {
- switch -- $saveimage(format) {
- fits -
- gif -
- jpeg -
- tiff -
- png -
- ppm {
- set depth [$current(frame) get fits depth $cube(axis)]
- if {$ds9(display) == "single" && $depth > 1} {
- set slice [$current(frame) get fits slice $cube(axis)]
- # loop thru cube
- for {set ii 1} {$ii <= $depth} {incr ii} {
- set ff "[file root $fn]_$ii[file extension $fn]"
-
- $current(frame) update fits slice $cube(axis) $ii
-
- if {[SaveImageDoit $ff]} {
- Error $msg
- break
- }
- }
- # reset current slice
- $current(frame) update fits slice $cube(axis) $slice
- } else {
- if {[SaveImageDoit $fn]} {
- Error $msg
- }
- }
- }
- mpeg {
- set depth [$current(frame) get fits depth $cube(axis)]
- set slice [$current(frame) get fits slice $cube(axis)]
-
- # loop thru cube
- set saveimage(mpeg,first) 1
- for {set ii 1} {$ii <= $depth} {incr ii} {
- $current(frame) update fits slice $cube(axis) $ii
- if {[SaveImageDoit $fn]} {
- Error $msg
- break
- }
- set saveimage(mpeg,first) 0
- }
- mpeg close
- # reset current slice
- $current(frame) update fits slice $cube(axis) $slice
- }
- }
- }
- 3d {
- switch -- $saveimage(format) {
- gif -
- jpeg -
- tiff -
- png -
- ppm {
- if {[SaveImageDoit $fn]} {
- Error $msg
- }
- }
- fits -
- mpeg {
- Error [msgcat::mc {Not supported}]
- }
- }
- }
- }
-
- # reset
- switch -- $ds9(display) {
- single -
- blink {}
- tile {$current(frame) highlite on}
- }
- # and refresh screen
- RealizeDS9
-}
-
-proc ProcessSaveImageCmd {varname iname} {
- upvar $varname var
- upvar $iname i
-
- global saveimage
- set saveimage(format) [string tolower [lindex $var $i]]
- incr i
-
- set param [string tolower [lindex $var $i]]
- switch $saveimage(format) {
- fits -
- png -
- ppn {}
- jpeg {
- if {$param != {} && [string is integer $param]} {
- set saveimage(jpeg,quality) $param
- incr i
- }
- }
- tiff {
- switch $param {
- none -
- jpeg -
- packbits -
- deflate {
- set saveimage(tiff,compression) $param
- incr i
- }
- }
- }
- mpeg {
- if {$param != {} && [string is integer $param]} {
- set saveimage(mpeg,quality) $param
- incr i
- }
- }
- }
-
- set fn [lindex $var $i]
- SaveImage $fn
- FileLast saveimagefbox $fn
-}
-
-# SaveFits
-
-proc SaveFitsDialog {} {
- set fn [SaveFileDialog savefitsfbox]
- SaveFits $fn
-}
-
-proc SaveFits {fn} {
- global current
-
- if {$fn != {}} {
- $current(frame) save fits image file "\{$fn\}"
- }
-}
-
-proc ProcessSaveFitsCmd {varname iname} {
- upvar $varname var
- upvar $iname i
-
- # we need to be realized
- RealizeDS9
-
- set fn [lindex $var $i]
- SaveFits $fn
- FileLast savefitsfbox $fn
-}
-
-# SaveMPEG
-
-proc SaveMPEGDialog {} {
- global saveimage
-
- set fn [SaveFileDialog savempegfbox]
- if {$fn != {}} {
- if {[SaveMPEGParams saveimage(mpeg,quality)]} {
- SaveMPEG $fn
- }
- }
-}
-
-proc SaveMPEG {fn} {
- global ds9
- global current
- global saveimage
-
- if {$fn == {}} {
- return
- }
-
- # we need single mode
- if {$ds9(display) != {single}} {
- set modesav $ds9(display)
- set current(display) single
- DisplayMode
- }
-
- # loop thru all active frames
- set first 1
- set framesav $current(frame)
-
- foreach f $ds9(active) {
- set ds9(next) $f
- GotoFrame
-
- RealizeDS9
-
- set r \
- [catch {image create photo -format window -data $ds9(canvas)} ph]
- if {$r != 0} {
- Error [msgcat::mc {An error has occurred while creating image}]
- break
- }
-
- if {$first} {
- set w [image width $ph]
- set h [image height $ph]
- mpeg create "$fn" $w $h 25 30 $saveimage(mpeg,quality)
- set first 0
- }
- mpeg add $ph
-
- image delete $ph
- }
- mpeg close
-
- if {[info exists modesav]} {
- set current9(display,user) $modesav
- DisplayMode
- }
-
- set ds9(next) $framesav
- GotoFrame
-}
-
-proc ProcessSaveMPEGCmd {varname iname} {
- upvar $varname var
- upvar $iname i
-
- # we need to be realized
- RealizeDS9
-
- set fn [lindex $var $i]
- SaveMPEG $fn
- FileLast savempegfbox $fn
-}
-
-# Support
-
-proc SaveImageDoit {fn} {
- global ds9
- global saveimage
- global current
-
- set rr [catch {image create photo -format window -data $ds9(canvas)} ph]
- if {$rr != 0} {
- return $rr
- }
-
- switch -- $saveimage(format) {
- fits {
- $current(frame) save fits resample file "\{$fn\}"
- }
- gif {
- $ph write $fn -format $saveimage(format)]
- }
- jpeg {
- $ph write $fn -format \
- [list $saveimage(format) -quality $saveimage(jpeg,quality)]
- }
- tiff {
- $ph write $fn -format \
- [list $saveimage(format) \
- -compression $saveimage(tiff,compression)]
- }
- png {$ph write $fn -format $saveimage(format)}
- ppm {$ph write $fn -format $saveimage(format)}
- mpeg {
- if {$saveimage(mpeg,first)} {
- set w [image width $ph]
- set h [image height $ph]
- mpeg create $fn $w $h 25 30 $saveimage(mpeg,quality)
- }
- mpeg add $ph
- }
- }
-
- image delete $ph
- return 0
-}
-
-proc SaveJPEGParams {varname} {
- upvar $varname var
- global ed2
-
- set w {.savejpeg}
-
- set ed2(ok) 0
- set ed2(quality) $var
-
- DialogCreate $w {JPEG} ed2(ok)
-
- # Param
- set f [ttk::frame $w.param]
- slider $f.squality 0 100 [msgcat::mc {JPEG Quality Factor}] \
- ed2(quality) {}
-
- grid $f.squality -padx 2 -pady 2 -sticky ew
- grid columnconfigure $f 0 -weight 1
-
- # Buttons
- set f [ttk::frame $w.buttons]
- ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed2(ok) 1} \
- -default active
- ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed2(ok) 0}
- pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4
-
- bind $w <Return> {set ed2(ok) 1}
-
- # Fini
- ttk::separator $w.sep -orient horizontal
- pack $w.buttons $w.sep -side bottom -fill x
- pack $w.param -side top -fill both -expand true
-
- DialogCenter $w
- DialogWait $w ed2(ok)
- DialogDismiss $w
-
- if {$ed2(ok)} {
- set var $ed2(quality)
- }
-
- set rr $ed2(ok)
- unset ed2
- return $rr
-}
-
-proc SaveTIFFParams {varname} {
- upvar $varname var
- global ed2
-
- set w {.savetiff}
-
- set ed2(ok) 0
- set ed2(compression) $var
-
- DialogCreate $w {TIFF} ed2(ok)
-
- # Param
- set f [ttk::frame $w.param]
- ttk::label $f.title -text [msgcat::mc {Compression}]
- ttk::radiobutton $f.none -text [msgcat::mc {None}] \
- -variable ed2(compression) -value none
- ttk::radiobutton $f.jpeg -text {JPEG} \
- -variable ed2(compression) -value jpeg
- ttk::radiobutton $f.packbits -text {Packbits} \
- -variable ed2(compression) -value packbits
- ttk::radiobutton $f.deflate -text {Deflate} \
- -variable ed2(compression) -value deflate
- grid $f.title -padx 2 -pady 2 -sticky w
- grid $f.none -padx 2 -pady 2 -sticky w
- grid $f.jpeg -padx 2 -pady 2 -sticky w
- grid $f.packbits -padx 2 -pady 2 -sticky w
- grid $f.deflate -padx 2 -pady 2 -sticky w
-
- # Buttons
- set f [ttk::frame $w.buttons]
- ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed2(ok) 1} \
- -default active
- ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed2(ok) 0}
- pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4
-
- bind $w <Return> {set ed2(ok) 1}
-
- # Fini
- ttk::separator $w.sep -orient horizontal
- pack $w.buttons $w.sep -side bottom -fill x
- pack $w.param -side top -fill both -expand true
-
- DialogCenter $w
- DialogWait $w ed2(ok)
- DialogDismiss $w
-
- if {$ed2(ok)} {
- set var $ed2(compression)
- }
-
- set rr $ed2(ok)
- unset ed2
- return $rr
-}
-
-proc SaveMPEGParams {varname} {
- upvar $varname var
- global ed2
-
- set w {.savempeg}
-
- set ed2(ok) 0
- set ed2(quality) $var
-
- DialogCreate $w {MPEG} ed2(ok)
-
- # Param
- set f [ttk::frame $w.param]
- slider $f.squality 2 31 [msgcat::mc {MPEG Quality Factor}] \
- ed2(quality) {}
-
- grid $f.squality -padx 2 -pady 2 -sticky ew
- grid columnconfigure $f 0 -weight 1
-
- # Buttons
- set f [ttk::frame $w.buttons]
- ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed2(ok) 1} \
- -default active
- ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed2(ok) 0}
- pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4
-
- bind $w <Return> {set ed2(ok) 1}
-
- # Fini
- ttk::separator $w.sep -orient horizontal
- pack $w.buttons $w.sep -side bottom -fill x
- pack $w.param -side top -fill both -expand true
-
- DialogCenter $w
- DialogWait $w ed2(ok)
- DialogDismiss $w
-
- if {$ed2(ok)} {
- set var $ed2(quality)
- }
-
- set rr $ed2(ok)
- unset ed2
- return $rr
-}
-
diff --git a/src/saveimage.tcl b/src/saveimage.tcl
new file mode 100644
index 0000000..de30d9c
--- /dev/null
+++ b/src/saveimage.tcl
@@ -0,0 +1,375 @@
+# Copyright (C) 1999-2012
+# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+# For conditions of distribution and use, see copyright notice in "copyright"
+
+package provide DS9 1.0
+
+proc SaveImageDef {} {
+ global saveimage
+
+ set saveimage(base) ds9
+ set saveimage(format) jpeg
+ set saveimage(jpeg,quality) 75
+ set saveimage(tiff,compression) none
+
+ global tcl_platform
+
+ set aa [msgcat::mc {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen.}]
+ set bb [msgcat::mc {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}]
+ switch $tcl_platform(os) {
+ Darwin {
+ switch [lindex [split $tcl_platform(osVersion) {.}] 0] {
+ 10 -
+ 11 {set saveimage(error) $bb}
+ 8 -
+ 9 -
+ default {set saveimage(error) $aa}
+ }
+ }
+ default {set saveimage(error) $aa}
+ }
+}
+
+proc SaveImageDialog {} {
+ global saveimage
+ global saveimagefbox
+ global ed
+
+ set w {.saveimage}
+
+ set ed(ok) 0
+ set ed(format) $saveimage(format)
+
+ DialogCreate $w [msgcat::mc {Save Image}] ed(ok)
+
+ # Param
+ set f [ttk::frame $w.param]
+ ttk::label $f.title -text [msgcat::mc {Format}]
+ ttk::radiobutton $f.fits -text {FITS} -variable ed(format) -value fits
+ ttk::radiobutton $f.gif -text {GIF} -variable ed(format) -value gif
+ ttk::radiobutton $f.jpeg -text {JPEG} -variable ed(format) -value jpeg
+ ttk::radiobutton $f.tiff -text {TIFF RGB 24-bit} \
+ -variable ed(format) -value tiff
+ ttk::radiobutton $f.png -text {PNG 24-bit (Portable Network Graphics)} \
+ -variable ed(format) -value png
+ ttk::radiobutton $f.ppm -text {PPM RGB (Portable Pixmap)} \
+ -variable ed(format) -value ppm
+ grid $f.fits -padx 2 -pady 2 -sticky w
+ grid $f.gif -padx 2 -pady 2 -sticky w
+ grid $f.jpeg -padx 2 -pady 2 -sticky w
+ grid $f.tiff -padx 2 -pady 2 -sticky w
+ grid $f.png -padx 2 -pady 2 -sticky w
+ grid $f.ppm -padx 2 -pady 2 -sticky w
+
+ # Buttons
+ set f [ttk::frame $w.buttons]
+ ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed(ok) 1} \
+ -default active
+ ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed(ok) 0}
+ pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4
+
+ bind $w <Return> {set ed(ok) 1}
+
+ # Fini
+ ttk::separator $w.sep -orient horizontal
+ pack $w.buttons $w.sep -side bottom -fill x
+ pack $w.param -side top -fill both -expand true
+
+ DialogCenter $w
+ DialogWait $w ed(ok)
+ DialogDismiss $w
+
+ if {$ed(ok)} {
+ set saveimage(format) $ed(format)
+ set saveimagefbox(types) [FormatToFBox $saveimage(format)]
+ FileLast saveimagefbox "$saveimage(base).$saveimage(format)"
+ set fn [SaveFileDialog saveimagefbox]
+
+ if {$fn != {}} {
+ set saveimage(base) [file rootname [file tail $fn]]
+
+ set ok 1
+ switch -- $saveimage(format) {
+ fits {}
+ gif {}
+ jpeg {set ok [SaveJPEGParams saveimage(jpeg,quality)]}
+ tiff {set ok [SaveTIFFParams saveimage(tiff,compression)]}
+ png {}
+ ppm {}
+ }
+
+ if {$ok} {
+ SaveImage $fn
+ }
+ }
+ }
+
+ set rr $ed(ok)
+ unset ed
+ return $rr
+}
+
+proc SaveImage {fn} {
+ global ds9
+ global current
+ global saveimage
+ global cube
+
+ if {$fn == {} || ![$current(frame) has fits]} {
+ return
+ }
+
+ # besure we are on top
+ raise $ds9(top)
+
+ # and no highlite
+ $current(frame) highlite off
+ # and refresh screen
+ RealizeDS9
+
+ switch -- $saveimage(format) {
+ fits {$current(frame) save fits resample file "\{$fn\}"}
+ default {SavePhoto $fn}
+ }
+
+ # reset
+ switch -- $ds9(display) {
+ single -
+ blink {}
+ tile {$current(frame) highlite on}
+ }
+
+ # and refresh screen
+ RealizeDS9
+}
+
+# Process Cmds
+
+proc ProcessSaveImageCmd {varname iname} {
+ upvar $varname var
+ upvar $iname i
+
+ # we need to be realized
+ ProcessRealizeDS9
+
+ set format {}
+ set param {}
+ set fn [lindex $var $i]
+ if {$fn == {}} {
+ return
+ }
+
+ # backward compatibility
+ switch $fn {
+ fits -
+ gif -
+ tif -
+ tiff -
+ jpg -
+ jpeg -
+ png -
+ ppm {
+ set format $fn
+ set fn {}
+ incr i
+ }
+ }
+
+ # try again
+ if {$fn == {}} {
+ set fn [lindex $var $i]
+ if {$fn == {}} {
+ return
+ }
+
+ if {$fn != {} && ([string is integer $fn] ||
+ $fn == {none} ||
+ $fn == {jpeg} ||
+ $fn == {backbits} ||
+ $fn == {deflate})} {
+ set param $fn
+ set fn {}
+ incr i
+ }
+ }
+
+ # one last time
+ if {$fn == {}} {
+ set fn [lindex $var $i]
+ if {$fn == {}} {
+ return
+ }
+ }
+
+ global saveimage
+ if {$format == {}} {
+ set format [ExtToFormat $fn]
+ }
+ set saveimage(format) $format
+
+ if {$param == {}} {
+ set param [string tolower [lindex $var [expr $i+1]]]
+ switch $saveimage(format) {
+ fits -
+ gif -
+ png -
+ ppm {}
+ jpeg {
+ if {$param != {} && [string is integer $param]} {
+ set saveimage(jpeg,quality) $param
+ incr i
+ }
+ }
+ tiff {
+ switch $param {
+ none -
+ jpeg -
+ packbits -
+ deflate {
+ set saveimage(tiff,compression) $param
+ incr i
+ }
+ }
+ }
+ }
+ }
+
+ SaveImage $fn
+ FileLast saveimagefbox $fn
+}
+
+# Support
+
+proc SavePhoto {fn} {
+ global ds9
+ global saveimage
+ global current
+
+ set rr [catch {image create photo -format window -data $ds9(canvas)} ph]
+ if {$rr != 0} {
+ Error $saveimage(error)
+ return $rr
+ }
+
+ switch -- $saveimage(format) {
+ gif {
+ $ph write $fn -format $saveimage(format)]
+ }
+ jpeg {
+ $ph write $fn -format \
+ [list $saveimage(format) -quality $saveimage(jpeg,quality)]
+ }
+ tiff {
+ $ph write $fn -format \
+ [list $saveimage(format) \
+ -compression $saveimage(tiff,compression)]
+ }
+ png {$ph write $fn -format $saveimage(format)}
+ ppm {$ph write $fn -format $saveimage(format)}
+ }
+
+ image delete $ph
+ return 0
+}
+
+proc SaveJPEGParams {varname} {
+ upvar $varname var
+ global ed2
+
+ set w {.savejpeg}
+
+ set ed2(ok) 0
+ set ed2(quality) $var
+
+ DialogCreate $w {JPEG} ed2(ok)
+
+ # Param
+ set f [ttk::frame $w.param]
+ slider $f.squality 0 100 [msgcat::mc {JPEG Quality Factor}] \
+ ed2(quality) {}
+
+ grid $f.squality -padx 2 -pady 2 -sticky ew
+ grid columnconfigure $f 0 -weight 1
+
+ # Buttons
+ set f [ttk::frame $w.buttons]
+ ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed2(ok) 1} \
+ -default active
+ ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed2(ok) 0}
+ pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4
+
+ bind $w <Return> {set ed2(ok) 1}
+
+ # Fini
+ ttk::separator $w.sep -orient horizontal
+ pack $w.buttons $w.sep -side bottom -fill x
+ pack $w.param -side top -fill both -expand true
+
+ DialogCenter $w
+ DialogWait $w ed2(ok)
+ DialogDismiss $w
+
+ if {$ed2(ok)} {
+ set var $ed2(quality)
+ }
+
+ set rr $ed2(ok)
+ unset ed2
+ return $rr
+}
+
+proc SaveTIFFParams {varname} {
+ upvar $varname var
+ global ed2
+
+ set w {.savetiff}
+
+ set ed2(ok) 0
+ set ed2(compression) $var
+
+ DialogCreate $w {TIFF} ed2(ok)
+
+ # Param
+ set f [ttk::frame $w.param]
+ ttk::label $f.title -text [msgcat::mc {Compression}]
+ ttk::radiobutton $f.none -text [msgcat::mc {None}] \
+ -variable ed2(compression) -value none
+ ttk::radiobutton $f.jpeg -text {JPEG} \
+ -variable ed2(compression) -value jpeg
+ ttk::radiobutton $f.packbits -text {Packbits} \
+ -variable ed2(compression) -value packbits
+ ttk::radiobutton $f.deflate -text {Deflate} \
+ -variable ed2(compression) -value deflate
+ grid $f.title -padx 2 -pady 2 -sticky w
+ grid $f.none -padx 2 -pady 2 -sticky w
+ grid $f.jpeg -padx 2 -pady 2 -sticky w
+ grid $f.packbits -padx 2 -pady 2 -sticky w
+ grid $f.deflate -padx 2 -pady 2 -sticky w
+
+ # Buttons
+ set f [ttk::frame $w.buttons]
+ ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed2(ok) 1} \
+ -default active
+ ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed2(ok) 0}
+ pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4
+
+ bind $w <Return> {set ed2(ok) 1}
+
+ # Fini
+ ttk::separator $w.sep -orient horizontal
+ pack $w.buttons $w.sep -side bottom -fill x
+ pack $w.param -side top -fill both -expand true
+
+ DialogCenter $w
+ DialogWait $w ed2(ok)
+ DialogDismiss $w
+
+ if {$ed2(ok)} {
+ set var $ed2(compression)
+ }
+
+ set rr $ed2(ok)
+ unset ed2
+ return $rr
+}
+
diff --git a/src/savempeg.tcl b/src/savempeg.tcl
new file mode 100644
index 0000000..4c6517b
--- /dev/null
+++ b/src/savempeg.tcl
@@ -0,0 +1,532 @@
+# Copyright (C) 1999-2012
+# Smithsonian Astrophysical Observatory, Cambridge, MA, USA
+# For conditions of distribution and use, see copyright notice in "copyright"
+
+package provide DS9 1.0
+
+proc SaveMPEGDef {} {
+ global isavempeg
+ global savempeg
+
+ global tcl_platform
+
+ set isavempeg(top) .savempegstatus
+ set isavempeg(mb) .savempegstatusmb
+
+ set savempeg(action) slice
+ set savempeg(quality) 2
+ set savempeg(num) 24
+ set savempeg(az,from) 45
+ set savempeg(az,to) -45
+ set savempeg(el,from) 30
+ set savempeg(el,to) 30
+ set savempeg(sl,from) 1
+ set savempeg(sl,to) 10
+ set savempeg(repeat) oscillate
+ set savempeg(repeat,num) 0
+
+ set savempeg(status) 0
+ set savempeg(abort) 0
+
+ set aa [msgcat::mc {An error has occurred while creating the image. Please be sure that the entire image window is visible on the screen.}]
+ set bb [msgcat::mc {An error has occurred while creating the image. Please be sure that the ds9 window is in the upper left corner of the default screen and the entire window is visible.}]
+ switch $tcl_platform(os) {
+ Darwin {
+ switch [lindex [split $tcl_platform(osVersion) {.}] 0] {
+ 10 -
+ 11 {set savempeg(error) $bb}
+ 8 -
+ 9 -
+ default {set savempeg(error) $aa}
+ }
+ }
+ default {set savempeg(error) $aa}
+ }
+}
+
+proc SaveMPEGDialog {} {
+ global savempeg
+ global savempegfbox
+ global ed
+ global current
+
+ set w {.savempeg}
+
+ set ed(ok) 0
+ set ed(action) $savempeg(action)
+
+ DialogCreate $w [msgcat::mc {Save Movie}] ed(ok)
+
+ # Param
+ set f [ttk::frame $w.param]
+ ttk::label $f.title -text [msgcat::mc {Format}]
+ ttk::radiobutton $f.slice -text {Slice Movie} \
+ -variable ed(action) -value slice
+ ttk::radiobutton $f.frame -text {Frames Movie} \
+ -variable ed(action) -value frame
+ ttk::radiobutton $f.3d -text {3D Movie} \
+ -variable ed(action) -value 3d
+
+ grid $f.slice -padx 2 -pady 2 -sticky w
+ grid $f.frame -padx 2 -pady 2 -sticky w
+ grid $f.3d -padx 2 -pady 2 -sticky w
+
+ switch [$current(frame) get type] {
+ base -
+ rgb {$f.3d configure -state disabled}
+ 3d {$f.3d configure -state normal}
+ }
+
+ # Buttons
+ set f [ttk::frame $w.buttons]
+ ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed(ok) 1} \
+ -default active
+ ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed(ok) 0}
+ pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4
+
+ bind $w <Return> {set ed(ok) 1}
+
+ # Fini
+ ttk::separator $w.sep -orient horizontal
+ pack $w.buttons $w.sep -side bottom -fill x
+ pack $w.param -side top -fill both -expand true
+
+ DialogCenter $w
+ DialogWait $w ed(ok)
+ DialogDismiss $w
+
+ if {$ed(ok)} {
+ set savempeg(action) $ed(action)
+ set fn [SaveFileDialog savempegfbox]
+
+ if {$fn != {}} {
+ set ok 1
+ switch $savempeg(action) {
+ slice -
+ frame {}
+ 3d {set ok [SaveMPEG3dDialog]}
+ }
+
+ if {$ok} {
+ SaveMPEG $fn
+ }
+ }
+ }
+
+ set rr $ed(ok)
+ unset ed
+ return $rr
+}
+
+proc SaveMPEG {fn} {
+ global ds9
+ global savempeg
+ global current
+
+ if {$fn == {} || ![$current(frame) has fits]} {
+ return
+ }
+
+ # besure we are on top
+ raise $ds9(top)
+
+ # we need single mode
+ if {$ds9(display) != {single}} {
+ set modesav $ds9(display)
+ set current(display) single
+ DisplayMode
+ }
+
+ switch $savempeg(action) {
+ slice {SaveMPEGSlice $fn}
+ frame {SaveMPEGFrame $fn}
+ 3d {SaveMPEG3d $fn}
+ }
+
+ if {[info exists modesav]} {
+ set current9(display,user) $modesav
+ DisplayMode
+ }
+}
+
+proc SaveMPEGSlice {fn} {
+ global current
+ global savempeg
+ global cube
+
+ set depth [$current(frame) get fits depth $cube(axis)]
+ set slice [$current(frame) get fits slice $cube(axis)]
+
+ if {$cube(axis)==2} {
+ set ss [$current(frame) get crop 3d image]
+ set from [lindex $ss 0]
+ set to [lindex $ss 1]
+ } else {
+ set from 1
+ set to [$current(frame) get fits depth $cube(axis)]
+ }
+
+ # loop thru cube
+ set savempeg(first) 1
+ for {set ii $from} {$ii <= $to} {incr ii} {
+ $current(frame) update fits slice $cube(axis) $ii
+ if {[SaveMPEGPhoto $fn]} {
+ break
+ }
+ }
+ mpeg close
+
+ # reset current slice
+ $current(frame) update fits slice $cube(axis) $slice
+}
+
+proc SaveMPEGFrame {fn} {
+ global ds9
+ global current
+ global savempeg
+
+ # loop thru all active frames
+ set savempeg(first) 1
+ set framesav $current(frame)
+
+ foreach ff $ds9(active) {
+ set ds9(next) $ff
+ GotoFrame
+ if {[SaveMPEGPhoto $fn]} {
+ break
+ }
+ }
+ mpeg close
+
+ set ds9(next) $framesav
+ GotoFrame
+}
+
+proc SaveMPEG3d {fn} {
+ global savempeg
+ global current
+ global cube
+
+ set slice [$current(frame) get fits slice $cube(axis)]
+ set vp [$current(frame) get 3d view]
+
+ set azincr [expr 1.*($savempeg(az,to)-$savempeg(az,from))/$savempeg(num)]
+ set elincr [expr 1.*($savempeg(el,to)-$savempeg(el,from))/$savempeg(num)]
+ set slincr [expr ($savempeg(sl,to)-$savempeg(sl,from))/$savempeg(num)]
+
+ # loop over az/el/slice
+ set savempeg(status) 0
+ set savempeg(abort) 0
+ set savempeg(first) 1
+
+ set az $savempeg(az,from)
+ set el $savempeg(el,from)
+ set sl $savempeg(sl,from)
+
+ for {set rr 0} {$rr<=$savempeg(repeat,num)} {incr rr} {
+ for {set nn 0} {$nn<=$savempeg(num)} {incr nn} {
+ SaveMPEGStatusDialog
+
+ if {$savempeg(abort)} {
+ break
+ }
+ set savempeg(status) [expr 1.*$nn/$savempeg(num)*100]
+ update idletasks
+
+ $current(frame) 3d view $az $el
+ $current(frame) update fits slice $cube(axis) [expr int($sl)]
+ if {[SaveMPEGPhoto $fn]} {
+ break
+ }
+ set az [expr $az+$azincr]
+ set el [expr $el+$elincr]
+ incr sl $slincr
+ }
+ switch $savempeg(repeat) {
+ repeat {
+ set az $savempeg(az,from)
+ set el $savempeg(el,from)
+ set sl $savempeg(sl,from)
+ }
+ oscillate {
+ set azincr [expr -$azincr]
+ set elincr [expr -$elincr]
+ set slincr [expr -$slincr]
+ }
+ }
+ }
+ mpeg close
+
+ SaveMPEGStatusDestroyDialog
+
+ # reset
+ $current(frame) 3d view $vp
+ $current(frame) update fits slice $cube(axis) $slice
+ Update3DDialog
+ UpdateCubeDialog
+}
+
+# Support
+
+proc SaveMPEGPhoto {fn} {
+ global ds9
+ global savempeg
+ global current
+
+ # yes, we need this
+ UpdateDS9
+ RealizeDS9
+
+ set rr [catch {image create photo -format window -data $ds9(canvas)} ph]
+ if {$rr} {
+ Error $savempeg(error)
+ return $rr
+ }
+
+ if {$savempeg(first)} {
+ set w [image width $ph]
+ set h [image height $ph]
+ mpeg create "$fn" $w $h 25 1 $savempeg(quality)
+ set savempeg(first) 0
+ }
+ mpeg add $ph
+
+ image delete $ph
+ return 0
+}
+
+proc SaveMPEG3dDialog {} {
+ global savempeg
+ global ed2
+ global current
+ global cube
+
+ set w {.savempeg3d}
+
+ set ed2(ok) 0
+ set ed2(num) $savempeg(num)
+ set ed2(az,from) $savempeg(az,from)
+ set ed2(az,to) $savempeg(az,to)
+ set ed2(el,from) $savempeg(el,from)
+ set ed2(el,to) $savempeg(el,to)
+ set ed2(sl,from) $savempeg(sl,from)
+
+ if {$cube(axis)==2} {
+ set ss [$current(frame) get crop 3d image]
+ set ed2(sl,from) [lindex $ss 0]
+ set ed2(sl,to) [lindex $ss 1]
+ } else {
+ set ed2(sl,from) 1
+ set ed2(sl,to) [$current(frame) get fits depth $cube(axis)]
+ }
+
+ set ed2(repeat) $savempeg(repeat)
+ set ed2(repeat,num) $savempeg(repeat,num)
+
+ DialogCreate $w [msgcat::mc {Save 3D Movie}] ed2(ok)
+
+ # Param
+ set f [ttk::frame $w.param]
+ ttk::label $f.tnum -text [msgcat::mc {Number}]
+ ttk::entry $f.num -textvariable ed2(num) -width 7
+ ttk::label $f.tframes -text [msgcat::mc {Frames}]
+
+ ttk::label $f.taz -text [msgcat::mc {Azimuth}]
+ ttk::label $f.tazfrom -text [msgcat::mc {From}]
+ ttk::entry $f.azfrom -textvariable ed2(az,from) -width 7
+ ttk::label $f.tazto -text [msgcat::mc {To}]
+ ttk::entry $f.azto -textvariable ed2(az,to) -width 7
+
+ ttk::label $f.tel -text [msgcat::mc {Elevation}]
+ ttk::label $f.telfrom -text [msgcat::mc {From}]
+ ttk::entry $f.elfrom -textvariable ed2(el,from) -width 7
+ ttk::label $f.telto -text [msgcat::mc {To}]
+ ttk::entry $f.elto -textvariable ed2(el,to) -width 7
+
+ ttk::label $f.tsl -text [msgcat::mc {Slice}]
+ ttk::label $f.tslfrom -text [msgcat::mc {From}]
+ ttk::entry $f.slfrom -textvariable ed2(sl,from) -width 7
+ ttk::label $f.tslto -text [msgcat::mc {To}]
+ ttk::entry $f.slto -textvariable ed2(sl,to) -width 7
+
+ ttk::radiobutton $f.repeat -text [msgcat::mc {Repeat}] \
+ -variable ed2(repeat) -value repeat
+ ttk::radiobutton $f.oscillate -text [msgcat::mc {Oscillate}] \
+ -variable ed2(repeat) -value oscillate
+ ttk::entry $f.repeatnum -textvariable ed2(repeat,num) -width 7
+ ttk::label $f.ttimes -text [msgcat::mc {Times}]
+
+ grid $f.tnum x $f.num $f.tframes -padx 2 -pady 2 -sticky w
+ grid $f.taz $f.tazfrom $f.azfrom $f.tazto $f.azto -padx 2 -pady 2 -sticky w
+ grid $f.tel $f.telfrom $f.elfrom $f.telto $f.elto -padx 2 -pady 2 -sticky w
+ grid $f.tsl $f.tslfrom $f.slfrom $f.tslto $f.slto -padx 2 -pady 2 -sticky w
+ grid $f.oscillate x $f.repeatnum $f.ttimes -padx 2 -pady 2 -sticky w
+ grid $f.repeat -padx 2 -pady 2 -sticky w
+
+ # Buttons
+ set f [ttk::frame $w.buttons]
+ ttk::button $f.ok -text [msgcat::mc {OK}] -command {set ed2(ok) 1} \
+ -default active
+ ttk::button $f.cancel -text [msgcat::mc {Cancel}] -command {set ed2(ok) 0}
+ pack $f.ok $f.cancel -side left -expand true -padx 2 -pady 4
+
+ bind $w <Return> {set ed2(ok) 1}
+
+ # Fini
+ ttk::separator $w.sep -orient horizontal
+ pack $w.buttons $w.sep -side bottom -fill x
+ pack $w.param -side top -fill both -expand true
+
+ DialogCenter $w
+ DialogWait $w ed2(ok)
+ DialogDismiss $w
+
+ if {$ed2(ok)} {
+ set savempeg(num) $ed2(num)
+ set savempeg(az,from) $ed2(az,from)
+ set savempeg(az,to) $ed2(az,to)
+ set savempeg(el,from) $ed2(el,from)
+ set savempeg(el,to) $ed2(el,to)
+ set savempeg(sl,from) $ed2(sl,from)
+ set savempeg(sl,to) $ed2(sl,to)
+ set savempeg(repeat) $ed2(repeat)
+ set savempeg(repeat,num) $ed2(repeat,num)
+ }
+
+ set rr $ed2(ok)
+ unset ed2
+ return $rr
+}
+
+proc SaveMPEGStatusDialog {} {
+ global isavempeg
+ global savempeg
+
+ # see if we already have a window visible
+ if [winfo exists $isavempeg(top)] {
+ raise $isavempeg(top)
+ return
+ }
+
+ # create the 3d window
+ set w $isavempeg(top)
+ set mb $isavempeg(mb)
+
+ Toplevel $w $mb 6 [msgcat::mc {Movie}] SaveMPEGStatusDestroyDialog
+ raise $isavempeg(top)
+
+ # Status
+ set f [ttk::frame $w.param]
+ ttk::label $f.tstatus -text [msgcat::mc {Status}]
+ ttk::progressbar $f.status -variable savempeg(status) -length 350
+ grid $f.tstatus $f.status -padx 2 -pady 2 -sticky w
+
+ # Buttons
+ set f [ttk::frame $w.buttons]
+ ttk::button $f.abort -text [msgcat::mc {Abort}] \
+ -command SaveMPEGStatusAbortDialog
+ pack $f.abort -side left -expand true -padx 2 -pady 4
+
+ # Fini
+ ttk::separator $w.sep -orient horizontal
+ pack $w.buttons $w.sep -side bottom -fill x
+ pack $w.param -side top -fill x
+}
+
+proc SaveMPEGStatusDestroyDialog {} {
+ global savempeg
+ global isavempeg
+
+ if {[winfo exists $isavempeg(top)]} {
+ destroy $isavempeg(top)
+ destroy $isavempeg(mb)
+ }
+}
+
+proc SaveMPEGStatusAbortDialog {} {
+ global savempeg
+ set savempeg(abort) 1
+}
+
+# Process Cmds
+
+proc ProcessSaveMPEGCmd {varname iname} {
+ upvar $varname var
+ upvar $iname i
+
+ global savempeg
+
+ # we need to be realized
+ # already implemented
+ # ProcessRealizeDS9
+
+ set item [string tolower [lindex $var $i]]
+ switch -- $item {
+ slice -
+ frame -
+ 3d {
+ set savempeg(action) $item
+ incr i
+ }
+ default {
+ # backward compatibility
+ set savempeg(action) frame
+ }
+ }
+
+ set fn [lindex $var $i]
+
+ set go 1
+ while {$go} {
+ incr i
+ set item [string tolower [lindex $var $i]]
+ switch -- $item {
+ number {
+ incr i
+ set savempeg(num) [lindex $var $i]
+ }
+ azfrom {
+ incr i
+ set savempeg(az,from) [lindex $var $i]
+ }
+ azto {
+ incr i
+ set savempeg(az,to) [lindex $var $i]
+ }
+ elfrom {
+ incr i
+ set savempeg(el,from) [lindex $var $i]
+ }
+ elto {
+ incr i
+ set savempeg(el,to) [lindex $var $i]
+ }
+ slfrom {
+ incr i
+ set savempeg(sl,from) [lindex $var $i]
+ }
+ slto {
+ incr i
+ set savempeg(sl,to) [lindex $var $i]
+ }
+ oscillate {
+ incr i
+ set savempeg(repeat) oscillate
+ set savempeg(repeat,num) [lindex $var $i]
+ }
+ repeat {
+ incr i
+ set savempeg(repeat) repeat
+ set savempeg(repeat,num) [lindex $var $i]
+ }
+ default {
+ incr i -1
+ set go 0
+ }
+ }
+ }
+
+ SaveMPEG $fn
+}
+
+
diff --git a/src/scale.tcl b/src/scale.tcl
index 1cb677e..cac8e8d 100644
--- a/src/scale.tcl
+++ b/src/scale.tcl
@@ -295,6 +295,7 @@ proc ScaleDialog {} {
set f [ttk::frame $w.param]
# Graph
+ set dscale(width) 1
set dscale(hist) [blt::barchart $f.chart \
-width 500 -height 200 \
-title [msgcat::mc {Pixel Distribution}] \
@@ -310,9 +311,10 @@ proc ScaleDialog {} {
set dscale(xdata) histX
set dscale(ydata) histY
blt::vector create $dscale(xdata) $dscale(ydata)
- $dscale(hist) element create bar1 -hide yes \
+ $dscale(hist) element create bar1 \
-xdata $dscale(xdata) -ydata $dscale(ydata) \
- -relief flat -foreground #000001 -background #000001
+ -relief flat -foreground #000001 -background #000001 \
+ -barwidth $dscale(width)
# Cut Lines
$dscale(hist) marker bind min <B1-Motion> \
@@ -396,13 +398,6 @@ proc ScaleMotionDialog {x y varname} {
global dscale
set var [lindex [$dscale(hist) invtransform $x $y] 0]
- if {$dscale(min) < $dscale(minmin)} {
- set dscale(min) $dscale(minmin)
- }
- if {$dscale(max) > $dscale(minmax)} {
- set dscale(max) $dscale(minmax)
- }
-
if {$dscale(min) > $dscale(max)} {
if {$varname == "dscale(min)"} {
set var $dscale(max)
@@ -469,22 +464,16 @@ proc UpdateScaleDialog {} {
set dscale(minmin) [lindex $limits 0]
set dscale(minmax) [lindex $limits 1]
- set dscale(width) \
- [$current(frame) get histogram $dscale(xdata) $dscale(ydata)]
- if {$dscale(width)<=0} {
- set dscale(width) 1
- }
+ $current(frame) get histogram $dscale(xdata) $dscale(ydata)
# we seem to need to do this so that the min/max values are known
blt::vector expr min($dscale(ydata))
blt::vector expr max($dscale(ydata))
- $dscale(hist) element configure bar1 -hide no \
- -barwidth $dscale(width)
+ $dscale(hist) element configure bar1 -hide no
- set dscale(xmin) [blt::vector expr min($dscale(xdata))]
- set dscale(xmax) [blt::vector expr max($dscale(xdata))]
- set stepsize [format "%.4g" [expr ($dscale(xmax)-$dscale(xmin))/4.]]
+ set stepsize [format "%.4g" \
+ [expr ($dscale(minmin)-$dscale(minmax))/4.]]
$dscale(hist) xaxis configure -hide no -stepsize $stepsize
$dscale(hist) yaxis configure -hide no -min 1
@@ -561,21 +550,17 @@ proc ScaleXAxisDialog {} {
switch -- $scale(xaxis) {
full {
$dscale(hist) xaxis configure \
- -min [expr $dscale(xmin)-$dscale(width)] \
- -max [expr $dscale(xmax)+$dscale(width)]
+ -min [expr $dscale(minmin)-$dscale(width)] \
+ -max [expr $dscale(minmax)+$dscale(width)]
}
current {
- set diff [expr $dscale(max)-$dscale(min)]
- set per .25
- set a [expr $dscale(min)-($diff*$per)]
- if {$a <= $dscale(minmin)} {
- set a [expr $dscale(xmin)-$dscale(width)]
- }
- set b [expr $dscale(max)+($diff*$per)]
- if {$b >= $dscale(minmax)} {
- set b [expr $dscale(xmax)+$dscale(width)]
+ if {[expr abs($dscale(max)-$dscale(min)) > 0]} {
+ set diff [expr $dscale(max)-$dscale(min)]
+ set per .10
+ set a [expr $dscale(min)-($diff*$per)]
+ set b [expr $dscale(max)+($diff*$per)]
+ $dscale(hist) xaxis configure -min $a -max $b
}
- $dscale(hist) xaxis configure -min $a -max $b
}
}
}
diff --git a/src/skyview.tcl b/src/skyview.tcl
index 2441d8a..4065f52 100644
--- a/src/skyview.tcl
+++ b/src/skyview.tcl
@@ -58,17 +58,57 @@ proc SkyViewDialog {} {
menu $var(mb).survey
$var(mb) add cascade -label Survey -menu $var(mb).survey
- $var(mb).survey add radiobutton -label {SDSSi} \
+ $var(mb).survey add cascade -label {Optical} \
+ -menu $var(mb).survey.opt
+ $var(mb).survey add cascade -label {Infrared} \
+ -menu $var(mb).survey.ir
+ $var(mb).survey add cascade -label {CMB} \
+ -menu $var(mb).survey.cmb
+
+ set f $var(mb).survey.opt
+ menu $f
+ $f add radiobutton -label {SDSSi} \
-variable ${varname}(survey) -value sdssi
- $var(mb).survey add radiobutton -label {SDSSr} \
+ $f add radiobutton -label {SDSSr} \
-variable ${varname}(survey) -value sdssr
- $var(mb).survey add radiobutton -label {SDSSg} \
+ $f add radiobutton -label {SDSSg} \
-variable ${varname}(survey) -value sdssg
- $var(mb).survey add radiobutton -label {SDSSu} \
+ $f add radiobutton -label {SDSSu} \
-variable ${varname}(survey) -value sdssu
- $var(mb).survey add radiobutton -label {SDSSz} \
+ $f add radiobutton -label {SDSSz} \
-variable ${varname}(survey) -value sdssz
+ set f $var(mb).survey.ir
+ menu $f
+ $f add radiobutton -label {WISE 3.4} \
+ -variable ${varname}(survey) -value wise3.4
+ $f add radiobutton -label {WISE 4.6} \
+ -variable ${varname}(survey) -value wise4.6
+ $f add radiobutton -label {WISE 12} \
+ -variable ${varname}(survey) -value wise12
+ $f add radiobutton -label {WISE 22} \
+ -variable ${varname}(survey) -value wise22
+
+ set f $var(mb).survey.cmb
+ menu $f
+ $f add radiobutton -label {WMAP Ka} \
+ -variable ${varname}(survey) -value wmapka
+ $f add radiobutton -label {WMAP K} \
+ -variable ${varname}(survey) -value wmapk
+ $f add radiobutton -label {WMAP Q} \
+ -variable ${varname}(survey) -value wmapq
+ $f add radiobutton -label {WMAP V} \
+ -variable ${varname}(survey) -value wmapv
+ $f add radiobutton -label {WMAP W} \
+ -variable ${varname}(survey) -value wmapw
+ $f add separator
+ $f add radiobutton -label {COBE DIRBE/AAM} \
+ -variable ${varname}(survey) -value cobeaam
+ $f add radiobutton -label {COBE DIRBE/ZSMA} \
+ -variable ${varname}(survey) -value cobezsma
+ $f add radiobutton -label {COBE DIRBE (Old)} \
+ -variable ${varname}(survey) -value cobe
+
IMGSVRUpdate $varname 1
}
@@ -129,11 +169,22 @@ proc SkyViewExec {varname} {
set rr [expr ($ww+$hh)/2.]
# query
- set var(query) "VCOORD=$xx,$yy&SURVEY=$var(survey)&SFACTR=$rr&RETURN=FITS"
-# set var(query) "VCOORD=$xx,$yy&SURVEY=$var(survey)&SFACTR=$rr"
-# set var(query) "VCOORD=$xx,$yy&SURVEY=$var(survey)&PIXELX=$var(width)&PIXELY=$var(height)"
- set var(url) "http://skys.gsfc.nasa.gov/cgi-bin/images"
-# set var(url) "http://skys.gsfc.nasa.gov/cgi-bin/pskcall"
+ switch $var(survey) {
+ wmapka -
+ wmapk -
+ wmapq -
+ wmapv -
+ wmapw -
+ cobeaam -
+ cobezsma -
+ cobe {
+ set var(query) [http::formatQuery Position $xx,$yy Survey $var(survey) Return FITS]
+ }
+ default {
+ set var(query) [http::formatQuery Position $xx,$yy Survey $var(survey) Size $ww,$hh Return FITS]
+ }
+ }
+ set var(url) "http://skyview.gsfc.nasa.gov/cgi-bin/images"
IMGSVRLoad $varname
}
diff --git a/src/source.tcl b/src/source.tcl
index b15335d..72dd534 100644
--- a/src/source.tcl
+++ b/src/source.tcl
@@ -35,7 +35,6 @@ source $ds9(root)/src/catsym.tcl
source $ds9(root)/src/catvot.tcl
source $ds9(root)/src/centroid.tcl
source $ds9(root)/src/circle.tcl
-source $ds9(root)/src/circle3d.tcl
source $ds9(root)/src/colorbar.tcl
source $ds9(root)/src/comm.tcl
source $ds9(root)/src/command.tcl
@@ -56,6 +55,7 @@ source $ds9(root)/src/epanda.tcl
source $ds9(root)/src/error.tcl
source $ds9(root)/src/eso.tcl
source $ds9(root)/src/examine.tcl
+source $ds9(root)/src/export.tcl
source $ds9(root)/src/external.tcl
source $ds9(root)/src/fits.tcl
source $ds9(root)/src/first.tcl
@@ -70,12 +70,15 @@ source $ds9(root)/src/hvform.tcl
source $ds9(root)/src/hvsup.tcl
source $ds9(root)/src/iis.tcl
source $ds9(root)/src/imexam.tcl
+source $ds9(root)/src/import.tcl
source $ds9(root)/src/imgsvr.tcl
source $ds9(root)/src/info.tcl
source $ds9(root)/src/layout.tcl
source $ds9(root)/src/line.tcl
source $ds9(root)/src/magnifier.tcl
source $ds9(root)/src/marker.tcl
+source $ds9(root)/src/markeranalysisplot2d.tcl
+source $ds9(root)/src/markeranalysisplot3d.tcl
source $ds9(root)/src/markerbase.tcl
source $ds9(root)/src/markerbaseannulus.tcl
source $ds9(root)/src/markerbaseannulusrect.tcl
@@ -83,7 +86,6 @@ source $ds9(root)/src/markerbasecenter.tcl
source $ds9(root)/src/markerbaseline.tcl
source $ds9(root)/src/markerbasepanda.tcl
source $ds9(root)/src/markerbasepandarect.tcl
-source $ds9(root)/src/markerbaserect.tcl
source $ds9(root)/src/markerdialog.tcl
source $ds9(root)/src/mask.tcl
source $ds9(root)/src/manalysis.tcl
@@ -118,7 +120,8 @@ source $ds9(root)/src/rgb.tcl
source $ds9(root)/src/ruler.tcl
source $ds9(root)/src/samp.tcl
source $ds9(root)/src/sao.tcl
-source $ds9(root)/src/saveas.tcl
+source $ds9(root)/src/saveimage.tcl
+source $ds9(root)/src/savempeg.tcl
source $ds9(root)/src/scale.tcl
source $ds9(root)/src/skyview.tcl
source $ds9(root)/src/slider.tcl
diff --git a/src/stdfbox.tcl b/src/stdfbox.tcl
index 9782e36..1b4f35b 100644
--- a/src/stdfbox.tcl
+++ b/src/stdfbox.tcl
@@ -62,18 +62,6 @@ proc InitDialogBox {} {
[list {ARR} {*.arr}] \
]
- global imagefbox
- set imagefbox(file) {}
- set imagefbox(types) [list \
- [list {GIF} {*.gif}] \
- [list {JPEG} {*.jpeg}] \
- [list {JPEG} {*.jpg}] \
- [list {TIFF} {*.tiff}] \
- [list {TIFF} {*.tif}] \
- [list {PNG} {*.png}] \
- [list {PPM} {*.ppm}] \
- ]
-
global pixelfbox
set pixelfbox(file) {ds9.pix}
set pixelfbox(types) [list \
@@ -225,10 +213,17 @@ proc InitDialogBox {} {
[list {HTML} {*.htm}] \
]
- global saveimagefbox
- set saveimagefbox(file) {ds9}
- set saveimagefbox(types) [list \
- ]
+ global wcsfbox
+ set wcsfbox(file) {ds9.wcs}
+ set wcsfbox(types) [list \
+ [list {WCS} {*.wcs}] \
+ ]
+
+ global backupfbox
+ set backupfbox(file) {ds9.bck}
+ set backupfbox(types) [list \
+ [list {BCK} {*.bck}] \
+ ]
global savefitsfbox
set savefitsfbox(file) {ds9.fits}
@@ -245,23 +240,121 @@ proc InitDialogBox {} {
[list {FITS} {*.fz}] \
]
+ global importfbox
+ set importfbox(file) {}
+ set importfbox(types) [list \
+ [list {GIF} {*.gif}] \
+ [list {JPEG} {*.jpeg}] \
+ [list {JPEG} {*.jpg}] \
+ [list {TIFF} {*.tiff}] \
+ [list {TIFF} {*.tif}] \
+ [list {PNG} {*.png}] \
+ [list {PPM} {*.ppm}] \
+ ]
+
+ global exportfbox
+ set exportfbox(file) {ds9}
+ set exportfbox(types) [list \
+ ]
+
+ global saveimagefbox
+ set saveimagefbox(file) {ds9}
+ set saveimagefbox(types) [list \
+ ]
+
global savempegfbox
- set savempegfbox(file) {ds9.mpg}
+ set savempegfbox(file) {ds9.mpeg}
set savempegfbox(types) [list \
[list {MPEG} {*.mpeg}] \
[list {MPEG} {*.mpg}] \
]
- global wcsfbox
- set wcsfbox(file) {ds9.wcs}
- set wcsfbox(types) [list \
- [list {WCS} {*.wcs}] \
- ]
+}
- global backupfbox
- set backupfbox(file) {ds9.bck}
- set backupfbox(types) [list \
- [list {BCK} {*.bck}] \
- ]
+proc ExtToFormat {fn} {
+ switch -- [file extension $fn] {
+ .fits -
+ .fit -
+ .fts -
+ .fitz -
+ .ftz -
+ .fz {return fits}
+ .gif -
+ .giff {return gif}
+ .jpg -
+ .jpeg {return jpeg}
+ .tif -
+ .tiff {return tiff}
+ .png {return png}
+ .ppm {return ppm}
+ .mpg -
+ .mpeg {return mpeg}
+ }
+}
+
+proc FormatToFBox {format} {
+ switch $format {
+ fits {
+ return \
+ [list \
+ [list {FITS} {*.fits}] \
+ [list {FITS} {*.fit}] \
+ [list {FITS} {*.fts}] \
+ [list {FITS} {*.fits.gz}] \
+ [list {FITS} {*.fits.bz2}] \
+ [list {FITS} {*.fits.Z}] \
+ [list {FITS} {*.fits.z}] \
+ [list {FITS} {*.fitz}] \
+ [list {FITS} {*.ftz}] \
+ [list {FITS} {*.fz}] \
+ [list [::msgcat::mc {All}] {*}] \
+ ]
+ }
+ gif {
+ return \
+ [list \
+ [list {GIF} {*.gif}] \
+ [list [::msgcat::mc {All}] {*}] \
+ ]
+ }
+ jpeg {
+ return \
+ [list \
+ [list {JPEG} {*.jpeg}] \
+ [list {JPEG} {*.jpg}] \
+ [list [::msgcat::mc {All}] {*}] \
+ ]
+ }
+ tiff {
+ return \
+ [list \
+ [list {TIFF} {*.tiff}] \
+ [list {TIFF} {*.tif}] \
+ [list [::msgcat::mc {All}] {*}] \
+ ]
+ }
+ png {
+ return \
+ [list \
+ [list {PNG} {*.png}] \
+ [list [::msgcat::mc {All}] {*}] \
+ ]
+ }
+ ppm {
+ return \
+ [list \
+ [list {PPM} {*.ppm}] \
+ [list [::msgcat::mc {All}] {*}] \
+ ]
+ }
+ mpeg {
+ return \
+ [list \
+ [list {MPEG} {*.mpeg}] \
+ [list {MPEG} {*.mpg}] \
+
+ ]
+ }
+ }
}
# used by backup
diff --git a/src/util.tcl b/src/util.tcl
index cdb7d2c..c8b0c69 100644
--- a/src/util.tcl
+++ b/src/util.tcl
@@ -504,6 +504,18 @@ proc FromYesNo {value} {
}
}
+proc ProcessRealizeDS9 {} {
+ global ds9
+ global current
+
+ # this can really slow down scripts so use ds9(last)
+ # to remember last update
+ if {$ds9(last) != $current(frame)} {
+ RealizeDS9
+ set ds9(last) $current(frame)
+ }
+}
+
proc RealizeDS9 {} {
# this has to come first, to realize the canvas
global debug
@@ -907,6 +919,19 @@ proc PrefsResetDefaultFont {} {
set pds9(font,size) [PixelsToPoints [font configure TkDefaultFont -size]]
set pds9(font,weight) [font configure TkDefaultFont -weight]
set pds9(font,slant) [font configure TkDefaultFont -slant]
+
+ FontMenuButtonCmd pds9 font {}
+}
+
+proc PrefsResetDefaultTextFont {} {
+ global pds9
+
+ set pds9(text,font) courier
+ set pds9(text,font,size) [PixelsToPoints [font actual TkFixedFont -size]]
+ set pds9(text,font,weight) [font actual TkFixedFont -weight]
+ set pds9(text,font,slant) [font actual TkFixedFont -slant]
+
+ FontMenuButtonCmd pds9 text,font {}
}
proc PrefsBgColor {} {
@@ -1487,7 +1512,7 @@ proc ProcessSourceCmd {varname iname} {
# we need to be realized
# you never know what someone will try to do
- RealizeDS9
+ ProcessRealizeDS9
set fn [lindex $var $i]
uplevel #0 "source $fn"
diff --git a/src/vector.tcl b/src/vector.tcl
index 7a379d9..2cbc1c7 100644
--- a/src/vector.tcl
+++ b/src/vector.tcl
@@ -33,6 +33,13 @@ proc VectorDialog {varname} {
# base
MarkerBaseDialog $varname
+ # analysis
+ $var(mb) add cascade -label [msgcat::mc {Analysis}] -menu $var(mb).analysis
+ menu $var(mb).analysis
+
+ # plot2d
+ MarkerAnalysisPlot2dDialog $varname
+
# init
VectorDistCB $varname
@@ -147,8 +154,6 @@ proc VectorDistCB {varname {dummy {}}} {
puts stderr "VectorDistCB"
}
- MarkerBaseDistCB $varname
-
set var(dist) [$var(frame) get marker $var(id) vector length \
$var(dcoord) $var(dformat)]
}
diff --git a/src/xpa.tcl b/src/xpa.tcl
index ffc045b..3c78ddf 100644
--- a/src/xpa.tcl
+++ b/src/xpa.tcl
@@ -171,6 +171,11 @@ proc CreateXPA {} {
XPASendSTSCI {} {} \
XPARcvdSTSCI {} "fillbuf=false"
+ xpacmdadd $xpa export \
+ {} \
+ {} {} {} \
+ XPARcvdExport {} "fillbuf=false"
+
xpacmdadd $xpa exit \
{} \
{} {} {} \
@@ -226,6 +231,16 @@ proc CreateXPA {} {
XPASendImexam {} {} \
{} {} {}
+ xpacmdadd $xpa image \
+ {} \
+ {} {} {} \
+ XPARcvdImport {} "fillbuf=false"
+
+ xpacmdadd $xpa import \
+ {} \
+ {} {} {} \
+ XPARcvdImport {} "fillbuf=false"
+
xpacmdadd $xpa lock \
{} \
XPASendLock {} {} \
@@ -369,7 +384,7 @@ proc CreateXPA {} {
xpacmdadd $xpa savefits \
{} \
{} {} {} \
- XPARcvdSaveFits {} "fillbuf=false"
+ XPARcvdExport {} "fillbuf=false"
xpacmdadd $xpa savempeg \
{} \
@@ -758,6 +773,13 @@ proc XPARcvdSTSCI {xpa cdata param buf len} {
XPACatchError $xpa
}
+proc XPARcvdExport {xpa cdata param buf len} {
+ XPADebug "XPARcvdExport" $param
+ InitError xpa
+ catch {set i 0; ProcessExportCmd param i}
+ XPACatchError $xpa
+}
+
proc XPARcvdExit {xpa cdata param buf len} {
XPADebug "XPARcvdExit" $param
InitError xpa
@@ -765,6 +787,7 @@ proc XPARcvdExit {xpa cdata param buf len} {
XPACatchError $xpa
}
+
proc XPASendFile {xpa cdata param} {
InitError xpa
catch {ProcessSendFileCmd xpasetbuf $xpa $param}
@@ -882,6 +905,13 @@ proc XPASendImexam {xpa cdata param} {
XPACatchError $xpa
}
+proc XPARcvdImport {xpa cdata param buf len} {
+ XPADebug "XPARcvdImport" $param
+ InitError xpa
+ catch {set i 0; ProcessImportCmd param i}
+ XPACatchError $xpa
+}
+
proc XPASendLock {xpa cdata param} {
InitError xpa
catch {ProcessSendLockCmd xpasetbuf $xpa $param}
@@ -1191,13 +1221,6 @@ proc XPARcvdSaveImage {xpa cdata param buf len} {
XPACatchError $xpa
}
-proc XPARcvdSaveFits {xpa cdata param buf len} {
- XPADebug "XPARcvdSaveFits" $param
- InitError xpa
- catch {set i 0; ProcessSaveFitsCmd param i}
- XPACatchError $xpa
-}
-
proc XPARcvdSaveMPEG {xpa cdata param buf len} {
XPADebug "XPARcvdSaveMPEG" $param
InitError xpa
diff --git a/tests/all.sh b/tests/all.sh
index 369460e..8c98d24 100755
--- a/tests/all.sh
+++ b/tests/all.sh
@@ -5,6 +5,7 @@ rice.sh
hcompress.sh
gzip.sh
plio.sh
+import.sh
#shared.sh
xpa.sh
command.sh
diff --git a/tests/backup.sh b/tests/backup.sh
index ef5ffbc..5388d5c 100755
--- a/tests/backup.sh
+++ b/tests/backup.sh
@@ -19,905 +19,4 @@ if [ "$1" = "old" -o -z "$1" ]; then
done
fi
-if [ `xpaaccess ds9` = no ]; then
- ds9&
-
- i=1
- while [ "$i" -le 30 ]
- do
- sleep 2
- if [ `xpaaccess ds9` = yes ]; then
- break
- fi
-
- i=`expr $i + 1`
- done
-fi
-
-bb9 () {
- if [ `xpaaccess bb9` = no ]; then
- ds9 -title bb9&
-
- i=1
- while [ "$i" -le 30 ]
- do
- sleep 2
- if [ `xpaaccess bb9` = yes ]; then
- break
- fi
-
- i=`expr $i + 1`
- done
- fi
-}
-
-testit () {
- echo $1
-# rm -rf $TEMP/foo.bck.dir
- xpaset -p ds9 backup $TEMP/foo.bck
- xpaset -p bb9 restore $TEMP/foo.bck
- sleep .5
-# xpaset -p bb9 frame delete all
-}
-
-bb9
-
-# load default image
-rm -rf $TEMP/foo.bck*
-xpaset -p ds9 scale zscale
-xpaset -p ds9 file img16.fits
-
-if [ "$1" = "2mass" -o -z "$1" ]; then
-tt="2mass"
-xpaset -p ds9 2mass survey h
-testit $tt
-xpaset -p ds9 2mass size 30 30 arcsec
-testit $tt
-xpaset -p ds9 2mass save no
-testit $tt
-xpaset -p ds9 2mass frame new
-testit $tt
-xpaset -p ds9 2mass update frame
-testit $tt
-xpaset -p ds9 2mass m1
-testit $tt
-xpaset -p ds9 2mass name m51
-testit $tt
-xpaset -p ds9 2mass name {}
-testit $tt
-xpaset -p ds9 2mass coord 00:42:44.404 +41:16:08.78 sexagesimal
-testit $tt
-xpaset -p ds9 2mass update frame
-testit $tt
-xpaset -p ds9 mode crosshair
-testit $tt
-xpaset -p ds9 2mass update crosshair
-testit $tt
-xpaset -p ds9 mode pointer
-xpaset -p ds9 frame delete
-xpaset -p ds9 frame delete
-xpaset -p ds9 frame delete
-xpaset -p ds9 frame delete
-xpaset -p ds9 frame delete
-xpaset -p ds9 frame delete
-xpaset -p ds9 single
-testit $tt
-fi
-
-if [ "$1" = "3d" -o -z "$1" ]; then
-tt="3d"
-xpaset -p ds9 3d
-xpaset -p ds9 3d viewpoint 45 45
-xpaset -p ds9 3d method aip
-testit $tt
-xpaset -p ds9 frame delete
-testit $tt
-fi
-
-if [ "$1" = "align" -o -z "$1" ]; then
-tt="align"
-xpaset -p ds9 align
-testit $tt
-xpaset -p ds9 frame reset
-testit $tt
-fi
-
-if [ "$1" = "array" -o -z "$1" ]; then
-tt="array"
-cat array.arr | xpaset ds9 array new 'array.arr[dim=512,bitpix=-32,arch=bigendian]'
-testit $tt
-xpaset -p ds9 frame clear
-cat array.arr | xpaset ds9 array 'array.arr[dim=512,bitpix=-32,arch=bigendian]'
-testit $tt
-xpaset -p ds9 frame delete
-testit $tt
-fi
-
-if [ "$1" = "bin" -o -z "$1" ]; then
-tt="bin"
-xpaset -p ds9 file new table.fits
-xpaset -p ds9 single
-testit $tt
-xpaset -p ds9 bin factor 4
-testit $tt
-xpaset -p ds9 bin factor 8 8
-testit $tt
-xpaset -p ds9 scale log
-testit $tt
-xpaset -p ds9 scale minmax
-testit $tt
-xpaset -p ds9 bin buffersize 1024
-testit $tt
-xpaset -p ds9 bin filter 'circle(4096,4096,200)'
-testit $tt
-# xpaset -p bb9 exit
-# bb9
-xpaset -p ds9 bin filter ''
-testit $tt
-xpaset -p ds9 bin cols rawx rawy
-testit $tt
-xpaset -p ds9 bin about center
-testit $tt
-xpaset -p ds9 bin colsz x y pha
-testit $tt
-xpaset -p ds9 bin depth 10
-testit $tt
-xpaset -p ds9 bin about 4096 4096
-testit $tt
-xpaset -p ds9 bin depth 1
-testit $tt
-xpaset -p ds9 bin function sum
-testit $tt
-xpaset -p ds9 bin to fit
-testit $tt
-xpaset -p ds9 frame delete
-testit $tt
-fi
-
-if [ "$1" = "catalog" -o -z "$1" ]; then
-tt="catalog"
-xpaset -p ds9 catalog cds 2mass
-testit $tt
-
-xpaset -p ds9 catalog clear
-xpaset -p ds9 catalog close
-xpaset -p ds9 catalog cds "I/284"
-testit $tt
-
-xpaset -p ds9 catalog clear
-xpaset -p ds9 catalog close
-xpaset -p ds9 catalog load sb ds9.cat
-testit $tt
-
-xpaset -p ds9 catalog clear
-xpaset -p ds9 catalog close
-xpaset -p ds9 catalog cds 2mass
-xpaset -p ds9 raise
-testit $tt
-xpaset -p ds9 catalog symbol condition "\$Jmag>15"
-testit $tt
-xpaset -p ds9 catalog symbol shape "{boxcircle point}"
-testit $tt
-xpaset -p ds9 catalog symbol color red
-testit $tt
-xpaset -p ds9 catalog symbol condition "{}"
-testit $tt
-xpaset -p ds9 catalog symbol color green
-testit $tt
-xpaset -p ds9 catalog symbol add
-testit $tt
-xpaset -p ds9 catalog symbol remove
-testit $tt
-xpaset -p ds9 catalog symbol load ds9.sym
-testit $tt
-xpaset -p ds9 catalog symbol save foo.sym
-testit $tt
-xpaset -p ds9 catalog name m51
-testit $tt
-xpaset -p ds9 catalog coordinate 202.48 47.21 fk5
-testit $tt
-xpaset -p ds9 catalog size 22 22 arcmin
-testit $tt
-xpaset -p ds9 catalog retrieve
-testit $tt
-xpaset -p ds9 catalog save foo.cat
-testit $tt
-xpaset -p ds9 catalog filter "\$Jmag>15"
-testit $tt
-xpaset -p ds9 catalog filter load ds9.flt
-testit $tt
-xpaset -p ds9 catalog retrieve
-testit $tt
-xpaset -p ds9 catalog cancel
-xpaset -p ds9 catalog server sao
-xpaset -p ds9 catalog sort "Jmag" incr
-testit $tt
-xpaset -p ds9 catalog maxrows 3000
-testit $tt
-xpaset -p ds9 catalog allcols
-testit $tt
-xpaset -p ds9 catalog allrows
-testit $tt
-xpaset -p ds9 catalog ra "RAJ2000"
-testit $tt
-xpaset -p ds9 catalog dec "DEJ2000"
-testit $tt
-xpaset -p ds9 catalog hide
-testit $tt
-xpaset -p ds9 catalog show
-testit $tt
-xpaset -p ds9 catalog panto no
-testit $tt
-xpaset -p ds9 catalog clear
-xpaset -p ds9 catalog close
-rm -f foo.cat
-testit $tt
-fi
-
-if [ "$1" = "contour" -o -z "$1" ]; then
-tt="contour"
-xpaset -p ds9 contour yes
-testit $tt
-
-xpaset -p ds9 contour clear
-xpaset -p ds9 contour yes
-testit $tt
-
-xpaset -p ds9 contour load ds9.con wcs fk5 red 2
-testit $tt
-
-xpaset -p ds9 contour save foo.con wcs fk5
-xpaset -p ds9 contour clear
-xpaset -p ds9 contour yes
-testit $tt
-
-xpaset -p ds9 contour convert
-testit $tt
-xpaset -p ds9 regions delete all
-testit $tt
-xpaset -p ds9 contour loadlevels ds9.lev
-testit $tt
-xpaset -p ds9 contour savelevels foo.lev
-
-xpaset -p ds9 contour clear
-xpaset -p ds9 contour yes
-testit $tt
-xpaset -p ds9 contour copy
-xpaset -p ds9 contour paste wcs fk5 red 2
-testit $tt
-
-xpaset -p ds9 contour clear
-xpaset -p ds9 contour yes
-testit $tt
-xpaset -p ds9 contour color yellow
-testit $tt
-xpaset -p ds9 contour width 2
-testit $tt
-xpaset -p ds9 contour smooth 5
-testit $tt
-xpaset -p ds9 contour method block
-testit $tt
-xpaset -p ds9 contour nlevels 10
-testit $tt
-xpaset -p ds9 contour width 2
-testit $tt
-xpaset -p ds9 contour scale sqrt
-testit $tt
-xpaset -p ds9 contour log exp 1000
-testit $tt
-xpaset -p ds9 contour mode zscale
-testit $tt
-xpaset -p ds9 contour limits 1 100
-testit $tt
-xpaset -p ds9 contour levels "{1 10 100 1000}"
-testit $tt
-
-xpaset -p ds9 contour clear
-rm -f foo.con foo.lev
-testit $tt
-fi
-
-if [ "$1" = "cmap" -o -z "$1" ]; then
-tt="cmap"
-xpaset -p ds9 cmap Heat
-testit $tt
-xpaset -p ds9 cmap file ds9.sao
-testit $tt
-xpaset -p ds9 cmap invert yes
-testit $tt
-xpaset -p ds9 cmap value 5 .2
-testit $tt
-xpaset -p ds9 cmap Grey
-testit $tt
-fi
-
-if [ "$1" = "colorbar" -o -z "$1" ]; then
-tt="colorbar"
-xpaset -p ds9 colorbar yes
-testit $tt
-xpaset -p ds9 colorbar vertical
-testit $tt
-xpaset -p ds9 colorbar horizontal
-testit $tt
-xpaset -p ds9 colorbar numerics no
-testit $tt
-xpaset -p ds9 colorbar numerics yes
-testit $tt
-xpaset -p ds9 colorbar space value
-testit $tt
-xpaset -p ds9 colorbar space distance
-testit $tt
-xpaset -p ds9 colorbar font times
-testit $tt
-xpaset -p ds9 colorbar fontsize 30
-testit $tt
-xpaset -p ds9 colorbar fontstyle bold
-testit $tt
-xpaset -p ds9 colorbar font helvetica
-testit $tt
-xpaset -p ds9 colorbar fontsize 10
-testit $tt
-xpaset -p ds9 colorbar fontstyle normal
-testit $tt
-xpaset -p ds9 colorbar size 30
-testit $tt
-xpaset -p ds9 colorbar ticks 9
-testit $tt
-xpaset -p ds9 colorbar size 20
-testit $tt
-xpaset -p ds9 colorbar ticks 11
-testit $tt
-fi
-
-if [ "$1" = "crosshair" -o -z "$1" ]; then
-tt="crosshair"
-xpaset -p ds9 mode crosshair
-testit $tt
-xpaset -p ds9 crosshair 13:29:55.287 +47:11:37.73 wcs fk5
-testit $tt
-xpaset -p ds9 mode pointer
-testit $tt
-fi
-
-if [ "$1" = "datacube" -o -z "$1" ]; then
-tt="datacube"
-xpaset -p ds9 file new hst.fits
-testit $tt
-xpaset -p ds9 datacube 2
-testit $tt
-xpaset -p ds9 datacube interval .5
-testit $tt
-xpaset -p ds9 datacube axis 2
-testit $tt
-xpaset -p ds9 frame delete
-testit $tt
-fi
-
-if [ "$1" = "fits" -o -z "$1" ]; then
-tt="fits"
-
-cat img16.fits | xpaset ds9 fits new
-testit $tt
-xpaset -p ds9 frame delete
-
-cat table.fits | xpaset ds9 fits
-testit $tt
-fi
-
-if [ "$1" = "frame" -o -z "$1" ]; then
-tt="frame"
-xpaset -p ds9 frame new
-testit $tt
-xpaset -p ds9 frame delete
-testit $tt
-xpaset -p ds9 frame new rgb
-testit $tt
-xpaset -p ds9 frame delete
-testit $tt
-xpaset -p ds9 frame new 3d
-testit $tt
-xpaset -p ds9 frame delete
-testit $tt
-xpaset -p ds9 file img16.fits
-testit $tt
-fi
-
-if [ "$1" = "grid" -o -z "$1" ]; then
-tt="grid"
-xpaset -p ds9 grid yes
-testit $tt
-
-xpaset -p ds9 grid type analysis
-xpaset -p ds9 grid system wcs
-xpaset -p ds9 grid sky fk5
-xpaset -p ds9 grid skyformat degrees
-testit $tt
-
-xpaset -p ds9 grid grid yes
-xpaset -p ds9 grid grid color red
-xpaset -p ds9 grid grid width 2
-xpaset -p ds9 grid grid style 1
-xpaset -p ds9 grid grid gap1 .01
-xpaset -p ds9 grid grid gap2 .01
-testit $tt
-
-xpaset -p ds9 grid axes yes
-xpaset -p ds9 grid axes color red
-xpaset -p ds9 grid axes width 2
-xpaset -p ds9 grid axes style 1
-xpaset -p ds9 grid axes type exterior
-testit $tt
-
-xpaset -p ds9 grid format1 d.2
-xpaset -p ds9 grid format2 d.2
-testit $tt
-
-xpaset -p ds9 grid tick yes
-xpaset -p ds9 grid tick color red
-xpaset -p ds9 grid tick width 2
-xpaset -p ds9 grid tick style 1
-testit $tt
-
-xpaset -p ds9 grid border yes
-xpaset -p ds9 grid border color red
-xpaset -p ds9 grid border width 2
-xpaset -p ds9 grid border style 1
-testit $tt
-
-xpaset -p ds9 grid numlab yes
-xpaset -p ds9 grid numlab font courier
-xpaset -p ds9 grid numlab fontstyle bold
-xpaset -p ds9 grid numlab fontsize 12
-xpaset -p ds9 grid numlab color red
-xpaset -p ds9 grid numlab gap1 10
-xpaset -p ds9 grid numlab gap2 10
-xpaset -p ds9 grid numlab type exterior
-xpaset -p ds9 grid numlab vertical yes
-testit $tt
-
-xpaset -p ds9 grid title yes
-xpaset -p ds9 grid title text {Hello World}
-xpaset -p ds9 grid title def yes
-xpaset -p ds9 grid title gap 10
-xpaset -p ds9 grid title font courier
-xpaset -p ds9 grid title fontstyle bold
-xpaset -p ds9 grid title fontsize 12
-xpaset -p ds9 grid title color red
-testit $tt
-
-xpaset -p ds9 grid textlab yes
-xpaset -p ds9 grid textlab text1 {Hello World}
-xpaset -p ds9 grid textlab def1 yes
-xpaset -p ds9 grid textlab gap1 10
-xpaset -p ds9 grid textlab text2 {Hello World}
-xpaset -p ds9 grid textlab def2 yes
-xpaset -p ds9 grid textlab gap2 10
-xpaset -p ds9 grid textlab font courier
-xpaset -p ds9 grid textlab fontstyle bold
-xpaset -p ds9 grid textlab fontsize 12
-xpaset -p ds9 grid textlab color red
-testit $tt
-
-xpaset -p ds9 grid reset
-xpaset -p ds9 grid no
-testit $tt
-fi
-
-if [ "$1" = "height" -o -z "$1" ]; then
-tt="height"
-xpaset -p ds9 height 443
-testit $tt
-fi
-
-if [ "$1" = "lock" -o -z "$1" ]; then
-tt="lock"
-xpaset -p ds9 lock crosshair wcs
-testit $tt
-xpaset -p ds9 file new img16.fits
-testit $tt
-xpaset -p ds9 tile
-testit $tt
-xpaset -p ds9 mode crosshair
-testit $tt
-xpaset -p ds9 crosshair 13:29:56 +47:11:38 wcs fk5
-testit $tt
-xpaset -p ds9 mode pointer
-testit $tt
-xpaset -p ds9 frame delete
-xpaset -p ds9 single
-testit $tt
-fi
-
-if [ "$1" = "magnifier" -o -z "$1" ]; then
-tt="magnifier"
-xpaset -p ds9 magnifier color red
-testit $tt
-xpaset -p ds9 magnifier zoom 2
-testit $tt
-xpaset -p ds9 magnifier cursor no
-testit $tt
-xpaset -p ds9 magnifier regions no
-testit $tt
-xpaset -p ds9 magnifier color white
-xpaset -p ds9 magnifier zoom 4
-xpaset -p ds9 magnifier cursor yes
-xpaset -p ds9 magnifier regions yes
-testit $tt
-fi
-
-if [ "$1" = "match" -o -z "$1" ]; then
-tt="match"
-xpaset -p ds9 tile
-testit $tt
-xpaset -p ds9 file new img-32.fits
-testit $tt
-xpaset -p ds9 match frames wcs
-testit $tt
-xpaset -p ds9 match colorbars
-testit $tt
-xpaset -p ds9 match scales
-testit $tt
-xpaset -p ds9 match bin
-testit $tt
-xpaset -p ds9 single
-xpaset -p ds9 frame delete
-xpaset -p ds9 match frames image
-testit $tt
-fi
-
-if [ "$1" = "minmax" -o -z "$1" ]; then
-tt="minmax"
-xpaset -p ds9 minmax scan
-xpaset -p ds9 minmax mode scan
-xpaset -p ds9 minmax interval 10
-testit $tt
-fi
-
-if [ "$1" = "orient" -o -z "$1" ]; then
-tt="orient"
-xpaset -p ds9 orient none
-testit $tt
-xpaset -p ds9 orient x
-testit $tt
-xpaset -p ds9 orient y
-testit $tt
-xpaset -p ds9 orient xy
-testit $tt
-xpaset -p ds9 frame reset
-testit $tt
-fi
-
-if [ "$1" = "pan" -o -z "$1" ]; then
-tt="pan"
-xpaset -p ds9 pan 100 100 image
-testit $tt
-xpaset -p ds9 pan to 13:29:55.666 +47:12:16.29 wcs fk5
-testit $tt
-xpaset -p ds9 frame reset
-testit $tt
-fi
-
-if [ "$1" = "prefs" -o -z "$1" ]; then
-tt="prefs"
-xpaset -p ds9 file imgnan.fits
-testit $tt
-xpaset -p ds9 zoom to .5
-testit $tt
-xpaset -p ds9 prefs bgcolor black
-testit $tt
-xpaset -p ds9 prefs nancolor red
-testit $tt
-xpaset -p ds9 file img16.fits
-testit $tt
-xpaset -p ds9 prefs bgcolor white
-testit $tt
-xpaset -p ds9 prefs nancolor white
-testit $tt
-xpaset -p ds9 frame reset
-testit $tt
-fi
-
-if [ "$1" = "regions" -o -z "$1" ]; then
-tt="regions"
-xpaset -p ds9 regions delete all
-echo "physical;circle(957,1027,40) # tag=foo" | xpaset ds9 regions
-testit $tt
-
-echo "image; circle 100 100 20" | xpaset ds9 regions
-testit $tt
-echo "fk5; circle 13:29:55 47:11:50 .5'" | xpaset ds9 regions
-testit $tt
-echo "physical; ellipse 100 100 20 40" | xpaset ds9 regions
-testit $tt
-echo "box 100 100 20 40 25" | xpaset ds9 regions
-testit $tt
-echo "image; line 100 100 200 400" | xpaset ds9 regions
-testit $tt
-echo "physical; ruler 200 300 200 400" | xpaset ds9 regions
-testit $tt
-echo "image; text 100 100 # text={Hello, World}" | xpaset ds9 regions
-testit $tt
-echo "fk4; boxcircle point 13:29:55 47:11:50" | xpaset ds9 regions
-testit $tt
-xpaset -p ds9 regions delete all
-testit $tt
-
-xpaset -p ds9 regions load ds9.physical.reg
-testit $tt
-xpaset -p ds9 regions delete all
-testit $tt
-rm -f foo.reg
-
-xpaset -p ds9 regions command {circle 100 100 20}
-testit $tt
-xpaset -p ds9 regions delete all
-testit $tt
-fi
-
-if [ "$1" = "rgb" -o -z "$1" ]; then
-tt="rgb"
-xpaset -p ds9 rgb
-xpaset -p ds9 rgb green
-xpaset -p ds9 rgb channel blue
-xpaset -p ds9 rgb view blue off
-xpaset -p ds9 rgb system wcs
-xpaset -p ds9 rgb lock bin yes
-xpaset -p ds9 rgb lock scale yes
-xpaset -p ds9 rgb lock colorbar yes
-xpaset -p ds9 rgb lock slice no
-xpaset -p ds9 rgb lock smooth yes
-testit $tt
-xpaset -p ds9 frame delete
-testit $tt
-fi
-
-if [ "$1" = "rotate" -o -z "$1" ]; then
-tt="rotate"
-xpaset -p ds9 rotate to 30
-testit $tt
-xpaset -p ds9 rotate 15
-testit $tt
-xpaset -p ds9 frame reset
-testit $tt
-fi
-
-if [ "$1" = "scale" -o -z "$1" ]; then
-tt="scale"
-xpaset -p ds9 scale minmax
-testit $tt
-xpaset -p ds9 scale linear
-testit $tt
-xpaset -p ds9 scale log
-testit $tt
-xpaset -p ds9 scale pow
-testit $tt
-xpaset -p ds9 scale sqrt
-testit $tt
-xpaset -p ds9 scale squared
-testit $tt
-xpaset -p ds9 scale histequ
-testit $tt
-xpaset -p ds9 scale log exp 1000
-testit $tt
-xpaset -p ds9 scale log exp 10000
-testit $tt
-xpaset -p ds9 scale linear
-testit $tt
-xpaset -p ds9 scale minmax
-testit $tt
-xpaset -p ds9 scale zscale
-testit $tt
-xpaset -p ds9 scale zmax
-testit $tt
-xpaset -p ds9 scale user
-testit $tt
-xpaset -p ds9 scale mode zscale
-testit $tt
-xpaset -p ds9 scale mode zmax
-testit $tt
-xpaset -p ds9 scale mode 95
-testit $tt
-xpaset -p ds9 scale mode minmax
-testit $tt
-xpaset -p ds9 scale limits 0 100
-testit $tt
-xpaset -p ds9 scale mode minmax
-testit $tt
-xpaset -p ds9 scale linear
-testit $tt
-xpaset -p ds9 scale zscale
-testit $tt
-xpaset -p ds9 scale datasec yes
-testit $tt
-fi
-
-if [ "$1" = "single" -o -z "$1" ]; then
-tt="single"
-xpaset -p ds9 file new hst.fits
-xpaset -p ds9 file new img16.fits
-testit $tt
-xpaset -p ds9 tile
-testit $tt
-xpaset -p ds9 tile yes
-testit $tt
-xpaset -p ds9 tile row
-testit $tt
-xpaset -p ds9 tile column
-testit $tt
-xpaset -p ds9 tile grid
-testit $tt
-xpaset -p ds9 single
-xpaset -p ds9 frame delete
-xpaset -p ds9 frame delete
-testit $tt
-fi
-
-if [ "$1" = "smooth" -o -z "$1" ]; then
-tt="smooth"
-xpaset -p ds9 smooth yes
-testit $tt
-xpaset -p ds9 smooth function tophat
-testit $tt
-xpaset -p ds9 smooth radius 5
-testit $tt
-xpaset -p ds9 smooth no
-testit $tt
-fi
-
-if [ "$1" = "view" -o -z "$1" ]; then
-tt="view"
-xpaset -p ds9 view layout vertical
-testit $tt
-xpaset -p ds9 view layout horizontal
-testit $tt
-xpaset -p ds9 view info no
-testit $tt
-xpaset -p ds9 view info yes
-testit $tt
-xpaset -p ds9 view panner no
-testit $tt
-xpaset -p ds9 view panner yes
-testit $tt
-xpaset -p ds9 view magnifier no
-testit $tt
-xpaset -p ds9 view magnifier yes
-testit $tt
-xpaset -p ds9 view buttons no
-testit $tt
-xpaset -p ds9 view buttons yes
-testit $tt
-xpaset -p ds9 view colorbar no
-testit $tt
-xpaset -p ds9 view colorbar yes
-testit $tt
-xpaset -p ds9 view graph horizontal yes
-testit $tt
-xpaset -p ds9 view graph horizontal no
-testit $tt
-xpaset -p ds9 view graph vertical yes
-testit $tt
-xpaset -p ds9 view graph vertical no
-testit $tt
-xpaset -p ds9 view filename no
-testit $tt
-xpaset -p ds9 view filename yes
-testit $tt
-xpaset -p ds9 view object no
-testit $tt
-xpaset -p ds9 view object yes
-testit $tt
-xpaset -p ds9 view minmax yes
-testit $tt
-xpaset -p ds9 view minmax no
-testit $tt
-xpaset -p ds9 view lowhigh yes
-testit $tt
-xpaset -p ds9 view lowhigh no
-testit $tt
-xpaset -p ds9 view frame no
-testit $tt
-xpaset -p ds9 view frame yes
-testit $tt
-xpaset -p ds9 view wcs no
-testit $tt
-xpaset -p ds9 view wcs yes
-testit $tt
-xpaset -p ds9 view wcsa yes
-testit $tt
-xpaset -p ds9 view wcsa no
-testit $tt
-xpaset -p ds9 view detector yes
-testit $tt
-xpaset -p ds9 view detector no
-testit $tt
-xpaset -p ds9 view amplifier yes
-testit $tt
-xpaset -p ds9 view amplifier no
-testit $tt
-xpaset -p ds9 view physical no
-testit $tt
-xpaset -p ds9 view physical yes
-testit $tt
-xpaset -p ds9 view image no
-testit $tt
-xpaset -p ds9 view image yes
-testit $tt
-
-xpaset -p ds9 frame new rgb
-testit $tt
-xpaset -p ds9 view red no
-testit $tt
-xpaset -p ds9 view red yes
-testit $tt
-xpaset -p ds9 view green no
-testit $tt
-xpaset -p ds9 view green yes
-testit $tt
-xpaset -p ds9 view blue no
-testit $tt
-xpaset -p ds9 view blue yes
-testit $tt
-xpaset -p ds9 frame delete
-testit $tt
-fi
-
-if [ "$1" = "wcs" -o -z "$1" ]; then
-tt="wcs"
-xpaset -p ds9 wcs wcs
-testit $tt
-xpaset -p ds9 wcs align yes
-testit $tt
-xpaset -p ds9 wcs system wcs
-testit $tt
-xpaset -p ds9 wcs sky galactic
-testit $tt
-xpaset -p ds9 wcs skyformat sexagesimal
-testit $tt
-xpaset -p ds9 wcs align no
-testit $tt
-xpaset -p ds9 wcs sky fk5
-testit $tt
-xpaset -p ds9 wcs skyformat degrees
-testit $tt
-xpaset -p ds9 wcs skyformat sexagesimal
-testit $tt
-xpaset -p ds9 wcs reset
-testit $tt
-fi
-
-if [ "$1" = "width" -o -z "$1" ]; then
-tt="width"
-xpaset -p ds9 width 600
-testit $tt
-fi
-
-if [ "$1" = "zscale" -o -z "$1" ]; then
-tt="zscale"
-xpaset -p ds9 zscale contrast .25
-testit $tt
-xpaset -p ds9 zscale sample 600
-testit $tt
-xpaset -p ds9 zscale line 120
-testit $tt
-fi
-
-if [ "$1" = "zoom" -o -z "$1" ]; then
-tt="zoom"
-xpaset -p ds9 zoom 2
-testit $tt
-xpaset -p ds9 zoom 2 4
-testit $tt
-xpaset -p ds9 zoom to 4
-testit $tt
-xpaset -p ds9 zoom to 2 4
-testit $tt
-xpaset -p ds9 zoom to fit
-testit $tt
-xpaset -p ds9 frame reset
-testit $tt
-fi
-
-xpaset -p ds9 exit
-xpaset -p bb9 exit
-
echo "DONE"
diff --git a/tests/ciao.fk5.reg b/tests/ciao.fk5.reg
index 8e7ec41..7b43dd3 100644
--- a/tests/ciao.fk5.reg
+++ b/tests/ciao.fk5.reg
@@ -1,26 +1,26 @@
# Region file format: CIAO version 1.0
-circle(13:29:56.891,+47:12:29.65,0.0660667')
--ellipse(13:29:55.941,+47:12:16.17,0.132133',0.0660667',45)
--rotbox(13:29:54.679,+47:12:03.80,0.264267',0.132133',45)
-polygon(13:29:53.543,+47:11:56.12,13:29:52.505,+47:11:56.56,13:29:52.462,+47:11:45.99,13:29:53.499,+47:11:45.55)
-annulus(13:29:58.365,+47:12:13.31,0.0330333',0.0660667')
-annulus(13:29:58.365,+47:12:13.31,0.0660667',0.0991')
-point(13:29:59.689,+47:12:00.68)
-point(13:29:58.442,+47:11:48.45)
-point(13:29:57.256,+47:11:37.88)
-point(13:30:00.120,+47:11:51.52)
-point(13:29:59.018,+47:11:41.47)
-point(13:29:57.955,+47:11:30.70)
-point(13:29:59.674,+47:11:33.61)
-pie(13:29:55.839,+47:11:24.59,0',0.04955',0,90)
-pie(13:29:55.839,+47:11:24.59,0',0.04955',90,180)
-pie(13:29:55.839,+47:11:24.59,0',0.04955',180,270)
-pie(13:29:55.839,+47:11:24.59,0.04955',0.0991',0,90)
-pie(13:29:55.839,+47:11:24.59,0.04955',0.0991',90,180)
-pie(13:29:55.839,+47:11:24.59,0.04955',0.0991',180,270)
-pie(13:29:57.008,+47:11:11.05,0',0.04955',51.5819,90)
-pie(13:29:57.008,+47:11:11.05,0',0.04955',90,180)
-pie(13:29:57.008,+47:11:11.05,0',0.04955',180,270)
-pie(13:29:57.008,+47:11:11.05,0.04955',0.0991',51.5819,90)
-pie(13:29:57.008,+47:11:11.05,0.04955',0.0991',90,180)
-pie(13:29:57.008,+47:11:11.05,0.04955',0.0991',180,270)
+circle(13:29:56.743,+47:12:30.42,0.0660667')
+-ellipse(13:29:55.792,+47:12:16.94,0.132133',0.0660667',45)
+-rotbox(13:29:54.530,+47:12:04.57,0.264267',0.132133',45)
+polygon(13:29:53.394,+47:11:56.88,13:29:52.357,+47:11:57.32,13:29:52.314,+47:11:46.75,13:29:53.351,+47:11:46.31)
+annulus(13:29:58.217,+47:12:14.07,0.0330333',0.0660667')
+annulus(13:29:58.217,+47:12:14.07,0.0660667',0.0991')
+point(13:29:59.541,+47:12:01.44)
+point(13:29:58.293,+47:11:49.21)
+point(13:29:57.107,+47:11:38.64)
+point(13:29:59.971,+47:11:52.28)
+point(13:29:58.870,+47:11:42.23)
+point(13:29:57.807,+47:11:31.47)
+point(13:29:59.526,+47:11:34.38)
+pie(13:29:55.690,+47:11:25.36,0',0.04955',0,90)
+pie(13:29:55.690,+47:11:25.36,0',0.04955',90,180)
+pie(13:29:55.690,+47:11:25.36,0',0.04955',180,270)
+pie(13:29:55.690,+47:11:25.36,0.04955',0.0991',0,90)
+pie(13:29:55.690,+47:11:25.36,0.04955',0.0991',90,180)
+pie(13:29:55.690,+47:11:25.36,0.04955',0.0991',180,270)
+pie(13:29:56.859,+47:11:11.81,0',0.04955',51.5819,90)
+pie(13:29:56.859,+47:11:11.81,0',0.04955',90,180)
+pie(13:29:56.859,+47:11:11.81,0',0.04955',180,270)
+pie(13:29:56.859,+47:11:11.81,0.04955',0.0991',51.5819,90)
+pie(13:29:56.859,+47:11:11.81,0.04955',0.0991',90,180)
+pie(13:29:56.859,+47:11:11.81,0.04955',0.0991',180,270)
diff --git a/tests/ciao.physical.reg b/tests/ciao.physical.reg
index 4576c89..89d4e57 100644
--- a/tests/ciao.physical.reg
+++ b/tests/ciao.physical.reg
@@ -1,26 +1,26 @@
# Region file format: CIAO version 1.0
-circle(325,1075,40)
--ellipse(489,1041,80,40,45)
--rotbox(669,1037,160,80,45)
-polygon(807.49446,1059,883,1134.5055,958.50554,1059,883,983.49446)
-annulus(325,851,20,40)
-annulus(325,851,40,60)
-point(311,665)
-point(489,661)
-point(651,665)
-point(341,567)
-point(493,569)
-point(647,563)
-point(497,465)
-pie(849,665,0,30,0,90)
-pie(849,665,0,30,90,180)
-pie(849,665,0,30,180,270)
-pie(849,665,30,60,0,90)
-pie(849,665,30,60,90,180)
-pie(849,665,30,60,180,270)
-pie(853,483,0,30,51.5819,90)
-pie(853,483,0,30,90,180)
-pie(853,483,0,30,180,270)
-pie(853,483,30,60,51.5819,90)
-pie(853,483,30,60,90,180)
-pie(853,483,30,60,180,270)
+circle(331,1091,40)
+-ellipse(495,1057,80,40,45)
+-rotbox(675,1053,160,80,45)
+polygon(813.49446,1075,889,1150.5055,964.50554,1075,889,999.49446)
+annulus(331,867,20,40)
+annulus(331,867,40,60)
+point(317,681)
+point(495,677)
+point(657,681)
+point(347,583)
+point(499,585)
+point(653,579)
+point(503,481)
+pie(855,681,0,30,0,90)
+pie(855,681,0,30,90,180)
+pie(855,681,0,30,180,270)
+pie(855,681,30,60,0,90)
+pie(855,681,30,60,90,180)
+pie(855,681,30,60,180,270)
+pie(859,499,0,30,51.5819,90)
+pie(859,499,0,30,90,180)
+pie(859,499,0,30,180,270)
+pie(859,499,30,60,51.5819,90)
+pie(859,499,30,60,90,180)
+pie(859,499,30,60,180,270)
diff --git a/tests/command.sh b/tests/command.sh
index dff5dcc..874b8da 100755
--- a/tests/command.sh
+++ b/tests/command.sh
@@ -413,6 +413,24 @@ testit "-mode pointer"
doit
fi
+if [ "$1" = "export" -o -z "$1" ]; then
+initit "export"
+testit "-export foo.fits"
+testit "-export foo.gif"
+testit "-export foo.tif"
+testit "-export foo.tif none"
+testit "-export foo.jpg"
+testit "-export foo.jpg 100"
+testit "-export foo.png"
+testit "-export foo.ppm"
+
+# backward compatability
+testit "-savefits foo.fits"
+
+rm -f foo.fits foo.gif foo.tif foo.jpg foo.png foo.ppm
+doit
+fi
+
if [ "$1" = "fifo" -o -z "$1" ]; then
initit "fifo"
testit "-fifo /dev/imt1"
@@ -624,6 +642,17 @@ testit "-iis filename foo.fits 1"
doit
fi
+if [ "$1" = "import" -o -z "$1" ]; then
+initit "import"
+testit "-frame new"
+testit "-image rose.jpg"
+testit "-frame delete"
+testit "-frame new rgb"
+testit "-image rose.tif"
+testit "-frame delete"
+doit
+fi
+
if [ "$1" = "lock" -o -z "$1" ]; then
initit "lock"
testit "-file img16.fits"
@@ -1171,24 +1200,49 @@ testit "-samp send table topcat"
doit
fi
-if [ "$1" = "saveas" -o -z "$1" ]; then
-initit "saveas"
+if [ "$1" = "saveimage" -o -z "$1" ]; then
+initit "saveimage"
+
+testit "-saveimage foo.fits"
+testit "-saveimage foo.gif"
+testit "-saveimage foo.tif"
+testit "-saveimage foo.tif none"
+testit "-saveimage foo.jpg"
+testit "-saveimage foo.jpg 100"
+testit "-saveimage foo.png"
+testit "-saveimage foo.ppm"
+
+# backward compatibility
testit "-saveimage fits foo.fits"
-testit "-saveimage jpeg foo.jpeg"
-testit "-saveimage jpeg 100 foo.jpeg"
+testit "-saveimage jpeg foo.jpg"
+testit "-saveimage jpeg 100 foo.jpg"
testit "-saveimage tiff foo.tif"
testit "-saveimage tiff deflate foo.tif"
testit "-saveimage png foo.png"
testit "-saveimage ppm foo.ppm"
-testit "-saveimage mpeg foo.mpg"
-testit "-saveimage mpeg 31 foo.mpg"
-testit "-savefits foo.fits"
-testit "-savempeg foo.mpg"
+doit
rm -f foo.fits foo.jpeg foo.tif foo.png foo.ppm foo.mpg foo.mpg
+fi
+
+if [ "$1" = "savempeg" -o -z "$1" ]; then
+initit "savempeg"
+testit "-saveimage ppm foo.ppm"
+testit "-savempeg slice foo.mpg"
+testit "-savempeg frame foo.mpg"
+testit "-frame new 3d"
+testit "-savempeg 3d foo.mpg number 1 azfrom 0 azto 0 elfrom 0 elto 0 slfrom 1 slto 1 repeat 1"
+testit "-frame delete"
+
+# backward compatibility
+testit "-savempeg foo.mpg"
+
doit
+rm -f foo.mpg
fi
+testit "-saveimage foo.fits"
+
if [ "$1" = "scale" -o -z "$1" ]; then
initit "scale"
testit "-scale open"
diff --git a/tests/ds9.composite.reg b/tests/ds9.composite.reg
index 08666a5..3830238 100644
--- a/tests/ds9.composite.reg
+++ b/tests/ds9.composite.reg
@@ -38,4 +38,3 @@ bpanda(202.47302,47.183543,317.39831,587.39831,3,7.9280014",3.9640007",11.892002
bpanda(202.47809,47.180126,2.3983109,47.398311,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) || # bpanda=(2.3983109 47.398311 137.39831 227.39831)(7.9280014" 3.9640007" 11.892002" 5.946001")(2.3983109) text={Bpanda 2}
bpanda(202.47809,47.180126,47.398311,137.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) || # bpanda=ignore
bpanda(202.47809,47.180126,137.39831,227.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) || # bpanda=ignore
-# circle3d(202.46965,47.178963,1.9820003") text={Circle3d}
diff --git a/tests/ds9.ecliptic.hms.reg b/tests/ds9.ecliptic.hms.reg
index 24baae2..7c0a51a 100644
--- a/tests/ds9.ecliptic.hms.reg
+++ b/tests/ds9.ecliptic.hms.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
ecliptic
-circle(+175:06:47.329,+50:57:10.157,3.964") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(+175:06:47.329,+50:56:53.559,7.928",3.964",326.717) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(+175:06:42.199,+50:56:36.012,15.856",7.928",326.717) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(+175:06:34.390,+50:56:23.015,+175:06:20.354,+50:56:17.207,+175:06:29.571,+50:56:08.362,+175:06:43.608,+50:56:14.170) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(+175:06:35.595,+50:56:02.262,+175:06:16.061,+50:55:52.669) # line=1 1 color=cyan text={Line}
-# vector(+175:06:22.822,+50:55:44.904,7.928",326.717) vector=1 color=red text={Vector}
-# text(+175:06:23.624,+50:55:33.666) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(+175:07:17.569,+50:56:21.473,+175:06:55.311,+50:56:11.427) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(+175:07:21.832,+50:57:05.650,1.982",3.964",5.946") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(+175:07:17.633,+50:56:48.993,2.973",1.4865",5.946",2.973",326.717) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(+175:07:12.383,+50:56:32.069,7.928",3.964",11.892",5.946",326.717) # font="helvetica 10 bold roman" text={Box Annulus}
-point(+175:07:50.928,+50:57:03.264) # point=circle text={Circle Point}
-point(+175:07:45.855,+50:56:45.911) # point=box color=red width=3 text={Box Point}
-point(+175:07:40.062,+50:56:30.273) # point=diamond text={Diamond Point}
-point(+175:08:05.063,+50:56:58.379) # point=cross color=blue text={Cross Point}
-point(+175:07:59.895,+50:56:43.670) # point=x text={X Point}
-point(+175:07:55.897,+50:56:28.607) # point=arrow color=magenta text={Arrow Point}
-point(+175:08:15.784,+50:56:41.187) # point=boxcircle text={BoxCircle Point}
-# projection(+175:07:14.006,+50:56:00.887,+175:06:47.744,+50:55:45.494,3.964") text={Projection}
-panda(+175:07:33.735,+50:56:11.060,281.717,551.717,3,0",5.946",2) # text={Panda}
-panda(+175:08:01.631,+50:56:07.007,333.299,371.717,1,0",2.973",1) # panda=(333.299 11.7172 101.717 191.717)(0" 2.973" 5.946") text={Panda 2}
-panda(+175:08:01.631,+50:56:07.007,333.299,371.717,1,2.973",5.946",1) # panda=ignore
-panda(+175:08:01.631,+50:56:07.007,11.7172,101.717,1,0",2.973",1) # panda=ignore
-panda(+175:08:01.631,+50:56:07.007,11.7172,101.717,1,2.973",5.946",1) # panda=ignore
-panda(+175:08:01.631,+50:56:07.007,101.717,191.717,1,0",2.973",1) # panda=ignore
-panda(+175:08:01.631,+50:56:07.007,101.717,191.717,1,2.973",5.946",1) # panda=ignore
-# compass(+175:06:59.749,+50:55:38.055,7.928") compass=physical {N} {E} 1 1 text={Compass}
-epanda(+175:07:30.960,+50:55:54.824,281.717,551.717,3,2.973",1.4865",5.946",2.973",1,326.717) # text={Epanda}
-epanda(+175:07:58.173,+50:55:50.658,326.717,371.717,1,2.973",1.4865",5.946",2.973",1,326.717) # epanda=(326.717 11.7172 101.717 191.717)(2.973" 1.4865" 5.946" 2.973")(326.717) text={Epanda 2}
-epanda(+175:07:58.173,+50:55:50.658,11.7172,101.717,1,2.973",1.4865",5.946",2.973",1,326.717) # epanda=ignore
-epanda(+175:07:58.173,+50:55:50.658,101.717,191.717,1,2.973",1.4865",5.946",2.973",1,326.717) # epanda=ignore
-bpanda(+175:07:25.403,+50:55:37.941,281.717,551.717,3,7.928",3.964",11.892",5.946",1,326.717) # text={Bpanda}
-bpanda(+175:07:52.752,+50:55:35.173,326.717,371.717,1,7.928",3.964",11.892",5.946",1,326.717) # bpanda=(326.717 11.7172 101.717 191.717)(7.928" 3.964" 11.892" 5.946")(326.717) text={Bpanda 2}
-bpanda(+175:07:52.752,+50:55:35.173,11.7172,101.717,1,7.928",3.964",11.892",5.946",1,326.717) # bpanda=ignore
-bpanda(+175:07:52.752,+50:55:35.173,101.717,191.717,1,7.928",3.964",11.892",5.946",1,326.717) # bpanda=ignore
-# circle3d(+175:07:30.006,+50:55:19.728,1.982") text={Circle3d}
+circle(+175:06:44.609,+50:57:09.897,3.964") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(+175:06:44.610,+50:56:53.299,7.928",3.964",326.717) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(+175:06:39.479,+50:56:35.752,15.856",7.928",326.717) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(+175:06:31.671,+50:56:22.755,+175:06:17.634,+50:56:16.946,+175:06:26.852,+50:56:08.101,+175:06:40.888,+50:56:13.910) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(+175:06:32.876,+50:56:02.002,+175:06:13.343,+50:55:52.408) # line=1 1 color=cyan text={Line}
+# vector(+175:06:20.104,+50:55:44.643,7.928",326.717) vector=1 color=red text={Vector}
+# text(+175:06:20.905,+50:55:33.406) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(+175:07:14.850,+50:56:21.212,+175:06:52.592,+50:56:11.166) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(+175:07:19.112,+50:57:05.390,1.982",3.964",5.946") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(+175:07:14.913,+50:56:48.733,2.973",1.4865",5.946",2.973",326.717) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(+175:07:09.664,+50:56:31.809,7.928",3.964",11.892",5.946",326.717) # font="helvetica 10 bold roman" text={Box Annulus}
+point(+175:07:48.208,+50:57:03.004) # point=circle text={Circle Point}
+point(+175:07:43.135,+50:56:45.651) # point=box color=red width=3 text={Box Point}
+point(+175:07:37.342,+50:56:30.013) # point=diamond text={Diamond Point}
+point(+175:08:02.343,+50:56:58.119) # point=cross color=blue text={Cross Point}
+point(+175:07:57.176,+50:56:43.411) # point=x text={X Point}
+point(+175:07:53.177,+50:56:28.347) # point=arrow color=magenta text={Arrow Point}
+point(+175:08:13.064,+50:56:40.927) # point=boxcircle text={BoxCircle Point}
+# projection(+175:07:11.287,+50:56:00.627,+175:06:45.026,+50:55:45.234,3.964") text={Projection}
+panda(+175:07:31.016,+50:56:10.800,281.717,551.717,3,0",5.946",2) # text={Panda}
+panda(+175:07:58.912,+50:56:06.747,333.299,371.717,1,0",2.973",1) # panda=(333.299 11.7172 101.717 191.717)(0" 2.973" 5.946") text={Panda 2}
+panda(+175:07:58.912,+50:56:06.747,333.299,371.717,1,2.973",5.946",1) # panda=ignore
+panda(+175:07:58.912,+50:56:06.747,11.7172,101.717,1,0",2.973",1) # panda=ignore
+panda(+175:07:58.912,+50:56:06.747,11.7172,101.717,1,2.973",5.946",1) # panda=ignore
+panda(+175:07:58.912,+50:56:06.747,101.717,191.717,1,0",2.973",1) # panda=ignore
+panda(+175:07:58.912,+50:56:06.747,101.717,191.717,1,2.973",5.946",1) # panda=ignore
+# compass(+175:06:57.031,+50:55:37.795,7.928") compass=physical {N} {E} 1 1 text={Compass}
+epanda(+175:07:28.241,+50:55:54.564,281.717,551.717,3,2.973",1.4865",5.946",2.973",1,326.717) # text={Epanda}
+epanda(+175:07:55.454,+50:55:50.398,326.717,371.717,1,2.973",1.4865",5.946",2.973",1,326.717) # epanda=(326.717 11.7172 101.717 191.717)(2.973" 1.4865" 5.946" 2.973")(326.717) text={Epanda 2}
+epanda(+175:07:55.454,+50:55:50.398,11.7172,101.717,1,2.973",1.4865",5.946",2.973",1,326.717) # epanda=ignore
+epanda(+175:07:55.454,+50:55:50.398,101.717,191.717,1,2.973",1.4865",5.946",2.973",1,326.717) # epanda=ignore
+bpanda(+175:07:22.684,+50:55:37.680,281.717,551.717,3,7.928",3.964",11.892",5.946",1,326.717) # text={Bpanda}
+bpanda(+175:07:50.034,+50:55:34.913,326.717,371.717,1,7.928",3.964",11.892",5.946",1,326.717) # bpanda=(326.717 11.7172 101.717 191.717)(7.928" 3.964" 11.892" 5.946")(326.717) text={Bpanda 2}
+bpanda(+175:07:50.034,+50:55:34.913,11.7172,101.717,1,7.928",3.964",11.892",5.946",1,326.717) # bpanda=ignore
+bpanda(+175:07:50.034,+50:55:34.913,101.717,191.717,1,7.928",3.964",11.892",5.946",1,326.717) # bpanda=ignore
diff --git a/tests/ds9.ecliptic.hms.strip.reg b/tests/ds9.ecliptic.hms.strip.reg
index ccccba1..357bd97 100644
--- a/tests/ds9.ecliptic.hms.strip.reg
+++ b/tests/ds9.ecliptic.hms.strip.reg
@@ -1 +1 @@
-ecliptic;circle(+175:06:47.329,+50:57:10.157,3.964");-ellipse(+175:06:47.329,+50:56:53.559,7.928",3.964",326.717);-box(+175:06:42.199,+50:56:36.012,15.856",7.928",326.717);polygon(+175:06:34.390,+50:56:23.015,+175:06:20.354,+50:56:17.207,+175:06:29.571,+50:56:08.362,+175:06:43.608,+50:56:14.170);-line(+175:06:35.595,+50:56:02.262,+175:06:16.061,+50:55:52.669);annulus(+175:07:21.832,+50:57:05.650,1.982",3.964",5.946");ellipse(+175:07:17.633,+50:56:48.993,2.973",1.4865",5.946",2.973",326.717);box(+175:07:12.383,+50:56:32.069,7.928",3.964",11.892",5.946",326.717);point(+175:07:50.928,+50:57:03.264);point(+175:07:45.855,+50:56:45.911);point(+175:07:40.062,+50:56:30.273);point(+175:08:05.063,+50:56:58.379);point(+175:07:59.895,+50:56:43.670);point(+175:07:55.897,+50:56:28.607);point(+175:08:15.784,+50:56:41.187);panda(+175:07:33.735,+50:56:11.060,281.717,551.717,3,0",5.946",2);panda(+175:08:01.631,+50:56:07.007,333.299,371.717,1,0",2.973",1);panda(+175:08:01.631,+50:56:07.007,333.299,371.717,1,2.973",5.946",1);panda(+175:08:01.631,+50:56:07.007,11.7172,101.717,1,0",2.973",1);panda(+175:08:01.631,+50:56:07.007,11.7172,101.717,1,2.973",5.946",1);panda(+175:08:01.631,+50:56:07.007,101.717,191.717,1,0",2.973",1);panda(+175:08:01.631,+50:56:07.007,101.717,191.717,1,2.973",5.946",1);epanda(+175:07:30.960,+50:55:54.824,281.717,551.717,3,2.973",1.4865",5.946",2.973",1,326.717);epanda(+175:07:58.173,+50:55:50.658,326.717,371.717,1,2.973",1.4865",5.946",2.973",1,326.717);epanda(+175:07:58.173,+50:55:50.658,11.7172,101.717,1,2.973",1.4865",5.946",2.973",1,326.717);epanda(+175:07:58.173,+50:55:50.658,101.717,191.717,1,2.973",1.4865",5.946",2.973",1,326.717);bpanda(+175:07:25.403,+50:55:37.941,281.717,551.717,3,7.928",3.964",11.892",5.946",1,326.717);bpanda(+175:07:52.752,+50:55:35.173,326.717,371.717,1,7.928",3.964",11.892",5.946",1,326.717);bpanda(+175:07:52.752,+50:55:35.173,11.7172,101.717,1,7.928",3.964",11.892",5.946",1,326.717);bpanda(+175:07:52.752,+50:55:35.173,101.717,191.717,1,7.928",3.964",11.892",5.946",1,326.717);
\ No newline at end of file
+ecliptic;circle(+175:06:44.609,+50:57:09.897,3.964");-ellipse(+175:06:44.610,+50:56:53.299,7.928",3.964",326.717);-box(+175:06:39.479,+50:56:35.752,15.856",7.928",326.717);polygon(+175:06:31.671,+50:56:22.755,+175:06:17.634,+50:56:16.946,+175:06:26.852,+50:56:08.101,+175:06:40.888,+50:56:13.910);-line(+175:06:32.876,+50:56:02.002,+175:06:13.343,+50:55:52.408);annulus(+175:07:19.112,+50:57:05.390,1.982",3.964",5.946");ellipse(+175:07:14.913,+50:56:48.733,2.973",1.4865",5.946",2.973",326.717);box(+175:07:09.664,+50:56:31.809,7.928",3.964",11.892",5.946",326.717);point(+175:07:48.208,+50:57:03.004);point(+175:07:43.135,+50:56:45.651);point(+175:07:37.342,+50:56:30.013);point(+175:08:02.343,+50:56:58.119);point(+175:07:57.176,+50:56:43.411);point(+175:07:53.177,+50:56:28.347);point(+175:08:13.064,+50:56:40.927);panda(+175:07:31.016,+50:56:10.800,281.717,551.717,3,0",5.946",2);panda(+175:07:58.912,+50:56:06.747,333.299,371.717,1,0",2.973",1);panda(+175:07:58.912,+50:56:06.747,333.299,371.717,1,2.973",5.946",1);panda(+175:07:58.912,+50:56:06.747,11.7172,101.717,1,0",2.973",1);panda(+175:07:58.912,+50:56:06.747,11.7172,101.717,1,2.973",5.946",1);panda(+175:07:58.912,+50:56:06.747,101.717,191.717,1,0",2.973",1);panda(+175:07:58.912,+50:56:06.747,101.717,191.717,1,2.973",5.946",1);epanda(+175:07:28.241,+50:55:54.564,281.717,551.717,3,2.973",1.4865",5.946",2.973",1,326.717);epanda(+175:07:55.454,+50:55:50.398,326.717,371.717,1,2.973",1.4865",5.946",2.973",1,326.717);epanda(+175:07:55.454,+50:55:50.398,11.7172,101.717,1,2.973",1.4865",5.946",2.973",1,326.717);epanda(+175:07:55.454,+50:55:50.398,101.717,191.717,1,2.973",1.4865",5.946",2.973",1,326.717);bpanda(+175:07:22.684,+50:55:37.680,281.717,551.717,3,7.928",3.964",11.892",5.946",1,326.717);bpanda(+175:07:50.034,+50:55:34.913,326.717,371.717,1,7.928",3.964",11.892",5.946",1,326.717);bpanda(+175:07:50.034,+50:55:34.913,11.7172,101.717,1,7.928",3.964",11.892",5.946",1,326.717);bpanda(+175:07:50.034,+50:55:34.913,101.717,191.717,1,7.928",3.964",11.892",5.946",1,326.717);
\ No newline at end of file
diff --git a/tests/ds9.ecliptic.reg b/tests/ds9.ecliptic.reg
index f9f84ae..60e5381 100644
--- a/tests/ds9.ecliptic.reg
+++ b/tests/ds9.ecliptic.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
ecliptic
-circle(175.11315,50.952821,3.9640007") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(175.11315,50.948211,7.9280014",3.9640007",326.71724) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(175.11172,50.943337,15.856003",7.9280014",326.71724) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(175.10955,50.939727,175.10565,50.938113,175.10821,50.935656,175.11211,50.937269) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(175.10989,50.933962,175.10446,50.931297) # line=1 1 color=cyan text={Line}
-# vector(175.10634,50.92914,7.9280014",326.71724) vector=1 color=red text={Vector}
-# text(175.10656,50.926018) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(175.12155,50.939298,175.11536,50.936507) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(175.12273,50.951569,1.9820003",3.9640007",5.946001") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(175.12156,50.946943,2.9730005",1.4865003",5.946001",2.9730005",326.71724) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(175.12011,50.942241,7.9280014",3.9640007",11.892002",5.946001",326.71724) # font="helvetica 10 bold roman" text={Box Annulus}
-point(175.13081,50.950907) # point=circle text={Circle Point}
-point(175.1294,50.946087) # point=box color=red width=3 text={Box Point}
-point(175.12779,50.941742) # point=diamond text={Diamond Point}
-point(175.13474,50.94955) # point=cross color=blue text={Cross Point}
-point(175.1333,50.945464) # point=x text={X Point}
-point(175.13219,50.94128) # point=arrow color=magenta text={Arrow Point}
-point(175.13772,50.944774) # point=boxcircle text={BoxCircle Point}
-# projection(175.12056,50.93358,175.11326,50.929304,3.9640007") text={Projection}
-panda(175.12604,50.936406,281.71724,551.71724,3,0",5.946001",2) # text={Panda}
-panda(175.13379,50.93528,333.29914,371.71724,1,0",2.9730005",1) # panda=(333.29914 11.71724 101.71724 191.71724)(0" 2.9730005" 5.946001") text={Panda 2}
-panda(175.13379,50.93528,333.29914,371.71724,1,2.9730005",5.946001",1) # panda=ignore
-panda(175.13379,50.93528,11.71724,101.71724,1,0",2.9730005",1) # panda=ignore
-panda(175.13379,50.93528,11.71724,101.71724,1,2.9730005",5.946001",1) # panda=ignore
-panda(175.13379,50.93528,101.71724,191.71724,1,0",2.9730005",1) # panda=ignore
-panda(175.13379,50.93528,101.71724,191.71724,1,2.9730005",5.946001",1) # panda=ignore
-# compass(175.1166,50.927238,7.9280014") compass=physical {N} {E} 1 1 text={Compass}
-epanda(175.12527,50.931896,281.71724,551.71724,3,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724) # text={Epanda}
-epanda(175.13283,50.930738,326.71724,371.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724) # epanda=(326.71724 11.71724 101.71724 191.71724)(2.9730005" 1.4865003" 5.946001" 2.9730005")(326.71724) text={Epanda 2}
-epanda(175.13283,50.930738,11.71724,101.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724) # epanda=ignore
-epanda(175.13283,50.930738,101.71724,191.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724) # epanda=ignore
-bpanda(175.12372,50.927206,281.71724,551.71724,3,7.9280014",3.9640007",11.892002",5.946001",1,326.71724) # text={Bpanda}
-bpanda(175.13132,50.926437,326.71724,371.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724) # bpanda=(326.71724 11.71724 101.71724 191.71724)(7.9280014" 3.9640007" 11.892002" 5.946001")(326.71724) text={Bpanda 2}
-bpanda(175.13132,50.926437,11.71724,101.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724) # bpanda=ignore
-bpanda(175.13132,50.926437,101.71724,191.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724) # bpanda=ignore
-# circle3d(175.125,50.922147,1.9820003") text={Circle3d}
+circle(175.11239,50.952749,3.9640007") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(175.11239,50.948139,7.9280014",3.9640007",326.71724) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(175.11097,50.943264,15.856003",7.9280014",326.71724) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(175.1088,50.939654,175.1049,50.938041,175.10746,50.935584,175.11136,50.937197) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(175.10913,50.933889,175.10371,50.931224) # line=1 1 color=cyan text={Line}
+# vector(175.10558,50.929068,7.9280014",326.71724) vector=1 color=red text={Vector}
+# text(175.10581,50.925946) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(175.12079,50.939226,175.11461,50.936435) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(175.12198,50.951497,1.9820003",3.9640007",5.946001") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(175.12081,50.94687,2.9730005",1.4865003",5.946001",2.9730005",326.71724) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(175.11935,50.942169,7.9280014",3.9640007",11.892002",5.946001",326.71724) # font="helvetica 10 bold roman" text={Box Annulus}
+point(175.13006,50.950834) # point=circle text={Circle Point}
+point(175.12865,50.946014) # point=box color=red width=3 text={Box Point}
+point(175.12704,50.94167) # point=diamond text={Diamond Point}
+point(175.13398,50.949478) # point=cross color=blue text={Cross Point}
+point(175.13255,50.945392) # point=x text={X Point}
+point(175.13144,50.941207) # point=arrow color=magenta text={Arrow Point}
+point(175.13696,50.944702) # point=boxcircle text={BoxCircle Point}
+# projection(175.1198,50.933507,175.11251,50.929232,3.9640007") text={Projection}
+panda(175.12528,50.936333,281.71724,551.71724,3,0",5.946001",2) # text={Panda}
+panda(175.13303,50.935208,333.29914,371.71724,1,0",2.9730005",1) # panda=(333.29914 11.71724 101.71724 191.71724)(0" 2.9730005" 5.946001") text={Panda 2}
+panda(175.13303,50.935208,333.29914,371.71724,1,2.9730005",5.946001",1) # panda=ignore
+panda(175.13303,50.935208,11.71724,101.71724,1,0",2.9730005",1) # panda=ignore
+panda(175.13303,50.935208,11.71724,101.71724,1,2.9730005",5.946001",1) # panda=ignore
+panda(175.13303,50.935208,101.71724,191.71724,1,0",2.9730005",1) # panda=ignore
+panda(175.13303,50.935208,101.71724,191.71724,1,2.9730005",5.946001",1) # panda=ignore
+# compass(175.11584,50.927165,7.9280014") compass=physical {N} {E} 1 1 text={Compass}
+epanda(175.12451,50.931823,281.71724,551.71724,3,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724) # text={Epanda}
+epanda(175.13207,50.930666,326.71724,371.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724) # epanda=(326.71724 11.71724 101.71724 191.71724)(2.9730005" 1.4865003" 5.946001" 2.9730005")(326.71724) text={Epanda 2}
+epanda(175.13207,50.930666,11.71724,101.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724) # epanda=ignore
+epanda(175.13207,50.930666,101.71724,191.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724) # epanda=ignore
+bpanda(175.12297,50.927133,281.71724,551.71724,3,7.9280014",3.9640007",11.892002",5.946001",1,326.71724) # text={Bpanda}
+bpanda(175.13056,50.926365,326.71724,371.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724) # bpanda=(326.71724 11.71724 101.71724 191.71724)(7.9280014" 3.9640007" 11.892002" 5.946001")(326.71724) text={Bpanda 2}
+bpanda(175.13056,50.926365,11.71724,101.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724) # bpanda=ignore
+bpanda(175.13056,50.926365,101.71724,191.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724) # bpanda=ignore
diff --git a/tests/ds9.ecliptic.strip.reg b/tests/ds9.ecliptic.strip.reg
index d734332..202b5ac 100644
--- a/tests/ds9.ecliptic.strip.reg
+++ b/tests/ds9.ecliptic.strip.reg
@@ -1 +1 @@
-ecliptic;circle(175.11315,50.952821,3.9640007");-ellipse(175.11315,50.948211,7.9280014",3.9640007",326.71724);-box(175.11172,50.943337,15.856003",7.9280014",326.71724);polygon(175.10955,50.939727,175.10565,50.938113,175.10821,50.935656,175.11211,50.937269);-line(175.10989,50.933962,175.10446,50.931297);annulus(175.12273,50.951569,1.9820003",3.9640007",5.946001");ellipse(175.12156,50.946943,2.9730005",1.4865003",5.946001",2.9730005",326.71724);box(175.12011,50.942241,7.9280014",3.9640007",11.892002",5.946001",326.71724);point(175.13081,50.950907);point(175.1294,50.946087);point(175.12779,50.941742);point(175.13474,50.94955);point(175.1333,50.945464);point(175.13219,50.94128);point(175.13772,50.944774);panda(175.12604,50.936406,281.71724,551.71724,3,0",5.946001",2);panda(175.13379,50.93528,333.29914,371.71724,1,0",2.9730005",1);panda(175.13379,50.93528,333.29914,371.71724,1,2.9730005",5.946001",1);panda(175.13379,50.93528,11.71724,101.71724,1,0",2.9730005",1);panda(175.13379,50.93528,11.71724,101.71724,1,2.9730005",5.946001",1);panda(175.13379,50.93528,101.71724,191.71724,1,0",2.9730005",1);panda(175.13379,50.93528,101.71724,191.71724,1,2.9730005",5.946001",1);epanda(175.12527,50.931896,281.71724,551.71724,3,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724);epanda(175.13283,50.930738,326.71724,371.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724);epanda(175.13283,50.930738,11.71724,101.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724);epanda(175.13283,50.930738,101.71724,191.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724);bpanda(175.12372,50.927206,281.71724,551.71724,3,7.9280014",3.9640007",11.892002",5.946001",1,326.71724);bpanda(175.13132,50.926437,326.71724,371.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724);bpanda(175.13132,50.926437,11.71724,101.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724);bpanda(175.13132,50.926437,101.71724,191.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724);
\ No newline at end of file
+ecliptic;circle(175.11239,50.952749,3.9640007");-ellipse(175.11239,50.948139,7.9280014",3.9640007",326.71724);-box(175.11097,50.943264,15.856003",7.9280014",326.71724);polygon(175.1088,50.939654,175.1049,50.938041,175.10746,50.935584,175.11136,50.937197);-line(175.10913,50.933889,175.10371,50.931224);annulus(175.12198,50.951497,1.9820003",3.9640007",5.946001");ellipse(175.12081,50.94687,2.9730005",1.4865003",5.946001",2.9730005",326.71724);box(175.11935,50.942169,7.9280014",3.9640007",11.892002",5.946001",326.71724);point(175.13006,50.950834);point(175.12865,50.946014);point(175.12704,50.94167);point(175.13398,50.949478);point(175.13255,50.945392);point(175.13144,50.941207);point(175.13696,50.944702);panda(175.12528,50.936333,281.71724,551.71724,3,0",5.946001",2);panda(175.13303,50.935208,333.29914,371.71724,1,0",2.9730005",1);panda(175.13303,50.935208,333.29914,371.71724,1,2.9730005",5.946001",1);panda(175.13303,50.935208,11.71724,101.71724,1,0",2.9730005",1);panda(175.13303,50.935208,11.71724,101.71724,1,2.9730005",5.946001",1);panda(175.13303,50.935208,101.71724,191.71724,1,0",2.9730005",1);panda(175.13303,50.935208,101.71724,191.71724,1,2.9730005",5.946001",1);epanda(175.12451,50.931823,281.71724,551.71724,3,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724);epanda(175.13207,50.930666,326.71724,371.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724);epanda(175.13207,50.930666,11.71724,101.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724);epanda(175.13207,50.930666,101.71724,191.71724,1,2.9730005",1.4865003",5.946001",2.9730005",1,326.71724);bpanda(175.12297,50.927133,281.71724,551.71724,3,7.9280014",3.9640007",11.892002",5.946001",1,326.71724);bpanda(175.13056,50.926365,326.71724,371.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724);bpanda(175.13056,50.926365,11.71724,101.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724);bpanda(175.13056,50.926365,101.71724,191.71724,1,7.9280014",3.9640007",11.892002",5.946001",1,326.71724);
\ No newline at end of file
diff --git a/tests/ds9.fk4.hms.reg b/tests/ds9.fk4.hms.reg
index 7953942..441c0f4 100644
--- a/tests/ds9.fk4.hms.reg
+++ b/tests/ds9.fk4.hms.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
fk4
-circle(13:27:50.533,+47:27:57.00,3.964") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(13:27:49.574,+47:27:43.54,7.928",3.964",2.55309) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(13:27:48.303,+47:27:31.21,15.856",7.928",2.55309) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(13:27:47.159,+47:27:23.56,13:27:46.117,+47:27:24.03,13:27:46.071,+47:27:13.45,13:27:47.113,+47:27:12.98) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(13:27:46.022,+47:27:06.29,13:27:44.484,+47:27:05.72) # line=1 1 color=cyan text={Line}
-# vector(13:27:44.377,+47:26:56.93,7.928",2.55309) vector=1 color=red text={Vector}
-# text(13:27:43.769,+47:26:47.52) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(13:27:49.245,+47:27:06.37,13:27:47.544,+47:27:06.44) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(13:27:52.010,+47:27:40.61,1.982",3.964",5.946") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(13:27:50.837,+47:27:28.66,2.973",1.4865",5.946",2.973",2.55309) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(13:27:49.595,+47:27:16.88,7.928",3.964",11.892",5.946",2.55309) # font="helvetica 10 bold roman" text={Box Annulus}
-point(13:27:53.337,+47:27:27.95) # point=circle text={Circle Point}
-point(13:27:52.080,+47:27:15.75) # point=box color=red width=3 text={Box Point}
-point(13:27:50.886,+47:27:05.21) # point=diamond text={Diamond Point}
-point(13:27:53.767,+47:27:18.77) # point=cross color=blue text={Cross Point}
-point(13:27:52.658,+47:27:08.75) # point=x text={X Point}
-point(13:27:51.587,+47:26:58.02) # point=arrow color=magenta text={Arrow Point}
-point(13:27:53.315,+47:27:00.88) # point=boxcircle text={BoxCircle Point}
-# projection(13:27:47.877,+47:26:51.00,13:27:45.666,+47:26:48.21,3.964") text={Projection}
-panda(13:27:49.458,+47:26:51.97,317.553,587.553,3,0",5.946",2) # text={Panda}
-panda(13:27:50.629,+47:26:38.39,9.13499,47.5531,1,0",2.973",1) # panda=(9.13499 47.5531 137.553 227.553)(0" 2.973" 5.946") text={Panda 2}
-panda(13:27:50.629,+47:26:38.39,9.13499,47.5531,1,2.973",5.946",1) # panda=ignore
-panda(13:27:50.629,+47:26:38.39,47.5531,137.553,1,0",2.973",1) # panda=ignore
-panda(13:27:50.629,+47:26:38.39,47.5531,137.553,1,2.973",5.946",1) # panda=ignore
-panda(13:27:50.629,+47:26:38.39,137.553,227.553,1,0",2.973",1) # panda=ignore
-panda(13:27:50.629,+47:26:38.39,137.553,227.553,1,2.973",5.946",1) # panda=ignore
-# compass(13:27:45.842,+47:26:37.75,7.928") compass=physical {N} {E} 1 1 text={Compass}
-epanda(13:27:48.381,+47:26:39.83,317.553,587.553,3,2.973",1.4865",5.946",2.973",1,2.55309) # text={Epanda}
-epanda(13:27:49.512,+47:26:26.41,2.55309,47.5531,1,2.973",1.4865",5.946",2.973",1,2.55309) # epanda=(2.55309 47.5531 137.553 227.553)(2.973" 1.4865" 5.946" 2.973")(2.55309) text={Epanda 2}
-epanda(13:27:49.512,+47:26:26.41,47.5531,137.553,1,2.973",1.4865",5.946",2.973",1,2.55309) # epanda=ignore
-epanda(13:27:49.512,+47:26:26.41,137.553,227.553,1,2.973",1.4865",5.946",2.973",1,2.55309) # epanda=ignore
-bpanda(13:27:47.127,+47:26:28.19,317.553,587.553,3,7.928",3.964",11.892",5.946",1,2.55309) # text={Bpanda}
-bpanda(13:27:48.345,+47:26:15.86,2.55309,47.5531,1,7.928",3.964",11.892",5.946",1,2.55309) # bpanda=(2.55309 47.5531 137.553 227.553)(7.928" 3.964" 11.892" 5.946")(2.55309) text={Bpanda 2}
-bpanda(13:27:48.345,+47:26:15.86,47.5531,137.553,1,7.928",3.964",11.892",5.946",1,2.55309) # bpanda=ignore
-bpanda(13:27:48.345,+47:26:15.86,137.553,227.553,1,7.928",3.964",11.892",5.946",1,2.55309) # bpanda=ignore
-# circle3d(13:27:46.308,+47:26:11.73,1.982") text={Circle3d}
+circle(13:27:50.384,+47:27:57.76,3.964") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(13:27:49.426,+47:27:44.31,7.928",3.964",2.55409) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(13:27:48.154,+47:27:31.98,15.856",7.928",2.55409) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(13:27:47.011,+47:27:24.32,13:27:45.968,+47:27:24.79,13:27:45.922,+47:27:14.22,13:27:46.964,+47:27:13.75) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(13:27:45.873,+47:27:07.05,13:27:44.336,+47:27:06.48) # line=1 1 color=cyan text={Line}
+# vector(13:27:44.228,+47:26:57.70,7.928",2.55409) vector=1 color=red text={Vector}
+# text(13:27:43.620,+47:26:48.29) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(13:27:49.096,+47:27:07.14,13:27:47.395,+47:27:07.21) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(13:27:51.861,+47:27:41.38,1.982",3.964",5.946") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(13:27:50.688,+47:27:29.43,2.973",1.4865",5.946",2.973",2.55409) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(13:27:49.447,+47:27:17.65,7.928",3.964",11.892",5.946",2.55409) # font="helvetica 10 bold roman" text={Box Annulus}
+point(13:27:53.189,+47:27:28.71) # point=circle text={Circle Point}
+point(13:27:51.931,+47:27:16.52) # point=box color=red width=3 text={Box Point}
+point(13:27:50.737,+47:27:05.98) # point=diamond text={Diamond Point}
+point(13:27:53.618,+47:27:19.54) # point=cross color=blue text={Cross Point}
+point(13:27:52.509,+47:27:09.52) # point=x text={X Point}
+point(13:27:51.438,+47:26:58.79) # point=arrow color=magenta text={Arrow Point}
+point(13:27:53.166,+47:27:01.65) # point=boxcircle text={BoxCircle Point}
+# projection(13:27:47.729,+47:26:51.77,13:27:45.517,+47:26:48.98,3.964") text={Projection}
+panda(13:27:49.309,+47:26:52.74,317.554,587.554,3,0",5.946",2) # text={Panda}
+panda(13:27:50.481,+47:26:39.16,9.13599,47.5541,1,0",2.973",1) # panda=(9.13599 47.5541 137.554 227.554)(0" 2.973" 5.946") text={Panda 2}
+panda(13:27:50.481,+47:26:39.16,9.13599,47.5541,1,2.973",5.946",1) # panda=ignore
+panda(13:27:50.481,+47:26:39.16,47.5541,137.554,1,0",2.973",1) # panda=ignore
+panda(13:27:50.481,+47:26:39.16,47.5541,137.554,1,2.973",5.946",1) # panda=ignore
+panda(13:27:50.481,+47:26:39.16,137.554,227.554,1,0",2.973",1) # panda=ignore
+panda(13:27:50.481,+47:26:39.16,137.554,227.554,1,2.973",5.946",1) # panda=ignore
+# compass(13:27:45.693,+47:26:38.52,7.928") compass=physical {N} {E} 1 1 text={Compass}
+epanda(13:27:48.233,+47:26:40.60,317.554,587.554,3,2.973",1.4865",5.946",2.973",1,2.55409) # text={Epanda}
+epanda(13:27:49.363,+47:26:27.18,2.55409,47.5541,1,2.973",1.4865",5.946",2.973",1,2.55409) # epanda=(2.55409 47.5541 137.554 227.554)(2.973" 1.4865" 5.946" 2.973")(2.55409) text={Epanda 2}
+epanda(13:27:49.363,+47:26:27.18,47.5541,137.554,1,2.973",1.4865",5.946",2.973",1,2.55409) # epanda=ignore
+epanda(13:27:49.363,+47:26:27.18,137.554,227.554,1,2.973",1.4865",5.946",2.973",1,2.55409) # epanda=ignore
+bpanda(13:27:46.979,+47:26:28.96,317.554,587.554,3,7.928",3.964",11.892",5.946",1,2.55409) # text={Bpanda}
+bpanda(13:27:48.197,+47:26:16.63,2.55409,47.5541,1,7.928",3.964",11.892",5.946",1,2.55409) # bpanda=(2.55409 47.5541 137.554 227.554)(7.928" 3.964" 11.892" 5.946")(2.55409) text={Bpanda 2}
+bpanda(13:27:48.197,+47:26:16.63,47.5541,137.554,1,7.928",3.964",11.892",5.946",1,2.55409) # bpanda=ignore
+bpanda(13:27:48.197,+47:26:16.63,137.554,227.554,1,7.928",3.964",11.892",5.946",1,2.55409) # bpanda=ignore
diff --git a/tests/ds9.fk4.hms.strip.reg b/tests/ds9.fk4.hms.strip.reg
index 9ff1744..4c524b2 100644
--- a/tests/ds9.fk4.hms.strip.reg
+++ b/tests/ds9.fk4.hms.strip.reg
@@ -1 +1 @@
-fk4;circle(13:27:50.533,+47:27:57.00,3.964");-ellipse(13:27:49.574,+47:27:43.54,7.928",3.964",2.55309);-box(13:27:48.303,+47:27:31.21,15.856",7.928",2.55309);polygon(13:27:47.159,+47:27:23.56,13:27:46.117,+47:27:24.03,13:27:46.071,+47:27:13.45,13:27:47.113,+47:27:12.98);-line(13:27:46.022,+47:27:06.29,13:27:44.484,+47:27:05.72);annulus(13:27:52.010,+47:27:40.61,1.982",3.964",5.946");ellipse(13:27:50.837,+47:27:28.66,2.973",1.4865",5.946",2.973",2.55309);box(13:27:49.595,+47:27:16.88,7.928",3.964",11.892",5.946",2.55309);point(13:27:53.337,+47:27:27.95);point(13:27:52.080,+47:27:15.75);point(13:27:50.886,+47:27:05.21);point(13:27:53.767,+47:27:18.77);point(13:27:52.658,+47:27:08.75);point(13:27:51.587,+47:26:58.02);point(13:27:53.315,+47:27:00.88);panda(13:27:49.458,+47:26:51.97,317.553,587.553,3,0",5.946",2);panda(13:27:50.629,+47:26:38.39,9.13499,47.5531,1,0",2.973",1);panda(13:27:50.629,+47:26:38.39,9.13499,47.5531,1,2.973",5.946",1);panda(13:27:50.629,+47:26:38.39,47.5531,137.553,1,0",2.973",1);panda(13:27:50.629,+47:26:38.39,47.5531,137.553,1,2.973",5.946",1);panda(13:27:50.629,+47:26:38.39,137.553,227.553,1,0",2.973",1);panda(13:27:50.629,+47:26:38.39,137.553,227.553,1,2.973",5.946",1);epanda(13:27:48.381,+47:26:39.83,317.553,587.553,3,2.973",1.4865",5.946",2.973",1,2.55309);epanda(13:27:49.512,+47:26:26.41,2.55309,47.5531,1,2.973",1.4865",5.946",2.973",1,2.55309);epanda(13:27:49.512,+47:26:26.41,47.5531,137.553,1,2.973",1.4865",5.946",2.973",1,2.55309);epanda(13:27:49.512,+47:26:26.41,137.553,227.553,1,2.973",1.4865",5.946",2.973",1,2.55309);bpanda(13:27:47.127,+47:26:28.19,317.553,587.553,3,7.928",3.964",11.892",5.946",1,2.55309);bpanda(13:27:48.345,+47:26:15.86,2.55309,47.5531,1,7.928",3.964",11.892",5.946",1,2.55309);bpanda(13:27:48.345,+47:26:15.86,47.5531,137.553,1,7.928",3.964",11.892",5.946",1,2.55309);bpanda(13:27:48.345,+47:26:15.86,137.553,227.553,1,7.928",3.964",11.892",5.946",1,2.55309);
\ No newline at end of file
+fk4;circle(13:27:50.384,+47:27:57.76,3.964");-ellipse(13:27:49.426,+47:27:44.31,7.928",3.964",2.55409);-box(13:27:48.154,+47:27:31.98,15.856",7.928",2.55409);polygon(13:27:47.011,+47:27:24.32,13:27:45.968,+47:27:24.79,13:27:45.922,+47:27:14.22,13:27:46.964,+47:27:13.75);-line(13:27:45.873,+47:27:07.05,13:27:44.336,+47:27:06.48);annulus(13:27:51.861,+47:27:41.38,1.982",3.964",5.946");ellipse(13:27:50.688,+47:27:29.43,2.973",1.4865",5.946",2.973",2.55409);box(13:27:49.447,+47:27:17.65,7.928",3.964",11.892",5.946",2.55409);point(13:27:53.189,+47:27:28.71);point(13:27:51.931,+47:27:16.52);point(13:27:50.737,+47:27:05.98);point(13:27:53.618,+47:27:19.54);point(13:27:52.509,+47:27:09.52);point(13:27:51.438,+47:26:58.79);point(13:27:53.166,+47:27:01.65);panda(13:27:49.309,+47:26:52.74,317.554,587.554,3,0",5.946",2);panda(13:27:50.481,+47:26:39.16,9.13599,47.5541,1,0",2.973",1);panda(13:27:50.481,+47:26:39.16,9.13599,47.5541,1,2.973",5.946",1);panda(13:27:50.481,+47:26:39.16,47.5541,137.554,1,0",2.973",1);panda(13:27:50.481,+47:26:39.16,47.5541,137.554,1,2.973",5.946",1);panda(13:27:50.481,+47:26:39.16,137.554,227.554,1,0",2.973",1);panda(13:27:50.481,+47:26:39.16,137.554,227.554,1,2.973",5.946",1);epanda(13:27:48.233,+47:26:40.60,317.554,587.554,3,2.973",1.4865",5.946",2.973",1,2.55409);epanda(13:27:49.363,+47:26:27.18,2.55409,47.5541,1,2.973",1.4865",5.946",2.973",1,2.55409);epanda(13:27:49.363,+47:26:27.18,47.5541,137.554,1,2.973",1.4865",5.946",2.973",1,2.55409);epanda(13:27:49.363,+47:26:27.18,137.554,227.554,1,2.973",1.4865",5.946",2.973",1,2.55409);bpanda(13:27:46.979,+47:26:28.96,317.554,587.554,3,7.928",3.964",11.892",5.946",1,2.55409);bpanda(13:27:48.197,+47:26:16.63,2.55409,47.5541,1,7.928",3.964",11.892",5.946",1,2.55409);bpanda(13:27:48.197,+47:26:16.63,47.5541,137.554,1,7.928",3.964",11.892",5.946",1,2.55409);bpanda(13:27:48.197,+47:26:16.63,137.554,227.554,1,7.928",3.964",11.892",5.946",1,2.55409);
\ No newline at end of file
diff --git a/tests/ds9.fk4.reg b/tests/ds9.fk4.reg
index e2df67a..813d3c1 100644
--- a/tests/ds9.fk4.reg
+++ b/tests/ds9.fk4.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
fk4
-circle(201.96055,47.465832,3.9640007") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(201.95656,47.462095,7.9280014",3.9640007",2.553089) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(201.95126,47.458669,15.856003",7.9280014",2.553089) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(201.9465,47.456543,201.94215,47.456674,201.94196,47.453737,201.9463,47.453607) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(201.94176,47.451746,201.93535,47.451588) # line=1 1 color=cyan text={Line}
-# vector(201.9349,47.449146,7.9280014",2.553089) vector=1 color=red text={Vector}
-# text(201.93237,47.446533) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(201.95519,47.451771,201.9481,47.451789) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(201.96671,47.461282,1.9820003",3.9640007",5.946001") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(201.96182,47.457961,2.9730005",1.4865003",5.946001",2.9730005",2.553089) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(201.95665,47.454688,7.9280014",3.9640007",11.892002",5.946001",2.553089) # font="helvetica 10 bold roman" text={Box Annulus}
-point(201.97224,47.457763) # point=circle text={Circle Point}
-point(201.967,47.454375) # point=box color=red width=3 text={Box Point}
-point(201.96202,47.451447) # point=diamond text={Diamond Point}
-point(201.97403,47.455214) # point=cross color=blue text={Cross Point}
-point(201.96941,47.452432) # point=x text={X Point}
-point(201.96495,47.449449) # point=arrow color=magenta text={Arrow Point}
-point(201.97214,47.450245) # point=boxcircle text={BoxCircle Point}
-# projection(201.94949,47.4475,201.94028,47.446725,3.9640007") text={Projection}
-panda(201.95608,47.447769,317.55309,587.55309,3,0",5.946001",2) # text={Panda}
-panda(201.96096,47.443997,9.134989,47.553089,1,0",2.9730005",1) # panda=(9.134989 47.553089 137.55309 227.55309)(0" 2.9730005" 5.946001") text={Panda 2}
-panda(201.96096,47.443997,9.134989,47.553089,1,2.9730005",5.946001",1) # panda=ignore
-panda(201.96096,47.443997,47.553089,137.55309,1,0",2.9730005",1) # panda=ignore
-panda(201.96096,47.443997,47.553089,137.55309,1,2.9730005",5.946001",1) # panda=ignore
-panda(201.96096,47.443997,137.55309,227.55309,1,0",2.9730005",1) # panda=ignore
-panda(201.96096,47.443997,137.55309,227.55309,1,2.9730005",5.946001",1) # panda=ignore
-# compass(201.94101,47.443819,7.9280014") compass=physical {N} {E} 1 1 text={Compass}
-epanda(201.95159,47.444397,317.55309,587.55309,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.553089) # text={Epanda}
-epanda(201.9563,47.44067,2.553089,47.553089,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.553089) # epanda=(2.553089 47.553089 137.55309 227.55309)(2.9730005" 1.4865003" 5.946001" 2.9730005")(2.553089) text={Epanda 2}
-epanda(201.9563,47.44067,47.553089,137.55309,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.553089) # epanda=ignore
-epanda(201.9563,47.44067,137.55309,227.55309,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.553089) # epanda=ignore
-bpanda(201.94636,47.441164,317.55309,587.55309,3,7.9280014",3.9640007",11.892002",5.946001",1,2.553089) # text={Bpanda}
-bpanda(201.95144,47.437738,2.553089,47.553089,1,7.9280014",3.9640007",11.892002",5.946001",1,2.553089) # bpanda=(2.553089 47.553089 137.55309 227.55309)(7.9280014" 3.9640007" 11.892002" 5.946001")(2.553089) text={Bpanda 2}
-bpanda(201.95144,47.437738,47.553089,137.55309,1,7.9280014",3.9640007",11.892002",5.946001",1,2.553089) # bpanda=ignore
-bpanda(201.95144,47.437738,137.55309,227.55309,1,7.9280014",3.9640007",11.892002",5.946001",1,2.553089) # bpanda=ignore
-# circle3d(201.94295,47.436591,1.9820003") text={Circle3d}
+circle(201.95993,47.466046,3.9640007") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(201.95594,47.462308,7.9280014",3.9640007",2.55409) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(201.95064,47.458883,15.856003",7.9280014",2.55409) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(201.94588,47.456757,201.94153,47.456887,201.94134,47.453951,201.94568,47.45382) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(201.94114,47.45196,201.93473,47.451801) # line=1 1 color=cyan text={Line}
+# vector(201.93428,47.44936,7.9280014",2.55409) vector=1 color=red text={Vector}
+# text(201.93175,47.446747) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(201.95457,47.451984,201.94748,47.452003) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(201.96609,47.461495,1.9820003",3.9640007",5.946001") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(201.9612,47.458175,2.9730005",1.4865003",5.946001",2.9730005",2.55409) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(201.95603,47.454902,7.9280014",3.9640007",11.892002",5.946001",2.55409) # font="helvetica 10 bold roman" text={Box Annulus}
+point(201.97162,47.457976) # point=circle text={Circle Point}
+point(201.96638,47.454589) # point=box color=red width=3 text={Box Point}
+point(201.9614,47.451661) # point=diamond text={Diamond Point}
+point(201.97341,47.455428) # point=cross color=blue text={Cross Point}
+point(201.96879,47.452645) # point=x text={X Point}
+point(201.96433,47.449663) # point=arrow color=magenta text={Arrow Point}
+point(201.97152,47.450458) # point=boxcircle text={BoxCircle Point}
+# projection(201.94887,47.447713,201.93966,47.446938,3.9640007") text={Projection}
+panda(201.95546,47.447982,317.55409,587.55409,3,0",5.946001",2) # text={Panda}
+panda(201.96034,47.444211,9.13599,47.55409,1,0",2.9730005",1) # panda=(9.13599 47.55409 137.55409 227.55409)(0" 2.9730005" 5.946001") text={Panda 2}
+panda(201.96034,47.444211,9.13599,47.55409,1,2.9730005",5.946001",1) # panda=ignore
+panda(201.96034,47.444211,47.55409,137.55409,1,0",2.9730005",1) # panda=ignore
+panda(201.96034,47.444211,47.55409,137.55409,1,2.9730005",5.946001",1) # panda=ignore
+panda(201.96034,47.444211,137.55409,227.55409,1,0",2.9730005",1) # panda=ignore
+panda(201.96034,47.444211,137.55409,227.55409,1,2.9730005",5.946001",1) # panda=ignore
+# compass(201.94039,47.444033,7.9280014") compass=physical {N} {E} 1 1 text={Compass}
+epanda(201.95097,47.444611,317.55409,587.55409,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.55409) # text={Epanda}
+epanda(201.95568,47.440883,2.55409,47.55409,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.55409) # epanda=(2.55409 47.55409 137.55409 227.55409)(2.9730005" 1.4865003" 5.946001" 2.9730005")(2.55409) text={Epanda 2}
+epanda(201.95568,47.440883,47.55409,137.55409,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.55409) # epanda=ignore
+epanda(201.95568,47.440883,137.55409,227.55409,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.55409) # epanda=ignore
+bpanda(201.94574,47.441378,317.55409,587.55409,3,7.9280014",3.9640007",11.892002",5.946001",1,2.55409) # text={Bpanda}
+bpanda(201.95082,47.437951,2.55409,47.55409,1,7.9280014",3.9640007",11.892002",5.946001",1,2.55409) # bpanda=(2.55409 47.55409 137.55409 227.55409)(7.9280014" 3.9640007" 11.892002" 5.946001")(2.55409) text={Bpanda 2}
+bpanda(201.95082,47.437951,47.55409,137.55409,1,7.9280014",3.9640007",11.892002",5.946001",1,2.55409) # bpanda=ignore
+bpanda(201.95082,47.437951,137.55409,227.55409,1,7.9280014",3.9640007",11.892002",5.946001",1,2.55409) # bpanda=ignore
diff --git a/tests/ds9.fk4.strip.reg b/tests/ds9.fk4.strip.reg
index 02e5901..7a865de 100644
--- a/tests/ds9.fk4.strip.reg
+++ b/tests/ds9.fk4.strip.reg
@@ -1 +1 @@
-fk4;circle(201.96055,47.465832,3.9640007");-ellipse(201.95656,47.462095,7.9280014",3.9640007",2.553089);-box(201.95126,47.458669,15.856003",7.9280014",2.553089);polygon(201.9465,47.456543,201.94215,47.456674,201.94196,47.453737,201.9463,47.453607);-line(201.94176,47.451746,201.93535,47.451588);annulus(201.96671,47.461282,1.9820003",3.9640007",5.946001");ellipse(201.96182,47.457961,2.9730005",1.4865003",5.946001",2.9730005",2.553089);box(201.95665,47.454688,7.9280014",3.9640007",11.892002",5.946001",2.553089);point(201.97224,47.457763);point(201.967,47.454375);point(201.96202,47.451447);point(201.97403,47.455214);point(201.96941,47.452432);point(201.96495,47.449449);point(201.97214,47.450245);panda(201.95608,47.447769,317.55309,587.55309,3,0",5.946001",2);panda(201.96096,47.443997,9.134989,47.553089,1,0",2.9730005",1);panda(201.96096,47.443997,9.134989,47.553089,1,2.9730005",5.946001",1);panda(201.96096,47.443997,47.553089,137.55309,1,0",2.9730005",1);panda(201.96096,47.443997,47.553089,137.55309,1,2.9730005",5.946001",1);panda(201.96096,47.443997,137.55309,227.55309,1,0",2.9730005",1);panda(201.96096,47.443997,137.55309,227.55309,1,2.9730005",5.946001",1);epanda(201.95159,47.444397,317.55309,587.55309,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.553089);epanda(201.9563,47.44067,2.553089,47.553089,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.553089);epanda(201.9563,47.44067,47.553089,137.55309,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.553089);epanda(201.9563,47.44067,137.55309,227.55309,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.553089);bpanda(201.94636,47.441164,317.55309,587.55309,3,7.9280014",3.9640007",11.892002",5.946001",1,2.553089);bpanda(201.95144,47.437738,2.553089,47.553089,1,7.9280014",3.9640007",11.892002",5.946001",1,2.553089);bpanda(201.95144,47.437738,47.553089,137.55309,1,7.9280014",3.9640007",11.892002",5.946001",1,2.553089);bpanda(201.95144,47.437738,137.55309,227.55309,1,7.9280014",3.9640007",11.892002",5.946001",1,2.553089);
\ No newline at end of file
+fk4;circle(201.95993,47.466046,3.9640007");-ellipse(201.95594,47.462308,7.9280014",3.9640007",2.55409);-box(201.95064,47.458883,15.856003",7.9280014",2.55409);polygon(201.94588,47.456757,201.94153,47.456887,201.94134,47.453951,201.94568,47.45382);-line(201.94114,47.45196,201.93473,47.451801);annulus(201.96609,47.461495,1.9820003",3.9640007",5.946001");ellipse(201.9612,47.458175,2.9730005",1.4865003",5.946001",2.9730005",2.55409);box(201.95603,47.454902,7.9280014",3.9640007",11.892002",5.946001",2.55409);point(201.97162,47.457976);point(201.96638,47.454589);point(201.9614,47.451661);point(201.97341,47.455428);point(201.96879,47.452645);point(201.96433,47.449663);point(201.97152,47.450458);panda(201.95546,47.447982,317.55409,587.55409,3,0",5.946001",2);panda(201.96034,47.444211,9.13599,47.55409,1,0",2.9730005",1);panda(201.96034,47.444211,9.13599,47.55409,1,2.9730005",5.946001",1);panda(201.96034,47.444211,47.55409,137.55409,1,0",2.9730005",1);panda(201.96034,47.444211,47.55409,137.55409,1,2.9730005",5.946001",1);panda(201.96034,47.444211,137.55409,227.55409,1,0",2.9730005",1);panda(201.96034,47.444211,137.55409,227.55409,1,2.9730005",5.946001",1);epanda(201.95097,47.444611,317.55409,587.55409,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.55409);epanda(201.95568,47.440883,2.55409,47.55409,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.55409);epanda(201.95568,47.440883,47.55409,137.55409,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.55409);epanda(201.95568,47.440883,137.55409,227.55409,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.55409);bpanda(201.94574,47.441378,317.55409,587.55409,3,7.9280014",3.9640007",11.892002",5.946001",1,2.55409);bpanda(201.95082,47.437951,2.55409,47.55409,1,7.9280014",3.9640007",11.892002",5.946001",1,2.55409);bpanda(201.95082,47.437951,47.55409,137.55409,1,7.9280014",3.9640007",11.892002",5.946001",1,2.55409);bpanda(201.95082,47.437951,137.55409,227.55409,1,7.9280014",3.9640007",11.892002",5.946001",1,2.55409);
\ No newline at end of file
diff --git a/tests/ds9.fk5.hms.reg b/tests/ds9.fk5.hms.reg
index 69f3832..7e0c7e1 100644
--- a/tests/ds9.fk5.hms.reg
+++ b/tests/ds9.fk5.hms.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
fk5
-circle(13:29:56.891,+47:12:29.65,3.964") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(13:29:55.941,+47:12:16.17,7.928",3.964",2.39831) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(13:29:54.679,+47:12:03.80,15.856",7.928",2.39831) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(13:29:53.543,+47:11:56.12,13:29:52.505,+47:11:56.56,13:29:52.462,+47:11:45.99,13:29:53.499,+47:11:45.55) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(13:29:52.415,+47:11:38.82,13:29:50.885,+47:11:38.21) # line=1 1 color=cyan text={Line}
-# vector(13:29:50.781,+47:11:29.41,7.928",2.39831) vector=1 color=red text={Vector}
-# text(13:29:50.178,+47:11:19.99) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(13:29:55.623,+47:11:38.99,13:29:53.930,+47:11:39.02) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(13:29:58.365,+47:12:13.31,1.982",3.964",5.946") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(13:29:57.201,+47:12:01.32,2.973",1.4865",5.946",2.973",2.39831) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(13:29:55.969,+47:11:49.51,7.928",3.964",11.892",5.946",2.39831) # font="helvetica 10 bold roman" text={Box Annulus}
-point(13:29:59.689,+47:12:00.68) # point=circle text={Circle Point}
-point(13:29:58.442,+47:11:48.45) # point=box color=red width=3 text={Box Point}
-point(13:29:57.256,+47:11:37.88) # point=diamond text={Diamond Point}
-point(13:30:00.120,+47:11:51.52) # point=cross color=blue text={Cross Point}
-point(13:29:59.018,+47:11:41.47) # point=x text={X Point}
-point(13:29:57.955,+47:11:30.70) # point=arrow color=magenta text={Arrow Point}
-point(13:29:59.674,+47:11:33.61) # point=boxcircle text={BoxCircle Point}
-# projection(13:29:54.266,+47:11:23.58,13:29:52.066,+47:11:20.73,3.964") text={Projection}
-panda(13:29:55.839,+47:11:24.59,317.398,587.398,3,0",5.946",2) # text={Panda}
-panda(13:29:57.008,+47:11:11.05,8.98021,47.3983,1,0",2.973",1) # panda=(8.98021 47.3983 137.398 227.398)(0" 2.973" 5.946") text={Panda 2}
-panda(13:29:57.008,+47:11:11.05,8.98021,47.3983,1,2.973",5.946",1) # panda=ignore
-panda(13:29:57.008,+47:11:11.05,47.3983,137.398,1,0",2.973",1) # panda=ignore
-panda(13:29:57.008,+47:11:11.05,47.3983,137.398,1,2.973",5.946",1) # panda=ignore
-panda(13:29:57.008,+47:11:11.05,137.398,227.398,1,0",2.973",1) # panda=ignore
-panda(13:29:57.008,+47:11:11.05,137.398,227.398,1,2.973",5.946",1) # panda=ignore
-# compass(13:29:52.244,+47:11:10.28,7.928") compass=physical {N} {E} 1 1 text={Compass}
-epanda(13:29:54.770,+47:11:12.43,317.398,587.398,3,2.973",1.4865",5.946",2.973",1,2.39831) # text={Epanda}
-epanda(13:29:55.899,+47:10:59.04,2.39831,47.3983,1,2.973",1.4865",5.946",2.973",1,2.39831) # epanda=(2.39831 47.3983 137.398 227.398)(2.973" 1.4865" 5.946" 2.973")(2.39831) text={Epanda 2}
-epanda(13:29:55.899,+47:10:59.04,47.3983,137.398,1,2.973",1.4865",5.946",2.973",1,2.39831) # epanda=ignore
-epanda(13:29:55.899,+47:10:59.04,137.398,227.398,1,2.973",1.4865",5.946",2.973",1,2.39831) # epanda=ignore
-bpanda(13:29:53.525,+47:11:00.75,317.398,587.398,3,7.928",3.964",11.892",5.946",1,2.39831) # text={Bpanda}
-bpanda(13:29:54.741,+47:10:48.45,2.39831,47.3983,1,7.928",3.964",11.892",5.946",1,2.39831) # bpanda=(2.39831 47.3983 137.398 227.398)(7.928" 3.964" 11.892" 5.946")(2.39831) text={Bpanda 2}
-bpanda(13:29:54.741,+47:10:48.45,47.3983,137.398,1,7.928",3.964",11.892",5.946",1,2.39831) # bpanda=ignore
-bpanda(13:29:54.741,+47:10:48.45,137.398,227.398,1,7.928",3.964",11.892",5.946",1,2.39831) # bpanda=ignore
-# circle3d(13:29:52.715,+47:10:44.27,1.982") text={Circle3d}
+circle(13:29:56.743,+47:12:30.42,3.964") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(13:29:55.792,+47:12:16.94,7.928",3.964",2.39831) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(13:29:54.530,+47:12:04.57,15.856",7.928",2.39831) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(13:29:53.394,+47:11:56.88,13:29:52.357,+47:11:57.32,13:29:52.314,+47:11:46.75,13:29:53.351,+47:11:46.31) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(13:29:52.267,+47:11:39.58,13:29:50.737,+47:11:38.97) # line=1 1 color=cyan text={Line}
+# vector(13:29:50.632,+47:11:30.18,7.928",2.39831) vector=1 color=red text={Vector}
+# text(13:29:50.030,+47:11:20.75) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(13:29:55.474,+47:11:39.76,13:29:53.782,+47:11:39.78) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(13:29:58.217,+47:12:14.07,1.982",3.964",5.946") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(13:29:57.053,+47:12:02.09,2.973",1.4865",5.946",2.973",2.39831) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(13:29:55.820,+47:11:50.27,7.928",3.964",11.892",5.946",2.39831) # font="helvetica 10 bold roman" text={Box Annulus}
+point(13:29:59.541,+47:12:01.44) # point=circle text={Circle Point}
+point(13:29:58.293,+47:11:49.21) # point=box color=red width=3 text={Box Point}
+point(13:29:57.107,+47:11:38.64) # point=diamond text={Diamond Point}
+point(13:29:59.971,+47:11:52.28) # point=cross color=blue text={Cross Point}
+point(13:29:58.870,+47:11:42.23) # point=x text={X Point}
+point(13:29:57.807,+47:11:31.47) # point=arrow color=magenta text={Arrow Point}
+point(13:29:59.526,+47:11:34.38) # point=boxcircle text={BoxCircle Point}
+# projection(13:29:54.118,+47:11:24.35,13:29:51.918,+47:11:21.50,3.964") text={Projection}
+panda(13:29:55.690,+47:11:25.36,317.398,587.398,3,0",5.946",2) # text={Panda}
+panda(13:29:56.859,+47:11:11.81,8.98021,47.3983,1,0",2.973",1) # panda=(8.98021 47.3983 137.398 227.398)(0" 2.973" 5.946") text={Panda 2}
+panda(13:29:56.859,+47:11:11.81,8.98021,47.3983,1,2.973",5.946",1) # panda=ignore
+panda(13:29:56.859,+47:11:11.81,47.3983,137.398,1,0",2.973",1) # panda=ignore
+panda(13:29:56.859,+47:11:11.81,47.3983,137.398,1,2.973",5.946",1) # panda=ignore
+panda(13:29:56.859,+47:11:11.81,137.398,227.398,1,0",2.973",1) # panda=ignore
+panda(13:29:56.859,+47:11:11.81,137.398,227.398,1,2.973",5.946",1) # panda=ignore
+# compass(13:29:52.095,+47:11:11.04,7.928") compass=physical {N} {E} 1 1 text={Compass}
+epanda(13:29:54.622,+47:11:13.19,317.398,587.398,3,2.973",1.4865",5.946",2.973",1,2.39831) # text={Epanda}
+epanda(13:29:55.750,+47:10:59.80,2.39831,47.3983,1,2.973",1.4865",5.946",2.973",1,2.39831) # epanda=(2.39831 47.3983 137.398 227.398)(2.973" 1.4865" 5.946" 2.973")(2.39831) text={Epanda 2}
+epanda(13:29:55.750,+47:10:59.80,47.3983,137.398,1,2.973",1.4865",5.946",2.973",1,2.39831) # epanda=ignore
+epanda(13:29:55.750,+47:10:59.80,137.398,227.398,1,2.973",1.4865",5.946",2.973",1,2.39831) # epanda=ignore
+bpanda(13:29:53.377,+47:11:01.52,317.398,587.398,3,7.928",3.964",11.892",5.946",1,2.39831) # text={Bpanda}
+bpanda(13:29:54.593,+47:10:49.22,2.39831,47.3983,1,7.928",3.964",11.892",5.946",1,2.39831) # bpanda=(2.39831 47.3983 137.398 227.398)(7.928" 3.964" 11.892" 5.946")(2.39831) text={Bpanda 2}
+bpanda(13:29:54.593,+47:10:49.22,47.3983,137.398,1,7.928",3.964",11.892",5.946",1,2.39831) # bpanda=ignore
+bpanda(13:29:54.593,+47:10:49.22,137.398,227.398,1,7.928",3.964",11.892",5.946",1,2.39831) # bpanda=ignore
diff --git a/tests/ds9.fk5.hms.strip.reg b/tests/ds9.fk5.hms.strip.reg
index 8287822..1c97a4b 100644
--- a/tests/ds9.fk5.hms.strip.reg
+++ b/tests/ds9.fk5.hms.strip.reg
@@ -1 +1 @@
-fk5;circle(13:29:56.891,+47:12:29.65,3.964");-ellipse(13:29:55.941,+47:12:16.17,7.928",3.964",2.39831);-box(13:29:54.679,+47:12:03.80,15.856",7.928",2.39831);polygon(13:29:53.543,+47:11:56.12,13:29:52.505,+47:11:56.56,13:29:52.462,+47:11:45.99,13:29:53.499,+47:11:45.55);-line(13:29:52.415,+47:11:38.82,13:29:50.885,+47:11:38.21);annulus(13:29:58.365,+47:12:13.31,1.982",3.964",5.946");ellipse(13:29:57.201,+47:12:01.32,2.973",1.4865",5.946",2.973",2.39831);box(13:29:55.969,+47:11:49.51,7.928",3.964",11.892",5.946",2.39831);point(13:29:59.689,+47:12:00.68);point(13:29:58.442,+47:11:48.45);point(13:29:57.256,+47:11:37.88);point(13:30:00.120,+47:11:51.52);point(13:29:59.018,+47:11:41.47);point(13:29:57.955,+47:11:30.70);point(13:29:59.674,+47:11:33.61);panda(13:29:55.839,+47:11:24.59,317.398,587.398,3,0",5.946",2);panda(13:29:57.008,+47:11:11.05,8.98021,47.3983,1,0",2.973",1);panda(13:29:57.008,+47:11:11.05,8.98021,47.3983,1,2.973",5.946",1);panda(13:29:57.008,+47:11:11.05,47.3983,137.398,1,0",2.973",1);panda(13:29:57.008,+47:11:11.05,47.3983,137.398,1,2.973",5.946",1);panda(13:29:57.008,+47:11:11.05,137.398,227.398,1,0",2.973",1);panda(13:29:57.008,+47:11:11.05,137.398,227.398,1,2.973",5.946",1);epanda(13:29:54.770,+47:11:12.43,317.398,587.398,3,2.973",1.4865",5.946",2.973",1,2.39831);epanda(13:29:55.899,+47:10:59.04,2.39831,47.3983,1,2.973",1.4865",5.946",2.973",1,2.39831);epanda(13:29:55.899,+47:10:59.04,47.3983,137.398,1,2.973",1.4865",5.946",2.973",1,2.39831);epanda(13:29:55.899,+47:10:59.04,137.398,227.398,1,2.973",1.4865",5.946",2.973",1,2.39831);bpanda(13:29:53.525,+47:11:00.75,317.398,587.398,3,7.928",3.964",11.892",5.946",1,2.39831);bpanda(13:29:54.741,+47:10:48.45,2.39831,47.3983,1,7.928",3.964",11.892",5.946",1,2.39831);bpanda(13:29:54.741,+47:10:48.45,47.3983,137.398,1,7.928",3.964",11.892",5.946",1,2.39831);bpanda(13:29:54.741,+47:10:48.45,137.398,227.398,1,7.928",3.964",11.892",5.946",1,2.39831);
\ No newline at end of file
+fk5;circle(13:29:56.743,+47:12:30.42,3.964");-ellipse(13:29:55.792,+47:12:16.94,7.928",3.964",2.39831);-box(13:29:54.530,+47:12:04.57,15.856",7.928",2.39831);polygon(13:29:53.394,+47:11:56.88,13:29:52.357,+47:11:57.32,13:29:52.314,+47:11:46.75,13:29:53.351,+47:11:46.31);-line(13:29:52.267,+47:11:39.58,13:29:50.737,+47:11:38.97);annulus(13:29:58.217,+47:12:14.07,1.982",3.964",5.946");ellipse(13:29:57.053,+47:12:02.09,2.973",1.4865",5.946",2.973",2.39831);box(13:29:55.820,+47:11:50.27,7.928",3.964",11.892",5.946",2.39831);point(13:29:59.541,+47:12:01.44);point(13:29:58.293,+47:11:49.21);point(13:29:57.107,+47:11:38.64);point(13:29:59.971,+47:11:52.28);point(13:29:58.870,+47:11:42.23);point(13:29:57.807,+47:11:31.47);point(13:29:59.526,+47:11:34.38);panda(13:29:55.690,+47:11:25.36,317.398,587.398,3,0",5.946",2);panda(13:29:56.859,+47:11:11.81,8.98021,47.3983,1,0",2.973",1);panda(13:29:56.859,+47:11:11.81,8.98021,47.3983,1,2.973",5.946",1);panda(13:29:56.859,+47:11:11.81,47.3983,137.398,1,0",2.973",1);panda(13:29:56.859,+47:11:11.81,47.3983,137.398,1,2.973",5.946",1);panda(13:29:56.859,+47:11:11.81,137.398,227.398,1,0",2.973",1);panda(13:29:56.859,+47:11:11.81,137.398,227.398,1,2.973",5.946",1);epanda(13:29:54.622,+47:11:13.19,317.398,587.398,3,2.973",1.4865",5.946",2.973",1,2.39831);epanda(13:29:55.750,+47:10:59.80,2.39831,47.3983,1,2.973",1.4865",5.946",2.973",1,2.39831);epanda(13:29:55.750,+47:10:59.80,47.3983,137.398,1,2.973",1.4865",5.946",2.973",1,2.39831);epanda(13:29:55.750,+47:10:59.80,137.398,227.398,1,2.973",1.4865",5.946",2.973",1,2.39831);bpanda(13:29:53.377,+47:11:01.52,317.398,587.398,3,7.928",3.964",11.892",5.946",1,2.39831);bpanda(13:29:54.593,+47:10:49.22,2.39831,47.3983,1,7.928",3.964",11.892",5.946",1,2.39831);bpanda(13:29:54.593,+47:10:49.22,47.3983,137.398,1,7.928",3.964",11.892",5.946",1,2.39831);bpanda(13:29:54.593,+47:10:49.22,137.398,227.398,1,7.928",3.964",11.892",5.946",1,2.39831);
\ No newline at end of file
diff --git a/tests/ds9.fk5.reg b/tests/ds9.fk5.reg
index 6c1b3ed..7aecfb4 100644
--- a/tests/ds9.fk5.reg
+++ b/tests/ds9.fk5.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
fk5
-circle(202.48705,47.208237,3.9640007") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(202.48309,47.204492,7.9280014",3.9640007",2.3983109) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(202.47783,47.201057,15.856003",7.9280014",2.3983109) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(202.47309,47.198922,202.46877,47.199044,202.46859,47.196108,202.47291,47.195985) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(202.4684,47.194116,202.46202,47.193946) # line=1 1 color=cyan text={Line}
-# vector(202.46159,47.191504,7.9280014",2.3983109) vector=1 color=red text={Vector}
-# text(202.45907,47.188886) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(202.48176,47.194165,202.47471,47.194171) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(202.49319,47.203697,1.9820003",3.9640007",5.946001") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(202.48834,47.200368,2.9730005",1.4865003",5.946001",2.9730005",2.3983109) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(202.4832,47.197085,7.9280014",3.9640007",11.892002",5.946001",2.3983109) # font="helvetica 10 bold roman" text={Box Annulus}
-point(202.49871,47.200189) # point=circle text={Circle Point}
-point(202.49351,47.196791) # point=box color=red width=3 text={Box Point}
-point(202.48857,47.193854) # point=diamond text={Diamond Point}
-point(202.5005,47.197643) # point=cross color=blue text={Cross Point}
-point(202.49591,47.194852) # point=x text={X Point}
-point(202.49148,47.191862) # point=arrow color=magenta text={Arrow Point}
-point(202.49864,47.19267) # point=boxcircle text={BoxCircle Point}
-# projection(202.47611,47.189884,202.46694,47.189092,3.9640007") text={Projection}
-panda(202.48266,47.190165,317.39831,587.39831,3,0",5.946001",2) # text={Panda}
-panda(202.48753,47.186403,8.9802109,47.398311,1,0",2.9730005",1) # panda=(8.9802109 47.398311 137.39831 227.39831)(0" 2.9730005" 5.946001") text={Panda 2}
-panda(202.48753,47.186403,8.9802109,47.398311,1,2.9730005",5.946001",1) # panda=ignore
-panda(202.48753,47.186403,47.398311,137.39831,1,0",2.9730005",1) # panda=ignore
-panda(202.48753,47.186403,47.398311,137.39831,1,2.9730005",5.946001",1) # panda=ignore
-panda(202.48753,47.186403,137.39831,227.39831,1,0",2.9730005",1) # panda=ignore
-panda(202.48753,47.186403,137.39831,227.39831,1,2.9730005",5.946001",1) # panda=ignore
-# compass(202.46768,47.186188,7.9280014") compass=physical {N} {E} 1 1 text={Compass}
-epanda(202.47821,47.186785,317.39831,587.39831,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # text={Epanda}
-epanda(202.48291,47.183066,2.3983109,47.398311,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # epanda=(2.3983109 47.398311 137.39831 227.39831)(2.9730005" 1.4865003" 5.946001" 2.9730005")(2.3983109) text={Epanda 2}
-epanda(202.48291,47.183066,47.398311,137.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # epanda=ignore
-epanda(202.48291,47.183066,137.39831,227.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # epanda=ignore
-bpanda(202.47302,47.183543,317.39831,587.39831,3,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # text={Bpanda}
-bpanda(202.47809,47.180126,2.3983109,47.398311,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # bpanda=(2.3983109 47.398311 137.39831 227.39831)(7.9280014" 3.9640007" 11.892002" 5.946001")(2.3983109) text={Bpanda 2}
-bpanda(202.47809,47.180126,47.398311,137.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # bpanda=ignore
-bpanda(202.47809,47.180126,137.39831,227.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # bpanda=ignore
-# circle3d(202.46965,47.178963,1.9820003") text={Circle3d}
+circle(202.48643,47.208449,3.9640007") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(202.48247,47.204704,7.9280014",3.9640007",2.3983109) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(202.47721,47.201269,15.856003",7.9280014",2.3983109) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(202.47248,47.199134,202.46815,47.199257,202.46797,47.19632,202.4723,47.196197) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(202.46778,47.194329,202.4614,47.194158) # line=1 1 color=cyan text={Line}
+# vector(202.46097,47.191716,7.9280014",2.3983109) vector=1 color=red text={Vector}
+# text(202.45846,47.189099) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(202.48114,47.194378,202.47409,47.194383) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(202.49257,47.20391,1.9820003",3.9640007",5.946001") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(202.48772,47.20058,2.9730005",1.4865003",5.946001",2.9730005",2.3983109) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(202.48258,47.197298,7.9280014",3.9640007",11.892002",5.946001",2.3983109) # font="helvetica 10 bold roman" text={Box Annulus}
+point(202.49809,47.200401) # point=circle text={Circle Point}
+point(202.49289,47.197004) # point=box color=red width=3 text={Box Point}
+point(202.48795,47.194067) # point=diamond text={Diamond Point}
+point(202.49988,47.197856) # point=cross color=blue text={Cross Point}
+point(202.49529,47.195065) # point=x text={X Point}
+point(202.49086,47.192074) # point=arrow color=magenta text={Arrow Point}
+point(202.49802,47.192883) # point=boxcircle text={BoxCircle Point}
+# projection(202.47549,47.190096,202.46632,47.189304,3.9640007") text={Projection}
+panda(202.48204,47.190378,317.39831,587.39831,3,0",5.946001",2) # text={Panda}
+panda(202.48691,47.186615,8.9802109,47.398311,1,0",2.9730005",1) # panda=(8.9802109 47.398311 137.39831 227.39831)(0" 2.9730005" 5.946001") text={Panda 2}
+panda(202.48691,47.186615,8.9802109,47.398311,1,2.9730005",5.946001",1) # panda=ignore
+panda(202.48691,47.186615,47.398311,137.39831,1,0",2.9730005",1) # panda=ignore
+panda(202.48691,47.186615,47.398311,137.39831,1,2.9730005",5.946001",1) # panda=ignore
+panda(202.48691,47.186615,137.39831,227.39831,1,0",2.9730005",1) # panda=ignore
+panda(202.48691,47.186615,137.39831,227.39831,1,2.9730005",5.946001",1) # panda=ignore
+# compass(202.46706,47.1864,7.9280014") compass=physical {N} {E} 1 1 text={Compass}
+epanda(202.47759,47.186997,317.39831,587.39831,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # text={Epanda}
+epanda(202.48229,47.183279,2.3983109,47.398311,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # epanda=(2.3983109 47.398311 137.39831 227.39831)(2.9730005" 1.4865003" 5.946001" 2.9730005")(2.3983109) text={Epanda 2}
+epanda(202.48229,47.183279,47.398311,137.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # epanda=ignore
+epanda(202.48229,47.183279,137.39831,227.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # epanda=ignore
+bpanda(202.47241,47.183755,317.39831,587.39831,3,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # text={Bpanda}
+bpanda(202.47747,47.180338,2.3983109,47.398311,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # bpanda=(2.3983109 47.398311 137.39831 227.39831)(7.9280014" 3.9640007" 11.892002" 5.946001")(2.3983109) text={Bpanda 2}
+bpanda(202.47747,47.180338,47.398311,137.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # bpanda=ignore
+bpanda(202.47747,47.180338,137.39831,227.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # bpanda=ignore
diff --git a/tests/ds9.fk5.strip.reg b/tests/ds9.fk5.strip.reg
index ed02170..78afd15 100644
--- a/tests/ds9.fk5.strip.reg
+++ b/tests/ds9.fk5.strip.reg
@@ -1 +1 @@
-fk5;circle(202.48705,47.208237,3.9640007");-ellipse(202.48309,47.204492,7.9280014",3.9640007",2.3983109);-box(202.47783,47.201057,15.856003",7.9280014",2.3983109);polygon(202.47309,47.198922,202.46877,47.199044,202.46859,47.196108,202.47291,47.195985);-line(202.4684,47.194116,202.46202,47.193946);annulus(202.49319,47.203697,1.9820003",3.9640007",5.946001");ellipse(202.48834,47.200368,2.9730005",1.4865003",5.946001",2.9730005",2.3983109);box(202.4832,47.197085,7.9280014",3.9640007",11.892002",5.946001",2.3983109);point(202.49871,47.200189);point(202.49351,47.196791);point(202.48857,47.193854);point(202.5005,47.197643);point(202.49591,47.194852);point(202.49148,47.191862);point(202.49864,47.19267);panda(202.48266,47.190165,317.39831,587.39831,3,0",5.946001",2);panda(202.48753,47.186403,8.9802109,47.398311,1,0",2.9730005",1);panda(202.48753,47.186403,8.9802109,47.398311,1,2.9730005",5.946001",1);panda(202.48753,47.186403,47.398311,137.39831,1,0",2.9730005",1);panda(202.48753,47.186403,47.398311,137.39831,1,2.9730005",5.946001",1);panda(202.48753,47.186403,137.39831,227.39831,1,0",2.9730005",1);panda(202.48753,47.186403,137.39831,227.39831,1,2.9730005",5.946001",1);epanda(202.47821,47.186785,317.39831,587.39831,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);epanda(202.48291,47.183066,2.3983109,47.398311,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);epanda(202.48291,47.183066,47.398311,137.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);epanda(202.48291,47.183066,137.39831,227.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);bpanda(202.47302,47.183543,317.39831,587.39831,3,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);bpanda(202.47809,47.180126,2.3983109,47.398311,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);bpanda(202.47809,47.180126,47.398311,137.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);bpanda(202.47809,47.180126,137.39831,227.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);
\ No newline at end of file
+fk5;circle(202.48643,47.208449,3.9640007");-ellipse(202.48247,47.204704,7.9280014",3.9640007",2.3983109);-box(202.47721,47.201269,15.856003",7.9280014",2.3983109);polygon(202.47248,47.199134,202.46815,47.199257,202.46797,47.19632,202.4723,47.196197);-line(202.46778,47.194329,202.4614,47.194158);annulus(202.49257,47.20391,1.9820003",3.9640007",5.946001");ellipse(202.48772,47.20058,2.9730005",1.4865003",5.946001",2.9730005",2.3983109);box(202.48258,47.197298,7.9280014",3.9640007",11.892002",5.946001",2.3983109);point(202.49809,47.200401);point(202.49289,47.197004);point(202.48795,47.194067);point(202.49988,47.197856);point(202.49529,47.195065);point(202.49086,47.192074);point(202.49802,47.192883);panda(202.48204,47.190378,317.39831,587.39831,3,0",5.946001",2);panda(202.48691,47.186615,8.9802109,47.398311,1,0",2.9730005",1);panda(202.48691,47.186615,8.9802109,47.398311,1,2.9730005",5.946001",1);panda(202.48691,47.186615,47.398311,137.39831,1,0",2.9730005",1);panda(202.48691,47.186615,47.398311,137.39831,1,2.9730005",5.946001",1);panda(202.48691,47.186615,137.39831,227.39831,1,0",2.9730005",1);panda(202.48691,47.186615,137.39831,227.39831,1,2.9730005",5.946001",1);epanda(202.47759,47.186997,317.39831,587.39831,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);epanda(202.48229,47.183279,2.3983109,47.398311,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);epanda(202.48229,47.183279,47.398311,137.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);epanda(202.48229,47.183279,137.39831,227.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);bpanda(202.47241,47.183755,317.39831,587.39831,3,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);bpanda(202.47747,47.180338,2.3983109,47.398311,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);bpanda(202.47747,47.180338,47.398311,137.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);bpanda(202.47747,47.180338,137.39831,227.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);
\ No newline at end of file
diff --git a/tests/ds9.galactic.hms.reg b/tests/ds9.galactic.hms.reg
index 2091edf..f00999e 100644
--- a/tests/ds9.galactic.hms.reg
+++ b/tests/ds9.galactic.hms.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
galactic
-circle(+104:50:10.908,+68:32:38.464,3.964") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(+104:50:20.096,+68:32:54.718,7.928",3.964",158.389) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(+104:50:38.471,+68:33:11.247,15.856",7.928",158.389) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(+104:50:58.854,+68:33:22.977,+104:51:25.768,+68:33:26.871,+104:51:15.116,+68:33:36.710,+104:50:48.199,+68:33:32.816) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(+104:51:08.330,+68:33:43.453,+104:51:46.639,+68:33:50.350) # line=1 1 color=cyan text={Line}
-# vector(+104:51:39.534,+68:33:58.818,7.928",158.389) vector=1 color=red text={Vector}
-# text(+104:51:44.421,+68:34:09.924) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(+104:49:46.822,+68:33:29.997,+104:50:29.960,+68:33:36.996) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(+104:49:15.203,+68:32:47.274,1.982",3.964",5.946") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(+104:49:31.493,+68:33:03.053,2.973",1.4865",5.946",2.973",158.389) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(+104:49:49.713,+68:33:18.959,7.928",3.964",11.892",5.946",158.389) # font="helvetica 10 bold roman" text={Box Annulus}
-point(+104:48:27.434,+68:32:53.313) # point=circle text={Circle Point}
-point(+104:48:45.571,+68:33:09.663) # point=box color=red width=3 text={Box Point}
-point(+104:49:03.986,+68:33:24.243) # point=diamond text={Diamond Point}
-point(+104:48:06.279,+68:32:59.893) # point=cross color=blue text={Cross Point}
-point(+104:48:23.111,+68:33:13.643) # point=x text={X Point}
-point(+104:48:38.174,+68:33:27.889) # point=arrow color=magenta text={Arrow Point}
-point(+104:47:57.663,+68:33:18.094) # point=boxcircle text={BoxCircle Point}
-# projection(+104:50:04.231,+68:33:49.703,+104:50:57.113,+68:34:01.425,3.964") text={Projection}
-panda(+104:49:25.285,+68:33:42.254,113.389,383.389,3,0",5.946",2) # text={Panda}
-panda(+104:48:40.416,+68:33:49.773,164.971,203.389,1,0",2.973",1) # panda=(164.971 203.389 293.389 23.3893)(0" 2.973" 5.946") text={Panda 2}
-panda(+104:48:40.416,+68:33:49.773,164.971,203.389,1,2.973",5.946",1) # panda=ignore
-panda(+104:48:40.416,+68:33:49.773,203.389,293.389,1,0",2.973",1) # panda=ignore
-panda(+104:48:40.416,+68:33:49.773,203.389,293.389,1,2.973",5.946",1) # panda=ignore
-panda(+104:48:40.416,+68:33:49.773,293.389,383.389,1,0",2.973",1) # panda=ignore
-panda(+104:48:40.416,+68:33:49.773,293.389,383.389,1,2.973",5.946",1) # panda=ignore
-# compass(+104:50:40.959,+68:34:10.243,7.928") compass=physical {N} {E} 1 1 text={Compass}
-epanda(+104:49:38.951,+68:33:57.801,113.389,383.389,3,2.973",1.4865",5.946",2.973",1,158.389) # text={Epanda}
-epanda(+104:48:55.286,+68:34:05.346,158.389,203.389,1,2.973",1.4865",5.946",2.973",1,158.389) # epanda=(158.389 203.389 293.389 23.3893)(2.973" 1.4865" 5.946" 2.973")(158.389) text={Epanda 2}
-epanda(+104:48:55.286,+68:34:05.346,203.389,293.389,1,2.973",1.4865",5.946",2.973",1,158.389) # epanda=ignore
-epanda(+104:48:55.286,+68:34:05.346,293.389,383.389,1,2.973",1.4865",5.946",2.973",1,158.389) # epanda=ignore
-bpanda(+104:49:57.683,+68:34:13.628,113.389,383.389,3,7.928",3.964",11.892",5.946",1,158.389) # text={Bpanda}
-bpanda(+104:49:13.002,+68:34:19.822,158.389,203.389,1,7.928",3.964",11.892",5.946",1,158.389) # bpanda=(158.389 203.389 293.389 23.3893)(7.928" 3.964" 11.892" 5.946")(158.389) text={Bpanda 2}
-bpanda(+104:49:13.002,+68:34:19.822,203.389,293.389,1,7.928",3.964",11.892",5.946",1,158.389) # bpanda=ignore
-bpanda(+104:49:13.002,+68:34:19.822,293.389,383.389,1,7.928",3.964",11.892",5.946",1,158.389) # bpanda=ignore
-# circle3d(+104:49:59.987,+68:34:32.051,1.982") text={Circle3d}
+circle(+104:50:15.532,+68:32:38.380,3.964") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(+104:50:24.720,+68:32:54.634,7.928",3.964",158.389) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(+104:50:43.097,+68:33:11.163,15.856",7.928",158.389) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(+104:51:03.480,+68:33:22.893,+104:51:30.395,+68:33:26.787,+104:51:19.743,+68:33:36.626,+104:50:52.826,+68:33:32.732) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(+104:51:12.957,+68:33:43.369,+104:51:51.267,+68:33:50.265) # line=1 1 color=cyan text={Line}
+# vector(+104:51:44.162,+68:33:58.733,7.928",158.389) vector=1 color=red text={Vector}
+# text(+104:51:49.050,+68:34:09.839) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(+104:49:51.449,+68:33:29.913,+104:50:34.587,+68:33:36.913) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(+104:49:19.827,+68:32:47.191,1.982",3.964",5.946") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(+104:49:36.118,+68:33:02.969,2.973",1.4865",5.946",2.973",158.389) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(+104:49:54.339,+68:33:18.875,7.928",3.964",11.892",5.946",158.389) # font="helvetica 10 bold roman" text={Box Annulus}
+point(+104:48:32.059,+68:32:53.230) # point=circle text={Circle Point}
+point(+104:48:50.197,+68:33:09.580) # point=box color=red width=3 text={Box Point}
+point(+104:49:08.613,+68:33:24.159) # point=diamond text={Diamond Point}
+point(+104:48:10.904,+68:32:59.810) # point=cross color=blue text={Cross Point}
+point(+104:48:27.737,+68:33:13.560) # point=x text={X Point}
+point(+104:48:42.801,+68:33:27.806) # point=arrow color=magenta text={Arrow Point}
+point(+104:48:02.289,+68:33:18.011) # point=boxcircle text={BoxCircle Point}
+# projection(+104:50:08.859,+68:33:49.619,+104:51:01.742,+68:34:01.341,3.964") text={Projection}
+panda(+104:49:29.913,+68:33:42.170,113.389,383.389,3,0",5.946",2) # text={Panda}
+panda(+104:48:45.044,+68:33:49.690,164.971,203.389,1,0",2.973",1) # panda=(164.971 203.389 293.389 23.3893)(0" 2.973" 5.946") text={Panda 2}
+panda(+104:48:45.044,+68:33:49.690,164.971,203.389,1,2.973",5.946",1) # panda=ignore
+panda(+104:48:45.044,+68:33:49.690,203.389,293.389,1,0",2.973",1) # panda=ignore
+panda(+104:48:45.044,+68:33:49.690,203.389,293.389,1,2.973",5.946",1) # panda=ignore
+panda(+104:48:45.044,+68:33:49.690,293.389,383.389,1,0",2.973",1) # panda=ignore
+panda(+104:48:45.044,+68:33:49.690,293.389,383.389,1,2.973",5.946",1) # panda=ignore
+# compass(+104:50:45.588,+68:34:10.159,7.928") compass=physical {N} {E} 1 1 text={Compass}
+epanda(+104:49:43.580,+68:33:57.717,113.389,383.389,3,2.973",1.4865",5.946",2.973",1,158.389) # text={Epanda}
+epanda(+104:48:59.915,+68:34:05.263,158.389,203.389,1,2.973",1.4865",5.946",2.973",1,158.389) # epanda=(158.389 203.389 293.389 23.3893)(2.973" 1.4865" 5.946" 2.973")(158.389) text={Epanda 2}
+epanda(+104:48:59.915,+68:34:05.263,203.389,293.389,1,2.973",1.4865",5.946",2.973",1,158.389) # epanda=ignore
+epanda(+104:48:59.915,+68:34:05.263,293.389,383.389,1,2.973",1.4865",5.946",2.973",1,158.389) # epanda=ignore
+bpanda(+104:50:02.312,+68:34:13.544,113.389,383.389,3,7.928",3.964",11.892",5.946",1,158.389) # text={Bpanda}
+bpanda(+104:49:17.632,+68:34:19.739,158.389,203.389,1,7.928",3.964",11.892",5.946",1,158.389) # bpanda=(158.389 203.389 293.389 23.3893)(7.928" 3.964" 11.892" 5.946")(158.389) text={Bpanda 2}
+bpanda(+104:49:17.632,+68:34:19.739,203.389,293.389,1,7.928",3.964",11.892",5.946",1,158.389) # bpanda=ignore
+bpanda(+104:49:17.632,+68:34:19.739,293.389,383.389,1,7.928",3.964",11.892",5.946",1,158.389) # bpanda=ignore
diff --git a/tests/ds9.galactic.hms.strip.reg b/tests/ds9.galactic.hms.strip.reg
index ed061ef..af30ccb 100644
--- a/tests/ds9.galactic.hms.strip.reg
+++ b/tests/ds9.galactic.hms.strip.reg
@@ -1 +1 @@
-galactic;circle(+104:50:10.908,+68:32:38.464,3.964");-ellipse(+104:50:20.096,+68:32:54.718,7.928",3.964",158.389);-box(+104:50:38.471,+68:33:11.247,15.856",7.928",158.389);polygon(+104:50:58.854,+68:33:22.977,+104:51:25.768,+68:33:26.871,+104:51:15.116,+68:33:36.710,+104:50:48.199,+68:33:32.816);-line(+104:51:08.330,+68:33:43.453,+104:51:46.639,+68:33:50.350);annulus(+104:49:15.203,+68:32:47.274,1.982",3.964",5.946");ellipse(+104:49:31.493,+68:33:03.053,2.973",1.4865",5.946",2.973",158.389);box(+104:49:49.713,+68:33:18.959,7.928",3.964",11.892",5.946",158.389);point(+104:48:27.434,+68:32:53.313);point(+104:48:45.571,+68:33:09.663);point(+104:49:03.986,+68:33:24.243);point(+104:48:06.279,+68:32:59.893);point(+104:48:23.111,+68:33:13.643);point(+104:48:38.174,+68:33:27.889);point(+104:47:57.663,+68:33:18.094);panda(+104:49:25.285,+68:33:42.254,113.389,383.389,3,0",5.946",2);panda(+104:48:40.416,+68:33:49.773,164.971,203.389,1,0",2.973",1);panda(+104:48:40.416,+68:33:49.773,164.971,203.389,1,2.973",5.946",1);panda(+104:48:40.416,+68:33:49.773,203.389,293.389,1,0",2.973",1);panda(+104:48:40.416,+68:33:49.773,203.389,293.389,1,2.973",5.946",1);panda(+104:48:40.416,+68:33:49.773,293.389,383.389,1,0",2.973",1);panda(+104:48:40.416,+68:33:49.773,293.389,383.389,1,2.973",5.946",1);epanda(+104:49:38.951,+68:33:57.801,113.389,383.389,3,2.973",1.4865",5.946",2.973",1,158.389);epanda(+104:48:55.286,+68:34:05.346,158.389,203.389,1,2.973",1.4865",5.946",2.973",1,158.389);epanda(+104:48:55.286,+68:34:05.346,203.389,293.389,1,2.973",1.4865",5.946",2.973",1,158.389);epanda(+104:48:55.286,+68:34:05.346,293.389,383.389,1,2.973",1.4865",5.946",2.973",1,158.389);bpanda(+104:49:57.683,+68:34:13.628,113.389,383.389,3,7.928",3.964",11.892",5.946",1,158.389);bpanda(+104:49:13.002,+68:34:19.822,158.389,203.389,1,7.928",3.964",11.892",5.946",1,158.389);bpanda(+104:49:13.002,+68:34:19.822,203.389,293.389,1,7.928",3.964",11.892",5.946",1,158.389);bpanda(+104:49:13.002,+68:34:19.822,293.389,383.389,1,7.928",3.964",11.892",5.946",1,158.389);
\ No newline at end of file
+galactic;circle(+104:50:15.532,+68:32:38.380,3.964");-ellipse(+104:50:24.720,+68:32:54.634,7.928",3.964",158.389);-box(+104:50:43.097,+68:33:11.163,15.856",7.928",158.389);polygon(+104:51:03.480,+68:33:22.893,+104:51:30.395,+68:33:26.787,+104:51:19.743,+68:33:36.626,+104:50:52.826,+68:33:32.732);-line(+104:51:12.957,+68:33:43.369,+104:51:51.267,+68:33:50.265);annulus(+104:49:19.827,+68:32:47.191,1.982",3.964",5.946");ellipse(+104:49:36.118,+68:33:02.969,2.973",1.4865",5.946",2.973",158.389);box(+104:49:54.339,+68:33:18.875,7.928",3.964",11.892",5.946",158.389);point(+104:48:32.059,+68:32:53.230);point(+104:48:50.197,+68:33:09.580);point(+104:49:08.613,+68:33:24.159);point(+104:48:10.904,+68:32:59.810);point(+104:48:27.737,+68:33:13.560);point(+104:48:42.801,+68:33:27.806);point(+104:48:02.289,+68:33:18.011);panda(+104:49:29.913,+68:33:42.170,113.389,383.389,3,0",5.946",2);panda(+104:48:45.044,+68:33:49.690,164.971,203.389,1,0",2.973",1);panda(+104:48:45.044,+68:33:49.690,164.971,203.389,1,2.973",5.946",1);panda(+104:48:45.044,+68:33:49.690,203.389,293.389,1,0",2.973",1);panda(+104:48:45.044,+68:33:49.690,203.389,293.389,1,2.973",5.946",1);panda(+104:48:45.044,+68:33:49.690,293.389,383.389,1,0",2.973",1);panda(+104:48:45.044,+68:33:49.690,293.389,383.389,1,2.973",5.946",1);epanda(+104:49:43.580,+68:33:57.717,113.389,383.389,3,2.973",1.4865",5.946",2.973",1,158.389);epanda(+104:48:59.915,+68:34:05.263,158.389,203.389,1,2.973",1.4865",5.946",2.973",1,158.389);epanda(+104:48:59.915,+68:34:05.263,203.389,293.389,1,2.973",1.4865",5.946",2.973",1,158.389);epanda(+104:48:59.915,+68:34:05.263,293.389,383.389,1,2.973",1.4865",5.946",2.973",1,158.389);bpanda(+104:50:02.312,+68:34:13.544,113.389,383.389,3,7.928",3.964",11.892",5.946",1,158.389);bpanda(+104:49:17.632,+68:34:19.739,158.389,203.389,1,7.928",3.964",11.892",5.946",1,158.389);bpanda(+104:49:17.632,+68:34:19.739,203.389,293.389,1,7.928",3.964",11.892",5.946",1,158.389);bpanda(+104:49:17.632,+68:34:19.739,293.389,383.389,1,7.928",3.964",11.892",5.946",1,158.389);
\ No newline at end of file
diff --git a/tests/ds9.galactic.reg b/tests/ds9.galactic.reg
index 2a2b9b1..47b74b3 100644
--- a/tests/ds9.galactic.reg
+++ b/tests/ds9.galactic.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
galactic
-circle(104.83636,68.544018,3.9640007") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(104.83892,68.548533,7.9280014",3.9640007",158.38935) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(104.84402,68.553124,15.856003",7.9280014",158.38935) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(104.84968,68.556382,104.85716,68.557464,104.8542,68.560197,104.84672,68.559116) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(104.85231,68.56207,104.86296,68.563986) # line=1 1 color=cyan text={Line}
-# vector(104.86098,68.566338,7.9280014",158.38935) vector=1 color=red text={Vector}
-# text(104.86234,68.569423) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(104.82967,68.558332,104.84166,68.560277) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(104.82089,68.546465,1.9820003",3.9640007",5.946001") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(104.82541,68.550848,2.9730005",1.4865003",5.946001",2.9730005",158.38935) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(104.83048,68.555266,7.9280014",3.9640007",11.892002",5.946001",158.38935) # font="helvetica 10 bold roman" text={Box Annulus}
-point(104.80762,68.548142) # point=circle text={Circle Point}
-point(104.81266,68.552684) # point=box color=red width=3 text={Box Point}
-point(104.81777,68.556734) # point=diamond text={Diamond Point}
-point(104.80174,68.54997) # point=cross color=blue text={Cross Point}
-point(104.80642,68.55379) # point=x text={X Point}
-point(104.8106,68.557747) # point=arrow color=magenta text={Arrow Point}
-point(104.79935,68.555026) # point=boxcircle text={BoxCircle Point}
-# projection(104.83451,68.563806,104.8492,68.567063,3.9640007") text={Projection}
-panda(104.82369,68.561737,113.38935,383.38935,3,0",5.946001",2) # text={Panda}
-panda(104.81123,68.563826,164.97125,203.38935,1,0",2.9730005",1) # panda=(164.97125 203.38935 293.38935 23.389346)(0" 2.9730005" 5.946001") text={Panda 2}
-panda(104.81123,68.563826,164.97125,203.38935,1,2.9730005",5.946001",1) # panda=ignore
-panda(104.81123,68.563826,203.38935,293.38935,1,0",2.9730005",1) # panda=ignore
-panda(104.81123,68.563826,203.38935,293.38935,1,2.9730005",5.946001",1) # panda=ignore
-panda(104.81123,68.563826,293.38935,383.38935,1,0",2.9730005",1) # panda=ignore
-panda(104.81123,68.563826,293.38935,383.38935,1,2.9730005",5.946001",1) # panda=ignore
-# compass(104.84471,68.569512,7.9280014") compass=physical {N} {E} 1 1 text={Compass}
-epanda(104.82749,68.566056,113.38935,383.38935,3,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935) # text={Epanda}
-epanda(104.81536,68.568152,158.38935,203.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935) # epanda=(158.38935 203.38935 293.38935 23.389346)(2.9730005" 1.4865003" 5.946001" 2.9730005")(158.38935) text={Epanda 2}
-epanda(104.81536,68.568152,203.38935,293.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935) # epanda=ignore
-epanda(104.81536,68.568152,293.38935,383.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935) # epanda=ignore
-bpanda(104.83269,68.570452,113.38935,383.38935,3,7.9280014",3.9640007",11.892002",5.946001",1,158.38935) # text={Bpanda}
-bpanda(104.82028,68.572173,158.38935,203.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935) # bpanda=(158.38935 203.38935 293.38935 23.389346)(7.9280014" 3.9640007" 11.892002" 5.946001")(158.38935) text={Bpanda 2}
-bpanda(104.82028,68.572173,203.38935,293.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935) # bpanda=ignore
-bpanda(104.82028,68.572173,293.38935,383.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935) # bpanda=ignore
-# circle3d(104.83333,68.57557,1.9820003") text={Circle3d}
+circle(104.83765,68.543994,3.9640007") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(104.8402,68.54851,7.9280014",3.9640007",158.38935) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(104.8453,68.553101,15.856003",7.9280014",158.38935) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(104.85097,68.556359,104.85844,68.557441,104.85548,68.560174,104.84801,68.559092) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(104.8536,68.562047,104.86424,68.563963) # line=1 1 color=cyan text={Line}
+# vector(104.86227,68.566315,7.9280014",158.38935) vector=1 color=red text={Vector}
+# text(104.86363,68.5694) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(104.83096,68.558309,104.84294,68.560253) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(104.82217,68.546442,1.9820003",3.9640007",5.946001") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(104.8267,68.550825,2.9730005",1.4865003",5.946001",2.9730005",158.38935) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(104.83176,68.555243,7.9280014",3.9640007",11.892002",5.946001",158.38935) # font="helvetica 10 bold roman" text={Box Annulus}
+point(104.80891,68.548119) # point=circle text={Circle Point}
+point(104.81394,68.552661) # point=box color=red width=3 text={Box Point}
+point(104.81906,68.556711) # point=diamond text={Diamond Point}
+point(104.80303,68.549947) # point=cross color=blue text={Cross Point}
+point(104.8077,68.553767) # point=x text={X Point}
+point(104.81189,68.557724) # point=arrow color=magenta text={Arrow Point}
+point(104.80064,68.555003) # point=boxcircle text={BoxCircle Point}
+# projection(104.83579,68.563783,104.85048,68.567039,3.9640007") text={Projection}
+panda(104.82498,68.561714,113.38935,383.38935,3,0",5.946001",2) # text={Panda}
+panda(104.81251,68.563803,164.97125,203.38935,1,0",2.9730005",1) # panda=(164.97125 203.38935 293.38935 23.389346)(0" 2.9730005" 5.946001") text={Panda 2}
+panda(104.81251,68.563803,164.97125,203.38935,1,2.9730005",5.946001",1) # panda=ignore
+panda(104.81251,68.563803,203.38935,293.38935,1,0",2.9730005",1) # panda=ignore
+panda(104.81251,68.563803,203.38935,293.38935,1,2.9730005",5.946001",1) # panda=ignore
+panda(104.81251,68.563803,293.38935,383.38935,1,0",2.9730005",1) # panda=ignore
+panda(104.81251,68.563803,293.38935,383.38935,1,2.9730005",5.946001",1) # panda=ignore
+# compass(104.846,68.569488,7.9280014") compass=physical {N} {E} 1 1 text={Compass}
+epanda(104.82877,68.566033,113.38935,383.38935,3,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935) # text={Epanda}
+epanda(104.81664,68.568129,158.38935,203.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935) # epanda=(158.38935 203.38935 293.38935 23.389346)(2.9730005" 1.4865003" 5.946001" 2.9730005")(158.38935) text={Epanda 2}
+epanda(104.81664,68.568129,203.38935,293.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935) # epanda=ignore
+epanda(104.81664,68.568129,293.38935,383.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935) # epanda=ignore
+bpanda(104.83398,68.570429,113.38935,383.38935,3,7.9280014",3.9640007",11.892002",5.946001",1,158.38935) # text={Bpanda}
+bpanda(104.82156,68.57215,158.38935,203.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935) # bpanda=(158.38935 203.38935 293.38935 23.389346)(7.9280014" 3.9640007" 11.892002" 5.946001")(158.38935) text={Bpanda 2}
+bpanda(104.82156,68.57215,203.38935,293.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935) # bpanda=ignore
+bpanda(104.82156,68.57215,293.38935,383.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935) # bpanda=ignore
diff --git a/tests/ds9.galactic.strip.reg b/tests/ds9.galactic.strip.reg
index fb1034a..5ea05f7 100644
--- a/tests/ds9.galactic.strip.reg
+++ b/tests/ds9.galactic.strip.reg
@@ -1 +1 @@
-galactic;circle(104.83636,68.544018,3.9640007");-ellipse(104.83892,68.548533,7.9280014",3.9640007",158.38935);-box(104.84402,68.553124,15.856003",7.9280014",158.38935);polygon(104.84968,68.556382,104.85716,68.557464,104.8542,68.560197,104.84672,68.559116);-line(104.85231,68.56207,104.86296,68.563986);annulus(104.82089,68.546465,1.9820003",3.9640007",5.946001");ellipse(104.82541,68.550848,2.9730005",1.4865003",5.946001",2.9730005",158.38935);box(104.83048,68.555266,7.9280014",3.9640007",11.892002",5.946001",158.38935);point(104.80762,68.548142);point(104.81266,68.552684);point(104.81777,68.556734);point(104.80174,68.54997);point(104.80642,68.55379);point(104.8106,68.557747);point(104.79935,68.555026);panda(104.82369,68.561737,113.38935,383.38935,3,0",5.946001",2);panda(104.81123,68.563826,164.97125,203.38935,1,0",2.9730005",1);panda(104.81123,68.563826,164.97125,203.38935,1,2.9730005",5.946001",1);panda(104.81123,68.563826,203.38935,293.38935,1,0",2.9730005",1);panda(104.81123,68.563826,203.38935,293.38935,1,2.9730005",5.946001",1);panda(104.81123,68.563826,293.38935,383.38935,1,0",2.9730005",1);panda(104.81123,68.563826,293.38935,383.38935,1,2.9730005",5.946001",1);epanda(104.82749,68.566056,113.38935,383.38935,3,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935);epanda(104.81536,68.568152,158.38935,203.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935);epanda(104.81536,68.568152,203.38935,293.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935);epanda(104.81536,68.568152,293.38935,383.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935);bpanda(104.83269,68.570452,113.38935,383.38935,3,7.9280014",3.9640007",11.892002",5.946001",1,158.38935);bpanda(104.82028,68.572173,158.38935,203.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935);bpanda(104.82028,68.572173,203.38935,293.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935);bpanda(104.82028,68.572173,293.38935,383.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935);
\ No newline at end of file
+galactic;circle(104.83765,68.543994,3.9640007");-ellipse(104.8402,68.54851,7.9280014",3.9640007",158.38935);-box(104.8453,68.553101,15.856003",7.9280014",158.38935);polygon(104.85097,68.556359,104.85844,68.557441,104.85548,68.560174,104.84801,68.559092);-line(104.8536,68.562047,104.86424,68.563963);annulus(104.82217,68.546442,1.9820003",3.9640007",5.946001");ellipse(104.8267,68.550825,2.9730005",1.4865003",5.946001",2.9730005",158.38935);box(104.83176,68.555243,7.9280014",3.9640007",11.892002",5.946001",158.38935);point(104.80891,68.548119);point(104.81394,68.552661);point(104.81906,68.556711);point(104.80303,68.549947);point(104.8077,68.553767);point(104.81189,68.557724);point(104.80064,68.555003);panda(104.82498,68.561714,113.38935,383.38935,3,0",5.946001",2);panda(104.81251,68.563803,164.97125,203.38935,1,0",2.9730005",1);panda(104.81251,68.563803,164.97125,203.38935,1,2.9730005",5.946001",1);panda(104.81251,68.563803,203.38935,293.38935,1,0",2.9730005",1);panda(104.81251,68.563803,203.38935,293.38935,1,2.9730005",5.946001",1);panda(104.81251,68.563803,293.38935,383.38935,1,0",2.9730005",1);panda(104.81251,68.563803,293.38935,383.38935,1,2.9730005",5.946001",1);epanda(104.82877,68.566033,113.38935,383.38935,3,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935);epanda(104.81664,68.568129,158.38935,203.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935);epanda(104.81664,68.568129,203.38935,293.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935);epanda(104.81664,68.568129,293.38935,383.38935,1,2.9730005",1.4865003",5.946001",2.9730005",1,158.38935);bpanda(104.83398,68.570429,113.38935,383.38935,3,7.9280014",3.9640007",11.892002",5.946001",1,158.38935);bpanda(104.82156,68.57215,158.38935,203.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935);bpanda(104.82156,68.57215,203.38935,293.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935);bpanda(104.82156,68.57215,293.38935,383.38935,1,7.9280014",3.9640007",11.892002",5.946001",1,158.38935);
\ No newline at end of file
diff --git a/tests/ds9.icrs.hms.reg b/tests/ds9.icrs.hms.reg
index ca1172a..fd0c254 100644
--- a/tests/ds9.icrs.hms.reg
+++ b/tests/ds9.icrs.hms.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
icrs
-circle(13:29:56.891,+47:12:29.65,3.964") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(13:29:55.941,+47:12:16.17,7.928",3.964",2.39831) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(13:29:54.679,+47:12:03.80,15.856",7.928",2.39831) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(13:29:53.543,+47:11:56.12,13:29:52.505,+47:11:56.56,13:29:52.462,+47:11:45.99,13:29:53.499,+47:11:45.55) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(13:29:52.415,+47:11:38.82,13:29:50.885,+47:11:38.21) # line=1 1 color=cyan text={Line}
-# vector(13:29:50.781,+47:11:29.41,7.928",2.39831) vector=1 color=red text={Vector}
-# text(13:29:50.178,+47:11:19.99) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(13:29:55.623,+47:11:38.99,13:29:53.930,+47:11:39.02) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(13:29:58.365,+47:12:13.31,1.982",3.964",5.946") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(13:29:57.201,+47:12:01.32,2.973",1.4865",5.946",2.973",2.39831) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(13:29:55.969,+47:11:49.51,7.928",3.964",11.892",5.946",2.39831) # font="helvetica 10 bold roman" text={Box Annulus}
-point(13:29:59.689,+47:12:00.68) # point=circle text={Circle Point}
-point(13:29:58.442,+47:11:48.45) # point=box color=red width=3 text={Box Point}
-point(13:29:57.256,+47:11:37.88) # point=diamond text={Diamond Point}
-point(13:30:00.120,+47:11:51.52) # point=cross color=blue text={Cross Point}
-point(13:29:59.018,+47:11:41.47) # point=x text={X Point}
-point(13:29:57.955,+47:11:30.70) # point=arrow color=magenta text={Arrow Point}
-point(13:29:59.674,+47:11:33.61) # point=boxcircle text={BoxCircle Point}
-# projection(13:29:54.266,+47:11:23.58,13:29:52.066,+47:11:20.73,3.964") text={Projection}
-panda(13:29:55.839,+47:11:24.59,317.398,587.398,3,0",5.946",2) # text={Panda}
-panda(13:29:57.008,+47:11:11.05,8.98021,47.3983,1,0",2.973",1) # panda=(8.98021 47.3983 137.398 227.398)(0" 2.973" 5.946") text={Panda 2}
-panda(13:29:57.008,+47:11:11.05,8.98021,47.3983,1,2.973",5.946",1) # panda=ignore
-panda(13:29:57.008,+47:11:11.05,47.3983,137.398,1,0",2.973",1) # panda=ignore
-panda(13:29:57.008,+47:11:11.05,47.3983,137.398,1,2.973",5.946",1) # panda=ignore
-panda(13:29:57.008,+47:11:11.05,137.398,227.398,1,0",2.973",1) # panda=ignore
-panda(13:29:57.008,+47:11:11.05,137.398,227.398,1,2.973",5.946",1) # panda=ignore
-# compass(13:29:52.244,+47:11:10.28,7.928") compass=physical {N} {E} 1 1 text={Compass}
-epanda(13:29:54.770,+47:11:12.43,317.398,587.398,3,2.973",1.4865",5.946",2.973",1,2.39831) # text={Epanda}
-epanda(13:29:55.899,+47:10:59.04,2.39831,47.3983,1,2.973",1.4865",5.946",2.973",1,2.39831) # epanda=(2.39831 47.3983 137.398 227.398)(2.973" 1.4865" 5.946" 2.973")(2.39831) text={Epanda 2}
-epanda(13:29:55.899,+47:10:59.04,47.3983,137.398,1,2.973",1.4865",5.946",2.973",1,2.39831) # epanda=ignore
-epanda(13:29:55.899,+47:10:59.04,137.398,227.398,1,2.973",1.4865",5.946",2.973",1,2.39831) # epanda=ignore
-bpanda(13:29:53.525,+47:11:00.75,317.398,587.398,3,7.928",3.964",11.892",5.946",1,2.39831) # text={Bpanda}
-bpanda(13:29:54.741,+47:10:48.45,2.39831,47.3983,1,7.928",3.964",11.892",5.946",1,2.39831) # bpanda=(2.39831 47.3983 137.398 227.398)(7.928" 3.964" 11.892" 5.946")(2.39831) text={Bpanda 2}
-bpanda(13:29:54.741,+47:10:48.45,47.3983,137.398,1,7.928",3.964",11.892",5.946",1,2.39831) # bpanda=ignore
-bpanda(13:29:54.741,+47:10:48.45,137.398,227.398,1,7.928",3.964",11.892",5.946",1,2.39831) # bpanda=ignore
-# circle3d(13:29:52.715,+47:10:44.27,1.982") text={Circle3d}
+circle(13:29:56.743,+47:12:30.42,3.964") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(13:29:55.792,+47:12:16.94,7.928",3.964",2.39832) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(13:29:54.530,+47:12:04.57,15.856",7.928",2.39832) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(13:29:53.394,+47:11:56.88,13:29:52.357,+47:11:57.33,13:29:52.314,+47:11:46.75,13:29:53.351,+47:11:46.31) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(13:29:52.267,+47:11:39.58,13:29:50.737,+47:11:38.97) # line=1 1 color=cyan text={Line}
+# vector(13:29:50.632,+47:11:30.18,7.928",2.39832) vector=1 color=red text={Vector}
+# text(13:29:50.030,+47:11:20.76) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(13:29:55.474,+47:11:39.76,13:29:53.782,+47:11:39.78) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(13:29:58.217,+47:12:14.08,1.982",3.964",5.946") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(13:29:57.053,+47:12:02.09,2.973",1.4865",5.946",2.973",2.39832) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(13:29:55.820,+47:11:50.27,7.928",3.964",11.892",5.946",2.39832) # font="helvetica 10 bold roman" text={Box Annulus}
+point(13:29:59.541,+47:12:01.45) # point=circle text={Circle Point}
+point(13:29:58.293,+47:11:49.22) # point=box color=red width=3 text={Box Point}
+point(13:29:57.108,+47:11:38.64) # point=diamond text={Diamond Point}
+point(13:29:59.971,+47:11:52.28) # point=cross color=blue text={Cross Point}
+point(13:29:58.870,+47:11:42.24) # point=x text={X Point}
+point(13:29:57.807,+47:11:31.47) # point=arrow color=magenta text={Arrow Point}
+point(13:29:59.526,+47:11:34.38) # point=boxcircle text={BoxCircle Point}
+# projection(13:29:54.118,+47:11:24.35,13:29:51.918,+47:11:21.50,3.964") text={Projection}
+panda(13:29:55.691,+47:11:25.36,317.398,587.398,3,0",5.946",2) # text={Panda}
+panda(13:29:56.859,+47:11:11.82,8.98022,47.3983,1,0",2.973",1) # panda=(8.98022 47.3983 137.398 227.398)(0" 2.973" 5.946") text={Panda 2}
+panda(13:29:56.859,+47:11:11.82,8.98022,47.3983,1,2.973",5.946",1) # panda=ignore
+panda(13:29:56.859,+47:11:11.82,47.3983,137.398,1,0",2.973",1) # panda=ignore
+panda(13:29:56.859,+47:11:11.82,47.3983,137.398,1,2.973",5.946",1) # panda=ignore
+panda(13:29:56.859,+47:11:11.82,137.398,227.398,1,0",2.973",1) # panda=ignore
+panda(13:29:56.859,+47:11:11.82,137.398,227.398,1,2.973",5.946",1) # panda=ignore
+# compass(13:29:52.095,+47:11:11.04,7.928") compass=physical {N} {E} 1 1 text={Compass}
+epanda(13:29:54.622,+47:11:13.19,317.398,587.398,3,2.973",1.4865",5.946",2.973",1,2.39832) # text={Epanda}
+epanda(13:29:55.751,+47:10:59.81,2.39832,47.3983,1,2.973",1.4865",5.946",2.973",1,2.39832) # epanda=(2.39832 47.3983 137.398 227.398)(2.973" 1.4865" 5.946" 2.973")(2.39832) text={Epanda 2}
+epanda(13:29:55.751,+47:10:59.81,47.3983,137.398,1,2.973",1.4865",5.946",2.973",1,2.39832) # epanda=ignore
+epanda(13:29:55.751,+47:10:59.81,137.398,227.398,1,2.973",1.4865",5.946",2.973",1,2.39832) # epanda=ignore
+bpanda(13:29:53.377,+47:11:01.52,317.398,587.398,3,7.928",3.964",11.892",5.946",1,2.39832) # text={Bpanda}
+bpanda(13:29:54.593,+47:10:49.22,2.39832,47.3983,1,7.928",3.964",11.892",5.946",1,2.39832) # bpanda=(2.39832 47.3983 137.398 227.398)(7.928" 3.964" 11.892" 5.946")(2.39832) text={Bpanda 2}
+bpanda(13:29:54.593,+47:10:49.22,47.3983,137.398,1,7.928",3.964",11.892",5.946",1,2.39832) # bpanda=ignore
+bpanda(13:29:54.593,+47:10:49.22,137.398,227.398,1,7.928",3.964",11.892",5.946",1,2.39832) # bpanda=ignore
diff --git a/tests/ds9.icrs.hms.strip.reg b/tests/ds9.icrs.hms.strip.reg
index fd511cf..3baf706 100644
--- a/tests/ds9.icrs.hms.strip.reg
+++ b/tests/ds9.icrs.hms.strip.reg
@@ -1 +1 @@
-icrs;circle(13:29:56.891,+47:12:29.65,3.964");-ellipse(13:29:55.941,+47:12:16.17,7.928",3.964",2.39831);-box(13:29:54.679,+47:12:03.80,15.856",7.928",2.39831);polygon(13:29:53.543,+47:11:56.12,13:29:52.505,+47:11:56.56,13:29:52.462,+47:11:45.99,13:29:53.499,+47:11:45.55);-line(13:29:52.415,+47:11:38.82,13:29:50.885,+47:11:38.21);annulus(13:29:58.365,+47:12:13.31,1.982",3.964",5.946");ellipse(13:29:57.201,+47:12:01.32,2.973",1.4865",5.946",2.973",2.39831);box(13:29:55.969,+47:11:49.51,7.928",3.964",11.892",5.946",2.39831);point(13:29:59.689,+47:12:00.68);point(13:29:58.442,+47:11:48.45);point(13:29:57.256,+47:11:37.88);point(13:30:00.120,+47:11:51.52);point(13:29:59.018,+47:11:41.47);point(13:29:57.955,+47:11:30.70);point(13:29:59.674,+47:11:33.61);panda(13:29:55.839,+47:11:24.59,317.398,587.398,3,0",5.946",2);panda(13:29:57.008,+47:11:11.05,8.98021,47.3983,1,0",2.973",1);panda(13:29:57.008,+47:11:11.05,8.98021,47.3983,1,2.973",5.946",1);panda(13:29:57.008,+47:11:11.05,47.3983,137.398,1,0",2.973",1);panda(13:29:57.008,+47:11:11.05,47.3983,137.398,1,2.973",5.946",1);panda(13:29:57.008,+47:11:11.05,137.398,227.398,1,0",2.973",1);panda(13:29:57.008,+47:11:11.05,137.398,227.398,1,2.973",5.946",1);epanda(13:29:54.770,+47:11:12.43,317.398,587.398,3,2.973",1.4865",5.946",2.973",1,2.39831);epanda(13:29:55.899,+47:10:59.04,2.39831,47.3983,1,2.973",1.4865",5.946",2.973",1,2.39831);epanda(13:29:55.899,+47:10:59.04,47.3983,137.398,1,2.973",1.4865",5.946",2.973",1,2.39831);epanda(13:29:55.899,+47:10:59.04,137.398,227.398,1,2.973",1.4865",5.946",2.973",1,2.39831);bpanda(13:29:53.525,+47:11:00.75,317.398,587.398,3,7.928",3.964",11.892",5.946",1,2.39831);bpanda(13:29:54.741,+47:10:48.45,2.39831,47.3983,1,7.928",3.964",11.892",5.946",1,2.39831);bpanda(13:29:54.741,+47:10:48.45,47.3983,137.398,1,7.928",3.964",11.892",5.946",1,2.39831);bpanda(13:29:54.741,+47:10:48.45,137.398,227.398,1,7.928",3.964",11.892",5.946",1,2.39831);
\ No newline at end of file
+icrs;circle(13:29:56.743,+47:12:30.42,3.964");-ellipse(13:29:55.792,+47:12:16.94,7.928",3.964",2.39832);-box(13:29:54.530,+47:12:04.57,15.856",7.928",2.39832);polygon(13:29:53.394,+47:11:56.88,13:29:52.357,+47:11:57.33,13:29:52.314,+47:11:46.75,13:29:53.351,+47:11:46.31);-line(13:29:52.267,+47:11:39.58,13:29:50.737,+47:11:38.97);annulus(13:29:58.217,+47:12:14.08,1.982",3.964",5.946");ellipse(13:29:57.053,+47:12:02.09,2.973",1.4865",5.946",2.973",2.39832);box(13:29:55.820,+47:11:50.27,7.928",3.964",11.892",5.946",2.39832);point(13:29:59.541,+47:12:01.45);point(13:29:58.293,+47:11:49.22);point(13:29:57.108,+47:11:38.64);point(13:29:59.971,+47:11:52.28);point(13:29:58.870,+47:11:42.24);point(13:29:57.807,+47:11:31.47);point(13:29:59.526,+47:11:34.38);panda(13:29:55.691,+47:11:25.36,317.398,587.398,3,0",5.946",2);panda(13:29:56.859,+47:11:11.82,8.98022,47.3983,1,0",2.973",1);panda(13:29:56.859,+47:11:11.82,8.98022,47.3983,1,2.973",5.946",1);panda(13:29:56.859,+47:11:11.82,47.3983,137.398,1,0",2.973",1);panda(13:29:56.859,+47:11:11.82,47.3983,137.398,1,2.973",5.946",1);panda(13:29:56.859,+47:11:11.82,137.398,227.398,1,0",2.973",1);panda(13:29:56.859,+47:11:11.82,137.398,227.398,1,2.973",5.946",1);epanda(13:29:54.622,+47:11:13.19,317.398,587.398,3,2.973",1.4865",5.946",2.973",1,2.39832);epanda(13:29:55.751,+47:10:59.81,2.39832,47.3983,1,2.973",1.4865",5.946",2.973",1,2.39832);epanda(13:29:55.751,+47:10:59.81,47.3983,137.398,1,2.973",1.4865",5.946",2.973",1,2.39832);epanda(13:29:55.751,+47:10:59.81,137.398,227.398,1,2.973",1.4865",5.946",2.973",1,2.39832);bpanda(13:29:53.377,+47:11:01.52,317.398,587.398,3,7.928",3.964",11.892",5.946",1,2.39832);bpanda(13:29:54.593,+47:10:49.22,2.39832,47.3983,1,7.928",3.964",11.892",5.946",1,2.39832);bpanda(13:29:54.593,+47:10:49.22,47.3983,137.398,1,7.928",3.964",11.892",5.946",1,2.39832);bpanda(13:29:54.593,+47:10:49.22,137.398,227.398,1,7.928",3.964",11.892",5.946",1,2.39832);
\ No newline at end of file
diff --git a/tests/ds9.icrs.reg b/tests/ds9.icrs.reg
index 03f4c4d..5e8dcdf 100644
--- a/tests/ds9.icrs.reg
+++ b/tests/ds9.icrs.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
icrs
-circle(202.48705,47.208237,3.9640007") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(202.48309,47.204492,7.9280014",3.9640007",2.3983109) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(202.47783,47.201057,15.856003",7.9280014",2.3983109) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(202.47309,47.198922,202.46877,47.199044,202.46859,47.196108,202.47291,47.195985) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(202.4684,47.194116,202.46202,47.193946) # line=1 1 color=cyan text={Line}
-# vector(202.46159,47.191504,7.9280014",2.3983109) vector=1 color=red text={Vector}
-# text(202.45907,47.188886) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(202.48176,47.194165,202.47471,47.194171) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(202.49319,47.203697,1.9820003",3.9640007",5.946001") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(202.48834,47.200368,2.9730005",1.4865003",5.946001",2.9730005",2.3983109) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(202.4832,47.197085,7.9280014",3.9640007",11.892002",5.946001",2.3983109) # font="helvetica 10 bold roman" text={Box Annulus}
-point(202.49871,47.200189) # point=circle text={Circle Point}
-point(202.49351,47.196791) # point=box color=red width=3 text={Box Point}
-point(202.48857,47.193854) # point=diamond text={Diamond Point}
-point(202.5005,47.197643) # point=cross color=blue text={Cross Point}
-point(202.49591,47.194852) # point=x text={X Point}
-point(202.49148,47.191862) # point=arrow color=magenta text={Arrow Point}
-point(202.49864,47.19267) # point=boxcircle text={BoxCircle Point}
-# projection(202.47611,47.189884,202.46694,47.189092,3.9640007") text={Projection}
-panda(202.48266,47.190165,317.39831,587.39831,3,0",5.946001",2) # text={Panda}
-panda(202.48753,47.186403,8.9802109,47.398311,1,0",2.9730005",1) # panda=(8.9802109 47.398311 137.39831 227.39831)(0" 2.9730005" 5.946001") text={Panda 2}
-panda(202.48753,47.186403,8.9802109,47.398311,1,2.9730005",5.946001",1) # panda=ignore
-panda(202.48753,47.186403,47.398311,137.39831,1,0",2.9730005",1) # panda=ignore
-panda(202.48753,47.186403,47.398311,137.39831,1,2.9730005",5.946001",1) # panda=ignore
-panda(202.48753,47.186403,137.39831,227.39831,1,0",2.9730005",1) # panda=ignore
-panda(202.48753,47.186403,137.39831,227.39831,1,2.9730005",5.946001",1) # panda=ignore
-# compass(202.46768,47.186188,7.9280014") compass=physical {N} {E} 1 1 text={Compass}
-epanda(202.47821,47.186785,317.39831,587.39831,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # text={Epanda}
-epanda(202.48291,47.183066,2.3983109,47.398311,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # epanda=(2.3983109 47.398311 137.39831 227.39831)(2.9730005" 1.4865003" 5.946001" 2.9730005")(2.3983109) text={Epanda 2}
-epanda(202.48291,47.183066,47.398311,137.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # epanda=ignore
-epanda(202.48291,47.183066,137.39831,227.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109) # epanda=ignore
-bpanda(202.47302,47.183543,317.39831,587.39831,3,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # text={Bpanda}
-bpanda(202.47809,47.180126,2.3983109,47.398311,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # bpanda=(2.3983109 47.398311 137.39831 227.39831)(7.9280014" 3.9640007" 11.892002" 5.946001")(2.3983109) text={Bpanda 2}
-bpanda(202.47809,47.180126,47.398311,137.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # bpanda=ignore
-bpanda(202.47809,47.180126,137.39831,227.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109) # bpanda=ignore
-# circle3d(202.46965,47.178963,1.9820003") text={Circle3d}
+circle(202.48643,47.208449,3.9640007") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(202.48247,47.204705,7.9280014",3.9640007",2.3983198) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(202.47721,47.20127,15.856003",7.9280014",2.3983198) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(202.47248,47.199135,202.46815,47.199257,202.46797,47.19632,202.4723,47.196198) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(202.46778,47.194329,202.4614,47.194159) # line=1 1 color=cyan text={Line}
+# vector(202.46097,47.191716,7.9280014",2.3983198) vector=1 color=red text={Vector}
+# text(202.45846,47.189099) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(202.48114,47.194378,202.47409,47.194384) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(202.49257,47.20391,1.9820003",3.9640007",5.946001") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(202.48772,47.200581,2.9730005",1.4865003",5.946001",2.9730005",2.3983198) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(202.48259,47.197298,7.9280014",3.9640007",11.892002",5.946001",2.3983198) # font="helvetica 10 bold roman" text={Box Annulus}
+point(202.49809,47.200401) # point=circle text={Circle Point}
+point(202.49289,47.197004) # point=box color=red width=3 text={Box Point}
+point(202.48795,47.194067) # point=diamond text={Diamond Point}
+point(202.49988,47.197856) # point=cross color=blue text={Cross Point}
+point(202.49529,47.195065) # point=x text={X Point}
+point(202.49086,47.192075) # point=arrow color=magenta text={Arrow Point}
+point(202.49802,47.192883) # point=boxcircle text={BoxCircle Point}
+# projection(202.47549,47.190097,202.46632,47.189305,3.9640007") text={Projection}
+panda(202.48204,47.190378,317.39832,587.39832,3,0",5.946001",2) # text={Panda}
+panda(202.48691,47.186615,8.9802198,47.39832,1,0",2.9730005",1) # panda=(8.9802198 47.39832 137.39832 227.39832)(0" 2.9730005" 5.946001") text={Panda 2}
+panda(202.48691,47.186615,8.9802198,47.39832,1,2.9730005",5.946001",1) # panda=ignore
+panda(202.48691,47.186615,47.39832,137.39832,1,0",2.9730005",1) # panda=ignore
+panda(202.48691,47.186615,47.39832,137.39832,1,2.9730005",5.946001",1) # panda=ignore
+panda(202.48691,47.186615,137.39832,227.39832,1,0",2.9730005",1) # panda=ignore
+panda(202.48691,47.186615,137.39832,227.39832,1,2.9730005",5.946001",1) # panda=ignore
+# compass(202.46706,47.186401,7.9280014") compass=physical {N} {E} 1 1 text={Compass}
+epanda(202.47759,47.186998,317.39832,587.39832,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983198) # text={Epanda}
+epanda(202.48229,47.183279,2.3983198,47.39832,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983198) # epanda=(2.3983198 47.39832 137.39832 227.39832)(2.9730005" 1.4865003" 5.946001" 2.9730005")(2.3983198) text={Epanda 2}
+epanda(202.48229,47.183279,47.39832,137.39832,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983198) # epanda=ignore
+epanda(202.48229,47.183279,137.39832,227.39832,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983198) # epanda=ignore
+bpanda(202.47241,47.183755,317.39832,587.39832,3,7.9280014",3.9640007",11.892002",5.946001",1,2.3983198) # text={Bpanda}
+bpanda(202.47747,47.180338,2.3983198,47.39832,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983198) # bpanda=(2.3983198 47.39832 137.39832 227.39832)(7.9280014" 3.9640007" 11.892002" 5.946001")(2.3983198) text={Bpanda 2}
+bpanda(202.47747,47.180338,47.39832,137.39832,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983198) # bpanda=ignore
+bpanda(202.47747,47.180338,137.39832,227.39832,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983198) # bpanda=ignore
diff --git a/tests/ds9.icrs.strip.reg b/tests/ds9.icrs.strip.reg
index 202482c..2254132 100644
--- a/tests/ds9.icrs.strip.reg
+++ b/tests/ds9.icrs.strip.reg
@@ -1 +1 @@
-icrs;circle(202.48705,47.208237,3.9640007");-ellipse(202.48309,47.204492,7.9280014",3.9640007",2.3983109);-box(202.47783,47.201057,15.856003",7.9280014",2.3983109);polygon(202.47309,47.198922,202.46877,47.199044,202.46859,47.196108,202.47291,47.195985);-line(202.4684,47.194116,202.46202,47.193946);annulus(202.49319,47.203697,1.9820003",3.9640007",5.946001");ellipse(202.48834,47.200368,2.9730005",1.4865003",5.946001",2.9730005",2.3983109);box(202.4832,47.197085,7.9280014",3.9640007",11.892002",5.946001",2.3983109);point(202.49871,47.200189);point(202.49351,47.196791);point(202.48857,47.193854);point(202.5005,47.197643);point(202.49591,47.194852);point(202.49148,47.191862);point(202.49864,47.19267);panda(202.48266,47.190165,317.39831,587.39831,3,0",5.946001",2);panda(202.48753,47.186403,8.9802109,47.398311,1,0",2.9730005",1);panda(202.48753,47.186403,8.9802109,47.398311,1,2.9730005",5.946001",1);panda(202.48753,47.186403,47.398311,137.39831,1,0",2.9730005",1);panda(202.48753,47.186403,47.398311,137.39831,1,2.9730005",5.946001",1);panda(202.48753,47.186403,137.39831,227.39831,1,0",2.9730005",1);panda(202.48753,47.186403,137.39831,227.39831,1,2.9730005",5.946001",1);epanda(202.47821,47.186785,317.39831,587.39831,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);epanda(202.48291,47.183066,2.3983109,47.398311,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);epanda(202.48291,47.183066,47.398311,137.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);epanda(202.48291,47.183066,137.39831,227.39831,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983109);bpanda(202.47302,47.183543,317.39831,587.39831,3,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);bpanda(202.47809,47.180126,2.3983109,47.398311,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);bpanda(202.47809,47.180126,47.398311,137.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);bpanda(202.47809,47.180126,137.39831,227.39831,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983109);
\ No newline at end of file
+icrs;circle(202.48643,47.208449,3.9640007");-ellipse(202.48247,47.204705,7.9280014",3.9640007",2.3983198);-box(202.47721,47.20127,15.856003",7.9280014",2.3983198);polygon(202.47248,47.199135,202.46815,47.199257,202.46797,47.19632,202.4723,47.196198);-line(202.46778,47.194329,202.4614,47.194159);annulus(202.49257,47.20391,1.9820003",3.9640007",5.946001");ellipse(202.48772,47.200581,2.9730005",1.4865003",5.946001",2.9730005",2.3983198);box(202.48259,47.197298,7.9280014",3.9640007",11.892002",5.946001",2.3983198);point(202.49809,47.200401);point(202.49289,47.197004);point(202.48795,47.194067);point(202.49988,47.197856);point(202.49529,47.195065);point(202.49086,47.192075);point(202.49802,47.192883);panda(202.48204,47.190378,317.39832,587.39832,3,0",5.946001",2);panda(202.48691,47.186615,8.9802198,47.39832,1,0",2.9730005",1);panda(202.48691,47.186615,8.9802198,47.39832,1,2.9730005",5.946001",1);panda(202.48691,47.186615,47.39832,137.39832,1,0",2.9730005",1);panda(202.48691,47.186615,47.39832,137.39832,1,2.9730005",5.946001",1);panda(202.48691,47.186615,137.39832,227.39832,1,0",2.9730005",1);panda(202.48691,47.186615,137.39832,227.39832,1,2.9730005",5.946001",1);epanda(202.47759,47.186998,317.39832,587.39832,3,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983198);epanda(202.48229,47.183279,2.3983198,47.39832,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983198);epanda(202.48229,47.183279,47.39832,137.39832,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983198);epanda(202.48229,47.183279,137.39832,227.39832,1,2.9730005",1.4865003",5.946001",2.9730005",1,2.3983198);bpanda(202.47241,47.183755,317.39832,587.39832,3,7.9280014",3.9640007",11.892002",5.946001",1,2.3983198);bpanda(202.47747,47.180338,2.3983198,47.39832,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983198);bpanda(202.47747,47.180338,47.39832,137.39832,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983198);bpanda(202.47747,47.180338,137.39832,227.39832,1,7.9280014",3.9640007",11.892002",5.946001",1,2.3983198);
\ No newline at end of file
diff --git a/tests/ds9.image.reg b/tests/ds9.image.reg
index 888da41..107dd3b 100644
--- a/tests/ds9.image.reg
+++ b/tests/ds9.image.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
image
-circle(163,538,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(245,521,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(335,519,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(404.24723,530,442,567.75275,479.75277,530,442,492.24723) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(506,505,566,556) # line=1 1 color=cyan text={Line}
-# vector(600,527,40,45) vector=1 color=red text={Vector}
-# text(655,513) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(384,394,448,453) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(163,426,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(248,422,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(335,421,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
-point(156,333) # point=circle text={Circle Point}
-point(245,331) # point=box color=red width=3 text={Box Point}
-point(326,333) # point=diamond text={Diamond Point}
-point(171,284) # point=cross color=blue text={Cross Point}
-point(247,285) # point=x text={X Point}
-point(324,282) # point=arrow color=magenta text={Arrow Point}
-point(249,233) # point=boxcircle text={BoxCircle Point}
-# projection(488,384,581,450,20) text={Projection}
-panda(425,333,0,270,3,0,30,2) # text={Panda}
-panda(427,242,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
-panda(427,242,51.5819,90,1,15,30,1) # panda=ignore
-panda(427,242,90,180,1,0,15,1) # panda=ignore
-panda(427,242,90,180,1,15,30,1) # panda=ignore
-panda(427,242,180,270,1,0,15,1) # panda=ignore
-panda(427,242,180,270,1,15,30,1) # panda=ignore
-# compass(610,405,40) compass=physical {N} {E} 1 1 text={Compass}
-epanda(507,325,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
-epanda(510,236,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
-epanda(510,236,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
-epanda(510,236,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
-bpanda(594,325,0,270,3,40,20,60,30,1,45) # text={Bpanda}
-bpanda(590,237,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
-bpanda(590,237,90,180,1,40,20,60,30,1,45) # bpanda=ignore
-bpanda(590,237,180,270,1,40,20,60,30,1,45) # bpanda=ignore
-# circle3d(681,292,10) text={Circle3d}
+circle(166,546,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(248,529,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(338,527,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(407.24723,538,445,575.75275,482.75277,538,445,500.24723) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(509,513,569,564) # line=1 1 color=cyan text={Line}
+# vector(603,535,40,45) vector=1 color=red text={Vector}
+# text(658,521) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(387,402,451,461) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(166,434,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(251,430,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(338,429,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
+point(159,341) # point=circle text={Circle Point}
+point(248,339) # point=box color=red width=3 text={Box Point}
+point(329,341) # point=diamond text={Diamond Point}
+point(174,292) # point=cross color=blue text={Cross Point}
+point(250,293) # point=x text={X Point}
+point(327,290) # point=arrow color=magenta text={Arrow Point}
+point(252,241) # point=boxcircle text={BoxCircle Point}
+# projection(491,392,584,458,20) text={Projection}
+panda(428,341,0,270,3,0,30,2) # text={Panda}
+panda(430,250,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
+panda(430,250,51.5819,90,1,15,30,1) # panda=ignore
+panda(430,250,90,180,1,0,15,1) # panda=ignore
+panda(430,250,90,180,1,15,30,1) # panda=ignore
+panda(430,250,180,270,1,0,15,1) # panda=ignore
+panda(430,250,180,270,1,15,30,1) # panda=ignore
+# compass(613,413,40) compass=physical {N} {E} 1 1 text={Compass}
+epanda(510,333,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
+epanda(513,244,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
+epanda(513,244,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(513,244,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
+bpanda(597,333,0,270,3,40,20,60,30,1,45) # text={Bpanda}
+bpanda(593,245,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
+bpanda(593,245,90,180,1,40,20,60,30,1,45) # bpanda=ignore
+bpanda(593,245,180,270,1,40,20,60,30,1,45) # bpanda=ignore
diff --git a/tests/ds9.image.strip.reg b/tests/ds9.image.strip.reg
index 1631dc6..7236cae 100644
--- a/tests/ds9.image.strip.reg
+++ b/tests/ds9.image.strip.reg
@@ -1 +1 @@
-image;circle(163,538,20);-ellipse(245,521,40,20,45);-box(335,519,80,40,45);polygon(404.24723,530,442,567.75275,479.75277,530,442,492.24723);-line(506,505,566,556);annulus(163,426,10,20,30);ellipse(248,422,15,7.5,30,15,45);box(335,421,40,20,60,30,45);point(156,333);point(245,331);point(326,333);point(171,284);point(247,285);point(324,282);point(249,233);panda(425,333,0,270,3,0,30,2);panda(427,242,51.5819,90,1,0,15,1);panda(427,242,51.5819,90,1,15,30,1);panda(427,242,90,180,1,0,15,1);panda(427,242,90,180,1,15,30,1);panda(427,242,180,270,1,0,15,1);panda(427,242,180,270,1,15,30,1);epanda(507,325,0,270,3,15,7.5,30,15,1,45);epanda(510,236,45,90,1,15,7.5,30,15,1,45);epanda(510,236,90,180,1,15,7.5,30,15,1,45);epanda(510,236,180,270,1,15,7.5,30,15,1,45);bpanda(594,325,0,270,3,40,20,60,30,1,45);bpanda(590,237,45,90,1,40,20,60,30,1,45);bpanda(590,237,90,180,1,40,20,60,30,1,45);bpanda(590,237,180,270,1,40,20,60,30,1,45);
\ No newline at end of file
+image;circle(166,546,20);-ellipse(248,529,40,20,45);-box(338,527,80,40,45);polygon(407.24723,538,445,575.75275,482.75277,538,445,500.24723);-line(509,513,569,564);annulus(166,434,10,20,30);ellipse(251,430,15,7.5,30,15,45);box(338,429,40,20,60,30,45);point(159,341);point(248,339);point(329,341);point(174,292);point(250,293);point(327,290);point(252,241);panda(428,341,0,270,3,0,30,2);panda(430,250,51.5819,90,1,0,15,1);panda(430,250,51.5819,90,1,15,30,1);panda(430,250,90,180,1,0,15,1);panda(430,250,90,180,1,15,30,1);panda(430,250,180,270,1,0,15,1);panda(430,250,180,270,1,15,30,1);epanda(510,333,0,270,3,15,7.5,30,15,1,45);epanda(513,244,45,90,1,15,7.5,30,15,1,45);epanda(513,244,90,180,1,15,7.5,30,15,1,45);epanda(513,244,180,270,1,15,7.5,30,15,1,45);bpanda(597,333,0,270,3,40,20,60,30,1,45);bpanda(593,245,45,90,1,40,20,60,30,1,45);bpanda(593,245,90,180,1,40,20,60,30,1,45);bpanda(593,245,180,270,1,40,20,60,30,1,45);
\ No newline at end of file
diff --git a/tests/ds9.linear.wcs.reg b/tests/ds9.linear.wcs.reg
index 0ca4664..bc4ad31 100644
--- a/tests/ds9.linear.wcs.reg
+++ b/tests/ds9.linear.wcs.reg
@@ -3,146 +3,142 @@
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
wcs;
# tile 2
-circle(3917.1782,3891.8317,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+circle(3975,3969,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 2
--ellipse(3753.1782,3857.8317,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-ellipse(3811,3935,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 2
--box(3573.1782,3853.8317,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
+-box(3631,3931,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 2
-polygon(3434.6838,3875.8317,3359.1782,3951.3372,3283.6727,3875.8317,3359.1782,3800.3261) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+polygon(3492.5055,3953,3417,4028.5055,3341.4945,3953,3417,3877.4945) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 2
--line(3231.1782,3825.8317,3111.1782,3927.8317) # line=1 1 color=cyan text={Line}
+-line(3289,3903,3169,4005) # line=1 1 color=cyan text={Line}
# tile 2
-# vector(3043.1782,3869.8317,80,135) vector=1 color=red text={Vector}
+# vector(3101,3947,80,135) vector=1 color=red text={Vector}
# tile 2
-# text(2933.1782,3841.8317) color=magenta font="helvetica 14 bold roman" text={Region}
+# text(2991,3919) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 2
-# ruler(3475.1782,3603.8317,3347.1782,3721.8317) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# ruler(3533,3681,3405,3799) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 2
-annulus(3917.1782,3667.8317,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+annulus(3975,3745,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 2
-ellipse(3747.1782,3659.8317,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+ellipse(3805,3737,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 2
-box(3573.1782,3657.8317,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
+box(3631,3735,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 2
-point(3931.1782,3481.8317) # point=circle text={Circle Point}
+point(3989,3559) # point=circle text={Circle Point}
# tile 2
-point(3753.1782,3477.8317) # point=box color=red width=3 text={Box Point}
+point(3811,3555) # point=box color=red width=3 text={Box Point}
# tile 2
-point(3591.1782,3481.8317) # point=diamond text={Diamond Point}
+point(3649,3559) # point=diamond text={Diamond Point}
# tile 2
-point(3901.1782,3383.8317) # point=cross color=blue text={Cross Point}
+point(3959,3461) # point=cross color=blue text={Cross Point}
# tile 2
-point(3749.1782,3385.8317) # point=x text={X Point}
+point(3807,3463) # point=x text={X Point}
# tile 2
-point(3595.1782,3379.8317) # point=arrow color=magenta text={Arrow Point}
+point(3653,3457) # point=arrow color=magenta text={Arrow Point}
# tile 2
-point(3745.1782,3281.8317) # point=boxcircle text={BoxCircle Point}
+point(3803,3359) # point=boxcircle text={BoxCircle Point}
# tile 2
-# projection(3267.1782,3583.8317,3081.1782,3715.8317,40) text={Projection}
+# projection(3325,3661,3139,3793,40) text={Projection}
# tile 2
-panda(3393.1782,3481.8317,180,270,3,0,60,2) # text={Panda}
+panda(3451,3559,180,270,3,0,60,2) # text={Panda}
# tile 2
-panda(3389.1782,3299.8317,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
+panda(3447,3377,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
# tile 2
-panda(3389.1782,3299.8317,128.4181,450,1,30,60,1) # panda=ignore
+panda(3447,3377,128.4181,450,1,30,60,1) # panda=ignore
# tile 2
-panda(3389.1782,3299.8317,90,360,1,0,30,1) # panda=ignore
+panda(3447,3377,90,360,1,0,30,1) # panda=ignore
# tile 2
-panda(3389.1782,3299.8317,90,360,1,30,60,1) # panda=ignore
+panda(3447,3377,90,360,1,30,60,1) # panda=ignore
# tile 2
-panda(3389.1782,3299.8317,0,270,1,0,30,1) # panda=ignore
+panda(3447,3377,0,270,1,0,30,1) # panda=ignore
# tile 2
-panda(3389.1782,3299.8317,0,270,1,30,60,1) # panda=ignore
+panda(3447,3377,0,270,1,30,60,1) # panda=ignore
# tile 2
-# compass(3023.1782,3625.8317,80) compass=physical {N} {E} 1 1 text={Compass}
+# compass(3081,3703,80) compass=physical {N} {E} 1 1 text={Compass}
# tile 2
-epanda(3229.1782,3465.8317,180,270,3,30,15,60,30,1,135) # text={Epanda}
+epanda(3287,3543,180,270,3,30,15,60,30,1,135) # text={Epanda}
# tile 2
-epanda(3223.1782,3287.8317,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
+epanda(3281,3365,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
# tile 2
-epanda(3223.1782,3287.8317,90,360,1,30,15,60,30,1,135) # epanda=ignore
+epanda(3281,3365,90,360,1,30,15,60,30,1,135) # epanda=ignore
# tile 2
-epanda(3223.1782,3287.8317,0,270,1,30,15,60,30,1,135) # epanda=ignore
+epanda(3281,3365,0,270,1,30,15,60,30,1,135) # epanda=ignore
# tile 2
-bpanda(3055.1782,3465.8317,180,270,3,80,40,120,60,1,135) # text={Bpanda}
+bpanda(3113,3543,180,270,3,80,40,120,60,1,135) # text={Bpanda}
# tile 2
-bpanda(3063.1782,3289.8317,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
+bpanda(3121,3367,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
# tile 2
-bpanda(3063.1782,3289.8317,90,360,1,80,40,120,60,1,135) # bpanda=ignore
+bpanda(3121,3367,90,360,1,80,40,120,60,1,135) # bpanda=ignore
# tile 2
-bpanda(3063.1782,3289.8317,0,270,1,80,40,120,60,1,135) # bpanda=ignore
-# tile 2
-# circle3d(2881.1782,3399.8317,20) text={Circle3d}
-# tile 7
-circle(5279.5545,4802.7228,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
-# tile 7
--ellipse(5115.5545,4768.7228,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+bpanda(3121,3367,0,270,1,80,40,120,60,1,135) # bpanda=ignore
# tile 7
--box(4935.5545,4764.7228,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
+circle(5027,4773,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 7
-polygon(4797.06,4786.7228,4721.5545,4862.2283,4646.0489,4786.7228,4721.5545,4711.2172) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-ellipse(4863,4739,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 7
--line(4593.5545,4736.7228,4473.5545,4838.7228) # line=1 1 color=cyan text={Line}
+-box(4683,4735,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 7
-# vector(4405.5545,4780.7228,80,135) vector=1 color=red text={Vector}
+polygon(4544.5055,4757,4469,4832.5055,4393.4945,4757,4469,4681.4945) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 7
-# text(4295.5545,4752.7228) color=magenta font="helvetica 14 bold roman" text={Region}
+-line(4341,4707,4221,4809) # line=1 1 color=cyan text={Line}
# tile 7
-# ruler(4837.5545,4514.7228,4709.5545,4632.7228) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# vector(4153,4751,80,135) vector=1 color=red text={Vector}
+# tile 6
+# text(4043,4723) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 7
-annulus(5279.5545,4578.7228,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+# ruler(4585,4485,4457,4603) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 7
-ellipse(5109.5545,4570.7228,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+annulus(5027,4549,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 7
-box(4935.5545,4568.7228,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
+ellipse(4857,4541,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 7
-point(5293.5545,4392.7228) # point=circle text={Circle Point}
+box(4683,4539,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 7
-point(5115.5545,4388.7228) # point=box color=red width=3 text={Box Point}
+point(5041,4363) # point=circle text={Circle Point}
# tile 7
-point(4953.5545,4392.7228) # point=diamond text={Diamond Point}
+point(4863,4359) # point=box color=red width=3 text={Box Point}
# tile 7
-point(5263.5545,4294.7228) # point=cross color=blue text={Cross Point}
+point(4701,4363) # point=diamond text={Diamond Point}
# tile 7
-point(5111.5545,4296.7228) # point=x text={X Point}
+point(5011,4265) # point=cross color=blue text={Cross Point}
# tile 7
-point(4957.5545,4290.7228) # point=arrow color=magenta text={Arrow Point}
+point(4859,4267) # point=x text={X Point}
# tile 7
-point(5107.5545,4192.7228) # point=boxcircle text={BoxCircle Point}
+point(4705,4261) # point=arrow color=magenta text={Arrow Point}
# tile 7
-# projection(4629.5545,4494.7228,4443.5545,4626.7228,40) text={Projection}
+point(4855,4163) # point=boxcircle text={BoxCircle Point}
# tile 7
-panda(4755.5545,4392.7228,180,270,3,0,60,2) # text={Panda}
+# projection(4377,4465,4191,4597,40) text={Projection}
# tile 7
-panda(4751.5545,4210.7228,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
+panda(4503,4363,180,270,3,0,60,2) # text={Panda}
# tile 7
-panda(4751.5545,4210.7228,128.4181,450,1,30,60,1) # panda=ignore
+panda(4499,4181,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
# tile 7
-panda(4751.5545,4210.7228,90,360,1,0,30,1) # panda=ignore
+panda(4499,4181,128.4181,450,1,30,60,1) # panda=ignore
# tile 7
-panda(4751.5545,4210.7228,90,360,1,30,60,1) # panda=ignore
+panda(4499,4181,90,360,1,0,30,1) # panda=ignore
# tile 7
-panda(4751.5545,4210.7228,0,270,1,0,30,1) # panda=ignore
+panda(4499,4181,90,360,1,30,60,1) # panda=ignore
# tile 7
-panda(4751.5545,4210.7228,0,270,1,30,60,1) # panda=ignore
+panda(4499,4181,0,270,1,0,30,1) # panda=ignore
# tile 7
-# compass(4385.5545,4536.7228,80) compass=physical {N} {E} 1 1 text={Compass}
+panda(4499,4181,0,270,1,30,60,1) # panda=ignore
# tile 7
-epanda(4591.5545,4376.7228,180,270,3,30,15,60,30,1,135) # text={Epanda}
+# compass(4133,4507,80) compass=physical {N} {E} 1 1 text={Compass}
# tile 7
-epanda(4585.5545,4198.7228,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
+epanda(4339,4347,180,270,3,30,15,60,30,1,135) # text={Epanda}
# tile 7
-epanda(4585.5545,4198.7228,90,360,1,30,15,60,30,1,135) # epanda=ignore
+epanda(4333,4169,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
# tile 7
-epanda(4585.5545,4198.7228,0,270,1,30,15,60,30,1,135) # epanda=ignore
+epanda(4333,4169,90,360,1,30,15,60,30,1,135) # epanda=ignore
# tile 7
-bpanda(4417.5545,4376.7228,180,270,3,80,40,120,60,1,135) # text={Bpanda}
+epanda(4333,4169,0,270,1,30,15,60,30,1,135) # epanda=ignore
# tile 7
-bpanda(4425.5545,4200.7228,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
+bpanda(4165,4347,180,270,3,80,40,120,60,1,135) # text={Bpanda}
# tile 7
-bpanda(4425.5545,4200.7228,90,360,1,80,40,120,60,1,135) # bpanda=ignore
+bpanda(4173,4171,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
# tile 7
-bpanda(4425.5545,4200.7228,0,270,1,80,40,120,60,1,135) # bpanda=ignore
+bpanda(4173,4171,90,360,1,80,40,120,60,1,135) # bpanda=ignore
# tile 7
-# circle3d(4243.5545,4310.7228,20) text={Circle3d}
+bpanda(4173,4171,0,270,1,80,40,120,60,1,135) # bpanda=ignore
diff --git a/tests/ds9.linear.wcsa.reg b/tests/ds9.linear.wcsa.reg
index 3da46d8..b53b9d9 100644
--- a/tests/ds9.linear.wcsa.reg
+++ b/tests/ds9.linear.wcsa.reg
@@ -3,146 +3,142 @@
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
wcsa;
# tile 2
-circle(179.32178,3892.3317,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+circle(121.5,3969.5,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 2
--ellipse(343.32178,3858.3317,80,40,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-ellipse(285.5,3935.5,80,40,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 2
--box(523.32178,3854.3317,160,80,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+-box(465.5,3931.5,160,80,45) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 2
-polygon(661.81624,3876.3317,737.32178,3951.8372,812.82732,3876.3317,737.32178,3800.8261) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+polygon(603.9945,3953.5,679.5,4029.0055,755.0055,3953.5,679.5,3877.9945) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 2
--line(865.32178,3826.3317,985.32178,3928.3317) # line=1 1 color=cyan text={Line}
+-line(807.5,3903.5,927.5,4005.5) # line=1 1 color=cyan text={Line}
# tile 2
-# vector(1053.3218,3870.3317,80,45) vector=1 color=red text={Vector}
+# vector(995.5,3947.5,80,45) vector=1 color=red text={Vector}
# tile 2
-# text(1163.3218,3842.3317) color=magenta font="helvetica 14 bold roman" text={Region}
+# text(1105.5,3919.5) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 2
-# ruler(621.32178,3604.3317,749.32178,3722.3317) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# ruler(563.5,3681.5,691.5,3799.5) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 2
-annulus(179.32178,3668.3317,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+annulus(121.5,3745.5,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 2
-ellipse(349.32178,3660.3317,30,15,60,30,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+ellipse(291.5,3737.5,30,15,60,30,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 2
-box(523.32178,3658.3317,80,40,120,60,45) # font="helvetica 10 bold roman" text={Box Annulus}
+box(465.5,3735.5,80,40,120,60,45) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 2
-point(165.32178,3482.3317) # point=circle text={Circle Point}
+point(107.5,3559.5) # point=circle text={Circle Point}
# tile 2
-point(343.32178,3478.3317) # point=box color=red width=3 text={Box Point}
+point(285.5,3555.5) # point=box color=red width=3 text={Box Point}
# tile 2
-point(505.32178,3482.3317) # point=diamond text={Diamond Point}
+point(447.5,3559.5) # point=diamond text={Diamond Point}
# tile 2
-point(195.32178,3384.3317) # point=cross color=blue text={Cross Point}
+point(137.5,3461.5) # point=cross color=blue text={Cross Point}
# tile 2
-point(347.32178,3386.3317) # point=x text={X Point}
+point(289.5,3463.5) # point=x text={X Point}
# tile 2
-point(501.32178,3380.3317) # point=arrow color=magenta text={Arrow Point}
+point(443.5,3457.5) # point=arrow color=magenta text={Arrow Point}
# tile 2
-point(351.32178,3282.3317) # point=boxcircle text={BoxCircle Point}
+point(293.5,3359.5) # point=boxcircle text={BoxCircle Point}
# tile 2
-# projection(829.32178,3584.3317,1015.3218,3716.3317,40) text={Projection}
+# projection(771.5,3661.5,957.5,3793.5,40) text={Projection}
# tile 2
-panda(703.32178,3482.3317,0,270,3,0,60,2) # text={Panda}
+panda(645.5,3559.5,0,270,3,0,60,2) # text={Panda}
# tile 2
-panda(707.32178,3300.3317,51.5819,90,1,0,30,1) # panda=(51.5819 90 180 270)(0 30 60) text={Panda 2}
+panda(649.5,3377.5,51.5819,90,1,0,30,1) # panda=(51.5819 90 180 270)(0 30 60) text={Panda 2}
# tile 2
-panda(707.32178,3300.3317,51.5819,90,1,30,60,1) # panda=ignore
+panda(649.5,3377.5,51.5819,90,1,30,60,1) # panda=ignore
# tile 2
-panda(707.32178,3300.3317,90,180,1,0,30,1) # panda=ignore
+panda(649.5,3377.5,90,180,1,0,30,1) # panda=ignore
# tile 2
-panda(707.32178,3300.3317,90,180,1,30,60,1) # panda=ignore
+panda(649.5,3377.5,90,180,1,30,60,1) # panda=ignore
# tile 2
-panda(707.32178,3300.3317,180,270,1,0,30,1) # panda=ignore
+panda(649.5,3377.5,180,270,1,0,30,1) # panda=ignore
# tile 2
-panda(707.32178,3300.3317,180,270,1,30,60,1) # panda=ignore
+panda(649.5,3377.5,180,270,1,30,60,1) # panda=ignore
# tile 2
-# compass(1073.3218,3626.3317,80) compass=physical {N} {E} 1 1 text={Compass}
+# compass(1015.5,3703.5,80) compass=physical {N} {E} 1 1 text={Compass}
# tile 2
-epanda(867.32178,3466.3317,0,270,3,30,15,60,30,1,45) # text={Epanda}
+epanda(809.5,3543.5,0,270,3,30,15,60,30,1,45) # text={Epanda}
# tile 2
-epanda(873.32178,3288.3317,45,90,1,30,15,60,30,1,45) # epanda=(45 90 180 270)(30 15 60 30)(45) text={Epanda 2}
+epanda(815.5,3365.5,45,90,1,30,15,60,30,1,45) # epanda=(45 90 180 270)(30 15 60 30)(45) text={Epanda 2}
# tile 2
-epanda(873.32178,3288.3317,90,180,1,30,15,60,30,1,45) # epanda=ignore
+epanda(815.5,3365.5,90,180,1,30,15,60,30,1,45) # epanda=ignore
# tile 2
-epanda(873.32178,3288.3317,180,270,1,30,15,60,30,1,45) # epanda=ignore
+epanda(815.5,3365.5,180,270,1,30,15,60,30,1,45) # epanda=ignore
# tile 2
-bpanda(1041.3218,3466.3317,0,270,3,80,40,120,60,1,45) # text={Bpanda}
+bpanda(983.5,3543.5,0,270,3,80,40,120,60,1,45) # text={Bpanda}
# tile 2
-bpanda(1033.3218,3290.3317,45,90,1,80,40,120,60,1,45) # bpanda=(45 90 180 270)(80 40 120 60)(45) text={Bpanda 2}
+bpanda(975.5,3367.5,45,90,1,80,40,120,60,1,45) # bpanda=(45 90 180 270)(80 40 120 60)(45) text={Bpanda 2}
# tile 2
-bpanda(1033.3218,3290.3317,90,180,1,80,40,120,60,1,45) # bpanda=ignore
+bpanda(975.5,3367.5,90,180,1,80,40,120,60,1,45) # bpanda=ignore
# tile 2
-bpanda(1033.3218,3290.3317,180,270,1,80,40,120,60,1,45) # bpanda=ignore
-# tile 2
-# circle3d(1215.3218,3400.3317,20) text={Circle3d}
-# tile 7
-circle(1184.0545,3389.7772,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
-# tile 7
--ellipse(1020.0545,3423.7772,80,40,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+bpanda(975.5,3367.5,180,270,1,80,40,120,60,1,45) # bpanda=ignore
# tile 7
--box(840.05446,3427.7772,160,80,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+circle(931.5,3419.5,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 7
-polygon(701.56,3405.7772,626.05446,3330.2717,550.54892,3405.7772,626.05446,3481.2828) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-ellipse(767.5,3453.5,80,40,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 7
--line(498.05446,3455.7772,378.05446,3353.7772) # line=1 1 color=cyan text={Line}
+-box(587.5,3457.5,160,80,45) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 7
-# vector(310.05446,3411.7772,80,45) vector=1 color=red text={Vector}
+polygon(449.0055,3435.5,373.5,3359.9945,297.9945,3435.5,373.5,3511.0055) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 7
-# text(200.05446,3439.7772) color=magenta font="helvetica 14 bold roman" text={Region}
+-line(245.5,3485.5,125.5,3383.5) # line=1 1 color=cyan text={Line}
# tile 7
-# ruler(742.05446,3677.7772,614.05446,3559.7772) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# vector(57.5,3441.5,80,45) vector=1 color=red text={Vector}
+# tile 6
+# text(1995.5,3469.5) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 7
-annulus(1184.0545,3613.7772,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+# ruler(489.5,3707.5,361.5,3589.5) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 7
-ellipse(1014.0545,3621.7772,30,15,60,30,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+annulus(931.5,3643.5,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 7
-box(840.05446,3623.7772,80,40,120,60,45) # font="helvetica 10 bold roman" text={Box Annulus}
+ellipse(761.5,3651.5,30,15,60,30,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 7
-point(1198.0545,3799.7772) # point=circle text={Circle Point}
+box(587.5,3653.5,80,40,120,60,45) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 7
-point(1020.0545,3803.7772) # point=box color=red width=3 text={Box Point}
+point(945.5,3829.5) # point=circle text={Circle Point}
# tile 7
-point(858.05446,3799.7772) # point=diamond text={Diamond Point}
+point(767.5,3833.5) # point=box color=red width=3 text={Box Point}
# tile 7
-point(1168.0545,3897.7772) # point=cross color=blue text={Cross Point}
+point(605.5,3829.5) # point=diamond text={Diamond Point}
# tile 7
-point(1016.0545,3895.7772) # point=x text={X Point}
+point(915.5,3927.5) # point=cross color=blue text={Cross Point}
# tile 7
-point(862.05446,3901.7772) # point=arrow color=magenta text={Arrow Point}
+point(763.5,3925.5) # point=x text={X Point}
# tile 7
-point(1012.0545,3999.7772) # point=boxcircle text={BoxCircle Point}
+point(609.5,3931.5) # point=arrow color=magenta text={Arrow Point}
# tile 7
-# projection(534.05446,3697.7772,348.05446,3565.7772,40) text={Projection}
+point(759.5,4029.5) # point=boxcircle text={BoxCircle Point}
# tile 7
-panda(660.05446,3799.7772,0,270,3,0,60,2) # text={Panda}
+# projection(281.5,3727.5,95.5,3595.5,40) text={Projection}
# tile 7
-panda(656.05446,3981.7772,51.5819,90,1,0,30,1) # panda=(51.5819 90 180 270)(0 30 60) text={Panda 2}
+panda(407.5,3829.5,0,270,3,0,60,2) # text={Panda}
# tile 7
-panda(656.05446,3981.7772,51.5819,90,1,30,60,1) # panda=ignore
+panda(403.5,4011.5,51.5819,90,1,0,30,1) # panda=(51.5819 90 180 270)(0 30 60) text={Panda 2}
# tile 7
-panda(656.05446,3981.7772,90,180,1,0,30,1) # panda=ignore
+panda(403.5,4011.5,51.5819,90,1,30,60,1) # panda=ignore
# tile 7
-panda(656.05446,3981.7772,90,180,1,30,60,1) # panda=ignore
+panda(403.5,4011.5,90,180,1,0,30,1) # panda=ignore
# tile 7
-panda(656.05446,3981.7772,180,270,1,0,30,1) # panda=ignore
+panda(403.5,4011.5,90,180,1,30,60,1) # panda=ignore
# tile 7
-panda(656.05446,3981.7772,180,270,1,30,60,1) # panda=ignore
+panda(403.5,4011.5,180,270,1,0,30,1) # panda=ignore
# tile 7
-# compass(290.05446,3655.7772,80) compass=physical {N} {E} 1 1 text={Compass}
+panda(403.5,4011.5,180,270,1,30,60,1) # panda=ignore
# tile 7
-epanda(496.05446,3815.7772,0,270,3,30,15,60,30,1,45) # text={Epanda}
+# compass(37.5,3685.5,80) compass=physical {N} {E} 1 1 text={Compass}
# tile 7
-epanda(490.05446,3993.7772,45,90,1,30,15,60,30,1,45) # epanda=(45 90 180 270)(30 15 60 30)(45) text={Epanda 2}
+epanda(243.5,3845.5,0,270,3,30,15,60,30,1,45) # text={Epanda}
# tile 7
-epanda(490.05446,3993.7772,90,180,1,30,15,60,30,1,45) # epanda=ignore
+epanda(237.5,4023.5,45,90,1,30,15,60,30,1,45) # epanda=(45 90 180 270)(30 15 60 30)(45) text={Epanda 2}
# tile 7
-epanda(490.05446,3993.7772,180,270,1,30,15,60,30,1,45) # epanda=ignore
+epanda(237.5,4023.5,90,180,1,30,15,60,30,1,45) # epanda=ignore
# tile 7
-bpanda(322.05446,3815.7772,0,270,3,80,40,120,60,1,45) # text={Bpanda}
+epanda(237.5,4023.5,180,270,1,30,15,60,30,1,45) # epanda=ignore
# tile 7
-bpanda(330.05446,3991.7772,45,90,1,80,40,120,60,1,45) # bpanda=(45 90 180 270)(80 40 120 60)(45) text={Bpanda 2}
+bpanda(69.5,3845.5,0,270,3,80,40,120,60,1,45) # text={Bpanda}
# tile 7
-bpanda(330.05446,3991.7772,90,180,1,80,40,120,60,1,45) # bpanda=ignore
+bpanda(77.5,4021.5,45,90,1,80,40,120,60,1,45) # bpanda=(45 90 180 270)(80 40 120 60)(45) text={Bpanda 2}
# tile 7
-bpanda(330.05446,3991.7772,180,270,1,80,40,120,60,1,45) # bpanda=ignore
+bpanda(77.5,4021.5,90,180,1,80,40,120,60,1,45) # bpanda=ignore
# tile 7
-# circle3d(148.05446,3881.7772,20) text={Circle3d}
+bpanda(77.5,4021.5,180,270,1,80,40,120,60,1,45) # bpanda=ignore
diff --git a/tests/ds9.linear.wcsc.reg b/tests/ds9.linear.wcsc.reg
index a726fe2..3adf1eb 100644
--- a/tests/ds9.linear.wcsc.reg
+++ b/tests/ds9.linear.wcsc.reg
@@ -3,146 +3,142 @@
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
wcsc;
# tile 2
-circle(179.32178,3892.3317,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+circle(121.5,3969.5,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 2
--ellipse(343.32178,3858.3317,80,40,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-ellipse(285.5,3935.5,80,40,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 2
--box(523.32178,3854.3317,160,80,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+-box(465.5,3931.5,160,80,45) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 2
-polygon(661.81624,3876.3317,737.32178,3951.8372,812.82732,3876.3317,737.32178,3800.8261) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+polygon(603.9945,3953.5,679.5,4029.0055,755.0055,3953.5,679.5,3877.9945) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 2
--line(865.32178,3826.3317,985.32178,3928.3317) # line=1 1 color=cyan text={Line}
+-line(807.5,3903.5,927.5,4005.5) # line=1 1 color=cyan text={Line}
# tile 2
-# vector(1053.3218,3870.3317,80,45) vector=1 color=red text={Vector}
+# vector(995.5,3947.5,80,45) vector=1 color=red text={Vector}
# tile 2
-# text(1163.3218,3842.3317) color=magenta font="helvetica 14 bold roman" text={Region}
+# text(1105.5,3919.5) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 2
-# ruler(621.32178,3604.3317,749.32178,3722.3317) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# ruler(563.5,3681.5,691.5,3799.5) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 2
-annulus(179.32178,3668.3317,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+annulus(121.5,3745.5,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 2
-ellipse(349.32178,3660.3317,30,15,60,30,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+ellipse(291.5,3737.5,30,15,60,30,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 2
-box(523.32178,3658.3317,80,40,120,60,45) # font="helvetica 10 bold roman" text={Box Annulus}
+box(465.5,3735.5,80,40,120,60,45) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 2
-point(165.32178,3482.3317) # point=circle text={Circle Point}
+point(107.5,3559.5) # point=circle text={Circle Point}
# tile 2
-point(343.32178,3478.3317) # point=box color=red width=3 text={Box Point}
+point(285.5,3555.5) # point=box color=red width=3 text={Box Point}
# tile 2
-point(505.32178,3482.3317) # point=diamond text={Diamond Point}
+point(447.5,3559.5) # point=diamond text={Diamond Point}
# tile 2
-point(195.32178,3384.3317) # point=cross color=blue text={Cross Point}
+point(137.5,3461.5) # point=cross color=blue text={Cross Point}
# tile 2
-point(347.32178,3386.3317) # point=x text={X Point}
+point(289.5,3463.5) # point=x text={X Point}
# tile 2
-point(501.32178,3380.3317) # point=arrow color=magenta text={Arrow Point}
+point(443.5,3457.5) # point=arrow color=magenta text={Arrow Point}
# tile 2
-point(351.32178,3282.3317) # point=boxcircle text={BoxCircle Point}
+point(293.5,3359.5) # point=boxcircle text={BoxCircle Point}
# tile 2
-# projection(829.32178,3584.3317,1015.3218,3716.3317,40) text={Projection}
+# projection(771.5,3661.5,957.5,3793.5,40) text={Projection}
# tile 2
-panda(703.32178,3482.3317,0,270,3,0,60,2) # text={Panda}
+panda(645.5,3559.5,0,270,3,0,60,2) # text={Panda}
# tile 2
-panda(707.32178,3300.3317,51.5819,90,1,0,30,1) # panda=(51.5819 90 180 270)(0 30 60) text={Panda 2}
+panda(649.5,3377.5,51.5819,90,1,0,30,1) # panda=(51.5819 90 180 270)(0 30 60) text={Panda 2}
# tile 2
-panda(707.32178,3300.3317,51.5819,90,1,30,60,1) # panda=ignore
+panda(649.5,3377.5,51.5819,90,1,30,60,1) # panda=ignore
# tile 2
-panda(707.32178,3300.3317,90,180,1,0,30,1) # panda=ignore
+panda(649.5,3377.5,90,180,1,0,30,1) # panda=ignore
# tile 2
-panda(707.32178,3300.3317,90,180,1,30,60,1) # panda=ignore
+panda(649.5,3377.5,90,180,1,30,60,1) # panda=ignore
# tile 2
-panda(707.32178,3300.3317,180,270,1,0,30,1) # panda=ignore
+panda(649.5,3377.5,180,270,1,0,30,1) # panda=ignore
# tile 2
-panda(707.32178,3300.3317,180,270,1,30,60,1) # panda=ignore
+panda(649.5,3377.5,180,270,1,30,60,1) # panda=ignore
# tile 2
-# compass(1073.3218,3626.3317,80) compass=physical {N} {E} 1 1 text={Compass}
+# compass(1015.5,3703.5,80) compass=physical {N} {E} 1 1 text={Compass}
# tile 2
-epanda(867.32178,3466.3317,0,270,3,30,15,60,30,1,45) # text={Epanda}
+epanda(809.5,3543.5,0,270,3,30,15,60,30,1,45) # text={Epanda}
# tile 2
-epanda(873.32178,3288.3317,45,90,1,30,15,60,30,1,45) # epanda=(45 90 180 270)(30 15 60 30)(45) text={Epanda 2}
+epanda(815.5,3365.5,45,90,1,30,15,60,30,1,45) # epanda=(45 90 180 270)(30 15 60 30)(45) text={Epanda 2}
# tile 2
-epanda(873.32178,3288.3317,90,180,1,30,15,60,30,1,45) # epanda=ignore
+epanda(815.5,3365.5,90,180,1,30,15,60,30,1,45) # epanda=ignore
# tile 2
-epanda(873.32178,3288.3317,180,270,1,30,15,60,30,1,45) # epanda=ignore
+epanda(815.5,3365.5,180,270,1,30,15,60,30,1,45) # epanda=ignore
# tile 2
-bpanda(1041.3218,3466.3317,0,270,3,80,40,120,60,1,45) # text={Bpanda}
+bpanda(983.5,3543.5,0,270,3,80,40,120,60,1,45) # text={Bpanda}
# tile 2
-bpanda(1033.3218,3290.3317,45,90,1,80,40,120,60,1,45) # bpanda=(45 90 180 270)(80 40 120 60)(45) text={Bpanda 2}
+bpanda(975.5,3367.5,45,90,1,80,40,120,60,1,45) # bpanda=(45 90 180 270)(80 40 120 60)(45) text={Bpanda 2}
# tile 2
-bpanda(1033.3218,3290.3317,90,180,1,80,40,120,60,1,45) # bpanda=ignore
+bpanda(975.5,3367.5,90,180,1,80,40,120,60,1,45) # bpanda=ignore
# tile 2
-bpanda(1033.3218,3290.3317,180,270,1,80,40,120,60,1,45) # bpanda=ignore
-# tile 2
-# circle3d(1215.3218,3400.3317,20) text={Circle3d}
-# tile 7
-circle(-1182.0545,3389.7772,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
-# tile 7
--ellipse(-1018.0545,3423.7772,80,40,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+bpanda(975.5,3367.5,180,270,1,80,40,120,60,1,45) # bpanda=ignore
# tile 7
--box(-838.05446,3427.7772,160,80,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+circle(-929.5,3419.5,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 7
-polygon(-699.56,3405.7772,-624.05446,3330.2717,-548.54892,3405.7772,-624.05446,3481.2828) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-ellipse(-765.5,3453.5,80,40,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 7
--line(-496.05446,3455.7772,-376.05446,3353.7772) # line=1 1 color=cyan text={Line}
+-box(-585.5,3457.5,160,80,45) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 7
-# vector(-308.05446,3411.7772,80,45) vector=1 color=red text={Vector}
+polygon(-447.0055,3435.5,-371.5,3359.9945,-295.9945,3435.5,-371.5,3511.0055) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 7
-# text(-198.05446,3439.7772) color=magenta font="helvetica 14 bold roman" text={Region}
+-line(-243.5,3485.5,-123.5,3383.5) # line=1 1 color=cyan text={Line}
# tile 7
-# ruler(-740.05446,3677.7772,-612.05446,3559.7772) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# vector(-55.5,3441.5,80,45) vector=1 color=red text={Vector}
+# tile 6
+# text(-1993.5,3469.5) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 7
-annulus(-1182.0545,3613.7772,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+# ruler(-487.5,3707.5,-359.5,3589.5) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 7
-ellipse(-1012.0545,3621.7772,30,15,60,30,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+annulus(-929.5,3643.5,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 7
-box(-838.05446,3623.7772,80,40,120,60,45) # font="helvetica 10 bold roman" text={Box Annulus}
+ellipse(-759.5,3651.5,30,15,60,30,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 7
-point(-1196.0545,3799.7772) # point=circle text={Circle Point}
+box(-585.5,3653.5,80,40,120,60,45) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 7
-point(-1018.0545,3803.7772) # point=box color=red width=3 text={Box Point}
+point(-943.5,3829.5) # point=circle text={Circle Point}
# tile 7
-point(-856.05446,3799.7772) # point=diamond text={Diamond Point}
+point(-765.5,3833.5) # point=box color=red width=3 text={Box Point}
# tile 7
-point(-1166.0545,3897.7772) # point=cross color=blue text={Cross Point}
+point(-603.5,3829.5) # point=diamond text={Diamond Point}
# tile 7
-point(-1014.0545,3895.7772) # point=x text={X Point}
+point(-913.5,3927.5) # point=cross color=blue text={Cross Point}
# tile 7
-point(-860.05446,3901.7772) # point=arrow color=magenta text={Arrow Point}
+point(-761.5,3925.5) # point=x text={X Point}
# tile 7
-point(-1010.0545,3999.7772) # point=boxcircle text={BoxCircle Point}
+point(-607.5,3931.5) # point=arrow color=magenta text={Arrow Point}
# tile 7
-# projection(-532.05446,3697.7772,-346.05446,3565.7772,40) text={Projection}
+point(-757.5,4029.5) # point=boxcircle text={BoxCircle Point}
# tile 7
-panda(-658.05446,3799.7772,0,270,3,0,60,2) # text={Panda}
+# projection(-279.5,3727.5,-93.5,3595.5,40) text={Projection}
# tile 7
-panda(-654.05446,3981.7772,51.5819,90,1,0,30,1) # panda=(51.5819 90 180 270)(0 30 60) text={Panda 2}
+panda(-405.5,3829.5,0,270,3,0,60,2) # text={Panda}
# tile 7
-panda(-654.05446,3981.7772,51.5819,90,1,30,60,1) # panda=ignore
+panda(-401.5,4011.5,51.5819,90,1,0,30,1) # panda=(51.5819 90 180 270)(0 30 60) text={Panda 2}
# tile 7
-panda(-654.05446,3981.7772,90,180,1,0,30,1) # panda=ignore
+panda(-401.5,4011.5,51.5819,90,1,30,60,1) # panda=ignore
# tile 7
-panda(-654.05446,3981.7772,90,180,1,30,60,1) # panda=ignore
+panda(-401.5,4011.5,90,180,1,0,30,1) # panda=ignore
# tile 7
-panda(-654.05446,3981.7772,180,270,1,0,30,1) # panda=ignore
+panda(-401.5,4011.5,90,180,1,30,60,1) # panda=ignore
# tile 7
-panda(-654.05446,3981.7772,180,270,1,30,60,1) # panda=ignore
+panda(-401.5,4011.5,180,270,1,0,30,1) # panda=ignore
# tile 7
-# compass(-288.05446,3655.7772,80) compass=physical {N} {E} 1 1 text={Compass}
+panda(-401.5,4011.5,180,270,1,30,60,1) # panda=ignore
# tile 7
-epanda(-494.05446,3815.7772,0,270,3,30,15,60,30,1,45) # text={Epanda}
+# compass(-35.5,3685.5,80) compass=physical {N} {E} 1 1 text={Compass}
# tile 7
-epanda(-488.05446,3993.7772,45,90,1,30,15,60,30,1,45) # epanda=(45 90 180 270)(30 15 60 30)(45) text={Epanda 2}
+epanda(-241.5,3845.5,0,270,3,30,15,60,30,1,45) # text={Epanda}
# tile 7
-epanda(-488.05446,3993.7772,90,180,1,30,15,60,30,1,45) # epanda=ignore
+epanda(-235.5,4023.5,45,90,1,30,15,60,30,1,45) # epanda=(45 90 180 270)(30 15 60 30)(45) text={Epanda 2}
# tile 7
-epanda(-488.05446,3993.7772,180,270,1,30,15,60,30,1,45) # epanda=ignore
+epanda(-235.5,4023.5,90,180,1,30,15,60,30,1,45) # epanda=ignore
# tile 7
-bpanda(-320.05446,3815.7772,0,270,3,80,40,120,60,1,45) # text={Bpanda}
+epanda(-235.5,4023.5,180,270,1,30,15,60,30,1,45) # epanda=ignore
# tile 7
-bpanda(-328.05446,3991.7772,45,90,1,80,40,120,60,1,45) # bpanda=(45 90 180 270)(80 40 120 60)(45) text={Bpanda 2}
+bpanda(-67.5,3845.5,0,270,3,80,40,120,60,1,45) # text={Bpanda}
# tile 7
-bpanda(-328.05446,3991.7772,90,180,1,80,40,120,60,1,45) # bpanda=ignore
+bpanda(-75.5,4021.5,45,90,1,80,40,120,60,1,45) # bpanda=(45 90 180 270)(80 40 120 60)(45) text={Bpanda 2}
# tile 7
-bpanda(-328.05446,3991.7772,180,270,1,80,40,120,60,1,45) # bpanda=ignore
+bpanda(-75.5,4021.5,90,180,1,80,40,120,60,1,45) # bpanda=ignore
# tile 7
-# circle3d(-146.05446,3881.7772,20) text={Circle3d}
+bpanda(-75.5,4021.5,180,270,1,80,40,120,60,1,45) # bpanda=ignore
diff --git a/tests/ds9.linear.wcsd.reg b/tests/ds9.linear.wcsd.reg
index 8a6e7af..1242cdf 100644
--- a/tests/ds9.linear.wcsd.reg
+++ b/tests/ds9.linear.wcsd.reg
@@ -3,146 +3,142 @@
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
wcsd;
# tile 2
-circle(3917.6782,3892.3317,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+circle(3975.5,3969.5,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 2
--ellipse(3753.6782,3858.3317,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-ellipse(3811.5,3935.5,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 2
--box(3573.6782,3854.3317,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
+-box(3631.5,3931.5,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 2
-polygon(3435.1838,3876.3317,3359.6782,3951.8372,3284.1727,3876.3317,3359.6782,3800.8261) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+polygon(3493.0055,3953.5,3417.5,4029.0055,3341.9945,3953.5,3417.5,3877.9945) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 2
--line(3231.6782,3826.3317,3111.6782,3928.3317) # line=1 1 color=cyan text={Line}
+-line(3289.5,3903.5,3169.5,4005.5) # line=1 1 color=cyan text={Line}
# tile 2
-# vector(3043.6782,3870.3317,80,135) vector=1 color=red text={Vector}
+# vector(3101.5,3947.5,80,135) vector=1 color=red text={Vector}
# tile 2
-# text(2933.6782,3842.3317) color=magenta font="helvetica 14 bold roman" text={Region}
+# text(2991.5,3919.5) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 2
-# ruler(3475.6782,3604.3317,3347.6782,3722.3317) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# ruler(3533.5,3681.5,3405.5,3799.5) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 2
-annulus(3917.6782,3668.3317,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+annulus(3975.5,3745.5,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 2
-ellipse(3747.6782,3660.3317,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+ellipse(3805.5,3737.5,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 2
-box(3573.6782,3658.3317,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
+box(3631.5,3735.5,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 2
-point(3931.6782,3482.3317) # point=circle text={Circle Point}
+point(3989.5,3559.5) # point=circle text={Circle Point}
# tile 2
-point(3753.6782,3478.3317) # point=box color=red width=3 text={Box Point}
+point(3811.5,3555.5) # point=box color=red width=3 text={Box Point}
# tile 2
-point(3591.6782,3482.3317) # point=diamond text={Diamond Point}
+point(3649.5,3559.5) # point=diamond text={Diamond Point}
# tile 2
-point(3901.6782,3384.3317) # point=cross color=blue text={Cross Point}
+point(3959.5,3461.5) # point=cross color=blue text={Cross Point}
# tile 2
-point(3749.6782,3386.3317) # point=x text={X Point}
+point(3807.5,3463.5) # point=x text={X Point}
# tile 2
-point(3595.6782,3380.3317) # point=arrow color=magenta text={Arrow Point}
+point(3653.5,3457.5) # point=arrow color=magenta text={Arrow Point}
# tile 2
-point(3745.6782,3282.3317) # point=boxcircle text={BoxCircle Point}
+point(3803.5,3359.5) # point=boxcircle text={BoxCircle Point}
# tile 2
-# projection(3267.6782,3584.3317,3081.6782,3716.3317,40) text={Projection}
+# projection(3325.5,3661.5,3139.5,3793.5,40) text={Projection}
# tile 2
-panda(3393.6782,3482.3317,180,270,3,0,60,2) # text={Panda}
+panda(3451.5,3559.5,180,270,3,0,60,2) # text={Panda}
# tile 2
-panda(3389.6782,3300.3317,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
+panda(3447.5,3377.5,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
# tile 2
-panda(3389.6782,3300.3317,128.4181,450,1,30,60,1) # panda=ignore
+panda(3447.5,3377.5,128.4181,450,1,30,60,1) # panda=ignore
# tile 2
-panda(3389.6782,3300.3317,90,360,1,0,30,1) # panda=ignore
+panda(3447.5,3377.5,90,360,1,0,30,1) # panda=ignore
# tile 2
-panda(3389.6782,3300.3317,90,360,1,30,60,1) # panda=ignore
+panda(3447.5,3377.5,90,360,1,30,60,1) # panda=ignore
# tile 2
-panda(3389.6782,3300.3317,0,270,1,0,30,1) # panda=ignore
+panda(3447.5,3377.5,0,270,1,0,30,1) # panda=ignore
# tile 2
-panda(3389.6782,3300.3317,0,270,1,30,60,1) # panda=ignore
+panda(3447.5,3377.5,0,270,1,30,60,1) # panda=ignore
# tile 2
-# compass(3023.6782,3626.3317,80) compass=physical {N} {E} 1 1 text={Compass}
+# compass(3081.5,3703.5,80) compass=physical {N} {E} 1 1 text={Compass}
# tile 2
-epanda(3229.6782,3466.3317,180,270,3,30,15,60,30,1,135) # text={Epanda}
+epanda(3287.5,3543.5,180,270,3,30,15,60,30,1,135) # text={Epanda}
# tile 2
-epanda(3223.6782,3288.3317,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
+epanda(3281.5,3365.5,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
# tile 2
-epanda(3223.6782,3288.3317,90,360,1,30,15,60,30,1,135) # epanda=ignore
+epanda(3281.5,3365.5,90,360,1,30,15,60,30,1,135) # epanda=ignore
# tile 2
-epanda(3223.6782,3288.3317,0,270,1,30,15,60,30,1,135) # epanda=ignore
+epanda(3281.5,3365.5,0,270,1,30,15,60,30,1,135) # epanda=ignore
# tile 2
-bpanda(3055.6782,3466.3317,180,270,3,80,40,120,60,1,135) # text={Bpanda}
+bpanda(3113.5,3543.5,180,270,3,80,40,120,60,1,135) # text={Bpanda}
# tile 2
-bpanda(3063.6782,3290.3317,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
+bpanda(3121.5,3367.5,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
# tile 2
-bpanda(3063.6782,3290.3317,90,360,1,80,40,120,60,1,135) # bpanda=ignore
+bpanda(3121.5,3367.5,90,360,1,80,40,120,60,1,135) # bpanda=ignore
# tile 2
-bpanda(3063.6782,3290.3317,0,270,1,80,40,120,60,1,135) # bpanda=ignore
-# tile 2
-# circle3d(2881.6782,3400.3317,20) text={Circle3d}
-# tile 7
-circle(5280.0545,4803.2228,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
-# tile 7
--ellipse(5116.0545,4769.2228,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+bpanda(3121.5,3367.5,0,270,1,80,40,120,60,1,135) # bpanda=ignore
# tile 7
--box(4936.0545,4765.2228,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
+circle(5027.5,4773.5,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 7
-polygon(4797.56,4787.2228,4722.0545,4862.7283,4646.5489,4787.2228,4722.0545,4711.7172) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-ellipse(4863.5,4739.5,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 7
--line(4594.0545,4737.2228,4474.0545,4839.2228) # line=1 1 color=cyan text={Line}
+-box(4683.5,4735.5,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 7
-# vector(4406.0545,4781.2228,80,135) vector=1 color=red text={Vector}
+polygon(4545.0055,4757.5,4469.5,4833.0055,4393.9945,4757.5,4469.5,4681.9945) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 7
-# text(4296.0545,4753.2228) color=magenta font="helvetica 14 bold roman" text={Region}
+-line(4341.5,4707.5,4221.5,4809.5) # line=1 1 color=cyan text={Line}
# tile 7
-# ruler(4838.0545,4515.2228,4710.0545,4633.2228) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# vector(4153.5,4751.5,80,135) vector=1 color=red text={Vector}
+# tile 6
+# text(4043.5,4723.5) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 7
-annulus(5280.0545,4579.2228,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+# ruler(4585.5,4485.5,4457.5,4603.5) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 7
-ellipse(5110.0545,4571.2228,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+annulus(5027.5,4549.5,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 7
-box(4936.0545,4569.2228,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
+ellipse(4857.5,4541.5,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 7
-point(5294.0545,4393.2228) # point=circle text={Circle Point}
+box(4683.5,4539.5,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 7
-point(5116.0545,4389.2228) # point=box color=red width=3 text={Box Point}
+point(5041.5,4363.5) # point=circle text={Circle Point}
# tile 7
-point(4954.0545,4393.2228) # point=diamond text={Diamond Point}
+point(4863.5,4359.5) # point=box color=red width=3 text={Box Point}
# tile 7
-point(5264.0545,4295.2228) # point=cross color=blue text={Cross Point}
+point(4701.5,4363.5) # point=diamond text={Diamond Point}
# tile 7
-point(5112.0545,4297.2228) # point=x text={X Point}
+point(5011.5,4265.5) # point=cross color=blue text={Cross Point}
# tile 7
-point(4958.0545,4291.2228) # point=arrow color=magenta text={Arrow Point}
+point(4859.5,4267.5) # point=x text={X Point}
# tile 7
-point(5108.0545,4193.2228) # point=boxcircle text={BoxCircle Point}
+point(4705.5,4261.5) # point=arrow color=magenta text={Arrow Point}
# tile 7
-# projection(4630.0545,4495.2228,4444.0545,4627.2228,40) text={Projection}
+point(4855.5,4163.5) # point=boxcircle text={BoxCircle Point}
# tile 7
-panda(4756.0545,4393.2228,180,270,3,0,60,2) # text={Panda}
+# projection(4377.5,4465.5,4191.5,4597.5,40) text={Projection}
# tile 7
-panda(4752.0545,4211.2228,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
+panda(4503.5,4363.5,180,270,3,0,60,2) # text={Panda}
# tile 7
-panda(4752.0545,4211.2228,128.4181,450,1,30,60,1) # panda=ignore
+panda(4499.5,4181.5,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
# tile 7
-panda(4752.0545,4211.2228,90,360,1,0,30,1) # panda=ignore
+panda(4499.5,4181.5,128.4181,450,1,30,60,1) # panda=ignore
# tile 7
-panda(4752.0545,4211.2228,90,360,1,30,60,1) # panda=ignore
+panda(4499.5,4181.5,90,360,1,0,30,1) # panda=ignore
# tile 7
-panda(4752.0545,4211.2228,0,270,1,0,30,1) # panda=ignore
+panda(4499.5,4181.5,90,360,1,30,60,1) # panda=ignore
# tile 7
-panda(4752.0545,4211.2228,0,270,1,30,60,1) # panda=ignore
+panda(4499.5,4181.5,0,270,1,0,30,1) # panda=ignore
# tile 7
-# compass(4386.0545,4537.2228,80) compass=physical {N} {E} 1 1 text={Compass}
+panda(4499.5,4181.5,0,270,1,30,60,1) # panda=ignore
# tile 7
-epanda(4592.0545,4377.2228,180,270,3,30,15,60,30,1,135) # text={Epanda}
+# compass(4133.5,4507.5,80) compass=physical {N} {E} 1 1 text={Compass}
# tile 7
-epanda(4586.0545,4199.2228,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
+epanda(4339.5,4347.5,180,270,3,30,15,60,30,1,135) # text={Epanda}
# tile 7
-epanda(4586.0545,4199.2228,90,360,1,30,15,60,30,1,135) # epanda=ignore
+epanda(4333.5,4169.5,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
# tile 7
-epanda(4586.0545,4199.2228,0,270,1,30,15,60,30,1,135) # epanda=ignore
+epanda(4333.5,4169.5,90,360,1,30,15,60,30,1,135) # epanda=ignore
# tile 7
-bpanda(4418.0545,4377.2228,180,270,3,80,40,120,60,1,135) # text={Bpanda}
+epanda(4333.5,4169.5,0,270,1,30,15,60,30,1,135) # epanda=ignore
# tile 7
-bpanda(4426.0545,4201.2228,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
+bpanda(4165.5,4347.5,180,270,3,80,40,120,60,1,135) # text={Bpanda}
# tile 7
-bpanda(4426.0545,4201.2228,90,360,1,80,40,120,60,1,135) # bpanda=ignore
+bpanda(4173.5,4171.5,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
# tile 7
-bpanda(4426.0545,4201.2228,0,270,1,80,40,120,60,1,135) # bpanda=ignore
+bpanda(4173.5,4171.5,90,360,1,80,40,120,60,1,135) # bpanda=ignore
# tile 7
-# circle3d(4244.0545,4311.2228,20) text={Circle3d}
+bpanda(4173.5,4171.5,0,270,1,80,40,120,60,1,135) # bpanda=ignore
diff --git a/tests/ds9.linear.wcsi.reg b/tests/ds9.linear.wcsi.reg
index c076320..8ac4387 100644
--- a/tests/ds9.linear.wcsi.reg
+++ b/tests/ds9.linear.wcsi.reg
@@ -3,146 +3,142 @@
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
wcsi;
# tile 2
-circle(95.910891,1096.4158,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+circle(67,1135,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 2
--ellipse(177.91089,1079.4158,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-ellipse(149,1118,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 2
--box(267.91089,1077.4158,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+-box(239,1116,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 2
-polygon(337.15812,1088.4158,374.91089,1126.1686,412.66366,1088.4158,374.91089,1050.6631) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+polygon(308.24725,1127,346,1164.7528,383.75275,1127,346,1089.2472) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 2
--line(438.91089,1063.4158,498.91089,1114.4158) # line=1 1 color=cyan text={Line}
+-line(410,1102,470,1153) # line=1 1 color=cyan text={Line}
# tile 2
-# vector(532.91089,1085.4158,40,45) vector=1 color=red text={Vector}
+# vector(504,1124,40,45) vector=1 color=red text={Vector}
# tile 2
-# text(587.91089,1071.4158) color=magenta font="helvetica 14 bold roman" text={Region}
+# text(559,1110) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 2
-# ruler(316.91089,952.41584,380.91089,1011.4158) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# ruler(288,991,352,1050) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 2
-annulus(95.910891,984.41584,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+annulus(67,1023,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 2
-ellipse(180.91089,980.41584,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+ellipse(152,1019,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 2
-box(267.91089,979.41584,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
+box(239,1018,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 2
-point(88.910891,891.41584) # point=circle text={Circle Point}
+point(60,930) # point=circle text={Circle Point}
# tile 2
-point(177.91089,889.41584) # point=box color=red width=3 text={Box Point}
+point(149,928) # point=box color=red width=3 text={Box Point}
# tile 2
-point(258.91089,891.41584) # point=diamond text={Diamond Point}
+point(230,930) # point=diamond text={Diamond Point}
# tile 2
-point(103.91089,842.41584) # point=cross color=blue text={Cross Point}
+point(75,881) # point=cross color=blue text={Cross Point}
# tile 2
-point(179.91089,843.41584) # point=x text={X Point}
+point(151,882) # point=x text={X Point}
# tile 2
-point(256.91089,840.41584) # point=arrow color=magenta text={Arrow Point}
+point(228,879) # point=arrow color=magenta text={Arrow Point}
# tile 2
-point(181.91089,791.41584) # point=boxcircle text={BoxCircle Point}
+point(153,830) # point=boxcircle text={BoxCircle Point}
# tile 2
-# projection(420.91089,942.41584,513.91089,1008.4158,20) text={Projection}
+# projection(392,981,485,1047,20) text={Projection}
# tile 2
-panda(357.91089,891.41584,0,270,3,0,30,2) # text={Panda}
+panda(329,930,0,270,3,0,30,2) # text={Panda}
# tile 2
-panda(359.91089,800.41584,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
+panda(331,839,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
# tile 2
-panda(359.91089,800.41584,51.5819,90,1,15,30,1) # panda=ignore
+panda(331,839,51.5819,90,1,15,30,1) # panda=ignore
# tile 2
-panda(359.91089,800.41584,90,180,1,0,15,1) # panda=ignore
+panda(331,839,90,180,1,0,15,1) # panda=ignore
# tile 2
-panda(359.91089,800.41584,90,180,1,15,30,1) # panda=ignore
+panda(331,839,90,180,1,15,30,1) # panda=ignore
# tile 2
-panda(359.91089,800.41584,180,270,1,0,15,1) # panda=ignore
+panda(331,839,180,270,1,0,15,1) # panda=ignore
# tile 2
-panda(359.91089,800.41584,180,270,1,15,30,1) # panda=ignore
+panda(331,839,180,270,1,15,30,1) # panda=ignore
# tile 2
-# compass(542.91089,963.41584,40) compass=physical {N} {E} 1 1 text={Compass}
+# compass(514,1002,40) compass=physical {N} {E} 1 1 text={Compass}
# tile 2
-epanda(439.91089,883.41584,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
+epanda(411,922,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
# tile 2
-epanda(442.91089,794.41584,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
+epanda(414,833,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
# tile 2
-epanda(442.91089,794.41584,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(414,833,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 2
-epanda(442.91089,794.41584,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(414,833,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 2
-bpanda(526.91089,883.41584,0,270,3,40,20,60,30,1,45) # text={Bpanda}
+bpanda(498,922,0,270,3,40,20,60,30,1,45) # text={Bpanda}
# tile 2
-bpanda(522.91089,795.41584,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
+bpanda(494,834,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
# tile 2
-bpanda(522.91089,795.41584,90,180,1,40,20,60,30,1,45) # bpanda=ignore
+bpanda(494,834,90,180,1,40,20,60,30,1,45) # bpanda=ignore
# tile 2
-bpanda(522.91089,795.41584,180,270,1,40,20,60,30,1,45) # bpanda=ignore
-# tile 2
-# circle3d(613.91089,850.41584,10) text={Circle3d}
-# tile 7
-circle(598.27723,845.13861,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
-# tile 7
--ellipse(516.27723,862.13861,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+bpanda(494,834,180,270,1,40,20,60,30,1,45) # bpanda=ignore
# tile 7
--box(426.27723,864.13861,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+circle(472,860,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 7
-polygon(357.03,853.13861,319.27723,815.38586,281.52446,853.13861,319.27723,890.89138) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-ellipse(390,877,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 7
--line(255.27723,878.13861,195.27723,827.13861) # line=1 1 color=cyan text={Line}
+-box(300,879,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 7
-# vector(161.27723,856.13861,40,45) vector=1 color=red text={Vector}
+polygon(230.75275,868,193,830.24725,155.24725,868,193,905.75275) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 7
-# text(106.27723,870.13861) color=magenta font="helvetica 14 bold roman" text={Region}
+-line(129,893,69,842) # line=1 1 color=cyan text={Line}
# tile 7
-# ruler(377.27723,989.13861,313.27723,930.13861) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# vector(35,871,40,45) vector=1 color=red text={Vector}
+# tile 6
+# text(1004,885) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 7
-annulus(598.27723,957.13861,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+# ruler(251,1004,187,945) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 7
-ellipse(513.27723,961.13861,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+annulus(472,972,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 7
-box(426.27723,962.13861,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
+ellipse(387,976,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 7
-point(605.27723,1050.1386) # point=circle text={Circle Point}
+box(300,977,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 7
-point(516.27723,1052.1386) # point=box color=red width=3 text={Box Point}
+point(479,1065) # point=circle text={Circle Point}
# tile 7
-point(435.27723,1050.1386) # point=diamond text={Diamond Point}
+point(390,1067) # point=box color=red width=3 text={Box Point}
# tile 7
-point(590.27723,1099.1386) # point=cross color=blue text={Cross Point}
+point(309,1065) # point=diamond text={Diamond Point}
# tile 7
-point(514.27723,1098.1386) # point=x text={X Point}
+point(464,1114) # point=cross color=blue text={Cross Point}
# tile 7
-point(437.27723,1101.1386) # point=arrow color=magenta text={Arrow Point}
+point(388,1113) # point=x text={X Point}
# tile 7
-point(512.27723,1150.1386) # point=boxcircle text={BoxCircle Point}
+point(311,1116) # point=arrow color=magenta text={Arrow Point}
# tile 7
-# projection(273.27723,999.13861,180.27723,933.13861,20) text={Projection}
+point(386,1165) # point=boxcircle text={BoxCircle Point}
# tile 7
-panda(336.27723,1050.1386,0,270,3,0,30,2) # text={Panda}
+# projection(147,1014,54,948,20) text={Projection}
# tile 7
-panda(334.27723,1141.1386,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
+panda(210,1065,0,270,3,0,30,2) # text={Panda}
# tile 7
-panda(334.27723,1141.1386,51.5819,90,1,15,30,1) # panda=ignore
+panda(208,1156,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
# tile 7
-panda(334.27723,1141.1386,90,180,1,0,15,1) # panda=ignore
+panda(208,1156,51.5819,90,1,15,30,1) # panda=ignore
# tile 7
-panda(334.27723,1141.1386,90,180,1,15,30,1) # panda=ignore
+panda(208,1156,90,180,1,0,15,1) # panda=ignore
# tile 7
-panda(334.27723,1141.1386,180,270,1,0,15,1) # panda=ignore
+panda(208,1156,90,180,1,15,30,1) # panda=ignore
# tile 7
-panda(334.27723,1141.1386,180,270,1,15,30,1) # panda=ignore
+panda(208,1156,180,270,1,0,15,1) # panda=ignore
# tile 7
-# compass(151.27723,978.13861,40) compass=physical {N} {E} 1 1 text={Compass}
+panda(208,1156,180,270,1,15,30,1) # panda=ignore
# tile 7
-epanda(254.27723,1058.1386,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
+# compass(25,993,40) compass=physical {N} {E} 1 1 text={Compass}
# tile 7
-epanda(251.27723,1147.1386,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
+epanda(128,1073,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
# tile 7
-epanda(251.27723,1147.1386,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(125,1162,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
# tile 7
-epanda(251.27723,1147.1386,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(125,1162,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 7
-bpanda(167.27723,1058.1386,0,270,3,40,20,60,30,1,45) # text={Bpanda}
+epanda(125,1162,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 7
-bpanda(171.27723,1146.1386,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
+bpanda(41,1073,0,270,3,40,20,60,30,1,45) # text={Bpanda}
# tile 7
-bpanda(171.27723,1146.1386,90,180,1,40,20,60,30,1,45) # bpanda=ignore
+bpanda(45,1161,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
# tile 7
-bpanda(171.27723,1146.1386,180,270,1,40,20,60,30,1,45) # bpanda=ignore
+bpanda(45,1161,90,180,1,40,20,60,30,1,45) # bpanda=ignore
# tile 7
-# circle3d(80.277228,1091.1386,10) text={Circle3d}
+bpanda(45,1161,180,270,1,40,20,60,30,1,45) # bpanda=ignore
diff --git a/tests/ds9.linear.wcsp.reg b/tests/ds9.linear.wcsp.reg
index 73187dc..d886aa6 100644
--- a/tests/ds9.linear.wcsp.reg
+++ b/tests/ds9.linear.wcsp.reg
@@ -3,146 +3,142 @@
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
wcsp;
# tile 2
-circle(3917.1782,3891.8317,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+circle(3975,3969,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 2
--ellipse(3753.1782,3857.8317,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-ellipse(3811,3935,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 2
--box(3573.1782,3853.8317,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
+-box(3631,3931,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 2
-polygon(3434.6838,3875.8317,3359.1782,3951.3372,3283.6727,3875.8317,3359.1782,3800.3261) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+polygon(3492.5055,3953,3417,4028.5055,3341.4945,3953,3417,3877.4945) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 2
--line(3231.1782,3825.8317,3111.1782,3927.8317) # line=1 1 color=cyan text={Line}
+-line(3289,3903,3169,4005) # line=1 1 color=cyan text={Line}
# tile 2
-# vector(3043.1782,3869.8317,80,135) vector=1 color=red text={Vector}
+# vector(3101,3947,80,135) vector=1 color=red text={Vector}
# tile 2
-# text(2933.1782,3841.8317) color=magenta font="helvetica 14 bold roman" text={Region}
+# text(2991,3919) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 2
-# ruler(3475.1782,3603.8317,3347.1782,3721.8317) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# ruler(3533,3681,3405,3799) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 2
-annulus(3917.1782,3667.8317,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+annulus(3975,3745,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 2
-ellipse(3747.1782,3659.8317,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+ellipse(3805,3737,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 2
-box(3573.1782,3657.8317,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
+box(3631,3735,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 2
-point(3931.1782,3481.8317) # point=circle text={Circle Point}
+point(3989,3559) # point=circle text={Circle Point}
# tile 2
-point(3753.1782,3477.8317) # point=box color=red width=3 text={Box Point}
+point(3811,3555) # point=box color=red width=3 text={Box Point}
# tile 2
-point(3591.1782,3481.8317) # point=diamond text={Diamond Point}
+point(3649,3559) # point=diamond text={Diamond Point}
# tile 2
-point(3901.1782,3383.8317) # point=cross color=blue text={Cross Point}
+point(3959,3461) # point=cross color=blue text={Cross Point}
# tile 2
-point(3749.1782,3385.8317) # point=x text={X Point}
+point(3807,3463) # point=x text={X Point}
# tile 2
-point(3595.1782,3379.8317) # point=arrow color=magenta text={Arrow Point}
+point(3653,3457) # point=arrow color=magenta text={Arrow Point}
# tile 2
-point(3745.1782,3281.8317) # point=boxcircle text={BoxCircle Point}
+point(3803,3359) # point=boxcircle text={BoxCircle Point}
# tile 2
-# projection(3267.1782,3583.8317,3081.1782,3715.8317,40) text={Projection}
+# projection(3325,3661,3139,3793,40) text={Projection}
# tile 2
-panda(3393.1782,3481.8317,180,270,3,0,60,2) # text={Panda}
+panda(3451,3559,180,270,3,0,60,2) # text={Panda}
# tile 2
-panda(3389.1782,3299.8317,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
+panda(3447,3377,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
# tile 2
-panda(3389.1782,3299.8317,128.4181,450,1,30,60,1) # panda=ignore
+panda(3447,3377,128.4181,450,1,30,60,1) # panda=ignore
# tile 2
-panda(3389.1782,3299.8317,90,360,1,0,30,1) # panda=ignore
+panda(3447,3377,90,360,1,0,30,1) # panda=ignore
# tile 2
-panda(3389.1782,3299.8317,90,360,1,30,60,1) # panda=ignore
+panda(3447,3377,90,360,1,30,60,1) # panda=ignore
# tile 2
-panda(3389.1782,3299.8317,0,270,1,0,30,1) # panda=ignore
+panda(3447,3377,0,270,1,0,30,1) # panda=ignore
# tile 2
-panda(3389.1782,3299.8317,0,270,1,30,60,1) # panda=ignore
+panda(3447,3377,0,270,1,30,60,1) # panda=ignore
# tile 2
-# compass(3023.1782,3625.8317,80) compass=physical {N} {E} 1 1 text={Compass}
+# compass(3081,3703,80) compass=physical {N} {E} 1 1 text={Compass}
# tile 2
-epanda(3229.1782,3465.8317,180,270,3,30,15,60,30,1,135) # text={Epanda}
+epanda(3287,3543,180,270,3,30,15,60,30,1,135) # text={Epanda}
# tile 2
-epanda(3223.1782,3287.8317,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
+epanda(3281,3365,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
# tile 2
-epanda(3223.1782,3287.8317,90,360,1,30,15,60,30,1,135) # epanda=ignore
+epanda(3281,3365,90,360,1,30,15,60,30,1,135) # epanda=ignore
# tile 2
-epanda(3223.1782,3287.8317,0,270,1,30,15,60,30,1,135) # epanda=ignore
+epanda(3281,3365,0,270,1,30,15,60,30,1,135) # epanda=ignore
# tile 2
-bpanda(3055.1782,3465.8317,180,270,3,80,40,120,60,1,135) # text={Bpanda}
+bpanda(3113,3543,180,270,3,80,40,120,60,1,135) # text={Bpanda}
# tile 2
-bpanda(3063.1782,3289.8317,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
+bpanda(3121,3367,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
# tile 2
-bpanda(3063.1782,3289.8317,90,360,1,80,40,120,60,1,135) # bpanda=ignore
+bpanda(3121,3367,90,360,1,80,40,120,60,1,135) # bpanda=ignore
# tile 2
-bpanda(3063.1782,3289.8317,0,270,1,80,40,120,60,1,135) # bpanda=ignore
-# tile 2
-# circle3d(2881.1782,3399.8317,20) text={Circle3d}
-# tile 7
-circle(5279.5545,4802.7228,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
-# tile 7
--ellipse(5115.5545,4768.7228,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+bpanda(3121,3367,0,270,1,80,40,120,60,1,135) # bpanda=ignore
# tile 7
--box(4935.5545,4764.7228,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
+circle(5027,4773,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 7
-polygon(4797.06,4786.7228,4721.5545,4862.2283,4646.0489,4786.7228,4721.5545,4711.2172) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-ellipse(4863,4739,80,40,135) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 7
--line(4593.5545,4736.7228,4473.5545,4838.7228) # line=1 1 color=cyan text={Line}
+-box(4683,4735,160,80,135) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 7
-# vector(4405.5545,4780.7228,80,135) vector=1 color=red text={Vector}
+polygon(4544.5055,4757,4469,4832.5055,4393.4945,4757,4469,4681.4945) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 7
-# text(4295.5545,4752.7228) color=magenta font="helvetica 14 bold roman" text={Region}
+-line(4341,4707,4221,4809) # line=1 1 color=cyan text={Line}
# tile 7
-# ruler(4837.5545,4514.7228,4709.5545,4632.7228) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# vector(4153,4751,80,135) vector=1 color=red text={Vector}
+# tile 6
+# text(4043,4723) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 7
-annulus(5279.5545,4578.7228,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+# ruler(4585,4485,4457,4603) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 7
-ellipse(5109.5545,4570.7228,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+annulus(5027,4549,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 7
-box(4935.5545,4568.7228,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
+ellipse(4857,4541,30,15,60,30,135) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 7
-point(5293.5545,4392.7228) # point=circle text={Circle Point}
+box(4683,4539,80,40,120,60,135) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 7
-point(5115.5545,4388.7228) # point=box color=red width=3 text={Box Point}
+point(5041,4363) # point=circle text={Circle Point}
# tile 7
-point(4953.5545,4392.7228) # point=diamond text={Diamond Point}
+point(4863,4359) # point=box color=red width=3 text={Box Point}
# tile 7
-point(5263.5545,4294.7228) # point=cross color=blue text={Cross Point}
+point(4701,4363) # point=diamond text={Diamond Point}
# tile 7
-point(5111.5545,4296.7228) # point=x text={X Point}
+point(5011,4265) # point=cross color=blue text={Cross Point}
# tile 7
-point(4957.5545,4290.7228) # point=arrow color=magenta text={Arrow Point}
+point(4859,4267) # point=x text={X Point}
# tile 7
-point(5107.5545,4192.7228) # point=boxcircle text={BoxCircle Point}
+point(4705,4261) # point=arrow color=magenta text={Arrow Point}
# tile 7
-# projection(4629.5545,4494.7228,4443.5545,4626.7228,40) text={Projection}
+point(4855,4163) # point=boxcircle text={BoxCircle Point}
# tile 7
-panda(4755.5545,4392.7228,180,270,3,0,60,2) # text={Panda}
+# projection(4377,4465,4191,4597,40) text={Projection}
# tile 7
-panda(4751.5545,4210.7228,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
+panda(4503,4363,180,270,3,0,60,2) # text={Panda}
# tile 7
-panda(4751.5545,4210.7228,128.4181,450,1,30,60,1) # panda=ignore
+panda(4499,4181,128.4181,450,1,0,30,1) # panda=(128.4181 90 0 270)(0 30 60) text={Panda 2}
# tile 7
-panda(4751.5545,4210.7228,90,360,1,0,30,1) # panda=ignore
+panda(4499,4181,128.4181,450,1,30,60,1) # panda=ignore
# tile 7
-panda(4751.5545,4210.7228,90,360,1,30,60,1) # panda=ignore
+panda(4499,4181,90,360,1,0,30,1) # panda=ignore
# tile 7
-panda(4751.5545,4210.7228,0,270,1,0,30,1) # panda=ignore
+panda(4499,4181,90,360,1,30,60,1) # panda=ignore
# tile 7
-panda(4751.5545,4210.7228,0,270,1,30,60,1) # panda=ignore
+panda(4499,4181,0,270,1,0,30,1) # panda=ignore
# tile 7
-# compass(4385.5545,4536.7228,80) compass=physical {N} {E} 1 1 text={Compass}
+panda(4499,4181,0,270,1,30,60,1) # panda=ignore
# tile 7
-epanda(4591.5545,4376.7228,180,270,3,30,15,60,30,1,135) # text={Epanda}
+# compass(4133,4507,80) compass=physical {N} {E} 1 1 text={Compass}
# tile 7
-epanda(4585.5545,4198.7228,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
+epanda(4339,4347,180,270,3,30,15,60,30,1,135) # text={Epanda}
# tile 7
-epanda(4585.5545,4198.7228,90,360,1,30,15,60,30,1,135) # epanda=ignore
+epanda(4333,4169,135,450,1,30,15,60,30,1,135) # epanda=(135 90 0 270)(30 15 60 30)(135) text={Epanda 2}
# tile 7
-epanda(4585.5545,4198.7228,0,270,1,30,15,60,30,1,135) # epanda=ignore
+epanda(4333,4169,90,360,1,30,15,60,30,1,135) # epanda=ignore
# tile 7
-bpanda(4417.5545,4376.7228,180,270,3,80,40,120,60,1,135) # text={Bpanda}
+epanda(4333,4169,0,270,1,30,15,60,30,1,135) # epanda=ignore
# tile 7
-bpanda(4425.5545,4200.7228,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
+bpanda(4165,4347,180,270,3,80,40,120,60,1,135) # text={Bpanda}
# tile 7
-bpanda(4425.5545,4200.7228,90,360,1,80,40,120,60,1,135) # bpanda=ignore
+bpanda(4173,4171,135,450,1,80,40,120,60,1,135) # bpanda=(135 90 0 270)(80 40 120 60)(135) text={Bpanda 2}
# tile 7
-bpanda(4425.5545,4200.7228,0,270,1,80,40,120,60,1,135) # bpanda=ignore
+bpanda(4173,4171,90,360,1,80,40,120,60,1,135) # bpanda=ignore
# tile 7
-# circle3d(4243.5545,4310.7228,20) text={Circle3d}
+bpanda(4173,4171,0,270,1,80,40,120,60,1,135) # bpanda=ignore
diff --git a/tests/ds9.mosaic.ecliptic.hms.reg b/tests/ds9.mosaic.ecliptic.hms.reg
index c63f491..72db574 100644
--- a/tests/ds9.mosaic.ecliptic.hms.reg
+++ b/tests/ds9.mosaic.ecliptic.hms.reg
@@ -2,75 +2,73 @@
# Filename: mosaicimage.fits[IM1]
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
ecliptic
-circle(+275:41:43.773,+54:45:57.589,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(+275:40:56.041,+54:45:53.192,13.32",6.66",47.5211) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(+275:40:04.095,+54:45:53.902,26.64",13.32",47.5211) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(+275:39:24.458,+54:45:58.616,+275:39:03.682,+54:46:11.747,+275:38:40.920,+54:45:59.761,+275:39:01.697,+54:45:46.630) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(+275:38:25.131,+54:45:51.841,+275:37:51.868,+54:46:09.713) # line=1 1 color=cyan text={Line}
-# vector(+275:37:31.505,+54:46:00.577,13.32",47.5211) vector=1 color=red text={Vector}
-# text(+275:36:59.426,+54:45:56.747) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(+275:39:32.548,+54:45:13.067,+275:38:57.206,+54:45:33.665) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(+275:41:40.788,+54:45:20.333,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(+275:40:51.684,+54:45:20.306,4.995",2.4975",9.99",4.995",47.5211) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(+275:40:01.506,+54:45:21.303,13.32",6.66",19.98",9.99",47.5211) # font="helvetica 10 bold roman" text={Box Annulus}
-point(+275:41:42.345,+54:44:49.289) # point=circle text={Circle Point}
-point(+275:40:50.999,+54:44:49.989) # point=box color=red width=3 text={Box Point}
-point(+275:40:04.369,+54:44:51.892) # point=diamond text={Diamond Point}
-point(+275:41:32.396,+54:44:33.220) # point=cross color=blue text={Cross Point}
-point(+275:40:48.627,+54:44:34.718) # point=x text={X Point}
-point(+275:40:04.174,+54:44:34.896) # point=arrow color=magenta text={Arrow Point}
-point(+275:40:46.096,+54:44:17.451) # point=boxcircle text={BoxCircle Point}
-# projection(+275:38:32.337,+54:45:11.318,+275:37:40.451,+54:45:34.677,6.66") text={Projection}
-panda(+275:39:07.311,+54:44:53.398,2.52109,272.521,3,0",9.99",2) # text={Panda}
-panda(+275:39:03.767,+54:44:23.157,54.103,92.5211,1,0",4.995",1) # panda=(54.103 92.5211 182.521 272.521)(0" 4.995" 9.99") text={Panda 2}
-panda(+275:39:03.767,+54:44:23.157,54.103,92.5211,1,4.995",9.99",1) # panda=ignore
-panda(+275:39:03.767,+54:44:23.157,92.5211,182.521,1,0",4.995",1) # panda=ignore
-panda(+275:39:03.767,+54:44:23.157,92.5211,182.521,1,4.995",9.99",1) # panda=ignore
-panda(+275:39:03.767,+54:44:23.157,182.521,272.521,1,0",4.995",1) # panda=ignore
-panda(+275:39:03.767,+54:44:23.157,182.521,272.521,1,4.995",9.99",1) # panda=ignore
-# compass(+275:37:22.559,+54:45:20.143,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(+275:38:19.840,+54:44:51.978,2.52109,272.521,3,4.995",2.4975",9.99",4.995",1,47.5211) # text={Epanda}
-epanda(+275:38:15.782,+54:44:22.417,47.5211,92.5211,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=(47.5211 92.5211 182.521 272.521)(4.995" 2.4975" 9.99" 4.995")(47.5211) text={Epanda 2}
-epanda(+275:38:15.782,+54:44:22.417,92.5211,182.521,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=ignore
-epanda(+275:38:15.782,+54:44:22.417,182.521,272.521,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=ignore
-bpanda(+275:37:29.697,+54:44:53.290,2.52109,272.521,3,13.32",6.66",19.98",9.99",1,47.5211) # text={Bpanda}
-bpanda(+275:37:29.709,+54:44:23.956,47.5211,92.5211,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=(47.5211 92.5211 182.521 272.521)(13.32" 6.66" 19.98" 9.99")(47.5211) text={Bpanda 2}
-bpanda(+275:37:29.709,+54:44:23.956,92.5211,182.521,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=ignore
-bpanda(+275:37:29.709,+54:44:23.956,182.521,272.521,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=ignore
-# circle3d(+275:36:38.697,+54:44:43.618,3.33") text={Circle3d}
-circle(+275:49:26.999,+54:48:27.679,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(+275:48:39.203,+54:48:23.333,13.32",6.66",47.5211) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(+275:47:47.207,+54:48:24.098,26.64",13.32",47.5211) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(+275:47:07.543,+54:48:28.854,+275:46:46.788,+54:48:42.007,+275:46:23.965,+54:48:30.045,+275:46:44.721,+54:48:16.892) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(+275:46:08.134,+54:48:22.142,+275:45:34.893,+54:48:40.049) # line=1 1 color=cyan text={Line}
-# vector(+275:45:14.480,+54:48:30.935,13.32",47.5211) vector=1 color=red text={Vector}
-# text(+275:44:42.356,+54:48:27.138) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(+275:47:15.497,+54:47:43.297,+275:46:40.184,+54:48:03.932) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(+275:49:23.892,+54:47:50.426,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(+275:48:34.737,+54:47:50.452,4.995",2.4975",9.99",4.995",47.5211) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(+275:47:44.511,+54:47:51.501,13.32",6.66",19.98",9.99",47.5211) # font="helvetica 10 bold roman" text={Box Annulus}
-point(+275:49:25.352,+54:47:19.381) # point=circle text={Circle Point}
-point(+275:48:33.956,+54:47:20.136) # point=box color=red width=3 text={Box Point}
-point(+275:47:47.284,+54:47:22.088) # point=diamond text={Diamond Point}
-point(+275:49:15.342,+54:47:03.323) # point=cross color=blue text={Cross Point}
-point(+275:48:31.532,+54:47:04.867) # point=x text={X Point}
-point(+275:47:47.035,+54:47:05.093) # point=arrow color=magenta text={Arrow Point}
-point(+275:48:28.944,+54:46:47.603) # point=boxcircle text={BoxCircle Point}
-# projection(+275:46:15.218,+54:47:41.611,+275:45:23.353,+54:48:05.025,6.66") text={Projection}
-panda(+275:46:50.171,+54:47:23.654,2.52109,272.521,3,0",9.99",2) # text={Panda}
-panda(+275:46:46.527,+54:46:53.417,54.103,92.5211,1,0",4.995",1) # panda=(54.103 92.5211 182.521 272.521)(0" 4.995" 9.99") text={Panda 2}
-panda(+275:46:46.527,+54:46:53.417,54.103,92.5211,1,4.995",9.99",1) # panda=ignore
-panda(+275:46:46.527,+54:46:53.417,92.5211,182.521,1,0",4.995",1) # panda=ignore
-panda(+275:46:46.527,+54:46:53.417,92.5211,182.521,1,4.995",9.99",1) # panda=ignore
-panda(+275:46:46.527,+54:46:53.417,182.521,272.521,1,0",4.995",1) # panda=ignore
-panda(+275:46:46.527,+54:46:53.417,182.521,272.521,1,4.995",9.99",1) # panda=ignore
-# compass(+275:45:05.397,+54:47:50.510,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(+275:46:02.647,+54:47:22.285,2.52109,272.521,3,4.995",2.4975",9.99",4.995",1,47.5211) # text={Epanda}
-epanda(+275:45:58.491,+54:46:52.728,47.5211,92.5211,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=(47.5211 92.5211 182.521 272.521)(4.995" 2.4975" 9.99" 4.995")(47.5211) text={Epanda 2}
-epanda(+275:45:58.491,+54:46:52.728,92.5211,182.521,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=ignore
-epanda(+275:45:58.491,+54:46:52.728,182.521,272.521,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=ignore
-bpanda(+275:45:12.456,+54:47:23.649,2.52109,272.521,3,13.32",6.66",19.98",9.99",1,47.5211) # text={Bpanda}
-bpanda(+275:45:12.375,+54:46:54.315,47.5211,92.5211,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=(47.5211 92.5211 182.521 272.521)(13.32" 6.66" 19.98" 9.99")(47.5211) text={Bpanda 2}
-bpanda(+275:45:12.375,+54:46:54.315,92.5211,182.521,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=ignore
-bpanda(+275:45:12.375,+54:46:54.315,182.521,272.521,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=ignore
-# circle3d(+275:44:21.373,+54:47:14.031,3.33") text={Circle3d}
+circle(+275:41:56.645,+54:45:59.579,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(+275:41:08.911,+54:45:55.184,13.32",6.66",47.5211) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(+275:40:16.965,+54:45:55.895,26.64",13.32",47.5211) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(+275:39:37.328,+54:46:00.610,+275:39:16.553,+54:46:13.742,+275:38:53.790,+54:46:01.756,+275:39:14.565,+54:45:48.625) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(+275:38:37.999,+54:45:53.837,+275:38:04.737,+54:46:11.709) # line=1 1 color=cyan text={Line}
+# vector(+275:37:44.373,+54:46:02.575,13.32",47.5211) vector=1 color=red text={Vector}
+# text(+275:37:12.294,+54:45:58.745) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(+275:39:45.414,+54:45:15.061,+275:39:10.074,+54:45:35.660) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(+275:41:53.657,+54:45:22.323,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(+275:41:04.552,+54:45:22.298,4.995",2.4975",9.99",4.995",47.5211) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(+275:40:14.373,+54:45:23.296,13.32",6.66",19.98",9.99",47.5211) # font="helvetica 10 bold roman" text={Box Annulus}
+point(+275:41:55.211,+54:44:51.279) # point=circle text={Circle Point}
+point(+275:41:03.864,+54:44:51.981) # point=box color=red width=3 text={Box Point}
+point(+275:40:17.234,+54:44:53.885) # point=diamond text={Diamond Point}
+point(+275:41:45.260,+54:44:35.210) # point=cross color=blue text={Cross Point}
+point(+275:41:01.490,+54:44:36.710) # point=x text={X Point}
+point(+275:40:17.038,+54:44:36.889) # point=arrow color=magenta text={Arrow Point}
+point(+275:40:58.958,+54:44:19.443) # point=boxcircle text={BoxCircle Point}
+# projection(+275:38:45.202,+54:45:13.313,+275:37:53.317,+54:45:36.674,6.66") text={Projection}
+panda(+275:39:20.175,+54:44:55.392,2.52109,272.521,3,0",9.99",2) # text={Panda}
+panda(+275:39:16.628,+54:44:25.151,54.103,92.5211,1,0",4.995",1) # panda=(54.103 92.5211 182.521 272.521)(0" 4.995" 9.99") text={Panda 2}
+panda(+275:39:16.628,+54:44:25.151,54.103,92.5211,1,4.995",9.99",1) # panda=ignore
+panda(+275:39:16.628,+54:44:25.151,92.5211,182.521,1,0",4.995",1) # panda=ignore
+panda(+275:39:16.628,+54:44:25.151,92.5211,182.521,1,4.995",9.99",1) # panda=ignore
+panda(+275:39:16.628,+54:44:25.151,182.521,272.521,1,0",4.995",1) # panda=ignore
+panda(+275:39:16.628,+54:44:25.151,182.521,272.521,1,4.995",9.99",1) # panda=ignore
+# compass(+275:37:35.424,+54:45:22.141,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(+275:38:32.703,+54:44:53.974,2.52109,272.521,3,4.995",2.4975",9.99",4.995",1,47.5211) # text={Epanda}
+epanda(+275:38:28.642,+54:44:24.413,47.5211,92.5211,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=(47.5211 92.5211 182.521 272.521)(4.995" 2.4975" 9.99" 4.995")(47.5211) text={Epanda 2}
+epanda(+275:38:28.642,+54:44:24.413,92.5211,182.521,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=ignore
+epanda(+275:38:28.642,+54:44:24.413,182.521,272.521,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=ignore
+bpanda(+275:37:42.560,+54:44:55.287,2.52109,272.521,3,13.32",6.66",19.98",9.99",1,47.5211) # text={Bpanda}
+bpanda(+275:37:42.569,+54:44:25.953,47.5211,92.5211,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=(47.5211 92.5211 182.521 272.521)(13.32" 6.66" 19.98" 9.99")(47.5211) text={Bpanda 2}
+bpanda(+275:37:42.569,+54:44:25.953,92.5211,182.521,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=ignore
+bpanda(+275:37:42.569,+54:44:25.953,182.521,272.521,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=ignore
+circle(+275:49:30.767,+54:48:31.242,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(+275:48:42.970,+54:48:26.897,13.32",6.66",47.5211) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(+275:47:50.972,+54:48:27.662,26.64",13.32",47.5211) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(+275:47:11.308,+54:48:32.418,+275:46:50.552,+54:48:45.571,+275:46:27.728,+54:48:33.609,+275:46:48.485,+54:48:20.456) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(+275:46:11.897,+54:48:25.707,+275:45:38.656,+54:48:43.613) # line=1 1 color=cyan text={Line}
+# vector(+275:45:18.242,+54:48:34.500,13.32",47.5211) vector=1 color=red text={Vector}
+# text(+275:44:46.117,+54:48:30.703) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(+275:47:19.261,+54:47:46.861,+275:46:43.948,+54:48:07.496) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(+275:49:27.659,+54:47:53.989,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(+275:48:38.503,+54:47:54.015,4.995",2.4975",9.99",4.995",47.5211) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(+275:47:48.276,+54:47:55.065,13.32",6.66",19.98",9.99",47.5211) # font="helvetica 10 bold roman" text={Box Annulus}
+point(+275:49:29.118,+54:47:22.944) # point=circle text={Circle Point}
+point(+275:48:37.721,+54:47:23.699) # point=box color=red width=3 text={Box Point}
+point(+275:47:51.047,+54:47:25.652) # point=diamond text={Diamond Point}
+point(+275:49:19.107,+54:47:06.886) # point=cross color=blue text={Cross Point}
+point(+275:48:35.297,+54:47:08.431) # point=x text={X Point}
+point(+275:47:50.798,+54:47:08.656) # point=arrow color=magenta text={Arrow Point}
+point(+275:48:32.708,+54:46:51.166) # point=boxcircle text={BoxCircle Point}
+# projection(+275:46:18.980,+54:47:45.175,+275:45:27.114,+54:48:08.590,6.66") text={Projection}
+panda(+275:46:53.934,+54:47:27.218,2.52109,272.521,3,0",9.99",2) # text={Panda}
+panda(+275:46:50.289,+54:46:56.981,54.103,92.5211,1,0",4.995",1) # panda=(54.103 92.5211 182.521 272.521)(0" 4.995" 9.99") text={Panda 2}
+panda(+275:46:50.289,+54:46:56.981,54.103,92.5211,1,4.995",9.99",1) # panda=ignore
+panda(+275:46:50.289,+54:46:56.981,92.5211,182.521,1,0",4.995",1) # panda=ignore
+panda(+275:46:50.289,+54:46:56.981,92.5211,182.521,1,4.995",9.99",1) # panda=ignore
+panda(+275:46:50.289,+54:46:56.981,182.521,272.521,1,0",4.995",1) # panda=ignore
+panda(+275:46:50.289,+54:46:56.981,182.521,272.521,1,4.995",9.99",1) # panda=ignore
+# compass(+275:45:09.157,+54:47:54.075,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(+275:46:06.408,+54:47:25.849,2.52109,272.521,3,4.995",2.4975",9.99",4.995",1,47.5211) # text={Epanda}
+epanda(+275:46:02.251,+54:46:56.293,47.5211,92.5211,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=(47.5211 92.5211 182.521 272.521)(4.995" 2.4975" 9.99" 4.995")(47.5211) text={Epanda 2}
+epanda(+275:46:02.251,+54:46:56.293,92.5211,182.521,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=ignore
+epanda(+275:46:02.251,+54:46:56.293,182.521,272.521,1,4.995",2.4975",9.99",4.995",1,47.5211) # epanda=ignore
+bpanda(+275:45:16.217,+54:47:27.214,2.52109,272.521,3,13.32",6.66",19.98",9.99",1,47.5211) # text={Bpanda}
+bpanda(+275:45:16.134,+54:46:57.880,47.5211,92.5211,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=(47.5211 92.5211 182.521 272.521)(13.32" 6.66" 19.98" 9.99")(47.5211) text={Bpanda 2}
+bpanda(+275:45:16.134,+54:46:57.880,92.5211,182.521,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=ignore
+bpanda(+275:45:16.134,+54:46:57.880,182.521,272.521,1,13.32",6.66",19.98",9.99",1,47.5211) # bpanda=ignore
diff --git a/tests/ds9.mosaic.ecliptic.reg b/tests/ds9.mosaic.ecliptic.reg
index 7c6223c..07d66c4 100644
--- a/tests/ds9.mosaic.ecliptic.reg
+++ b/tests/ds9.mosaic.ecliptic.reg
@@ -2,75 +2,73 @@
# Filename: mosaicimage.fits[IM1]
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
ecliptic
-circle(275.69549,54.765997,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(275.68223,54.764776,13.32",6.66",47.521086) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(275.6678,54.764973,26.64",13.32",47.521086) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(275.65679,54.766282,275.65102,54.76993,275.6447,54.7666,275.65047,54.762953) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(275.64031,54.7644,275.63107,54.769365) # line=1 1 color=cyan text={Line}
-# vector(275.62542,54.766827,13.32",47.521086) vector=1 color=red text={Vector}
-# text(275.61651,54.765763) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(275.65904,54.75363,275.64922,54.759351) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(275.69466,54.755648,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(275.68102,54.755641,4.995",2.4975",9.99",4.995",47.521086) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(275.66709,54.755917,13.32",6.66",19.98",9.99",47.521086) # font="helvetica 10 bold roman" text={Box Annulus}
-point(275.6951,54.747025) # point=circle text={Circle Point}
-point(275.68083,54.747219) # point=box color=red width=3 text={Box Point}
-point(275.66788,54.747748) # point=diamond text={Diamond Point}
-point(275.69233,54.742561) # point=cross color=blue text={Cross Point}
-point(275.68017,54.742977) # point=x text={X Point}
-point(275.66783,54.743027) # point=arrow color=magenta text={Arrow Point}
-point(275.67947,54.738181) # point=boxcircle text={BoxCircle Point}
-# projection(275.64232,54.753144,275.6279,54.759632,6.66") text={Projection}
-panda(275.65203,54.748166,2.5210862,272.52109,3,0",9.99",2) # text={Panda}
-panda(275.65105,54.739766,54.102986,92.521086,1,0",4.995",1) # panda=(54.102986 92.521086 182.52109 272.52109)(0" 4.995" 9.99") text={Panda 2}
-panda(275.65105,54.739766,54.102986,92.521086,1,4.995",9.99",1) # panda=ignore
-panda(275.65105,54.739766,92.521086,182.52109,1,0",4.995",1) # panda=ignore
-panda(275.65105,54.739766,92.521086,182.52109,1,4.995",9.99",1) # panda=ignore
-panda(275.65105,54.739766,182.52109,272.52109,1,0",4.995",1) # panda=ignore
-panda(275.65105,54.739766,182.52109,272.52109,1,4.995",9.99",1) # panda=ignore
-# compass(275.62293,54.755595,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(275.63884,54.747772,2.5210862,272.52109,3,4.995",2.4975",9.99",4.995",1,47.521086) # text={Epanda}
-epanda(275.63772,54.73956,47.521086,92.521086,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=(47.521086 92.521086 182.52109 272.52109)(4.995" 2.4975" 9.99" 4.995")(47.521086) text={Epanda 2}
-epanda(275.63772,54.73956,92.521086,182.52109,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=ignore
-epanda(275.63772,54.73956,182.52109,272.52109,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=ignore
-bpanda(275.62492,54.748136,2.5210862,272.52109,3,13.32",6.66",19.98",9.99",1,47.521086) # text={Bpanda}
-bpanda(275.62492,54.739988,47.521086,92.521086,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=(47.521086 92.521086 182.52109 272.52109)(13.32" 6.66" 19.98" 9.99")(47.521086) text={Bpanda 2}
-bpanda(275.62492,54.739988,92.521086,182.52109,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=ignore
-bpanda(275.62492,54.739988,182.52109,272.52109,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=ignore
-# circle3d(275.61075,54.745449,3.33") text={Circle3d}
-circle(275.82417,54.807689,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(275.81089,54.806482,13.32",6.66",47.521086) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(275.79645,54.806694,26.64",13.32",47.521086) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(275.78543,54.808015,275.77966,54.811669,275.77332,54.808346,275.77909,54.804692) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(275.76893,54.806151,275.75969,54.811125) # line=1 1 color=cyan text={Line}
-# vector(275.75402,54.808593,13.32",47.521086) vector=1 color=red text={Vector}
-# text(275.7451,54.807538) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(275.78764,54.79536,275.77783,54.801092) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(275.8233,54.797341,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(275.80965,54.797348,4.995",2.4975",9.99",4.995",47.521086) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(275.7957,54.797639,13.32",6.66",19.98",9.99",47.521086) # font="helvetica 10 bold roman" text={Box Annulus}
-point(275.82371,54.788717) # point=circle text={Circle Point}
-point(275.80943,54.788927) # point=box color=red width=3 text={Box Point}
-point(275.79647,54.789469) # point=diamond text={Diamond Point}
-point(275.82093,54.784256) # point=cross color=blue text={Cross Point}
-point(275.80876,54.784685) # point=x text={X Point}
-point(275.7964,54.784748) # point=arrow color=magenta text={Arrow Point}
-point(275.80804,54.77989) # point=boxcircle text={BoxCircle Point}
-# projection(275.77089,54.794892,275.75649,54.801396,6.66") text={Projection}
-panda(275.7806,54.789904,2.5210862,272.52109,3,0",9.99",2) # text={Panda}
-panda(275.77959,54.781505,54.102986,92.521086,1,0",4.995",1) # panda=(54.102986 92.521086 182.52109 272.52109)(0" 4.995" 9.99") text={Panda 2}
-panda(275.77959,54.781505,54.102986,92.521086,1,4.995",9.99",1) # panda=ignore
-panda(275.77959,54.781505,92.521086,182.52109,1,0",4.995",1) # panda=ignore
-panda(275.77959,54.781505,92.521086,182.52109,1,4.995",9.99",1) # panda=ignore
-panda(275.77959,54.781505,182.52109,272.52109,1,0",4.995",1) # panda=ignore
-panda(275.77959,54.781505,182.52109,272.52109,1,4.995",9.99",1) # panda=ignore
-# compass(275.7515,54.797364,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(275.7674,54.789524,2.5210862,272.52109,3,4.995",2.4975",9.99",4.995",1,47.521086) # text={Epanda}
-epanda(275.76625,54.781313,47.521086,92.521086,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=(47.521086 92.521086 182.52109 272.52109)(4.995" 2.4975" 9.99" 4.995")(47.521086) text={Epanda 2}
-epanda(275.76625,54.781313,92.521086,182.52109,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=ignore
-epanda(275.76625,54.781313,182.52109,272.52109,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=ignore
-bpanda(275.75346,54.789903,2.5210862,272.52109,3,13.32",6.66",19.98",9.99",1,47.521086) # text={Bpanda}
-bpanda(275.75344,54.781754,47.521086,92.521086,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=(47.521086 92.521086 182.52109 272.52109)(13.32" 6.66" 19.98" 9.99")(47.521086) text={Bpanda 2}
-bpanda(275.75344,54.781754,92.521086,182.52109,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=ignore
-bpanda(275.75344,54.781754,182.52109,272.52109,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=ignore
-# circle3d(275.73927,54.787231,3.33") text={Circle3d}
+circle(275.69907,54.76655,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(275.68581,54.765329,13.32",6.66",47.521086) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(275.67138,54.765526,26.64",13.32",47.521086) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(275.66037,54.766836,275.6546,54.770484,275.64827,54.767154,275.65405,54.763507) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(275.64389,54.764955,275.63465,54.769919) # line=1 1 color=cyan text={Line}
+# vector(275.62899,54.767382,13.32",47.521086) vector=1 color=red text={Vector}
+# text(275.62008,54.766318) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(275.66262,54.754184,275.6528,54.759906) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(275.69824,54.756201,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(275.6846,54.756194,4.995",2.4975",9.99",4.995",47.521086) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(275.67066,54.756471,13.32",6.66",19.98",9.99",47.521086) # font="helvetica 10 bold roman" text={Box Annulus}
+point(275.69867,54.747578) # point=circle text={Circle Point}
+point(275.68441,54.747772) # point=box color=red width=3 text={Box Point}
+point(275.67145,54.748301) # point=diamond text={Diamond Point}
+point(275.69591,54.743114) # point=cross color=blue text={Cross Point}
+point(275.68375,54.74353) # point=x text={X Point}
+point(275.6714,54.74358) # point=arrow color=magenta text={Arrow Point}
+point(275.68304,54.738734) # point=boxcircle text={BoxCircle Point}
+# projection(275.64589,54.753698,275.63148,54.760187,6.66") text={Projection}
+panda(275.6556,54.74872,2.5210862,272.52109,3,0",9.99",2) # text={Panda}
+panda(275.65462,54.74032,54.102986,92.521086,1,0",4.995",1) # panda=(54.102986 92.521086 182.52109 272.52109)(0" 4.995" 9.99") text={Panda 2}
+panda(275.65462,54.74032,54.102986,92.521086,1,4.995",9.99",1) # panda=ignore
+panda(275.65462,54.74032,92.521086,182.52109,1,0",4.995",1) # panda=ignore
+panda(275.65462,54.74032,92.521086,182.52109,1,4.995",9.99",1) # panda=ignore
+panda(275.65462,54.74032,182.52109,272.52109,1,0",4.995",1) # panda=ignore
+panda(275.65462,54.74032,182.52109,272.52109,1,4.995",9.99",1) # panda=ignore
+# compass(275.62651,54.75615,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(275.64242,54.748326,2.5210862,272.52109,3,4.995",2.4975",9.99",4.995",1,47.521086) # text={Epanda}
+epanda(275.64129,54.740115,47.521086,92.521086,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=(47.521086 92.521086 182.52109 272.52109)(4.995" 2.4975" 9.99" 4.995")(47.521086) text={Epanda 2}
+epanda(275.64129,54.740115,92.521086,182.52109,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=ignore
+epanda(275.64129,54.740115,182.52109,272.52109,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=ignore
+bpanda(275.62849,54.748691,2.5210862,272.52109,3,13.32",6.66",19.98",9.99",1,47.521086) # text={Bpanda}
+bpanda(275.62849,54.740543,47.521086,92.521086,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=(47.521086 92.521086 182.52109 272.52109)(13.32" 6.66" 19.98" 9.99")(47.521086) text={Bpanda 2}
+bpanda(275.62849,54.740543,92.521086,182.52109,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=ignore
+bpanda(275.62849,54.740543,182.52109,272.52109,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=ignore
+circle(275.82521,54.808678,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(275.81194,54.807471,13.32",6.66",47.521086) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(275.79749,54.807684,26.64",13.32",47.521086) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(275.78647,54.809005,275.78071,54.812659,275.77437,54.809336,275.78013,54.805682) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(275.76997,54.807141,275.76074,54.812115) # line=1 1 color=cyan text={Line}
+# vector(275.75507,54.809583,13.32",47.521086) vector=1 color=red text={Vector}
+# text(275.74614,54.808529) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(275.78868,54.79635,275.77887,54.802082) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(275.82435,54.79833,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(275.8107,54.798338,4.995",2.4975",9.99",4.995",47.521086) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(275.79674,54.798629,13.32",6.66",19.98",9.99",47.521086) # font="helvetica 10 bold roman" text={Box Annulus}
+point(275.82476,54.789707) # point=circle text={Circle Point}
+point(275.81048,54.789916) # point=box color=red width=3 text={Box Point}
+point(275.79751,54.790459) # point=diamond text={Diamond Point}
+point(275.82197,54.785246) # point=cross color=blue text={Cross Point}
+point(275.8098,54.785675) # point=x text={X Point}
+point(275.79744,54.785738) # point=arrow color=magenta text={Arrow Point}
+point(275.80909,54.780879) # point=boxcircle text={BoxCircle Point}
+# projection(275.77194,54.795882,275.75753,54.802386,6.66") text={Projection}
+panda(275.78165,54.790894,2.5210862,272.52109,3,0",9.99",2) # text={Panda}
+panda(275.78064,54.782495,54.102986,92.521086,1,0",4.995",1) # panda=(54.102986 92.521086 182.52109 272.52109)(0" 4.995" 9.99") text={Panda 2}
+panda(275.78064,54.782495,54.102986,92.521086,1,4.995",9.99",1) # panda=ignore
+panda(275.78064,54.782495,92.521086,182.52109,1,0",4.995",1) # panda=ignore
+panda(275.78064,54.782495,92.521086,182.52109,1,4.995",9.99",1) # panda=ignore
+panda(275.78064,54.782495,182.52109,272.52109,1,0",4.995",1) # panda=ignore
+panda(275.78064,54.782495,182.52109,272.52109,1,4.995",9.99",1) # panda=ignore
+# compass(275.75254,54.798354,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(275.76845,54.790514,2.5210862,272.52109,3,4.995",2.4975",9.99",4.995",1,47.521086) # text={Epanda}
+epanda(275.76729,54.782303,47.521086,92.521086,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=(47.521086 92.521086 182.52109 272.52109)(4.995" 2.4975" 9.99" 4.995")(47.521086) text={Epanda 2}
+epanda(275.76729,54.782303,92.521086,182.52109,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=ignore
+epanda(275.76729,54.782303,182.52109,272.52109,1,4.995",2.4975",9.99",4.995",1,47.521086) # epanda=ignore
+bpanda(275.7545,54.790893,2.5210862,272.52109,3,13.32",6.66",19.98",9.99",1,47.521086) # text={Bpanda}
+bpanda(275.75448,54.782745,47.521086,92.521086,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=(47.521086 92.521086 182.52109 272.52109)(13.32" 6.66" 19.98" 9.99")(47.521086) text={Bpanda 2}
+bpanda(275.75448,54.782745,92.521086,182.52109,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=ignore
+bpanda(275.75448,54.782745,182.52109,272.52109,1,13.32",6.66",19.98",9.99",1,47.521086) # bpanda=ignore
diff --git a/tests/ds9.mosaic.fk4.hms.reg b/tests/ds9.mosaic.fk4.hms.reg
index 9942b5c..cb33850 100644
--- a/tests/ds9.mosaic.fk4.hms.reg
+++ b/tests/ds9.mosaic.fk4.hms.reg
@@ -2,75 +2,73 @@
# Filename: mosaicimage.fits[IM1]
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
fk4
-circle(18:13:31.474,+31:23:07.12,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(18:13:29.339,+31:23:01.61,13.32",6.66",45.2623) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(18:13:26.999,+31:23:01.10,26.64",13.32",45.2623) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(18:13:25.199,+31:23:04.89,18:13:24.223,+31:23:17.53,18:13:23.236,+31:23:05.02,18:13:24.212,+31:22:52.39) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(18:13:22.550,+31:22:56.74,18:13:20.997,+31:23:13.83) # line=1 1 color=cyan text={Line}
-# vector(18:13:20.109,+31:23:04.23,13.32",45.2623) vector=1 color=red text={Vector}
-# text(18:13:18.676,+31:22:59.66) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(18:13:25.707,+31:22:19.57,18:13:24.051,+31:22:39.33) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(18:13:31.458,+31:22:29.82,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(18:13:29.247,+31:22:28.65,4.995",2.4975",9.99",4.995",45.2623) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(18:13:26.985,+31:22:28.47,13.32",6.66",19.98",9.99",45.2623) # font="helvetica 10 bold roman" text={Box Annulus}
-point(18:13:31.627,+31:21:58.84) # point=circle text={Circle Point}
-point(18:13:29.312,+31:21:58.34) # point=box color=red width=3 text={Box Point}
-point(18:13:27.207,+31:21:59.15) # point=diamond text={Diamond Point}
-point(18:13:31.229,+31:21:42.55) # point=cross color=blue text={Cross Point}
-point(18:13:29.254,+31:21:43.03) # point=x text={X Point}
-point(18:13:27.252,+31:21:42.17) # point=arrow color=magenta text={Arrow Point}
-point(18:13:29.194,+31:21:25.71) # point=boxcircle text={BoxCircle Point}
-# projection(18:13:23.002,+31:22:16.42,18:13:20.592,+31:22:38.56,6.66") text={Projection}
-panda(18:13:24.633,+31:21:59.33,0.262262,270.262,3,0",9.99",2) # text={Panda}
-panda(18:13:24.568,+31:21:29.03,51.8442,90.2623,1,0",4.995",1) # panda=(51.8442 90.2623 180.262 270.262)(0" 4.995" 9.99") text={Panda 2}
-panda(18:13:24.568,+31:21:29.03,51.8442,90.2623,1,4.995",9.99",1) # panda=ignore
-panda(18:13:24.568,+31:21:29.03,90.2623,180.262,1,0",4.995",1) # panda=ignore
-panda(18:13:24.568,+31:21:29.03,90.2623,180.262,1,4.995",9.99",1) # panda=ignore
-panda(18:13:24.568,+31:21:29.03,180.262,270.262,1,0",4.995",1) # panda=ignore
-panda(18:13:24.568,+31:21:29.03,180.262,270.262,1,4.995",9.99",1) # panda=ignore
-# compass(18:13:19.832,+31:22:23.62,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(18:13:22.500,+31:21:56.81,0.262262,270.262,3,4.995",2.4975",9.99",4.995",1,45.2623) # text={Epanda}
-epanda(18:13:22.410,+31:21:27.17,45.2623,90.2623,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=(45.2623 90.2623 180.262 270.262)(4.995" 2.4975" 9.99" 4.995")(45.2623) text={Epanda 2}
-epanda(18:13:22.410,+31:21:27.17,90.2623,180.262,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=ignore
-epanda(18:13:22.410,+31:21:27.17,180.262,270.262,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=ignore
-bpanda(18:13:20.238,+31:21:56.96,0.262262,270.262,3,13.32",6.66",19.98",9.99",1,45.2623) # text={Bpanda}
-bpanda(18:13:20.330,+31:21:27.65,45.2623,90.2623,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=(45.2623 90.2623 180.262 270.262)(13.32" 6.66" 19.98" 9.99")(45.2623) text={Bpanda 2}
-bpanda(18:13:20.330,+31:21:27.65,90.2623,180.262,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=ignore
-bpanda(18:13:20.330,+31:21:27.65,180.262,270.262,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=ignore
-# circle3d(18:13:17.972,+31:21:46.11,3.33") text={Circle3d}
-circle(18:13:51.837,+31:25:48.08,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(18:13:49.701,+31:25:42.59,13.32",6.66",45.2623) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(18:13:47.360,+31:25:42.11,26.64",13.32",45.2623) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(18:13:45.560,+31:25:45.92,18:13:44.583,+31:25:58.56,18:13:43.595,+31:25:46.07,18:13:44.572,+31:25:33.42) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(18:13:42.909,+31:25:37.80,18:13:41.355,+31:25:54.90) # line=1 1 color=cyan text={Line}
-# vector(18:13:40.466,+31:25:45.31,13.32",45.2623) vector=1 color=red text={Vector}
-# text(18:13:39.033,+31:25:40.75) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(18:13:46.065,+31:25:00.59,18:13:44.409,+31:25:20.36) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(18:13:51.819,+31:25:10.79,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(18:13:49.607,+31:25:09.63,4.995",2.4975",9.99",4.995",45.2623) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(18:13:47.344,+31:25:09.48,13.32",6.66",19.98",9.99",45.2623) # font="helvetica 10 bold roman" text={Box Annulus}
-point(18:13:51.986,+31:24:39.80) # point=circle text={Circle Point}
-point(18:13:49.671,+31:24:39.32) # point=box color=red width=3 text={Box Point}
-point(18:13:47.564,+31:24:40.16) # point=diamond text={Diamond Point}
-point(18:13:51.588,+31:24:23.52) # point=cross color=blue text={Cross Point}
-point(18:13:49.611,+31:24:24.01) # point=x text={X Point}
-point(18:13:47.608,+31:24:23.17) # point=arrow color=magenta text={Arrow Point}
-point(18:13:49.551,+31:24:06.70) # point=boxcircle text={BoxCircle Point}
-# projection(18:13:43.358,+31:24:57.47,18:13:40.949,+31:25:19.63,6.66") text={Projection}
-panda(18:13:44.989,+31:24:40.36,0.262262,270.262,3,0",9.99",2) # text={Panda}
-panda(18:13:44.923,+31:24:10.06,51.8442,90.2623,1,0",4.995",1) # panda=(51.8442 90.2623 180.262 270.262)(0" 4.995" 9.99") text={Panda 2}
-panda(18:13:44.923,+31:24:10.06,51.8442,90.2623,1,4.995",9.99",1) # panda=ignore
-panda(18:13:44.923,+31:24:10.06,90.2623,180.262,1,0",4.995",1) # panda=ignore
-panda(18:13:44.923,+31:24:10.06,90.2623,180.262,1,4.995",9.99",1) # panda=ignore
-panda(18:13:44.923,+31:24:10.06,180.262,270.262,1,0",4.995",1) # panda=ignore
-panda(18:13:44.923,+31:24:10.06,180.262,270.262,1,4.995",9.99",1) # panda=ignore
-# compass(18:13:40.188,+31:25:04.70,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(18:13:42.855,+31:24:37.86,0.262262,270.262,3,4.995",2.4975",9.99",4.995",1,45.2623) # text={Epanda}
-epanda(18:13:42.763,+31:24:08.23,45.2623,90.2623,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=(45.2623 90.2623 180.262 270.262)(4.995" 2.4975" 9.99" 4.995")(45.2623) text={Epanda 2}
-epanda(18:13:42.763,+31:24:08.23,90.2623,180.262,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=ignore
-epanda(18:13:42.763,+31:24:08.23,180.262,270.262,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=ignore
-bpanda(18:13:40.592,+31:24:38.03,0.262262,270.262,3,13.32",6.66",19.98",9.99",1,45.2623) # text={Bpanda}
-bpanda(18:13:40.682,+31:24:08.72,45.2623,90.2623,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=(45.2623 90.2623 180.262 270.262)(13.32" 6.66" 19.98" 9.99")(45.2623) text={Bpanda 2}
-bpanda(18:13:40.682,+31:24:08.72,90.2623,180.262,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=ignore
-bpanda(18:13:40.682,+31:24:08.72,180.262,270.262,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=ignore
-# circle3d(18:13:38.324,+31:24:27.21,3.33") text={Circle3d}
+circle(18:13:32.047,+31:23:09.41,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(18:13:29.912,+31:23:03.90,13.32",6.66",45.2623) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(18:13:27.572,+31:23:03.40,26.64",13.32",45.2623) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(18:13:25.772,+31:23:07.18,18:13:24.796,+31:23:19.82,18:13:23.809,+31:23:07.32,18:13:24.786,+31:22:54.68) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(18:13:23.123,+31:22:59.04,18:13:21.570,+31:23:16.12) # line=1 1 color=cyan text={Line}
+# vector(18:13:20.682,+31:23:06.52,13.32",45.2623) vector=1 color=red text={Vector}
+# text(18:13:19.250,+31:23:01.96) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(18:13:26.280,+31:22:21.86,18:13:24.624,+31:22:41.62) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(18:13:32.031,+31:22:32.11,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(18:13:29.820,+31:22:30.94,4.995",2.4975",9.99",4.995",45.2623) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(18:13:27.558,+31:22:30.76,13.32",6.66",19.98",9.99",45.2623) # font="helvetica 10 bold roman" text={Box Annulus}
+point(18:13:32.200,+31:22:01.13) # point=circle text={Circle Point}
+point(18:13:29.885,+31:22:00.63) # point=box color=red width=3 text={Box Point}
+point(18:13:27.780,+31:22:01.44) # point=diamond text={Diamond Point}
+point(18:13:31.802,+31:21:44.84) # point=cross color=blue text={Cross Point}
+point(18:13:29.827,+31:21:45.32) # point=x text={X Point}
+point(18:13:27.824,+31:21:44.46) # point=arrow color=magenta text={Arrow Point}
+point(18:13:29.767,+31:21:28.00) # point=boxcircle text={BoxCircle Point}
+# projection(18:13:23.575,+31:22:18.71,18:13:21.165,+31:22:40.85,6.66") text={Projection}
+panda(18:13:25.206,+31:22:01.62,0.262262,270.262,3,0",9.99",2) # text={Panda}
+panda(18:13:25.141,+31:21:31.32,51.8442,90.2623,1,0",4.995",1) # panda=(51.8442 90.2623 180.262 270.262)(0" 4.995" 9.99") text={Panda 2}
+panda(18:13:25.141,+31:21:31.32,51.8442,90.2623,1,4.995",9.99",1) # panda=ignore
+panda(18:13:25.141,+31:21:31.32,90.2623,180.262,1,0",4.995",1) # panda=ignore
+panda(18:13:25.141,+31:21:31.32,90.2623,180.262,1,4.995",9.99",1) # panda=ignore
+panda(18:13:25.141,+31:21:31.32,180.262,270.262,1,0",4.995",1) # panda=ignore
+panda(18:13:25.141,+31:21:31.32,180.262,270.262,1,4.995",9.99",1) # panda=ignore
+# compass(18:13:20.405,+31:22:25.92,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(18:13:23.073,+31:21:59.10,0.262262,270.262,3,4.995",2.4975",9.99",4.995",1,45.2623) # text={Epanda}
+epanda(18:13:22.983,+31:21:29.47,45.2623,90.2623,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=(45.2623 90.2623 180.262 270.262)(4.995" 2.4975" 9.99" 4.995")(45.2623) text={Epanda 2}
+epanda(18:13:22.983,+31:21:29.47,90.2623,180.262,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=ignore
+epanda(18:13:22.983,+31:21:29.47,180.262,270.262,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=ignore
+bpanda(18:13:20.811,+31:21:59.25,0.262262,270.262,3,13.32",6.66",19.98",9.99",1,45.2623) # text={Bpanda}
+bpanda(18:13:20.903,+31:21:29.94,45.2623,90.2623,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=(45.2623 90.2623 180.262 270.262)(13.32" 6.66" 19.98" 9.99")(45.2623) text={Bpanda 2}
+bpanda(18:13:20.903,+31:21:29.94,90.2623,180.262,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=ignore
+bpanda(18:13:20.903,+31:21:29.94,180.262,270.262,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=ignore
+circle(18:13:51.995,+31:25:51.73,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(18:13:49.859,+31:25:46.24,13.32",6.66",45.2623) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(18:13:47.517,+31:25:45.76,26.64",13.32",45.2623) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(18:13:45.718,+31:25:49.57,18:13:44.741,+31:26:02.21,18:13:43.753,+31:25:49.72,18:13:44.729,+31:25:37.07) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(18:13:43.066,+31:25:41.45,18:13:41.513,+31:25:58.55) # line=1 1 color=cyan text={Line}
+# vector(18:13:40.624,+31:25:48.96,13.32",45.2623) vector=1 color=red text={Vector}
+# text(18:13:39.191,+31:25:44.40) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(18:13:46.223,+31:25:04.24,18:13:44.567,+31:25:24.01) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(18:13:51.977,+31:25:14.44,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(18:13:49.765,+31:25:13.28,4.995",2.4975",9.99",4.995",45.2623) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(18:13:47.502,+31:25:13.13,13.32",6.66",19.98",9.99",45.2623) # font="helvetica 10 bold roman" text={Box Annulus}
+point(18:13:52.144,+31:24:43.45) # point=circle text={Circle Point}
+point(18:13:49.828,+31:24:42.97) # point=box color=red width=3 text={Box Point}
+point(18:13:47.722,+31:24:43.81) # point=diamond text={Diamond Point}
+point(18:13:51.746,+31:24:27.17) # point=cross color=blue text={Cross Point}
+point(18:13:49.769,+31:24:27.66) # point=x text={X Point}
+point(18:13:47.766,+31:24:26.82) # point=arrow color=magenta text={Arrow Point}
+point(18:13:49.709,+31:24:10.35) # point=boxcircle text={BoxCircle Point}
+# projection(18:13:43.516,+31:25:01.12,18:13:41.107,+31:25:23.28,6.66") text={Projection}
+panda(18:13:45.147,+31:24:44.01,0.262262,270.262,3,0",9.99",2) # text={Panda}
+panda(18:13:45.080,+31:24:13.71,51.8442,90.2623,1,0",4.995",1) # panda=(51.8442 90.2623 180.262 270.262)(0" 4.995" 9.99") text={Panda 2}
+panda(18:13:45.080,+31:24:13.71,51.8442,90.2623,1,4.995",9.99",1) # panda=ignore
+panda(18:13:45.080,+31:24:13.71,90.2623,180.262,1,0",4.995",1) # panda=ignore
+panda(18:13:45.080,+31:24:13.71,90.2623,180.262,1,4.995",9.99",1) # panda=ignore
+panda(18:13:45.080,+31:24:13.71,180.262,270.262,1,0",4.995",1) # panda=ignore
+panda(18:13:45.080,+31:24:13.71,180.262,270.262,1,4.995",9.99",1) # panda=ignore
+# compass(18:13:40.345,+31:25:08.35,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(18:13:43.012,+31:24:41.51,0.262262,270.262,3,4.995",2.4975",9.99",4.995",1,45.2623) # text={Epanda}
+epanda(18:13:42.921,+31:24:11.88,45.2623,90.2623,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=(45.2623 90.2623 180.262 270.262)(4.995" 2.4975" 9.99" 4.995")(45.2623) text={Epanda 2}
+epanda(18:13:42.921,+31:24:11.88,90.2623,180.262,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=ignore
+epanda(18:13:42.921,+31:24:11.88,180.262,270.262,1,4.995",2.4975",9.99",4.995",1,45.2623) # epanda=ignore
+bpanda(18:13:40.749,+31:24:41.68,0.262262,270.262,3,13.32",6.66",19.98",9.99",1,45.2623) # text={Bpanda}
+bpanda(18:13:40.840,+31:24:12.37,45.2623,90.2623,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=(45.2623 90.2623 180.262 270.262)(13.32" 6.66" 19.98" 9.99")(45.2623) text={Bpanda 2}
+bpanda(18:13:40.840,+31:24:12.37,90.2623,180.262,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=ignore
+bpanda(18:13:40.840,+31:24:12.37,180.262,270.262,1,13.32",6.66",19.98",9.99",1,45.2623) # bpanda=ignore
diff --git a/tests/ds9.mosaic.fk4.reg b/tests/ds9.mosaic.fk4.reg
index 77d5bf4..dec9a60 100644
--- a/tests/ds9.mosaic.fk4.reg
+++ b/tests/ds9.mosaic.fk4.reg
@@ -2,75 +2,73 @@
# Filename: mosaicimage.fits[IM1]
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
fk4
-circle(273.38114,31.385311,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(273.37225,31.38378,13.32",6.66",45.262262) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(273.36249,31.38364,26.64",13.32",45.262262) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(273.355,31.384692,273.35093,31.388202,273.34682,31.384729,273.35089,31.381218) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(273.34396,31.382429,273.33749,31.387175) # line=1 1 color=cyan text={Line}
-# vector(273.33379,31.384509,13.32",45.262262) vector=1 color=red text={Vector}
-# text(273.32782,31.383239) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(273.35711,31.372102,273.35021,31.377591) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(273.38107,31.374951,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(273.37186,31.374624,4.995",2.4975",9.99",4.995",45.262262) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(273.36244,31.374575,13.32",6.66",19.98",9.99",45.262262) # font="helvetica 10 bold roman" text={Box Annulus}
-point(273.38178,31.366345) # point=circle text={Circle Point}
-point(273.37213,31.366205) # point=box color=red width=3 text={Box Point}
-point(273.36336,31.366431) # point=diamond text={Diamond Point}
-point(273.38012,31.36182) # point=cross color=blue text={Cross Point}
-point(273.37189,31.361952) # point=x text={X Point}
-point(273.36355,31.361713) # point=arrow color=magenta text={Arrow Point}
-point(273.37164,31.357143) # point=boxcircle text={BoxCircle Point}
-# projection(273.34584,31.371228,273.3358,31.377377,6.66") text={Projection}
-panda(273.35264,31.36648,0.26226242,270.26226,3,0",9.99",2) # text={Panda}
-panda(273.35237,31.358063,51.844162,90.262262,1,0",4.995",1) # panda=(51.844162 90.262262 180.26226 270.26226)(0" 4.995" 9.99") text={Panda 2}
-panda(273.35237,31.358063,51.844162,90.262262,1,4.995",9.99",1) # panda=ignore
-panda(273.35237,31.358063,90.262262,180.26226,1,0",4.995",1) # panda=ignore
-panda(273.35237,31.358063,90.262262,180.26226,1,4.995",9.99",1) # panda=ignore
-panda(273.35237,31.358063,180.26226,270.26226,1,0",4.995",1) # panda=ignore
-panda(273.35237,31.358063,180.26226,270.26226,1,4.995",9.99",1) # panda=ignore
-# compass(273.33263,31.373228,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(273.34375,31.36578,0.26226242,270.26226,3,4.995",2.4975",9.99",4.995",1,45.262262) # text={Epanda}
-epanda(273.34337,31.357549,45.262262,90.262262,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=(45.262262 90.262262 180.26226 270.26226)(4.995" 2.4975" 9.99" 4.995")(45.262262) text={Epanda 2}
-epanda(273.34337,31.357549,90.262262,180.26226,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=ignore
-epanda(273.34337,31.357549,180.26226,270.26226,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=ignore
-bpanda(273.33432,31.365821,0.26226242,270.26226,3,13.32",6.66",19.98",9.99",1,45.262262) # text={Bpanda}
-bpanda(273.33471,31.357679,45.262262,90.262262,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=(45.262262 90.262262 180.26226 270.26226)(13.32" 6.66" 19.98" 9.99")(45.262262) text={Bpanda 2}
-bpanda(273.33471,31.357679,90.262262,180.26226,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=ignore
-bpanda(273.33471,31.357679,180.26226,270.26226,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=ignore
-# circle3d(273.32488,31.362809,3.33") text={Circle3d}
-circle(273.46599,31.430023,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(273.45709,31.428498,13.32",6.66",45.262262) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(273.44733,31.428365,26.64",13.32",45.262262) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(273.43983,31.429421,273.43576,31.432934,273.43165,31.429463,273.43572,31.42595) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(273.42879,31.427165,273.42231,31.431916) # line=1 1 color=cyan text={Line}
-# vector(273.41861,31.429252,13.32",45.262262) vector=1 color=red text={Vector}
-# text(273.41264,31.427987) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(273.44194,31.41683,273.43504,31.422323) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(273.46591,31.419663,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(273.4567,31.419343,4.995",2.4975",9.99",4.995",45.262262) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(273.44727,31.4193,13.32",6.66",19.98",9.99",45.262262) # font="helvetica 10 bold roman" text={Box Annulus}
-point(273.46661,31.411057) # point=circle text={Circle Point}
-point(273.45696,31.410923) # point=box color=red width=3 text={Box Point}
-point(273.44818,31.411155) # point=diamond text={Diamond Point}
-point(273.46495,31.406533) # point=cross color=blue text={Cross Point}
-point(273.45671,31.40667) # point=x text={X Point}
-point(273.44837,31.406436) # point=arrow color=magenta text={Arrow Point}
-point(273.45646,31.401861) # point=boxcircle text={BoxCircle Point}
-# projection(273.43066,31.415963,273.42062,31.422119,6.66") text={Projection}
-panda(273.43745,31.411211,0.26226242,270.26226,3,0",9.99",2) # text={Panda}
-panda(273.43718,31.402794,51.844162,90.262262,1,0",4.995",1) # panda=(51.844162 90.262262 180.26226 270.26226)(0" 4.995" 9.99") text={Panda 2}
-panda(273.43718,31.402794,51.844162,90.262262,1,4.995",9.99",1) # panda=ignore
-panda(273.43718,31.402794,90.262262,180.26226,1,0",4.995",1) # panda=ignore
-panda(273.43718,31.402794,90.262262,180.26226,1,4.995",9.99",1) # panda=ignore
-panda(273.43718,31.402794,180.26226,270.26226,1,0",4.995",1) # panda=ignore
-panda(273.43718,31.402794,180.26226,270.26226,1,4.995",9.99",1) # panda=ignore
-# compass(273.41745,31.417972,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(273.42856,31.410516,0.26226242,270.26226,3,4.995",2.4975",9.99",4.995",1,45.262262) # text={Epanda}
-epanda(273.42818,31.402285,45.262262,90.262262,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=(45.262262 90.262262 180.26226 270.26226)(4.995" 2.4975" 9.99" 4.995")(45.262262) text={Epanda 2}
-epanda(273.42818,31.402285,90.262262,180.26226,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=ignore
-epanda(273.42818,31.402285,180.26226,270.26226,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=ignore
-bpanda(273.41913,31.410564,0.26226242,270.26226,3,13.32",6.66",19.98",9.99",1,45.262262) # text={Bpanda}
-bpanda(273.41951,31.402422,45.262262,90.262262,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=(45.262262 90.262262 180.26226 270.26226)(13.32" 6.66" 19.98" 9.99")(45.262262) text={Bpanda 2}
-bpanda(273.41951,31.402422,90.262262,180.26226,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=ignore
-bpanda(273.41951,31.402422,180.26226,270.26226,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=ignore
-# circle3d(273.40968,31.407558,3.33") text={Circle3d}
+circle(273.38353,31.385947,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(273.37463,31.384417,13.32",6.66",45.262262) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(273.36488,31.384277,26.64",13.32",45.262262) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(273.35739,31.385329,273.35332,31.388839,273.3492,31.385365,273.35327,31.381855) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(273.34635,31.383066,273.33987,31.387812) # line=1 1 color=cyan text={Line}
+# vector(273.33617,31.385146,13.32",45.262262) vector=1 color=red text={Vector}
+# text(273.33021,31.383877) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(273.3595,31.372739,273.3526,31.378228) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(273.38346,31.375587,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(273.37425,31.375261,4.995",2.4975",9.99",4.995",45.262262) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(273.36482,31.375212,13.32",6.66",19.98",9.99",45.262262) # font="helvetica 10 bold roman" text={Box Annulus}
+point(273.38416,31.366981) # point=circle text={Circle Point}
+point(273.37452,31.366842) # point=box color=red width=3 text={Box Point}
+point(273.36575,31.367068) # point=diamond text={Diamond Point}
+point(273.38251,31.362457) # point=cross color=blue text={Cross Point}
+point(273.37428,31.362588) # point=x text={X Point}
+point(273.36594,31.362349) # point=arrow color=magenta text={Arrow Point}
+point(273.37403,31.357779) # point=boxcircle text={BoxCircle Point}
+# projection(273.34823,31.371865,273.33819,31.378014,6.66") text={Projection}
+panda(273.35502,31.367117,0.26226242,270.26226,3,0",9.99",2) # text={Panda}
+panda(273.35475,31.3587,51.844162,90.262262,1,0",4.995",1) # panda=(51.844162 90.262262 180.26226 270.26226)(0" 4.995" 9.99") text={Panda 2}
+panda(273.35475,31.3587,51.844162,90.262262,1,4.995",9.99",1) # panda=ignore
+panda(273.35475,31.3587,90.262262,180.26226,1,0",4.995",1) # panda=ignore
+panda(273.35475,31.3587,90.262262,180.26226,1,4.995",9.99",1) # panda=ignore
+panda(273.35475,31.3587,180.26226,270.26226,1,0",4.995",1) # panda=ignore
+panda(273.35475,31.3587,180.26226,270.26226,1,4.995",9.99",1) # panda=ignore
+# compass(273.33502,31.373866,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(273.34614,31.366416,0.26226242,270.26226,3,4.995",2.4975",9.99",4.995",1,45.262262) # text={Epanda}
+epanda(273.34576,31.358185,45.262262,90.262262,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=(45.262262 90.262262 180.26226 270.26226)(4.995" 2.4975" 9.99" 4.995")(45.262262) text={Epanda 2}
+epanda(273.34576,31.358185,90.262262,180.26226,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=ignore
+epanda(273.34576,31.358185,180.26226,270.26226,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=ignore
+bpanda(273.33671,31.366458,0.26226242,270.26226,3,13.32",6.66",19.98",9.99",1,45.262262) # text={Bpanda}
+bpanda(273.3371,31.358316,45.262262,90.262262,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=(45.262262 90.262262 180.26226 270.26226)(13.32" 6.66" 19.98" 9.99")(45.262262) text={Bpanda 2}
+bpanda(273.3371,31.358316,90.262262,180.26226,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=ignore
+bpanda(273.3371,31.358316,180.26226,270.26226,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=ignore
+circle(273.46665,31.431037,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(273.45775,31.429512,13.32",6.66",45.262262) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(273.44799,31.429379,26.64",13.32",45.262262) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(273.44049,31.430435,273.43642,31.433948,273.4323,31.430477,273.43637,31.426964) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(273.42944,31.428179,273.42297,31.43293) # line=1 1 color=cyan text={Line}
+# vector(273.41927,31.430266,13.32",45.262262) vector=1 color=red text={Vector}
+# text(273.4133,31.429001) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(273.44259,31.417844,273.4357,31.423337) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(273.46657,31.420677,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(273.45735,31.420357,4.995",2.4975",9.99",4.995",45.262262) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(273.44792,31.420314,13.32",6.66",19.98",9.99",45.262262) # font="helvetica 10 bold roman" text={Box Annulus}
+point(273.46727,31.412071) # point=circle text={Circle Point}
+point(273.45762,31.411937) # point=box color=red width=3 text={Box Point}
+point(273.44884,31.412169) # point=diamond text={Diamond Point}
+point(273.46561,31.407547) # point=cross color=blue text={Cross Point}
+point(273.45737,31.407684) # point=x text={X Point}
+point(273.44902,31.40745) # point=arrow color=magenta text={Arrow Point}
+point(273.45712,31.402875) # point=boxcircle text={BoxCircle Point}
+# projection(273.43132,31.416977,273.42128,31.423133,6.66") text={Projection}
+panda(273.43811,31.412225,0.26226242,270.26226,3,0",9.99",2) # text={Panda}
+panda(273.43783,31.403809,51.844162,90.262262,1,0",4.995",1) # panda=(51.844162 90.262262 180.26226 270.26226)(0" 4.995" 9.99") text={Panda 2}
+panda(273.43783,31.403809,51.844162,90.262262,1,4.995",9.99",1) # panda=ignore
+panda(273.43783,31.403809,90.262262,180.26226,1,0",4.995",1) # panda=ignore
+panda(273.43783,31.403809,90.262262,180.26226,1,4.995",9.99",1) # panda=ignore
+panda(273.43783,31.403809,180.26226,270.26226,1,0",4.995",1) # panda=ignore
+panda(273.43783,31.403809,180.26226,270.26226,1,4.995",9.99",1) # panda=ignore
+# compass(273.41811,31.418987,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(273.42922,31.41153,0.26226242,270.26226,3,4.995",2.4975",9.99",4.995",1,45.262262) # text={Epanda}
+epanda(273.42884,31.4033,45.262262,90.262262,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=(45.262262 90.262262 180.26226 270.26226)(4.995" 2.4975" 9.99" 4.995")(45.262262) text={Epanda 2}
+epanda(273.42884,31.4033,90.262262,180.26226,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=ignore
+epanda(273.42884,31.4033,180.26226,270.26226,1,4.995",2.4975",9.99",4.995",1,45.262262) # epanda=ignore
+bpanda(273.41979,31.411578,0.26226242,270.26226,3,13.32",6.66",19.98",9.99",1,45.262262) # text={Bpanda}
+bpanda(273.42017,31.403436,45.262262,90.262262,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=(45.262262 90.262262 180.26226 270.26226)(13.32" 6.66" 19.98" 9.99")(45.262262) text={Bpanda 2}
+bpanda(273.42017,31.403436,90.262262,180.26226,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=ignore
+bpanda(273.42017,31.403436,180.26226,270.26226,1,13.32",6.66",19.98",9.99",1,45.262262) # bpanda=ignore
diff --git a/tests/ds9.mosaic.fk5.hms.reg b/tests/ds9.mosaic.fk5.hms.reg
index 4731c1c..b8ae7b6 100644
--- a/tests/ds9.mosaic.fk5.hms.reg
+++ b/tests/ds9.mosaic.fk5.hms.reg
@@ -2,75 +2,73 @@
# Filename: mosaicimage.fits[IM1]
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
fk5
-circle(18:15:24.583,+31:24:10.38,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(18:15:22.450,+31:24:04.71,13.32",6.66",44.9398) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(18:15:20.109,+31:24:04.04,26.64",13.32",44.9398) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(18:15:18.308,+31:24:07.69,18:15:17.326,+31:24:20.26,18:15:16.344,+31:24:07.68,18:15:17.326,+31:23:55.12) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(18:15:15.662,+31:23:59.35,18:15:14.100,+31:24:16.33) # line=1 1 color=cyan text={Line}
-# vector(18:15:13.216,+31:24:06.66,13.32",44.9398) vector=1 color=red text={Vector}
-# text(18:15:11.786,+31:24:01.99) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(18:15:18.836,+31:23:22.41,18:15:17.171,+31:23:42.05) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(18:15:24.583,+31:23:33.08,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(18:15:22.372,+31:23:31.75,4.995",2.4975",9.99",4.995",44.9398) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(18:15:20.110,+31:23:31.40,13.32",6.66",19.98",9.99",44.9398) # font="helvetica 10 bold roman" text={Box Annulus}
-point(18:15:24.765,+31:23:02.11) # point=circle text={Circle Point}
-point(18:15:22.451,+31:23:01.44) # point=box color=red width=3 text={Box Point}
-point(18:15:20.345,+31:23:02.10) # point=diamond text={Diamond Point}
-point(18:15:24.375,+31:22:45.80) # point=cross color=blue text={Cross Point}
-point(18:15:22.399,+31:22:46.12) # point=x text={X Point}
-point(18:15:20.397,+31:22:45.12) # point=arrow color=magenta text={Arrow Point}
-point(18:15:22.348,+31:22:28.81) # point=boxcircle text={BoxCircle Point}
-# projection(18:15:16.131,+31:23:19.06,18:15:13.712,+31:23:41.03,6.66") text={Projection}
-panda(18:15:17.770,+31:23:02.09,359.94,629.94,3,0",9.99",2) # text={Panda}
-panda(18:15:17.719,+31:22:31.79,51.5217,89.9398,1,0",4.995",1) # panda=(51.5217 89.9398 179.94 269.94)(0" 4.995" 9.99") text={Panda 2}
-panda(18:15:17.719,+31:22:31.79,51.5217,89.9398,1,4.995",9.99",1) # panda=ignore
-panda(18:15:17.719,+31:22:31.79,89.9398,179.94,1,0",4.995",1) # panda=ignore
-panda(18:15:17.719,+31:22:31.79,89.9398,179.94,1,4.995",9.99",1) # panda=ignore
-panda(18:15:17.719,+31:22:31.79,179.94,269.94,1,0",4.995",1) # panda=ignore
-panda(18:15:17.719,+31:22:31.79,179.94,269.94,1,4.995",9.99",1) # panda=ignore
-# compass(18:15:12.958,+31:23:26.04,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(18:15:15.638,+31:22:59.41,359.94,629.94,3,4.995",2.4975",9.99",4.995",1,44.9398) # text={Epanda}
-epanda(18:15:15.561,+31:22:29.78,44.9398,89.9398,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=(44.9398 89.9398 179.94 269.94)(4.995" 2.4975" 9.99" 4.995")(44.9398) text={Epanda 2}
-epanda(18:15:15.561,+31:22:29.78,89.9398,179.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
-epanda(18:15:15.561,+31:22:29.78,179.94,269.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
-bpanda(18:15:13.376,+31:22:59.40,359.94,629.94,3,13.32",6.66",19.98",9.99",1,44.9398) # text={Bpanda}
-bpanda(18:15:13.481,+31:22:30.10,44.9398,89.9398,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=(44.9398 89.9398 179.94 269.94)(13.32" 6.66" 19.98" 9.99")(44.9398) text={Bpanda 2}
-bpanda(18:15:13.481,+31:22:30.10,89.9398,179.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
-bpanda(18:15:13.481,+31:22:30.10,179.94,269.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
-# circle3d(18:15:11.114,+31:22:48.39,3.33") text={Circle3d}
-circle(18:15:44.878,+31:26:52.82,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(18:15:42.744,+31:26:47.18,13.32",6.66",44.9398) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(18:15:40.402,+31:26:46.52,26.64",13.32",44.9398) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(18:15:38.600,+31:26:50.20,18:15:37.618,+31:27:02.77,18:15:36.635,+31:26:50.21,18:15:37.618,+31:26:37.63) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(18:15:35.952,+31:26:41.88,18:15:34.391,+31:26:58.87) # line=1 1 color=cyan text={Line}
-# vector(18:15:33.506,+31:26:49.22,13.32",44.9398) vector=1 color=red text={Vector}
-# text(18:15:32.075,+31:26:44.56) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(18:15:39.126,+31:26:04.91,18:15:37.461,+31:26:24.56) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(18:15:44.876,+31:26:15.52,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(18:15:42.665,+31:26:14.21,4.995",2.4975",9.99",4.995",44.9398) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(18:15:40.401,+31:26:13.89,13.32",6.66",19.98",9.99",44.9398) # font="helvetica 10 bold roman" text={Box Annulus}
-point(18:15:45.057,+31:25:44.55) # point=circle text={Circle Point}
-point(18:15:42.741,+31:25:43.91) # point=box color=red width=3 text={Box Point}
-point(18:15:40.634,+31:25:44.58) # point=diamond text={Diamond Point}
-point(18:15:44.666,+31:25:28.24) # point=cross color=blue text={Cross Point}
-point(18:15:42.689,+31:25:28.59) # point=x text={X Point}
-point(18:15:40.685,+31:25:27.60) # point=arrow color=magenta text={Arrow Point}
-point(18:15:42.636,+31:25:11.27) # point=boxcircle text={BoxCircle Point}
-# projection(18:15:36.420,+31:26:01.59,18:15:34.000,+31:26:23.57,6.66") text={Projection}
-panda(18:15:38.058,+31:25:44.60,359.94,629.94,3,0",9.99",2) # text={Panda}
-panda(18:15:38.005,+31:25:14.30,51.5217,89.9398,1,0",4.995",1) # panda=(51.5217 89.9398 179.94 269.94)(0" 4.995" 9.99") text={Panda 2}
-panda(18:15:38.005,+31:25:14.30,51.5217,89.9398,1,4.995",9.99",1) # panda=ignore
-panda(18:15:38.005,+31:25:14.30,89.9398,179.94,1,0",4.995",1) # panda=ignore
-panda(18:15:38.005,+31:25:14.30,89.9398,179.94,1,4.995",9.99",1) # panda=ignore
-panda(18:15:38.005,+31:25:14.30,179.94,269.94,1,0",4.995",1) # panda=ignore
-panda(18:15:38.005,+31:25:14.30,179.94,269.94,1,4.995",9.99",1) # panda=ignore
-# compass(18:15:33.246,+31:26:08.59,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(18:15:35.925,+31:25:41.94,359.94,629.94,3,4.995",2.4975",9.99",4.995",1,44.9398) # text={Epanda}
-epanda(18:15:35.846,+31:25:12.31,44.9398,89.9398,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=(44.9398 89.9398 179.94 269.94)(4.995" 2.4975" 9.99" 4.995")(44.9398) text={Epanda 2}
-epanda(18:15:35.846,+31:25:12.31,89.9398,179.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
-epanda(18:15:35.846,+31:25:12.31,179.94,269.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
-bpanda(18:15:33.661,+31:25:41.95,359.94,629.94,3,13.32",6.66",19.98",9.99",1,44.9398) # text={Bpanda}
-bpanda(18:15:33.765,+31:25:12.65,44.9398,89.9398,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=(44.9398 89.9398 179.94 269.94)(13.32" 6.66" 19.98" 9.99")(44.9398) text={Bpanda 2}
-bpanda(18:15:33.765,+31:25:12.65,89.9398,179.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
-bpanda(18:15:33.765,+31:25:12.65,179.94,269.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
-# circle3d(18:15:31.398,+31:25:30.97,3.33") text={Circle3d}
+circle(18:15:25.155,+31:24:12.71,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(18:15:23.022,+31:24:07.05,13.32",6.66",44.9398) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(18:15:20.681,+31:24:06.37,26.64",13.32",44.9398) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(18:15:18.880,+31:24:10.03,18:15:17.898,+31:24:22.59,18:15:16.916,+31:24:10.02,18:15:17.898,+31:23:57.45) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(18:15:16.234,+31:24:01.69,18:15:14.673,+31:24:18.66) # line=1 1 color=cyan text={Line}
+# vector(18:15:13.789,+31:24:09.00,13.32",44.9398) vector=1 color=red text={Vector}
+# text(18:15:12.358,+31:24:04.33) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(18:15:19.408,+31:23:24.74,18:15:17.743,+31:23:44.38) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(18:15:25.155,+31:23:35.41,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(18:15:22.945,+31:23:34.08,4.995",2.4975",9.99",4.995",44.9398) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(18:15:20.682,+31:23:33.74,13.32",6.66",19.98",9.99",44.9398) # font="helvetica 10 bold roman" text={Box Annulus}
+point(18:15:25.337,+31:23:04.45) # point=circle text={Circle Point}
+point(18:15:23.023,+31:23:03.78) # point=box color=red width=3 text={Box Point}
+point(18:15:20.917,+31:23:04.43) # point=diamond text={Diamond Point}
+point(18:15:24.948,+31:22:48.13) # point=cross color=blue text={Cross Point}
+point(18:15:22.971,+31:22:48.46) # point=x text={X Point}
+point(18:15:20.969,+31:22:47.45) # point=arrow color=magenta text={Arrow Point}
+point(18:15:22.920,+31:22:31.14) # point=boxcircle text={BoxCircle Point}
+# projection(18:15:16.703,+31:23:21.40,18:15:14.284,+31:23:43.36,6.66") text={Projection}
+panda(18:15:18.342,+31:23:04.42,359.94,629.94,3,0",9.99",2) # text={Panda}
+panda(18:15:18.291,+31:22:34.12,51.5217,89.9398,1,0",4.995",1) # panda=(51.5217 89.9398 179.94 269.94)(0" 4.995" 9.99") text={Panda 2}
+panda(18:15:18.291,+31:22:34.12,51.5217,89.9398,1,4.995",9.99",1) # panda=ignore
+panda(18:15:18.291,+31:22:34.12,89.9398,179.94,1,0",4.995",1) # panda=ignore
+panda(18:15:18.291,+31:22:34.12,89.9398,179.94,1,4.995",9.99",1) # panda=ignore
+panda(18:15:18.291,+31:22:34.12,179.94,269.94,1,0",4.995",1) # panda=ignore
+panda(18:15:18.291,+31:22:34.12,179.94,269.94,1,4.995",9.99",1) # panda=ignore
+# compass(18:15:13.530,+31:23:28.37,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(18:15:16.210,+31:23:01.75,359.94,629.94,3,4.995",2.4975",9.99",4.995",1,44.9398) # text={Epanda}
+epanda(18:15:16.133,+31:22:32.11,44.9398,89.9398,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=(44.9398 89.9398 179.94 269.94)(4.995" 2.4975" 9.99" 4.995")(44.9398) text={Epanda 2}
+epanda(18:15:16.133,+31:22:32.11,89.9398,179.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
+epanda(18:15:16.133,+31:22:32.11,179.94,269.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
+bpanda(18:15:13.947,+31:23:01.73,359.94,629.94,3,13.32",6.66",19.98",9.99",1,44.9398) # text={Bpanda}
+bpanda(18:15:14.053,+31:22:32.43,44.9398,89.9398,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=(44.9398 89.9398 179.94 269.94)(13.32" 6.66" 19.98" 9.99")(44.9398) text={Bpanda 2}
+bpanda(18:15:14.053,+31:22:32.43,89.9398,179.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
+bpanda(18:15:14.053,+31:22:32.43,179.94,269.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
+circle(18:15:45.034,+31:26:56.48,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(18:15:42.900,+31:26:50.84,13.32",6.66",44.9398) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(18:15:40.558,+31:26:50.19,26.64",13.32",44.9398) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(18:15:38.756,+31:26:53.86,18:15:37.774,+31:27:06.44,18:15:36.792,+31:26:53.87,18:15:37.774,+31:26:41.29) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(18:15:36.108,+31:26:45.55,18:15:34.547,+31:27:02.53) # line=1 1 color=cyan text={Line}
+# vector(18:15:33.663,+31:26:52.88,13.32",44.9398) vector=1 color=red text={Vector}
+# text(18:15:32.231,+31:26:48.22) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(18:15:39.282,+31:26:08.57,18:15:37.617,+31:26:28.22) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(18:15:45.033,+31:26:19.19,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(18:15:42.821,+31:26:17.87,4.995",2.4975",9.99",4.995",44.9398) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(18:15:40.557,+31:26:17.55,13.32",6.66",19.98",9.99",44.9398) # font="helvetica 10 bold roman" text={Box Annulus}
+point(18:15:45.213,+31:25:48.22) # point=circle text={Circle Point}
+point(18:15:42.898,+31:25:47.57) # point=box color=red width=3 text={Box Point}
+point(18:15:40.790,+31:25:48.25) # point=diamond text={Diamond Point}
+point(18:15:44.822,+31:25:31.90) # point=cross color=blue text={Cross Point}
+point(18:15:42.845,+31:25:32.25) # point=x text={X Point}
+point(18:15:40.842,+31:25:31.26) # point=arrow color=magenta text={Arrow Point}
+point(18:15:42.792,+31:25:14.93) # point=boxcircle text={BoxCircle Point}
+# projection(18:15:36.576,+31:26:05.25,18:15:34.157,+31:26:27.24,6.66") text={Projection}
+panda(18:15:38.215,+31:25:48.26,359.94,629.94,3,0",9.99",2) # text={Panda}
+panda(18:15:38.162,+31:25:17.96,51.5217,89.9398,1,0",4.995",1) # panda=(51.5217 89.9398 179.94 269.94)(0" 4.995" 9.99") text={Panda 2}
+panda(18:15:38.162,+31:25:17.96,51.5217,89.9398,1,4.995",9.99",1) # panda=ignore
+panda(18:15:38.162,+31:25:17.96,89.9398,179.94,1,0",4.995",1) # panda=ignore
+panda(18:15:38.162,+31:25:17.96,89.9398,179.94,1,4.995",9.99",1) # panda=ignore
+panda(18:15:38.162,+31:25:17.96,179.94,269.94,1,0",4.995",1) # panda=ignore
+panda(18:15:38.162,+31:25:17.96,179.94,269.94,1,4.995",9.99",1) # panda=ignore
+# compass(18:15:33.402,+31:26:12.25,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(18:15:36.081,+31:25:45.61,359.94,629.94,3,4.995",2.4975",9.99",4.995",1,44.9398) # text={Epanda}
+epanda(18:15:36.002,+31:25:15.97,44.9398,89.9398,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=(44.9398 89.9398 179.94 269.94)(4.995" 2.4975" 9.99" 4.995")(44.9398) text={Epanda 2}
+epanda(18:15:36.002,+31:25:15.97,89.9398,179.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
+epanda(18:15:36.002,+31:25:15.97,179.94,269.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
+bpanda(18:15:33.818,+31:25:45.61,359.94,629.94,3,13.32",6.66",19.98",9.99",1,44.9398) # text={Bpanda}
+bpanda(18:15:33.921,+31:25:16.31,44.9398,89.9398,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=(44.9398 89.9398 179.94 269.94)(13.32" 6.66" 19.98" 9.99")(44.9398) text={Bpanda 2}
+bpanda(18:15:33.921,+31:25:16.31,89.9398,179.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
+bpanda(18:15:33.921,+31:25:16.31,179.94,269.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
diff --git a/tests/ds9.mosaic.fk5.reg b/tests/ds9.mosaic.fk5.reg
index 237b250..3bab4c8 100644
--- a/tests/ds9.mosaic.fk5.reg
+++ b/tests/ds9.mosaic.fk5.reg
@@ -2,75 +2,73 @@
# Filename: mosaicimage.fits[IM1]
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
fk5
-circle(273.85243,31.402883,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(273.84354,31.401309,13.32",6.66",44.939783) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(273.83379,31.401122,26.64",13.32",44.939783) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(273.82628,31.402137,273.82219,31.405628,273.8181,31.402134,273.82219,31.398644) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(273.81526,31.399821,273.80875,31.404535) # line=1 1 color=cyan text={Line}
-# vector(273.80507,31.401851,13.32",44.939783) vector=1 color=red text={Vector}
-# text(273.79911,31.400553) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(273.82848,31.389558,273.82154,31.395013) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(273.85243,31.392523,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(273.84322,31.392152,4.995",2.4975",9.99",4.995",44.939783) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(273.83379,31.392057,13.32",6.66",19.98",9.99",44.939783) # font="helvetica 10 bold roman" text={Box Annulus}
-point(273.85319,31.383921) # point=circle text={Circle Point}
-point(273.84355,31.383734) # point=box color=red width=3 text={Box Point}
-point(273.83477,31.383917) # point=diamond text={Diamond Point}
-point(273.85156,31.379388) # point=cross color=blue text={Cross Point}
-point(273.84333,31.379479) # point=x text={X Point}
-point(273.83499,31.3792) # point=arrow color=magenta text={Arrow Point}
-point(273.84311,31.374669) # point=boxcircle text={BoxCircle Point}
-# projection(273.81721,31.388629,273.80713,31.39473,6.66") text={Projection}
-panda(273.82404,31.383914,359.93978,629.93978,3,0",9.99",2) # text={Panda}
-panda(273.82383,31.375496,51.521683,89.939783,1,0",4.995",1) # panda=(51.521683 89.939783 179.93978 269.93978)(0" 4.995" 9.99") text={Panda 2}
-panda(273.82383,31.375496,51.521683,89.939783,1,4.995",9.99",1) # panda=ignore
-panda(273.82383,31.375496,89.939783,179.93978,1,0",4.995",1) # panda=ignore
-panda(273.82383,31.375496,89.939783,179.93978,1,4.995",9.99",1) # panda=ignore
-panda(273.82383,31.375496,179.93978,269.93978,1,0",4.995",1) # panda=ignore
-panda(273.82383,31.375496,179.93978,269.93978,1,4.995",9.99",1) # panda=ignore
-# compass(273.80399,31.390565,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(273.81516,31.383171,359.93978,629.93978,3,4.995",2.4975",9.99",4.995",1,44.939783) # text={Epanda}
-epanda(273.81484,31.374938,44.939783,89.939783,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=(44.939783 89.939783 179.93978 269.93978)(4.995" 2.4975" 9.99" 4.995")(44.939783) text={Epanda 2}
-epanda(273.81484,31.374938,89.939783,179.93978,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=ignore
-epanda(273.81484,31.374938,179.93978,269.93978,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=ignore
-bpanda(273.80573,31.383166,359.93978,629.93978,3,13.32",6.66",19.98",9.99",1,44.939783) # text={Bpanda}
-bpanda(273.80617,31.375027,44.939783,89.939783,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=(44.939783 89.939783 179.93978 269.93978)(13.32" 6.66" 19.98" 9.99")(44.939783) text={Bpanda 2}
-bpanda(273.80617,31.375027,89.939783,179.93978,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=ignore
-bpanda(273.80617,31.375027,179.93978,269.93978,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=ignore
-# circle3d(273.79631,31.380109,3.33") text={Circle3d}
-circle(273.93699,31.448006,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(273.9281,31.446438,13.32",6.66",44.939783) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(273.91834,31.446257,26.64",13.32",44.939783) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(273.91083,31.447277,273.90674,31.45077,273.90265,31.447279,273.90674,31.443786) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(273.8998,31.444968,273.8933,31.449687) # line=1 1 color=cyan text={Line}
-# vector(273.88961,31.447005,13.32",44.939783) vector=1 color=red text={Vector}
-# text(273.88365,31.445711) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(273.91302,31.434696,273.90609,31.440156) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(273.93698,31.437646,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(273.92777,31.43728,4.995",2.4975",9.99",4.995",44.939783) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(273.91834,31.437192,13.32",6.66",19.98",9.99",44.939783) # font="helvetica 10 bold roman" text={Box Annulus}
-point(273.93774,31.429043) # point=circle text={Circle Point}
-point(273.92809,31.428863) # point=box color=red width=3 text={Box Point}
-point(273.91931,31.429051) # point=diamond text={Diamond Point}
-point(273.93611,31.424511) # point=cross color=blue text={Cross Point}
-point(273.92787,31.424608) # point=x text={X Point}
-point(273.91952,31.424334) # point=arrow color=magenta text={Arrow Point}
-point(273.92765,31.419798) # point=boxcircle text={BoxCircle Point}
-# projection(273.90175,31.433775,273.89167,31.439882,6.66") text={Projection}
-panda(273.90858,31.429055,359.93978,629.93978,3,0",9.99",2) # text={Panda}
-panda(273.90836,31.420638,51.521683,89.939783,1,0",4.995",1) # panda=(51.521683 89.939783 179.93978 269.93978)(0" 4.995" 9.99") text={Panda 2}
-panda(273.90836,31.420638,51.521683,89.939783,1,4.995",9.99",1) # panda=ignore
-panda(273.90836,31.420638,89.939783,179.93978,1,0",4.995",1) # panda=ignore
-panda(273.90836,31.420638,89.939783,179.93978,1,4.995",9.99",1) # panda=ignore
-panda(273.90836,31.420638,179.93978,269.93978,1,0",4.995",1) # panda=ignore
-panda(273.90836,31.420638,179.93978,269.93978,1,4.995",9.99",1) # panda=ignore
-# compass(273.88852,31.43572,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(273.89969,31.428318,359.93978,629.93978,3,4.995",2.4975",9.99",4.995",1,44.939783) # text={Epanda}
-epanda(273.89936,31.420085,44.939783,89.939783,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=(44.939783 89.939783 179.93978 269.93978)(4.995" 2.4975" 9.99" 4.995")(44.939783) text={Epanda 2}
-epanda(273.89936,31.420085,89.939783,179.93978,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=ignore
-epanda(273.89936,31.420085,179.93978,269.93978,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=ignore
-bpanda(273.89026,31.42832,359.93978,629.93978,3,13.32",6.66",19.98",9.99",1,44.939783) # text={Bpanda}
-bpanda(273.89069,31.42018,44.939783,89.939783,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=(44.939783 89.939783 179.93978 269.93978)(13.32" 6.66" 19.98" 9.99")(44.939783) text={Bpanda 2}
-bpanda(273.89069,31.42018,89.939783,179.93978,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=ignore
-bpanda(273.89069,31.42018,179.93978,269.93978,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=ignore
-# circle3d(273.88082,31.425268,3.33") text={Circle3d}
+circle(273.85481,31.403531,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(273.84593,31.401957,13.32",6.66",44.939783) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(273.83617,31.40177,26.64",13.32",44.939783) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(273.82867,31.402785,273.82457,31.406276,273.82048,31.402783,273.82458,31.399292) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(273.81764,31.400469,273.81114,31.405184) # line=1 1 color=cyan text={Line}
+# vector(273.80745,31.4025,13.32",44.939783) vector=1 color=red text={Vector}
+# text(273.80149,31.401202) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(273.83087,31.390206,273.82393,31.395661) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(273.85481,31.393171,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(273.8456,31.3928,4.995",2.4975",9.99",4.995",44.939783) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(273.83617,31.392705,13.32",6.66",19.98",9.99",44.939783) # font="helvetica 10 bold roman" text={Box Annulus}
+point(273.85557,31.384568) # point=circle text={Circle Point}
+point(273.84593,31.384382) # point=box color=red width=3 text={Box Point}
+point(273.83715,31.384565) # point=diamond text={Diamond Point}
+point(273.85395,31.380036) # point=cross color=blue text={Cross Point}
+point(273.84571,31.380127) # point=x text={X Point}
+point(273.83737,31.379848) # point=arrow color=magenta text={Arrow Point}
+point(273.8455,31.375317) # point=boxcircle text={BoxCircle Point}
+# projection(273.8196,31.389277,273.80952,31.395378,6.66") text={Projection}
+panda(273.82643,31.384562,359.93978,629.93978,3,0",9.99",2) # text={Panda}
+panda(273.82621,31.376145,51.521683,89.939783,1,0",4.995",1) # panda=(51.521683 89.939783 179.93978 269.93978)(0" 4.995" 9.99") text={Panda 2}
+panda(273.82621,31.376145,51.521683,89.939783,1,4.995",9.99",1) # panda=ignore
+panda(273.82621,31.376145,89.939783,179.93978,1,0",4.995",1) # panda=ignore
+panda(273.82621,31.376145,89.939783,179.93978,1,4.995",9.99",1) # panda=ignore
+panda(273.82621,31.376145,179.93978,269.93978,1,0",4.995",1) # panda=ignore
+panda(273.82621,31.376145,179.93978,269.93978,1,4.995",9.99",1) # panda=ignore
+# compass(273.80638,31.391214,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(273.81754,31.383819,359.93978,629.93978,3,4.995",2.4975",9.99",4.995",1,44.939783) # text={Epanda}
+epanda(273.81722,31.375586,44.939783,89.939783,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=(44.939783 89.939783 179.93978 269.93978)(4.995" 2.4975" 9.99" 4.995")(44.939783) text={Epanda 2}
+epanda(273.81722,31.375586,89.939783,179.93978,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=ignore
+epanda(273.81722,31.375586,179.93978,269.93978,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=ignore
+bpanda(273.80811,31.383815,359.93978,629.93978,3,13.32",6.66",19.98",9.99",1,44.939783) # text={Bpanda}
+bpanda(273.80855,31.375675,44.939783,89.939783,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=(44.939783 89.939783 179.93978 269.93978)(13.32" 6.66" 19.98" 9.99")(44.939783) text={Bpanda 2}
+bpanda(273.80855,31.375675,89.939783,179.93978,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=ignore
+bpanda(273.80855,31.375675,179.93978,269.93978,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=ignore
+circle(273.93764,31.449023,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(273.92875,31.447455,13.32",6.66",44.939783) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(273.91899,31.447274,26.64",13.32",44.939783) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(273.91149,31.448294,273.90739,31.451788,273.9033,31.448297,273.90739,31.444803) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(273.90045,31.445985,273.89395,31.450704) # line=1 1 color=cyan text={Line}
+# vector(273.89026,31.448022,13.32",44.939783) vector=1 color=red text={Vector}
+# text(273.8843,31.446728) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(273.91367,31.435713,273.90674,31.441173) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(273.93764,31.438663,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(273.92842,31.438297,4.995",2.4975",9.99",4.995",44.939783) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(273.91899,31.438209,13.32",6.66",19.98",9.99",44.939783) # font="helvetica 10 bold roman" text={Box Annulus}
+point(273.93839,31.43006) # point=circle text={Circle Point}
+point(273.92874,31.42988) # point=box color=red width=3 text={Box Point}
+point(273.91996,31.430069) # point=diamond text={Diamond Point}
+point(273.93676,31.425528) # point=cross color=blue text={Cross Point}
+point(273.92852,31.425625) # point=x text={X Point}
+point(273.92017,31.425351) # point=arrow color=magenta text={Arrow Point}
+point(273.9283,31.420815) # point=boxcircle text={BoxCircle Point}
+# projection(273.9024,31.434792,273.89232,31.440899,6.66") text={Projection}
+panda(273.90923,31.430072,359.93978,629.93978,3,0",9.99",2) # text={Panda}
+panda(273.90901,31.421655,51.521683,89.939783,1,0",4.995",1) # panda=(51.521683 89.939783 179.93978 269.93978)(0" 4.995" 9.99") text={Panda 2}
+panda(273.90901,31.421655,51.521683,89.939783,1,4.995",9.99",1) # panda=ignore
+panda(273.90901,31.421655,89.939783,179.93978,1,0",4.995",1) # panda=ignore
+panda(273.90901,31.421655,89.939783,179.93978,1,4.995",9.99",1) # panda=ignore
+panda(273.90901,31.421655,179.93978,269.93978,1,0",4.995",1) # panda=ignore
+panda(273.90901,31.421655,179.93978,269.93978,1,4.995",9.99",1) # panda=ignore
+# compass(273.88917,31.436737,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(273.90034,31.429335,359.93978,629.93978,3,4.995",2.4975",9.99",4.995",1,44.939783) # text={Epanda}
+epanda(273.90001,31.421103,44.939783,89.939783,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=(44.939783 89.939783 179.93978 269.93978)(4.995" 2.4975" 9.99" 4.995")(44.939783) text={Epanda 2}
+epanda(273.90001,31.421103,89.939783,179.93978,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=ignore
+epanda(273.90001,31.421103,179.93978,269.93978,1,4.995",2.4975",9.99",4.995",1,44.939783) # epanda=ignore
+bpanda(273.89091,31.429337,359.93978,629.93978,3,13.32",6.66",19.98",9.99",1,44.939783) # text={Bpanda}
+bpanda(273.89134,31.421197,44.939783,89.939783,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=(44.939783 89.939783 179.93978 269.93978)(13.32" 6.66" 19.98" 9.99")(44.939783) text={Bpanda 2}
+bpanda(273.89134,31.421197,89.939783,179.93978,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=ignore
+bpanda(273.89134,31.421197,179.93978,269.93978,1,13.32",6.66",19.98",9.99",1,44.939783) # bpanda=ignore
diff --git a/tests/ds9.mosaic.galactic.hms.reg b/tests/ds9.mosaic.galactic.hms.reg
index dd5c421..2e4047c 100644
--- a/tests/ds9.mosaic.galactic.hms.reg
+++ b/tests/ds9.mosaic.galactic.hms.reg
@@ -2,75 +2,73 @@
# Filename: mosaicimage.fits[IM1]
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
galactic
-circle(+58:28:16.326,+20:53:10.919,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(+58:28:00.717,+20:53:34.689,13.32",6.66",115.143) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(+58:27:49.170,+20:54:02.658,26.64",13.32",115.143) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(+58:27:44.490,+20:54:25.594,+58:27:52.588,+20:54:41.683,+58:27:35.364,+20:54:49.248,+58:27:27.267,+20:54:33.158) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(+58:27:23.807,+20:54:54.647,+58:27:33.659,+20:55:19.202) # line=1 1 color=cyan text={Line}
-# vector(+58:27:19.823,+20:55:26.579,13.32",115.143) vector=1 color=red text={Vector}
-# text(+58:27:08.478,+20:55:42.228) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(+58:27:01.331,+20:54:03.894,+58:27:13.380,+20:54:30.606) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(+58:27:38.771,+20:52:58.275,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(+58:27:27.158,+20:53:24.451,4.995",2.4975",9.99",4.995",115.143) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(+58:27:16.308,+20:53:51.593,13.32",6.66",19.98",9.99",115.143) # font="helvetica 10 bold roman" text={Box Annulus}
-point(+58:27:08.435,+20:52:45.581) # point=circle text={Circle Point}
-point(+58:26:57.008,+20:53:13.236) # point=box color=red width=3 text={Box Point}
-point(+58:26:47.887,+20:53:38.836) # point=diamond text={Diamond Point}
-point(+58:26:50.193,+20:52:44.746) # point=cross color=blue text={Cross Point}
-point(+58:26:41.342,+20:53:08.667) # point=x text={X Point}
-point(+58:26:31.028,+20:53:32.450) # point=arrow color=magenta text={Arrow Point}
-point(+58:26:23.665,+20:53:03.421) # point=boxcircle text={BoxCircle Point}
-# projection(+58:26:45.405,+20:54:35.345,+58:26:56.295,+20:55:11.932,6.66") text={Projection}
-panda(+58:26:35.919,+20:54:09.849,70.1434,340.143,3,0",9.99",2) # text={Panda}
-panda(+58:26:05.163,+20:54:00.198,121.725,160.143,1,0",4.995",1) # panda=(121.725 160.143 250.143 340.143)(0" 4.995" 9.99") text={Panda 2}
-panda(+58:26:05.163,+20:54:00.198,121.725,160.143,1,4.995",9.99",1) # panda=ignore
-panda(+58:26:05.163,+20:54:00.198,160.143,250.143,1,0",4.995",1) # panda=ignore
-panda(+58:26:05.163,+20:54:00.198,160.143,250.143,1,4.995",9.99",1) # panda=ignore
-panda(+58:26:05.163,+20:54:00.198,250.143,340.143,1,0",4.995",1) # panda=ignore
-panda(+58:26:05.163,+20:54:00.198,250.143,340.143,1,4.995",9.99",1) # panda=ignore
-# compass(+58:26:37.697,+20:55:15.935,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(+58:26:23.322,+20:54:34.633,70.1434,340.143,3,4.995",2.4975",9.99",4.995",1,115.143) # text={Epanda}
-epanda(+58:25:53.114,+20:54:25.520,115.143,160.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=(115.143 160.143 250.143 340.143)(4.995" 2.4975" 9.99" 4.995")(115.143) text={Epanda 2}
-epanda(+58:25:53.114,+20:54:25.520,160.143,250.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=ignore
-epanda(+58:25:53.114,+20:54:25.520,250.143,340.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=ignore
-bpanda(+58:26:12.803,+20:55:01.887,70.1434,340.143,3,13.32",6.66",19.98",9.99",1,115.143) # text={Bpanda}
-bpanda(+58:25:43.775,+20:54:50.693,115.143,160.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=(115.143 160.143 250.143 340.143)(13.32" 6.66" 19.98" 9.99")(115.143) text={Bpanda 2}
-bpanda(+58:25:43.775,+20:54:50.693,160.143,250.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=ignore
-bpanda(+58:25:43.775,+20:54:50.693,250.143,340.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=ignore
-# circle3d(+58:25:51.215,+20:55:25.412,3.33") text={Circle3d}
-circle(+58:32:34.114,+20:50:01.593,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(+58:32:18.522,+20:50:25.370,13.32",6.66",115.143) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(+58:32:06.992,+20:50:53.344,26.64",13.32",115.143) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(+58:32:02.325,+20:51:16.281,+58:32:10.427,+20:51:32.367,+58:31:53.213,+20:51:39.939,+58:31:45.111,+20:51:23.853) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(+58:31:41.663,+20:51:45.344,+58:31:51.523,+20:52:09.894) # line=1 1 color=cyan text={Line}
-# vector(+58:31:37.695,+20:52:17.277,13.32",115.143) vector=1 color=red text={Vector}
-# text(+58:31:26.362,+20:52:32.931) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(+58:31:19.170,+20:50:54.600,+58:31:31.227,+20:51:21.307) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(+58:31:56.566,+20:49:48.965,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(+58:31:44.969,+20:50:15.146,4.995",2.4975",9.99",4.995",115.143) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(+58:31:34.136,+20:50:42.292,13.32",6.66",19.98",9.99",115.143) # font="helvetica 10 bold roman" text={Box Annulus}
-point(+58:31:26.234,+20:49:36.283) # point=circle text={Circle Point}
-point(+58:31:14.824,+20:50:03.943) # point=box color=red width=3 text={Box Point}
-point(+58:31:05.719,+20:50:29.547) # point=diamond text={Diamond Point}
-point(+58:31:07.998,+20:49:35.457) # point=cross color=blue text={Cross Point}
-point(+58:30:59.162,+20:49:59.381) # point=x text={X Point}
-point(+58:30:48.863,+20:50:23.168) # point=arrow color=magenta text={Arrow Point}
-point(+58:30:41.489,+20:49:54.142) # point=boxcircle text={BoxCircle Point}
-# projection(+58:31:03.265,+20:51:26.057,+58:31:14.169,+20:52:02.640,6.66") text={Projection}
-panda(+58:30:53.770,+20:51:00.565,70.1434,340.143,3,0",9.99",2) # text={Panda}
-panda(+58:30:23.020,+20:50:50.926,121.725,160.143,1,0",4.995",1) # panda=(121.725 160.143 250.143 340.143)(0" 4.995" 9.99") text={Panda 2}
-panda(+58:30:23.020,+20:50:50.926,121.725,160.143,1,4.995",9.99",1) # panda=ignore
-panda(+58:30:23.020,+20:50:50.926,160.143,250.143,1,0",4.995",1) # panda=ignore
-panda(+58:30:23.020,+20:50:50.926,160.143,250.143,1,4.995",9.99",1) # panda=ignore
-panda(+58:30:23.020,+20:50:50.926,250.143,340.143,1,0",4.995",1) # panda=ignore
-panda(+58:30:23.020,+20:50:50.926,250.143,340.143,1,4.995",9.99",1) # panda=ignore
-# compass(+58:30:55.579,+20:52:06.650,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(+58:30:41.189,+20:51:25.355,70.1434,340.143,3,4.995",2.4975",9.99",4.995",1,115.143) # text={Epanda}
-epanda(+58:30:10.988,+20:51:16.254,115.143,160.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=(115.143 160.143 250.143 340.143)(4.995" 2.4975" 9.99" 4.995")(115.143) text={Epanda 2}
-epanda(+58:30:10.988,+20:51:16.254,160.143,250.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=ignore
-epanda(+58:30:10.988,+20:51:16.254,250.143,340.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=ignore
-bpanda(+58:30:30.686,+20:51:52.612,70.1434,340.143,3,13.32",6.66",19.98",9.99",1,115.143) # text={Bpanda}
-bpanda(+58:30:01.664,+20:51:41.431,115.143,160.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=(115.143 160.143 250.143 340.143)(13.32" 6.66" 19.98" 9.99")(115.143) text={Bpanda 2}
-bpanda(+58:30:01.664,+20:51:41.431,160.143,250.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=ignore
-bpanda(+58:30:01.664,+20:51:41.431,250.143,340.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=ignore
-# circle3d(+58:30:09.117,+20:52:16.147,3.33") text={Circle3d}
+circle(+58:28:21.331,+20:53:04.817,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(+58:28:05.723,+20:53:28.587,13.32",6.66",115.143) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(+58:27:54.177,+20:53:56.556,26.64",13.32",115.143) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(+58:27:49.497,+20:54:19.492,+58:27:57.595,+20:54:35.581,+58:27:40.371,+20:54:43.146,+58:27:32.273,+20:54:27.056) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(+58:27:28.814,+20:54:48.546,+58:27:38.666,+20:55:13.101) # line=1 1 color=cyan text={Line}
+# vector(+58:27:24.830,+20:55:20.478,13.32",115.143) vector=1 color=red text={Vector}
+# text(+58:27:13.486,+20:55:36.127) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(+58:27:06.337,+20:53:57.793,+58:27:18.386,+20:54:24.505) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(+58:27:43.777,+20:52:52.173,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(+58:27:32.164,+20:53:18.350,4.995",2.4975",9.99",4.995",115.143) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(+58:27:21.314,+20:53:45.492,13.32",6.66",19.98",9.99",115.143) # font="helvetica 10 bold roman" text={Box Annulus}
+point(+58:27:13.441,+20:52:39.479) # point=circle text={Circle Point}
+point(+58:27:02.014,+20:53:07.134) # point=box color=red width=3 text={Box Point}
+point(+58:26:52.894,+20:53:32.735) # point=diamond text={Diamond Point}
+point(+58:26:55.199,+20:52:38.645) # point=cross color=blue text={Cross Point}
+point(+58:26:46.348,+20:53:02.566) # point=x text={X Point}
+point(+58:26:36.035,+20:53:26.349) # point=arrow color=magenta text={Arrow Point}
+point(+58:26:28.672,+20:52:57.320) # point=boxcircle text={BoxCircle Point}
+# projection(+58:26:50.412,+20:54:29.243,+58:27:01.303,+20:55:05.831,6.66") text={Projection}
+panda(+58:26:40.926,+20:54:03.748,70.1434,340.143,3,0",9.99",2) # text={Panda}
+panda(+58:26:10.170,+20:53:54.097,121.725,160.143,1,0",4.995",1) # panda=(121.725 160.143 250.143 340.143)(0" 4.995" 9.99") text={Panda 2}
+panda(+58:26:10.170,+20:53:54.097,121.725,160.143,1,4.995",9.99",1) # panda=ignore
+panda(+58:26:10.170,+20:53:54.097,160.143,250.143,1,0",4.995",1) # panda=ignore
+panda(+58:26:10.170,+20:53:54.097,160.143,250.143,1,4.995",9.99",1) # panda=ignore
+panda(+58:26:10.170,+20:53:54.097,250.143,340.143,1,0",4.995",1) # panda=ignore
+panda(+58:26:10.170,+20:53:54.097,250.143,340.143,1,4.995",9.99",1) # panda=ignore
+# compass(+58:26:42.705,+20:55:09.833,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(+58:26:28.330,+20:54:28.532,70.1434,340.143,3,4.995",2.4975",9.99",4.995",1,115.143) # text={Epanda}
+epanda(+58:25:58.122,+20:54:19.419,115.143,160.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=(115.143 160.143 250.143 340.143)(4.995" 2.4975" 9.99" 4.995")(115.143) text={Epanda 2}
+epanda(+58:25:58.122,+20:54:19.419,160.143,250.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=ignore
+epanda(+58:25:58.122,+20:54:19.419,250.143,340.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=ignore
+bpanda(+58:26:17.810,+20:54:55.786,70.1434,340.143,3,13.32",6.66",19.98",9.99",1,115.143) # text={Bpanda}
+bpanda(+58:25:48.783,+20:54:44.592,115.143,160.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=(115.143 160.143 250.143 340.143)(13.32" 6.66" 19.98" 9.99")(115.143) text={Bpanda 2}
+bpanda(+58:25:48.783,+20:54:44.592,160.143,250.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=ignore
+bpanda(+58:25:48.783,+20:54:44.592,250.143,340.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=ignore
+circle(+58:32:38.525,+20:50:00.954,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(+58:32:22.933,+20:50:24.730,13.32",6.66",115.143) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(+58:32:11.404,+20:50:52.704,26.64",13.32",115.143) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(+58:32:06.737,+20:51:15.642,+58:32:14.840,+20:51:31.728,+58:31:57.626,+20:51:39.299,+58:31:49.523,+20:51:23.213) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(+58:31:46.075,+20:51:44.704,+58:31:55.935,+20:52:09.255) # line=1 1 color=cyan text={Line}
+# vector(+58:31:42.108,+20:52:16.637,13.32",115.143) vector=1 color=red text={Vector}
+# text(+58:31:30.774,+20:52:32.291) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(+58:31:23.582,+20:50:53.961,+58:31:35.640,+20:51:20.667) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(+58:32:00.978,+20:49:48.325,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(+58:31:49.381,+20:50:14.507,4.995",2.4975",9.99",4.995",115.143) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(+58:31:38.547,+20:50:41.653,13.32",6.66",19.98",9.99",115.143) # font="helvetica 10 bold roman" text={Box Annulus}
+point(+58:31:30.646,+20:49:35.644) # point=circle text={Circle Point}
+point(+58:31:19.236,+20:50:03.304) # point=box color=red width=3 text={Box Point}
+point(+58:31:10.131,+20:50:28.908) # point=diamond text={Diamond Point}
+point(+58:31:12.410,+20:49:34.817) # point=cross color=blue text={Cross Point}
+point(+58:31:03.573,+20:49:58.742) # point=x text={X Point}
+point(+58:30:53.275,+20:50:22.529) # point=arrow color=magenta text={Arrow Point}
+point(+58:30:45.900,+20:49:53.503) # point=boxcircle text={BoxCircle Point}
+# projection(+58:31:07.677,+20:51:25.418,+58:31:18.581,+20:52:02.000,6.66") text={Projection}
+panda(+58:30:58.182,+20:50:59.926,70.1434,340.143,3,0",9.99",2) # text={Panda}
+panda(+58:30:27.432,+20:50:50.288,121.725,160.143,1,0",4.995",1) # panda=(121.725 160.143 250.143 340.143)(0" 4.995" 9.99") text={Panda 2}
+panda(+58:30:27.432,+20:50:50.288,121.725,160.143,1,4.995",9.99",1) # panda=ignore
+panda(+58:30:27.432,+20:50:50.288,160.143,250.143,1,0",4.995",1) # panda=ignore
+panda(+58:30:27.432,+20:50:50.288,160.143,250.143,1,4.995",9.99",1) # panda=ignore
+panda(+58:30:27.432,+20:50:50.288,250.143,340.143,1,0",4.995",1) # panda=ignore
+panda(+58:30:27.432,+20:50:50.288,250.143,340.143,1,4.995",9.99",1) # panda=ignore
+# compass(+58:30:59.992,+20:52:06.011,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(+58:30:45.602,+20:51:24.716,70.1434,340.143,3,4.995",2.4975",9.99",4.995",1,115.143) # text={Epanda}
+epanda(+58:30:15.400,+20:51:15.615,115.143,160.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=(115.143 160.143 250.143 340.143)(4.995" 2.4975" 9.99" 4.995")(115.143) text={Epanda 2}
+epanda(+58:30:15.400,+20:51:15.615,160.143,250.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=ignore
+epanda(+58:30:15.400,+20:51:15.615,250.143,340.143,1,4.995",2.4975",9.99",4.995",1,115.143) # epanda=ignore
+bpanda(+58:30:35.099,+20:51:51.974,70.1434,340.143,3,13.32",6.66",19.98",9.99",1,115.143) # text={Bpanda}
+bpanda(+58:30:06.076,+20:51:40.792,115.143,160.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=(115.143 160.143 250.143 340.143)(13.32" 6.66" 19.98" 9.99")(115.143) text={Bpanda 2}
+bpanda(+58:30:06.076,+20:51:40.792,160.143,250.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=ignore
+bpanda(+58:30:06.076,+20:51:40.792,250.143,340.143,1,13.32",6.66",19.98",9.99",1,115.143) # bpanda=ignore
diff --git a/tests/ds9.mosaic.galactic.reg b/tests/ds9.mosaic.galactic.reg
index 2977778..194abff 100644
--- a/tests/ds9.mosaic.galactic.reg
+++ b/tests/ds9.mosaic.galactic.reg
@@ -2,75 +2,73 @@
# Filename: mosaicimage.fits[IM1]
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
galactic
-circle(58.471202,20.886366,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(58.466866,20.892969,13.32",6.66",115.14338) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(58.463658,20.900738,26.64",13.32",115.14338) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(58.462358,20.907109,58.464608,20.911579,58.459823,20.91368,58.457574,20.909211) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(58.456613,20.91518,58.45935,20.922001) # line=1 1 color=cyan text={Line}
-# vector(58.455506,20.92405,13.32",115.14338) vector=1 color=red text={Vector}
-# text(58.452355,20.928397) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(58.45037,20.901082,58.453717,20.908502) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(58.46077,20.882854,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(58.457544,20.890125,4.995",2.4975",9.99",4.995",115.14338) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(58.45453,20.897665,13.32",6.66",19.98",9.99",115.14338) # font="helvetica 10 bold roman" text={Box Annulus}
-point(58.452343,20.879328) # point=circle text={Circle Point}
-point(58.449169,20.88701) # point=box color=red width=3 text={Box Point}
-point(58.446635,20.894121) # point=diamond text={Diamond Point}
-point(58.447276,20.879096) # point=cross color=blue text={Cross Point}
-point(58.444817,20.885741) # point=x text={X Point}
-point(58.441952,20.892347) # point=arrow color=magenta text={Arrow Point}
-point(58.439907,20.884284) # point=boxcircle text={BoxCircle Point}
-# projection(58.445946,20.909818,58.448971,20.919981,6.66") text={Projection}
-panda(58.443311,20.902736,70.143383,340.14338,3,0",9.99",2) # text={Panda}
-panda(58.434767,20.900055,121.72528,160.14338,1,0",4.995",1) # panda=(121.72528 160.14338 250.14338 340.14338)(0" 4.995" 9.99") text={Panda 2}
-panda(58.434767,20.900055,121.72528,160.14338,1,4.995",9.99",1) # panda=ignore
-panda(58.434767,20.900055,160.14338,250.14338,1,0",4.995",1) # panda=ignore
-panda(58.434767,20.900055,160.14338,250.14338,1,4.995",9.99",1) # panda=ignore
-panda(58.434767,20.900055,250.14338,340.14338,1,0",4.995",1) # panda=ignore
-panda(58.434767,20.900055,250.14338,340.14338,1,4.995",9.99",1) # panda=ignore
-# compass(58.443805,20.921093,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(58.439812,20.90962,70.143383,340.14338,3,4.995",2.4975",9.99",4.995",1,115.14338) # text={Epanda}
-epanda(58.431421,20.907089,115.14338,160.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=(115.14338 160.14338 250.14338 340.14338)(4.995" 2.4975" 9.99" 4.995")(115.14338) text={Epanda 2}
-epanda(58.431421,20.907089,160.14338,250.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=ignore
-epanda(58.431421,20.907089,250.14338,340.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=ignore
-bpanda(58.43689,20.917191,70.143383,340.14338,3,13.32",6.66",19.98",9.99",1,115.14338) # text={Bpanda}
-bpanda(58.428826,20.914081,115.14338,160.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=(115.14338 160.14338 250.14338 340.14338)(13.32" 6.66" 19.98" 9.99")(115.14338) text={Bpanda 2}
-bpanda(58.428826,20.914081,160.14338,250.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=ignore
-bpanda(58.428826,20.914081,250.14338,340.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=ignore
-# circle3d(58.430893,20.923726,3.33") text={Circle3d}
-circle(58.542809,20.833776,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(58.538478,20.84038,13.32",6.66",115.14338) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(58.535276,20.848151,26.64",13.32",115.14338) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(58.533979,20.854523,58.53623,20.858991,58.531448,20.861094,58.529197,20.856626) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(58.52824,20.862595,58.530979,20.869415) # line=1 1 color=cyan text={Line}
-# vector(58.527137,20.871466,13.32",115.14338) vector=1 color=red text={Vector}
-# text(58.523989,20.875814) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(58.521992,20.8485,58.525341,20.855918) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(58.532379,20.830268,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(58.529158,20.837541,4.995",2.4975",9.99",4.995",115.14338) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(58.526149,20.845081,13.32",6.66",19.98",9.99",115.14338) # font="helvetica 10 bold roman" text={Box Annulus}
-point(58.523954,20.826745) # point=circle text={Circle Point}
-point(58.520784,20.834429) # point=box color=red width=3 text={Box Point}
-point(58.518255,20.841541) # point=diamond text={Diamond Point}
-point(58.518888,20.826516) # point=cross color=blue text={Cross Point}
-point(58.516434,20.833161) # point=x text={X Point}
-point(58.513573,20.839769) # point=arrow color=magenta text={Arrow Point}
-point(58.511525,20.831706) # point=boxcircle text={BoxCircle Point}
-# projection(58.517573,20.857238,58.520602,20.8674,6.66") text={Projection}
-panda(58.514936,20.850157,70.143383,340.14338,3,0",9.99",2) # text={Panda}
-panda(58.506394,20.84748,121.72528,160.14338,1,0",4.995",1) # panda=(121.72528 160.14338 250.14338 340.14338)(0" 4.995" 9.99") text={Panda 2}
-panda(58.506394,20.84748,121.72528,160.14338,1,4.995",9.99",1) # panda=ignore
-panda(58.506394,20.84748,160.14338,250.14338,1,0",4.995",1) # panda=ignore
-panda(58.506394,20.84748,160.14338,250.14338,1,4.995",9.99",1) # panda=ignore
-panda(58.506394,20.84748,250.14338,340.14338,1,0",4.995",1) # panda=ignore
-panda(58.506394,20.84748,250.14338,340.14338,1,4.995",9.99",1) # panda=ignore
-# compass(58.515439,20.868514,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(58.511441,20.857043,70.143383,340.14338,3,4.995",2.4975",9.99",4.995",1,115.14338) # text={Epanda}
-epanda(58.503052,20.854515,115.14338,160.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=(115.14338 160.14338 250.14338 340.14338)(4.995" 2.4975" 9.99" 4.995")(115.14338) text={Epanda 2}
-epanda(58.503052,20.854515,160.14338,250.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=ignore
-epanda(58.503052,20.854515,250.14338,340.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=ignore
-bpanda(58.508524,20.864615,70.143383,340.14338,3,13.32",6.66",19.98",9.99",1,115.14338) # text={Bpanda}
-bpanda(58.500462,20.861509,115.14338,160.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=(115.14338 160.14338 250.14338 340.14338)(13.32" 6.66" 19.98" 9.99")(115.14338) text={Bpanda 2}
-bpanda(58.500462,20.861509,160.14338,250.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=ignore
-bpanda(58.500462,20.861509,250.14338,340.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=ignore
-# circle3d(58.502533,20.871152,3.33") text={Circle3d}
+circle(58.472592,20.884671,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(58.468256,20.891274,13.32",6.66",115.14338) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(58.465049,20.899043,26.64",13.32",115.14338) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(58.463749,20.905414,58.465999,20.909884,58.461214,20.911985,58.458965,20.907516) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(58.458004,20.913485,58.460741,20.920306) # line=1 1 color=cyan text={Line}
+# vector(58.456897,20.922355,13.32",115.14338) vector=1 color=red text={Vector}
+# text(58.453746,20.926702) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(58.45176,20.899387,58.455107,20.906807) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(58.46216,20.881159,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(58.458934,20.88843,4.995",2.4975",9.99",4.995",115.14338) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(58.455921,20.89597,13.32",6.66",19.98",9.99",115.14338) # font="helvetica 10 bold roman" text={Box Annulus}
+point(58.453734,20.877633) # point=circle text={Circle Point}
+point(58.450559,20.885315) # point=box color=red width=3 text={Box Point}
+point(58.448026,20.892426) # point=diamond text={Diamond Point}
+point(58.448666,20.877401) # point=cross color=blue text={Cross Point}
+point(58.446208,20.884046) # point=x text={X Point}
+point(58.443343,20.890652) # point=arrow color=magenta text={Arrow Point}
+point(58.441298,20.882589) # point=boxcircle text={BoxCircle Point}
+# projection(58.447337,20.908123,58.450362,20.918286,6.66") text={Projection}
+panda(58.444702,20.901041,70.143383,340.14338,3,0",9.99",2) # text={Panda}
+panda(58.436158,20.89836,121.72528,160.14338,1,0",4.995",1) # panda=(121.72528 160.14338 250.14338 340.14338)(0" 4.995" 9.99") text={Panda 2}
+panda(58.436158,20.89836,121.72528,160.14338,1,4.995",9.99",1) # panda=ignore
+panda(58.436158,20.89836,160.14338,250.14338,1,0",4.995",1) # panda=ignore
+panda(58.436158,20.89836,160.14338,250.14338,1,4.995",9.99",1) # panda=ignore
+panda(58.436158,20.89836,250.14338,340.14338,1,0",4.995",1) # panda=ignore
+panda(58.436158,20.89836,250.14338,340.14338,1,4.995",9.99",1) # panda=ignore
+# compass(58.445196,20.919398,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(58.441203,20.907926,70.143383,340.14338,3,4.995",2.4975",9.99",4.995",1,115.14338) # text={Epanda}
+epanda(58.432812,20.905394,115.14338,160.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=(115.14338 160.14338 250.14338 340.14338)(4.995" 2.4975" 9.99" 4.995")(115.14338) text={Epanda 2}
+epanda(58.432812,20.905394,160.14338,250.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=ignore
+epanda(58.432812,20.905394,250.14338,340.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=ignore
+bpanda(58.438281,20.915496,70.143383,340.14338,3,13.32",6.66",19.98",9.99",1,115.14338) # text={Bpanda}
+bpanda(58.430218,20.912387,115.14338,160.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=(115.14338 160.14338 250.14338 340.14338)(13.32" 6.66" 19.98" 9.99")(115.14338) text={Bpanda 2}
+bpanda(58.430218,20.912387,160.14338,250.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=ignore
+bpanda(58.430218,20.912387,250.14338,340.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=ignore
+circle(58.544035,20.833598,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(58.539704,20.840203,13.32",6.66",115.14338) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(58.536501,20.847973,26.64",13.32",115.14338) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(58.535205,20.854345,58.537456,20.858813,58.532674,20.860917,58.530423,20.856448) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(58.529465,20.862418,58.532204,20.869237) # line=1 1 color=cyan text={Line}
+# vector(58.528363,20.871288,13.32",115.14338) vector=1 color=red text={Vector}
+# text(58.525215,20.875636) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(58.523217,20.848322,58.526567,20.855741) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(58.533605,20.83009,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(58.530384,20.837363,4.995",2.4975",9.99",4.995",115.14338) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(58.527374,20.844904,13.32",6.66",19.98",9.99",115.14338) # font="helvetica 10 bold roman" text={Box Annulus}
+point(58.525179,20.826568) # point=circle text={Circle Point}
+point(58.52201,20.834251) # point=box color=red width=3 text={Box Point}
+point(58.519481,20.841363) # point=diamond text={Diamond Point}
+point(58.520114,20.826338) # point=cross color=blue text={Cross Point}
+point(58.517659,20.832984) # point=x text={X Point}
+point(58.514798,20.839591) # point=arrow color=magenta text={Arrow Point}
+point(58.51275,20.831529) # point=boxcircle text={BoxCircle Point}
+# projection(58.518799,20.85706,58.521828,20.867222,6.66") text={Projection}
+panda(58.516162,20.84998,70.143383,340.14338,3,0",9.99",2) # text={Panda}
+panda(58.50762,20.847302,121.72528,160.14338,1,0",4.995",1) # panda=(121.72528 160.14338 250.14338 340.14338)(0" 4.995" 9.99") text={Panda 2}
+panda(58.50762,20.847302,121.72528,160.14338,1,4.995",9.99",1) # panda=ignore
+panda(58.50762,20.847302,160.14338,250.14338,1,0",4.995",1) # panda=ignore
+panda(58.50762,20.847302,160.14338,250.14338,1,4.995",9.99",1) # panda=ignore
+panda(58.50762,20.847302,250.14338,340.14338,1,0",4.995",1) # panda=ignore
+panda(58.50762,20.847302,250.14338,340.14338,1,4.995",9.99",1) # panda=ignore
+# compass(58.516664,20.868336,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(58.512667,20.856865,70.143383,340.14338,3,4.995",2.4975",9.99",4.995",1,115.14338) # text={Epanda}
+epanda(58.504278,20.854338,115.14338,160.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=(115.14338 160.14338 250.14338 340.14338)(4.995" 2.4975" 9.99" 4.995")(115.14338) text={Epanda 2}
+epanda(58.504278,20.854338,160.14338,250.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=ignore
+epanda(58.504278,20.854338,250.14338,340.14338,1,4.995",2.4975",9.99",4.995",1,115.14338) # epanda=ignore
+bpanda(58.50975,20.864437,70.143383,340.14338,3,13.32",6.66",19.98",9.99",1,115.14338) # text={Bpanda}
+bpanda(58.501688,20.861331,115.14338,160.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=(115.14338 160.14338 250.14338 340.14338)(13.32" 6.66" 19.98" 9.99")(115.14338) text={Bpanda 2}
+bpanda(58.501688,20.861331,160.14338,250.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=ignore
+bpanda(58.501688,20.861331,250.14338,340.14338,1,13.32",6.66",19.98",9.99",1,115.14338) # bpanda=ignore
diff --git a/tests/ds9.mosaic.icrs.hms.reg b/tests/ds9.mosaic.icrs.hms.reg
index 6b4171c..f00e314 100644
--- a/tests/ds9.mosaic.icrs.hms.reg
+++ b/tests/ds9.mosaic.icrs.hms.reg
@@ -2,75 +2,73 @@
# Filename: mosaicimage.fits[IM1]
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
icrs
-circle(18:15:24.581,+31:24:10.36,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(18:15:22.449,+31:24:04.69,13.32",6.66",44.9398) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(18:15:20.108,+31:24:04.02,26.64",13.32",44.9398) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(18:15:18.307,+31:24:07.67,18:15:17.324,+31:24:20.24,18:15:16.343,+31:24:07.66,18:15:17.325,+31:23:55.10) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(18:15:15.660,+31:23:59.33,18:15:14.099,+31:24:16.31) # line=1 1 color=cyan text={Line}
-# vector(18:15:13.215,+31:24:06.64,13.32",44.9398) vector=1 color=red text={Vector}
-# text(18:15:11.785,+31:24:01.97) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(18:15:18.835,+31:23:22.39,18:15:17.170,+31:23:42.03) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(18:15:24.582,+31:23:33.06,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(18:15:22.371,+31:23:31.73,4.995",2.4975",9.99",4.995",44.9398) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(18:15:20.109,+31:23:31.38,13.32",6.66",19.98",9.99",44.9398) # font="helvetica 10 bold roman" text={Box Annulus}
-point(18:15:24.764,+31:23:02.09) # point=circle text={Circle Point}
-point(18:15:22.450,+31:23:01.42) # point=box color=red width=3 text={Box Point}
-point(18:15:20.343,+31:23:02.08) # point=diamond text={Diamond Point}
-point(18:15:24.374,+31:22:45.78) # point=cross color=blue text={Cross Point}
-point(18:15:22.398,+31:22:46.10) # point=x text={X Point}
-point(18:15:20.396,+31:22:45.10) # point=arrow color=magenta text={Arrow Point}
-point(18:15:22.346,+31:22:28.79) # point=boxcircle text={BoxCircle Point}
-# projection(18:15:16.130,+31:23:19.04,18:15:13.711,+31:23:41.01,6.66") text={Projection}
-panda(18:15:17.769,+31:23:02.07,359.94,629.94,3,0",9.99",2) # text={Panda}
-panda(18:15:17.718,+31:22:31.77,51.5217,89.9398,1,0",4.995",1) # panda=(51.5217 89.9398 179.94 269.94)(0" 4.995" 9.99") text={Panda 2}
-panda(18:15:17.718,+31:22:31.77,51.5217,89.9398,1,4.995",9.99",1) # panda=ignore
-panda(18:15:17.718,+31:22:31.77,89.9398,179.94,1,0",4.995",1) # panda=ignore
-panda(18:15:17.718,+31:22:31.77,89.9398,179.94,1,4.995",9.99",1) # panda=ignore
-panda(18:15:17.718,+31:22:31.77,179.94,269.94,1,0",4.995",1) # panda=ignore
-panda(18:15:17.718,+31:22:31.77,179.94,269.94,1,4.995",9.99",1) # panda=ignore
-# compass(18:15:12.957,+31:23:26.02,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(18:15:15.637,+31:22:59.39,359.94,629.94,3,4.995",2.4975",9.99",4.995",1,44.9398) # text={Epanda}
-epanda(18:15:15.560,+31:22:29.76,44.9398,89.9398,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=(44.9398 89.9398 179.94 269.94)(4.995" 2.4975" 9.99" 4.995")(44.9398) text={Epanda 2}
-epanda(18:15:15.560,+31:22:29.76,89.9398,179.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
-epanda(18:15:15.560,+31:22:29.76,179.94,269.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
-bpanda(18:15:13.374,+31:22:59.38,359.94,629.94,3,13.32",6.66",19.98",9.99",1,44.9398) # text={Bpanda}
-bpanda(18:15:13.480,+31:22:30.08,44.9398,89.9398,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=(44.9398 89.9398 179.94 269.94)(13.32" 6.66" 19.98" 9.99")(44.9398) text={Bpanda 2}
-bpanda(18:15:13.480,+31:22:30.08,89.9398,179.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
-bpanda(18:15:13.480,+31:22:30.08,179.94,269.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
-# circle3d(18:15:11.113,+31:22:48.37,3.33") text={Circle3d}
-circle(18:15:44.877,+31:26:52.80,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(18:15:42.743,+31:26:47.15,13.32",6.66",44.9398) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(18:15:40.401,+31:26:46.50,26.64",13.32",44.9398) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(18:15:38.599,+31:26:50.18,18:15:37.617,+31:27:02.75,18:15:36.634,+31:26:50.19,18:15:37.616,+31:26:37.61) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(18:15:35.951,+31:26:41.86,18:15:34.390,+31:26:58.85) # line=1 1 color=cyan text={Line}
-# vector(18:15:33.505,+31:26:49.20,13.32",44.9398) vector=1 color=red text={Vector}
-# text(18:15:32.074,+31:26:44.54) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(18:15:39.125,+31:26:04.89,18:15:37.460,+31:26:24.54) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(18:15:44.875,+31:26:15.50,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(18:15:42.663,+31:26:14.19,4.995",2.4975",9.99",4.995",44.9398) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(18:15:40.400,+31:26:13.87,13.32",6.66",19.98",9.99",44.9398) # font="helvetica 10 bold roman" text={Box Annulus}
-point(18:15:45.056,+31:25:44.53) # point=circle text={Circle Point}
-point(18:15:42.740,+31:25:43.89) # point=box color=red width=3 text={Box Point}
-point(18:15:40.633,+31:25:44.56) # point=diamond text={Diamond Point}
-point(18:15:44.665,+31:25:28.22) # point=cross color=blue text={Cross Point}
-point(18:15:42.688,+31:25:28.57) # point=x text={X Point}
-point(18:15:40.684,+31:25:27.58) # point=arrow color=magenta text={Arrow Point}
-point(18:15:42.635,+31:25:11.25) # point=boxcircle text={BoxCircle Point}
-# projection(18:15:36.419,+31:26:01.57,18:15:33.999,+31:26:23.55,6.66") text={Projection}
-panda(18:15:38.057,+31:25:44.58,359.94,629.94,3,0",9.99",2) # text={Panda}
-panda(18:15:38.004,+31:25:14.28,51.5217,89.9398,1,0",4.995",1) # panda=(51.5217 89.9398 179.94 269.94)(0" 4.995" 9.99") text={Panda 2}
-panda(18:15:38.004,+31:25:14.28,51.5217,89.9398,1,4.995",9.99",1) # panda=ignore
-panda(18:15:38.004,+31:25:14.28,89.9398,179.94,1,0",4.995",1) # panda=ignore
-panda(18:15:38.004,+31:25:14.28,89.9398,179.94,1,4.995",9.99",1) # panda=ignore
-panda(18:15:38.004,+31:25:14.28,179.94,269.94,1,0",4.995",1) # panda=ignore
-panda(18:15:38.004,+31:25:14.28,179.94,269.94,1,4.995",9.99",1) # panda=ignore
-# compass(18:15:33.244,+31:26:08.57,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(18:15:35.924,+31:25:41.92,359.94,629.94,3,4.995",2.4975",9.99",4.995",1,44.9398) # text={Epanda}
-epanda(18:15:35.845,+31:25:12.29,44.9398,89.9398,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=(44.9398 89.9398 179.94 269.94)(4.995" 2.4975" 9.99" 4.995")(44.9398) text={Epanda 2}
-epanda(18:15:35.845,+31:25:12.29,89.9398,179.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
-epanda(18:15:35.845,+31:25:12.29,179.94,269.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
-bpanda(18:15:33.660,+31:25:41.93,359.94,629.94,3,13.32",6.66",19.98",9.99",1,44.9398) # text={Bpanda}
-bpanda(18:15:33.764,+31:25:12.63,44.9398,89.9398,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=(44.9398 89.9398 179.94 269.94)(13.32" 6.66" 19.98" 9.99")(44.9398) text={Bpanda 2}
-bpanda(18:15:33.764,+31:25:12.63,89.9398,179.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
-bpanda(18:15:33.764,+31:25:12.63,179.94,269.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
-# circle3d(18:15:31.397,+31:25:30.95,3.33") text={Circle3d}
+circle(18:15:25.154,+31:24:12.69,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(18:15:23.021,+31:24:07.03,13.32",6.66",44.9398) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(18:15:20.680,+31:24:06.35,26.64",13.32",44.9398) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(18:15:18.879,+31:24:10.01,18:15:17.897,+31:24:22.57,18:15:16.915,+31:24:10.00,18:15:17.897,+31:23:57.43) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(18:15:16.233,+31:24:01.67,18:15:14.671,+31:24:18.64) # line=1 1 color=cyan text={Line}
+# vector(18:15:13.787,+31:24:08.98,13.32",44.9398) vector=1 color=red text={Vector}
+# text(18:15:12.357,+31:24:04.31) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(18:15:19.407,+31:23:24.72,18:15:17.742,+31:23:44.36) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(18:15:25.154,+31:23:35.39,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(18:15:22.943,+31:23:34.06,4.995",2.4975",9.99",4.995",44.9398) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(18:15:20.681,+31:23:33.72,13.32",6.66",19.98",9.99",44.9398) # font="helvetica 10 bold roman" text={Box Annulus}
+point(18:15:25.336,+31:23:04.43) # point=circle text={Circle Point}
+point(18:15:23.022,+31:23:03.76) # point=box color=red width=3 text={Box Point}
+point(18:15:20.915,+31:23:04.41) # point=diamond text={Diamond Point}
+point(18:15:24.946,+31:22:48.11) # point=cross color=blue text={Cross Point}
+point(18:15:22.970,+31:22:48.44) # point=x text={X Point}
+point(18:15:20.968,+31:22:47.43) # point=arrow color=magenta text={Arrow Point}
+point(18:15:22.918,+31:22:31.12) # point=boxcircle text={BoxCircle Point}
+# projection(18:15:16.702,+31:23:21.38,18:15:14.283,+31:23:43.34,6.66") text={Projection}
+panda(18:15:18.341,+31:23:04.40,359.94,629.94,3,0",9.99",2) # text={Panda}
+panda(18:15:18.290,+31:22:34.10,51.5217,89.9398,1,0",4.995",1) # panda=(51.5217 89.9398 179.94 269.94)(0" 4.995" 9.99") text={Panda 2}
+panda(18:15:18.290,+31:22:34.10,51.5217,89.9398,1,4.995",9.99",1) # panda=ignore
+panda(18:15:18.290,+31:22:34.10,89.9398,179.94,1,0",4.995",1) # panda=ignore
+panda(18:15:18.290,+31:22:34.10,89.9398,179.94,1,4.995",9.99",1) # panda=ignore
+panda(18:15:18.290,+31:22:34.10,179.94,269.94,1,0",4.995",1) # panda=ignore
+panda(18:15:18.290,+31:22:34.10,179.94,269.94,1,4.995",9.99",1) # panda=ignore
+# compass(18:15:13.529,+31:23:28.35,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(18:15:16.209,+31:23:01.73,359.94,629.94,3,4.995",2.4975",9.99",4.995",1,44.9398) # text={Epanda}
+epanda(18:15:16.132,+31:22:32.09,44.9398,89.9398,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=(44.9398 89.9398 179.94 269.94)(4.995" 2.4975" 9.99" 4.995")(44.9398) text={Epanda 2}
+epanda(18:15:16.132,+31:22:32.09,89.9398,179.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
+epanda(18:15:16.132,+31:22:32.09,179.94,269.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
+bpanda(18:15:13.946,+31:23:01.71,359.94,629.94,3,13.32",6.66",19.98",9.99",1,44.9398) # text={Bpanda}
+bpanda(18:15:14.052,+31:22:32.41,44.9398,89.9398,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=(44.9398 89.9398 179.94 269.94)(13.32" 6.66" 19.98" 9.99")(44.9398) text={Bpanda 2}
+bpanda(18:15:14.052,+31:22:32.41,89.9398,179.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
+bpanda(18:15:14.052,+31:22:32.41,179.94,269.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
+circle(18:15:45.033,+31:26:56.46,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(18:15:42.899,+31:26:50.82,13.32",6.66",44.9398) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(18:15:40.557,+31:26:50.17,26.64",13.32",44.9398) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(18:15:38.755,+31:26:53.84,18:15:37.773,+31:27:06.42,18:15:36.790,+31:26:53.85,18:15:37.773,+31:26:41.27) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(18:15:36.107,+31:26:45.53,18:15:34.546,+31:27:02.51) # line=1 1 color=cyan text={Line}
+# vector(18:15:33.661,+31:26:52.86,13.32",44.9398) vector=1 color=red text={Vector}
+# text(18:15:32.230,+31:26:48.20) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(18:15:39.281,+31:26:08.55,18:15:37.616,+31:26:28.20) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(18:15:45.031,+31:26:19.17,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(18:15:42.820,+31:26:17.85,4.995",2.4975",9.99",4.995",44.9398) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(18:15:40.556,+31:26:17.53,13.32",6.66",19.98",9.99",44.9398) # font="helvetica 10 bold roman" text={Box Annulus}
+point(18:15:45.212,+31:25:48.20) # point=circle text={Circle Point}
+point(18:15:42.896,+31:25:47.55) # point=box color=red width=3 text={Box Point}
+point(18:15:40.789,+31:25:48.23) # point=diamond text={Diamond Point}
+point(18:15:44.821,+31:25:31.88) # point=cross color=blue text={Cross Point}
+point(18:15:42.844,+31:25:32.23) # point=x text={X Point}
+point(18:15:40.841,+31:25:31.24) # point=arrow color=magenta text={Arrow Point}
+point(18:15:42.791,+31:25:14.91) # point=boxcircle text={BoxCircle Point}
+# projection(18:15:36.575,+31:26:05.23,18:15:34.155,+31:26:27.22,6.66") text={Projection}
+panda(18:15:38.213,+31:25:48.24,359.94,629.94,3,0",9.99",2) # text={Panda}
+panda(18:15:38.160,+31:25:17.94,51.5217,89.9398,1,0",4.995",1) # panda=(51.5217 89.9398 179.94 269.94)(0" 4.995" 9.99") text={Panda 2}
+panda(18:15:38.160,+31:25:17.94,51.5217,89.9398,1,4.995",9.99",1) # panda=ignore
+panda(18:15:38.160,+31:25:17.94,89.9398,179.94,1,0",4.995",1) # panda=ignore
+panda(18:15:38.160,+31:25:17.94,89.9398,179.94,1,4.995",9.99",1) # panda=ignore
+panda(18:15:38.160,+31:25:17.94,179.94,269.94,1,0",4.995",1) # panda=ignore
+panda(18:15:38.160,+31:25:17.94,179.94,269.94,1,4.995",9.99",1) # panda=ignore
+# compass(18:15:33.401,+31:26:12.23,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(18:15:36.080,+31:25:45.59,359.94,629.94,3,4.995",2.4975",9.99",4.995",1,44.9398) # text={Epanda}
+epanda(18:15:36.001,+31:25:15.95,44.9398,89.9398,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=(44.9398 89.9398 179.94 269.94)(4.995" 2.4975" 9.99" 4.995")(44.9398) text={Epanda 2}
+epanda(18:15:36.001,+31:25:15.95,89.9398,179.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
+epanda(18:15:36.001,+31:25:15.95,179.94,269.94,1,4.995",2.4975",9.99",4.995",1,44.9398) # epanda=ignore
+bpanda(18:15:33.816,+31:25:45.59,359.94,629.94,3,13.32",6.66",19.98",9.99",1,44.9398) # text={Bpanda}
+bpanda(18:15:33.920,+31:25:16.29,44.9398,89.9398,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=(44.9398 89.9398 179.94 269.94)(13.32" 6.66" 19.98" 9.99")(44.9398) text={Bpanda 2}
+bpanda(18:15:33.920,+31:25:16.29,89.9398,179.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
+bpanda(18:15:33.920,+31:25:16.29,179.94,269.94,1,13.32",6.66",19.98",9.99",1,44.9398) # bpanda=ignore
diff --git a/tests/ds9.mosaic.icrs.reg b/tests/ds9.mosaic.icrs.reg
index eb8d1c0..b778f20 100644
--- a/tests/ds9.mosaic.icrs.reg
+++ b/tests/ds9.mosaic.icrs.reg
@@ -2,75 +2,73 @@
# Filename: mosaicimage.fits[IM1]
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
icrs
-circle(273.85242,31.402877,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(273.84354,31.401303,13.32",6.66",44.939786) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(273.83378,31.401116,26.64",13.32",44.939786) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(273.82628,31.402132,273.82218,31.405622,273.8181,31.402129,273.82219,31.398638) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(273.81525,31.399815,273.80875,31.40453) # line=1 1 color=cyan text={Line}
-# vector(273.80506,31.401845,13.32",44.939786) vector=1 color=red text={Vector}
-# text(273.7991,31.400547) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(273.82848,31.389552,273.82154,31.395007) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(273.85242,31.392517,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(273.84321,31.392146,4.995",2.4975",9.99",4.995",44.939786) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(273.83379,31.392051,13.32",6.66",19.98",9.99",44.939786) # font="helvetica 10 bold roman" text={Box Annulus}
-point(273.85318,31.383915) # point=circle text={Circle Point}
-point(273.84354,31.383728) # point=box color=red width=3 text={Box Point}
-point(273.83476,31.383912) # point=diamond text={Diamond Point}
-point(273.85156,31.379382) # point=cross color=blue text={Cross Point}
-point(273.84333,31.379473) # point=x text={X Point}
-point(273.83498,31.379194) # point=arrow color=magenta text={Arrow Point}
-point(273.84311,31.374663) # point=boxcircle text={BoxCircle Point}
-# projection(273.81721,31.388623,273.80713,31.394724,6.66") text={Projection}
-panda(273.82404,31.383908,359.93979,629.93979,3,0",9.99",2) # text={Panda}
-panda(273.82382,31.375491,51.521686,89.939786,1,0",4.995",1) # panda=(51.521686 89.939786 179.93979 269.93979)(0" 4.995" 9.99") text={Panda 2}
-panda(273.82382,31.375491,51.521686,89.939786,1,4.995",9.99",1) # panda=ignore
-panda(273.82382,31.375491,89.939786,179.93979,1,0",4.995",1) # panda=ignore
-panda(273.82382,31.375491,89.939786,179.93979,1,4.995",9.99",1) # panda=ignore
-panda(273.82382,31.375491,179.93979,269.93979,1,0",4.995",1) # panda=ignore
-panda(273.82382,31.375491,179.93979,269.93979,1,4.995",9.99",1) # panda=ignore
-# compass(273.80399,31.39056,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(273.81515,31.383165,359.93979,629.93979,3,4.995",2.4975",9.99",4.995",1,44.939786) # text={Epanda}
-epanda(273.81483,31.374932,44.939786,89.939786,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=(44.939786 89.939786 179.93979 269.93979)(4.995" 2.4975" 9.99" 4.995")(44.939786) text={Epanda 2}
-epanda(273.81483,31.374932,89.939786,179.93979,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=ignore
-epanda(273.81483,31.374932,179.93979,269.93979,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=ignore
-bpanda(273.80573,31.383161,359.93979,629.93979,3,13.32",6.66",19.98",9.99",1,44.939786) # text={Bpanda}
-bpanda(273.80617,31.375021,44.939786,89.939786,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=(44.939786 89.939786 179.93979 269.93979)(13.32" 6.66" 19.98" 9.99")(44.939786) text={Bpanda 2}
-bpanda(273.80617,31.375021,89.939786,179.93979,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=ignore
-bpanda(273.80617,31.375021,179.93979,269.93979,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=ignore
-# circle3d(273.7963,31.380103,3.33") text={Circle3d}
-circle(273.93699,31.448,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(273.9281,31.446432,13.32",6.66",44.939786) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(273.91834,31.446251,26.64",13.32",44.939786) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(273.91083,31.447271,273.90674,31.450765,273.90264,31.447274,273.90673,31.44378) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(273.8998,31.444962,273.89329,31.449681) # line=1 1 color=cyan text={Line}
-# vector(273.8896,31.446999,13.32",44.939786) vector=1 color=red text={Vector}
-# text(273.88364,31.445705) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(273.91302,31.434691,273.90608,31.44015) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(273.93698,31.43764,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(273.92776,31.437275,4.995",2.4975",9.99",4.995",44.939786) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(273.91833,31.437186,13.32",6.66",19.98",9.99",44.939786) # font="helvetica 10 bold roman" text={Box Annulus}
-point(273.93773,31.429037) # point=circle text={Circle Point}
-point(273.92808,31.428857) # point=box color=red width=3 text={Box Point}
-point(273.9193,31.429046) # point=diamond text={Diamond Point}
-point(273.9361,31.424505) # point=cross color=blue text={Cross Point}
-point(273.92786,31.424602) # point=x text={X Point}
-point(273.91952,31.424328) # point=arrow color=magenta text={Arrow Point}
-point(273.92764,31.419792) # point=boxcircle text={BoxCircle Point}
-# projection(273.90174,31.433769,273.89166,31.439876,6.66") text={Projection}
-panda(273.90857,31.42905,359.93979,629.93979,3,0",9.99",2) # text={Panda}
-panda(273.90835,31.420632,51.521686,89.939786,1,0",4.995",1) # panda=(51.521686 89.939786 179.93979 269.93979)(0" 4.995" 9.99") text={Panda 2}
-panda(273.90835,31.420632,51.521686,89.939786,1,4.995",9.99",1) # panda=ignore
-panda(273.90835,31.420632,89.939786,179.93979,1,0",4.995",1) # panda=ignore
-panda(273.90835,31.420632,89.939786,179.93979,1,4.995",9.99",1) # panda=ignore
-panda(273.90835,31.420632,179.93979,269.93979,1,0",4.995",1) # panda=ignore
-panda(273.90835,31.420632,179.93979,269.93979,1,4.995",9.99",1) # panda=ignore
-# compass(273.88852,31.435714,13.32") compass=physical {N} {E} 1 1 text={Compass}
-epanda(273.89968,31.428312,359.93979,629.93979,3,4.995",2.4975",9.99",4.995",1,44.939786) # text={Epanda}
-epanda(273.89935,31.42008,44.939786,89.939786,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=(44.939786 89.939786 179.93979 269.93979)(4.995" 2.4975" 9.99" 4.995")(44.939786) text={Epanda 2}
-epanda(273.89935,31.42008,89.939786,179.93979,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=ignore
-epanda(273.89935,31.42008,179.93979,269.93979,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=ignore
-bpanda(273.89025,31.428314,359.93979,629.93979,3,13.32",6.66",19.98",9.99",1,44.939786) # text={Bpanda}
-bpanda(273.89068,31.420174,44.939786,89.939786,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=(44.939786 89.939786 179.93979 269.93979)(13.32" 6.66" 19.98" 9.99")(44.939786) text={Bpanda 2}
-bpanda(273.89068,31.420174,89.939786,179.93979,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=ignore
-bpanda(273.89068,31.420174,179.93979,269.93979,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=ignore
-# circle3d(273.88082,31.425263,3.33") text={Circle3d}
+circle(273.85481,31.403525,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(273.84592,31.401951,13.32",6.66",44.939786) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(273.83617,31.401764,26.64",13.32",44.939786) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(273.82866,31.40278,273.82457,31.406271,273.82048,31.402777,273.82457,31.399286) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(273.81764,31.400463,273.81113,31.405178) # line=1 1 color=cyan text={Line}
+# vector(273.80745,31.402494,13.32",44.939786) vector=1 color=red text={Vector}
+# text(273.80149,31.401196) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(273.83086,31.3902,273.82392,31.395656) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(273.85481,31.393165,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(273.8456,31.392794,4.995",2.4975",9.99",4.995",44.939786) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(273.83617,31.392699,13.32",6.66",19.98",9.99",44.939786) # font="helvetica 10 bold roman" text={Box Annulus}
+point(273.85557,31.384563) # point=circle text={Circle Point}
+point(273.84592,31.384376) # point=box color=red width=3 text={Box Point}
+point(273.83715,31.38456) # point=diamond text={Diamond Point}
+point(273.85394,31.38003) # point=cross color=blue text={Cross Point}
+point(273.84571,31.380121) # point=x text={X Point}
+point(273.83737,31.379842) # point=arrow color=magenta text={Arrow Point}
+point(273.84549,31.375311) # point=boxcircle text={BoxCircle Point}
+# projection(273.81959,31.389272,273.80951,31.395372,6.66") text={Projection}
+panda(273.82642,31.384557,359.93979,629.93979,3,0",9.99",2) # text={Panda}
+panda(273.82621,31.376139,51.521686,89.939786,1,0",4.995",1) # panda=(51.521686 89.939786 179.93979 269.93979)(0" 4.995" 9.99") text={Panda 2}
+panda(273.82621,31.376139,51.521686,89.939786,1,4.995",9.99",1) # panda=ignore
+panda(273.82621,31.376139,89.939786,179.93979,1,0",4.995",1) # panda=ignore
+panda(273.82621,31.376139,89.939786,179.93979,1,4.995",9.99",1) # panda=ignore
+panda(273.82621,31.376139,179.93979,269.93979,1,0",4.995",1) # panda=ignore
+panda(273.82621,31.376139,179.93979,269.93979,1,4.995",9.99",1) # panda=ignore
+# compass(273.80637,31.391209,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(273.81754,31.383813,359.93979,629.93979,3,4.995",2.4975",9.99",4.995",1,44.939786) # text={Epanda}
+epanda(273.81722,31.375581,44.939786,89.939786,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=(44.939786 89.939786 179.93979 269.93979)(4.995" 2.4975" 9.99" 4.995")(44.939786) text={Epanda 2}
+epanda(273.81722,31.375581,89.939786,179.93979,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=ignore
+epanda(273.81722,31.375581,179.93979,269.93979,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=ignore
+bpanda(273.80811,31.383809,359.93979,629.93979,3,13.32",6.66",19.98",9.99",1,44.939786) # text={Bpanda}
+bpanda(273.80855,31.37567,44.939786,89.939786,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=(44.939786 89.939786 179.93979 269.93979)(13.32" 6.66" 19.98" 9.99")(44.939786) text={Bpanda 2}
+bpanda(273.80855,31.37567,89.939786,179.93979,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=ignore
+bpanda(273.80855,31.37567,179.93979,269.93979,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=ignore
+circle(273.93764,31.449017,6.66") # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(273.92875,31.447449,13.32",6.66",44.939786) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(273.91899,31.447268,26.64",13.32",44.939786) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(273.91148,31.448289,273.90739,31.451782,273.90329,31.448291,273.90739,31.444798) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(273.90045,31.445979,273.89394,31.450698) # line=1 1 color=cyan text={Line}
+# vector(273.89026,31.448016,13.32",44.939786) vector=1 color=red text={Vector}
+# text(273.88429,31.446722) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(273.91367,31.435708,273.90673,31.441168) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(273.93763,31.438657,3.33",6.66",9.99") # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(273.92842,31.438292,4.995",2.4975",9.99",4.995",44.939786) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(273.91898,31.438203,13.32",6.66",19.98",9.99",44.939786) # font="helvetica 10 bold roman" text={Box Annulus}
+point(273.93838,31.430054) # point=circle text={Circle Point}
+point(273.92874,31.429874) # point=box color=red width=3 text={Box Point}
+point(273.91995,31.430063) # point=diamond text={Diamond Point}
+point(273.93675,31.425523) # point=cross color=blue text={Cross Point}
+point(273.92852,31.425619) # point=x text={X Point}
+point(273.92017,31.425345) # point=arrow color=magenta text={Arrow Point}
+point(273.9283,31.420809) # point=boxcircle text={BoxCircle Point}
+# projection(273.90239,31.434786,273.89231,31.440894,6.66") text={Projection}
+panda(273.90922,31.430067,359.93979,629.93979,3,0",9.99",2) # text={Panda}
+panda(273.909,31.421649,51.521686,89.939786,1,0",4.995",1) # panda=(51.521686 89.939786 179.93979 269.93979)(0" 4.995" 9.99") text={Panda 2}
+panda(273.909,31.421649,51.521686,89.939786,1,4.995",9.99",1) # panda=ignore
+panda(273.909,31.421649,89.939786,179.93979,1,0",4.995",1) # panda=ignore
+panda(273.909,31.421649,89.939786,179.93979,1,4.995",9.99",1) # panda=ignore
+panda(273.909,31.421649,179.93979,269.93979,1,0",4.995",1) # panda=ignore
+panda(273.909,31.421649,179.93979,269.93979,1,4.995",9.99",1) # panda=ignore
+# compass(273.88917,31.436732,13.32") compass=physical {N} {E} 1 1 text={Compass}
+epanda(273.90033,31.429329,359.93979,629.93979,3,4.995",2.4975",9.99",4.995",1,44.939786) # text={Epanda}
+epanda(273.9,31.421097,44.939786,89.939786,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=(44.939786 89.939786 179.93979 269.93979)(4.995" 2.4975" 9.99" 4.995")(44.939786) text={Epanda 2}
+epanda(273.9,31.421097,89.939786,179.93979,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=ignore
+epanda(273.9,31.421097,179.93979,269.93979,1,4.995",2.4975",9.99",4.995",1,44.939786) # epanda=ignore
+bpanda(273.8909,31.429331,359.93979,629.93979,3,13.32",6.66",19.98",9.99",1,44.939786) # text={Bpanda}
+bpanda(273.89133,31.421191,44.939786,89.939786,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=(44.939786 89.939786 179.93979 269.93979)(13.32" 6.66" 19.98" 9.99")(44.939786) text={Bpanda 2}
+bpanda(273.89133,31.421191,89.939786,179.93979,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=ignore
+bpanda(273.89133,31.421191,179.93979,269.93979,1,13.32",6.66",19.98",9.99",1,44.939786) # bpanda=ignore
diff --git a/tests/ds9.mosaic.image.reg b/tests/ds9.mosaic.image.reg
index f6e1053..1ffe35d 100644
--- a/tests/ds9.mosaic.image.reg
+++ b/tests/ds9.mosaic.image.reg
@@ -3,146 +3,142 @@
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
image
# tile 1
-circle(119,1956,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+circle(97,1963,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 1
--ellipse(201,1939,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-ellipse(179,1946,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 1
--box(291,1937,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+-box(269,1944,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 1
-polygon(360.24723,1948,398,1985.7528,435.75277,1948,398,1910.2472) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+polygon(338.24723,1955,376,1992.7528,413.75277,1955,376,1917.2472) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 1
--line(462,1923,522,1974) # line=1 1 color=cyan text={Line}
+-line(440,1930,500,1981) # line=1 1 color=cyan text={Line}
# tile 1
-# vector(556,1945,40,45) vector=1 color=red text={Vector}
+# vector(534,1952,40,45) vector=1 color=red text={Vector}
# tile 1
-# text(611,1931) color=magenta font="helvetica 14 bold roman" text={Region}
+# text(589,1938) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 1
-# ruler(340,1812,404,1871) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# ruler(318,1819,382,1878) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 1
-annulus(119,1844,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+annulus(97,1851,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 1
-ellipse(204,1840,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+ellipse(182,1847,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 1
-box(291,1839,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
+box(269,1846,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 1
-point(112,1751) # point=circle text={Circle Point}
+point(90,1758) # point=circle text={Circle Point}
# tile 1
-point(201,1749) # point=box color=red width=3 text={Box Point}
+point(179,1756) # point=box color=red width=3 text={Box Point}
# tile 1
-point(282,1751) # point=diamond text={Diamond Point}
+point(260,1758) # point=diamond text={Diamond Point}
# tile 1
-point(127,1702) # point=cross color=blue text={Cross Point}
+point(105,1709) # point=cross color=blue text={Cross Point}
# tile 1
-point(203,1703) # point=x text={X Point}
+point(181,1710) # point=x text={X Point}
# tile 1
-point(280,1700) # point=arrow color=magenta text={Arrow Point}
+point(258,1707) # point=arrow color=magenta text={Arrow Point}
# tile 1
-point(205,1651) # point=boxcircle text={BoxCircle Point}
+point(183,1658) # point=boxcircle text={BoxCircle Point}
# tile 1
-# projection(444,1802,537,1868,20) text={Projection}
+# projection(422,1809,515,1875,20) text={Projection}
# tile 1
-panda(381,1751,0,270,3,0,30,2) # text={Panda}
+panda(359,1758,0,270,3,0,30,2) # text={Panda}
# tile 1
-panda(383,1660,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
+panda(361,1667,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
# tile 1
-panda(383,1660,51.5819,90,1,15,30,1) # panda=ignore
+panda(361,1667,51.5819,90,1,15,30,1) # panda=ignore
# tile 1
-panda(383,1660,90,180,1,0,15,1) # panda=ignore
+panda(361,1667,90,180,1,0,15,1) # panda=ignore
# tile 1
-panda(383,1660,90,180,1,15,30,1) # panda=ignore
+panda(361,1667,90,180,1,15,30,1) # panda=ignore
# tile 1
-panda(383,1660,180,270,1,0,15,1) # panda=ignore
+panda(361,1667,180,270,1,0,15,1) # panda=ignore
# tile 1
-panda(383,1660,180,270,1,15,30,1) # panda=ignore
+panda(361,1667,180,270,1,15,30,1) # panda=ignore
# tile 1
-# compass(566,1823,40) compass=physical {N} {E} 1 1 text={Compass}
+# compass(544,1830,40) compass=physical {N} {E} 1 1 text={Compass}
# tile 1
-epanda(463,1743,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
+epanda(441,1750,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
# tile 1
-epanda(466,1654,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
+epanda(444,1661,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
# tile 1
-epanda(466,1654,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(444,1661,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 1
-epanda(466,1654,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(444,1661,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 1
-bpanda(550,1743,0,270,3,40,20,60,30,1,45) # text={Bpanda}
+bpanda(528,1750,0,270,3,40,20,60,30,1,45) # text={Bpanda}
# tile 1
-bpanda(546,1655,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
+bpanda(524,1662,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
# tile 1
-bpanda(546,1655,90,180,1,40,20,60,30,1,45) # bpanda=ignore
+bpanda(524,1662,90,180,1,40,20,60,30,1,45) # bpanda=ignore
# tile 1
-bpanda(546,1655,180,270,1,40,20,60,30,1,45) # bpanda=ignore
-# tile 1
-# circle3d(637,1710,10) text={Circle3d}
-# tile 3
-circle(1471,352,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+bpanda(524,1662,180,270,1,40,20,60,30,1,45) # bpanda=ignore
# tile 3
--ellipse(1553,335,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+circle(1465,363,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 3
--box(1643,333,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+-ellipse(1547,346,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 3
-polygon(1712.2472,344,1750,381.75275,1787.7528,344,1750,306.24723) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-box(1637,344,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 3
--line(1814,319,1874,370) # line=1 1 color=cyan text={Line}
+polygon(1706.2472,355,1744,392.75275,1781.7528,355,1744,317.24723) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 3
-# vector(1908,341,40,45) vector=1 color=red text={Vector}
+-line(1808,330,1868,381) # line=1 1 color=cyan text={Line}
# tile 3
-# text(1963,327) color=magenta font="helvetica 14 bold roman" text={Region}
+# vector(1902,352,40,45) vector=1 color=red text={Vector}
# tile 3
-# ruler(1692,208,1756,267) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# text(1957,338) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 3
-annulus(1471,240,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+# ruler(1686,219,1750,278) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 3
-ellipse(1556,236,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+annulus(1465,251,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 3
-box(1643,235,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
+ellipse(1550,247,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 3
-point(1464,147) # point=circle text={Circle Point}
+box(1637,246,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 3
-point(1553,145) # point=box color=red width=3 text={Box Point}
+point(1458,158) # point=circle text={Circle Point}
# tile 3
-point(1634,147) # point=diamond text={Diamond Point}
+point(1547,156) # point=box color=red width=3 text={Box Point}
# tile 3
-point(1479,98) # point=cross color=blue text={Cross Point}
+point(1628,158) # point=diamond text={Diamond Point}
# tile 3
-point(1555,99) # point=x text={X Point}
+point(1473,109) # point=cross color=blue text={Cross Point}
# tile 3
-point(1632,96) # point=arrow color=magenta text={Arrow Point}
+point(1549,110) # point=x text={X Point}
# tile 3
-point(1557,47) # point=boxcircle text={BoxCircle Point}
+point(1626,107) # point=arrow color=magenta text={Arrow Point}
# tile 3
-# projection(1796,198,1889,264,20) text={Projection}
+point(1551,58) # point=boxcircle text={BoxCircle Point}
# tile 3
-panda(1733,147,0,270,3,0,30,2) # text={Panda}
+# projection(1790,209,1883,275,20) text={Projection}
# tile 3
-panda(1735,56,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
+panda(1727,158,0,270,3,0,30,2) # text={Panda}
# tile 3
-panda(1735,56,51.5819,90,1,15,30,1) # panda=ignore
+panda(1729,67,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
# tile 3
-panda(1735,56,90,180,1,0,15,1) # panda=ignore
+panda(1729,67,51.5819,90,1,15,30,1) # panda=ignore
# tile 3
-panda(1735,56,90,180,1,15,30,1) # panda=ignore
+panda(1729,67,90,180,1,0,15,1) # panda=ignore
# tile 3
-panda(1735,56,180,270,1,0,15,1) # panda=ignore
+panda(1729,67,90,180,1,15,30,1) # panda=ignore
# tile 3
-panda(1735,56,180,270,1,15,30,1) # panda=ignore
+panda(1729,67,180,270,1,0,15,1) # panda=ignore
# tile 3
-# compass(1918,219,40) compass=physical {N} {E} 1 1 text={Compass}
+panda(1729,67,180,270,1,15,30,1) # panda=ignore
# tile 3
-epanda(1815,139,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
+# compass(1912,230,40) compass=physical {N} {E} 1 1 text={Compass}
# tile 3
-epanda(1818,50,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
+epanda(1809,150,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
# tile 3
-epanda(1818,50,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(1812,61,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
# tile 3
-epanda(1818,50,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(1812,61,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 3
-bpanda(1902,139,0,270,3,40,20,60,30,1,45) # text={Bpanda}
+epanda(1812,61,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 3
-bpanda(1898,51,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
+bpanda(1896,150,0,270,3,40,20,60,30,1,45) # text={Bpanda}
# tile 3
-bpanda(1898,51,90,180,1,40,20,60,30,1,45) # bpanda=ignore
+bpanda(1892,62,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
# tile 3
-bpanda(1898,51,180,270,1,40,20,60,30,1,45) # bpanda=ignore
+bpanda(1892,62,90,180,1,40,20,60,30,1,45) # bpanda=ignore
# tile 3
-# circle3d(1989,106,10) text={Circle3d}
+bpanda(1892,62,180,270,1,40,20,60,30,1,45) # bpanda=ignore
diff --git a/tests/ds9.mosaic.physical.reg b/tests/ds9.mosaic.physical.reg
index 064498f..58f61fe 100644
--- a/tests/ds9.mosaic.physical.reg
+++ b/tests/ds9.mosaic.physical.reg
@@ -3,146 +3,142 @@
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
physical
# tile 1
-circle(88,1956,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+circle(66,1963,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 1
--ellipse(170,1939,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-ellipse(148,1946,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 1
--box(260,1937,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+-box(238,1944,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 1
-polygon(329.24723,1948,367,1985.7528,404.75277,1948,367,1910.2472) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+polygon(307.24723,1955,345,1992.7528,382.75277,1955,345,1917.2472) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 1
--line(431,1923,491,1974) # line=1 1 color=cyan text={Line}
+-line(409,1930,469,1981) # line=1 1 color=cyan text={Line}
# tile 1
-# vector(525,1945,40,45) vector=1 color=red text={Vector}
+# vector(503,1952,40,45) vector=1 color=red text={Vector}
# tile 1
-# text(580,1931) color=magenta font="helvetica 14 bold roman" text={Region}
+# text(558,1938) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 1
-# ruler(309,1812,373,1871) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# ruler(287,1819,351,1878) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 1
-annulus(88,1844,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+annulus(66,1851,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 1
-ellipse(173,1840,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+ellipse(151,1847,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 1
-box(260,1839,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
+box(238,1846,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 1
-point(81,1751) # point=circle text={Circle Point}
+point(59,1758) # point=circle text={Circle Point}
# tile 1
-point(170,1749) # point=box color=red width=3 text={Box Point}
+point(148,1756) # point=box color=red width=3 text={Box Point}
# tile 1
-point(251,1751) # point=diamond text={Diamond Point}
+point(229,1758) # point=diamond text={Diamond Point}
# tile 1
-point(96,1702) # point=cross color=blue text={Cross Point}
+point(74,1709) # point=cross color=blue text={Cross Point}
# tile 1
-point(172,1703) # point=x text={X Point}
+point(150,1710) # point=x text={X Point}
# tile 1
-point(249,1700) # point=arrow color=magenta text={Arrow Point}
+point(227,1707) # point=arrow color=magenta text={Arrow Point}
# tile 1
-point(174,1651) # point=boxcircle text={BoxCircle Point}
+point(152,1658) # point=boxcircle text={BoxCircle Point}
# tile 1
-# projection(413,1802,506,1868,20) text={Projection}
+# projection(391,1809,484,1875,20) text={Projection}
# tile 1
-panda(350,1751,0,270,3,0,30,2) # text={Panda}
+panda(328,1758,0,270,3,0,30,2) # text={Panda}
# tile 1
-panda(352,1660,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
+panda(330,1667,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
# tile 1
-panda(352,1660,51.5819,90,1,15,30,1) # panda=ignore
+panda(330,1667,51.5819,90,1,15,30,1) # panda=ignore
# tile 1
-panda(352,1660,90,180,1,0,15,1) # panda=ignore
+panda(330,1667,90,180,1,0,15,1) # panda=ignore
# tile 1
-panda(352,1660,90,180,1,15,30,1) # panda=ignore
+panda(330,1667,90,180,1,15,30,1) # panda=ignore
# tile 1
-panda(352,1660,180,270,1,0,15,1) # panda=ignore
+panda(330,1667,180,270,1,0,15,1) # panda=ignore
# tile 1
-panda(352,1660,180,270,1,15,30,1) # panda=ignore
+panda(330,1667,180,270,1,15,30,1) # panda=ignore
# tile 1
-# compass(535,1823,40) compass=physical {N} {E} 1 1 text={Compass}
+# compass(513,1830,40) compass=physical {N} {E} 1 1 text={Compass}
# tile 1
-epanda(432,1743,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
+epanda(410,1750,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
# tile 1
-epanda(435,1654,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
+epanda(413,1661,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
# tile 1
-epanda(435,1654,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(413,1661,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 1
-epanda(435,1654,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(413,1661,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 1
-bpanda(519,1743,0,270,3,40,20,60,30,1,45) # text={Bpanda}
+bpanda(497,1750,0,270,3,40,20,60,30,1,45) # text={Bpanda}
# tile 1
-bpanda(515,1655,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
+bpanda(493,1662,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
# tile 1
-bpanda(515,1655,90,180,1,40,20,60,30,1,45) # bpanda=ignore
+bpanda(493,1662,90,180,1,40,20,60,30,1,45) # bpanda=ignore
# tile 1
-bpanda(515,1655,180,270,1,40,20,60,30,1,45) # bpanda=ignore
-# tile 1
-# circle3d(606,1710,10) text={Circle3d}
-# tile 3
-circle(1470,336,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+bpanda(493,1662,180,270,1,40,20,60,30,1,45) # bpanda=ignore
# tile 3
--ellipse(1552,319,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+circle(1464,347,20) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
# tile 3
--box(1642,317,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+-ellipse(1546,330,40,20,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
# tile 3
-polygon(1711.2472,328,1749,365.75275,1786.7528,328,1749,290.24723) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-box(1636,328,80,40,45) # color=yellow font="helvetica 10 bold roman" text={Box}
# tile 3
--line(1813,303,1873,354) # line=1 1 color=cyan text={Line}
+polygon(1705.2472,339,1743,376.75275,1780.7528,339,1743,301.24723) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
# tile 3
-# vector(1907,325,40,45) vector=1 color=red text={Vector}
+-line(1807,314,1867,365) # line=1 1 color=cyan text={Line}
# tile 3
-# text(1962,311) color=magenta font="helvetica 14 bold roman" text={Region}
+# vector(1901,336,40,45) vector=1 color=red text={Vector}
# tile 3
-# ruler(1691,192,1755,251) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+# text(1956,322) color=magenta font="helvetica 14 bold roman" text={Region}
# tile 3
-annulus(1470,224,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+# ruler(1685,203,1749,262) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
# tile 3
-ellipse(1555,220,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+annulus(1464,235,10,20,30) # color=magenta font="helvetica 10 bold roman" text={Annulus}
# tile 3
-box(1642,219,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
+ellipse(1549,231,15,7.5,30,15,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
# tile 3
-point(1463,131) # point=circle text={Circle Point}
+box(1636,230,40,20,60,30,45) # font="helvetica 10 bold roman" text={Box Annulus}
# tile 3
-point(1552,129) # point=box color=red width=3 text={Box Point}
+point(1457,142) # point=circle text={Circle Point}
# tile 3
-point(1633,131) # point=diamond text={Diamond Point}
+point(1546,140) # point=box color=red width=3 text={Box Point}
# tile 3
-point(1478,82) # point=cross color=blue text={Cross Point}
+point(1627,142) # point=diamond text={Diamond Point}
# tile 3
-point(1554,83) # point=x text={X Point}
+point(1472,93) # point=cross color=blue text={Cross Point}
# tile 3
-point(1631,80) # point=arrow color=magenta text={Arrow Point}
+point(1548,94) # point=x text={X Point}
# tile 3
-point(1556,31) # point=boxcircle text={BoxCircle Point}
+point(1625,91) # point=arrow color=magenta text={Arrow Point}
# tile 3
-# projection(1795,182,1888,248,20) text={Projection}
+point(1550,42) # point=boxcircle text={BoxCircle Point}
# tile 3
-panda(1732,131,0,270,3,0,30,2) # text={Panda}
+# projection(1789,193,1882,259,20) text={Projection}
# tile 3
-panda(1734,40,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
+panda(1726,142,0,270,3,0,30,2) # text={Panda}
# tile 3
-panda(1734,40,51.5819,90,1,15,30,1) # panda=ignore
+panda(1728,51,51.5819,90,1,0,15,1) # panda=(51.5819 90 180 270)(0 15 30) text={Panda 2}
# tile 3
-panda(1734,40,90,180,1,0,15,1) # panda=ignore
+panda(1728,51,51.5819,90,1,15,30,1) # panda=ignore
# tile 3
-panda(1734,40,90,180,1,15,30,1) # panda=ignore
+panda(1728,51,90,180,1,0,15,1) # panda=ignore
# tile 3
-panda(1734,40,180,270,1,0,15,1) # panda=ignore
+panda(1728,51,90,180,1,15,30,1) # panda=ignore
# tile 3
-panda(1734,40,180,270,1,15,30,1) # panda=ignore
+panda(1728,51,180,270,1,0,15,1) # panda=ignore
# tile 3
-# compass(1917,203,40) compass=physical {N} {E} 1 1 text={Compass}
+panda(1728,51,180,270,1,15,30,1) # panda=ignore
# tile 3
-epanda(1814,123,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
+# compass(1911,214,40) compass=physical {N} {E} 1 1 text={Compass}
# tile 3
-epanda(1817,34,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
+epanda(1808,134,0,270,3,15,7.5,30,15,1,45) # text={Epanda}
# tile 3
-epanda(1817,34,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(1811,45,45,90,1,15,7.5,30,15,1,45) # epanda=(45 90 180 270)(15 7.5 30 15)(45) text={Epanda 2}
# tile 3
-epanda(1817,34,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
+epanda(1811,45,90,180,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 3
-bpanda(1901,123,0,270,3,40,20,60,30,1,45) # text={Bpanda}
+epanda(1811,45,180,270,1,15,7.5,30,15,1,45) # epanda=ignore
# tile 3
-bpanda(1897,35,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
+bpanda(1895,134,0,270,3,40,20,60,30,1,45) # text={Bpanda}
# tile 3
-bpanda(1897,35,90,180,1,40,20,60,30,1,45) # bpanda=ignore
+bpanda(1891,46,45,90,1,40,20,60,30,1,45) # bpanda=(45 90 180 270)(40 20 60 30)(45) text={Bpanda 2}
# tile 3
-bpanda(1897,35,180,270,1,40,20,60,30,1,45) # bpanda=ignore
+bpanda(1891,46,90,180,1,40,20,60,30,1,45) # bpanda=ignore
# tile 3
-# circle3d(1988,90,10) text={Circle3d}
+bpanda(1891,46,180,270,1,40,20,60,30,1,45) # bpanda=ignore
diff --git a/tests/ds9.physical.reg b/tests/ds9.physical.reg
index bacd2ed..0c9e60a 100644
--- a/tests/ds9.physical.reg
+++ b/tests/ds9.physical.reg
@@ -2,39 +2,38 @@
# Filename: img16.fits
global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1
physical
-circle(325,1075,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
--ellipse(489,1041,80,40,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
--box(669,1037,160,80,45) # color=yellow font="helvetica 10 bold roman" text={Box}
-polygon(807.49446,1059,883,1134.5055,958.50554,1059,883,983.49446) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
--line(1011,1009,1131,1111) # line=1 1 color=cyan text={Line}
-# vector(1199,1053,80,45) vector=1 color=red text={Vector}
-# text(1309,1025) color=magenta font="helvetica 14 bold roman" text={Region}
-# ruler(767,787,895,905) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
-annulus(325,851,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
-ellipse(495,843,30,15,60,30,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
-box(669,841,80,40,120,60,45) # font="helvetica 10 bold roman" text={Box Annulus}
-point(311,665) # point=circle text={Circle Point}
-point(489,661) # point=box color=red width=3 text={Box Point}
-point(651,665) # point=diamond text={Diamond Point}
-point(341,567) # point=cross color=blue text={Cross Point}
-point(493,569) # point=x text={X Point}
-point(647,563) # point=arrow color=magenta text={Arrow Point}
-point(497,465) # point=boxcircle text={BoxCircle Point}
-# projection(975,767,1161,899,40) text={Projection}
-panda(849,665,0,270,3,0,60,2) # text={Panda}
-panda(853,483,51.5819,90,1,0,30,1) # panda=(51.5819 90 180 270)(0 30 60) text={Panda 2}
-panda(853,483,51.5819,90,1,30,60,1) # panda=ignore
-panda(853,483,90,180,1,0,30,1) # panda=ignore
-panda(853,483,90,180,1,30,60,1) # panda=ignore
-panda(853,483,180,270,1,0,30,1) # panda=ignore
-panda(853,483,180,270,1,30,60,1) # panda=ignore
-# compass(1219,809,80) compass=physical {N} {E} 1 1 text={Compass}
-epanda(1013,649,0,270,3,30,15,60,30,1,45) # text={Epanda}
-epanda(1019,471,45,90,1,30,15,60,30,1,45) # epanda=(45 90 180 270)(30 15 60 30)(45) text={Epanda 2}
-epanda(1019,471,90,180,1,30,15,60,30,1,45) # epanda=ignore
-epanda(1019,471,180,270,1,30,15,60,30,1,45) # epanda=ignore
-bpanda(1187,649,0,270,3,80,40,120,60,1,45) # text={Bpanda}
-bpanda(1179,473,45,90,1,80,40,120,60,1,45) # bpanda=(45 90 180 270)(80 40 120 60)(45) text={Bpanda 2}
-bpanda(1179,473,90,180,1,80,40,120,60,1,45) # bpanda=ignore
-bpanda(1179,473,180,270,1,80,40,120,60,1,45) # bpanda=ignore
-# circle3d(1361,583,20) text={Circle3d}
+circle(331,1091,40) # color=pink width=3 font="times 10 normal roman" text={Circle} tag={foo} tag={foo bar} This is a Comment
+-ellipse(495,1057,80,40,45) # color=#0ff font="helvetica 10 normal italic" text={Ellipse} background
+-box(675,1053,160,80,45) # color=yellow font="helvetica 10 bold roman" text={Box}
+polygon(813.49446,1075,889,1150.5055,964.50554,1075,889,999.49446) # font="courier 10 normal roman" text={Polygon} edit=0 rotate=0
+-line(1017,1025,1137,1127) # line=1 1 color=cyan text={Line}
+# vector(1205,1069,80,45) vector=1 color=red text={Vector}
+# text(1315,1041) color=magenta font="helvetica 14 bold roman" text={Region}
+# ruler(773,803,901,921) ruler=physical physical color=white font="helvetica 12 normal roman" text={Ruler}
+annulus(331,867,20,40,60) # color=magenta font="helvetica 10 bold roman" text={Annulus}
+ellipse(501,859,30,15,60,30,45) # color=red width=3 font="helvetica 10 bold roman" text={Ellipse Annulus}
+box(675,857,80,40,120,60,45) # font="helvetica 10 bold roman" text={Box Annulus}
+point(317,681) # point=circle text={Circle Point}
+point(495,677) # point=box color=red width=3 text={Box Point}
+point(657,681) # point=diamond text={Diamond Point}
+point(347,583) # point=cross color=blue text={Cross Point}
+point(499,585) # point=x text={X Point}
+point(653,579) # point=arrow color=magenta text={Arrow Point}
+point(503,481) # point=boxcircle text={BoxCircle Point}
+# projection(981,783,1167,915,40) text={Projection}
+panda(855,681,0,270,3,0,60,2) # text={Panda}
+panda(859,499,51.5819,90,1,0,30,1) # panda=(51.5819 90 180 270)(0 30 60) text={Panda 2}
+panda(859,499,51.5819,90,1,30,60,1) # panda=ignore
+panda(859,499,90,180,1,0,30,1) # panda=ignore
+panda(859,499,90,180,1,30,60,1) # panda=ignore
+panda(859,499,180,270,1,0,30,1) # panda=ignore
+panda(859,499,180,270,1,30,60,1) # panda=ignore
+# compass(1225,825,80) compass=physical {N} {E} 1 1 text={Compass}
+epanda(1019,665,0,270,3,30,15,60,30,1,45) # text={Epanda}
+epanda(1025,487,45,90,1,30,15,60,30,1,45) # epanda=(45 90 180 270)(30 15 60 30)(45) text={Epanda 2}
+epanda(1025,487,90,180,1,30,15,60,30,1,45) # epanda=ignore
+epanda(1025,487,180,270,1,30,15,60,30,1,45) # epanda=ignore
+bpanda(1193,665,0,270,3,80,40,120,60,1,45) # text={Bpanda}
+bpanda(1185,489,45,90,1,80,40,120,60,1,45) # bpanda=(45 90 180 270)(80 40 120 60)(45) text={Bpanda 2}
+bpanda(1185,489,90,180,1,80,40,120,60,1,45) # bpanda=ignore
+bpanda(1185,489,180,270,1,80,40,120,60,1,45) # bpanda=ignore
diff --git a/tests/ds9.physical.strip.reg b/tests/ds9.physical.strip.reg
index 9b12d05..9627440 100644
--- a/tests/ds9.physical.strip.reg
+++ b/tests/ds9.physical.strip.reg
@@ -1 +1 @@
-physical;circle(325,1075,40);-ellipse(489,1041,80,40,45);-box(669,1037,160,80,45);polygon(807.49446,1059,883,1134.5055,958.50554,1059,883,983.49446);-line(1011,1009,1131,1111);annulus(325,851,20,40,60);ellipse(495,843,30,15,60,30,45);box(669,841,80,40,120,60,45);point(311,665);point(489,661);point(651,665);point(341,567);point(493,569);point(647,563);point(497,465);panda(849,665,0,270,3,0,60,2);panda(853,483,51.5819,90,1,0,30,1);panda(853,483,51.5819,90,1,30,60,1);panda(853,483,90,180,1,0,30,1);panda(853,483,90,180,1,30,60,1);panda(853,483,180,270,1,0,30,1);panda(853,483,180,270,1,30,60,1);epanda(1013,649,0,270,3,30,15,60,30,1,45);epanda(1019,471,45,90,1,30,15,60,30,1,45);epanda(1019,471,90,180,1,30,15,60,30,1,45);epanda(1019,471,180,270,1,30,15,60,30,1,45);bpanda(1187,649,0,270,3,80,40,120,60,1,45);bpanda(1179,473,45,90,1,80,40,120,60,1,45);bpanda(1179,473,90,180,1,80,40,120,60,1,45);bpanda(1179,473,180,270,1,80,40,120,60,1,45);
\ No newline at end of file
+physical;circle(331,1091,40);-ellipse(495,1057,80,40,45);-box(675,1053,160,80,45);polygon(813.49446,1075,889,1150.5055,964.50554,1075,889,999.49446);-line(1017,1025,1137,1127);annulus(331,867,20,40,60);ellipse(501,859,30,15,60,30,45);box(675,857,80,40,120,60,45);point(317,681);point(495,677);point(657,681);point(347,583);point(499,585);point(653,579);point(503,481);panda(855,681,0,270,3,0,60,2);panda(859,499,51.5819,90,1,0,30,1);panda(859,499,51.5819,90,1,30,60,1);panda(859,499,90,180,1,0,30,1);panda(859,499,90,180,1,30,60,1);panda(859,499,180,270,1,0,30,1);panda(859,499,180,270,1,30,60,1);epanda(1019,665,0,270,3,30,15,60,30,1,45);epanda(1025,487,45,90,1,30,15,60,30,1,45);epanda(1025,487,90,180,1,30,15,60,30,1,45);epanda(1025,487,180,270,1,30,15,60,30,1,45);bpanda(1193,665,0,270,3,80,40,120,60,1,45);bpanda(1185,489,45,90,1,80,40,120,60,1,45);bpanda(1185,489,90,180,1,80,40,120,60,1,45);bpanda(1185,489,180,270,1,80,40,120,60,1,45);
\ No newline at end of file
diff --git a/tests/gzip.sh b/tests/gzip.sh
index d2ddf2f..a9a08d1 100755
--- a/tests/gzip.sh
+++ b/tests/gzip.sh
@@ -110,6 +110,13 @@ if [ $slow = "1" ]; then
fi
xpaset -p ds9 frame clear
+echo "..Bitpix = -32 quantize=0"
+xpaset -p ds9 file fits img-32q0.gzip.fz
+if [ $slow = "1" ]; then
+ sleep 1
+fi
+xpaset -p ds9 frame clear
+
echo "..Bitpix = -64"
xpaset -p ds9 file fits img-64.gzip.fz
if [ $slow = "1" ]; then
diff --git a/tests/import.sh b/tests/import.sh
new file mode 100755
index 0000000..bb5c4b3
--- /dev/null
+++ b/tests/import.sh
@@ -0,0 +1,92 @@
+#! /bin/sh
+
+KillIt () {
+ i=1
+ while [ "$i" -le 15 ]; do
+ sleep 1
+ if [ `xpaaccess ds9` = yes ]; then
+ if [ $slow = "1" ]; then
+ sleep 1
+ fi
+ xpaset -p ds9 quit
+ break
+ fi
+
+ i=`expr $i + 1`
+ done
+}
+
+DoXPA () {
+ echo "$1"
+ xpaset -p ds9 image $2
+ if [ $slow = "1" ]; then
+ sleep 1
+ fi
+ xpaset -p ds9 frame clear
+}
+
+StartDS9 () {
+ if [ `xpaaccess ds9` = no ]; then
+ ds9&
+
+ i=1
+ while [ "$i" -le 30 ]
+ do
+ sleep 2
+ if [ `xpaaccess ds9` = yes ]; then
+ break
+ fi
+
+ i=`expr $i + 1`
+ done
+ fi
+}
+
+# slow down?
+slow=0
+if [ "$1" = "slow" ]; then
+ slow=1
+ shift
+fi
+
+# Command Line
+
+if [ "$1" = "command" -o -z "$1" ]; then
+echo "Testing Command Line File"
+
+echo "..base"
+ds9 -image rose.* &
+KillIt
+
+echo "..rgb"
+ds9 -rgb -image rose.* &
+KillIt
+
+echo "..3d"
+ds9 -3d -image rose.* &
+KillIt
+fi
+
+# XPA File
+if [ "$1" = "xpa" -o -z "$1" ]; then
+echo "Testing XPA File"
+
+StartDS9
+
+DoXPA "..gif" rose.gif
+DoXPA "..jpg" rose.jpg
+DoXPA "..tif" rose.tif
+DoXPA "..tif256" rose256.tif
+DoXPA "..png" rose.png
+DoXPA "..ppm" rose.ppm
+
+DoXPA "..base" rose.tif
+xpaset -p ds9 rgb
+DoXPA "..rgb" rose.tif
+xpaset -p ds9 3d
+DoXPA "..3d" rose.tif
+xpaset -p ds9 quit
+echo "PASSED"
+fi
+
+echo "DONE"
diff --git a/tests/pros.ecliptic.hms.reg b/tests/pros.ecliptic.hms.reg
index bae6d00..61d77f9 100644
--- a/tests/pros.ecliptic.hms.reg
+++ b/tests/pros.ecliptic.hms.reg
@@ -1,16 +1,16 @@
-ecliptic; circle +175:06:47.329 50:57:10.157 3.964"
-ecliptic; ellipse +175:06:47.329 50:56:53.559 7.928" 3.964" 45
-ecliptic; box +175:06:42.199 50:56:36.012 15.856" 7.928" 45
-ecliptic; polygon +175:06:34.390 50:56:23.015 +175:06:20.354 50:56:17.207 +175:06:29.571 50:56:08.362 +175:06:43.608 50:56:14.170
-ecliptic; annulus +175:07:21.832 50:57:05.650 1.982" 3.964" 5.946"
-ecliptic; ellipse +175:07:17.633 50:56:48.993 2.973" 1.4865" 45
-ecliptic; ellipse +175:07:17.633 50:56:48.993 5.946" 2.973" 45 & !ellipse +175:07:17.633 50:56:48.993 2.973" 1.4865" 45
-ecliptic; box +175:07:12.383 50:56:32.069 7.928" 3.964" 45
-ecliptic; box +175:07:12.383 50:56:32.069 11.892" 5.946" 45 & !box +175:07:12.383 50:56:32.069 7.928" 3.964" 45
-ecliptic; point +175:07:50.928 50:57:03.264
-ecliptic; point +175:07:45.855 50:56:45.911
-ecliptic; point +175:07:40.062 50:56:30.273
-ecliptic; point +175:08:05.063 50:56:58.379
-ecliptic; point +175:07:59.895 50:56:43.670
-ecliptic; point +175:07:55.897 50:56:28.607
-ecliptic; point +175:08:15.784 50:56:41.187
+ecliptic; circle +175:06:44.609 50:57:09.897 3.964"
+ecliptic; ellipse +175:06:44.610 50:56:53.299 7.928" 3.964" 45
+ecliptic; box +175:06:39.479 50:56:35.752 15.856" 7.928" 45
+ecliptic; polygon +175:06:31.671 50:56:22.755 +175:06:17.634 50:56:16.946 +175:06:26.852 50:56:08.101 +175:06:40.888 50:56:13.910
+ecliptic; annulus +175:07:19.112 50:57:05.390 1.982" 3.964" 5.946"
+ecliptic; ellipse +175:07:14.913 50:56:48.733 2.973" 1.4865" 45
+ecliptic; ellipse +175:07:14.913 50:56:48.733 5.946" 2.973" 45 & !ellipse +175:07:14.913 50:56:48.733 2.973" 1.4865" 45
+ecliptic; box +175:07:09.664 50:56:31.809 7.928" 3.964" 45
+ecliptic; box +175:07:09.664 50:56:31.809 11.892" 5.946" 45 & !box +175:07:09.664 50:56:31.809 7.928" 3.964" 45
+ecliptic; point +175:07:48.208 50:57:03.004
+ecliptic; point +175:07:43.135 50:56:45.651
+ecliptic; point +175:07:37.342 50:56:30.013
+ecliptic; point +175:08:02.343 50:56:58.119
+ecliptic; point +175:07:57.176 50:56:43.411
+ecliptic; point +175:07:53.177 50:56:28.347
+ecliptic; point +175:08:13.064 50:56:40.927
diff --git a/tests/pros.ecliptic.reg b/tests/pros.ecliptic.reg
index 6dc8e2a..591cba2 100644
--- a/tests/pros.ecliptic.reg
+++ b/tests/pros.ecliptic.reg
@@ -1,16 +1,16 @@
-ecliptic; circle 175.11315d 50.952821d 3.9640007"
-ecliptic; ellipse 175.11315d 50.948211d 7.9280014" 3.9640007" 45
-ecliptic; box 175.11172d 50.943337d 15.856003" 7.9280014" 45
-ecliptic; polygon 175.10955d 50.939727d 175.10565d 50.938113d 175.10821d 50.935656d 175.11211d 50.937269d
-ecliptic; annulus 175.12273d 50.951569d 1.9820003" 3.9640007" 5.946001"
-ecliptic; ellipse 175.12156d 50.946943d 2.9730005" 1.4865003" 45
-ecliptic; ellipse 175.12156d 50.946943d 5.946001" 2.9730005" 45 & !ellipse 175.12156d 50.946943d 2.9730005" 1.4865003" 45
-ecliptic; box 175.12011d 50.942241d 7.9280014" 3.9640007" 45
-ecliptic; box 175.12011d 50.942241d 11.892002" 5.946001" 45 & !box 175.12011d 50.942241d 7.9280014" 3.9640007" 45
-ecliptic; point 175.13081d 50.950907d
-ecliptic; point 175.1294d 50.946087d
-ecliptic; point 175.12779d 50.941742d
-ecliptic; point 175.13474d 50.94955d
-ecliptic; point 175.1333d 50.945464d
-ecliptic; point 175.13219d 50.94128d
-ecliptic; point 175.13772d 50.944774d
+ecliptic; circle 175.11239d 50.952749d 3.9640007"
+ecliptic; ellipse 175.11239d 50.948139d 7.9280014" 3.9640007" 45
+ecliptic; box 175.11097d 50.943264d 15.856003" 7.9280014" 45
+ecliptic; polygon 175.1088d 50.939654d 175.1049d 50.938041d 175.10746d 50.935584d 175.11136d 50.937197d
+ecliptic; annulus 175.12198d 50.951497d 1.9820003" 3.9640007" 5.946001"
+ecliptic; ellipse 175.12081d 50.94687d 2.9730005" 1.4865003" 45
+ecliptic; ellipse 175.12081d 50.94687d 5.946001" 2.9730005" 45 & !ellipse 175.12081d 50.94687d 2.9730005" 1.4865003" 45
+ecliptic; box 175.11935d 50.942169d 7.9280014" 3.9640007" 45
+ecliptic; box 175.11935d 50.942169d 11.892002" 5.946001" 45 & !box 175.11935d 50.942169d 7.9280014" 3.9640007" 45
+ecliptic; point 175.13006d 50.950834d
+ecliptic; point 175.12865d 50.946014d
+ecliptic; point 175.12704d 50.94167d
+ecliptic; point 175.13398d 50.949478d
+ecliptic; point 175.13255d 50.945392d
+ecliptic; point 175.13144d 50.941207d
+ecliptic; point 175.13696d 50.944702d
diff --git a/tests/pros.fk4.hms.reg b/tests/pros.fk4.hms.reg
index 21ff79e..2249cfe 100644
--- a/tests/pros.fk4.hms.reg
+++ b/tests/pros.fk4.hms.reg
@@ -1,16 +1,16 @@
-b1950; circle 13:27:50.533 47:27:57.00 3.964"
-b1950; ellipse 13:27:49.574 47:27:43.54 7.928" 3.964" 45
-b1950; box 13:27:48.303 47:27:31.21 15.856" 7.928" 45
-b1950; polygon 13:27:47.159 47:27:23.56 13:27:46.117 47:27:24.03 13:27:46.071 47:27:13.45 13:27:47.113 47:27:12.98
-b1950; annulus 13:27:52.010 47:27:40.61 1.982" 3.964" 5.946"
-b1950; ellipse 13:27:50.837 47:27:28.66 2.973" 1.4865" 45
-b1950; ellipse 13:27:50.837 47:27:28.66 5.946" 2.973" 45 & !ellipse 13:27:50.837 47:27:28.66 2.973" 1.4865" 45
-b1950; box 13:27:49.595 47:27:16.88 7.928" 3.964" 45
-b1950; box 13:27:49.595 47:27:16.88 11.892" 5.946" 45 & !box 13:27:49.595 47:27:16.88 7.928" 3.964" 45
-b1950; point 13:27:53.337 47:27:27.95
-b1950; point 13:27:52.080 47:27:15.75
-b1950; point 13:27:50.886 47:27:05.21
-b1950; point 13:27:53.767 47:27:18.77
-b1950; point 13:27:52.658 47:27:08.75
-b1950; point 13:27:51.587 47:26:58.02
-b1950; point 13:27:53.315 47:27:00.88
+b1950; circle 13:27:50.384 47:27:57.76 3.964"
+b1950; ellipse 13:27:49.426 47:27:44.31 7.928" 3.964" 45
+b1950; box 13:27:48.154 47:27:31.98 15.856" 7.928" 45
+b1950; polygon 13:27:47.011 47:27:24.32 13:27:45.968 47:27:24.79 13:27:45.922 47:27:14.22 13:27:46.964 47:27:13.75
+b1950; annulus 13:27:51.861 47:27:41.38 1.982" 3.964" 5.946"
+b1950; ellipse 13:27:50.688 47:27:29.43 2.973" 1.4865" 45
+b1950; ellipse 13:27:50.688 47:27:29.43 5.946" 2.973" 45 & !ellipse 13:27:50.688 47:27:29.43 2.973" 1.4865" 45
+b1950; box 13:27:49.447 47:27:17.65 7.928" 3.964" 45
+b1950; box 13:27:49.447 47:27:17.65 11.892" 5.946" 45 & !box 13:27:49.447 47:27:17.65 7.928" 3.964" 45
+b1950; point 13:27:53.189 47:27:28.71
+b1950; point 13:27:51.931 47:27:16.52
+b1950; point 13:27:50.737 47:27:05.98
+b1950; point 13:27:53.618 47:27:19.54
+b1950; point 13:27:52.509 47:27:09.52
+b1950; point 13:27:51.438 47:26:58.79
+b1950; point 13:27:53.166 47:27:01.65
diff --git a/tests/pros.fk4.reg b/tests/pros.fk4.reg
index b0f3f7c..656b3bd 100644
--- a/tests/pros.fk4.reg
+++ b/tests/pros.fk4.reg
@@ -1,16 +1,16 @@
-b1950; circle 201.96055d 47.465832d 3.9640007"
-b1950; ellipse 201.95656d 47.462095d 7.9280014" 3.9640007" 45
-b1950; box 201.95126d 47.458669d 15.856003" 7.9280014" 45
-b1950; polygon 201.9465d 47.456543d 201.94215d 47.456674d 201.94196d 47.453737d 201.9463d 47.453607d
-b1950; annulus 201.96671d 47.461282d 1.9820003" 3.9640007" 5.946001"
-b1950; ellipse 201.96182d 47.457961d 2.9730005" 1.4865003" 45
-b1950; ellipse 201.96182d 47.457961d 5.946001" 2.9730005" 45 & !ellipse 201.96182d 47.457961d 2.9730005" 1.4865003" 45
-b1950; box 201.95665d 47.454688d 7.9280014" 3.9640007" 45
-b1950; box 201.95665d 47.454688d 11.892002" 5.946001" 45 & !box 201.95665d 47.454688d 7.9280014" 3.9640007" 45
-b1950; point 201.97224d 47.457763d
-b1950; point 201.967d 47.454375d
-b1950; point 201.96202d 47.451447d
-b1950; point 201.97403d 47.455214d
-b1950; point 201.96941d 47.452432d
-b1950; point 201.96495d 47.449449d
-b1950; point 201.97214d 47.450245d
+b1950; circle 201.95993d 47.466046d 3.9640007"
+b1950; ellipse 201.95594d 47.462308d 7.9280014" 3.9640007" 45
+b1950; box 201.95064d 47.458883d 15.856003" 7.9280014" 45
+b1950; polygon 201.94588d 47.456757d 201.94153d 47.456887d 201.94134d 47.453951d 201.94568d 47.45382d
+b1950; annulus 201.96609d 47.461495d 1.9820003" 3.9640007" 5.946001"
+b1950; ellipse 201.9612d 47.458175d 2.9730005" 1.4865003" 45
+b1950; ellipse 201.9612d 47.458175d 5.946001" 2.9730005" 45 & !ellipse 201.9612d 47.458175d 2.9730005" 1.4865003" 45
+b1950; box 201.95603d 47.454902d 7.9280014" 3.9640007" 45
+b1950; box 201.95603d 47.454902d 11.892002" 5.946001" 45 & !box 201.95603d 47.454902d 7.9280014" 3.9640007" 45
+b1950; point 201.97162d 47.457976d
+b1950; point 201.96638d 47.454589d
+b1950; point 201.9614d 47.451661d
+b1950; point 201.97341d 47.455428d
+b1950; point 201.96879d 47.452645d
+b1950; point 201.96433d 47.449663d
+b1950; point 201.97152d 47.450458d
diff --git a/tests/pros.fk5.hms.reg b/tests/pros.fk5.hms.reg
index 52fa56e..31089e3 100644
--- a/tests/pros.fk5.hms.reg
+++ b/tests/pros.fk5.hms.reg
@@ -1,16 +1,16 @@
-j2000; circle 13:29:56.891 47:12:29.65 3.964"
-j2000; ellipse 13:29:55.941 47:12:16.17 7.928" 3.964" 45
-j2000; box 13:29:54.679 47:12:03.80 15.856" 7.928" 45
-j2000; polygon 13:29:53.543 47:11:56.12 13:29:52.505 47:11:56.56 13:29:52.462 47:11:45.99 13:29:53.499 47:11:45.55
-j2000; annulus 13:29:58.365 47:12:13.31 1.982" 3.964" 5.946"
-j2000; ellipse 13:29:57.201 47:12:01.32 2.973" 1.4865" 45
-j2000; ellipse 13:29:57.201 47:12:01.32 5.946" 2.973" 45 & !ellipse 13:29:57.201 47:12:01.32 2.973" 1.4865" 45
-j2000; box 13:29:55.969 47:11:49.51 7.928" 3.964" 45
-j2000; box 13:29:55.969 47:11:49.51 11.892" 5.946" 45 & !box 13:29:55.969 47:11:49.51 7.928" 3.964" 45
-j2000; point 13:29:59.689 47:12:00.68
-j2000; point 13:29:58.442 47:11:48.45
-j2000; point 13:29:57.256 47:11:37.88
-j2000; point 13:30:00.120 47:11:51.52
-j2000; point 13:29:59.018 47:11:41.47
-j2000; point 13:29:57.955 47:11:30.70
-j2000; point 13:29:59.674 47:11:33.61
+j2000; circle 13:29:56.743 47:12:30.42 3.964"
+j2000; ellipse 13:29:55.792 47:12:16.94 7.928" 3.964" 45
+j2000; box 13:29:54.530 47:12:04.57 15.856" 7.928" 45
+j2000; polygon 13:29:53.394 47:11:56.88 13:29:52.357 47:11:57.32 13:29:52.314 47:11:46.75 13:29:53.351 47:11:46.31
+j2000; annulus 13:29:58.217 47:12:14.07 1.982" 3.964" 5.946"
+j2000; ellipse 13:29:57.053 47:12:02.09 2.973" 1.4865" 45
+j2000; ellipse 13:29:57.053 47:12:02.09 5.946" 2.973" 45 & !ellipse 13:29:57.053 47:12:02.09 2.973" 1.4865" 45
+j2000; box 13:29:55.820 47:11:50.27 7.928" 3.964" 45
+j2000; box 13:29:55.820 47:11:50.27 11.892" 5.946" 45 & !box 13:29:55.820 47:11:50.27 7.928" 3.964" 45
+j2000; point 13:29:59.541 47:12:01.44
+j2000; point 13:29:58.293 47:11:49.21
+j2000; point 13:29:57.107 47:11:38.64
+j2000; point 13:29:59.971 47:11:52.28
+j2000; point 13:29:58.870 47:11:42.23
+j2000; point 13:29:57.807 47:11:31.47
+j2000; point 13:29:59.526 47:11:34.38
diff --git a/tests/pros.fk5.reg b/tests/pros.fk5.reg
index 2fd535b..35020f0 100644
--- a/tests/pros.fk5.reg
+++ b/tests/pros.fk5.reg
@@ -1,16 +1,16 @@
-j2000; circle 202.48705d 47.208237d 3.9640007"
-j2000; ellipse 202.48309d 47.204492d 7.9280014" 3.9640007" 45
-j2000; box 202.47783d 47.201057d 15.856003" 7.9280014" 45
-j2000; polygon 202.47309d 47.198922d 202.46877d 47.199044d 202.46859d 47.196108d 202.47291d 47.195985d
-j2000; annulus 202.49319d 47.203697d 1.9820003" 3.9640007" 5.946001"
-j2000; ellipse 202.48834d 47.200368d 2.9730005" 1.4865003" 45
-j2000; ellipse 202.48834d 47.200368d 5.946001" 2.9730005" 45 & !ellipse 202.48834d 47.200368d 2.9730005" 1.4865003" 45
-j2000; box 202.4832d 47.197085d 7.9280014" 3.9640007" 45
-j2000; box 202.4832d 47.197085d 11.892002" 5.946001" 45 & !box 202.4832d 47.197085d 7.9280014" 3.9640007" 45
-j2000; point 202.49871d 47.200189d
-j2000; point 202.49351d 47.196791d
-j2000; point 202.48857d 47.193854d
-j2000; point 202.5005d 47.197643d
-j2000; point 202.49591d 47.194852d
-j2000; point 202.49148d 47.191862d
-j2000; point 202.49864d 47.19267d
+j2000; circle 202.48643d 47.208449d 3.9640007"
+j2000; ellipse 202.48247d 47.204704d 7.9280014" 3.9640007" 45
+j2000; box 202.47721d 47.201269d 15.856003" 7.9280014" 45
+j2000; polygon 202.47248d 47.199134d 202.46815d 47.199257d 202.46797d 47.19632d 202.4723d 47.196197d
+j2000; annulus 202.49257d 47.20391d 1.9820003" 3.9640007" 5.946001"
+j2000; ellipse 202.48772d 47.20058d 2.9730005" 1.4865003" 45
+j2000; ellipse 202.48772d 47.20058d 5.946001" 2.9730005" 45 & !ellipse 202.48772d 47.20058d 2.9730005" 1.4865003" 45
+j2000; box 202.48258d 47.197298d 7.9280014" 3.9640007" 45
+j2000; box 202.48258d 47.197298d 11.892002" 5.946001" 45 & !box 202.48258d 47.197298d 7.9280014" 3.9640007" 45
+j2000; point 202.49809d 47.200401d
+j2000; point 202.49289d 47.197004d
+j2000; point 202.48795d 47.194067d
+j2000; point 202.49988d 47.197856d
+j2000; point 202.49529d 47.195065d
+j2000; point 202.49086d 47.192074d
+j2000; point 202.49802d 47.192883d
diff --git a/tests/pros.galactic.hms.reg b/tests/pros.galactic.hms.reg
index c6b8de1..8db26ac 100644
--- a/tests/pros.galactic.hms.reg
+++ b/tests/pros.galactic.hms.reg
@@ -1,16 +1,16 @@
-galactic; circle +104:50:10.908 68:32:38.464 3.964"
-galactic; ellipse +104:50:20.096 68:32:54.718 7.928" 3.964" 45
-galactic; box +104:50:38.471 68:33:11.247 15.856" 7.928" 45
-galactic; polygon +104:50:58.854 68:33:22.977 +104:51:25.768 68:33:26.871 +104:51:15.116 68:33:36.710 +104:50:48.199 68:33:32.816
-galactic; annulus +104:49:15.203 68:32:47.274 1.982" 3.964" 5.946"
-galactic; ellipse +104:49:31.493 68:33:03.053 2.973" 1.4865" 45
-galactic; ellipse +104:49:31.493 68:33:03.053 5.946" 2.973" 45 & !ellipse +104:49:31.493 68:33:03.053 2.973" 1.4865" 45
-galactic; box +104:49:49.713 68:33:18.959 7.928" 3.964" 45
-galactic; box +104:49:49.713 68:33:18.959 11.892" 5.946" 45 & !box +104:49:49.713 68:33:18.959 7.928" 3.964" 45
-galactic; point +104:48:27.434 68:32:53.313
-galactic; point +104:48:45.571 68:33:09.663
-galactic; point +104:49:03.986 68:33:24.243
-galactic; point +104:48:06.279 68:32:59.893
-galactic; point +104:48:23.111 68:33:13.643
-galactic; point +104:48:38.174 68:33:27.889
-galactic; point +104:47:57.663 68:33:18.094
+galactic; circle +104:50:15.532 68:32:38.380 3.964"
+galactic; ellipse +104:50:24.720 68:32:54.634 7.928" 3.964" 45
+galactic; box +104:50:43.097 68:33:11.163 15.856" 7.928" 45
+galactic; polygon +104:51:03.480 68:33:22.893 +104:51:30.395 68:33:26.787 +104:51:19.743 68:33:36.626 +104:50:52.826 68:33:32.732
+galactic; annulus +104:49:19.827 68:32:47.191 1.982" 3.964" 5.946"
+galactic; ellipse +104:49:36.118 68:33:02.969 2.973" 1.4865" 45
+galactic; ellipse +104:49:36.118 68:33:02.969 5.946" 2.973" 45 & !ellipse +104:49:36.118 68:33:02.969 2.973" 1.4865" 45
+galactic; box +104:49:54.339 68:33:18.875 7.928" 3.964" 45
+galactic; box +104:49:54.339 68:33:18.875 11.892" 5.946" 45 & !box +104:49:54.339 68:33:18.875 7.928" 3.964" 45
+galactic; point +104:48:32.059 68:32:53.230
+galactic; point +104:48:50.197 68:33:09.580
+galactic; point +104:49:08.613 68:33:24.159
+galactic; point +104:48:10.904 68:32:59.810
+galactic; point +104:48:27.737 68:33:13.560
+galactic; point +104:48:42.801 68:33:27.806
+galactic; point +104:48:02.289 68:33:18.011
diff --git a/tests/pros.galactic.reg b/tests/pros.galactic.reg
index 05dd906..bd579cb 100644
--- a/tests/pros.galactic.reg
+++ b/tests/pros.galactic.reg
@@ -1,16 +1,16 @@
-galactic; circle 104.83636d 68.544018d 3.9640007"
-galactic; ellipse 104.83892d 68.548533d 7.9280014" 3.9640007" 45
-galactic; box 104.84402d 68.553124d 15.856003" 7.9280014" 45
-galactic; polygon 104.84968d 68.556382d 104.85716d 68.557464d 104.8542d 68.560197d 104.84672d 68.559116d
-galactic; annulus 104.82089d 68.546465d 1.9820003" 3.9640007" 5.946001"
-galactic; ellipse 104.82541d 68.550848d 2.9730005" 1.4865003" 45
-galactic; ellipse 104.82541d 68.550848d 5.946001" 2.9730005" 45 & !ellipse 104.82541d 68.550848d 2.9730005" 1.4865003" 45
-galactic; box 104.83048d 68.555266d 7.9280014" 3.9640007" 45
-galactic; box 104.83048d 68.555266d 11.892002" 5.946001" 45 & !box 104.83048d 68.555266d 7.9280014" 3.9640007" 45
-galactic; point 104.80762d 68.548142d
-galactic; point 104.81266d 68.552684d
-galactic; point 104.81777d 68.556734d
-galactic; point 104.80174d 68.54997d
-galactic; point 104.80642d 68.55379d
-galactic; point 104.8106d 68.557747d
-galactic; point 104.79935d 68.555026d
+galactic; circle 104.83765d 68.543994d 3.9640007"
+galactic; ellipse 104.8402d 68.54851d 7.9280014" 3.9640007" 45
+galactic; box 104.8453d 68.553101d 15.856003" 7.9280014" 45
+galactic; polygon 104.85097d 68.556359d 104.85844d 68.557441d 104.85548d 68.560174d 104.84801d 68.559092d
+galactic; annulus 104.82217d 68.546442d 1.9820003" 3.9640007" 5.946001"
+galactic; ellipse 104.8267d 68.550825d 2.9730005" 1.4865003" 45
+galactic; ellipse 104.8267d 68.550825d 5.946001" 2.9730005" 45 & !ellipse 104.8267d 68.550825d 2.9730005" 1.4865003" 45
+galactic; box 104.83176d 68.555243d 7.9280014" 3.9640007" 45
+galactic; box 104.83176d 68.555243d 11.892002" 5.946001" 45 & !box 104.83176d 68.555243d 7.9280014" 3.9640007" 45
+galactic; point 104.80891d 68.548119d
+galactic; point 104.81394d 68.552661d
+galactic; point 104.81906d 68.556711d
+galactic; point 104.80303d 68.549947d
+galactic; point 104.8077d 68.553767d
+galactic; point 104.81189d 68.557724d
+galactic; point 104.80064d 68.555003d
diff --git a/tests/pros.image.reg b/tests/pros.image.reg
index 7ca672f..e39599b 100644
--- a/tests/pros.image.reg
+++ b/tests/pros.image.reg
@@ -1,16 +1,16 @@
-logical; circle 163 538 20
-logical; ellipse 245 521 40 20 45
-logical; box 335 519 80 40 45
-logical; polygon 404.24723 530 442 567.75275 479.75277 530 442 492.24723
-logical; annulus 163 426 10 20 30
-logical; ellipse 248 422 15 7.5 45
-logical; ellipse 248 422 30 15 45 & !ellipse 248 422 15 7.5 45
-logical; box 335 421 40 20 45
-logical; box 335 421 60 30 45 & !box 335 421 40 20 45
-logical; point 156 333
-logical; point 245 331
-logical; point 326 333
-logical; point 171 284
-logical; point 247 285
-logical; point 324 282
-logical; point 249 233
+logical; circle 166 546 20
+logical; ellipse 248 529 40 20 45
+logical; box 338 527 80 40 45
+logical; polygon 407.24723 538 445 575.75275 482.75277 538 445 500.24723
+logical; annulus 166 434 10 20 30
+logical; ellipse 251 430 15 7.5 45
+logical; ellipse 251 430 30 15 45 & !ellipse 251 430 15 7.5 45
+logical; box 338 429 40 20 45
+logical; box 338 429 60 30 45 & !box 338 429 40 20 45
+logical; point 159 341
+logical; point 248 339
+logical; point 329 341
+logical; point 174 292
+logical; point 250 293
+logical; point 327 290
+logical; point 252 241
diff --git a/tests/pros.physical.reg b/tests/pros.physical.reg
index 35aae8b..60cc3e1 100644
--- a/tests/pros.physical.reg
+++ b/tests/pros.physical.reg
@@ -1,16 +1,16 @@
-physical; circle 325 1075 20
-physical; ellipse 489 1041 40 20 45
-physical; box 669 1037 80 40 45
-physical; polygon 807.49446 1059 883 1134.5055 958.50554 1059 883 983.49446
-physical; annulus 325 851 10 20 30
-physical; ellipse 495 843 15 7.5 45
-physical; ellipse 495 843 30 15 45 & !ellipse 495 843 15 7.5 45
-physical; box 669 841 40 20 45
-physical; box 669 841 60 30 45 & !box 669 841 40 20 45
-physical; point 311 665
-physical; point 489 661
-physical; point 651 665
-physical; point 341 567
-physical; point 493 569
-physical; point 647 563
-physical; point 497 465
+physical; circle 331 1091 20
+physical; ellipse 495 1057 40 20 45
+physical; box 675 1053 80 40 45
+physical; polygon 813.49446 1075 889 1150.5055 964.50554 1075 889 999.49446
+physical; annulus 331 867 10 20 30
+physical; ellipse 501 859 15 7.5 45
+physical; ellipse 501 859 30 15 45 & !ellipse 501 859 15 7.5 45
+physical; box 675 857 40 20 45
+physical; box 675 857 60 30 45 & !box 675 857 40 20 45
+physical; point 317 681
+physical; point 495 677
+physical; point 657 681
+physical; point 347 583
+physical; point 499 585
+physical; point 653 579
+physical; point 503 481
diff --git a/tests/regions.sh b/tests/regions.sh
index e604026..e548950 100755
--- a/tests/regions.sh
+++ b/tests/regions.sh
@@ -10,6 +10,7 @@ testit () {
xpaset -p ds9 regions skyformat $4
xpaset -p ds9 regions file $5
xpaset -p ds9 regions save ${5}.out
+# sleep .5
xpaset -p ds9 regions deleteall
o=`diff $5 ${5}.out`
@@ -31,6 +32,7 @@ testit2 () {
xpaset -p ds9 regions skyformat $4
xpaset -p ds9 regions file $5
xpaset -p ds9 regions save ${5}.out
+# sleep .5
xpaset -p ds9 regions deleteall
o=`diff $6 ${5}.out`
@@ -51,6 +53,7 @@ testit3 () {
xpaset -p ds9 regions sky $3
xpaset -p ds9 regions skyformat $4
xpaset -p ds9 regions file $5
+# sleep .5
xpaset -p ds9 regions deleteall
echo "PASSED"
}
diff --git a/tests/samp.sh b/tests/samp.sh
index 04c97cc..234a0f7 100755
--- a/tests/samp.sh
+++ b/tests/samp.sh
@@ -64,6 +64,8 @@ doit "$1" data
doit "$1" dsssao
doit "$1" dsseso
doit "$1" dssstsci
+doit "$1" export
+rm -f foo.fits foo.gif foo.jpg foo.tif foo.png foo.ppm
doit "$1" file
rm -f foo.fits foo.fits.gz
doit "$1" first
@@ -75,6 +77,7 @@ doit "$1" height
doit "$1" iconify
doit "$1" iis
doit2 "$1" imexam
+doit "$1" import
doit "$1" lock
doit "$1" lower
doit "$1" magnifier
@@ -100,8 +103,10 @@ rm -f foo.reg
rm -f foo.tpl
doit "$1" rgb
doit "$1" rotate
-doit "$1" saveas
-rm -f foo.fits foo.jpeg foo.tif foo.png foo.ppm foo.mpg foo.mpg
+doit "$1" saveimage
+rm -f foo.fits foo.gif foo.jpg foo.tif foo.png foo.ppm
+doit "$1" savempeg
+rm -f foo.mpg
doit "$1" scale
doit "$1" single
#doit "$1" skyview
diff --git a/tests/samp/export.samp b/tests/samp/export.samp
new file mode 100644
index 0000000..bf82a9f
--- /dev/null
+++ b/tests/samp/export.samp
@@ -0,0 +1,13 @@
+set {} export foo.fits
+set {} export foo.gif
+set {} export foo.tif
+set {} export foo.tif none
+set {} export foo.jpg
+set {} export foo.jpg 100
+set {} export foo.png
+set {} export foo.ppm
+
+# backward compatability
+set {} savefits foo.fits
+
+set {} raise
diff --git a/tests/samp/import.samp b/tests/samp/import.samp
new file mode 100644
index 0000000..d41804d
--- /dev/null
+++ b/tests/samp/import.samp
@@ -0,0 +1,7 @@
+set {} frame new
+set {} image rose.jpg
+set {} frame delete
+set {} frame new rgb
+set {} image rose.tif
+set {} frame delete
+set {} raise
diff --git a/tests/samp/saveas.samp b/tests/samp/saveas.samp
deleted file mode 100644
index 20f7c7a..0000000
--- a/tests/samp/saveas.samp
+++ /dev/null
@@ -1,13 +0,0 @@
-set {} saveimage fits foo.fits
-set {} saveimage jpeg foo.jpeg
-set {} saveimage jpeg 100 foo.jpeg
-set {} saveimage tiff foo.tif
-set {} saveimage tiff deflate foo.tif
-set {} saveimage png foo.png
-set {} saveimage ppm foo.ppm
-set {} saveimage mpeg foo.mpg
-set {} saveimage mpeg 31 foo.mpg
-
-set {} savefits foo.fits
-set {} savempeg foo.mpg
-set {} raise
diff --git a/tests/samp/saveimage.samp b/tests/samp/saveimage.samp
new file mode 100644
index 0000000..13d3ce2
--- /dev/null
+++ b/tests/samp/saveimage.samp
@@ -0,0 +1,19 @@
+set {} saveimage foo.fits
+set {} saveimage foo.gif
+set {} saveimage foo.tif
+set {} saveimage foo.tif none
+set {} saveimage foo.jpg
+set {} saveimage foo.jpg 100
+set {} saveimage foo.png
+set {} saveimage foo.ppm
+
+# backward compatability
+set {} saveimage fits foo.fits
+set {} saveimage jpeg foo.jpg
+set {} saveimage jpeg 100 foo.jpg
+set {} saveimage tiff foo.tif
+set {} saveimage tiff deflate foo.tif
+set {} saveimage png foo.png
+set {} saveimage ppm foo.ppm
+
+set {} raise
diff --git a/tests/samp/savempeg.samp b/tests/samp/savempeg.samp
new file mode 100644
index 0000000..565fa7c
--- /dev/null
+++ b/tests/samp/savempeg.samp
@@ -0,0 +1,10 @@
+set {} savempeg slice foo.mpg
+set {} savempeg frame foo.mpg
+set {} frame new 3d
+set {} savempeg 3d foo.mpg number 1 azfrom 0 azto 0 elfrom 0 elto 0 slfrom 1 slto 1 repeat 1
+set {} frame delete
+
+# backward compatibility
+set {} savempeg foo.mpg
+
+set {} raise
diff --git a/tests/saotng.ecliptic.hms.reg b/tests/saotng.ecliptic.hms.reg
index db53842..659564a 100644
--- a/tests/saotng.ecliptic.hms.reg
+++ b/tests/saotng.ecliptic.hms.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: hms (ecliptic)
#Circle
-+circle(+175:06:47.329,+50:57:10.157,20) # This is a Comment
++circle(+175:06:44.609,+50:57:09.897,20) # This is a Comment
#Ellipse
--ellipse(+175:06:47.329,+50:56:53.559,40,20,45) # background
+-ellipse(+175:06:44.610,+50:56:53.299,40,20,45) # background
#Box
--box(+175:06:42.199,+50:56:36.012,80,40,45) # yellow
+-box(+175:06:39.479,+50:56:35.752,80,40,45) # yellow
#Polygon
-+polygon(+175:06:34.390,+50:56:23.015,+175:06:20.354,+50:56:17.207,+175:06:29.571,+50:56:08.362,+175:06:43.608,+50:56:14.170) # green
++polygon(+175:06:31.671,+50:56:22.755,+175:06:17.634,+50:56:16.946,+175:06:26.852,+50:56:08.101,+175:06:40.888,+50:56:13.910) # green
#Line
--line(+175:06:35.595,+50:56:02.262,+175:06:16.061,+50:55:52.669) # cyan
-+text(+175:06:23.624,+50:55:33.666, "Region") # magenta
+-line(+175:06:32.876,+50:56:02.002,+175:06:13.343,+50:55:52.408) # cyan
++text(+175:06:20.905,+50:55:33.406, "Region") # magenta
#Circle Point
-+point(+175:07:50.928,+50:57:03.264) # green
++point(+175:07:48.208,+50:57:03.004) # green
#Box Point
-+point(+175:07:45.855,+50:56:45.911) # red
++point(+175:07:43.135,+50:56:45.651) # red
#Diamond Point
-+point(+175:07:40.062,+50:56:30.273) # green
++point(+175:07:37.342,+50:56:30.013) # green
#Cross Point
-+point(+175:08:05.063,+50:56:58.379) # blue
++point(+175:08:02.343,+50:56:58.119) # blue
#X Point
-+point(+175:07:59.895,+50:56:43.670) # green
++point(+175:07:57.176,+50:56:43.411) # green
#Arrow Point
-+point(+175:07:55.897,+50:56:28.607) # magenta
++point(+175:07:53.177,+50:56:28.347) # magenta
#BoxCircle Point
-+point(+175:08:15.784,+50:56:41.187) # green
++point(+175:08:13.064,+50:56:40.927) # green
diff --git a/tests/saotng.ecliptic.reg b/tests/saotng.ecliptic.reg
index 393808f..4a2e4b8 100644
--- a/tests/saotng.ecliptic.reg
+++ b/tests/saotng.ecliptic.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: degrees (ecliptic)
#Circle
-+circle(175.11315,50.952821,20) # This is a Comment
++circle(175.11239,50.952749,20) # This is a Comment
#Ellipse
--ellipse(175.11315,50.948211,40,20,45) # background
+-ellipse(175.11239,50.948139,40,20,45) # background
#Box
--box(175.11172,50.943337,80,40,45) # yellow
+-box(175.11097,50.943264,80,40,45) # yellow
#Polygon
-+polygon(175.10955,50.939727,175.10565,50.938113,175.10821,50.935656,175.11211,50.937269) # green
++polygon(175.1088,50.939654,175.1049,50.938041,175.10746,50.935584,175.11136,50.937197) # green
#Line
--line(175.10989,50.933962,175.10446,50.931297) # cyan
-+text(175.10656,50.926018, "Region") # magenta
+-line(175.10913,50.933889,175.10371,50.931224) # cyan
++text(175.10581,50.925946, "Region") # magenta
#Circle Point
-+point(175.13081,50.950907) # green
++point(175.13006,50.950834) # green
#Box Point
-+point(175.1294,50.946087) # red
++point(175.12865,50.946014) # red
#Diamond Point
-+point(175.12779,50.941742) # green
++point(175.12704,50.94167) # green
#Cross Point
-+point(175.13474,50.94955) # blue
++point(175.13398,50.949478) # blue
#X Point
-+point(175.1333,50.945464) # green
++point(175.13255,50.945392) # green
#Arrow Point
-+point(175.13219,50.94128) # magenta
++point(175.13144,50.941207) # magenta
#BoxCircle Point
-+point(175.13772,50.944774) # green
++point(175.13696,50.944702) # green
diff --git a/tests/saotng.fk4.hms.reg b/tests/saotng.fk4.hms.reg
index 77c8b08..c6d16cc 100644
--- a/tests/saotng.fk4.hms.reg
+++ b/tests/saotng.fk4.hms.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: hms (fk4)
#Circle
-+circle(13:27:50.533,+47:27:57.00,20) # This is a Comment
++circle(13:27:50.384,+47:27:57.76,20) # This is a Comment
#Ellipse
--ellipse(13:27:49.574,+47:27:43.54,40,20,45) # background
+-ellipse(13:27:49.426,+47:27:44.31,40,20,45) # background
#Box
--box(13:27:48.303,+47:27:31.21,80,40,45) # yellow
+-box(13:27:48.154,+47:27:31.98,80,40,45) # yellow
#Polygon
-+polygon(13:27:47.159,+47:27:23.56,13:27:46.117,+47:27:24.03,13:27:46.071,+47:27:13.45,13:27:47.113,+47:27:12.98) # green
++polygon(13:27:47.011,+47:27:24.32,13:27:45.968,+47:27:24.79,13:27:45.922,+47:27:14.22,13:27:46.964,+47:27:13.75) # green
#Line
--line(13:27:46.022,+47:27:06.29,13:27:44.484,+47:27:05.72) # cyan
-+text(13:27:43.769,+47:26:47.52, "Region") # magenta
+-line(13:27:45.873,+47:27:07.05,13:27:44.336,+47:27:06.48) # cyan
++text(13:27:43.620,+47:26:48.29, "Region") # magenta
#Circle Point
-+point(13:27:53.337,+47:27:27.95) # green
++point(13:27:53.189,+47:27:28.71) # green
#Box Point
-+point(13:27:52.080,+47:27:15.75) # red
++point(13:27:51.931,+47:27:16.52) # red
#Diamond Point
-+point(13:27:50.886,+47:27:05.21) # green
++point(13:27:50.737,+47:27:05.98) # green
#Cross Point
-+point(13:27:53.767,+47:27:18.77) # blue
++point(13:27:53.618,+47:27:19.54) # blue
#X Point
-+point(13:27:52.658,+47:27:08.75) # green
++point(13:27:52.509,+47:27:09.52) # green
#Arrow Point
-+point(13:27:51.587,+47:26:58.02) # magenta
++point(13:27:51.438,+47:26:58.79) # magenta
#BoxCircle Point
-+point(13:27:53.315,+47:27:00.88) # green
++point(13:27:53.166,+47:27:01.65) # green
diff --git a/tests/saotng.fk4.reg b/tests/saotng.fk4.reg
index d65ef0a..7636641 100644
--- a/tests/saotng.fk4.reg
+++ b/tests/saotng.fk4.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: degrees (fk4)
#Circle
-+circle(201.96055,47.465832,20) # This is a Comment
++circle(201.95993,47.466046,20) # This is a Comment
#Ellipse
--ellipse(201.95656,47.462095,40,20,45) # background
+-ellipse(201.95594,47.462308,40,20,45) # background
#Box
--box(201.95126,47.458669,80,40,45) # yellow
+-box(201.95064,47.458883,80,40,45) # yellow
#Polygon
-+polygon(201.9465,47.456543,201.94215,47.456674,201.94196,47.453737,201.9463,47.453607) # green
++polygon(201.94588,47.456757,201.94153,47.456887,201.94134,47.453951,201.94568,47.45382) # green
#Line
--line(201.94176,47.451746,201.93535,47.451588) # cyan
-+text(201.93237,47.446533, "Region") # magenta
+-line(201.94114,47.45196,201.93473,47.451801) # cyan
++text(201.93175,47.446747, "Region") # magenta
#Circle Point
-+point(201.97224,47.457763) # green
++point(201.97162,47.457976) # green
#Box Point
-+point(201.967,47.454375) # red
++point(201.96638,47.454589) # red
#Diamond Point
-+point(201.96202,47.451447) # green
++point(201.9614,47.451661) # green
#Cross Point
-+point(201.97403,47.455214) # blue
++point(201.97341,47.455428) # blue
#X Point
-+point(201.96941,47.452432) # green
++point(201.96879,47.452645) # green
#Arrow Point
-+point(201.96495,47.449449) # magenta
++point(201.96433,47.449663) # magenta
#BoxCircle Point
-+point(201.97214,47.450245) # green
++point(201.97152,47.450458) # green
diff --git a/tests/saotng.fk5.hms.reg b/tests/saotng.fk5.hms.reg
index bbd5c94..030eb22 100644
--- a/tests/saotng.fk5.hms.reg
+++ b/tests/saotng.fk5.hms.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: hms (fk5)
#Circle
-+circle(13:29:56.891,+47:12:29.65,20) # This is a Comment
++circle(13:29:56.743,+47:12:30.42,20) # This is a Comment
#Ellipse
--ellipse(13:29:55.941,+47:12:16.17,40,20,45) # background
+-ellipse(13:29:55.792,+47:12:16.94,40,20,45) # background
#Box
--box(13:29:54.679,+47:12:03.80,80,40,45) # yellow
+-box(13:29:54.530,+47:12:04.57,80,40,45) # yellow
#Polygon
-+polygon(13:29:53.543,+47:11:56.12,13:29:52.505,+47:11:56.56,13:29:52.462,+47:11:45.99,13:29:53.499,+47:11:45.55) # green
++polygon(13:29:53.394,+47:11:56.88,13:29:52.357,+47:11:57.32,13:29:52.314,+47:11:46.75,13:29:53.351,+47:11:46.31) # green
#Line
--line(13:29:52.415,+47:11:38.82,13:29:50.885,+47:11:38.21) # cyan
-+text(13:29:50.178,+47:11:19.99, "Region") # magenta
+-line(13:29:52.267,+47:11:39.58,13:29:50.737,+47:11:38.97) # cyan
++text(13:29:50.030,+47:11:20.75, "Region") # magenta
#Circle Point
-+point(13:29:59.689,+47:12:00.68) # green
++point(13:29:59.541,+47:12:01.44) # green
#Box Point
-+point(13:29:58.442,+47:11:48.45) # red
++point(13:29:58.293,+47:11:49.21) # red
#Diamond Point
-+point(13:29:57.256,+47:11:37.88) # green
++point(13:29:57.107,+47:11:38.64) # green
#Cross Point
-+point(13:30:00.120,+47:11:51.52) # blue
++point(13:29:59.971,+47:11:52.28) # blue
#X Point
-+point(13:29:59.018,+47:11:41.47) # green
++point(13:29:58.870,+47:11:42.23) # green
#Arrow Point
-+point(13:29:57.955,+47:11:30.70) # magenta
++point(13:29:57.807,+47:11:31.47) # magenta
#BoxCircle Point
-+point(13:29:59.674,+47:11:33.61) # green
++point(13:29:59.526,+47:11:34.38) # green
diff --git a/tests/saotng.fk5.reg b/tests/saotng.fk5.reg
index 79ba86c..f0bfce5 100644
--- a/tests/saotng.fk5.reg
+++ b/tests/saotng.fk5.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: degrees (fk5)
#Circle
-+circle(202.48705,47.208237,20) # This is a Comment
++circle(202.48643,47.208449,20) # This is a Comment
#Ellipse
--ellipse(202.48309,47.204492,40,20,45) # background
+-ellipse(202.48247,47.204704,40,20,45) # background
#Box
--box(202.47783,47.201057,80,40,45) # yellow
+-box(202.47721,47.201269,80,40,45) # yellow
#Polygon
-+polygon(202.47309,47.198922,202.46877,47.199044,202.46859,47.196108,202.47291,47.195985) # green
++polygon(202.47248,47.199134,202.46815,47.199257,202.46797,47.19632,202.4723,47.196197) # green
#Line
--line(202.4684,47.194116,202.46202,47.193946) # cyan
-+text(202.45907,47.188886, "Region") # magenta
+-line(202.46778,47.194329,202.4614,47.194158) # cyan
++text(202.45846,47.189099, "Region") # magenta
#Circle Point
-+point(202.49871,47.200189) # green
++point(202.49809,47.200401) # green
#Box Point
-+point(202.49351,47.196791) # red
++point(202.49289,47.197004) # red
#Diamond Point
-+point(202.48857,47.193854) # green
++point(202.48795,47.194067) # green
#Cross Point
-+point(202.5005,47.197643) # blue
++point(202.49988,47.197856) # blue
#X Point
-+point(202.49591,47.194852) # green
++point(202.49529,47.195065) # green
#Arrow Point
-+point(202.49148,47.191862) # magenta
++point(202.49086,47.192074) # magenta
#BoxCircle Point
-+point(202.49864,47.19267) # green
++point(202.49802,47.192883) # green
diff --git a/tests/saotng.galactic.hms.reg b/tests/saotng.galactic.hms.reg
index 14d57fa..396bea2 100644
--- a/tests/saotng.galactic.hms.reg
+++ b/tests/saotng.galactic.hms.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: hms (galactic)
#Circle
-+circle(+104:50:10.908,+68:32:38.464,20) # This is a Comment
++circle(+104:50:15.532,+68:32:38.380,20) # This is a Comment
#Ellipse
--ellipse(+104:50:20.096,+68:32:54.718,40,20,45) # background
+-ellipse(+104:50:24.720,+68:32:54.634,40,20,45) # background
#Box
--box(+104:50:38.471,+68:33:11.247,80,40,45) # yellow
+-box(+104:50:43.097,+68:33:11.163,80,40,45) # yellow
#Polygon
-+polygon(+104:50:58.854,+68:33:22.977,+104:51:25.768,+68:33:26.871,+104:51:15.116,+68:33:36.710,+104:50:48.199,+68:33:32.816) # green
++polygon(+104:51:03.480,+68:33:22.893,+104:51:30.395,+68:33:26.787,+104:51:19.743,+68:33:36.626,+104:50:52.826,+68:33:32.732) # green
#Line
--line(+104:51:08.330,+68:33:43.453,+104:51:46.639,+68:33:50.350) # cyan
-+text(+104:51:44.421,+68:34:09.924, "Region") # magenta
+-line(+104:51:12.957,+68:33:43.369,+104:51:51.267,+68:33:50.265) # cyan
++text(+104:51:49.050,+68:34:09.839, "Region") # magenta
#Circle Point
-+point(+104:48:27.434,+68:32:53.313) # green
++point(+104:48:32.059,+68:32:53.230) # green
#Box Point
-+point(+104:48:45.571,+68:33:09.663) # red
++point(+104:48:50.197,+68:33:09.580) # red
#Diamond Point
-+point(+104:49:03.986,+68:33:24.243) # green
++point(+104:49:08.613,+68:33:24.159) # green
#Cross Point
-+point(+104:48:06.279,+68:32:59.893) # blue
++point(+104:48:10.904,+68:32:59.810) # blue
#X Point
-+point(+104:48:23.111,+68:33:13.643) # green
++point(+104:48:27.737,+68:33:13.560) # green
#Arrow Point
-+point(+104:48:38.174,+68:33:27.889) # magenta
++point(+104:48:42.801,+68:33:27.806) # magenta
#BoxCircle Point
-+point(+104:47:57.663,+68:33:18.094) # green
++point(+104:48:02.289,+68:33:18.011) # green
diff --git a/tests/saotng.galactic.reg b/tests/saotng.galactic.reg
index a539722..fed30ad 100644
--- a/tests/saotng.galactic.reg
+++ b/tests/saotng.galactic.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: degrees (galactic)
#Circle
-+circle(104.83636,68.544018,20) # This is a Comment
++circle(104.83765,68.543994,20) # This is a Comment
#Ellipse
--ellipse(104.83892,68.548533,40,20,45) # background
+-ellipse(104.8402,68.54851,40,20,45) # background
#Box
--box(104.84402,68.553124,80,40,45) # yellow
+-box(104.8453,68.553101,80,40,45) # yellow
#Polygon
-+polygon(104.84968,68.556382,104.85716,68.557464,104.8542,68.560197,104.84672,68.559116) # green
++polygon(104.85097,68.556359,104.85844,68.557441,104.85548,68.560174,104.84801,68.559092) # green
#Line
--line(104.85231,68.56207,104.86296,68.563986) # cyan
-+text(104.86234,68.569423, "Region") # magenta
+-line(104.8536,68.562047,104.86424,68.563963) # cyan
++text(104.86363,68.5694, "Region") # magenta
#Circle Point
-+point(104.80762,68.548142) # green
++point(104.80891,68.548119) # green
#Box Point
-+point(104.81266,68.552684) # red
++point(104.81394,68.552661) # red
#Diamond Point
-+point(104.81777,68.556734) # green
++point(104.81906,68.556711) # green
#Cross Point
-+point(104.80174,68.54997) # blue
++point(104.80303,68.549947) # blue
#X Point
-+point(104.80642,68.55379) # green
++point(104.8077,68.553767) # green
#Arrow Point
-+point(104.8106,68.557747) # magenta
++point(104.81189,68.557724) # magenta
#BoxCircle Point
-+point(104.79935,68.555026) # green
++point(104.80064,68.555003) # green
diff --git a/tests/saotng.icrs.hms.reg b/tests/saotng.icrs.hms.reg
index cbce7a5..eb1733e 100644
--- a/tests/saotng.icrs.hms.reg
+++ b/tests/saotng.icrs.hms.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: hms (icrs)
#Circle
-+circle(13:29:56.891,+47:12:29.65,20) # This is a Comment
++circle(13:29:56.743,+47:12:30.42,20) # This is a Comment
#Ellipse
--ellipse(13:29:55.941,+47:12:16.17,40,20,45) # background
+-ellipse(13:29:55.792,+47:12:16.94,40,20,45) # background
#Box
--box(13:29:54.679,+47:12:03.80,80,40,45) # yellow
+-box(13:29:54.530,+47:12:04.57,80,40,45) # yellow
#Polygon
-+polygon(13:29:53.543,+47:11:56.12,13:29:52.505,+47:11:56.56,13:29:52.462,+47:11:45.99,13:29:53.499,+47:11:45.55) # green
++polygon(13:29:53.394,+47:11:56.88,13:29:52.357,+47:11:57.33,13:29:52.314,+47:11:46.75,13:29:53.351,+47:11:46.31) # green
#Line
--line(13:29:52.415,+47:11:38.82,13:29:50.885,+47:11:38.21) # cyan
-+text(13:29:50.178,+47:11:19.99, "Region") # magenta
+-line(13:29:52.267,+47:11:39.58,13:29:50.737,+47:11:38.97) # cyan
++text(13:29:50.030,+47:11:20.76, "Region") # magenta
#Circle Point
-+point(13:29:59.689,+47:12:00.68) # green
++point(13:29:59.541,+47:12:01.45) # green
#Box Point
-+point(13:29:58.442,+47:11:48.45) # red
++point(13:29:58.293,+47:11:49.22) # red
#Diamond Point
-+point(13:29:57.256,+47:11:37.88) # green
++point(13:29:57.108,+47:11:38.64) # green
#Cross Point
-+point(13:30:00.120,+47:11:51.52) # blue
++point(13:29:59.971,+47:11:52.28) # blue
#X Point
-+point(13:29:59.018,+47:11:41.47) # green
++point(13:29:58.870,+47:11:42.24) # green
#Arrow Point
-+point(13:29:57.955,+47:11:30.70) # magenta
++point(13:29:57.807,+47:11:31.47) # magenta
#BoxCircle Point
-+point(13:29:59.674,+47:11:33.61) # green
++point(13:29:59.526,+47:11:34.38) # green
diff --git a/tests/saotng.icrs.reg b/tests/saotng.icrs.reg
index 4b7aa4a..d1975ed 100644
--- a/tests/saotng.icrs.reg
+++ b/tests/saotng.icrs.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: degrees (icrs)
#Circle
-+circle(202.48705,47.208237,20) # This is a Comment
++circle(202.48643,47.208449,20) # This is a Comment
#Ellipse
--ellipse(202.48309,47.204492,40,20,45) # background
+-ellipse(202.48247,47.204705,40,20,45) # background
#Box
--box(202.47783,47.201057,80,40,45) # yellow
+-box(202.47721,47.20127,80,40,45) # yellow
#Polygon
-+polygon(202.47309,47.198922,202.46877,47.199044,202.46859,47.196108,202.47291,47.195985) # green
++polygon(202.47248,47.199135,202.46815,47.199257,202.46797,47.19632,202.4723,47.196198) # green
#Line
--line(202.4684,47.194116,202.46202,47.193946) # cyan
-+text(202.45907,47.188886, "Region") # magenta
+-line(202.46778,47.194329,202.4614,47.194159) # cyan
++text(202.45846,47.189099, "Region") # magenta
#Circle Point
-+point(202.49871,47.200189) # green
++point(202.49809,47.200401) # green
#Box Point
-+point(202.49351,47.196791) # red
++point(202.49289,47.197004) # red
#Diamond Point
-+point(202.48857,47.193854) # green
++point(202.48795,47.194067) # green
#Cross Point
-+point(202.5005,47.197643) # blue
++point(202.49988,47.197856) # blue
#X Point
-+point(202.49591,47.194852) # green
++point(202.49529,47.195065) # green
#Arrow Point
-+point(202.49148,47.191862) # magenta
++point(202.49086,47.192075) # magenta
#BoxCircle Point
-+point(202.49864,47.19267) # green
++point(202.49802,47.192883) # green
diff --git a/tests/saotng.image.reg b/tests/saotng.image.reg
index 479cd5a..00f7cd1 100644
--- a/tests/saotng.image.reg
+++ b/tests/saotng.image.reg
@@ -1,27 +1,27 @@
# filename: img16.fits
# format: pixels (physical)
#Circle
-+circle(163,538,20) # This is a Comment
++circle(166,546,20) # This is a Comment
#Ellipse
--ellipse(245,521,40,20,45) # background
+-ellipse(248,529,40,20,45) # background
#Box
--box(335,519,80,40,45) # yellow
+-box(338,527,80,40,45) # yellow
#Polygon
-+polygon(404.24723,530,442,567.75275,479.75277,530,442,492.24723) # green
++polygon(407.24723,538,445,575.75275,482.75277,538,445,500.24723) # green
#Line
--line(506,505,566,556) # cyan
-+text(655,513, "Region") # magenta
+-line(509,513,569,564) # cyan
++text(658,521, "Region") # magenta
#Circle Point
-+point(156,333) # green
++point(159,341) # green
#Box Point
-+point(245,331) # red
++point(248,339) # red
#Diamond Point
-+point(326,333) # green
++point(329,341) # green
#Cross Point
-+point(171,284) # blue
++point(174,292) # blue
#X Point
-+point(247,285) # green
++point(250,293) # green
#Arrow Point
-+point(324,282) # magenta
++point(327,290) # magenta
#BoxCircle Point
-+point(249,233) # green
++point(252,241) # green
diff --git a/tests/xml.ecliptic.hms.reg b/tests/xml.ecliptic.hms.reg
index 9eb192c..b487939 100644
--- a/tests/xml.ecliptic.hms.reg
+++ b/tests/xml.ecliptic.hms.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>+175:06:47.329</TD><TD>+50:57:10.157</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>+175:06:47.329</TD><TD>+50:56:53.559</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>+175:06:42.199</TD><TD>+50:56:36.012</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+175:06:34.390 +175:06:20.354 +175:06:29.571 +175:06:43.608</TD><TD>+50:56:23.015 +50:56:17.207 +50:56:08.362 +50:56:14.170</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>+175:06:35.595 +175:06:16.061</TD><TD>+50:56:02.262 +50:55:52.669</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>+175:06:22.822</TD><TD>+50:55:44.904</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>+175:06:23.624</TD><TD>+50:55:33.666</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>281.71724</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+175:07:17.569 +175:06:55.311</TD><TD>+50:56:21.473 +50:56:11.427</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>+175:07:21.832</TD><TD>+50:57:05.650</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>+175:07:17.633</TD><TD>+50:56:48.993</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>+175:07:12.383</TD><TD>+50:56:32.069</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+175:07:50.928</TD><TD>+50:57:03.264</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+175:07:45.855</TD><TD>+50:56:45.911</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+175:07:40.062</TD><TD>+50:56:30.273</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+175:08:05.063</TD><TD>+50:56:58.379</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+175:07:59.895</TD><TD>+50:56:43.670</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+175:07:55.897</TD><TD>+50:56:28.607</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+175:08:15.784</TD><TD>+50:56:41.187</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>+175:07:14.006 +175:06:47.744</TD><TD>+50:56:00.887 +50:55:45.494</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+175:07:33.735</TD><TD>+50:56:11.060</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+175:08:01.631</TD><TD>+50:56:07.007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>333.29914 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>+175:06:59.749</TD><TD>+50:55:38.055</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+175:07:30.960</TD><TD>+50:55:54.824</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+175:07:58.173</TD><TD>+50:55:50.658</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD>326.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+175:07:25.403</TD><TD>+50:55:37.941</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+175:07:52.752</TD><TD>+50:55:35.173</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD>326.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>+175:07:30.006</TD><TD>+50:55:19.728</TD><TD></TD><TD></TD><TD>1.9820003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>+175:06:44.609</TD><TD>+50:57:09.897</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>+175:06:44.610</TD><TD>+50:56:53.299</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>+175:06:39.479</TD><TD>+50:56:35.752</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+175:06:31.671 +175:06:17.634 +175:06:26.852 +175:06:40.888</TD><TD>+50:56:22.755 +50:56:16.946 +50:56:08.101 +50:56:13.910</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>+175:06:32.876 +175:06:13.343</TD><TD>+50:56:02.002 +50:55:52.408</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>+175:06:20.104</TD><TD>+50:55:44.643</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>+175:06:20.905</TD><TD>+50:55:33.406</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>281.71724</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+175:07:14.850 +175:06:52.592</TD><TD>+50:56:21.212 +50:56:11.166</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>+175:07:19.112</TD><TD>+50:57:05.390</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>+175:07:14.913</TD><TD>+50:56:48.733</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>+175:07:09.664</TD><TD>+50:56:31.809</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+175:07:48.208</TD><TD>+50:57:03.004</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+175:07:43.135</TD><TD>+50:56:45.651</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+175:07:37.342</TD><TD>+50:56:30.013</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+175:08:02.343</TD><TD>+50:56:58.119</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+175:07:57.176</TD><TD>+50:56:43.411</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+175:07:53.177</TD><TD>+50:56:28.347</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+175:08:13.064</TD><TD>+50:56:40.927</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>+175:07:11.287 +175:06:45.026</TD><TD>+50:56:00.627 +50:55:45.234</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+175:07:31.016</TD><TD>+50:56:10.800</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+175:07:58.912</TD><TD>+50:56:06.747</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>333.29914 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>+175:06:57.031</TD><TD>+50:55:37.795</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+175:07:28.241</TD><TD>+50:55:54.564</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+175:07:55.454</TD><TD>+50:55:50.398</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD>326.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+175:07:22.684</TD><TD>+50:55:37.680</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+175:07:50.034</TD><TD>+50:55:34.913</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD>326.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.ecliptic.reg b/tests/xml.ecliptic.reg
index 71b4d14..5086a19 100644
--- a/tests/xml.ecliptic.reg
+++ b/tests/xml.ecliptic.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>175.11315</TD><TD>50.952821</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>175.11315</TD><TD>50.948211</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>175.11172</TD><TD>50.943337</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>175.10955 175.10565 175.10821 175.11211</TD><TD>50.939727 50.938113 50.935656 50.937269</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>175.10989 175.10446</TD><TD>50.933962 50.931297</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>175.10634</TD><TD>50.92914</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>175.10656</TD><TD>50.926018</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>281.71724</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>175.12155 175.11536</TD><TD>50.939298 50.936507</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>175.12273</TD><TD>50.951569</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>175.12156</TD><TD>50.946943</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>175.12011</TD><TD>50.942241</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>175.13081</TD><TD>50.950907</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>175.1294</TD><TD>50.946087</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>175.12779</TD><TD>50.941742</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>175.13474</TD><TD>50.94955</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>175.1333</TD><TD>50.945464</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>175.13219</TD><TD>50.94128</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>175.13772</TD><TD>50.944774</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>175.12056 175.11326</TD><TD>50.93358 50.929304</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>175.12604</TD><TD>50.936406</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>175.13379</TD><TD>50.93528</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>333.29914 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>175.1166</TD><TD>50.927238</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>175.12527</TD><TD>50.931896</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>175.13283</TD><TD>50.930738</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD>326.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>175.12372</TD><TD>50.927206</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>175.13132</TD><TD>50.926437</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD>326.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>175.125</TD><TD>50.922147</TD><TD></TD><TD></TD><TD>1.9820003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>175.11239</TD><TD>50.952749</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>175.11239</TD><TD>50.948139</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>175.11097</TD><TD>50.943264</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>175.1088 175.1049 175.10746 175.11136</TD><TD>50.939654 50.938041 50.935584 50.937197</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>175.10913 175.10371</TD><TD>50.933889 50.931224</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>175.10558</TD><TD>50.929068</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>326.71724</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>175.10581</TD><TD>50.925946</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>281.71724</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>175.12079 175.11461</TD><TD>50.939226 50.936435</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>175.12198</TD><TD>50.951497</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>175.12081</TD><TD>50.94687</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>175.11935</TD><TD>50.942169</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>175.13006</TD><TD>50.950834</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>175.12865</TD><TD>50.946014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>175.12704</TD><TD>50.94167</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>175.13398</TD><TD>50.949478</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>175.13255</TD><TD>50.945392</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>175.13144</TD><TD>50.941207</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>175.13696</TD><TD>50.944702</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>175.1198 175.11251</TD><TD>50.933507 50.929232</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>175.12528</TD><TD>50.936333</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>175.13303</TD><TD>50.935208</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>333.29914 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>175.11584</TD><TD>50.927165</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>175.12451</TD><TD>50.931823</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>175.13207</TD><TD>50.930666</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>326.71724</TD><TD>326.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>175.12297</TD><TD>50.927133</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD>281.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>175.13056</TD><TD>50.926365</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>326.71724</TD><TD>326.71724 11.71724 101.71724 191.71724</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.fk4.hms.reg b/tests/xml.fk4.hms.reg
index a0fa095..caedbb9 100644
--- a/tests/xml.fk4.hms.reg
+++ b/tests/xml.fk4.hms.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>13:27:50.533</TD><TD>+47:27:57.00</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>13:27:49.574</TD><TD>+47:27:43.54</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.553089</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>13:27:48.303</TD><TD>+47:27:31.21</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.553089</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>13:27:47.159 13:27:46.117 13:27:46.071 13:27:47.113</TD><TD>+47:27:23.56 +47:27:24.03 +47:27:13.45 +47:27:12.98</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>13:27:46.022 13:27:44.484</TD><TD>+47:27:06.29 +47:27:05.72</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>13:27:44.377</TD><TD>+47:26:56.93</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.553089</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>13:27:43.769</TD><TD>+47:26:47.52</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.55309</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>13:27:49.245 13:27:47.544</TD><TD>+47:27:06.37 +47:27:06.44</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>13:27:52.010</TD><TD>+47:27:40.61</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>13:27:50.837</TD><TD>+47:27:28.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.553089</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>13:27:49.595</TD><TD>+47:27:16.88</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.553089</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:27:53.337</TD><TD>+47:27:27.95</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:27:52.080</TD><TD>+47:27:15.75</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:27:50.886</TD><TD>+47:27:05.21</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:27:53.767</TD><TD>+47:27:18.77</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:27:52.658</TD><TD>+47:27:08.75</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:27:51.587</TD><TD>+47:26:58.02</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:27:53.315</TD><TD>+47:27:00.88</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>13:27:47.877 13:27:45.666</TD><TD>+47:26:51.00 +47:26:48.21</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>13:27:49.458</TD><TD>+47:26:51.97</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.55309 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>13:27:50.629</TD><TD>+47:26:38.39</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>9.134989 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>13:27:45.842</TD><TD>+47:26:37.75</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>13:27:48.381</TD><TD>+47:26:39.83</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.553089</TD><TD>317.55309 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>13:27:49.512</TD><TD>+47:26:26.41</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.553089</TD><TD>2.553089 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>13:27:47.127</TD><TD>+47:26:28.19</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.553089</TD><TD>317.55309 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>13:27:48.345</TD><TD>+47:26:15.86</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.553089</TD><TD>2.553089 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>13:27:46.308</TD><TD>+47:26:11.73</TD><TD></TD><TD></TD><TD>1.9820003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>13:27:50.384</TD><TD>+47:27:57.76</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>13:27:49.426</TD><TD>+47:27:44.31</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.55409</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>13:27:48.154</TD><TD>+47:27:31.98</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.55409</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>13:27:47.011 13:27:45.968 13:27:45.922 13:27:46.964</TD><TD>+47:27:24.32 +47:27:24.79 +47:27:14.22 +47:27:13.75</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>13:27:45.873 13:27:44.336</TD><TD>+47:27:07.05 +47:27:06.48</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>13:27:44.228</TD><TD>+47:26:57.70</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.55409</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>13:27:43.620</TD><TD>+47:26:48.29</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.55409</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>13:27:49.096 13:27:47.395</TD><TD>+47:27:07.14 +47:27:07.21</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>13:27:51.861</TD><TD>+47:27:41.38</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>13:27:50.688</TD><TD>+47:27:29.43</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.55409</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>13:27:49.447</TD><TD>+47:27:17.65</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.55409</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:27:53.189</TD><TD>+47:27:28.71</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:27:51.931</TD><TD>+47:27:16.52</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:27:50.737</TD><TD>+47:27:05.98</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:27:53.618</TD><TD>+47:27:19.54</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:27:52.509</TD><TD>+47:27:09.52</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:27:51.438</TD><TD>+47:26:58.79</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:27:53.166</TD><TD>+47:27:01.65</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>13:27:47.729 13:27:45.517</TD><TD>+47:26:51.77 +47:26:48.98</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>13:27:49.309</TD><TD>+47:26:52.74</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.55409 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>13:27:50.481</TD><TD>+47:26:39.16</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>9.13599 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>13:27:45.693</TD><TD>+47:26:38.52</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>13:27:48.233</TD><TD>+47:26:40.60</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.55409</TD><TD>317.55409 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>13:27:49.363</TD><TD>+47:26:27.18</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.55409</TD><TD>2.55409 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>13:27:46.979</TD><TD>+47:26:28.96</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.55409</TD><TD>317.55409 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>13:27:48.197</TD><TD>+47:26:16.63</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.55409</TD><TD>2.55409 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.fk4.reg b/tests/xml.fk4.reg
index b174aee..5dfff74 100644
--- a/tests/xml.fk4.reg
+++ b/tests/xml.fk4.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>201.96055</TD><TD>47.465832</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>201.95656</TD><TD>47.462095</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.553089</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>201.95126</TD><TD>47.458669</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.553089</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>201.9465 201.94215 201.94196 201.9463</TD><TD>47.456543 47.456674 47.453737 47.453607</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>201.94176 201.93535</TD><TD>47.451746 47.451588</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>201.9349</TD><TD>47.449146</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.553089</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>201.93237</TD><TD>47.446533</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.55309</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>201.95519 201.9481</TD><TD>47.451771 47.451789</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>201.96671</TD><TD>47.461282</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>201.96182</TD><TD>47.457961</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.553089</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>201.95665</TD><TD>47.454688</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.553089</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>201.97224</TD><TD>47.457763</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>201.967</TD><TD>47.454375</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>201.96202</TD><TD>47.451447</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>201.97403</TD><TD>47.455214</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>201.96941</TD><TD>47.452432</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>201.96495</TD><TD>47.449449</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>201.97214</TD><TD>47.450245</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>201.94949 201.94028</TD><TD>47.4475 47.446725</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>201.95608</TD><TD>47.447769</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.55309 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>201.96096</TD><TD>47.443997</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>9.134989 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>201.94101</TD><TD>47.443819</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>201.95159</TD><TD>47.444397</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.553089</TD><TD>317.55309 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>201.9563</TD><TD>47.44067</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.553089</TD><TD>2.553089 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>201.94636</TD><TD>47.441164</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.553089</TD><TD>317.55309 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>201.95144</TD><TD>47.437738</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.553089</TD><TD>2.553089 47.553089 137.55309 227.55309</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>201.94295</TD><TD>47.436591</TD><TD></TD><TD></TD><TD>1.9820003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>201.95993</TD><TD>47.466046</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>201.95594</TD><TD>47.462308</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.55409</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>201.95064</TD><TD>47.458883</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.55409</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>201.94588 201.94153 201.94134 201.94568</TD><TD>47.456757 47.456887 47.453951 47.45382</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>201.94114 201.93473</TD><TD>47.45196 47.451801</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>201.93428</TD><TD>47.44936</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.55409</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>201.93175</TD><TD>47.446747</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.55409</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>201.95457 201.94748</TD><TD>47.451984 47.452003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>201.96609</TD><TD>47.461495</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>201.9612</TD><TD>47.458175</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.55409</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>201.95603</TD><TD>47.454902</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.55409</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>201.97162</TD><TD>47.457976</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>201.96638</TD><TD>47.454589</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>201.9614</TD><TD>47.451661</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>201.97341</TD><TD>47.455428</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>201.96879</TD><TD>47.452645</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>201.96433</TD><TD>47.449663</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>201.97152</TD><TD>47.450458</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>201.94887 201.93966</TD><TD>47.447713 47.446938</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>201.95546</TD><TD>47.447982</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.55409 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>201.96034</TD><TD>47.444211</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>9.13599 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>201.94039</TD><TD>47.444033</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>201.95097</TD><TD>47.444611</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.55409</TD><TD>317.55409 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>201.95568</TD><TD>47.440883</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.55409</TD><TD>2.55409 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>201.94574</TD><TD>47.441378</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.55409</TD><TD>317.55409 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>201.95082</TD><TD>47.437951</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.55409</TD><TD>2.55409 47.55409 137.55409 227.55409</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.fk5.hms.reg b/tests/xml.fk5.hms.reg
index 64d57bf..d06b007 100644
--- a/tests/xml.fk5.hms.reg
+++ b/tests/xml.fk5.hms.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>13:29:56.891</TD><TD>+47:12:29.65</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>13:29:55.941</TD><TD>+47:12:16.17</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>13:29:54.679</TD><TD>+47:12:03.80</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>13:29:53.543 13:29:52.505 13:29:52.462 13:29:53.499</TD><TD>+47:11:56.12 +47:11:56.56 +47:11:45.99 +47:11:45.55</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>13:29:52.415 13:29:50.885</TD><TD>+47:11:38.82 +47:11:38.21</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>13:29:50.781</TD><TD>+47:11:29.41</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>13:29:50.178</TD><TD>+47:11:19.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.39831</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>13:29:55.623 13:29:53.930</TD><TD>+47:11:38.99 +47:11:39.02</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>13:29:58.365</TD><TD>+47:12:13.31</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>13:29:57.201</TD><TD>+47:12:01.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>13:29:55.969</TD><TD>+47:11:49.51</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:59.689</TD><TD>+47:12:00.68</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:58.442</TD><TD>+47:11:48.45</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:57.256</TD><TD>+47:11:37.88</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:30:00.120</TD><TD>+47:11:51.52</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:59.018</TD><TD>+47:11:41.47</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:57.955</TD><TD>+47:11:30.70</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:59.674</TD><TD>+47:11:33.61</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>13:29:54.266 13:29:52.066</TD><TD>+47:11:23.58 +47:11:20.73</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>13:29:55.839</TD><TD>+47:11:24.59</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>13:29:57.008</TD><TD>+47:11:11.05</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>8.9802109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>13:29:52.244</TD><TD>+47:11:10.28</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>13:29:54.770</TD><TD>+47:11:12.43</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>13:29:55.899</TD><TD>+47:10:59.04</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>13:29:53.525</TD><TD>+47:11:00.75</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>13:29:54.741</TD><TD>+47:10:48.45</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>13:29:52.715</TD><TD>+47:10:44.27</TD><TD></TD><TD></TD><TD>1.9820003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>13:29:56.743</TD><TD>+47:12:30.42</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>13:29:55.792</TD><TD>+47:12:16.94</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>13:29:54.530</TD><TD>+47:12:04.57</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>13:29:53.394 13:29:52.357 13:29:52.314 13:29:53.351</TD><TD>+47:11:56.88 +47:11:57.32 +47:11:46.75 +47:11:46.31</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>13:29:52.267 13:29:50.737</TD><TD>+47:11:39.58 +47:11:38.97</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>13:29:50.632</TD><TD>+47:11:30.18</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>13:29:50.030</TD><TD>+47:11:20.75</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.39831</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>13:29:55.474 13:29:53.782</TD><TD>+47:11:39.76 +47:11:39.78</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>13:29:58.217</TD><TD>+47:12:14.07</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>13:29:57.053</TD><TD>+47:12:02.09</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>13:29:55.820</TD><TD>+47:11:50.27</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:59.541</TD><TD>+47:12:01.44</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:58.293</TD><TD>+47:11:49.21</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:57.107</TD><TD>+47:11:38.64</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:59.971</TD><TD>+47:11:52.28</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:58.870</TD><TD>+47:11:42.23</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:57.807</TD><TD>+47:11:31.47</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:59.526</TD><TD>+47:11:34.38</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>13:29:54.118 13:29:51.918</TD><TD>+47:11:24.35 +47:11:21.50</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>13:29:55.690</TD><TD>+47:11:25.36</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>13:29:56.859</TD><TD>+47:11:11.81</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>8.9802109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>13:29:52.095</TD><TD>+47:11:11.04</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>13:29:54.622</TD><TD>+47:11:13.19</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>13:29:55.750</TD><TD>+47:10:59.80</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>13:29:53.377</TD><TD>+47:11:01.52</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>13:29:54.593</TD><TD>+47:10:49.22</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.fk5.reg b/tests/xml.fk5.reg
index 6eb1bb9..3a83f03 100644
--- a/tests/xml.fk5.reg
+++ b/tests/xml.fk5.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>202.48705</TD><TD>47.208237</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>202.48309</TD><TD>47.204492</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>202.47783</TD><TD>47.201057</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>202.47309 202.46877 202.46859 202.47291</TD><TD>47.198922 47.199044 47.196108 47.195985</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>202.4684 202.46202</TD><TD>47.194116 47.193946</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>202.46159</TD><TD>47.191504</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>202.45907</TD><TD>47.188886</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.39831</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>202.48176 202.47471</TD><TD>47.194165 47.194171</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>202.49319</TD><TD>47.203697</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>202.48834</TD><TD>47.200368</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>202.4832</TD><TD>47.197085</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.49871</TD><TD>47.200189</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.49351</TD><TD>47.196791</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.48857</TD><TD>47.193854</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.5005</TD><TD>47.197643</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.49591</TD><TD>47.194852</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.49148</TD><TD>47.191862</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.49864</TD><TD>47.19267</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>202.47611 202.46694</TD><TD>47.189884 47.189092</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>202.48266</TD><TD>47.190165</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>202.48753</TD><TD>47.186403</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>8.9802109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>202.46768</TD><TD>47.186188</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>202.47821</TD><TD>47.186785</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>202.48291</TD><TD>47.183066</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>202.47302</TD><TD>47.183543</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>202.47809</TD><TD>47.180126</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>202.46965</TD><TD>47.178963</TD><TD></TD><TD></TD><TD>1.9820003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>202.48643</TD><TD>47.208449</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>202.48247</TD><TD>47.204704</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>202.47721</TD><TD>47.201269</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>202.47248 202.46815 202.46797 202.4723</TD><TD>47.199134 47.199257 47.19632 47.196197</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>202.46778 202.4614</TD><TD>47.194329 47.194158</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>202.46097</TD><TD>47.191716</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>202.45846</TD><TD>47.189099</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.39831</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>202.48114 202.47409</TD><TD>47.194378 47.194383</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>202.49257</TD><TD>47.20391</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>202.48772</TD><TD>47.20058</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>202.48258</TD><TD>47.197298</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49809</TD><TD>47.200401</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49289</TD><TD>47.197004</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.48795</TD><TD>47.194067</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49988</TD><TD>47.197856</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49529</TD><TD>47.195065</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49086</TD><TD>47.192074</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49802</TD><TD>47.192883</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>202.47549 202.46632</TD><TD>47.190096 47.189304</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>202.48204</TD><TD>47.190378</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>202.48691</TD><TD>47.186615</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>8.9802109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>202.46706</TD><TD>47.1864</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>202.47759</TD><TD>47.186997</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>202.48229</TD><TD>47.183279</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>202.47241</TD><TD>47.183755</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>202.47747</TD><TD>47.180338</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.galactic.hms.reg b/tests/xml.galactic.hms.reg
index 1f1c76e..74fd720 100644
--- a/tests/xml.galactic.hms.reg
+++ b/tests/xml.galactic.hms.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>+104:50:10.908</TD><TD>+68:32:38.464</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>+104:50:20.096</TD><TD>+68:32:54.718</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>+104:50:38.471</TD><TD>+68:33:11.247</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+104:50:58.854 +104:51:25.768 +104:51:15.116 +104:50:48.199</TD><TD>+68:33:22.977 +68:33:26.871 +68:33:36.710 +68:33:32.816</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>+104:51:08.330 +104:51:46.639</TD><TD>+68:33:43.453 +68:33:50.350</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>+104:51:39.534</TD><TD>+68:33:58.818</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>+104:51:44.421</TD><TD>+68:34:09.924</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>113.38935</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+104:49:46.822 +104:50:29.960</TD><TD>+68:33:29.997 +68:33:36.996</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>+104:49:15.203</TD><TD>+68:32:47.274</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>+104:49:31.493</TD><TD>+68:33:03.053</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>+104:49:49.713</TD><TD>+68:33:18.959</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+104:48:27.434</TD><TD>+68:32:53.313</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+104:48:45.571</TD><TD>+68:33:09.663</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+104:49:03.986</TD><TD>+68:33:24.243</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+104:48:06.279</TD><TD>+68:32:59.893</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+104:48:23.111</TD><TD>+68:33:13.643</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+104:48:38.174</TD><TD>+68:33:27.889</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+104:47:57.663</TD><TD>+68:33:18.094</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>+104:50:04.231 +104:50:57.113</TD><TD>+68:33:49.703 +68:34:01.425</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+104:49:25.285</TD><TD>+68:33:42.254</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+104:48:40.416</TD><TD>+68:33:49.773</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>164.97125 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>+104:50:40.959</TD><TD>+68:34:10.243</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+104:49:38.951</TD><TD>+68:33:57.801</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+104:48:55.286</TD><TD>+68:34:05.346</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD>158.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+104:49:57.683</TD><TD>+68:34:13.628</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+104:49:13.002</TD><TD>+68:34:19.822</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD>158.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>+104:49:59.987</TD><TD>+68:34:32.051</TD><TD></TD><TD></TD><TD>1.9820003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>+104:50:15.532</TD><TD>+68:32:38.380</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>+104:50:24.720</TD><TD>+68:32:54.634</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>+104:50:43.097</TD><TD>+68:33:11.163</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+104:51:03.480 +104:51:30.395 +104:51:19.743 +104:50:52.826</TD><TD>+68:33:22.893 +68:33:26.787 +68:33:36.626 +68:33:32.732</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>+104:51:12.957 +104:51:51.267</TD><TD>+68:33:43.369 +68:33:50.265</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>+104:51:44.162</TD><TD>+68:33:58.733</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>+104:51:49.050</TD><TD>+68:34:09.839</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>113.38935</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+104:49:51.449 +104:50:34.587</TD><TD>+68:33:29.913 +68:33:36.913</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>+104:49:19.827</TD><TD>+68:32:47.191</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>+104:49:36.118</TD><TD>+68:33:02.969</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>+104:49:54.339</TD><TD>+68:33:18.875</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+104:48:32.059</TD><TD>+68:32:53.230</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+104:48:50.197</TD><TD>+68:33:09.580</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+104:49:08.613</TD><TD>+68:33:24.159</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+104:48:10.904</TD><TD>+68:32:59.810</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+104:48:27.737</TD><TD>+68:33:13.560</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+104:48:42.801</TD><TD>+68:33:27.806</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+104:48:02.289</TD><TD>+68:33:18.011</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>+104:50:08.859 +104:51:01.742</TD><TD>+68:33:49.619 +68:34:01.341</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+104:49:29.913</TD><TD>+68:33:42.170</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+104:48:45.044</TD><TD>+68:33:49.690</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>164.97125 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>+104:50:45.588</TD><TD>+68:34:10.159</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+104:49:43.580</TD><TD>+68:33:57.717</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+104:48:59.915</TD><TD>+68:34:05.263</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD>158.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+104:50:02.312</TD><TD>+68:34:13.544</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+104:49:17.632</TD><TD>+68:34:19.739</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD>158.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.galactic.reg b/tests/xml.galactic.reg
index 1dd97d4..76036aa 100644
--- a/tests/xml.galactic.reg
+++ b/tests/xml.galactic.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>104.83636</TD><TD>68.544018</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>104.83892</TD><TD>68.548533</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>104.84402</TD><TD>68.553124</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>104.84968 104.85716 104.8542 104.84672</TD><TD>68.556382 68.557464 68.560197 68.559116</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>104.85231 104.86296</TD><TD>68.56207 68.563986</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>104.86098</TD><TD>68.566338</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>104.86234</TD><TD>68.569423</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>113.38935</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>104.82967 104.84166</TD><TD>68.558332 68.560277</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>104.82089</TD><TD>68.546465</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>104.82541</TD><TD>68.550848</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>104.83048</TD><TD>68.555266</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>104.80762</TD><TD>68.548142</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>104.81266</TD><TD>68.552684</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>104.81777</TD><TD>68.556734</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>104.80174</TD><TD>68.54997</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>104.80642</TD><TD>68.55379</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>104.8106</TD><TD>68.557747</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>104.79935</TD><TD>68.555026</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>104.83451 104.8492</TD><TD>68.563806 68.567063</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>104.82369</TD><TD>68.561737</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>104.81123</TD><TD>68.563826</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>164.97125 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>104.84471</TD><TD>68.569512</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>104.82749</TD><TD>68.566056</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>104.81536</TD><TD>68.568152</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD>158.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>104.83269</TD><TD>68.570452</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>104.82028</TD><TD>68.572173</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD>158.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>104.83333</TD><TD>68.57557</TD><TD></TD><TD></TD><TD>1.9820003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>104.83765</TD><TD>68.543994</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>104.8402</TD><TD>68.54851</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>104.8453</TD><TD>68.553101</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>104.85097 104.85844 104.85548 104.84801</TD><TD>68.556359 68.557441 68.560174 68.559092</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>104.8536 104.86424</TD><TD>68.562047 68.563963</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>104.86227</TD><TD>68.566315</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>158.38935</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>104.86363</TD><TD>68.5694</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>113.38935</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>104.83096 104.84294</TD><TD>68.558309 68.560253</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>104.82217</TD><TD>68.546442</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>104.8267</TD><TD>68.550825</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>104.83176</TD><TD>68.555243</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>104.80891</TD><TD>68.548119</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>104.81394</TD><TD>68.552661</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>104.81906</TD><TD>68.556711</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>104.80303</TD><TD>68.549947</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>104.8077</TD><TD>68.553767</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>104.81189</TD><TD>68.557724</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>104.80064</TD><TD>68.555003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>104.83579 104.85048</TD><TD>68.563783 68.567039</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>104.82498</TD><TD>68.561714</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>104.81251</TD><TD>68.563803</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>164.97125 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>104.846</TD><TD>68.569488</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>104.82877</TD><TD>68.566033</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>104.81664</TD><TD>68.568129</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>158.38935</TD><TD>158.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>104.83398</TD><TD>68.570429</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD>113.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>104.82156</TD><TD>68.57215</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>158.38935</TD><TD>158.38935 203.38935 293.38935 23.389346</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.icrs.hms.reg b/tests/xml.icrs.hms.reg
index e182c5b..3be2bdc 100644
--- a/tests/xml.icrs.hms.reg
+++ b/tests/xml.icrs.hms.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>13:29:56.891</TD><TD>+47:12:29.65</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>13:29:55.941</TD><TD>+47:12:16.17</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>13:29:54.679</TD><TD>+47:12:03.80</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>13:29:53.543 13:29:52.505 13:29:52.462 13:29:53.499</TD><TD>+47:11:56.12 +47:11:56.56 +47:11:45.99 +47:11:45.55</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>13:29:52.415 13:29:50.885</TD><TD>+47:11:38.82 +47:11:38.21</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>13:29:50.781</TD><TD>+47:11:29.41</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>13:29:50.178</TD><TD>+47:11:19.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.39831</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>13:29:55.623 13:29:53.930</TD><TD>+47:11:38.99 +47:11:39.02</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>13:29:58.365</TD><TD>+47:12:13.31</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>13:29:57.201</TD><TD>+47:12:01.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>13:29:55.969</TD><TD>+47:11:49.51</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:59.689</TD><TD>+47:12:00.68</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:58.442</TD><TD>+47:11:48.45</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:57.256</TD><TD>+47:11:37.88</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:30:00.120</TD><TD>+47:11:51.52</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:59.018</TD><TD>+47:11:41.47</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:57.955</TD><TD>+47:11:30.70</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>13:29:59.674</TD><TD>+47:11:33.61</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>13:29:54.266 13:29:52.066</TD><TD>+47:11:23.58 +47:11:20.73</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>13:29:55.839</TD><TD>+47:11:24.59</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>13:29:57.008</TD><TD>+47:11:11.05</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>8.9802109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>13:29:52.244</TD><TD>+47:11:10.28</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>13:29:54.770</TD><TD>+47:11:12.43</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>13:29:55.899</TD><TD>+47:10:59.04</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>13:29:53.525</TD><TD>+47:11:00.75</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>13:29:54.741</TD><TD>+47:10:48.45</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>13:29:52.715</TD><TD>+47:10:44.27</TD><TD></TD><TD></TD><TD>1.9820003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>13:29:56.743</TD><TD>+47:12:30.42</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>13:29:55.792</TD><TD>+47:12:16.94</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.3983198</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>13:29:54.530</TD><TD>+47:12:04.57</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.3983198</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>13:29:53.394 13:29:52.357 13:29:52.314 13:29:53.351</TD><TD>+47:11:56.88 +47:11:57.33 +47:11:46.75 +47:11:46.31</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>13:29:52.267 13:29:50.737</TD><TD>+47:11:39.58 +47:11:38.97</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>13:29:50.632</TD><TD>+47:11:30.18</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.3983198</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>13:29:50.030</TD><TD>+47:11:20.76</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.39832</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>13:29:55.474 13:29:53.782</TD><TD>+47:11:39.76 +47:11:39.78</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>13:29:58.217</TD><TD>+47:12:14.08</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>13:29:57.053</TD><TD>+47:12:02.09</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983198</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>13:29:55.820</TD><TD>+47:11:50.27</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983198</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:59.541</TD><TD>+47:12:01.45</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:58.293</TD><TD>+47:11:49.22</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:57.108</TD><TD>+47:11:38.64</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:59.971</TD><TD>+47:11:52.28</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:58.870</TD><TD>+47:11:42.24</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:57.807</TD><TD>+47:11:31.47</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>13:29:59.526</TD><TD>+47:11:34.38</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>13:29:54.118 13:29:51.918</TD><TD>+47:11:24.35 +47:11:21.50</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>13:29:55.691</TD><TD>+47:11:25.36</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.39832 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>13:29:56.859</TD><TD>+47:11:11.82</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>8.9802198 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>13:29:52.095</TD><TD>+47:11:11.04</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>13:29:54.622</TD><TD>+47:11:13.19</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983198</TD><TD>317.39832 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>13:29:55.751</TD><TD>+47:10:59.81</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983198</TD><TD>2.3983198 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>13:29:53.377</TD><TD>+47:11:01.52</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983198</TD><TD>317.39832 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>13:29:54.593</TD><TD>+47:10:49.22</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983198</TD><TD>2.3983198 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.icrs.reg b/tests/xml.icrs.reg
index d437f19..d6e5c96 100644
--- a/tests/xml.icrs.reg
+++ b/tests/xml.icrs.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>202.48705</TD><TD>47.208237</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>202.48309</TD><TD>47.204492</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>202.47783</TD><TD>47.201057</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>202.47309 202.46877 202.46859 202.47291</TD><TD>47.198922 47.199044 47.196108 47.195985</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>202.4684 202.46202</TD><TD>47.194116 47.193946</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>202.46159</TD><TD>47.191504</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>202.45907</TD><TD>47.188886</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.39831</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>202.48176 202.47471</TD><TD>47.194165 47.194171</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>202.49319</TD><TD>47.203697</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>202.48834</TD><TD>47.200368</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>202.4832</TD><TD>47.197085</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.49871</TD><TD>47.200189</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.49351</TD><TD>47.196791</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.48857</TD><TD>47.193854</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.5005</TD><TD>47.197643</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.49591</TD><TD>47.194852</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.49148</TD><TD>47.191862</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>202.49864</TD><TD>47.19267</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>202.47611 202.46694</TD><TD>47.189884 47.189092</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>202.48266</TD><TD>47.190165</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>202.48753</TD><TD>47.186403</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>8.9802109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>202.46768</TD><TD>47.186188</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>202.47821</TD><TD>47.186785</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>202.48291</TD><TD>47.183066</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>202.47302</TD><TD>47.183543</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>317.39831 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>202.47809</TD><TD>47.180126</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983109</TD><TD>2.3983109 47.398311 137.39831 227.39831</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>202.46965</TD><TD>47.178963</TD><TD></TD><TD></TD><TD>1.9820003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>202.48643</TD><TD>47.208449</TD><TD></TD><TD></TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>202.48247</TD><TD>47.204705</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD>2.3983198</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>202.47721</TD><TD>47.20127</TD><TD></TD><TD></TD><TD>15.856003</TD><TD>7.9280014</TD><TD></TD><TD></TD><TD>2.3983198</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>202.47248 202.46815 202.46797 202.4723</TD><TD>47.199135 47.199257 47.19632 47.196198</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>202.46778 202.4614</TD><TD>47.194329 47.194159</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>202.46097</TD><TD>47.191716</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD>2.3983198</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>202.45846</TD><TD>47.189099</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>317.39832</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>202.48114 202.47409</TD><TD>47.194378 47.194384</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>202.49257</TD><TD>47.20391</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1.9820003 3.9640007 5.946001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>202.48772</TD><TD>47.200581</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983198</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>202.48259</TD><TD>47.197298</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983198</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49809</TD><TD>47.200401</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49289</TD><TD>47.197004</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.48795</TD><TD>47.194067</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49988</TD><TD>47.197856</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49529</TD><TD>47.195065</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49086</TD><TD>47.192075</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>202.49802</TD><TD>47.192883</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>202.47549 202.46632</TD><TD>47.190097 47.189305</TD><TD>3.9640007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>202.48204</TD><TD>47.190378</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>317.39832 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>202.48691</TD><TD>47.186615</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 2.9730005 5.946001</TD><TD></TD><TD></TD><TD>8.9802198 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>202.46706</TD><TD>47.186401</TD><TD></TD><TD></TD><TD>7.9280014</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>202.47759</TD><TD>47.186998</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983198</TD><TD>317.39832 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>202.48229</TD><TD>47.183279</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.9730005 5.946001</TD><TD>1.4865003 2.9730005</TD><TD>2.3983198</TD><TD>2.3983198 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>202.47241</TD><TD>47.183755</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983198</TD><TD>317.39832 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>202.47747</TD><TD>47.180338</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>7.9280014 11.892002</TD><TD>3.9640007 5.946001</TD><TD>2.3983198</TD><TD>2.3983198 47.39832 137.39832 227.39832</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.image.reg b/tests/xml.image.reg
index 846f717..6571464 100644
--- a/tests/xml.image.reg
+++ b/tests/xml.image.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>163</TD><TD>538</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>245</TD><TD>521</TD><TD></TD><TD></TD><TD>40</TD><TD>20</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>335</TD><TD>519</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>404.24723 442 479.75277 442</TD><TD>530 567.75275 530 492.24723</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>506 566</TD><TD>505 556</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>600</TD><TD>527</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>655</TD><TD>513</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>384 448</TD><TD>394 453</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>163</TD><TD>426</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>10 20 30</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>248</TD><TD>422</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>335</TD><TD>421</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>156</TD><TD>333</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>245</TD><TD>331</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>326</TD><TD>333</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>171</TD><TD>284</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>247</TD><TD>285</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>324</TD><TD>282</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>249</TD><TD>233</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>488 581</TD><TD>384 450</TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>425</TD><TD>333</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>427</TD><TD>242</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>610</TD><TD>405</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>507</TD><TD>325</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>510</TD><TD>236</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>45 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>594</TD><TD>325</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>590</TD><TD>237</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>681</TD><TD>292</TD><TD></TD><TD></TD><TD>10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>166</TD><TD>546</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>248</TD><TD>529</TD><TD></TD><TD></TD><TD>40</TD><TD>20</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>338</TD><TD>527</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>407.24723 445 482.75277 445</TD><TD>538 575.75275 538 500.24723</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>509 569</TD><TD>513 564</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>603</TD><TD>535</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>658</TD><TD>521</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>387 451</TD><TD>402 461</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>166</TD><TD>434</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>10 20 30</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>251</TD><TD>430</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>338</TD><TD>429</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>159</TD><TD>341</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>248</TD><TD>339</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>329</TD><TD>341</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>174</TD><TD>292</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>250</TD><TD>293</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>327</TD><TD>290</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>252</TD><TD>241</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>491 584</TD><TD>392 458</TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>428</TD><TD>341</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>430</TD><TD>250</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>613</TD><TD>413</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>510</TD><TD>333</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>513</TD><TD>244</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>45 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>597</TD><TD>333</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>593</TD><TD>245</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.ecliptic.hms.reg b/tests/xml.mosaic.ecliptic.hms.reg
index 0a0c1d9..7f0dd1f 100644
--- a/tests/xml.mosaic.ecliptic.hms.reg
+++ b/tests/xml.mosaic.ecliptic.hms.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>+275:41:43.773</TD><TD>+54:45:57.589</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>+275:40:56.041</TD><TD>+54:45:53.192</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>+275:40:04.095</TD><TD>+54:45:53.902</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+275:39:24.458 +275:39:03.682 +275:38:40.920 +275:39:01.697</TD><TD>+54:45:58.616 +54:46:11.747 +54:45:59.761 +54:45:46.630</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>+275:38:25.131 +275:37:51.868</TD><TD>+54:45:51.841 +54:46:09.713</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>+275:37:31.505</TD><TD>+54:46:00.577</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>+275:36:59.426</TD><TD>+54:45:56.747</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.5210862</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+275:39:32.548 +275:38:57.206</TD><TD>+54:45:13.067 +54:45:33.665</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>+275:41:40.788</TD><TD>+54:45:20.333</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>+275:40:51.684</TD><TD>+54:45:20.306</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>+275:40:01.506</TD><TD>+54:45:21.303</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:41:42.345</TD><TD>+54:44:49.289</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:40:50.999</TD><TD>+54:44:49.989</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:40:04.369</TD><TD>+54:44:51.892</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:41:32.396</TD><TD>+54:44:33.220</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:40:48.627</TD><TD>+54:44:34.718</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:40:04.174</TD><TD>+54:44:34.896</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:40:46.096</TD><TD>+54:44:17.451</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>+275:38:32.337 +275:37:40.451</TD><TD>+54:45:11.318 +54:45:34.677</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+275:39:07.311</TD><TD>+54:44:53.398</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+275:39:03.767</TD><TD>+54:44:23.157</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>54.102986 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>+275:37:22.559</TD><TD>+54:45:20.143</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+275:38:19.840</TD><TD>+54:44:51.978</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+275:38:15.782</TD><TD>+54:44:22.417</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+275:37:29.697</TD><TD>+54:44:53.290</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+275:37:29.709</TD><TD>+54:44:23.956</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>+275:36:38.697</TD><TD>+54:44:43.618</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>+275:49:26.999</TD><TD>+54:48:27.679</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>+275:48:39.203</TD><TD>+54:48:23.333</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>+275:47:47.207</TD><TD>+54:48:24.098</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+275:47:07.544 +275:46:46.788 +275:46:23.965 +275:46:44.721</TD><TD>+54:48:28.854 +54:48:42.007 +54:48:30.045 +54:48:16.892</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>+275:46:08.134 +275:45:34.893</TD><TD>+54:48:22.142 +54:48:40.049</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>+275:45:14.480</TD><TD>+54:48:30.935</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>+275:44:42.356</TD><TD>+54:48:27.138</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.5210862</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+275:47:15.497 +275:46:40.184</TD><TD>+54:47:43.297 +54:48:03.932</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>+275:49:23.892</TD><TD>+54:47:50.426</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>+275:48:34.737</TD><TD>+54:47:50.452</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>+275:47:44.511</TD><TD>+54:47:51.501</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:49:25.352</TD><TD>+54:47:19.381</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:48:33.956</TD><TD>+54:47:20.136</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:47:47.284</TD><TD>+54:47:22.088</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:49:15.342</TD><TD>+54:47:03.323</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:48:31.532</TD><TD>+54:47:04.867</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:47:47.035</TD><TD>+54:47:05.093</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+275:48:28.944</TD><TD>+54:46:47.603</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>+275:46:15.218 +275:45:23.353</TD><TD>+54:47:41.611 +54:48:05.025</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+275:46:50.171</TD><TD>+54:47:23.654</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+275:46:46.527</TD><TD>+54:46:53.417</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>54.102986 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>+275:45:05.397</TD><TD>+54:47:50.510</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+275:46:02.647</TD><TD>+54:47:22.285</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+275:45:58.491</TD><TD>+54:46:52.728</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+275:45:12.456</TD><TD>+54:47:23.649</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+275:45:12.375</TD><TD>+54:46:54.315</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>+275:44:21.373</TD><TD>+54:47:14.031</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>+275:41:56.645</TD><TD>+54:45:59.579</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>+275:41:08.911</TD><TD>+54:45:55.184</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>+275:40:16.965</TD><TD>+54:45:55.895</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+275:39:37.328 +275:39:16.553 +275:38:53.790 +275:39:14.565</TD><TD>+54:46:00.610 +54:46:13.742 +54:46:01.756 +54:45:48.625</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>+275:38:37.999 +275:38:04.737</TD><TD>+54:45:53.837 +54:46:11.709</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>+275:37:44.373</TD><TD>+54:46:02.575</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>+275:37:12.294</TD><TD>+54:45:58.745</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.5210862</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+275:39:45.414 +275:39:10.074</TD><TD>+54:45:15.061 +54:45:35.660</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>+275:41:53.657</TD><TD>+54:45:22.323</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>+275:41:04.552</TD><TD>+54:45:22.298</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>+275:40:14.373</TD><TD>+54:45:23.296</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:41:55.211</TD><TD>+54:44:51.279</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:41:03.864</TD><TD>+54:44:51.981</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:40:17.234</TD><TD>+54:44:53.885</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:41:45.260</TD><TD>+54:44:35.210</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:41:01.490</TD><TD>+54:44:36.710</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:40:17.038</TD><TD>+54:44:36.889</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:40:58.958</TD><TD>+54:44:19.443</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>+275:38:45.202 +275:37:53.317</TD><TD>+54:45:13.313 +54:45:36.674</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+275:39:20.175</TD><TD>+54:44:55.392</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+275:39:16.628</TD><TD>+54:44:25.151</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>54.102986 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>+275:37:35.424</TD><TD>+54:45:22.141</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+275:38:32.703</TD><TD>+54:44:53.974</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+275:38:28.642</TD><TD>+54:44:24.413</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+275:37:42.560</TD><TD>+54:44:55.287</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+275:37:42.569</TD><TD>+54:44:25.953</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>+275:49:30.767</TD><TD>+54:48:31.242</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>+275:48:42.970</TD><TD>+54:48:26.897</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>+275:47:50.972</TD><TD>+54:48:27.662</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+275:47:11.308 +275:46:50.552 +275:46:27.728 +275:46:48.485</TD><TD>+54:48:32.418 +54:48:45.571 +54:48:33.609 +54:48:20.456</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>+275:46:11.897 +275:45:38.656</TD><TD>+54:48:25.707 +54:48:43.613</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>+275:45:18.242</TD><TD>+54:48:34.500</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>+275:44:46.117</TD><TD>+54:48:30.703</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.5210862</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+275:47:19.261 +275:46:43.948</TD><TD>+54:47:46.861 +54:48:07.496</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>+275:49:27.659</TD><TD>+54:47:53.989</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>+275:48:38.503</TD><TD>+54:47:54.015</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>+275:47:48.276</TD><TD>+54:47:55.065</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:49:29.118</TD><TD>+54:47:22.944</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:48:37.721</TD><TD>+54:47:23.699</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:47:51.047</TD><TD>+54:47:25.652</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:49:19.107</TD><TD>+54:47:06.886</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:48:35.297</TD><TD>+54:47:08.431</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:47:50.798</TD><TD>+54:47:08.656</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+275:48:32.708</TD><TD>+54:46:51.166</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>+275:46:18.980 +275:45:27.114</TD><TD>+54:47:45.175 +54:48:08.590</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+275:46:53.934</TD><TD>+54:47:27.218</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+275:46:50.289</TD><TD>+54:46:56.981</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>54.102986 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>+275:45:09.157</TD><TD>+54:47:54.075</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+275:46:06.408</TD><TD>+54:47:25.849</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+275:46:02.251</TD><TD>+54:46:56.293</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+275:45:16.217</TD><TD>+54:47:27.214</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+275:45:16.134</TD><TD>+54:46:57.880</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.ecliptic.reg b/tests/xml.mosaic.ecliptic.reg
index a495962..0f5b6b6 100644
--- a/tests/xml.mosaic.ecliptic.reg
+++ b/tests/xml.mosaic.ecliptic.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>275.69549</TD><TD>54.765997</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>275.68223</TD><TD>54.764776</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>275.6678</TD><TD>54.764973</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>275.65679 275.65102 275.6447 275.65047</TD><TD>54.766282 54.76993 54.7666 54.762953</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>275.64031 275.63107</TD><TD>54.7644 54.769365</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>275.62542</TD><TD>54.766827</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>275.61651</TD><TD>54.765763</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.5210862</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>275.65904 275.64922</TD><TD>54.75363 54.759351</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>275.69466</TD><TD>54.755648</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>275.68102</TD><TD>54.755641</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>275.66709</TD><TD>54.755917</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.6951</TD><TD>54.747025</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.68083</TD><TD>54.747219</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.66788</TD><TD>54.747748</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.69233</TD><TD>54.742561</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.68017</TD><TD>54.742977</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.66783</TD><TD>54.743027</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.67947</TD><TD>54.738181</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>275.64232 275.6279</TD><TD>54.753144 54.759632</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>275.65203</TD><TD>54.748166</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>275.65105</TD><TD>54.739766</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>54.102986 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>275.62293</TD><TD>54.755595</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>275.63884</TD><TD>54.747772</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>275.63772</TD><TD>54.73956</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>275.62492</TD><TD>54.748136</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>275.62492</TD><TD>54.739988</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>275.61075</TD><TD>54.745449</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>275.82417</TD><TD>54.807689</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>275.81089</TD><TD>54.806482</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>275.79645</TD><TD>54.806694</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>275.78543 275.77966 275.77332 275.77909</TD><TD>54.808015 54.811669 54.808346 54.804692</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>275.76893 275.75969</TD><TD>54.806151 54.811125</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>275.75402</TD><TD>54.808593</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>275.7451</TD><TD>54.807538</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.5210862</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>275.78764 275.77783</TD><TD>54.79536 54.801092</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>275.8233</TD><TD>54.797341</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>275.80965</TD><TD>54.797348</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>275.7957</TD><TD>54.797639</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.82371</TD><TD>54.788717</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.80943</TD><TD>54.788927</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.79647</TD><TD>54.789469</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.82093</TD><TD>54.784256</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.80876</TD><TD>54.784685</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.7964</TD><TD>54.784748</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>275.80804</TD><TD>54.77989</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>275.77089 275.75649</TD><TD>54.794892 54.801396</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>275.7806</TD><TD>54.789904</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>275.77959</TD><TD>54.781505</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>54.102986 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>275.7515</TD><TD>54.797364</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>275.7674</TD><TD>54.789524</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>275.76625</TD><TD>54.781313</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>275.75346</TD><TD>54.789903</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>275.75344</TD><TD>54.781754</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>275.73927</TD><TD>54.787231</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>275.69907</TD><TD>54.76655</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>275.68581</TD><TD>54.765329</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>275.67138</TD><TD>54.765526</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>275.66037 275.6546 275.64827 275.65405</TD><TD>54.766836 54.770484 54.767154 54.763507</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>275.64389 275.63465</TD><TD>54.764955 54.769919</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>275.62899</TD><TD>54.767382</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>275.62008</TD><TD>54.766318</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.5210862</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>275.66262 275.6528</TD><TD>54.754184 54.759906</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>275.69824</TD><TD>54.756201</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>275.6846</TD><TD>54.756194</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>275.67066</TD><TD>54.756471</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.69867</TD><TD>54.747578</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.68441</TD><TD>54.747772</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.67145</TD><TD>54.748301</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.69591</TD><TD>54.743114</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.68375</TD><TD>54.74353</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.6714</TD><TD>54.74358</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.68304</TD><TD>54.738734</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>275.64589 275.63148</TD><TD>54.753698 54.760187</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>275.6556</TD><TD>54.74872</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>275.65462</TD><TD>54.74032</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>54.102986 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>275.62651</TD><TD>54.75615</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>275.64242</TD><TD>54.748326</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>275.64129</TD><TD>54.740115</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>275.62849</TD><TD>54.748691</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>275.62849</TD><TD>54.740543</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>275.82521</TD><TD>54.808678</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>275.81194</TD><TD>54.807471</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>275.79749</TD><TD>54.807684</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>275.78647 275.78071 275.77437 275.78013</TD><TD>54.809005 54.812659 54.809336 54.805682</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>275.76997 275.76074</TD><TD>54.807141 54.812115</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>275.75507</TD><TD>54.809583</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>275.74614</TD><TD>54.808529</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>2.5210862</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>275.78868 275.77887</TD><TD>54.79635 54.802082</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>275.82435</TD><TD>54.79833</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>275.8107</TD><TD>54.798338</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>275.79674</TD><TD>54.798629</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.82476</TD><TD>54.789707</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.81048</TD><TD>54.789916</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.79751</TD><TD>54.790459</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.82197</TD><TD>54.785246</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.8098</TD><TD>54.785675</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.79744</TD><TD>54.785738</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>275.80909</TD><TD>54.780879</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>275.77194 275.75753</TD><TD>54.795882 54.802386</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>275.78165</TD><TD>54.790894</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>275.78064</TD><TD>54.782495</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>54.102986 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>275.75254</TD><TD>54.798354</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>275.76845</TD><TD>54.790514</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>275.76729</TD><TD>54.782303</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>275.7545</TD><TD>54.790893</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>2.5210862 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>275.75448</TD><TD>54.782745</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>47.521086</TD><TD>47.521086 92.521086 182.52109 272.52109</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.fk4.hms.reg b/tests/xml.mosaic.fk4.hms.reg
index 907c779..8f4e222 100644
--- a/tests/xml.mosaic.fk4.hms.reg
+++ b/tests/xml.mosaic.fk4.hms.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>18:13:31.474</TD><TD>+31:23:07.12</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>18:13:29.339</TD><TD>+31:23:01.61</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>18:13:26.999</TD><TD>+31:23:01.10</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:13:25.199 18:13:24.223 18:13:23.236 18:13:24.212</TD><TD>+31:23:04.89 +31:23:17.53 +31:23:05.02 +31:22:52.39</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>18:13:22.550 18:13:20.997</TD><TD>+31:22:56.74 +31:23:13.83</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>18:13:20.109</TD><TD>+31:23:04.23</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>18:13:18.676</TD><TD>+31:22:59.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0.26226242</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:13:25.707 18:13:24.051</TD><TD>+31:22:19.57 +31:22:39.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>18:13:31.458</TD><TD>+31:22:29.82</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>18:13:29.247</TD><TD>+31:22:28.65</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>18:13:26.985</TD><TD>+31:22:28.47</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:31.627</TD><TD>+31:21:58.84</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:29.312</TD><TD>+31:21:58.34</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:27.207</TD><TD>+31:21:59.15</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:31.229</TD><TD>+31:21:42.55</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:29.254</TD><TD>+31:21:43.03</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:27.252</TD><TD>+31:21:42.17</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:29.194</TD><TD>+31:21:25.71</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:13:23.002 18:13:20.592</TD><TD>+31:22:16.42 +31:22:38.56</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:13:24.633</TD><TD>+31:21:59.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:13:24.568</TD><TD>+31:21:29.03</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.844162 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>18:13:19.832</TD><TD>+31:22:23.62</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:13:22.500</TD><TD>+31:21:56.81</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:13:22.410</TD><TD>+31:21:27.17</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:13:20.238</TD><TD>+31:21:56.96</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:13:20.330</TD><TD>+31:21:27.65</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>18:13:17.972</TD><TD>+31:21:46.11</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>18:13:51.837</TD><TD>+31:25:48.08</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>18:13:49.701</TD><TD>+31:25:42.59</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>18:13:47.360</TD><TD>+31:25:42.11</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:13:45.560 18:13:44.583 18:13:43.595 18:13:44.572</TD><TD>+31:25:45.92 +31:25:58.56 +31:25:46.07 +31:25:33.42</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>18:13:42.909 18:13:41.355</TD><TD>+31:25:37.80 +31:25:54.90</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>18:13:40.466</TD><TD>+31:25:45.31</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>18:13:39.033</TD><TD>+31:25:40.75</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0.26226242</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:13:46.065 18:13:44.409</TD><TD>+31:25:00.59 +31:25:20.36</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>18:13:51.819</TD><TD>+31:25:10.79</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>18:13:49.607</TD><TD>+31:25:09.63</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>18:13:47.344</TD><TD>+31:25:09.48</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:51.986</TD><TD>+31:24:39.80</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:49.671</TD><TD>+31:24:39.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:47.564</TD><TD>+31:24:40.16</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:51.588</TD><TD>+31:24:23.52</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:49.611</TD><TD>+31:24:24.01</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:47.608</TD><TD>+31:24:23.17</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:13:49.551</TD><TD>+31:24:06.70</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:13:43.358 18:13:40.949</TD><TD>+31:24:57.47 +31:25:19.63</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:13:44.989</TD><TD>+31:24:40.36</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:13:44.923</TD><TD>+31:24:10.06</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.844162 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>18:13:40.188</TD><TD>+31:25:04.70</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:13:42.855</TD><TD>+31:24:37.86</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:13:42.763</TD><TD>+31:24:08.23</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:13:40.592</TD><TD>+31:24:38.03</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:13:40.682</TD><TD>+31:24:08.72</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>18:13:38.324</TD><TD>+31:24:27.21</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>18:13:32.047</TD><TD>+31:23:09.41</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>18:13:29.912</TD><TD>+31:23:03.90</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>18:13:27.572</TD><TD>+31:23:03.40</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:13:25.772 18:13:24.796 18:13:23.809 18:13:24.786</TD><TD>+31:23:07.18 +31:23:19.82 +31:23:07.32 +31:22:54.68</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>18:13:23.123 18:13:21.570</TD><TD>+31:22:59.04 +31:23:16.12</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>18:13:20.682</TD><TD>+31:23:06.52</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>18:13:19.250</TD><TD>+31:23:01.96</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0.26226242</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:13:26.280 18:13:24.624</TD><TD>+31:22:21.86 +31:22:41.62</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>18:13:32.031</TD><TD>+31:22:32.11</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>18:13:29.820</TD><TD>+31:22:30.94</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>18:13:27.558</TD><TD>+31:22:30.76</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:32.200</TD><TD>+31:22:01.13</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:29.885</TD><TD>+31:22:00.63</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:27.780</TD><TD>+31:22:01.44</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:31.802</TD><TD>+31:21:44.84</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:29.827</TD><TD>+31:21:45.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:27.824</TD><TD>+31:21:44.46</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:29.767</TD><TD>+31:21:28.00</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:13:23.575 18:13:21.165</TD><TD>+31:22:18.71 +31:22:40.85</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:13:25.206</TD><TD>+31:22:01.62</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:13:25.141</TD><TD>+31:21:31.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.844162 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>18:13:20.405</TD><TD>+31:22:25.92</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:13:23.073</TD><TD>+31:21:59.10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:13:22.983</TD><TD>+31:21:29.47</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:13:20.811</TD><TD>+31:21:59.25</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:13:20.903</TD><TD>+31:21:29.94</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>18:13:51.995</TD><TD>+31:25:51.73</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>18:13:49.859</TD><TD>+31:25:46.24</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>18:13:47.517</TD><TD>+31:25:45.76</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:13:45.718 18:13:44.741 18:13:43.753 18:13:44.729</TD><TD>+31:25:49.57 +31:26:02.21 +31:25:49.72 +31:25:37.07</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>18:13:43.066 18:13:41.513</TD><TD>+31:25:41.45 +31:25:58.55</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>18:13:40.624</TD><TD>+31:25:48.96</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>18:13:39.191</TD><TD>+31:25:44.40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0.26226242</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:13:46.223 18:13:44.567</TD><TD>+31:25:04.24 +31:25:24.01</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>18:13:51.977</TD><TD>+31:25:14.44</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>18:13:49.765</TD><TD>+31:25:13.28</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>18:13:47.502</TD><TD>+31:25:13.13</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:52.144</TD><TD>+31:24:43.45</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:49.828</TD><TD>+31:24:42.97</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:47.722</TD><TD>+31:24:43.81</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:51.746</TD><TD>+31:24:27.17</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:49.769</TD><TD>+31:24:27.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:47.766</TD><TD>+31:24:26.82</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:13:49.709</TD><TD>+31:24:10.35</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:13:43.516 18:13:41.107</TD><TD>+31:25:01.12 +31:25:23.28</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:13:45.147</TD><TD>+31:24:44.01</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:13:45.080</TD><TD>+31:24:13.71</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.844162 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>18:13:40.345</TD><TD>+31:25:08.35</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:13:43.012</TD><TD>+31:24:41.51</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:13:42.921</TD><TD>+31:24:11.88</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:13:40.749</TD><TD>+31:24:41.68</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:13:40.840</TD><TD>+31:24:12.37</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.fk4.reg b/tests/xml.mosaic.fk4.reg
index 12f51b3..e915a52 100644
--- a/tests/xml.mosaic.fk4.reg
+++ b/tests/xml.mosaic.fk4.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>273.38114</TD><TD>31.385311</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>273.37225</TD><TD>31.38378</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>273.36249</TD><TD>31.38364</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.355 273.35093 273.34682 273.35089</TD><TD>31.384692 31.388202 31.384729 31.381218</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>273.34396 273.33749</TD><TD>31.382429 31.387175</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>273.33379</TD><TD>31.384509</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>273.32782</TD><TD>31.383239</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0.26226242</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.35711 273.35021</TD><TD>31.372102 31.377591</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>273.38107</TD><TD>31.374951</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>273.37186</TD><TD>31.374624</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>273.36244</TD><TD>31.374575</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.38178</TD><TD>31.366345</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.37213</TD><TD>31.366205</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.36336</TD><TD>31.366431</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.38012</TD><TD>31.36182</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.37189</TD><TD>31.361952</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.36355</TD><TD>31.361713</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.37164</TD><TD>31.357143</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.34584 273.3358</TD><TD>31.371228 31.377377</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.35264</TD><TD>31.36648</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.35237</TD><TD>31.358063</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.844162 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>273.33263</TD><TD>31.373228</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.34375</TD><TD>31.36578</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.34337</TD><TD>31.357549</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.33432</TD><TD>31.365821</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.33471</TD><TD>31.357679</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>273.32488</TD><TD>31.362809</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>273.46599</TD><TD>31.430023</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>273.45709</TD><TD>31.428498</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>273.44733</TD><TD>31.428365</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.43983 273.43576 273.43165 273.43572</TD><TD>31.429421 31.432934 31.429463 31.42595</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>273.42879 273.42231</TD><TD>31.427165 31.431916</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>273.41861</TD><TD>31.429252</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>273.41264</TD><TD>31.427987</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0.26226242</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.44194 273.43504</TD><TD>31.41683 31.422323</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>273.46591</TD><TD>31.419663</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>273.4567</TD><TD>31.419343</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>273.44727</TD><TD>31.4193</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.46661</TD><TD>31.411057</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.45696</TD><TD>31.410923</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.44818</TD><TD>31.411155</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.46495</TD><TD>31.406533</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.45671</TD><TD>31.40667</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.44837</TD><TD>31.406436</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.45646</TD><TD>31.401861</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.43066 273.42062</TD><TD>31.415963 31.422119</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.43745</TD><TD>31.411211</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.43718</TD><TD>31.402794</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.844162 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>273.41745</TD><TD>31.417972</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.42856</TD><TD>31.410516</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.42818</TD><TD>31.402285</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.41913</TD><TD>31.410564</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.41951</TD><TD>31.402422</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>273.40968</TD><TD>31.407558</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>273.38353</TD><TD>31.385947</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>273.37463</TD><TD>31.384417</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>273.36488</TD><TD>31.384277</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.35739 273.35332 273.3492 273.35327</TD><TD>31.385329 31.388839 31.385365 31.381855</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>273.34635 273.33987</TD><TD>31.383066 31.387812</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>273.33617</TD><TD>31.385146</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>273.33021</TD><TD>31.383877</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0.26226242</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.3595 273.3526</TD><TD>31.372739 31.378228</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>273.38346</TD><TD>31.375587</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>273.37425</TD><TD>31.375261</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>273.36482</TD><TD>31.375212</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.38416</TD><TD>31.366981</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.37452</TD><TD>31.366842</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.36575</TD><TD>31.367068</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.38251</TD><TD>31.362457</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.37428</TD><TD>31.362588</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.36594</TD><TD>31.362349</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.37403</TD><TD>31.357779</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.34823 273.33819</TD><TD>31.371865 31.378014</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.35502</TD><TD>31.367117</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.35475</TD><TD>31.3587</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.844162 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>273.33502</TD><TD>31.373866</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.34614</TD><TD>31.366416</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.34576</TD><TD>31.358185</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.33671</TD><TD>31.366458</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.3371</TD><TD>31.358316</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>273.46665</TD><TD>31.431037</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>273.45775</TD><TD>31.429512</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>273.44799</TD><TD>31.429379</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.44049 273.43642 273.4323 273.43637</TD><TD>31.430435 31.433948 31.430477 31.426964</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>273.42944 273.42297</TD><TD>31.428179 31.43293</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>273.41927</TD><TD>31.430266</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>273.4133</TD><TD>31.429001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0.26226242</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.44259 273.4357</TD><TD>31.417844 31.423337</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>273.46657</TD><TD>31.420677</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>273.45735</TD><TD>31.420357</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>273.44792</TD><TD>31.420314</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.46727</TD><TD>31.412071</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.45762</TD><TD>31.411937</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.44884</TD><TD>31.412169</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.46561</TD><TD>31.407547</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.45737</TD><TD>31.407684</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.44902</TD><TD>31.40745</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.45712</TD><TD>31.402875</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.43132 273.42128</TD><TD>31.416977 31.423133</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.43811</TD><TD>31.412225</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.43783</TD><TD>31.403809</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.844162 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>273.41811</TD><TD>31.418987</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.42922</TD><TD>31.41153</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.42884</TD><TD>31.4033</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.41979</TD><TD>31.411578</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>0.26226242 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.42017</TD><TD>31.403436</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>45.262262</TD><TD>45.262262 90.262262 180.26226 270.26226</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.fk5.hms.reg b/tests/xml.mosaic.fk5.hms.reg
index 8fe2f3d..41a6ce3 100644
--- a/tests/xml.mosaic.fk5.hms.reg
+++ b/tests/xml.mosaic.fk5.hms.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>18:15:24.583</TD><TD>+31:24:10.38</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>18:15:22.450</TD><TD>+31:24:04.71</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>18:15:20.109</TD><TD>+31:24:04.04</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:15:18.308 18:15:17.326 18:15:16.344 18:15:17.326</TD><TD>+31:24:07.69 +31:24:20.26 +31:24:07.68 +31:23:55.12</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>18:15:15.662 18:15:14.100</TD><TD>+31:23:59.35 +31:24:16.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>18:15:13.216</TD><TD>+31:24:06.66</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>18:15:11.786</TD><TD>+31:24:01.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93978</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:15:18.836 18:15:17.171</TD><TD>+31:23:22.41 +31:23:42.05</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>18:15:24.583</TD><TD>+31:23:33.08</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>18:15:22.372</TD><TD>+31:23:31.75</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>18:15:20.110</TD><TD>+31:23:31.40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:24.765</TD><TD>+31:23:02.11</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:22.451</TD><TD>+31:23:01.44</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:20.345</TD><TD>+31:23:02.10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:24.375</TD><TD>+31:22:45.80</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:22.399</TD><TD>+31:22:46.12</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:20.397</TD><TD>+31:22:45.12</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:22.348</TD><TD>+31:22:28.81</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:15:16.131 18:15:13.712</TD><TD>+31:23:19.06 +31:23:41.03</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:15:17.770</TD><TD>+31:23:02.09</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:15:17.719</TD><TD>+31:22:31.79</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521683 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>18:15:12.958</TD><TD>+31:23:26.04</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:15:15.638</TD><TD>+31:22:59.41</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:15:15.561</TD><TD>+31:22:29.78</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:15:13.376</TD><TD>+31:22:59.40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:15:13.481</TD><TD>+31:22:30.10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>18:15:11.114</TD><TD>+31:22:48.39</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>18:15:44.878</TD><TD>+31:26:52.82</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>18:15:42.744</TD><TD>+31:26:47.18</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>18:15:40.402</TD><TD>+31:26:46.52</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:15:38.600 18:15:37.618 18:15:36.635 18:15:37.618</TD><TD>+31:26:50.20 +31:27:02.77 +31:26:50.21 +31:26:37.63</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>18:15:35.952 18:15:34.391</TD><TD>+31:26:41.88 +31:26:58.87</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>18:15:33.506</TD><TD>+31:26:49.22</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>18:15:32.075</TD><TD>+31:26:44.56</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93978</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:15:39.126 18:15:37.461</TD><TD>+31:26:04.91 +31:26:24.56</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>18:15:44.876</TD><TD>+31:26:15.52</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>18:15:42.665</TD><TD>+31:26:14.21</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>18:15:40.401</TD><TD>+31:26:13.89</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:45.057</TD><TD>+31:25:44.55</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:42.741</TD><TD>+31:25:43.91</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:40.634</TD><TD>+31:25:44.58</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:44.666</TD><TD>+31:25:28.24</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:42.689</TD><TD>+31:25:28.59</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:40.685</TD><TD>+31:25:27.60</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:42.636</TD><TD>+31:25:11.27</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:15:36.420 18:15:34.000</TD><TD>+31:26:01.59 +31:26:23.57</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:15:38.058</TD><TD>+31:25:44.60</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:15:38.005</TD><TD>+31:25:14.30</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521683 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>18:15:33.246</TD><TD>+31:26:08.59</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:15:35.925</TD><TD>+31:25:41.94</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:15:35.846</TD><TD>+31:25:12.31</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:15:33.661</TD><TD>+31:25:41.95</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:15:33.765</TD><TD>+31:25:12.65</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>18:15:31.398</TD><TD>+31:25:30.97</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>18:15:25.155</TD><TD>+31:24:12.71</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>18:15:23.022</TD><TD>+31:24:07.05</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>18:15:20.681</TD><TD>+31:24:06.37</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:15:18.880 18:15:17.898 18:15:16.916 18:15:17.898</TD><TD>+31:24:10.03 +31:24:22.59 +31:24:10.02 +31:23:57.45</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>18:15:16.234 18:15:14.673</TD><TD>+31:24:01.69 +31:24:18.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>18:15:13.789</TD><TD>+31:24:09.00</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>18:15:12.358</TD><TD>+31:24:04.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93978</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:15:19.408 18:15:17.743</TD><TD>+31:23:24.74 +31:23:44.38</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>18:15:25.155</TD><TD>+31:23:35.41</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>18:15:22.945</TD><TD>+31:23:34.08</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>18:15:20.682</TD><TD>+31:23:33.74</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:25.337</TD><TD>+31:23:04.45</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:23.023</TD><TD>+31:23:03.78</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:20.917</TD><TD>+31:23:04.43</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:24.948</TD><TD>+31:22:48.13</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:22.971</TD><TD>+31:22:48.46</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:20.969</TD><TD>+31:22:47.45</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:22.920</TD><TD>+31:22:31.14</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:15:16.703 18:15:14.284</TD><TD>+31:23:21.40 +31:23:43.36</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:15:18.342</TD><TD>+31:23:04.42</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:15:18.291</TD><TD>+31:22:34.12</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521683 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>18:15:13.530</TD><TD>+31:23:28.37</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:15:16.210</TD><TD>+31:23:01.75</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:15:16.133</TD><TD>+31:22:32.11</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:15:13.947</TD><TD>+31:23:01.73</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:15:14.053</TD><TD>+31:22:32.43</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>18:15:45.034</TD><TD>+31:26:56.48</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>18:15:42.900</TD><TD>+31:26:50.84</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>18:15:40.558</TD><TD>+31:26:50.19</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:15:38.756 18:15:37.774 18:15:36.792 18:15:37.774</TD><TD>+31:26:53.86 +31:27:06.44 +31:26:53.87 +31:26:41.29</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>18:15:36.108 18:15:34.547</TD><TD>+31:26:45.55 +31:27:02.53</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>18:15:33.663</TD><TD>+31:26:52.88</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>18:15:32.231</TD><TD>+31:26:48.22</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93978</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:15:39.282 18:15:37.617</TD><TD>+31:26:08.57 +31:26:28.22</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>18:15:45.033</TD><TD>+31:26:19.19</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>18:15:42.821</TD><TD>+31:26:17.87</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>18:15:40.557</TD><TD>+31:26:17.55</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:45.213</TD><TD>+31:25:48.22</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:42.898</TD><TD>+31:25:47.57</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:40.790</TD><TD>+31:25:48.25</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:44.822</TD><TD>+31:25:31.90</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:42.845</TD><TD>+31:25:32.25</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:40.842</TD><TD>+31:25:31.26</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:42.792</TD><TD>+31:25:14.93</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:15:36.576 18:15:34.157</TD><TD>+31:26:05.25 +31:26:27.24</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:15:38.215</TD><TD>+31:25:48.26</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:15:38.162</TD><TD>+31:25:17.96</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521683 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>18:15:33.402</TD><TD>+31:26:12.25</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:15:36.081</TD><TD>+31:25:45.61</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:15:36.002</TD><TD>+31:25:15.97</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:15:33.818</TD><TD>+31:25:45.61</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:15:33.921</TD><TD>+31:25:16.31</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.fk5.reg b/tests/xml.mosaic.fk5.reg
index 7d7aede..0680a40 100644
--- a/tests/xml.mosaic.fk5.reg
+++ b/tests/xml.mosaic.fk5.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>273.85243</TD><TD>31.402883</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>273.84354</TD><TD>31.401309</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>273.83379</TD><TD>31.401122</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.82628 273.82219 273.8181 273.82219</TD><TD>31.402137 31.405628 31.402134 31.398644</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>273.81526 273.80875</TD><TD>31.399821 31.404535</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>273.80507</TD><TD>31.401851</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>273.79911</TD><TD>31.400553</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93978</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.82848 273.82154</TD><TD>31.389558 31.395013</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>273.85243</TD><TD>31.392523</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>273.84322</TD><TD>31.392152</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>273.83379</TD><TD>31.392057</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.85319</TD><TD>31.383921</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.84355</TD><TD>31.383734</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.83477</TD><TD>31.383917</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.85156</TD><TD>31.379388</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.84333</TD><TD>31.379479</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.83499</TD><TD>31.3792</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.84311</TD><TD>31.374669</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.81721 273.80713</TD><TD>31.388629 31.39473</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.82404</TD><TD>31.383914</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.82383</TD><TD>31.375496</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521683 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>273.80399</TD><TD>31.390565</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.81516</TD><TD>31.383171</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.81484</TD><TD>31.374938</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.80573</TD><TD>31.383166</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.80617</TD><TD>31.375027</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>273.79631</TD><TD>31.380109</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>273.93699</TD><TD>31.448006</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>273.9281</TD><TD>31.446438</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>273.91834</TD><TD>31.446257</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.91083 273.90674 273.90265 273.90674</TD><TD>31.447277 31.45077 31.447279 31.443786</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>273.8998 273.8933</TD><TD>31.444968 31.449687</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>273.88961</TD><TD>31.447005</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>273.88365</TD><TD>31.445711</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93978</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.91302 273.90609</TD><TD>31.434696 31.440156</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>273.93698</TD><TD>31.437646</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>273.92777</TD><TD>31.43728</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>273.91834</TD><TD>31.437192</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.93774</TD><TD>31.429043</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.92809</TD><TD>31.428863</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.91931</TD><TD>31.429051</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.93611</TD><TD>31.424511</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.92787</TD><TD>31.424608</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.91952</TD><TD>31.424334</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.92765</TD><TD>31.419798</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.90175 273.89167</TD><TD>31.433775 31.439882</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.90858</TD><TD>31.429055</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.90836</TD><TD>31.420638</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521683 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>273.88852</TD><TD>31.43572</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.89969</TD><TD>31.428318</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.89936</TD><TD>31.420085</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.89026</TD><TD>31.42832</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.89069</TD><TD>31.42018</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>273.88082</TD><TD>31.425268</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>273.85481</TD><TD>31.403531</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>273.84593</TD><TD>31.401957</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>273.83617</TD><TD>31.40177</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.82867 273.82457 273.82048 273.82458</TD><TD>31.402785 31.406276 31.402783 31.399292</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>273.81764 273.81114</TD><TD>31.400469 31.405184</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>273.80745</TD><TD>31.4025</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>273.80149</TD><TD>31.401202</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93978</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.83087 273.82393</TD><TD>31.390206 31.395661</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>273.85481</TD><TD>31.393171</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>273.8456</TD><TD>31.3928</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>273.83617</TD><TD>31.392705</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.85557</TD><TD>31.384568</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.84593</TD><TD>31.384382</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.83715</TD><TD>31.384565</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.85395</TD><TD>31.380036</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.84571</TD><TD>31.380127</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.83737</TD><TD>31.379848</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.8455</TD><TD>31.375317</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.8196 273.80952</TD><TD>31.389277 31.395378</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.82643</TD><TD>31.384562</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.82621</TD><TD>31.376145</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521683 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>273.80638</TD><TD>31.391214</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.81754</TD><TD>31.383819</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.81722</TD><TD>31.375586</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.80811</TD><TD>31.383815</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.80855</TD><TD>31.375675</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>273.93764</TD><TD>31.449023</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>273.92875</TD><TD>31.447455</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>273.91899</TD><TD>31.447274</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.91149 273.90739 273.9033 273.90739</TD><TD>31.448294 31.451788 31.448297 31.444803</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>273.90045 273.89395</TD><TD>31.445985 31.450704</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>273.89026</TD><TD>31.448022</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>273.8843</TD><TD>31.446728</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93978</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.91367 273.90674</TD><TD>31.435713 31.441173</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>273.93764</TD><TD>31.438663</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>273.92842</TD><TD>31.438297</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>273.91899</TD><TD>31.438209</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.93839</TD><TD>31.43006</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.92874</TD><TD>31.42988</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.91996</TD><TD>31.430069</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.93676</TD><TD>31.425528</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.92852</TD><TD>31.425625</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.92017</TD><TD>31.425351</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.9283</TD><TD>31.420815</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.9024 273.89232</TD><TD>31.434792 31.440899</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.90923</TD><TD>31.430072</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.90901</TD><TD>31.421655</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521683 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>273.88917</TD><TD>31.436737</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.90034</TD><TD>31.429335</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.90001</TD><TD>31.421103</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.89091</TD><TD>31.429337</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>359.93978 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.89134</TD><TD>31.421197</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939783</TD><TD>44.939783 89.939783 179.93978 269.93978</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.galactic.hms.reg b/tests/xml.mosaic.galactic.hms.reg
index 8b8299e..46bc131 100644
--- a/tests/xml.mosaic.galactic.hms.reg
+++ b/tests/xml.mosaic.galactic.hms.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>+58:28:16.326</TD><TD>+20:53:10.919</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>+58:28:00.717</TD><TD>+20:53:34.689</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>+58:27:49.170</TD><TD>+20:54:02.658</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+58:27:44.490 +58:27:52.588 +58:27:35.364 +58:27:27.267</TD><TD>+20:54:25.594 +20:54:41.683 +20:54:49.248 +20:54:33.158</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>+58:27:23.807 +58:27:33.659</TD><TD>+20:54:54.647 +20:55:19.202</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>+58:27:19.823</TD><TD>+20:55:26.579</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>+58:27:08.478</TD><TD>+20:55:42.228</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>70.143383</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+58:27:01.331 +58:27:13.380</TD><TD>+20:54:03.894 +20:54:30.606</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>+58:27:38.771</TD><TD>+20:52:58.275</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>+58:27:27.158</TD><TD>+20:53:24.451</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>+58:27:16.308</TD><TD>+20:53:51.593</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:27:08.435</TD><TD>+20:52:45.581</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:26:57.008</TD><TD>+20:53:13.236</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:26:47.887</TD><TD>+20:53:38.836</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:26:50.193</TD><TD>+20:52:44.746</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:26:41.342</TD><TD>+20:53:08.667</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:26:31.028</TD><TD>+20:53:32.450</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:26:23.665</TD><TD>+20:53:03.421</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>+58:26:45.405 +58:26:56.295</TD><TD>+20:54:35.345 +20:55:11.932</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+58:26:35.919</TD><TD>+20:54:09.849</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+58:26:05.163</TD><TD>+20:54:00.198</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>121.72528 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>+58:26:37.697</TD><TD>+20:55:15.935</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+58:26:23.322</TD><TD>+20:54:34.633</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+58:25:53.114</TD><TD>+20:54:25.520</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+58:26:12.803</TD><TD>+20:55:01.887</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+58:25:43.775</TD><TD>+20:54:50.693</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>+58:25:51.215</TD><TD>+20:55:25.412</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>+58:32:34.114</TD><TD>+20:50:01.593</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>+58:32:18.522</TD><TD>+20:50:25.370</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>+58:32:06.992</TD><TD>+20:50:53.344</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+58:32:02.325 +58:32:10.427 +58:31:53.213 +58:31:45.111</TD><TD>+20:51:16.281 +20:51:32.367 +20:51:39.939 +20:51:23.853</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>+58:31:41.663 +58:31:51.523</TD><TD>+20:51:45.344 +20:52:09.894</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>+58:31:37.695</TD><TD>+20:52:17.277</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>+58:31:26.362</TD><TD>+20:52:32.931</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>70.143383</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+58:31:19.170 +58:31:31.227</TD><TD>+20:50:54.600 +20:51:21.307</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>+58:31:56.566</TD><TD>+20:49:48.965</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>+58:31:44.969</TD><TD>+20:50:15.146</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>+58:31:34.136</TD><TD>+20:50:42.292</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:31:26.234</TD><TD>+20:49:36.283</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:31:14.824</TD><TD>+20:50:03.943</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:31:05.719</TD><TD>+20:50:29.547</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:31:07.998</TD><TD>+20:49:35.457</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:30:59.162</TD><TD>+20:49:59.381</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:30:48.863</TD><TD>+20:50:23.168</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>+58:30:41.489</TD><TD>+20:49:54.142</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>+58:31:03.265 +58:31:14.169</TD><TD>+20:51:26.057 +20:52:02.640</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+58:30:53.770</TD><TD>+20:51:00.565</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>+58:30:23.020</TD><TD>+20:50:50.926</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>121.72528 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>+58:30:55.579</TD><TD>+20:52:06.650</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+58:30:41.189</TD><TD>+20:51:25.355</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>+58:30:10.988</TD><TD>+20:51:16.254</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+58:30:30.686</TD><TD>+20:51:52.612</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>+58:30:01.664</TD><TD>+20:51:41.431</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>+58:30:09.117</TD><TD>+20:52:16.147</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>+58:28:21.331</TD><TD>+20:53:04.817</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>+58:28:05.723</TD><TD>+20:53:28.587</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>+58:27:54.177</TD><TD>+20:53:56.556</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+58:27:49.497 +58:27:57.595 +58:27:40.371 +58:27:32.273</TD><TD>+20:54:19.492 +20:54:35.581 +20:54:43.146 +20:54:27.056</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>+58:27:28.814 +58:27:38.666</TD><TD>+20:54:48.546 +20:55:13.101</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>+58:27:24.830</TD><TD>+20:55:20.478</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>+58:27:13.486</TD><TD>+20:55:36.127</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>70.143383</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+58:27:06.337 +58:27:18.386</TD><TD>+20:53:57.793 +20:54:24.505</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>+58:27:43.777</TD><TD>+20:52:52.173</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>+58:27:32.164</TD><TD>+20:53:18.350</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>+58:27:21.314</TD><TD>+20:53:45.492</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:27:13.441</TD><TD>+20:52:39.479</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:27:02.014</TD><TD>+20:53:07.134</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:26:52.894</TD><TD>+20:53:32.735</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:26:55.199</TD><TD>+20:52:38.645</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:26:46.348</TD><TD>+20:53:02.566</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:26:36.035</TD><TD>+20:53:26.349</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:26:28.672</TD><TD>+20:52:57.320</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>+58:26:50.412 +58:27:01.303</TD><TD>+20:54:29.243 +20:55:05.831</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+58:26:40.926</TD><TD>+20:54:03.748</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+58:26:10.170</TD><TD>+20:53:54.097</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>121.72528 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>+58:26:42.705</TD><TD>+20:55:09.833</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+58:26:28.330</TD><TD>+20:54:28.532</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+58:25:58.122</TD><TD>+20:54:19.419</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+58:26:17.810</TD><TD>+20:54:55.786</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+58:25:48.783</TD><TD>+20:54:44.592</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>+58:32:38.525</TD><TD>+20:50:00.954</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>+58:32:22.933</TD><TD>+20:50:24.730</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>+58:32:11.404</TD><TD>+20:50:52.704</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>+58:32:06.737 +58:32:14.840 +58:31:57.626 +58:31:49.523</TD><TD>+20:51:15.642 +20:51:31.728 +20:51:39.299 +20:51:23.213</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>+58:31:46.075 +58:31:55.935</TD><TD>+20:51:44.704 +20:52:09.255</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>+58:31:42.108</TD><TD>+20:52:16.637</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>+58:31:30.774</TD><TD>+20:52:32.291</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>70.143383</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>+58:31:23.582 +58:31:35.640</TD><TD>+20:50:53.961 +20:51:20.667</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>+58:32:00.978</TD><TD>+20:49:48.325</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>+58:31:49.381</TD><TD>+20:50:14.507</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>+58:31:38.547</TD><TD>+20:50:41.653</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:31:30.646</TD><TD>+20:49:35.644</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:31:19.236</TD><TD>+20:50:03.304</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:31:10.131</TD><TD>+20:50:28.908</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:31:12.410</TD><TD>+20:49:34.817</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:31:03.573</TD><TD>+20:49:58.742</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:30:53.275</TD><TD>+20:50:22.529</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>+58:30:45.900</TD><TD>+20:49:53.503</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>+58:31:07.677 +58:31:18.581</TD><TD>+20:51:25.418 +20:52:02.000</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+58:30:58.182</TD><TD>+20:50:59.926</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>+58:30:27.432</TD><TD>+20:50:50.288</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>121.72528 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>+58:30:59.992</TD><TD>+20:52:06.011</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+58:30:45.602</TD><TD>+20:51:24.716</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>+58:30:15.400</TD><TD>+20:51:15.615</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+58:30:35.099</TD><TD>+20:51:51.974</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>+58:30:06.076</TD><TD>+20:51:40.792</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.galactic.reg b/tests/xml.mosaic.galactic.reg
index 796c521..db66ec3 100644
--- a/tests/xml.mosaic.galactic.reg
+++ b/tests/xml.mosaic.galactic.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>58.471202</TD><TD>20.886366</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>58.466866</TD><TD>20.892969</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>58.463658</TD><TD>20.900738</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>58.462358 58.464608 58.459823 58.457574</TD><TD>20.907109 20.911579 20.91368 20.909211</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>58.456613 58.45935</TD><TD>20.91518 20.922001</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>58.455506</TD><TD>20.92405</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>58.452355</TD><TD>20.928397</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>70.143383</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>58.45037 58.453717</TD><TD>20.901082 20.908502</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>58.46077</TD><TD>20.882854</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>58.457544</TD><TD>20.890125</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>58.45453</TD><TD>20.897665</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.452343</TD><TD>20.879328</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.449169</TD><TD>20.88701</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.446635</TD><TD>20.894121</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.447276</TD><TD>20.879096</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.444817</TD><TD>20.885741</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.441952</TD><TD>20.892347</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.439907</TD><TD>20.884284</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>58.445946 58.448971</TD><TD>20.909818 20.919981</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>58.443311</TD><TD>20.902736</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>58.434767</TD><TD>20.900055</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>121.72528 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>58.443805</TD><TD>20.921093</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>58.439812</TD><TD>20.90962</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>58.431421</TD><TD>20.907089</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>58.43689</TD><TD>20.917191</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>58.428826</TD><TD>20.914081</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>58.430893</TD><TD>20.923726</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>58.542809</TD><TD>20.833776</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>58.538478</TD><TD>20.84038</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>58.535276</TD><TD>20.848151</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>58.533979 58.53623 58.531448 58.529197</TD><TD>20.854523 20.858991 20.861094 20.856626</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>58.52824 58.530979</TD><TD>20.862595 20.869415</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>58.527137</TD><TD>20.871466</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>58.523989</TD><TD>20.875814</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>70.143383</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>58.521992 58.525341</TD><TD>20.8485 20.855918</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>58.532379</TD><TD>20.830268</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>58.529158</TD><TD>20.837541</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>58.526149</TD><TD>20.845081</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.523954</TD><TD>20.826745</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.520784</TD><TD>20.834429</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.518255</TD><TD>20.841541</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.518888</TD><TD>20.826516</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.516434</TD><TD>20.833161</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.513573</TD><TD>20.839769</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>58.511525</TD><TD>20.831706</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>58.517573 58.520602</TD><TD>20.857238 20.8674</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>58.514936</TD><TD>20.850157</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>58.506394</TD><TD>20.84748</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>121.72528 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>58.515439</TD><TD>20.868514</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>58.511441</TD><TD>20.857043</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>58.503052</TD><TD>20.854515</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>58.508524</TD><TD>20.864615</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>58.500462</TD><TD>20.861509</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>58.502533</TD><TD>20.871152</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>58.472592</TD><TD>20.884671</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>58.468256</TD><TD>20.891274</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>58.465049</TD><TD>20.899043</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>58.463749 58.465999 58.461214 58.458965</TD><TD>20.905414 20.909884 20.911985 20.907516</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>58.458004 58.460741</TD><TD>20.913485 20.920306</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>58.456897</TD><TD>20.922355</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>58.453746</TD><TD>20.926702</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>70.143383</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>58.45176 58.455107</TD><TD>20.899387 20.906807</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>58.46216</TD><TD>20.881159</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>58.458934</TD><TD>20.88843</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>58.455921</TD><TD>20.89597</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.453734</TD><TD>20.877633</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.450559</TD><TD>20.885315</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.448026</TD><TD>20.892426</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.448666</TD><TD>20.877401</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.446208</TD><TD>20.884046</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.443343</TD><TD>20.890652</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.441298</TD><TD>20.882589</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>58.447337 58.450362</TD><TD>20.908123 20.918286</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>58.444702</TD><TD>20.901041</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>58.436158</TD><TD>20.89836</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>121.72528 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>58.445196</TD><TD>20.919398</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>58.441203</TD><TD>20.907926</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>58.432812</TD><TD>20.905394</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>58.438281</TD><TD>20.915496</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>58.430218</TD><TD>20.912387</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>58.544035</TD><TD>20.833598</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>58.539704</TD><TD>20.840203</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>58.536501</TD><TD>20.847973</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>58.535205 58.537456 58.532674 58.530423</TD><TD>20.854345 20.858813 20.860917 20.856448</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>58.529465 58.532204</TD><TD>20.862418 20.869237</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>58.528363</TD><TD>20.871288</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>58.525215</TD><TD>20.875636</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>70.143383</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>58.523217 58.526567</TD><TD>20.848322 20.855741</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>58.533605</TD><TD>20.83009</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>58.530384</TD><TD>20.837363</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>58.527374</TD><TD>20.844904</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.525179</TD><TD>20.826568</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.52201</TD><TD>20.834251</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.519481</TD><TD>20.841363</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.520114</TD><TD>20.826338</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.517659</TD><TD>20.832984</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.514798</TD><TD>20.839591</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>58.51275</TD><TD>20.831529</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>58.518799 58.521828</TD><TD>20.85706 20.867222</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>58.516162</TD><TD>20.84998</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>58.50762</TD><TD>20.847302</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>121.72528 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>58.516664</TD><TD>20.868336</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>58.512667</TD><TD>20.856865</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>58.504278</TD><TD>20.854338</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>58.50975</TD><TD>20.864437</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>70.143383 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>58.501688</TD><TD>20.861331</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>115.14338</TD><TD>115.14338 160.14338 250.14338 340.14338</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.icrs.hms.reg b/tests/xml.mosaic.icrs.hms.reg
index 7bb16c2..62c67d6 100644
--- a/tests/xml.mosaic.icrs.hms.reg
+++ b/tests/xml.mosaic.icrs.hms.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>18:15:24.581</TD><TD>+31:24:10.36</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>18:15:22.449</TD><TD>+31:24:04.69</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>18:15:20.108</TD><TD>+31:24:04.02</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:15:18.307 18:15:17.324 18:15:16.343 18:15:17.325</TD><TD>+31:24:07.67 +31:24:20.24 +31:24:07.66 +31:23:55.10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>18:15:15.660 18:15:14.099</TD><TD>+31:23:59.33 +31:24:16.31</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>18:15:13.215</TD><TD>+31:24:06.64</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>18:15:11.785</TD><TD>+31:24:01.97</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93979</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:15:18.835 18:15:17.170</TD><TD>+31:23:22.39 +31:23:42.03</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>18:15:24.582</TD><TD>+31:23:33.06</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>18:15:22.371</TD><TD>+31:23:31.73</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>18:15:20.109</TD><TD>+31:23:31.38</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:24.764</TD><TD>+31:23:02.09</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:22.450</TD><TD>+31:23:01.42</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:20.343</TD><TD>+31:23:02.08</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:24.374</TD><TD>+31:22:45.78</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:22.398</TD><TD>+31:22:46.10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:20.396</TD><TD>+31:22:45.10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:22.346</TD><TD>+31:22:28.79</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:15:16.130 18:15:13.711</TD><TD>+31:23:19.04 +31:23:41.01</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:15:17.769</TD><TD>+31:23:02.07</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:15:17.718</TD><TD>+31:22:31.77</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521686 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>18:15:12.957</TD><TD>+31:23:26.02</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:15:15.637</TD><TD>+31:22:59.39</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:15:15.560</TD><TD>+31:22:29.76</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:15:13.374</TD><TD>+31:22:59.38</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:15:13.480</TD><TD>+31:22:30.08</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>18:15:11.113</TD><TD>+31:22:48.37</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>18:15:44.877</TD><TD>+31:26:52.80</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>18:15:42.743</TD><TD>+31:26:47.15</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>18:15:40.401</TD><TD>+31:26:46.50</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:15:38.599 18:15:37.617 18:15:36.634 18:15:37.616</TD><TD>+31:26:50.18 +31:27:02.75 +31:26:50.19 +31:26:37.61</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>18:15:35.951 18:15:34.390</TD><TD>+31:26:41.86 +31:26:58.85</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>18:15:33.505</TD><TD>+31:26:49.20</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>18:15:32.074</TD><TD>+31:26:44.54</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93979</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:15:39.125 18:15:37.460</TD><TD>+31:26:04.89 +31:26:24.54</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>18:15:44.875</TD><TD>+31:26:15.50</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>18:15:42.663</TD><TD>+31:26:14.19</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>18:15:40.400</TD><TD>+31:26:13.87</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:45.056</TD><TD>+31:25:44.53</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:42.740</TD><TD>+31:25:43.89</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:40.633</TD><TD>+31:25:44.56</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:44.665</TD><TD>+31:25:28.22</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:42.688</TD><TD>+31:25:28.57</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:40.684</TD><TD>+31:25:27.58</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>18:15:42.635</TD><TD>+31:25:11.25</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:15:36.419 18:15:33.999</TD><TD>+31:26:01.57 +31:26:23.55</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:15:38.057</TD><TD>+31:25:44.58</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>18:15:38.004</TD><TD>+31:25:14.28</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521686 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>18:15:33.244</TD><TD>+31:26:08.57</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:15:35.924</TD><TD>+31:25:41.92</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>18:15:35.845</TD><TD>+31:25:12.29</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:15:33.660</TD><TD>+31:25:41.93</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>18:15:33.764</TD><TD>+31:25:12.63</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>18:15:31.397</TD><TD>+31:25:30.95</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>18:15:25.154</TD><TD>+31:24:12.69</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>18:15:23.021</TD><TD>+31:24:07.03</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>18:15:20.680</TD><TD>+31:24:06.35</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:15:18.879 18:15:17.897 18:15:16.915 18:15:17.897</TD><TD>+31:24:10.01 +31:24:22.57 +31:24:10.00 +31:23:57.43</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>18:15:16.233 18:15:14.671</TD><TD>+31:24:01.67 +31:24:18.64</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>18:15:13.787</TD><TD>+31:24:08.98</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>18:15:12.357</TD><TD>+31:24:04.31</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93979</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:15:19.407 18:15:17.742</TD><TD>+31:23:24.72 +31:23:44.36</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>18:15:25.154</TD><TD>+31:23:35.39</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>18:15:22.943</TD><TD>+31:23:34.06</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>18:15:20.681</TD><TD>+31:23:33.72</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:25.336</TD><TD>+31:23:04.43</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:23.022</TD><TD>+31:23:03.76</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:20.915</TD><TD>+31:23:04.41</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:24.946</TD><TD>+31:22:48.11</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:22.970</TD><TD>+31:22:48.44</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:20.968</TD><TD>+31:22:47.43</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:22.918</TD><TD>+31:22:31.12</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:15:16.702 18:15:14.283</TD><TD>+31:23:21.38 +31:23:43.34</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:15:18.341</TD><TD>+31:23:04.40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:15:18.290</TD><TD>+31:22:34.10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521686 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>18:15:13.529</TD><TD>+31:23:28.35</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:15:16.209</TD><TD>+31:23:01.73</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:15:16.132</TD><TD>+31:22:32.09</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:15:13.946</TD><TD>+31:23:01.71</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:15:14.052</TD><TD>+31:22:32.41</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>18:15:45.033</TD><TD>+31:26:56.46</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>18:15:42.899</TD><TD>+31:26:50.82</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>18:15:40.557</TD><TD>+31:26:50.17</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>18:15:38.755 18:15:37.773 18:15:36.790 18:15:37.773</TD><TD>+31:26:53.84 +31:27:06.42 +31:26:53.85 +31:26:41.27</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>18:15:36.107 18:15:34.546</TD><TD>+31:26:45.53 +31:27:02.51</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>18:15:33.661</TD><TD>+31:26:52.86</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>18:15:32.230</TD><TD>+31:26:48.20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93979</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>18:15:39.281 18:15:37.616</TD><TD>+31:26:08.55 +31:26:28.20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>18:15:45.031</TD><TD>+31:26:19.17</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>18:15:42.820</TD><TD>+31:26:17.85</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>18:15:40.556</TD><TD>+31:26:17.53</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:45.212</TD><TD>+31:25:48.20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:42.896</TD><TD>+31:25:47.55</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:40.789</TD><TD>+31:25:48.23</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:44.821</TD><TD>+31:25:31.88</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:42.844</TD><TD>+31:25:32.23</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:40.841</TD><TD>+31:25:31.24</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>18:15:42.791</TD><TD>+31:25:14.91</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>18:15:36.575 18:15:34.155</TD><TD>+31:26:05.23 +31:26:27.22</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:15:38.213</TD><TD>+31:25:48.24</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>18:15:38.160</TD><TD>+31:25:17.94</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521686 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>18:15:33.401</TD><TD>+31:26:12.23</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:15:36.080</TD><TD>+31:25:45.59</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>18:15:36.001</TD><TD>+31:25:15.95</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:15:33.816</TD><TD>+31:25:45.59</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>18:15:33.920</TD><TD>+31:25:16.29</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.icrs.reg b/tests/xml.mosaic.icrs.reg
index 1a84884..b0bc528 100644
--- a/tests/xml.mosaic.icrs.reg
+++ b/tests/xml.mosaic.icrs.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>273.85242</TD><TD>31.402877</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>273.84354</TD><TD>31.401303</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>273.83378</TD><TD>31.401116</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.82628 273.82218 273.8181 273.82219</TD><TD>31.402132 31.405622 31.402129 31.398638</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>273.81525 273.80875</TD><TD>31.399815 31.40453</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>273.80506</TD><TD>31.401845</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>273.7991</TD><TD>31.400547</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93979</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.82848 273.82154</TD><TD>31.389552 31.395007</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>273.85242</TD><TD>31.392517</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>273.84321</TD><TD>31.392146</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>273.83379</TD><TD>31.392051</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.85318</TD><TD>31.383915</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.84354</TD><TD>31.383728</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.83476</TD><TD>31.383912</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.85156</TD><TD>31.379382</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.84333</TD><TD>31.379473</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.83498</TD><TD>31.379194</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.84311</TD><TD>31.374663</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.81721 273.80713</TD><TD>31.388623 31.394724</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.82404</TD><TD>31.383908</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.82382</TD><TD>31.375491</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521686 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>273.80399</TD><TD>31.39056</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.81515</TD><TD>31.383165</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.81483</TD><TD>31.374932</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.80573</TD><TD>31.383161</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.80617</TD><TD>31.375021</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>273.7963</TD><TD>31.380103</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>273.93699</TD><TD>31.448</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>273.9281</TD><TD>31.446432</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>273.91834</TD><TD>31.446251</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.91083 273.90674 273.90264 273.90673</TD><TD>31.447271 31.450765 31.447274 31.44378</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>273.8998 273.89329</TD><TD>31.444962 31.449681</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>273.8896</TD><TD>31.446999</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>273.88364</TD><TD>31.445705</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93979</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.91302 273.90608</TD><TD>31.434691 31.44015</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>273.93698</TD><TD>31.43764</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>273.92776</TD><TD>31.437275</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>273.91833</TD><TD>31.437186</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.93773</TD><TD>31.429037</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.92808</TD><TD>31.428857</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.9193</TD><TD>31.429046</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.9361</TD><TD>31.424505</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.92786</TD><TD>31.424602</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.91952</TD><TD>31.424328</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>273.92764</TD><TD>31.419792</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.90174 273.89166</TD><TD>31.433769 31.439876</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.90857</TD><TD>31.42905</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>273.90835</TD><TD>31.420632</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521686 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>273.88852</TD><TD>31.435714</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.89968</TD><TD>31.428312</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>273.89935</TD><TD>31.42008</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.89025</TD><TD>31.428314</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>273.89068</TD><TD>31.420174</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>273.88082</TD><TD>31.425263</TD><TD></TD><TD></TD><TD>3.33</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>273.85481</TD><TD>31.403525</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>273.84592</TD><TD>31.401951</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>273.83617</TD><TD>31.401764</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.82866 273.82457 273.82048 273.82457</TD><TD>31.40278 31.406271 31.402777 31.399286</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>273.81764 273.81113</TD><TD>31.400463 31.405178</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>273.80745</TD><TD>31.402494</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>273.80149</TD><TD>31.401196</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93979</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.83086 273.82392</TD><TD>31.3902 31.395656</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>273.85481</TD><TD>31.393165</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>273.8456</TD><TD>31.392794</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>273.83617</TD><TD>31.392699</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.85557</TD><TD>31.384563</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.84592</TD><TD>31.384376</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.83715</TD><TD>31.38456</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.85394</TD><TD>31.38003</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.84571</TD><TD>31.380121</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.83737</TD><TD>31.379842</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.84549</TD><TD>31.375311</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.81959 273.80951</TD><TD>31.389272 31.395372</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.82642</TD><TD>31.384557</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.82621</TD><TD>31.376139</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521686 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>273.80637</TD><TD>31.391209</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.81754</TD><TD>31.383813</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.81722</TD><TD>31.375581</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.80811</TD><TD>31.383809</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.80855</TD><TD>31.37567</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>273.93764</TD><TD>31.449017</TD><TD></TD><TD></TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>273.92875</TD><TD>31.447449</TD><TD></TD><TD></TD><TD>13.32</TD><TD>6.66</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>273.91899</TD><TD>31.447268</TD><TD></TD><TD></TD><TD>26.64</TD><TD>13.32</TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>273.91148 273.90739 273.90329 273.90739</TD><TD>31.448289 31.451782 31.448291 31.444798</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>273.90045 273.89394</TD><TD>31.445979 31.450698</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>273.89026</TD><TD>31.448016</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>273.88429</TD><TD>31.446722</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>359.93979</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>273.91367 273.90673</TD><TD>31.435708 31.441168</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>273.93763</TD><TD>31.438657</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3.33 6.66 9.99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>273.92842</TD><TD>31.438292</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>273.91898</TD><TD>31.438203</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.93838</TD><TD>31.430054</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.92874</TD><TD>31.429874</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.91995</TD><TD>31.430063</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.93675</TD><TD>31.425523</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.92852</TD><TD>31.425619</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.92017</TD><TD>31.425345</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>273.9283</TD><TD>31.420809</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>273.90239 273.89231</TD><TD>31.434786 31.440894</TD><TD>6.66</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.90922</TD><TD>31.430067</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>273.909</TD><TD>31.421649</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 4.995 9.99</TD><TD></TD><TD></TD><TD>51.521686 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>273.88917</TD><TD>31.436732</TD><TD></TD><TD></TD><TD>13.32</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.90033</TD><TD>31.429329</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>273.9</TD><TD>31.421097</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>4.995 9.99</TD><TD>2.4975 4.995</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.8909</TD><TD>31.429331</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>359.93979 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>273.89133</TD><TD>31.421191</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>13.32 19.98</TD><TD>6.66 9.99</TD><TD>44.939786</TD><TD>44.939786 89.939786 179.93979 269.93979</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.image.reg b/tests/xml.mosaic.image.reg
index f48a215..cdcf755 100644
--- a/tests/xml.mosaic.image.reg
+++ b/tests/xml.mosaic.image.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>119</TD><TD>1956</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>201</TD><TD>1939</TD><TD></TD><TD></TD><TD>40</TD><TD>20</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>291</TD><TD>1937</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>360.24723 398 435.75277 398</TD><TD>1948 1985.7528 1948 1910.2472</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>462 522</TD><TD>1923 1974</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>556</TD><TD>1945</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>611</TD><TD>1931</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>340 404</TD><TD>1812 1871</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>119</TD><TD>1844</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>10 20 30</TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>204</TD><TD>1840</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD></TD><TD>1</TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>291</TD><TD>1839</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>112</TD><TD>1751</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>201</TD><TD>1749</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>282</TD><TD>1751</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>127</TD><TD>1702</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>203</TD><TD>1703</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>280</TD><TD>1700</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>205</TD><TD>1651</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>444 537</TD><TD>1802 1868</TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>381</TD><TD>1751</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>383</TD><TD>1660</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>566</TD><TD>1823</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>463</TD><TD>1743</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>466</TD><TD>1654</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>45 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>550</TD><TD>1743</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>546</TD><TD>1655</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>637</TD><TD>1710</TD><TD></TD><TD></TD><TD>10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>1471</TD><TD>352</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>1553</TD><TD>335</TD><TD></TD><TD></TD><TD>40</TD><TD>20</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>1643</TD><TD>333</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>1712.2472 1750 1787.7528 1750</TD><TD>344 381.75275 344 306.24723</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>1814 1874</TD><TD>319 370</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>1908</TD><TD>341</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>1963</TD><TD>327</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>1692 1756</TD><TD>208 267</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>1471</TD><TD>240</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>10 20 30</TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>1556</TD><TD>236</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD></TD><TD>3</TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>1643</TD><TD>235</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1464</TD><TD>147</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1553</TD><TD>145</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1634</TD><TD>147</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1479</TD><TD>98</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1555</TD><TD>99</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1632</TD><TD>96</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1557</TD><TD>47</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>1796 1889</TD><TD>198 264</TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>1733</TD><TD>147</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>1735</TD><TD>56</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>1918</TD><TD>219</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>1815</TD><TD>139</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>1818</TD><TD>50</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>45 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>1902</TD><TD>139</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>1898</TD><TD>51</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>1989</TD><TD>106</TD><TD></TD><TD></TD><TD>10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>97</TD><TD>1963</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>179</TD><TD>1946</TD><TD></TD><TD></TD><TD>40</TD><TD>20</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>269</TD><TD>1944</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>338.24723 376 413.75277 376</TD><TD>1955 1992.7528 1955 1917.2472</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>440 500</TD><TD>1930 1981</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>534</TD><TD>1952</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>589</TD><TD>1938</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>318 382</TD><TD>1819 1878</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>97</TD><TD>1851</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>10 20 30</TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>182</TD><TD>1847</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD></TD><TD>1</TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>269</TD><TD>1846</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>90</TD><TD>1758</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>179</TD><TD>1756</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>260</TD><TD>1758</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>105</TD><TD>1709</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>181</TD><TD>1710</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>258</TD><TD>1707</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>183</TD><TD>1658</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>422 515</TD><TD>1809 1875</TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>359</TD><TD>1758</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>361</TD><TD>1667</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>544</TD><TD>1830</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>441</TD><TD>1750</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>444</TD><TD>1661</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>45 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>528</TD><TD>1750</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>524</TD><TD>1662</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>1465</TD><TD>363</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>1547</TD><TD>346</TD><TD></TD><TD></TD><TD>40</TD><TD>20</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>1637</TD><TD>344</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>1706.2472 1744 1781.7528 1744</TD><TD>355 392.75275 355 317.24723</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>1808 1868</TD><TD>330 381</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>1902</TD><TD>352</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>1957</TD><TD>338</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>1686 1750</TD><TD>219 278</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>1465</TD><TD>251</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>10 20 30</TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>1550</TD><TD>247</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD></TD><TD>3</TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>1637</TD><TD>246</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1458</TD><TD>158</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1547</TD><TD>156</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1628</TD><TD>158</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1473</TD><TD>109</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1549</TD><TD>110</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1626</TD><TD>107</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1551</TD><TD>58</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>1790 1883</TD><TD>209 275</TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>1727</TD><TD>158</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>1729</TD><TD>67</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>1912</TD><TD>230</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>1809</TD><TD>150</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>1812</TD><TD>61</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>45 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>1896</TD><TD>150</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>1892</TD><TD>62</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.mosaic.physical.reg b/tests/xml.mosaic.physical.reg
index 13a1469..0b438ef 100644
--- a/tests/xml.mosaic.physical.reg
+++ b/tests/xml.mosaic.physical.reg
@@ -43,60 +43,58 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>88</TD><TD>1956</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>170</TD><TD>1939</TD><TD></TD><TD></TD><TD>40</TD><TD>20</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>260</TD><TD>1937</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>329.24723 367 404.75277 367</TD><TD>1948 1985.7528 1948 1910.2472</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>431 491</TD><TD>1923 1974</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>525</TD><TD>1945</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>580</TD><TD>1931</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>309 373</TD><TD>1812 1871</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>88</TD><TD>1844</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>10 20 30</TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>173</TD><TD>1840</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD></TD><TD>1</TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>260</TD><TD>1839</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>81</TD><TD>1751</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>170</TD><TD>1749</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>251</TD><TD>1751</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>96</TD><TD>1702</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>172</TD><TD>1703</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>249</TD><TD>1700</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>174</TD><TD>1651</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>413 506</TD><TD>1802 1868</TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>350</TD><TD>1751</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>352</TD><TD>1660</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>535</TD><TD>1823</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>432</TD><TD>1743</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>435</TD><TD>1654</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>45 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>519</TD><TD>1743</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>515</TD><TD>1655</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>606</TD><TD>1710</TD><TD></TD><TD></TD><TD>10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle</TD><TD>1470</TD><TD>336</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>1552</TD><TD>319</TD><TD></TD><TD></TD><TD>40</TD><TD>20</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>1642</TD><TD>317</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>1711.2472 1749 1786.7528 1749</TD><TD>328 365.75275 328 290.24723</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>1813 1873</TD><TD>303 354</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>1907</TD><TD>325</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>1962</TD><TD>311</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>1691 1755</TD><TD>192 251</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>1470</TD><TD>224</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>10 20 30</TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>1555</TD><TD>220</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD></TD><TD>3</TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>1642</TD><TD>219</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1463</TD><TD>131</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1552</TD><TD>129</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1633</TD><TD>131</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1478</TD><TD>82</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1554</TD><TD>83</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1631</TD><TD>80</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>1556</TD><TD>31</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>1795 1888</TD><TD>182 248</TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>1732</TD><TD>131</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>1734</TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>1917</TD><TD>203</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>1814</TD><TD>123</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>1817</TD><TD>34</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>45 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>1901</TD><TD>123</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>1897</TD><TD>35</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>1988</TD><TD>90</TD><TD></TD><TD></TD><TD>10</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>66</TD><TD>1963</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>148</TD><TD>1946</TD><TD></TD><TD></TD><TD>40</TD><TD>20</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>238</TD><TD>1944</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>307.24723 345 382.75277 345</TD><TD>1955 1992.7528 1955 1917.2472</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>409 469</TD><TD>1930 1981</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>503</TD><TD>1952</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>1</TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>558</TD><TD>1938</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>287 351</TD><TD>1819 1878</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>66</TD><TD>1851</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>10 20 30</TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>151</TD><TD>1847</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD></TD><TD>1</TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>238</TD><TD>1846</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>59</TD><TD>1758</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>148</TD><TD>1756</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>229</TD><TD>1758</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>74</TD><TD>1709</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>150</TD><TD>1710</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>227</TD><TD>1707</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>152</TD><TD>1658</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>391 484</TD><TD>1809 1875</TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>328</TD><TD>1758</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>330</TD><TD>1667</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>513</TD><TD>1830</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>410</TD><TD>1750</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>413</TD><TD>1661</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>45 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>497</TD><TD>1750</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>493</TD><TD>1662</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD>1</TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>1464</TD><TD>347</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>1546</TD><TD>330</TD><TD></TD><TD></TD><TD>40</TD><TD>20</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>1636</TD><TD>328</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>1705.2472 1743 1780.7528 1743</TD><TD>339 376.75275 339 301.24723</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>1807 1867</TD><TD>314 365</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>1901</TD><TD>336</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD>3</TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>1956</TD><TD>322</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>1685 1749</TD><TD>203 262</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>1464</TD><TD>235</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>10 20 30</TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>1549</TD><TD>231</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD></TD><TD>3</TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>1636</TD><TD>230</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1457</TD><TD>142</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1546</TD><TD>140</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1627</TD><TD>142</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1472</TD><TD>93</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1548</TD><TD>94</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1625</TD><TD>91</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>1550</TD><TD>42</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>1789 1882</TD><TD>193 259</TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>1726</TD><TD>142</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>1728</TD><TD>51</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 15 30</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>1911</TD><TD>214</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>1808</TD><TD>134</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>1811</TD><TD>45</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>15 30</TD><TD>7.5 15</TD><TD>45</TD><TD>45 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>1895</TD><TD>134</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>1891</TD><TD>46</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>40 60</TD><TD>20 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD>3</TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xml.physical.reg b/tests/xml.physical.reg
index 3d93f6e..c50a615 100644
--- a/tests/xml.physical.reg
+++ b/tests/xml.physical.reg
@@ -43,33 +43,32 @@
<FIELD ID="comment" name="comment" datatype="char" arraysize="*"/>
<DATA>
<TABLEDATA>
-<TR><TD>circle</TD><TD>325</TD><TD>1075</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
-<TR><TD>ellipse</TD><TD>489</TD><TD>1041</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>box</TD><TD>669</TD><TD>1037</TD><TD></TD><TD></TD><TD>160</TD><TD>80</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>polygon</TD><TD></TD><TD></TD><TD>807.49446 883 958.50554 883</TD><TD>1059 1134.5055 1059 983.49446</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>line</TD><TD></TD><TD></TD><TD>1011 1131</TD><TD>1009 1111</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>vector</TD><TD>1199</TD><TD>1053</TD><TD></TD><TD></TD><TD>80</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>text</TD><TD>1309</TD><TD>1025</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ruler</TD><TD></TD><TD></TD><TD>767 895</TD><TD>787 905</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>annulus</TD><TD>325</TD><TD>851</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>20 40 60</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>ellipseannulus</TD><TD>495</TD><TD>843</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>30 60</TD><TD>15 30</TD><TD>45</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>boxannulus</TD><TD>669</TD><TD>841</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>80 120</TD><TD>40 60</TD><TD>45</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>311</TD><TD>665</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>489</TD><TD>661</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>651</TD><TD>665</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>341</TD><TD>567</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>493</TD><TD>569</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>647</TD><TD>563</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>point</TD><TD>497</TD><TD>465</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>projection</TD><TD></TD><TD></TD><TD>975 1161</TD><TD>767 899</TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>849</TD><TD>665</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 30 60</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>panda</TD><TD>853</TD><TD>483</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 30 60</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>compass</TD><TD>1219</TD><TD>809</TD><TD></TD><TD></TD><TD>80</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>1013</TD><TD>649</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>30 60</TD><TD>15 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>epanda</TD><TD>1019</TD><TD>471</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>30 60</TD><TD>15 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>1187</TD><TD>649</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>80 120</TD><TD>40 60</TD><TD>45</TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>bpanda</TD><TD>1179</TD><TD>473</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>80 120</TD><TD>40 60</TD><TD>45</TD><TD>45 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
-<TR><TD>circle3d</TD><TD>1361</TD><TD>583</TD><TD></TD><TD></TD><TD>20</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle3d</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>circle</TD><TD>331</TD><TD>1091</TD><TD></TD><TD></TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>pink</TD><TD>3</TD><TD>Circle</TD><TD>times 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD>foo foo bar</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>This is a Comment</TD></TR>
+<TR><TD>ellipse</TD><TD>495</TD><TD>1057</TD><TD></TD><TD></TD><TD>80</TD><TD>40</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>#0ff</TD><TD>1</TD><TD>Ellipse</TD><TD>helvetica 10 normal italic</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>box</TD><TD>675</TD><TD>1053</TD><TD></TD><TD></TD><TD>160</TD><TD>80</TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>yellow</TD><TD>1</TD><TD>Box</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>polygon</TD><TD></TD><TD></TD><TD>813.49446 889 964.50554 889</TD><TD>1075 1150.5055 1075 999.49446</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Polygon</TD><TD>courier 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>line</TD><TD></TD><TD></TD><TD>1017 1137</TD><TD>1025 1127</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>cyan</TD><TD>1</TD><TD>Line</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>0</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>vector</TD><TD>1205</TD><TD>1069</TD><TD></TD><TD></TD><TD>80</TD><TD></TD><TD></TD><TD></TD><TD>45</TD><TD></TD><TD></TD><TD>red</TD><TD>1</TD><TD>Vector</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>text</TD><TD>1315</TD><TD>1041</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0</TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Region</TD><TD>helvetica 14 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>1</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ruler</TD><TD></TD><TD></TD><TD>773 901</TD><TD>803 921</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>white</TD><TD>1</TD><TD>Ruler</TD><TD>helvetica 12 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>physical</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>annulus</TD><TD>331</TD><TD>867</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>20 40 60</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>ellipseannulus</TD><TD>501</TD><TD>859</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>30 60</TD><TD>15 30</TD><TD>45</TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Ellipse Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>boxannulus</TD><TD>675</TD><TD>857</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>80 120</TD><TD>40 60</TD><TD>45</TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Box Annulus</TD><TD>helvetica 10 bold roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>317</TD><TD>681</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Circle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>circle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>495</TD><TD>677</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>red</TD><TD>3</TD><TD>Box Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>box</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>657</TD><TD>681</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Diamond Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>diamond</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>347</TD><TD>583</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>blue</TD><TD>1</TD><TD>Cross Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>cross</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>499</TD><TD>585</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>X Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>x</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>653</TD><TD>579</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>magenta</TD><TD>1</TD><TD>Arrow Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>arrow</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>point</TD><TD>503</TD><TD>481</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>BoxCircle Point</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>boxcircle</TD><TD>11</TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>projection</TD><TD></TD><TD></TD><TD>981 1167</TD><TD>783 915</TD><TD>40</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Projection</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>855</TD><TD>681</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 30 60</TD><TD></TD><TD></TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>panda</TD><TD>859</TD><TD>499</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>0 30 60</TD><TD></TD><TD></TD><TD>51.5819 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Panda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>compass</TD><TD>1225</TD><TD>825</TD><TD></TD><TD></TD><TD>80</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>green</TD><TD>1</TD><TD>Compass</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD>physical</TD><TD>N</TD><TD>E</TD><TD>1</TD><TD>1</TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>1019</TD><TD>665</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>30 60</TD><TD>15 30</TD><TD>45</TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>epanda</TD><TD>1025</TD><TD>487</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>30 60</TD><TD>15 30</TD><TD>45</TD><TD>45 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Epanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>1193</TD><TD>665</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>80 120</TD><TD>40 60</TD><TD>45</TD><TD>0 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
+<TR><TD>bpanda</TD><TD>1185</TD><TD>489</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD>80 120</TD><TD>40 60</TD><TD>45</TD><TD>45 90 180 270</TD><TD></TD><TD>green</TD><TD>1</TD><TD>Bpanda 2</TD><TD>helvetica 10 normal roman</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>1</TD><TD>1</TD><TD>0</TD><TD>8,3</TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD><TD></TD></TR>
</TABLEDATA>
</DATA>
</TABLE>
diff --git a/tests/xpa.sh b/tests/xpa.sh
index 7ab26fd..2f3adca 100755
--- a/tests/xpa.sh
+++ b/tests/xpa.sh
@@ -579,6 +579,24 @@ xpaset -p ds9 single
testit $tt
fi
+if [ "$1" = "export" -o -z "$1" ]; then
+tt="export"
+xpaset -p ds9 export foo.fits
+xpaset -p ds9 export foo.gif
+xpaset -p ds9 export foo.tif
+xpaset -p ds9 export foo.tif none
+xpaset -p ds9 export foo.jpg
+xpaset -p ds9 export foo.jpg 100
+xpaset -p ds9 export foo.png
+xpaset -p ds9 export foo.ppm
+
+# backward compatability
+xpaset -p ds9 savefits foo.fits
+
+rm -f foo.fits foo.gif foo.tif foo.jpg foo.png foo.ppm
+testit $tt
+fi
+
if [ "$1" = "file" -o -z "$1" ]; then
tt="file"
xpaget ds9 file >> ${tt}.out
@@ -965,6 +983,17 @@ sleep "$delay"
testit $tt
fi
+if [ "$1" = "import" -o -z "$1" ]; then
+tt="import"
+xpaset -p ds9 frame new
+xpaset -p ds9 image rose.jpg
+xpaset -p ds9 frame delete
+xpaset -p ds9 frame new rgb
+xpaset -p ds9 image rose.tif
+xpaset -p ds9 frame delete
+testit $tt
+fi
+
if [ "$1" = "lock" -o -z "$1" ]; then
tt="lock"
xpaget ds9 lock frame >> ${tt}.out
@@ -1602,22 +1631,44 @@ xpaset -p ds9 frame reset
testit $tt
fi
-if [ "$1" = "saveas" ]; then
-tt="saveas"
+if [ "$1" = "saveimage" ]; then
+tt="saveimage"
+xpaset -p ds9 saveimage foo.fits
+xpaset -p ds9 saveimage foo.gif
+xpaset -p ds9 saveimage foo.tif
+xpaset -p ds9 saveimage foo.tif none
+xpaset -p ds9 saveimage foo.jpg
+xpaset -p ds9 saveimage foo.jpg 100
+xpaset -p ds9 saveimage foo.png
+xpaset -p ds9 saveimage foo.ppm
+
+# backward compatibility
xpaset -p ds9 saveimage fits foo.fits
-xpaset -p ds9 saveimage jpeg foo.jpeg
-xpaset -p ds9 saveimage jpeg 100 foo.jpeg
+xpaset -p ds9 saveimage jpeg foo.jpg
+xpaset -p ds9 saveimage jpeg 100 foo.jpg
xpaset -p ds9 saveimage tiff foo.tif
xpaset -p ds9 saveimage tiff deflate foo.tif
xpaset -p ds9 saveimage png foo.png
xpaset -p ds9 saveimage ppm foo.ppm
-xpaset -p ds9 saveimage mpeg foo.mpg
-xpaset -p ds9 saveimage mpeg 31 foo.mpg
-xpaset -p ds9 savefits foo.fits
-xpaset -p ds9 savempeg foo.mpg
+testit $tt
rm -f foo.fits foo.jpeg foo.tif foo.png foo.ppm foo.mpg foo.mpg
+fi
+
+if [ "$1" = "savempeg" ]; then
+tt="savempeg"
+
+xpaset -p ds9 savempeg slice foo.mpg
+xpaset -p ds9 savempeg frame foo.mpg
+xpaset -p ds9 frame new 3d
+xpaset -p ds9 savempeg 3d foo.mpg number 1 azfrom 0 azto 0 elfrom 0 elto 0 slfrom 1 slto 1 repeat 1
+xpaset -p ds9 frame delete
+
+# backward compatibility
+xpaset -p ds9 savempeg foo.mpg
+
testit $tt
+rm -f foo.mpg
fi
if [ "$1" = "scale" -o -z "$1" ]; then
diff --git a/tests/xy.ecliptic.hms.reg b/tests/xy.ecliptic.hms.reg
index 279f40b..c5321ee 100644
--- a/tests/xy.ecliptic.hms.reg
+++ b/tests/xy.ecliptic.hms.reg
@@ -1,27 +1,26 @@
-+175:06:47.329 +50:57:10.157
-+175:06:47.329 +50:56:53.559
-+175:06:42.199 +50:56:36.012
-+175:06:31.981 +50:56:15.689
-+175:06:25.828 +50:55:57.465
-+175:06:17.565 +50:55:42.728
-+175:06:23.624 +50:55:33.666
-+175:07:06.440 +50:56:16.450
-+175:07:21.832 +50:57:05.650
-+175:07:17.633 +50:56:48.993
-+175:07:12.383 +50:56:32.069
-+175:07:50.928 +50:57:03.264
-+175:07:45.855 +50:56:45.911
-+175:07:40.062 +50:56:30.273
-+175:08:05.063 +50:56:58.379
-+175:07:59.895 +50:56:43.670
-+175:07:55.897 +50:56:28.607
-+175:08:15.784 +50:56:41.187
-+175:07:00.874 +50:55:53.191
-+175:07:33.735 +50:56:11.060
-+175:08:01.631 +50:56:07.007
-+175:06:59.749 +50:55:38.055
-+175:07:30.960 +50:55:54.824
-+175:07:58.173 +50:55:50.658
-+175:07:25.403 +50:55:37.941
-+175:07:52.752 +50:55:35.173
-+175:07:30.006 +50:55:19.728
++175:06:44.609 +50:57:09.897
++175:06:44.610 +50:56:53.299
++175:06:39.479 +50:56:35.752
++175:06:29.262 +50:56:15.428
++175:06:23.109 +50:55:57.205
++175:06:14.847 +50:55:42.467
++175:06:20.905 +50:55:33.406
++175:07:03.721 +50:56:16.189
++175:07:19.112 +50:57:05.390
++175:07:14.913 +50:56:48.733
++175:07:09.664 +50:56:31.809
++175:07:48.208 +50:57:03.004
++175:07:43.135 +50:56:45.651
++175:07:37.342 +50:56:30.013
++175:08:02.343 +50:56:58.119
++175:07:57.176 +50:56:43.411
++175:07:53.177 +50:56:28.347
++175:08:13.064 +50:56:40.927
++175:06:58.156 +50:55:52.930
++175:07:31.016 +50:56:10.800
++175:07:58.912 +50:56:06.747
++175:06:57.031 +50:55:37.795
++175:07:28.241 +50:55:54.564
++175:07:55.454 +50:55:50.398
++175:07:22.684 +50:55:37.680
++175:07:50.034 +50:55:34.913
diff --git a/tests/xy.ecliptic.reg b/tests/xy.ecliptic.reg
index 53165bd..5757233 100644
--- a/tests/xy.ecliptic.reg
+++ b/tests/xy.ecliptic.reg
@@ -1,27 +1,26 @@
- 175.11315 50.952821
- 175.11315 50.948211
- 175.11172 50.943337
- 175.10888 50.937691
- 175.10717 50.932629
- 175.10488 50.928535
- 175.10656 50.926018
- 175.11846 50.937903
- 175.12273 50.951569
- 175.12156 50.946943
- 175.12011 50.942241
- 175.13081 50.950907
- 175.1294 50.946087
- 175.12779 50.941742
- 175.13474 50.94955
- 175.1333 50.945464
- 175.13219 50.94128
- 175.13772 50.944774
- 175.11691 50.931442
- 175.12604 50.936406
- 175.13379 50.93528
- 175.1166 50.927238
- 175.12527 50.931896
- 175.13283 50.930738
- 175.12372 50.927206
- 175.13132 50.926437
- 175.125 50.922147
+ 175.11239 50.952749
+ 175.11239 50.948139
+ 175.11097 50.943264
+ 175.10813 50.937619
+ 175.10642 50.932557
+ 175.10412 50.928463
+ 175.10581 50.925946
+ 175.1177 50.93783
+ 175.12198 50.951497
+ 175.12081 50.94687
+ 175.11935 50.942169
+ 175.13006 50.950834
+ 175.12865 50.946014
+ 175.12704 50.94167
+ 175.13398 50.949478
+ 175.13255 50.945392
+ 175.13144 50.941207
+ 175.13696 50.944702
+ 175.11615 50.93137
+ 175.12528 50.936333
+ 175.13303 50.935208
+ 175.11584 50.927165
+ 175.12451 50.931823
+ 175.13207 50.930666
+ 175.12297 50.927133
+ 175.13056 50.926365
diff --git a/tests/xy.fk4.hms.reg b/tests/xy.fk4.hms.reg
index b0decf9..ccfa121 100644
--- a/tests/xy.fk4.hms.reg
+++ b/tests/xy.fk4.hms.reg
@@ -1,27 +1,26 @@
-13:27:50.533 +47:27:57.00
-13:27:49.574 +47:27:43.54
-13:27:48.303 +47:27:31.21
-13:27:46.615 +47:27:18.50
-13:27:45.253 +47:27:06.00
-13:27:43.986 +47:26:57.10
-13:27:43.769 +47:26:47.52
-13:27:48.395 +47:27:06.41
-13:27:52.010 +47:27:40.61
-13:27:50.837 +47:27:28.66
-13:27:49.595 +47:27:16.88
-13:27:53.337 +47:27:27.95
-13:27:52.080 +47:27:15.75
-13:27:50.886 +47:27:05.21
-13:27:53.767 +47:27:18.77
-13:27:52.658 +47:27:08.75
-13:27:51.587 +47:26:58.02
-13:27:53.315 +47:27:00.88
-13:27:46.772 +47:26:49.60
-13:27:49.458 +47:26:51.97
-13:27:50.629 +47:26:38.39
-13:27:45.842 +47:26:37.75
-13:27:48.381 +47:26:39.83
-13:27:49.512 +47:26:26.41
-13:27:47.127 +47:26:28.19
-13:27:48.345 +47:26:15.86
-13:27:46.308 +47:26:11.73
+13:27:50.384 +47:27:57.76
+13:27:49.426 +47:27:44.31
+13:27:48.154 +47:27:31.98
+13:27:46.466 +47:27:19.27
+13:27:45.104 +47:27:06.77
+13:27:43.838 +47:26:57.87
+13:27:43.620 +47:26:48.29
+13:27:48.246 +47:27:07.18
+13:27:51.861 +47:27:41.38
+13:27:50.688 +47:27:29.43
+13:27:49.447 +47:27:17.65
+13:27:53.189 +47:27:28.71
+13:27:51.931 +47:27:16.52
+13:27:50.737 +47:27:05.98
+13:27:53.618 +47:27:19.54
+13:27:52.509 +47:27:09.52
+13:27:51.438 +47:26:58.79
+13:27:53.166 +47:27:01.65
+13:27:46.623 +47:26:50.37
+13:27:49.309 +47:26:52.74
+13:27:50.481 +47:26:39.16
+13:27:45.693 +47:26:38.52
+13:27:48.233 +47:26:40.60
+13:27:49.363 +47:26:27.18
+13:27:46.979 +47:26:28.96
+13:27:48.197 +47:26:16.63
diff --git a/tests/xy.fk4.reg b/tests/xy.fk4.reg
index 1c4db85..d715e0a 100644
--- a/tests/xy.fk4.reg
+++ b/tests/xy.fk4.reg
@@ -1,27 +1,26 @@
- 201.96055 47.465832
- 201.95656 47.462095
- 201.95126 47.458669
- 201.94423 47.45514
- 201.93855 47.451667
- 201.93328 47.449195
- 201.93237 47.446533
- 201.95164 47.45178
- 201.96671 47.461282
- 201.96182 47.457961
- 201.95665 47.454688
- 201.97224 47.457763
- 201.967 47.454375
- 201.96202 47.451447
- 201.97403 47.455214
- 201.96941 47.452432
- 201.96495 47.449449
- 201.97214 47.450245
- 201.94488 47.447112
- 201.95608 47.447769
- 201.96096 47.443997
- 201.94101 47.443819
- 201.95159 47.444397
- 201.9563 47.44067
- 201.94636 47.441164
- 201.95144 47.437738
- 201.94295 47.436591
+ 201.95993 47.466046
+ 201.95594 47.462308
+ 201.95064 47.458883
+ 201.94361 47.455354
+ 201.93794 47.451881
+ 201.93266 47.449409
+ 201.93175 47.446747
+ 201.95102 47.451993
+ 201.96609 47.461495
+ 201.9612 47.458175
+ 201.95603 47.454902
+ 201.97162 47.457976
+ 201.96638 47.454589
+ 201.9614 47.451661
+ 201.97341 47.455428
+ 201.96879 47.452645
+ 201.96433 47.449663
+ 201.97152 47.450458
+ 201.94426 47.447326
+ 201.95546 47.447982
+ 201.96034 47.444211
+ 201.94039 47.444033
+ 201.95097 47.444611
+ 201.95568 47.440883
+ 201.94574 47.441378
+ 201.95082 47.437951
diff --git a/tests/xy.fk5.hms.reg b/tests/xy.fk5.hms.reg
index 30316c0..97799a1 100644
--- a/tests/xy.fk5.hms.reg
+++ b/tests/xy.fk5.hms.reg
@@ -1,27 +1,26 @@
-13:29:56.891 +47:12:29.65
-13:29:55.941 +47:12:16.17
-13:29:54.679 +47:12:03.80
-13:29:53.002 +47:11:51.05
-13:29:51.650 +47:11:38.51
-13:29:50.392 +47:11:29.58
-13:29:50.178 +47:11:19.99
-13:29:54.776 +47:11:39.01
-13:29:58.365 +47:12:13.31
-13:29:57.201 +47:12:01.32
-13:29:55.969 +47:11:49.51
-13:29:59.689 +47:12:00.68
-13:29:58.442 +47:11:48.45
-13:29:57.256 +47:11:37.88
-13:30:00.120 +47:11:51.52
-13:29:59.018 +47:11:41.47
-13:29:57.955 +47:11:30.70
-13:29:59.674 +47:11:33.61
-13:29:53.166 +47:11:22.16
-13:29:55.839 +47:11:24.59
-13:29:57.008 +47:11:11.05
-13:29:52.244 +47:11:10.28
-13:29:54.770 +47:11:12.43
-13:29:55.899 +47:10:59.04
-13:29:53.525 +47:11:00.75
-13:29:54.741 +47:10:48.45
-13:29:52.715 +47:10:44.27
+13:29:56.743 +47:12:30.42
+13:29:55.792 +47:12:16.94
+13:29:54.530 +47:12:04.57
+13:29:52.854 +47:11:51.82
+13:29:51.502 +47:11:39.28
+13:29:50.244 +47:11:30.34
+13:29:50.030 +47:11:20.75
+13:29:54.628 +47:11:39.77
+13:29:58.217 +47:12:14.07
+13:29:57.053 +47:12:02.09
+13:29:55.820 +47:11:50.27
+13:29:59.541 +47:12:01.44
+13:29:58.293 +47:11:49.21
+13:29:57.107 +47:11:38.64
+13:29:59.971 +47:11:52.28
+13:29:58.870 +47:11:42.23
+13:29:57.807 +47:11:31.47
+13:29:59.526 +47:11:34.38
+13:29:53.018 +47:11:22.92
+13:29:55.690 +47:11:25.36
+13:29:56.859 +47:11:11.81
+13:29:52.095 +47:11:11.04
+13:29:54.622 +47:11:13.19
+13:29:55.750 +47:10:59.80
+13:29:53.377 +47:11:01.52
+13:29:54.593 +47:10:49.22
diff --git a/tests/xy.fk5.reg b/tests/xy.fk5.reg
index 15b0ebc..276f17b 100644
--- a/tests/xy.fk5.reg
+++ b/tests/xy.fk5.reg
@@ -1,27 +1,26 @@
- 202.48705 47.208237
- 202.48309 47.204492
- 202.47783 47.201057
- 202.47084 47.197515
- 202.46521 47.194031
- 202.45997 47.19155
- 202.45907 47.188886
- 202.47823 47.194168
- 202.49319 47.203697
- 202.48834 47.200368
- 202.4832 47.197085
- 202.49871 47.200189
- 202.49351 47.196791
- 202.48857 47.193854
- 202.5005 47.197643
- 202.49591 47.194852
- 202.49148 47.191862
- 202.49864 47.19267
- 202.47152 47.189488
- 202.48266 47.190165
- 202.48753 47.186403
- 202.46768 47.186188
- 202.47821 47.186785
- 202.48291 47.183066
- 202.47302 47.183543
- 202.47809 47.180126
- 202.46965 47.178963
+ 202.48643 47.208449
+ 202.48247 47.204704
+ 202.47721 47.201269
+ 202.47022 47.197727
+ 202.46459 47.194244
+ 202.45935 47.191762
+ 202.45846 47.189099
+ 202.47762 47.19438
+ 202.49257 47.20391
+ 202.48772 47.20058
+ 202.48258 47.197298
+ 202.49809 47.200401
+ 202.49289 47.197004
+ 202.48795 47.194067
+ 202.49988 47.197856
+ 202.49529 47.195065
+ 202.49086 47.192074
+ 202.49802 47.192883
+ 202.47091 47.189701
+ 202.48204 47.190378
+ 202.48691 47.186615
+ 202.46706 47.1864
+ 202.47759 47.186997
+ 202.48229 47.183279
+ 202.47241 47.183755
+ 202.47747 47.180338
diff --git a/tests/xy.galactic.hms.reg b/tests/xy.galactic.hms.reg
index e1647f4..68734ab 100644
--- a/tests/xy.galactic.hms.reg
+++ b/tests/xy.galactic.hms.reg
@@ -1,27 +1,26 @@
-+104:50:10.908 +68:32:38.464
-+104:50:20.096 +68:32:54.718
-+104:50:38.471 +68:33:11.247
-+104:51:06.984 +68:33:29.844
-+104:51:27.484 +68:33:46.902
-+104:51:49.621 +68:34:00.276
-+104:51:44.421 +68:34:09.924
-+104:50:08.390 +68:33:33.497
-+104:49:15.203 +68:32:47.274
-+104:49:31.493 +68:33:03.053
-+104:49:49.713 +68:33:18.959
-+104:48:27.434 +68:32:53.313
-+104:48:45.571 +68:33:09.663
-+104:49:03.986 +68:33:24.243
-+104:48:06.279 +68:32:59.893
-+104:48:23.111 +68:33:13.643
-+104:48:38.174 +68:33:27.889
-+104:47:57.663 +68:33:18.094
-+104:50:30.670 +68:33:55.564
-+104:49:25.285 +68:33:42.254
-+104:48:40.416 +68:33:49.773
-+104:50:40.959 +68:34:10.243
-+104:49:38.951 +68:33:57.801
-+104:48:55.286 +68:34:05.346
-+104:49:57.683 +68:34:13.628
-+104:49:13.002 +68:34:19.822
-+104:49:59.987 +68:34:32.051
++104:50:15.532 +68:32:38.380
++104:50:24.720 +68:32:54.634
++104:50:43.097 +68:33:11.163
++104:51:11.611 +68:33:29.759
++104:51:32.111 +68:33:46.817
++104:51:54.250 +68:34:00.191
++104:51:49.050 +68:34:09.839
++104:50:13.017 +68:33:33.413
++104:49:19.827 +68:32:47.191
++104:49:36.118 +68:33:02.969
++104:49:54.339 +68:33:18.875
++104:48:32.059 +68:32:53.230
++104:48:50.197 +68:33:09.580
++104:49:08.613 +68:33:24.159
++104:48:10.904 +68:32:59.810
++104:48:27.737 +68:33:13.560
++104:48:42.801 +68:33:27.806
++104:48:02.289 +68:33:18.011
++104:50:35.298 +68:33:55.481
++104:49:29.913 +68:33:42.170
++104:48:45.044 +68:33:49.690
++104:50:45.588 +68:34:10.159
++104:49:43.580 +68:33:57.717
++104:48:59.915 +68:34:05.263
++104:50:02.312 +68:34:13.544
++104:49:17.632 +68:34:19.739
diff --git a/tests/xy.galactic.reg b/tests/xy.galactic.reg
index 084382d..6eeb9fd 100644
--- a/tests/xy.galactic.reg
+++ b/tests/xy.galactic.reg
@@ -1,27 +1,26 @@
- 104.83636 68.544018
- 104.83892 68.548533
- 104.84402 68.553124
- 104.85194 68.55829
- 104.85763 68.563028
- 104.86378 68.566743
- 104.86234 68.569423
- 104.83566 68.559305
- 104.82089 68.546465
- 104.82541 68.550848
- 104.83048 68.555266
- 104.80762 68.548142
- 104.81266 68.552684
- 104.81777 68.556734
- 104.80174 68.54997
- 104.80642 68.55379
- 104.8106 68.557747
- 104.79935 68.555026
- 104.84185 68.565435
- 104.82369 68.561737
- 104.81123 68.563826
- 104.84471 68.569512
- 104.82749 68.566056
- 104.81536 68.568152
- 104.83269 68.570452
- 104.82028 68.572173
- 104.83333 68.57557
+ 104.83765 68.543994
+ 104.8402 68.54851
+ 104.8453 68.553101
+ 104.85323 68.558267
+ 104.85892 68.563005
+ 104.86507 68.56672
+ 104.86363 68.5694
+ 104.83695 68.559281
+ 104.82217 68.546442
+ 104.8267 68.550825
+ 104.83176 68.555243
+ 104.80891 68.548119
+ 104.81394 68.552661
+ 104.81906 68.556711
+ 104.80303 68.549947
+ 104.8077 68.553767
+ 104.81189 68.557724
+ 104.80064 68.555003
+ 104.84314 68.565411
+ 104.82498 68.561714
+ 104.81251 68.563803
+ 104.846 68.569488
+ 104.82877 68.566033
+ 104.81664 68.568129
+ 104.83398 68.570429
+ 104.82156 68.57215
diff --git a/tests/xy.icrs.hms.reg b/tests/xy.icrs.hms.reg
index 30316c0..58923ce 100644
--- a/tests/xy.icrs.hms.reg
+++ b/tests/xy.icrs.hms.reg
@@ -1,27 +1,26 @@
-13:29:56.891 +47:12:29.65
-13:29:55.941 +47:12:16.17
-13:29:54.679 +47:12:03.80
-13:29:53.002 +47:11:51.05
-13:29:51.650 +47:11:38.51
-13:29:50.392 +47:11:29.58
-13:29:50.178 +47:11:19.99
-13:29:54.776 +47:11:39.01
-13:29:58.365 +47:12:13.31
-13:29:57.201 +47:12:01.32
-13:29:55.969 +47:11:49.51
-13:29:59.689 +47:12:00.68
-13:29:58.442 +47:11:48.45
-13:29:57.256 +47:11:37.88
-13:30:00.120 +47:11:51.52
-13:29:59.018 +47:11:41.47
-13:29:57.955 +47:11:30.70
-13:29:59.674 +47:11:33.61
-13:29:53.166 +47:11:22.16
-13:29:55.839 +47:11:24.59
-13:29:57.008 +47:11:11.05
-13:29:52.244 +47:11:10.28
-13:29:54.770 +47:11:12.43
-13:29:55.899 +47:10:59.04
-13:29:53.525 +47:11:00.75
-13:29:54.741 +47:10:48.45
-13:29:52.715 +47:10:44.27
+13:29:56.743 +47:12:30.42
+13:29:55.792 +47:12:16.94
+13:29:54.530 +47:12:04.57
+13:29:52.854 +47:11:51.82
+13:29:51.502 +47:11:39.28
+13:29:50.244 +47:11:30.34
+13:29:50.030 +47:11:20.76
+13:29:54.628 +47:11:39.77
+13:29:58.217 +47:12:14.08
+13:29:57.053 +47:12:02.09
+13:29:55.820 +47:11:50.27
+13:29:59.541 +47:12:01.45
+13:29:58.293 +47:11:49.22
+13:29:57.108 +47:11:38.64
+13:29:59.971 +47:11:52.28
+13:29:58.870 +47:11:42.24
+13:29:57.807 +47:11:31.47
+13:29:59.526 +47:11:34.38
+13:29:53.018 +47:11:22.92
+13:29:55.691 +47:11:25.36
+13:29:56.859 +47:11:11.82
+13:29:52.095 +47:11:11.04
+13:29:54.622 +47:11:13.19
+13:29:55.751 +47:10:59.81
+13:29:53.377 +47:11:01.52
+13:29:54.593 +47:10:49.22
diff --git a/tests/xy.icrs.reg b/tests/xy.icrs.reg
index 15b0ebc..d0c440a 100644
--- a/tests/xy.icrs.reg
+++ b/tests/xy.icrs.reg
@@ -1,27 +1,26 @@
- 202.48705 47.208237
- 202.48309 47.204492
- 202.47783 47.201057
- 202.47084 47.197515
- 202.46521 47.194031
- 202.45997 47.19155
- 202.45907 47.188886
- 202.47823 47.194168
- 202.49319 47.203697
- 202.48834 47.200368
- 202.4832 47.197085
- 202.49871 47.200189
- 202.49351 47.196791
- 202.48857 47.193854
- 202.5005 47.197643
- 202.49591 47.194852
- 202.49148 47.191862
- 202.49864 47.19267
- 202.47152 47.189488
- 202.48266 47.190165
- 202.48753 47.186403
- 202.46768 47.186188
- 202.47821 47.186785
- 202.48291 47.183066
- 202.47302 47.183543
- 202.47809 47.180126
- 202.46965 47.178963
+ 202.48643 47.208449
+ 202.48247 47.204705
+ 202.47721 47.20127
+ 202.47023 47.197727
+ 202.46459 47.194244
+ 202.45935 47.191762
+ 202.45846 47.189099
+ 202.47762 47.194381
+ 202.49257 47.20391
+ 202.48772 47.200581
+ 202.48259 47.197298
+ 202.49809 47.200401
+ 202.49289 47.197004
+ 202.48795 47.194067
+ 202.49988 47.197856
+ 202.49529 47.195065
+ 202.49086 47.192075
+ 202.49802 47.192883
+ 202.47091 47.189701
+ 202.48204 47.190378
+ 202.48691 47.186615
+ 202.46706 47.186401
+ 202.47759 47.186998
+ 202.48229 47.183279
+ 202.47241 47.183755
+ 202.47747 47.180338
diff --git a/tests/xy.image.reg b/tests/xy.image.reg
index 234426a..af66ee0 100644
--- a/tests/xy.image.reg
+++ b/tests/xy.image.reg
@@ -1,27 +1,26 @@
- 163 538
- 245 521
- 335 519
- 442 530
- 536 530.5
- 614.14214 541.14214
- 655 513
- 416 423.5
- 163 426
- 248 422
- 335 421
- 156 333
- 245 331
- 326 333
- 171 284
- 247 285
- 324 282
- 249 233
- 534.5 417
- 425 333
- 427 242
- 610 405
- 507 325
- 510 236
- 594 325
- 590 237
- 681 292
+ 166 546
+ 248 529
+ 338 527
+ 445 538
+ 539 538.5
+ 617.14214 549.14214
+ 658 521
+ 419 431.5
+ 166 434
+ 251 430
+ 338 429
+ 159 341
+ 248 339
+ 329 341
+ 174 292
+ 250 293
+ 327 290
+ 252 241
+ 537.5 425
+ 428 341
+ 430 250
+ 613 413
+ 510 333
+ 513 244
+ 597 333
+ 593 245
diff --git a/tests/xy.physical.reg b/tests/xy.physical.reg
index 6990c40..12c1fd1 100644
--- a/tests/xy.physical.reg
+++ b/tests/xy.physical.reg
@@ -1,27 +1,26 @@
- 325 1075
- 489 1041
- 669 1037
- 883 1059
- 1071 1060
- 1227.2843 1081.2843
- 1309 1025
- 831 846
- 325 851
- 495 843
- 669 841
- 311 665
- 489 661
- 651 665
- 341 567
- 493 569
- 647 563
- 497 465
- 1068 833
- 849 665
- 853 483
- 1219 809
- 1013 649
- 1019 471
- 1187 649
- 1179 473
- 1361 583
+ 331 1091
+ 495 1057
+ 675 1053
+ 889 1075
+ 1077 1076
+ 1233.2843 1097.2843
+ 1315 1041
+ 837 862
+ 331 867
+ 501 859
+ 675 857
+ 317 681
+ 495 677
+ 657 681
+ 347 583
+ 499 585
+ 653 579
+ 503 481
+ 1074 849
+ 855 681
+ 859 499
+ 1225 825
+ 1019 665
+ 1025 487
+ 1193 665
+ 1185 489
diff --git a/tkmpeg/tkmpeg.C b/tkmpeg/tkmpeg.C
index 0b284ab..ecd28f7 100644
--- a/tkmpeg/tkmpeg.C
+++ b/tkmpeg/tkmpeg.C
@@ -100,7 +100,11 @@ TkMPEG::TkMPEG(Tcl_Interp* intp)
str >> quality;
}
- if(!ezMPEG_Init(&ms, argv[2], width, height, fps, gop, quality)) {
+ // width and height must be a multiple of 16
+ int ww = int(width/16.+1)*16;
+ int hh = int(height/16.+1)*16;
+
+ if(!ezMPEG_Init(&ms, argv[2], ww, hh, fps, gop, quality)) {
Tcl_AppendResult(interp, "ezMPEG_Init ", ezMPEG_GetLastError(&ms), NULL);
return TCL_ERROR;
}
@@ -134,24 +138,31 @@ int TkMPEG::add(int argc, const char* argv[])
return TCL_ERROR;
}
- int w = ms.hsize*16;
- int h = ms.vsize*16;
+ int ww = ms.hsize*16;
+ int hh = ms.vsize*16;
- unsigned char* pict = new unsigned char[w*h*3];
+ unsigned char* pict = new unsigned char[ww*hh*3];
if (!pict) {
Tcl_AppendResult(interp, "unable to alloc memory", NULL);
return TCL_ERROR;
}
- memset(pict,0,w*h*3);
+ memset(pict,0,ww*hh*3);
unsigned char* src = block.pixelPtr;
unsigned char* dst = pict;
- for (int j=0; j<h; j++)
- for (int i=0; i<w; i++) {
- *dst++ = src[(j*width+i)*block.pixelSize+block.offset[0]];
- *dst++ = src[(j*width+i)*block.pixelSize+block.offset[1]];
- *dst++ = src[(j*width+i)*block.pixelSize+block.offset[2]];
+ for (int jj=0; jj<hh; jj++)
+ for (int ii=0; ii<ww; ii++) {
+ if (jj<height && ii<width) {
+ *dst++ = src[(jj*width+ii)*block.pixelSize+block.offset[0]];
+ *dst++ = src[(jj*width+ii)*block.pixelSize+block.offset[1]];
+ *dst++ = src[(jj*width+ii)*block.pixelSize+block.offset[2]];
+ }
+ else {
+ *dst++ = 255;
+ *dst++ = 255;
+ *dst++ = 255;
+ }
}
if(!ezMPEG_Add(&ms, pict)) {
--
image display tool for astronomy
More information about the debian-science-commits
mailing list