diff -Nru gamgi-0.16.8/dat/all.xml gamgi-0.17/dat/all.xml --- gamgi-0.16.8/dat/all.xml 2010-01-19 15:19:55.000000000 +0000 +++ gamgi-0.17/dat/all.xml 2013-12-19 16:38:22.000000000 +0000 @@ -83,28 +83,28 @@ @@ -112,7 +112,7 @@ diff -Nru gamgi-0.16.8/dat/cell/blenda.xml gamgi-0.17/dat/cell/blenda.xml --- gamgi-0.16.8/dat/cell/blenda.xml 2009-10-28 18:17:14.000000000 +0000 +++ gamgi-0.17/dat/cell/blenda.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru gamgi-0.16.8/dat/cell/etc/blenda.xml gamgi-0.17/dat/cell/etc/blenda.xml --- gamgi-0.16.8/dat/cell/etc/blenda.xml 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/dat/cell/etc/blenda.xml 2009-10-28 18:17:14.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru gamgi-0.16.8/dat/cell/etc/fluorapatite.xml gamgi-0.17/dat/cell/etc/fluorapatite.xml --- gamgi-0.16.8/dat/cell/etc/fluorapatite.xml 2012-04-30 20:02:37.000000000 +0000 +++ gamgi-0.17/dat/cell/etc/fluorapatite.xml 2013-12-19 16:19:51.000000000 +0000 @@ -7,7 +7,7 @@ specular_g="0.300" specular_b="0.300" direction_x="0.0000" direction_y="0.0000" direction_z="-1.0000"/> + z="-11.1700" e1="75.00" e2="90.00" e3="125.00" model="primitive" axes="yes"> + + + + + + + + + + + + + 7.6452 5.8313 7.2532 7.6449 9.7185 7.2533 5.7337 7.7748 7.2661 9.5563 + 7.7751 7.2661 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 7.6451 5.8313 4.4267 5.7336 7.7748 4.4139 7.6448 9.7186 4.4267 9.5563 + 7.7751 4.4138 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 3.8221 9.7183 4.4268 5.7336 7.7748 4.4139 3.8224 5.8310 4.4268 1.9109 + 7.7746 4.4140 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 3.8225 5.8310 7.2534 3.8222 9.7182 7.2535 1.9110 7.7744 7.2664 5.7337 + 7.7748 7.2661 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 3.8225 9.7181 16.1071 5.7340 7.7746 16.0941 3.8228 5.8308 16.1070 1.9113 + 7.7743 16.0942 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 7.6455 5.8310 16.1069 5.7340 7.7746 16.0941 7.6452 9.7183 16.1069 9.5567 + 7.7748 16.0940 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 3.8229 5.8308 18.9336 5.7341 7.7746 18.9465 3.8226 9.7180 18.9336 1.9115 + 7.7743 18.9465 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 7.6456 5.8310 18.9335 9.5568 7.7748 18.9463 7.6453 9.7182 18.9335 5.7341 + 7.7746 18.9465 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 3.8227 1.9439 4.4267 1.9112 3.8873 4.4140 3.8224 5.8310 4.4268 5.7339 + 3.8876 4.4138 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 7.6454 1.9441 4.4266 7.6451 5.8313 4.4267 9.5566 3.8879 4.4137 5.7339 + 3.8876 4.4138 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 3.8225 5.8310 7.2534 3.8228 1.9438 7.2533 5.7340 3.8875 7.2661 1.9112 + 3.8873 7.2662 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 7.6454 1.9441 7.2531 9.5567 3.8877 7.2660 7.6452 5.8313 7.2532 5.7340 + 3.8875 7.2661 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 7.6458 1.9439 16.1067 5.7342 3.8874 16.0941 7.6455 5.8310 16.1069 9.5570 + 3.8877 16.0939 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 7.6459 1.9438 18.9334 9.5571 3.8875 18.9462 7.6456 5.8310 18.9335 5.7343 + 3.8873 18.9463 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 3.8229 5.8308 18.9336 1.9117 3.8870 18.9465 3.8232 1.9435 18.9335 5.7343 + 3.8873 18.9463 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + 3.8228 5.8308 16.1070 3.8230 1.9437 16.1069 1.9115 3.8871 16.0942 5.7342 + 3.8874 16.0941 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + + 7.6451 7.7749 9.8230 7.6449 9.7185 7.2533 7.6452 5.8313 7.2532 5.7337 + 7.7748 7.2661 9.5563 7.7751 7.2661 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 7.6449 7.7749 1.8570 7.6451 5.8313 4.4267 7.6448 9.7186 4.4267 5.7336 + 7.7748 4.4139 9.5563 7.7751 4.4138 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 3.8222 7.7747 1.8572 3.8221 9.7183 4.4268 3.8224 5.8310 4.4268 5.7336 + 7.7748 4.4139 1.9109 7.7746 4.4140 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 3.8225 7.7746 9.8231 3.8222 9.7182 7.2535 3.8225 5.8310 7.2534 1.9110 + 7.7744 7.2664 5.7337 7.7748 7.2661 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 3.8226 7.7744 13.5374 3.8225 9.7181 16.1071 3.8228 5.8308 16.1070 5.7340 + 7.7746 16.0941 1.9113 7.7743 16.0942 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 7.6453 7.7747 13.5372 7.6455 5.8310 16.1069 7.6452 9.7183 16.1069 5.7340 + 7.7746 16.0941 9.5567 7.7748 16.0940 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 3.8229 7.7743 21.5033 3.8229 5.8308 18.9336 3.8226 9.7180 18.9336 5.7341 + 7.7746 18.9465 1.9115 7.7743 18.9465 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 7.6456 7.7746 21.5031 7.6456 5.8310 18.9335 7.6453 9.7182 18.9335 9.5568 + 7.7748 18.9463 5.7341 7.7746 18.9465 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 3.8225 3.8876 1.8571 3.8227 1.9439 4.4267 3.8224 5.8310 4.4268 1.9112 + 3.8873 4.4140 5.7339 3.8876 4.4138 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 7.6451 3.8878 1.8570 7.6451 5.8313 4.4267 7.6454 1.9441 4.4266 9.5566 + 3.8879 4.4137 5.7339 3.8876 4.4138 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 3.8227 3.8874 9.8230 3.8228 1.9438 7.2533 3.8225 5.8310 7.2534 5.7340 + 3.8875 7.2661 1.9112 3.8873 7.2662 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 7.6454 3.8876 9.8229 7.6454 1.9441 7.2531 7.6452 5.8313 7.2532 9.5567 + 3.8877 7.2660 5.7340 3.8875 7.2661 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 7.6456 3.8876 13.5372 7.6458 1.9439 16.1067 7.6455 5.8310 16.1069 5.7342 + 3.8874 16.0941 9.5570 3.8877 16.0939 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 7.6458 3.8874 21.5031 7.6459 1.9438 18.9334 7.6456 5.8310 18.9335 9.5571 + 3.8875 18.9462 5.7343 3.8873 18.9463 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 3.8231 3.8871 21.5031 3.8229 5.8308 18.9336 3.8232 1.9435 18.9335 1.9117 + 3.8870 18.9465 5.7343 3.8873 18.9463 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + + 3.8228 3.8873 13.5373 3.8230 1.9437 16.1069 3.8228 5.8308 16.1070 1.9115 + 3.8871 16.0942 5.7342 3.8874 16.0941 + + + 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 + + + + + + + + + + 3.8224 9.7181 11.6803 3.8226 7.7744 13.5374 3.8226 5.8309 11.6802 3.8225 + 7.7746 9.8231 + + + 1 4 0 1 2 3 + + + + + + + + + + 7.6450 9.7184 11.6802 7.6453 7.7747 13.5372 7.6453 5.8312 11.6800 7.6451 + 7.7749 9.8230 + + + 1 4 0 1 2 3 + + + + + + + + + + 3.8229 1.9437 11.6801 3.8228 3.8873 13.5373 3.8226 5.8309 11.6802 3.8227 + 3.8874 9.8230 + + + 1 4 0 1 2 3 + + + + + + + + + + 7.6453 5.8312 11.6800 7.6454 3.8876 9.8229 7.6456 1.9440 11.6800 7.6456 + 3.8876 13.5372 + + + 1 4 0 1 2 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru gamgi-0.16.8/dat/cell/etc/screen_blenda.xml gamgi-0.17/dat/cell/etc/screen_blenda.xml --- gamgi-0.16.8/dat/cell/etc/screen_blenda.xml 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/dat/cell/etc/screen_blenda.xml 2011-04-20 17:13:49.000000000 +0000 @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5.4047 2.7044 2.7026 5.4053 0.0013 -0.0004 2.7028 0.0007 2.7028 2.7021 + 2.7036 -0.0002 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + + + + + 2.7024 2.7037 5.4057 -0.0006 0.0002 5.4058 -0.0011 2.7031 2.7028 2.7028 + 0.0007 2.7028 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + + + + + 2.7024 2.7037 5.4057 5.4044 5.4074 5.4056 5.4047 2.7044 2.7026 2.7018 + 5.4067 2.7028 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + + + + + 2.7018 5.4067 2.7028 2.7021 2.7036 -0.0002 -0.0011 2.7031 2.7028 -0.0019 + 5.4060 -0.0002 + + + 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru gamgi-0.16.8/dat/cell/link/link1.xml gamgi-0.17/dat/cell/link/link1.xml --- gamgi-0.16.8/dat/cell/link/link1.xml 2007-06-30 22:45:40.000000000 +0000 +++ gamgi-0.17/dat/cell/link/link1.xml 2013-12-19 16:06:24.000000000 +0000 @@ -3,7 +3,7 @@ diff -Nru gamgi-0.16.8/dat/cell/link/link2.xml gamgi-0.17/dat/cell/link/link2.xml --- gamgi-0.16.8/dat/cell/link/link2.xml 2007-06-30 22:45:45.000000000 +0000 +++ gamgi-0.17/dat/cell/link/link2.xml 2013-12-19 16:08:07.000000000 +0000 @@ -3,7 +3,7 @@ diff -Nru gamgi-0.16.8/dat/cell/link/link3.xml gamgi-0.17/dat/cell/link/link3.xml --- gamgi-0.16.8/dat/cell/link/link3.xml 2007-06-30 22:45:48.000000000 +0000 +++ gamgi-0.17/dat/cell/link/link3.xml 2013-12-19 16:06:41.000000000 +0000 @@ -3,7 +3,7 @@ + e1="4.06" e2="34.83" e3="325.90" model="sphere" v1="3.0000" scale="1.55"/> diff -Nru gamgi-0.16.8/dat/cell/screen_YBa2Cu3O7-x.xml gamgi-0.17/dat/cell/screen_YBa2Cu3O7-x.xml --- gamgi-0.16.8/dat/cell/screen_YBa2Cu3O7-x.xml 2012-04-19 18:36:38.000000000 +0000 +++ gamgi-0.17/dat/cell/screen_YBa2Cu3O7-x.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,807 +0,0 @@ - - - - - - - - - - - - - - 7.6452 5.8313 7.2532 7.6449 9.7185 7.2533 5.7337 7.7748 7.2661 9.5563 - 7.7751 7.2661 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 7.6451 5.8313 4.4267 5.7336 7.7748 4.4139 7.6448 9.7186 4.4267 9.5563 - 7.7751 4.4138 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 3.8221 9.7183 4.4268 5.7336 7.7748 4.4139 3.8224 5.8310 4.4268 1.9109 - 7.7746 4.4140 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 3.8225 5.8310 7.2534 3.8222 9.7182 7.2535 1.9110 7.7744 7.2664 5.7337 - 7.7748 7.2661 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 3.8225 9.7181 16.1071 5.7340 7.7746 16.0941 3.8228 5.8308 16.1070 1.9113 - 7.7743 16.0942 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 7.6455 5.8310 16.1069 5.7340 7.7746 16.0941 7.6452 9.7183 16.1069 9.5567 - 7.7748 16.0940 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 3.8229 5.8308 18.9336 5.7341 7.7746 18.9465 3.8226 9.7180 18.9336 1.9115 - 7.7743 18.9465 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 7.6456 5.8310 18.9335 9.5568 7.7748 18.9463 7.6453 9.7182 18.9335 5.7341 - 7.7746 18.9465 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 3.8227 1.9439 4.4267 1.9112 3.8873 4.4140 3.8224 5.8310 4.4268 5.7339 - 3.8876 4.4138 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 7.6454 1.9441 4.4266 7.6451 5.8313 4.4267 9.5566 3.8879 4.4137 5.7339 - 3.8876 4.4138 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 3.8225 5.8310 7.2534 3.8228 1.9438 7.2533 5.7340 3.8875 7.2661 1.9112 - 3.8873 7.2662 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 7.6454 1.9441 7.2531 9.5567 3.8877 7.2660 7.6452 5.8313 7.2532 5.7340 - 3.8875 7.2661 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 7.6458 1.9439 16.1067 5.7342 3.8874 16.0941 7.6455 5.8310 16.1069 9.5570 - 3.8877 16.0939 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 7.6459 1.9438 18.9334 9.5571 3.8875 18.9462 7.6456 5.8310 18.9335 5.7343 - 3.8873 18.9463 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 3.8229 5.8308 18.9336 1.9117 3.8870 18.9465 3.8232 1.9435 18.9335 5.7343 - 3.8873 18.9463 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - 3.8228 5.8308 16.1070 3.8230 1.9437 16.1069 1.9115 3.8871 16.0942 5.7342 - 3.8874 16.0941 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - - 7.6451 7.7749 9.8230 7.6449 9.7185 7.2533 7.6452 5.8313 7.2532 5.7337 - 7.7748 7.2661 9.5563 7.7751 7.2661 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 7.6449 7.7749 1.8570 7.6451 5.8313 4.4267 7.6448 9.7186 4.4267 5.7336 - 7.7748 4.4139 9.5563 7.7751 4.4138 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 3.8222 7.7747 1.8572 3.8221 9.7183 4.4268 3.8224 5.8310 4.4268 5.7336 - 7.7748 4.4139 1.9109 7.7746 4.4140 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 3.8225 7.7746 9.8231 3.8222 9.7182 7.2535 3.8225 5.8310 7.2534 1.9110 - 7.7744 7.2664 5.7337 7.7748 7.2661 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 3.8226 7.7744 13.5374 3.8225 9.7181 16.1071 3.8228 5.8308 16.1070 5.7340 - 7.7746 16.0941 1.9113 7.7743 16.0942 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 7.6453 7.7747 13.5372 7.6455 5.8310 16.1069 7.6452 9.7183 16.1069 5.7340 - 7.7746 16.0941 9.5567 7.7748 16.0940 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 3.8229 7.7743 21.5033 3.8229 5.8308 18.9336 3.8226 9.7180 18.9336 5.7341 - 7.7746 18.9465 1.9115 7.7743 18.9465 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 7.6456 7.7746 21.5031 7.6456 5.8310 18.9335 7.6453 9.7182 18.9335 9.5568 - 7.7748 18.9463 5.7341 7.7746 18.9465 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 3.8225 3.8876 1.8571 3.8227 1.9439 4.4267 3.8224 5.8310 4.4268 1.9112 - 3.8873 4.4140 5.7339 3.8876 4.4138 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 7.6451 3.8878 1.8570 7.6451 5.8313 4.4267 7.6454 1.9441 4.4266 9.5566 - 3.8879 4.4137 5.7339 3.8876 4.4138 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 3.8227 3.8874 9.8230 3.8228 1.9438 7.2533 3.8225 5.8310 7.2534 5.7340 - 3.8875 7.2661 1.9112 3.8873 7.2662 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 7.6454 3.8876 9.8229 7.6454 1.9441 7.2531 7.6452 5.8313 7.2532 9.5567 - 3.8877 7.2660 5.7340 3.8875 7.2661 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 7.6456 3.8876 13.5372 7.6458 1.9439 16.1067 7.6455 5.8310 16.1069 5.7342 - 3.8874 16.0941 9.5570 3.8877 16.0939 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 7.6458 3.8874 21.5031 7.6459 1.9438 18.9334 7.6456 5.8310 18.9335 9.5571 - 3.8875 18.9462 5.7343 3.8873 18.9463 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 3.8231 3.8871 21.5031 3.8229 5.8308 18.9336 3.8232 1.9435 18.9335 1.9117 - 3.8870 18.9465 5.7343 3.8873 18.9463 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - - 3.8228 3.8873 13.5373 3.8230 1.9437 16.1069 3.8228 5.8308 16.1070 1.9115 - 3.8871 16.0942 5.7342 3.8874 16.0941 - - - 6 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 4 3 0 2 4 3 2 1 4 - - - - - - - - - - 3.8224 9.7181 11.6803 3.8226 7.7744 13.5374 3.8226 5.8309 11.6802 3.8225 - 7.7746 9.8231 - - - 1 4 0 1 2 3 - - - - - - - - - - 7.6450 9.7184 11.6802 7.6453 7.7747 13.5372 7.6453 5.8312 11.6800 7.6451 - 7.7749 9.8230 - - - 1 4 0 1 2 3 - - - - - - - - - - 3.8229 1.9437 11.6801 3.8228 3.8873 13.5373 3.8226 5.8309 11.6802 3.8227 - 3.8874 9.8230 - - - 1 4 0 1 2 3 - - - - - - - - - - 7.6453 5.8312 11.6800 7.6454 3.8876 9.8229 7.6456 1.9440 11.6800 7.6456 - 3.8876 13.5372 - - - 1 4 0 1 2 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru gamgi-0.16.8/dat/cell/screen_blenda.xml gamgi-0.17/dat/cell/screen_blenda.xml --- gamgi-0.16.8/dat/cell/screen_blenda.xml 2011-04-20 17:13:49.000000000 +0000 +++ gamgi-0.17/dat/cell/screen_blenda.xml 1970-01-01 00:00:00.000000000 +0000 @@ -1,175 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5.4047 2.7044 2.7026 5.4053 0.0013 -0.0004 2.7028 0.0007 2.7028 2.7021 - 2.7036 -0.0002 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - - - - - 2.7024 2.7037 5.4057 -0.0006 0.0002 5.4058 -0.0011 2.7031 2.7028 2.7028 - 0.0007 2.7028 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - - - - - 2.7024 2.7037 5.4057 5.4044 5.4074 5.4056 5.4047 2.7044 2.7026 2.7018 - 5.4067 2.7028 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - - - - - 2.7018 5.4067 2.7028 2.7021 2.7036 -0.0002 -0.0011 2.7031 2.7028 -0.0019 - 5.4060 -0.0002 - - - 4 3 1 2 3 3 2 0 3 3 0 1 3 3 1 0 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -Nru gamgi-0.16.8/dat/cell/silica/quartz.xml gamgi-0.17/dat/cell/silica/quartz.xml --- gamgi-0.16.8/dat/cell/silica/quartz.xml 2013-03-08 23:07:32.000000000 +0000 +++ gamgi-0.17/dat/cell/silica/quartz.xml 2013-12-19 16:23:48.000000000 +0000 @@ -3,7 +3,7 @@ + e2="45.90" e3="270.15" model="wigner"> + e1="75.71" e2="90.04" e3="113.47" model="primitive"> + e1="61.26" e2="89.74" e3="297.15" model="primitive"> + e1="79.60" e2="90.69" e3="81.48" model="primitive" axes="yes" scale="0.650"> + z="-7.4625" e1="77.00" e2="90.00" e3="134.00" model="primitive" axes="yes"> + z="-7.0520" e1="78.00" e2="90.00" e3="112.00" model="primitive" axes="yes"> + e1="78.00" e2="89.96" e3="133.16" model="primitive" axes="yes"> diff -Nru gamgi-0.16.8/dat/cell/styles.xml gamgi-0.17/dat/cell/styles.xml --- gamgi-0.16.8/dat/cell/styles.xml 2007-06-30 22:43:56.000000000 +0000 +++ gamgi-0.17/dat/cell/styles.xml 2013-12-19 16:02:17.000000000 +0000 @@ -7,7 +7,7 @@ specular_r="0.500" specular_g="0.500" specular_b="0.000" direction_x="0.0000" direction_y="0.0000" direction_z="-1.0000"/> @@ -16,7 +16,7 @@ specular_g="0.500" specular_b="0.500" direction_x="-1.0000" direction_y="-1.0000" direction_z="-1.0000"/> @@ -24,10 +24,10 @@ x="-2.0217" y="-1.2247" z="0.9305" e1="36.61" e2="327.57" e3="307.64"/> + model="primitive" red="0.000" green="1.000" blue="1.000"/> + model="wigner" faces="yes" red="1.000" green="0.000" blue="0.000"/> @@ -17,7 +17,7 @@ specular_g="0.500" specular_b="0.500" direction_x="-1.0000" direction_y="-1.0000" direction_z="-1.0000"/> + model="primitive" red="0.500" green="0.500" blue="0.500"/> + model="wigner" faces="yes" red="0.600" green="0.600" blue="0.600"/> diff -Nru gamgi-0.16.8/dat/molecule/hydrocarbons/dinitrobenzene.xml gamgi-0.17/dat/molecule/hydrocarbons/dinitrobenzene.xml --- gamgi-0.16.8/dat/molecule/hydrocarbons/dinitrobenzene.xml 2003-08-05 22:07:50.000000000 +0000 +++ gamgi-0.17/dat/molecule/hydrocarbons/dinitrobenzene.xml 2013-12-19 16:53:43.000000000 +0000 @@ -3,7 +3,7 @@ + label="h"/> diff -Nru gamgi-0.16.8/dat/molecule/photosynthesis/pheophytin.xml gamgi-0.17/dat/molecule/photosynthesis/pheophytin.xml --- gamgi-0.16.8/dat/molecule/photosynthesis/pheophytin.xml 2003-08-05 20:57:23.000000000 +0000 +++ gamgi-0.17/dat/molecule/photosynthesis/pheophytin.xml 2013-12-19 16:56:20.000000000 +0000 @@ -90,7 +90,7 @@ + label="h"/> diff -Nru gamgi-0.16.8/dat/orbital/screen_3d_all.xml gamgi-0.17/dat/orbital/screen_3d_all.xml --- gamgi-0.16.8/dat/orbital/screen_3d_all.xml 2013-07-03 21:42:25.000000000 +0000 +++ gamgi-0.17/dat/orbital/screen_3d_all.xml 2013-12-19 17:08:29.000000000 +0000 @@ -2,35 +2,35 @@ - - + + - - + + - - + + - - + + - - + diff -Nru gamgi-0.16.8/dat/orbital/screen_6gz4_6s.xml gamgi-0.17/dat/orbital/screen_6gz4_6s.xml --- gamgi-0.16.8/dat/orbital/screen_6gz4_6s.xml 2013-07-04 15:05:49.000000000 +0000 +++ gamgi-0.17/dat/orbital/screen_6gz4_6s.xml 2013-11-21 17:04:30.000000000 +0000 @@ -1,12 +1,12 @@ - + - - + - diff -Nru gamgi-0.16.8/dat/plane/plane_cP001.xml gamgi-0.17/dat/plane/plane_cP001.xml --- gamgi-0.16.8/dat/plane/plane_cP001.xml 2007-06-30 22:48:33.000000000 +0000 +++ gamgi-0.17/dat/plane/plane_cP001.xml 2013-12-19 15:51:46.000000000 +0000 @@ -1,88 +1,88 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru gamgi-0.16.8/dat/plane/plane_cP110.xml gamgi-0.17/dat/plane/plane_cP110.xml --- gamgi-0.16.8/dat/plane/plane_cP110.xml 2007-06-30 22:48:40.000000000 +0000 +++ gamgi-0.17/dat/plane/plane_cP110.xml 2013-12-19 15:51:58.000000000 +0000 @@ -1,89 +1,89 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru gamgi-0.16.8/dat/plane/plane_direction_cP001.xml gamgi-0.17/dat/plane/plane_direction_cP001.xml --- gamgi-0.16.8/dat/plane/plane_direction_cP001.xml 2007-06-30 22:48:45.000000000 +0000 +++ gamgi-0.17/dat/plane/plane_direction_cP001.xml 2013-12-19 15:52:19.000000000 +0000 @@ -1,91 +1,91 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru gamgi-0.16.8/dat/plane/plane_direction_hP001.xml gamgi-0.17/dat/plane/plane_direction_hP001.xml --- gamgi-0.16.8/dat/plane/plane_direction_hP001.xml 2007-06-30 22:48:48.000000000 +0000 +++ gamgi-0.17/dat/plane/plane_direction_hP001.xml 2013-12-19 15:52:25.000000000 +0000 @@ -2,91 +2,91 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + c="1.6333" model="projection" scale="4.000"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru gamgi-0.16.8/dat/plane/plane_direction_hR003.xml gamgi-0.17/dat/plane/plane_direction_hR003.xml --- gamgi-0.16.8/dat/plane/plane_direction_hR003.xml 2007-06-30 22:48:52.000000000 +0000 +++ gamgi-0.17/dat/plane/plane_direction_hR003.xml 2013-12-19 15:52:39.000000000 +0000 @@ -2,55 +2,55 @@ - - - - - - - + model="projection" scale="4.000"> + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + + + diff -Nru gamgi-0.16.8/dat/plane/plane_hP001.xml gamgi-0.17/dat/plane/plane_hP001.xml --- gamgi-0.16.8/dat/plane/plane_hP001.xml 2007-06-30 22:48:56.000000000 +0000 +++ gamgi-0.17/dat/plane/plane_hP001.xml 2013-12-19 15:52:59.000000000 +0000 @@ -2,88 +2,88 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + model="projection" scale="4.000"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru gamgi-0.16.8/dat/plane/screen_direction_plane_ranges.xml gamgi-0.17/dat/plane/screen_direction_plane_ranges.xml --- gamgi-0.16.8/dat/plane/screen_direction_plane_ranges.xml 2011-04-20 16:25:09.000000000 +0000 +++ gamgi-0.17/dat/plane/screen_direction_plane_ranges.xml 2013-12-19 15:55:44.000000000 +0000 @@ -84,7 +84,7 @@ + model="sphere" v1="5.0000" scale="0.530"> diff -Nru gamgi-0.16.8/debian/changelog gamgi-0.17/debian/changelog --- gamgi-0.16.8/debian/changelog 2013-12-21 21:56:00.000000000 +0000 +++ gamgi-0.17/debian/changelog 2013-12-28 11:29:50.000000000 +0000 @@ -1,3 +1,9 @@ +gamgi (0.17-1) unstable; urgency=low + + * New upstream release. + + -- Daniel Leidert Sat, 28 Dec 2013 12:29:46 +0100 + gamgi (0.16.8-1) unstable; urgency=low * New upstream release. diff -Nru gamgi-0.16.8/doc/changelogs/changelogs.html gamgi-0.17/doc/changelogs/changelogs.html --- gamgi-0.16.8/doc/changelogs/changelogs.html 2013-10-31 15:55:02.000000000 +0000 +++ gamgi-0.17/doc/changelogs/changelogs.html 2013-12-20 19:26:19.000000000 +0000 @@ -21,6 +21,87 @@
+
GAMGI 0.17
20th December 2013
+
+ +
+ +Fixed a scientific bug in the Hydrogen orbital code. Fixed the way the +Debye-Waller atomic temperature factor is handled. Fixed a makefile bug +in the release without GtkGlExt. Orbital->Select is now fully working. +Simplified the way axes are handled for orbitals. Added more options to +select lists of directions and planes. Updated documentation for Formats +and Interfaces, regarding orbitals, directions, planes. Changed a few XML +attributes for cell, direction, plane elements, for the sake of consistency. + +

What is new:

+ +
    +
  • Fixed a makefile bug (introduced in gamgi0.15.6) in the GAMGI branch +that does not require the GtkGlExt library: the make_rules contained gtkglext +dependencies that should not be there.
  • +
  • Planes, Directions can now be seleted by projection net: Wulff or Schmidt.
  • +
  • Synced code, documentation and data files between gamgi and gamgi_exp +distribution trees.
  • +
  • Checked dat/orbital XML files to update orbital axes attributes.
  • +
  • Checked all dat/ XML files to replace attribute type by label, +in atom elements.
  • +
  • Checked all dat/ XML files to replace attribute type by model, +in plane, direction, cell elements.
  • +
  • For the sake of consistency, replaced globally the name projection +by net in direction and plane code and XML elements.
  • +
  • For the sake of consistency, replaced globally the name type +by model in cell, plane, direction code and XML elements.
  • +
  • Changed label Type to Model in Cell->Create and Cell->Modify.
  • +
  • Changed label Method to Type in Bond->Create.
  • +
  • Updated Help->Formats documentation for XML Plane and Direction objects.
  • +
  • Updated Help->Interfaces documentation for Type and Projection +in Plane->Create, Plane->Modify, Direction->Create, Direction->Modify.
  • +
  • The Debye-Waller atomic temperature can now take values only +between 0.0 (blue) and 100.0 (red) as is usual in this analysis.
  • +
  • Updated Interfaces and Formats documentation for Bond objects.
  • +
  • Fixed the default Debye-Waller atomic temperature: the new value +is 0.0, corresponding to an atom with a well known position.
  • +
  • Updated Formats documentation for Atom and Cell objects.
  • +
  • Help->Current and Help->Topic can now +read the documentation for Orbital->Modify.
  • +
  • Wrote documentation for Orbital->Modify.
  • +
  • Updated documentation for Orbital->Create.
  • +
  • Orbital axes are now handled in a much simpler way, in +Orbital->Create, Orbital->Modify and XML native files.
  • +
  • Orbital->Select is now working fine for all options, including +the many properties that can be used to select orbitals.
  • +
  • Simplified slightly the functions gamgi_gtk_select_*.c.
  • +
  • Fixed two bugs in the H orbitals code, introduced in GAMGI 0.16.6: +1) the terms rho**L (from Laguerre polynomials) and 1/r**L (from Legendre +functions) cancel each other, apart from a constant that was missing. +2) the default radius calculation was missing the rho**L term.
  • +
  • Lists of Planes can now be selected by model: +Polygon, Pole, Trace, Vector.
  • +
  • Lists of Directions can now be selected by model: +Line, Pole, Trace.
  • +
+ +

What is next:

+ +
    +
  • Rewrite the About dialog, in the notebook form, to +include pages for Developers, Contributors, Supporters.
  • +
  • Add a task id to operactions involving multiple scans to +guarantee that there is no flag corruption when bonds are +created between different molecules.
  • +
  • Add a bond angle, which is useful to control double bonds +in solid mode.
  • +
  • Write documentation about lists of objects.
  • +
  • Write documentation about Orbitals.
  • +
  • Write tutorials about crystalographic and atomic Plane,Direction usage.
  • +
  • Implement dynamic text objects, to measure distances, +angles, etc. on real time.
  • +
+ +
+ +
GAMGI 0.16.8
31st October 2013
diff -Nru gamgi-0.16.8/doc/changelogs/changelogs16.html gamgi-0.17/doc/changelogs/changelogs16.html --- gamgi-0.16.8/doc/changelogs/changelogs16.html 2013-10-31 15:55:02.000000000 +0000 +++ gamgi-0.17/doc/changelogs/changelogs16.html 2013-12-20 19:26:19.000000000 +0000 @@ -21,6 +21,87 @@
+
GAMGI 0.17
20th December 2013
+
+ +
+ +Fixed a scientific bug in the Hydrogen orbital code. Fixed the way the +Debye-Waller atomic temperature factor is handled. Fixed a makefile bug +in the release without GtkGlExt. Orbital->Select is now fully working. +Simplified the way axes are handled for orbitals. Added more options to +select lists of directions and planes. Updated documentation for Formats +and Interfaces, regarding orbitals, directions, planes. Changed a few XML +attributes for cell, direction, plane elements, for the sake of consistency. + +

What is new:

+ +
    +
  • Fixed a makefile bug (introduced in gamgi0.15.6) in the GAMGI branch +that does not require the GtkGlExt library: the make_rules contained gtkglext +dependencies that should not be there.
  • +
  • Planes, Directions can now be seleted by projection net: Wulff or Schmidt.
  • +
  • Synced code, documentation and data files between gamgi and gamgi_exp +distribution trees.
  • +
  • Checked dat/orbital XML files to update orbital axes attributes.
  • +
  • Checked all dat/ XML files to replace attribute type by label, +in atom elements.
  • +
  • Checked all dat/ XML files to replace attribute type by model, +in plane, direction, cell elements.
  • +
  • For the sake of consistency, replaced globally the name projection +by net in direction and plane code and XML elements.
  • +
  • For the sake of consistency, replaced globally the name type +by model in cell, plane, direction code and XML elements.
  • +
  • Changed label Type to Model in Cell->Create and Cell->Modify.
  • +
  • Changed label Method to Type in Bond->Create.
  • +
  • Updated Help->Formats documentation for XML Plane and Direction objects.
  • +
  • Updated Help->Interfaces documentation for Type and Projection +in Plane->Create, Plane->Modify, Direction->Create, Direction->Modify.
  • +
  • The Debye-Waller atomic temperature can now take values only +between 0.0 (blue) and 100.0 (red) as is usual in this analysis.
  • +
  • Updated Interfaces and Formats documentation for Bond objects.
  • +
  • Fixed the default Debye-Waller atomic temperature: the new value +is 0.0, corresponding to an atom with a well known position.
  • +
  • Updated Formats documentation for Atom and Cell objects.
  • +
  • Help->Current and Help->Topic can now +read the documentation for Orbital->Modify.
  • +
  • Wrote documentation for Orbital->Modify.
  • +
  • Updated documentation for Orbital->Create.
  • +
  • Orbital axes are now handled in a much simpler way, in +Orbital->Create, Orbital->Modify and XML native files.
  • +
  • Orbital->Select is now working fine for all options, including +the many properties that can be used to select orbitals.
  • +
  • Simplified slightly the functions gamgi_gtk_select_*.c.
  • +
  • Fixed two bugs in the H orbitals code, introduced in GAMGI 0.16.6: +1) the terms rho**L (from Laguerre polynomials) and 1/r**L (from Legendre +functions) cancel each other, apart from a constant that was missing. +2) the default radius calculation was missing the rho**L term.
  • +
  • Lists of Planes can now be selected by model: +Polygon, Pole, Trace, Vector.
  • +
  • Lists of Directions can now be selected by model: +Line, Pole, Trace.
  • +
+ +

What is next:

+ +
    +
  • Rewrite the About dialog, in the notebook form, to +include pages for Developers, Contributors, Supporters.
  • +
  • Add a task id to operactions involving multiple scans to +guarantee that there is no flag corruption when bonds are +created between different molecules.
  • +
  • Add a bond angle, which is useful to control double bonds +in solid mode.
  • +
  • Write documentation about lists of objects.
  • +
  • Write documentation about Orbitals.
  • +
  • Write tutorials about crystalographic and atomic Plane,Direction usage.
  • +
  • Implement dynamic text objects, to measure distances, +angles, etc. on real time.
  • +
+ +
+ +
GAMGI 0.16.8
31st October 2013
diff -Nru gamgi-0.16.8/doc/formats/atom/create.html gamgi-0.17/doc/formats/atom/create.html --- gamgi-0.16.8/doc/formats/atom/create.html 2008-05-30 18:26:06.000000000 +0000 +++ gamgi-0.17/doc/formats/atom/create.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,290 +0,0 @@ - - - - - -GAMGI Formats: Atom Create - - - - - - - -
-
Atom Create
 
-
- -
- -

name

- -All objects in GAMGI have an alphanumeric name, given by users, -to help object identification and selection. This name -is shown everywhere an object needs to be identified, including -dialogs, statubars and object trees. This name is not used by -GAMGI itself for identification purposes or others (although GAMGI -cross checks object names and numbers to ensure that they are -consistent). The default atom name is the element name. - -
-Example: <atom ... name="Si"/> (default Si name)
-Allowed values: 20 alphanumeric characters maximum
-(defined in GAMGI_ENGINE_TOKEN) (optional)
-
- -

id

- -Is used to uniquely identify an object when importing a file -and is discarded as soon as the operation is completed. Apart from -this condition of uniqueness, id is an alphanumeric attribute, -exactly as name. There is no default for this parameter. -Bonded atoms must have an id, so bonds can point to them. - -
-Example: <atom ... id="si1"/> (no default)
-Allowed values: 20 alphanumeric characters maximum
-(defined in GAMGI_ENGINE_TOKEN) 
-(optional, required if bonded)
-
- -

parent

- -Usually the parent of a given object is identified by file context, -as the object that immediately encloses it in the XML hierarchy. - -

- -However the parent object can be explicitely indicated -using the parent parameter, which points to the id -parameter of the parent object. According to GAMGI rules, the -parent of a child object must be in the scope defined by the object -directly enclosing the child, so this mechanism can be used to -downlink an unlimited number of levels but never to uplink (thus -preventing impossibly complex files without losing flexibility). - -

- -Moreover, this mechanism can never be used to validate an -object that has an impossible object enclosing it by pointing -it to a correct parent. The XML hierarchical position of an object -in a file must always be possible, independently of its parameters. - -

-Example: <atom ... parent="layer1"/> (no default)
-Allowed values: 20 alphanumeric characters maximum
-(defined in GAMGI_ENGINE_TOKEN) (optional)
-
- -

element

- -Identifies the atom element or a Dummy atom, represented as Du. -It must be present, otherwise an error is shown. Accepted values are -"Si", " Si", "Si " but not "SI", -"si", "S i" or "14". - -
-Example: <atom ... element="Si"/> (Si element)
-Allowed values: element name (required)
-
- -

type

- -Is useful to describe groups of atoms which share some properties, -for example methyl and methilene hydrogens migh have atom types -"h3" and "h2", respectively. Although its purpose -is different, type is an alphanumeric attribute exactly as -name or id. The default is the element name, -converted to lowercase. - -
-Example: <atom type="si" element="Si" ... /> (default Si type)
-Allowed values: 20 alphanumeric characters maximum
-(defined in GAMGI_ENGINE_TOKEN) (optional)
-
- -

mass

- -To set the atom mass. When not indicated, GAMGI uses the default -for the atom element. To see the default, just select the Periodic Table -from Atom->Create, Atom->Modify or Atom->Config, -and then select the element. To change the default select Atom->Config -and read Help->Topics->Formats->Config->Atom. By default, GAMGI -uses the atomic masses referenced by -http://www.webelements.com/. - -
-Example: <atom mass="15.9994" element="O" ... /> (default O mass)
-Allowed values: positive real, element name (optional)
-
- -

radius

- -To set the atom radius. When not indicated, GAMGI uses the default -for the atom element. To see the default, just select the Periodic Table -from Atom->Create, Atom->Modify or Atom->Config, -and then select the element. To change the default select Atom->Config -and read Help->Topics->Formats->Config->Atom. By default, GAMGI -uses the covalent radius referenced by -http://www.webelements.com/. - -

- -

-Example: <atom radius="0.7300" element="O"/> (default O radius)
-Allowed values: positive real, element name (optional)
-
- -

charge

- -To set the atom charge. When not indicated remains undefined. - -

- -

-Example: <atom charge="0.0" element="O"/> (undefined by default)
-Allowed values: real (optional)
-
- -

x, y, z

- -The atom absolute coordinates, a required information. - -
-Example: <atom ... x="0.0" y="0.0" z="0.0"/> (no default)
-Allowed values: real (required, coupled)
-
- -

style

- -Controls how the atom is shown: a solid sphere -or a wired cross. When not indicated, GAMGI uses -the default. To change the default select Atom->Config -and read Help->Topics->Formats->Config->Atom. - -

- -The sphere is designed to give the highest visual quality and is recommended -to produce final images of structures, together with lights. A sphere uses -considerable screen space though and is time consuming because it is simulated -by numerous 2D polygons, so many vertices and normal vectors (to calculate light) -must be allocated and calculated all the time. The cross is designed for atomistic -modelling work. Both screen space and computing time used are kept to a minimum. -Moreover, when atoms are bonded, the crosses are not represented and atoms are -identified just by the ends of the lines representing bonds, thus decreasing -even further computation needs. However, because lines do not have a 3D -representation, diffuse and specular lights are not reflected by these objects, -and they become almost invisible when using lights with an ambient component -lower than (0.4, 0.4, 0.4). - -

-Example: <atom style="wired"/> (default)
-Allowed values: wired, solid (optional)
-
- -

variancy

- -The intrinsic size of a solid (spherical) atom in GAMGI is calculated according -to the equation: -
intrinsic = size x (variancy x radius + (1 - variancy) x min) 
where -radius is the element radius currently defined and min is by default -the H covalent radius, as defined in GAMGI (0.37). To change the default select -Atom->Config and read Help->Topics->Formats->Config->Atom. - -

- -In wired mode, variancy is always 0.0 so -all atom crosses have a constant size, given by size x min. - -

- -In solid mode, variancy controls how the -size of the atom spheres is affected by the atom radius. -When variancy is 0.0 the atom spheres have -all the same size, when variancy is 1.0 -the atom spheres are scaled directly by the atom radius. - -

-Example: <atom variancy="0.0"/> (default)
-Allowed values: 0.0 - 1.0 (optional)
-
- -

size

- -In solid mode, controls the size of the atom spheres. -Combining atom size and variancy with bond size, -it is possible to obtain a wide range of styles to represent atomic -structures. - -

- -The default is to represent atoms as constant spheres, -slightly larger than the bonds: - -

-<atom variancy="0.0" size="0.8"/><bond size="0.5"/>
-
- -An elegant style is to represent atoms with constant spheres -and the same size as bonds: - -
-Example: <atom variancy="0.0" size="0.5"/><bond size="0.5"/>
-
- -To represent compact cristalline structures, atom size -and variancy must be 1.0, to be consistent with -cell dimensions. This style can also be used to represent molecules, -in order to emphasize the atomic radius and electronic distribution: - -
-<atom variancy="1.0" size="1.0"/>
-
- -
-Example: <atom size="0.8"/> (default)
-Allowed values: positive real (optional)
-
- -To change the default size, select Atom->Config -and read Help->Topics->Formats->Config->Atom. - -

red, green, blue

- -Set the atom color. When not indicated, GAMGI uses the default -for the atom element. To see the default, just select the Periodic Table -from Atom->Create, Atom->Modify or Atom->Config, -and then select the element. To change the default select Atom->Config -and read Help->Topics->Formats->Config->Atom. GAMGI default -colors are essentially a superset of the CPK color scheme -introduced by Corey, Pauling and Koltun. - -
-Example: <atom red="1.0" green="1.0" blue="0.0" element="Si"/>
-(default Si color)
-Allowed values: 0.0 - 1.0, element name
-(optional, coupled)
-
- -

scale

- -Used to scale the atom visual representation, including its child -objects. The visual representation of an object is always scaled by -its own scale factor multiplied by the scale factor of all parent -objects until layer, inclusive. - -
-Example: <atom ... scale="1.0"/> (default)
-(defined in GAMGI_MESA_SCALE)
-Allowed values: positive real (optional)
-
- -
- -
-Home -
- - - diff -Nru gamgi-0.16.8/doc/formats/atom/create_analysis.html gamgi-0.17/doc/formats/atom/create_analysis.html --- gamgi-0.16.8/doc/formats/atom/create_analysis.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/atom/create_analysis.html 2013-12-16 00:18:33.000000000 +0000 @@ -0,0 +1,57 @@ + + + + + +GAMGI Formats: Atom Create + + + + + + + +

Atom Create

+ +
+ +
+ +
+ +

temperature

+ +Set the atom temperature (X-Ray Debye-Waller factor), in Angstrom squared: +0 < T < 100. Generally, T < 30 signifies confidence in its position, while +T > 60 signifies disorder. + +
+Example: <atom ... temperature="0.0"/> (default)
+(defined in GAMGI_CHEM_ATOM_TEMPERATURE)
+Allowed values: 0.0 - 100.0 real (optional)
+
+ +

occupancy

+ +The degree of atom occupancy of a given position, as measured by X-ray diffraction. + +
+Example: <atom ... occupancy="1.0"/> (default)
+Allowed values: 0.0 - 1.0 real (optional)
+
+ +
+ +
+Home +
+ + + diff -Nru gamgi-0.16.8/doc/formats/atom/create_position.html gamgi-0.17/doc/formats/atom/create_position.html --- gamgi-0.16.8/doc/formats/atom/create_position.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/atom/create_position.html 2013-12-13 23:15:29.000000000 +0000 @@ -0,0 +1,46 @@ + + + + + +GAMGI Formats: Atom Create + + + + + + + +

Atom Create

+ +
+ +
+ +
+ +

x, y, z

+ +Set the coordinates of the atom center. + +
+Example: <text ... x="0.0" y="0.0" z="0.0"/> (default)
+(defined in GAMGI_CHEM_ATOM_X, GAMGI_CHEM_ATOM_Y and GAMGI_CHEM_ATOM_Z)
+Allowed values: real (optional, coupled)
+
+ +
+ +
+Home +
+ + + diff -Nru gamgi-0.16.8/doc/formats/atom/create_property.html gamgi-0.17/doc/formats/atom/create_property.html --- gamgi-0.16.8/doc/formats/atom/create_property.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/atom/create_property.html 2013-12-15 21:58:39.000000000 +0000 @@ -0,0 +1,79 @@ + + + + + +GAMGI Formats: Atom Create + + + + + + + +

Atom Create

+ +
+ +
+ +
+ +

mass

+ +Set the atom mass. When not indicated, GAMGI uses the default for +the atom element: the mass average of the various isotopes weighted +by their natural abundance, indicated in +http://www.webelements.com/. To see the default, just select the Periodic +Table from Atom->Create, Atom->Modify or Atom->Config, +and then select the element. To change the default select Atom->Config +and read Help->Topics->Formats->Config->Atom. + +
+Example: <atom mass="15.9994" element="O" ... /> (default O mass)
+Allowed values: positive real, element name (optional)
+
+ +

radius

+ +Set the atom radius. When not indicated, GAMGI uses the default for +the atom element: the half-distance between atoms in the most abundant +natural form, indicated in +http://www.webelements.com/. To see the default, just select the Periodic +Table from Atom->Create, Atom->Modify or Atom->Config, +and choose the element. To change the default select Atom->Config +and read Help->Topics->Formats->Config->Atom. + +

+ +

+Example: <atom radius="0.6037" element="O"/> (default O radius)
+Allowed values: positive real, element name (optional)
+
+ +

charge

+ +Set the atom charge. When not indicated GAMGI uses 0.0 as default. + +

+ +

+Example: <atom charge="0.0" element="O"/> (default 0.0)
+Allowed values: real (optional)
+
+ +
+ +
+Home +
+ + + diff -Nru gamgi-0.16.8/doc/formats/atom/create_type.html gamgi-0.17/doc/formats/atom/create_type.html --- gamgi-0.16.8/doc/formats/atom/create_type.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/atom/create_type.html 2013-12-15 22:13:54.000000000 +0000 @@ -0,0 +1,63 @@ + + + + + +GAMGI Formats: Atom Create + + + + + + + +

Atom Create

+ +
+ +
+ +
+ +

element

+ +Identifies the atom element or a Dummy atom, represented as Du. +It must be present, otherwise an error is shown. Accepted values are +"Si", " Si", "Si " but not "SI", +"si", "S i" or "14". + +
+Example: <atom ... element="Si"/> (Si element)
+Allowed values: element name (required)
+
+ +

label

+ +Label is useful to describe groups of atoms which share some +properties, for example methyl and methilene hydrogens migh have atom +types "h3" and "h2", respectively. Although its purpose +is different, label is an alphanumeric attribute exactly as +name or id. The default is the element name, +converted to lowercase. + +
+Example: <atom label="si" element="Si" ... /> (default Si type)
+Allowed values: 20 alphanumeric characters maximum
+(defined in GAMGI_ENGINE_TOKEN) (optional)
+
+ +
+ +
+Home +
+ + + diff -Nru gamgi-0.16.8/doc/formats/atom/create_view.html gamgi-0.17/doc/formats/atom/create_view.html --- gamgi-0.16.8/doc/formats/atom/create_view.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/atom/create_view.html 2013-12-15 21:55:19.000000000 +0000 @@ -0,0 +1,151 @@ + + + + + +GAMGI Formats: Atom Create + + + + + + + +

Atom Create

+ +
+ +
+ +
+ +

style

+ +Set how the atom is shown: a solid sphere +or a wired cross. When not indicated, GAMGI uses +the default. To change the default select Atom->Config +and read Help->Topics->Formats->Config->Atom. + +

+ +The sphere provides the highest visual quality and is recommended +to produce final images of structures, together with lights. A sphere uses +considerable screen space though and is time consuming because it is simulated +by numerous 2D polygons, so many vertices and normal vectors (to calculate light) +must be allocated and calculated all the time. The cross is designed for atomistic +modelling work. Both screen space and computing time are kept to a minimum. +Moreover, when atoms are bonded, the crosses are not represented and atoms are +identified just by the ends of the lines representing bonds, thus decreasing +even further computation needs. However, because lines do not have a 3D +representation, diffuse and specular lights are not reflected by these objects, +and they become almost invisible when using lights with an ambient component +lower than (0.4, 0.4, 0.4). + +

+Example: <atom style="wired"/> (default)
+Allowed values: wired, solid (optional)
+
+ +

variancy

+ +The intrinsic size of a solid (spherical) atom in GAMGI is calculated according +to the equation: intrinsic = size x [variancy x radius + (1 - variancy) x min], +where radius is the element radius currently defined and min is by +default the H covalent radius, as defined in GAMGI (0.37). + +

+ +In wired mode, variancy is always 0.0 so all atom crosses +have a constant size, given by size x min. In solid mode, +when variancy is 0.0 the atom spheres have all the same size, +when variancy is 1.0 the atom spheres are scaled directly by +the atom radius. To change the default select Atom->Config and read +Help->Topics->Formats->Config->Atom. + +

+Example: <atom variancy="0.0"/> (default)
+Allowed values: 0.0 - 1.0 (optional)
+
+ +

size

+ +Sets the size of a spherical atom, in solid mode. Combining atom size +and variancy with bond size, it is possible to obtain a wide range +of styles to represent atomic structures. + +

+ +The default is to represent atoms as constant spheres, +slightly larger than the bonds: +

+Example: <atom variancy="0.0" size="0.8"/><bond size="0.5"/>
+
+ +An elegant style is to represent atoms with constant spheres +and the same size as bonds: +
+Example: <atom variancy="0.0" size="0.5"/><bond size="0.5"/>
+
+ +To show atoms in real size, atom size and variancy must +be set to 1.0. This is often required in compact cristalline structures, +to be consistent with cell dimensions, and in molecules, to emphasize the atomic +radius and electronic distribution: +
+Example: <atom variancy="1.0" size="1.0"/>
+
+ +To change the default size, select Atom->Config +and read Help->Topics->Formats->Config->Atom. +
+Example: <atom size="0.8"/> (default)
+Allowed values: positive real (optional)
+
+ +

red, green, blue

+ +Set the atom color. When not indicated, GAMGI uses the default for the atom +element. The default colors are essentially a superset of the CPK color scheme +introduced by Corey, Pauling and Koltun. + +

+ +To see the default, just select the Periodic Table +from Atom->Create, Atom->Modify or Atom->Config, +and choose the element. To change the default select Atom->Config +and read Help->Topics->Formats->Config->Atom. + +

+Example: <atom red="1.0" green="1.0" blue="0.0" element="Si"/> (default Si color)
+Allowed values: 0.0 - 1.0, element name
+(optional, coupled)
+
+ +

scale

+ +Change the atom size, including its child objects. Atom objects are +scaled around the atom center. The visual representation of an object +is always scaled by its own scale factor multiplied by the scale factor +of all its parent objects until layer, inclusive. + +
+Example: <atom ... scale="1.0"/> (default)
+(defined in GAMGI_MESA_SCALE)
+Allowed values: positive real (optional)
+
+ +
+ +
+Home +
+ + + diff -Nru gamgi-0.16.8/doc/formats/bond/create_mode.html gamgi-0.17/doc/formats/bond/create_mode.html --- gamgi-0.16.8/doc/formats/bond/create_mode.html 2008-05-30 18:26:22.000000000 +0000 +++ gamgi-0.17/doc/formats/bond/create_mode.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,50 +0,0 @@ - - - - - -GAMGI Formats: Bond Create - - - - - - - -

Bond Create

- -
- -
- -
- -Currently bonds cannot be created automatically from inside a file, -using either the geometric Length or the topological Delaunay -methods. Each bond object contains thus a complete description of one bond only. - -

- -To specify the atoms forming the bond, the bond parameters parent1, -parent2 must point to the atom id attributes, which are -different for each atom. - -

-Example: <bond ... parent1="C1" parent2="C2"/> (no default)
-Allowed values: alphanumeric expression representing a unique atom id
-with less than 20 characters (defined in GAMGI_ENGINE_TOKEN) (required)
-
- -
- -
-Home -
- - - diff -Nru gamgi-0.16.8/doc/formats/bond/create_property.html gamgi-0.17/doc/formats/bond/create_property.html --- gamgi-0.16.8/doc/formats/bond/create_property.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/bond/create_property.html 2013-12-16 22:25:36.000000000 +0000 @@ -0,0 +1,66 @@ + + + + + +GAMGI Formats: Bond Create + + + + + + + +

Bond Create

+ +
+ +
+ +
+ +

covalency

+ +Specifies the degree of covalent character of a bond. +A fully ionic bond might have covalency equal to 0.0, +while a fully covalent bond might have covalency equal to 1.0. + +
+Example: <bond ... covalency="0.5"/> (no default)
+Allowed values: positive real (optional)
+
+ +

order

+ +Specifies the bond order, 1.0 for a single bond, 2.0 +for a double bond, 3.0 for a triple bond and 1.5 for +a benzene aromatic bond. + +

+ +In wired mode, single, double and triple bonds are +described by one, two and three paralel lines, respectively. +In solid mode, a single bond is described by a cylinder, +a double bond has two additional cylinders coming slightly +outside of the central cylinder, opposite to each other, +and a triple bond has two more additional cylinders, all +four making angles of 90 degrees between them. + +

+Example: <bond ... order="1.0"/> (default)
+Allowed values: positive real (optional)
+
+ +
+ +
+Home +
+ + + diff -Nru gamgi-0.16.8/doc/formats/bond/create_type.html gamgi-0.17/doc/formats/bond/create_type.html --- gamgi-0.16.8/doc/formats/bond/create_type.html 2008-05-30 18:26:26.000000000 +0000 +++ gamgi-0.17/doc/formats/bond/create_type.html 2013-12-16 22:25:50.000000000 +0000 @@ -16,44 +16,28 @@
-

covalency

- -Specifies the degree of covalent character of a bond. -A fully ionic bond might have covalency equal to 0.0, -while a fully covalent bond might have covalency equal to 1.0. - -
-Example: <bond ... covalency="0.5"/> (no default)
-Allowed values: positive real (optional)
-
- -

order

- -Specifies the bond order, 1.0 for a single bond, 2.0 -for a double bond, 3.0 for a triple bond and 1.5 for -a benzene aromatic bond. +Currently bonds cannot be created automatically from inside a file, +using either the geometric Length or the topological Delaunay +methods. Each bond object contains thus a complete description of one bond only.

-In wired mode, single, double and triple bonds are -described by one, two and three paralel lines, respectively. -In solid mode, a single bond is described by a cylinder, -a double bond has two additional cylinders coming slightly -outside of the central cylinder, opposite to each other, -and a triple bond has two more additional cylinders, all -four making angles of 90 degrees between them. +To specify the atoms forming the bond, the bond parameters parent1, +parent2 must point to the atom id attributes, which are +different for each atom.

-Example: <bond ... order="1.0"/> (default)
-Allowed values: positive real (optional)
+Example: <bond ... parent1="C1" parent2="C2"/> (no default)
+Allowed values: alphanumeric expression representing a unique atom id
+with less than 20 characters (defined in GAMGI_ENGINE_TOKEN) (required)
 
diff -Nru gamgi-0.16.8/doc/formats/bond/create_view.html gamgi-0.17/doc/formats/bond/create_view.html --- gamgi-0.16.8/doc/formats/bond/create_view.html 2008-05-30 18:26:30.000000000 +0000 +++ gamgi-0.17/doc/formats/bond/create_view.html 2013-12-16 22:27:05.000000000 +0000 @@ -16,8 +16,8 @@
diff -Nru gamgi-0.16.8/doc/formats/cell/create_origin.html gamgi-0.17/doc/formats/cell/create_origin.html --- gamgi-0.16.8/doc/formats/cell/create_origin.html 2008-06-15 14:42:25.000000000 +0000 +++ gamgi-0.17/doc/formats/cell/create_origin.html 2013-12-13 22:58:18.000000000 +0000 @@ -17,7 +17,7 @@
  • Symmetry
  • -
  • Type
  • +
  • Volume
  • Position
  • Origin
  • View
  • diff -Nru gamgi-0.16.8/doc/formats/cell/create_position.html gamgi-0.17/doc/formats/cell/create_position.html --- gamgi-0.16.8/doc/formats/cell/create_position.html 2008-05-30 18:26:39.000000000 +0000 +++ gamgi-0.17/doc/formats/cell/create_position.html 2013-12-13 22:58:37.000000000 +0000 @@ -17,7 +17,7 @@
    • Symmetry
    • -
    • Type
    • +
    • Volume
    • Position
    • Origin
    • View
    • diff -Nru gamgi-0.16.8/doc/formats/cell/create_symmetry.html gamgi-0.17/doc/formats/cell/create_symmetry.html --- gamgi-0.16.8/doc/formats/cell/create_symmetry.html 2008-05-30 18:26:43.000000000 +0000 +++ gamgi-0.17/doc/formats/cell/create_symmetry.html 2013-12-13 22:58:00.000000000 +0000 @@ -17,7 +17,7 @@
      • Symmetry
      • -
      • Type
      • +
      • Volume
      • Position
      • Origin
      • View
      • diff -Nru gamgi-0.16.8/doc/formats/cell/create_type.html gamgi-0.17/doc/formats/cell/create_type.html --- gamgi-0.16.8/doc/formats/cell/create_type.html 2008-05-30 18:26:47.000000000 +0000 +++ gamgi-0.17/doc/formats/cell/create_type.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,88 +0,0 @@ - - - - - -GAMGI Formats: Cell Create - - - - - - - -

        Cell Create

        - -
        - -
        - -
        - -

        type

        - -Controls the representation of the cell lattice, which can be: -1) conventional (the lattice is constructed using n1, -n2, n3 conventional cells; 2) primitive (the lattice -is constructed using n1, n2, n3 primitive cells); -3) wigner (the lattice is constructed using n1, n2, -n3 Wigner-Seitz cells); 4) parallelepiped (the lattice is filtered -by a generic parallelepiped volume, with length parameters v1, v2, -v3 and angle parameters v12, v13, v23); -5) sphere (the lattice is filtered by a sphere with radius v1); -6) projection (the lattice is represented by its stereographic projection). - -
        -Example: <cell ... type="conventional"/> (default)
        -Allowed values: conventional, primitive
        -wigner, rhombus, sphere, 
        -projection (optional)
        -
        - -

        n1, n2, n3

        - -Control the number of lattice cells created along -the directions defined by the vectors a, b, c, -when type is conventional, primitive -or wigner. Indicating some or all of these parameters when -the cell type does not require them is flagged as an error. - -
        -Example: <cell ... n1="1" n2="2" n3="3"/> (default)
        -Allowed values: positive integer (optional, coupled)
        -
        - -

        v1, v2, v3, v12, v13, v23

        - -When type is parallelepiped, these six parameters are needed -to indicate the edge lengths and angles of the filtering parallelepiped. -Each angle must be smaller than the sum of the other two and must be larger -than the absolute difference of the other two, otherwise an error is produced. - -

        - -When type is sphere, the v1 parameter is needed to -indicate the radius of the filtering sphere. Setting parameters that are -not required for a given cell type is flagged as an error. - -

        -Example: <cell ... v1="5.0" v2="6.0" v3="7.0"
        -v12="60.0" v13="70.0" v23="80.0"/> (no default)
        -Allowed values: positive real (required)
        -
        - -
        - -
        -Home -
        - - - diff -Nru gamgi-0.16.8/doc/formats/cell/create_view.html gamgi-0.17/doc/formats/cell/create_view.html --- gamgi-0.16.8/doc/formats/cell/create_view.html 2008-05-30 18:26:51.000000000 +0000 +++ gamgi-0.17/doc/formats/cell/create_view.html 2013-12-13 22:59:01.000000000 +0000 @@ -17,7 +17,7 @@
        • Symmetry
        • -
        • Type
        • +
        • Volume
        • Position
        • Origin
        • View
        • diff -Nru gamgi-0.16.8/doc/formats/cell/create_volume.html gamgi-0.17/doc/formats/cell/create_volume.html --- gamgi-0.16.8/doc/formats/cell/create_volume.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/cell/create_volume.html 2013-12-13 22:59:07.000000000 +0000 @@ -0,0 +1,88 @@ + + + + + +GAMGI Formats: Cell Create + + + + + + + +

          Cell Create

          + +
          + +
          + +
          + +

          type

          + +Controls the representation of the cell lattice, which can be: +1) conventional (the lattice is constructed using n1, +n2, n3 conventional cells; 2) primitive (the lattice +is constructed using n1, n2, n3 primitive cells); +3) wigner (the lattice is constructed using n1, n2, +n3 Wigner-Seitz cells); 4) parallelepiped (the lattice is filtered +by a generic parallelepiped volume, with length parameters v1, v2, +v3 and angle parameters v12, v13, v23); +5) sphere (the lattice is filtered by a sphere with radius v1); +6) projection (the lattice is represented by its stereographic projection). + +
          +Example: <cell ... type="conventional"/> (default)
          +Allowed values: conventional, primitive
          +wigner, parallelepiped, sphere, 
          +projection (optional)
          +
          + +

          n1, n2, n3

          + +Control the number of lattice cells created along +the directions defined by the vectors a, b, c, +when type is conventional, primitive +or wigner. Indicating some or all of these parameters when +the cell type does not require them is flagged as an error. + +
          +Example: <cell ... n1="1" n2="2" n3="3"/> (default)
          +Allowed values: positive integer (optional, coupled)
          +
          + +

          v1, v2, v3, v12, v13, v23

          + +When type is parallelepiped, these six parameters are needed +to indicate the edge lengths and angles of the filtering parallelepiped. +Each angle must be smaller than the sum of the other two and must be larger +than the absolute difference of the other two, otherwise an error is produced. + +

          + +When type is sphere, the v1 parameter is needed to +indicate the radius of the filtering sphere. Setting parameters that are +not required for a given cell type is flagged as an error. + +

          +Example: <cell ... v1="5.0" v2="6.0" v3="7.0"
          +v12="60.0" v13="70.0" v23="80.0"/> (no default)
          +Allowed values: positive real (required)
          +
          + +
          + +
          +Home +
          + + + diff -Nru gamgi-0.16.8/doc/formats/direction/create_projection.html gamgi-0.17/doc/formats/direction/create_projection.html --- gamgi-0.16.8/doc/formats/direction/create_projection.html 2011-07-18 22:35:48.000000000 +0000 +++ gamgi-0.17/doc/formats/direction/create_projection.html 2013-12-18 20:41:18.000000000 +0000 @@ -25,17 +25,26 @@
          -

          type

          +

          net

          -
          -Example: <direction type="pole"/> (default)
          -Allowed values: pole, trace, line (optional)
          -
          +Set the projection net used to represent a crystallographic direction. + +

          + +In the wulff projection, the point to project (above) +and the point of the sphere farther from the user (below) define a segment +that intersects the circle at a point, giving the final representation. + +

          -

          projection

          +In the schmidt projection, the point to project (above) is +rotated around the point of the sphere closer to the user (above), +keeping the same XY direction, until both points have the same Z +coordinate, and then divided by square root of 2, to be inside the +circle with radius R at coordinate Z, giving the final representation.
          -Example: <direction projection="wulff"/> (default)
          +Example: <direction ... net="wulff"/> (default)
           Allowed values: wulff, schmidt (optional)
           
          diff -Nru gamgi-0.16.8/doc/formats/direction/create_scope.html gamgi-0.17/doc/formats/direction/create_scope.html --- gamgi-0.16.8/doc/formats/direction/create_scope.html 2011-07-18 22:35:59.000000000 +0000 +++ gamgi-0.17/doc/formats/direction/create_scope.html 2013-12-18 20:27:52.000000000 +0000 @@ -25,41 +25,6 @@
          -

          autonomy

          - -When autonomy is none, rotating, moving, scaling the -direction corresponds to rotating, moving, scaling the parent object. For -crystallographic directions, the parent object is the cell containing the -relevant crystallographic information. Atoms in the thickness -region are linked to atomic directions. - -

          - -When autonomy is all or partial, the crystallographic -or atomic direction can be rotated, moved, scaled, independently of its parent. -When autonomy is partial, atoms in the thickness -region were linked to the atomic or crystallographic direction. -When autonomy is all, atoms in the thickness -region were copied to the atomic or crystallographic direction. - -

          -Example: <direction ... autonomy="none"/> (default)
          -Allowed values: all, partial, none (optional)
          -
          - -

          thickness

          - -The polygonal representation of the direction is expanded as much as -possible, limited by the cell volume, in crystallographic directions, -and by the atoms within the thickness range of the direction -defined by the first two atoms, in atomic directions. - -
          -Example: <direction ... thickness="0.0100"/> (default)
          -(defined in GAMGI_CHEM_DIRECTION_THICKNESS)
          -Allowed values: positive real (optional)
          -
          -

          o1, o2, o3

          A direction can be defined indicating explicitly the coordinates of a node diff -Nru gamgi-0.16.8/doc/formats/direction/create_type.html gamgi-0.17/doc/formats/direction/create_type.html --- gamgi-0.16.8/doc/formats/direction/create_type.html 2011-07-18 22:37:54.000000000 +0000 +++ gamgi-0.17/doc/formats/direction/create_type.html 2013-12-18 20:37:10.000000000 +0000 @@ -27,10 +27,11 @@

          reference

          -When reference is cell, the direction is crystallographic, -its parent must be a cell and the direction indices must be indicated. -When reference is atoms, the direction is atomic and -must contain two non coincident atoms defining a line. +When reference is cell, the direction is crystallographic +so direction indices are required and its parent must be a cell. +When reference is atoms, the direction is described +by two xyz coordinates so the direction becomes independent of the +atoms used to define it.
           Example: <direction ... reference="cell"/> (default)
          @@ -63,6 +64,17 @@
           Allowed values: conventional, primitive (optional)
           
          +

          model

          + +An atomic direction is always represented as a line. +A crystallographic direction can also be represented as a +pole or a trace (for projected directions). + +
          +Example: <direction ... model="line"/> (default)
          +Allowed values: line, pole, trace (optional)
          +
          +
          diff -Nru gamgi-0.16.8/doc/formats/group/create_scope.html gamgi-0.17/doc/formats/group/create_scope.html --- gamgi-0.16.8/doc/formats/group/create_scope.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/group/create_scope.html 2013-12-15 23:09:11.000000000 +0000 @@ -0,0 +1,45 @@ + + + + + +GAMGI Formats: Group Create + + + + + + + +

          Group Create

          + +
          +
            +
          • View
          • +
          +
          + +
          + +

          scale

          + +Change the group size, including its child objects. Group objects are +scaled around the layer center. The visual representation of an object +is always scaled by its own scale factor multiplied by the scale factor +of all its parent objects until layer, inclusive. + +
          +Example: <group ... scale="1.0"/> (default)
          +(defined in GAMGI_MESA_SCALE)
          +Allowed values: positive real (optional)
          +
          + +
          + +
          +Home +
          + + + diff -Nru gamgi-0.16.8/doc/formats/group/create_type.html gamgi-0.17/doc/formats/group/create_type.html --- gamgi-0.16.8/doc/formats/group/create_type.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/group/create_type.html 2013-12-15 23:05:18.000000000 +0000 @@ -0,0 +1,45 @@ + + + + + +GAMGI Formats: Group Create + + + + + + + +

          Group Create

          + +
          +
            +
          • View
          • +
          +
          + +
          + +

          scale

          + +Change the group size, including its child objects. Group objects are +scaled around the layer center. The visual representation of an object +is always scaled by its own scale factor multiplied by the scale factor +of all its parent objects until layer, inclusive. + +
          +Example: <group ... scale="1.0"/> (default)
          +(defined in GAMGI_MESA_SCALE)
          +Allowed values: positive real (optional)
          +
          + +
          + +
          +Home +
          + + + diff -Nru gamgi-0.16.8/doc/formats/introduction/identifiers.html gamgi-0.17/doc/formats/introduction/identifiers.html --- gamgi-0.16.8/doc/formats/introduction/identifiers.html 2008-05-30 18:28:20.000000000 +0000 +++ gamgi-0.17/doc/formats/introduction/identifiers.html 2013-12-16 00:17:52.000000000 +0000 @@ -18,9 +18,32 @@
          -In GML, every non-root element can have a name and an identifier. -Name attributes correspond to the object names used in GAMGI, which -exist only to help users identify the objects. +In GML, every non-root element can have a name, an identifier and at least a parent. + +

          name

          + +Name attributes in GML files correspond to the object names used in GAMGI, +which exist only to help users identify the objects. All objects in GAMGI +have an alphanumeric name, given by users, to help object identification +and selection. This name is shown everywhere an object needs to be identified, +including dialogs, statubars and object trees. This name is not used by +GAMGI itself for identification purposes or others (although GAMGI +cross checks object names and numbers to ensure that they are +consistent). + +
          +Example: <atom ... name="Si"/> (default Si name)
          +Allowed values: 20 alphanumeric characters maximum
          +(defined in GAMGI_ENGINE_TOKEN) (optional)
          +
          + +

          id

          + +An id is used to uniquely identify an object when importing a file +and is discarded as soon as the operation is completed. Apart from +this condition of uniqueness, id is an alphanumeric attribute, +exactly as name. There is no default for this parameter. +Bonded atoms must have an id, so bonds can point to them.

          @@ -33,8 +56,29 @@ when the respective elements must be referenced somewhere else, most notably in bonded atoms that must be referenced by the bonds. +

          +Example: <atom ... id="si1"/> (no default)
          +Allowed values: 20 alphanumeric characters maximum
          +(defined in GAMGI_ENGINE_TOKEN)
          +(optional, required if bonded)
          +
          + +

          parent

          + +Usually the parent of a given object is identified by file context, +as the object that immediately encloses it in the XML hierarchy. +However the parent object can be explicitely indicated using the +parent parameter, which points to the id +parameter of the parent object. +

          +

          +Example: <atom ... parent="layer1"/> (no default)
          +Allowed values: 20 alphanumeric characters maximum
          +(defined in GAMGI_ENGINE_TOKEN) (optional)
          +
          + Objects can reference parents that are only defined later, perhaps in another file, or perhaps in another file included by another file, without any limit to the level of depth of @@ -56,6 +100,13 @@

          +Moreover, this mechanism can never be used to validate an +object that has an impossible object enclosing it by pointing +it to a correct parent. The XML hierarchical position of an object +in a file must always be possible, independently of its parameters. + +

          + This automatically prevents, for example, atoms belonging to different layers from being bonded together, as bonds in one layer cannot see atoms that are in the other layer. To see diff -Nru gamgi-0.16.8/doc/formats/layer/create_position.html gamgi-0.17/doc/formats/layer/create_position.html --- gamgi-0.16.8/doc/formats/layer/create_position.html 2008-05-30 18:29:08.000000000 +0000 +++ gamgi-0.17/doc/formats/layer/create_position.html 2013-12-07 23:23:23.000000000 +0000 @@ -11,13 +11,12 @@ -

          Layer Create

          diff -Nru gamgi-0.16.8/doc/formats/light/create_type.html gamgi-0.17/doc/formats/light/create_type.html --- gamgi-0.16.8/doc/formats/light/create_type.html 2008-05-30 18:29:38.000000000 +0000 +++ gamgi-0.17/doc/formats/light/create_type.html 2013-12-08 00:17:55.000000000 +0000 @@ -59,7 +59,7 @@
           Example: <light ... angle="90.0"/> (default)
           (Defined in GAMGI_MESA_LIGHT_ANGLE)
          -Allowed values: 0.0 < real <= 90.0 (optional)
          +Allowed values: 0.0 < real <= 90.0 (optional)
           
          diff -Nru gamgi-0.16.8/doc/formats/orbital/create_model.html gamgi-0.17/doc/formats/orbital/create_model.html --- gamgi-0.16.8/doc/formats/orbital/create_model.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/orbital/create_model.html 2013-12-07 23:05:01.000000000 +0000 @@ -0,0 +1,52 @@ + + + + + +GAMGI Formats: Orbital Create + + + + + + + +

          Orbital Create

          + +
          + +
          + +
          + +

          N, L, M

          + +
          +Example: <orbital ... N="1" L="0" M="0"/> (default)
          +(defined in GAMGI_MESA_SCALE)
          +Allowed values: positive real (optional)
          +
          + +

          Charge

          + +
          +Example: <orbital ... charge="1.0"/> (default)
          +(defined in GAMGI_CHEM_ORBITAL_CHARGE)
          +Allowed values: positive real (optional)
          +
          + +
          + +
          +Home +
          + + + diff -Nru gamgi-0.16.8/doc/formats/orbital/create_position.html gamgi-0.17/doc/formats/orbital/create_position.html --- gamgi-0.16.8/doc/formats/orbital/create_position.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/orbital/create_position.html 2013-12-13 23:12:00.000000000 +0000 @@ -0,0 +1,59 @@ + + + + + +GAMGI Formats: Orbital Create + + + + + + + +

          Orbital Create

          + +
          + +
          + +
          + +

          x, y, z

          + +Set the coordinates of the orbital center. + +
          +Example: <orbital ... x="0.0" y="0.0" z="0.0"/> (default)
          +(defined in GAMGI_MESA_ORBITAL_X, GAMGI_MESA_ORBITAL_Y and GAMGI_MESA_ORBITAL_Z)
          +Allowed values: real (optional, coupled)
          +
          + +

          e1, e2, e3

          + +Set the Euler angles controlling the orbital orientation. The first rotation (e1), +around the initial y axis, must be between 0 and 180 degrees. The second rotation +(e2), around the initial z axis, must be between 0 and 360 degrees. The +third rotation (e3), around the final z axis, must be between 0 and 360. + +
          +Example: <orbital ... e1="0.0" e2="0.0" e3="0.0"/> (default)
          +(defined in GAMGI_CHEM_ORBITAL_E1, GAMGI_CHEM_ORBITAL_E2 and GAMGI_CHEM_ORBITAL_E3)
          +Allowed values: e1: 0.0 - 180.0, e2, e3: 0.0 - 360.0 (optional, coupled)
          +
          + +
          + +
          +Home +
          + + + diff -Nru gamgi-0.16.8/doc/formats/orbital/create_type.html gamgi-0.17/doc/formats/orbital/create_type.html --- gamgi-0.16.8/doc/formats/orbital/create_type.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/orbital/create_type.html 2013-12-08 00:35:02.000000000 +0000 @@ -0,0 +1,47 @@ + + + + + +GAMGI Formats: Orbital Create + + + + + + + +

          Orbital Create

          + +
          +
            +
          • View
          • +
          +
          + +
          + +

          N, L, M

          + +
          +Example: <orbital ... n="1" l="0" m="0"/> (no default)
          +Allowed values: 1 <= n <= 6, 0 <= l <= n-1, -l <= m <= l (required)
          +
          + +

          Charge

          + +
          +Example: <orbital ... charge="1.0"/> (default)
          +(defined in GAMGI_CHEM_ORBITAL_CHARGE)
          +Allowed values: positive real (optional)
          +
          + +
          + +
          +Home +
          + + + diff -Nru gamgi-0.16.8/doc/formats/orbital/create_volume.html gamgi-0.17/doc/formats/orbital/create_volume.html --- gamgi-0.16.8/doc/formats/orbital/create_volume.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/formats/orbital/create_volume.html 2013-12-06 23:12:12.000000000 +0000 @@ -0,0 +1,45 @@ + + + + + +GAMGI Formats: Orbital Create + + + + + + + +

          Orbital Create

          + +
          +
            +
          • View
          • +
          +
          + +
          + +

          scale

          + +Change the orbital size, including its child objects. Orbital objects are +scaled around the orbital center. The visual representation of an object +is always scaled by its own scale factor multiplied by the scale factor +of all its parent objects until layer, inclusive. + +
          +Example: <orbital ... scale="1.0"/> (default)
          +(defined in GAMGI_MESA_SCALE)
          +Allowed values: positive real (optional)
          +
          + +
          + +
          +Home +
          + + + diff -Nru gamgi-0.16.8/doc/formats/plane/create_projection.html gamgi-0.17/doc/formats/plane/create_projection.html --- gamgi-0.16.8/doc/formats/plane/create_projection.html 2011-07-18 22:33:52.000000000 +0000 +++ gamgi-0.17/doc/formats/plane/create_projection.html 2013-12-18 20:41:34.000000000 +0000 @@ -25,17 +25,26 @@
          -

          type

          +

          net

          -
          -Example: <plane ... type="pole"/> (default)
          -Allowed values: pole, trace, polygon, reciprocal (optional)
          -
          +Set the projection net used to represent a crystallographic plane. + +

          + +In the wulff projection, the point to project (above) +and the point of the sphere farther from the user (below) define a segment +that intersects the circle at a point, giving the final representation. + +

          -

          projection

          +In the schmidt projection, the point to project (above) is +rotated around the point of the sphere closer to the user (above), +keeping the same XY direction, until both points have the same Z +coordinate, and then divided by square root of 2, to be inside the +circle with radius R at coordinate Z, giving the final representation.
          -Example: <plane ... projection="wulff"/> (default)
          +Example: <plane ... net="wulff"/> (default)
           Allowed values: wulff, schmidt (optional)
           
          diff -Nru gamgi-0.16.8/doc/formats/plane/create_scope.html gamgi-0.17/doc/formats/plane/create_scope.html --- gamgi-0.16.8/doc/formats/plane/create_scope.html 2011-07-18 22:34:03.000000000 +0000 +++ gamgi-0.17/doc/formats/plane/create_scope.html 2013-12-18 20:24:23.000000000 +0000 @@ -25,41 +25,6 @@
          -

          autonomy

          - -When autonomy is none, rotating, moving, scaling the -plane corresponds to rotating, moving, scaling the parent object. For -crystallographic planes, the parent object is the cell containing the -relevant crystallographic information. Atoms in the thickness -region are linked to atomic planes. - -

          - -When autonomy is all or partial, the crystallographic -or atomic plane can be rotated, moved, scaled, independently of its parent. -When autonomy is partial, atoms in the thickness -region were linked to the atomic or crystallographic plane. -When autonomy is all, atoms in the thickness -region were copied to the atomic or crystallographic plane. - -

          -Example: <plane ... autonomy="none"/> (default)
          -Allowed values: all, partial, none (optional)
          -
          - -

          thickness

          - -The polygonal representation of the plane is expanded as much as -possible, limited by the cell volume, in crystallographic planes, -and by the atoms within the thickness range of the plane -defined by the first three atoms, in atomic planes. - -
          -Example: <plane ... thickness="0.0100"/> (default)
          -(defined in GAMGI_CHEM_PLANE_THICKNESS)
          -Allowed values: positive real (optional)
          -
          -

          order

          A crystallographic plane does not exist as a single plane, is always diff -Nru gamgi-0.16.8/doc/formats/plane/create_type.html gamgi-0.17/doc/formats/plane/create_type.html --- gamgi-0.16.8/doc/formats/plane/create_type.html 2011-07-18 22:34:20.000000000 +0000 +++ gamgi-0.17/doc/formats/plane/create_type.html 2013-12-18 20:37:25.000000000 +0000 @@ -27,10 +27,11 @@

          reference

          -When reference is cell, the plane is crystallographic, -its parent must be a cell and the plane indices must be indicated. -When reference is atoms, the plane is atomic and -must contain at least three non colinear atoms defining a polygon. +When reference is cell, the plane is crystallographic +so plane indices are required and its parent must be a cell. +When reference is atoms, the plane is described +by real and integer polygon data inside two blocks, +so the plane becomes independent of the atoms used to define it.
           Example: <plane ... reference="cell"/> (default)
          @@ -63,6 +64,18 @@
           Allowed values: conventional, primitive (optional)
           
          +

          model

          + +An atomic plane is always represented as a polygon. +A crystallographic plane can also be represented as a +pole, a trace (for projected planes), or +a vector (for reciprocal lattice planes). + +
          +Example: <plane ... model="polygon"/> (default)
          +Allowed values: polygon, pole, trace, vector (optional)
          +
          +
          diff -Nru gamgi-0.16.8/doc/formats/reference.html gamgi-0.17/doc/formats/reference.html --- gamgi-0.16.8/doc/formats/reference.html 2008-05-30 16:57:00.000000000 +0000 +++ gamgi-0.17/doc/formats/reference.html 2013-12-15 23:00:32.000000000 +0000 @@ -32,21 +32,21 @@
        • Orbital
        • Bond
        • Atom
        • @@ -64,7 +64,7 @@
        • Group
        • diff -Nru gamgi-0.16.8/doc/formats/window/create_position.html gamgi-0.17/doc/formats/window/create_position.html --- gamgi-0.16.8/doc/formats/window/create_position.html 2008-05-30 18:30:31.000000000 +0000 +++ gamgi-0.17/doc/formats/window/create_position.html 2013-12-08 00:20:10.000000000 +0000 @@ -33,8 +33,8 @@
           Example: <window ... x="10" y="10"/> (default)
           (defined in GAMGI_GTK_WINDOW_ORIGIN_X and GAMGI_GTK_WINDOW_ORIGIN_Y)
          -Allowed values: -screen_width < x < screen_width, 
          --screen_height < y < screen_height (optional, coupled)
          +Allowed values: -screen_width < x < screen_width, 
          +-screen_height < y < screen_height (optional, coupled)
           

          width, height

          @@ -45,8 +45,8 @@
           Example: <window ... width="750" height="550"/> (default)
           (defined in GAMGI_GTK_WINDOW_WIDTH and GAMGI_GTK_WINDOW_HEIGHT)
          -Allowed values: GAMGI_GTK_WINDOW_WIDTH_MIN < x < 2 * screen_width, 
          -GAMGI_GTK_WINDOW_HEIGHT_MIN < y < 2 * screen_height (optional, coupled)
          +Allowed values: GAMGI_GTK_WINDOW_WIDTH_MIN < x < 2 * screen_width, 
          +GAMGI_GTK_WINDOW_HEIGHT_MIN < y < 2 * screen_height (optional, coupled)
           
          diff -Nru gamgi-0.16.8/doc/index.shtml gamgi-0.17/doc/index.shtml --- gamgi-0.16.8/doc/index.shtml 2013-10-31 16:07:16.000000000 +0000 +++ gamgi-0.17/doc/index.shtml 2013-12-20 18:58:20.000000000 +0000 @@ -29,10 +29,15 @@

          News

          -

          31st October 2013

          -GAMGI 0.16.8 is out, changes can be seen +

          20th December 2013

          +GAMGI 0.17 is out, changes can be seen here. +

          19th November 2013

          +Signed an agreement with the + +Open Invention Network regarding patent protection. +

          2nd September 2013

          Moved www.gamgi.org and ftp.gamgi.org to the IT center at the IST campus. diff -Nru gamgi-0.16.8/doc/interfaces/atom/create_analysis.html gamgi-0.17/doc/interfaces/atom/create_analysis.html --- gamgi-0.16.8/doc/interfaces/atom/create_analysis.html 2009-08-15 16:39:54.000000000 +0000 +++ gamgi-0.17/doc/interfaces/atom/create_analysis.html 2013-12-15 23:40:25.000000000 +0000 @@ -26,22 +26,21 @@
          -Set here atom features related with structural analysis, -using methods such as diffraction. +Set here atom features obtained from structural analysis, such as diffraction.

          Temperature

          -Set here the atom temperature. Temperature information is needed -to calculate Debye-Waller temperature factors, which, together -with structure factors, are needed to calculate accurate X-ray -and electron diffraction patterns. +Set here the atom temperature (X-Ray Debye-Waller factor), in Angstrom squared: +0 < T < 100. Generally, T < 30 signifies confidence in its position, while +T > 60 signifies disorder. Together with structure factors, temperature information +is needed to calculate accurate X-ray and electron diffraction patterns.

          Occupancy

          Although by default all atoms have occupancy 1.0, many experimental results can only be explained assuming that some positions are not always occupied by the same type of atom. Therefore these atoms have an average -occupancy between 1.0 and 0.0. Apart from the structural information +occupancy between 0.0 and 1.0. Apart from the structural information in itself, carried in these occupancy factors, they are needed to accurately calculate the diffraction structure factors and the corresponding diffraction patterns in solids and liquids. diff -Nru gamgi-0.16.8/doc/interfaces/bond/create_length.html gamgi-0.17/doc/interfaces/bond/create_length.html --- gamgi-0.16.8/doc/interfaces/bond/create_length.html 2009-12-26 14:03:48.000000000 +0000 +++ gamgi-0.17/doc/interfaces/bond/create_length.html 2013-12-16 22:54:22.000000000 +0000 @@ -16,7 +16,7 @@
            -
          • Method
          • +
          • Type
          • Length
          • Property
          • View
          • @@ -25,15 +25,15 @@
            -Define here the length limits used to create new bonds. +Set here the length and element criteria used in Length +and Delaunay models to create new bonds.

            Element, Element

            When the Element entries are empty (the default), GAMGI attempts to create bonds for all pairs of atoms. When the Element entries are occupied with valid element names, only bonds between atoms of these -elements are considered. When creating Delaunay bonds, only -topological bonds between atoms of the selected elements will be created. +elements are considered.

            @@ -78,9 +78,8 @@

            When the Minimum, Maximum entries are occupied with -valid length values, only bonds between these limits will be considered, -for all element pairs. When creating Delaunay bonds, only -topological bonds with lengths in the selected range will be created. +valid length values, only bonds between these limits will be considered, +for all element pairs.

            diff -Nru gamgi-0.16.8/doc/interfaces/bond/create_method.html gamgi-0.17/doc/interfaces/bond/create_method.html --- gamgi-0.16.8/doc/interfaces/bond/create_method.html 2011-04-21 17:46:42.000000000 +0000 +++ gamgi-0.17/doc/interfaces/bond/create_method.html 1970-01-01 00:00:00.000000000 +0000 @@ -1,152 +0,0 @@ - - - - - -GAMGI Interfaces: Bond Create - - - - - - - -

            Bond Create

            - -
            - -
            - -
            - -Testing - -Define here the method used to create new bonds. - -

            Atoms

            - -Selecting this method, the Atom entries become active, -to enter the name and number of two atoms. If GAMGI identifies the -atoms, a bond is created between them, after pressing Ok. - -

            - -An easy technique to select an atom is to click the mouse over its -visual representation: if GAMGI recognises the atom (it must be in -the current layer), its identification is transported to the first -empty Atom entry. If both entries were occupied before, the -mouse action is ignored. If both entries are occupied after, GAMGI -tries to create the bond. - -

            - -The writing and clicking techniques can be combined. For example, the -user can write an atom identification in the second Atom entry -and then click on the visual representation of the other atom: GAMGI -writes its identification in the first Atom entry, previously -empty, and attempts to create the bond. - -

            - -The only information that matters is the information writen in the -dialog when the Ok button is pressed. For example, if a user -clicks on an atom to get its identification (in the first Atom -entry), then writes another atom in the second Atom entry and -finally deletes the first atom identification before pressing Ok, -an error is shown, as the first atom is not found. - -

            Length

            - -This method is based only on the distance between atoms and the -elements of the atoms, thus Element and Length entries -become active and Atom entries become inactive. If both -Element and Length entries are left empty, GAMGI -attempts to create bonds for all atoms, using the following procedures. - -

            - -For each atom pair, GAMGI checks whether specific minimum and maximum -bond length limits have been configured. If the atoms distance is in -the configured interval, a new bond is created. To configure bond length -limits for specific element pairs, select Bond->Config. - -

            - -If no bond length interval has been configured for this element pair, -GAMGI attempts to calculate automatic minimum and maximum limits, summing -the two atom radius and multiplying by lower and upper factors (currently -0.80 and 1.10 by default). If the atoms distance is in the calculated -interval, a new bond is created. To configure these lower and upper -factors, valid for all element pairs, select Bond->Config. - -

            - -If no radius is defined for at least one of the elements, then no bond -is created. To configure the atom radius, for specific elements, select -Atom->Config. - -

            - -When both Element entries are occupied, GAMGI tries to identify -its contents as valid element names, which can be, for example, -"Si", " Si", "Si " but not "si", -"S i" or "14". When both elements are recognized, minimum -and maximum bond length limits for this element pair - calculated according -to the rules described above - are automatically writen in the Length -entries, otherwise these entries are set empty. - -

            - -After pressing Ok, if both elements are recognized, GAMGI attempts -to create bonds only between atoms of these elements, using the bond length -limits writen in the Length entries (if the elements are invalid, -an error is shown). If the Length entries are empty, GAMGI uses the -default minimum and maximum limits for this element pair, calculated as -described above. - -

            - -If the Element entries are empty when the user presses the Ok -button, but the Length entries are not, GAMGI attempts to create -bonds between all atoms, independently of its elements, using the bond -length limits writen in the Length entries. The values writen in -the Length entries must be valid lengths, and the minimum value -cannot excede the maximum, otherwise an error is shown. - -

            - -In all cases, when pressing Ok, the Element entries must -be both empty or valid and the Length entries must be both empty -or valid, otherwise an error dialog is shown. - -

            Delaunay

            - -In this method, a Voronoi polyhedron is determined for each atom, -and bonds are created between atoms whose polyhedrons share a common -face, forming a Delaunay connection. - -

            - -The Delaunay method is based on topological considerations only, -so Element, Length and Atom entries are disabled. - -

            - -Bonds that already exist are never created again: in Length -and Delaunay methods, these cases are silently ignored, while -in the Direct method an error is produced. - -

            - -
            -Home -
            - - - diff -Nru gamgi-0.16.8/doc/interfaces/bond/create_property.html gamgi-0.17/doc/interfaces/bond/create_property.html --- gamgi-0.16.8/doc/interfaces/bond/create_property.html 2009-12-26 13:58:55.000000000 +0000 +++ gamgi-0.17/doc/interfaces/bond/create_property.html 2013-12-16 22:57:36.000000000 +0000 @@ -16,7 +16,7 @@
              -
            • Method
            • +
            • Type
            • Length
            • Property
            • View
            • @@ -25,7 +25,7 @@
              -Define here the bond properties related with its charge distribution. +Set here the bond properties related with its charge distribution.

              Covalency

              @@ -50,10 +50,8 @@

              -Currently, the orientation of the curved volumes in solid secondary -bonds is arbitrary. Currently, aromatic bonds are handled as normal -bonds, according to its bond order, so bonds with order equal to 1.5 -are handled as double bonds. +Currently, the orientation of the curved volumes in solid double bonds +is arbitrary and aromatic bonds are visually handled as normal bonds.

              diff -Nru gamgi-0.16.8/doc/interfaces/bond/create_type.html gamgi-0.17/doc/interfaces/bond/create_type.html --- gamgi-0.16.8/doc/interfaces/bond/create_type.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/interfaces/bond/create_type.html 2013-12-16 22:58:18.000000000 +0000 @@ -0,0 +1,150 @@ + + + + + +GAMGI Interfaces: Bond Create + + + + + + + +

              Bond Create

              + +
              + +
              + +
              + +Set here the method used to create new bonds. + +

              Atoms

              + +Selecting this method, the Atom entries become active, +to enter the name and number of two atoms. If GAMGI identifies the +atoms, a bond is created between them, after pressing Ok. + +

              + +An easy technique to select an atom is to click the mouse over its +visual representation: if GAMGI recognises the atom (it must be in +the current layer), its identification is transported to the first +empty Atom entry. If both entries were occupied before, the +mouse action is ignored. If both entries are occupied after, GAMGI +tries to create the bond. + +

              + +The writing and clicking techniques can be combined. For example, the +user can write an atom identification in the second Atom entry +and then click on the visual representation of the other atom: GAMGI +writes its identification in the first Atom entry, previously +empty, and attempts to create the bond. + +

              + +The only information that matters is the information writen in the +dialog when the Ok button is pressed. For example, if a user +clicks on an atom to get its identification (in the first Atom +entry), then writes another atom in the second Atom entry and +finally deletes the first atom identification before pressing Ok, +an error is shown, as the first atom is not found. + +

              Length

              + +This method is based only on the distance between atoms and the +elements of the atoms, thus Element and Length entries +become active and Atom entries become inactive. If both +Element and Length entries are left empty, GAMGI +attempts to create bonds for all atoms, using the following procedures. + +

              + +For each atom pair, GAMGI checks whether specific minimum and maximum +bond length limits have been configured. If the atoms distance is in +the configured interval, a new bond is created. To configure bond length +limits for specific element pairs, select Bond->Config. + +

              + +If no bond length interval has been configured for this element pair, +GAMGI attempts to calculate automatic minimum and maximum limits, summing +the two atom radius and multiplying by lower and upper factors (currently +0.80 and 1.10 by default). If the atoms distance is in the calculated +interval, a new bond is created. To configure these lower and upper +factors, valid for all element pairs, select Bond->Config. + +

              + +If no radius is defined for at least one of the elements, then no bond +is created. To configure the atom radius, for specific elements, select +Atom->Config. + +

              + +When both Element entries are occupied, GAMGI tries to identify +its contents as valid element names, which can be, for example, +"Si", " Si", "Si " but not "si", +"S i" or "14". When both elements are recognized, minimum +and maximum bond length limits for this element pair - calculated according +to the rules described above - are automatically writen in the Length +entries, otherwise these entries are set empty. + +

              + +After pressing Ok, if both elements are recognized, GAMGI attempts +to create bonds only between atoms of these elements, using the bond length +limits writen in the Length entries (if the elements are invalid, +an error is shown). If the Length entries are empty, GAMGI uses the +default minimum and maximum limits for this element pair, calculated as +described above. + +

              + +If the Element entries are empty when the user presses the Ok +button, but the Length entries are not, GAMGI attempts to create +bonds between all atoms, independently of its elements, using the bond +length limits writen in the Length entries. The values writen in +the Length entries must be valid lengths, and the minimum value +cannot excede the maximum, otherwise an error is shown. + +

              + +In all cases, when pressing Ok, the Element entries must +be both empty or valid and the Length entries must be both empty +or valid, otherwise an error dialog is shown. + +

              Delaunay

              + +In this method, a Voronoi polyhedron is determined for each atom, +and bonds are created between atoms whose polyhedrons share a common +face, forming a Delaunay connection. + +

              + +The Delaunay method is based on topological considerations only, +so Element, Length and Atom entries are disabled. + +

              + +Bonds that already exist are never created again: in Length +and Delaunay methods, these cases are silently ignored, while +in the Direct method an error is shown. + +

              + +
              +Home +
              + + + diff -Nru gamgi-0.16.8/doc/interfaces/bond/create_view.html gamgi-0.17/doc/interfaces/bond/create_view.html --- gamgi-0.16.8/doc/interfaces/bond/create_view.html 2009-12-26 14:03:57.000000000 +0000 +++ gamgi-0.17/doc/interfaces/bond/create_view.html 2013-12-16 23:00:42.000000000 +0000 @@ -16,7 +16,7 @@
                -
              • Method
              • +
              • Type
              • Length
              • Property
              • View
              • @@ -25,7 +25,7 @@
                -Define here the bond visual representation. +Set here the bond visual representation.

                Style

                @@ -86,7 +86,7 @@ Line widths in GAMGI are not affected by Scale attributes, so bonds represented in Wired mode remain unchanged by Scale -(but not its child). +(but not its child!).
                diff -Nru gamgi-0.16.8/doc/interfaces/direction/create_projection.html gamgi-0.17/doc/interfaces/direction/create_projection.html --- gamgi-0.16.8/doc/interfaces/direction/create_projection.html 2011-07-18 22:11:52.000000000 +0000 +++ gamgi-0.17/doc/interfaces/direction/create_projection.html 2013-12-18 16:44:38.000000000 +0000 @@ -25,23 +25,11 @@
                -Set here how a crystallographic direction is represented -in a stereographic projection. +Set here how a crystallographic direction is projected. -

                Wulff, Schmidt

                +

                Net

                -Every family of crystallographic planes or directions can be described -by the intersection of the plane or direction passing through the origin -O with a sphere of radius R centered at O, defining a circumpherence or -a point, respectively. These in turn can be projected on the circle -parallel to the screen (constant Z coordinate) that divides the sphere -in half, with radius R and origin O. In GAMGI, points in the half-sphere -farther from the user are hidden, so only half-circumpherences and points -above are visible. - -

                - -The actual projection can be Wulff (Stereographic) or Schmidt +The projection net can be Wulff (Stereographic) or Schmidt (Equivalent). In the Wulff projection, the point to project (above) and the point of the sphere farther from the user (below) define a segment that intersects the circle at a point, giving the final representation. @@ -56,36 +44,45 @@

                -To select the projection to use, press Wulff or Schmidt. +Every family of crystallographic planes or directions can be described +by the intersection of the plane or direction passing through the origin +O with a sphere of radius R centered at O, defining a circumpherence or +a point, respectively. These in turn can be projected on the circle +parallel to the screen (constant Z coordinate) that divides the sphere +in half, with radius R and origin O. In GAMGI, points in the half-sphere +farther from the user are hidden, so only half-circumpherences and points +above are visible. + +

                Model

                + +In both projections, a direction can always be represented by a Pole +or a Trace. The intersection of the direction with the projection +sphere is a point that projected gives the Pole representation. +The intersection of the plane normal to the direction with the projection +sphere is an arch that projected gives the Trace representation: +a circumpherence arch in the Wulff projection and a 4th order +conic arch in the Schmidt projection. -

                Pole, Trace

                +

                -In both projections, a direction is represented by a point, a Pole, -and a plane by an arch, a Trace. These are circumpherence archs, in -the Wulff projection, and 4th order conic archs, in the Schmidt -projection. A plane can always be described by its normal vector, and a -direction by its plane perpendicular, so both representations are valid -for planes and directions. +A plane can always be described by its normal vector, and a direction +by its plane perpendicular, so both representations are valid for +crystallographic planes and directions.

                In a Wulff projection, angles between planes are given by -the angles between the traces, so angles are preserved. This is not -true for the Schmidt projection. The Wulff projection +the angles between the traces, so angles are preserved. This is not +true for the Schmidt projection. The Wulff projection is mostly used in materials science.

                -In a Schmidt projection, minor circles on the sphere are -distorted when projected but the areas are preserved. This is not -true for the Wulff projection. The Schmidt projection +In a Schmidt projection, minor circles on the sphere are +distorted when projected but the areas are preserved. This is not +true for the Wulff projection. The Schmidt projection is mostly used in structural geology. -

                - -To select the visual representation to use, press on Pole, -Trace or both. -

                diff -Nru gamgi-0.16.8/doc/interfaces/direction/create_type.html gamgi-0.17/doc/interfaces/direction/create_type.html --- gamgi-0.16.8/doc/interfaces/direction/create_type.html 2011-07-18 22:12:33.000000000 +0000 +++ gamgi-0.17/doc/interfaces/direction/create_type.html 2013-12-18 21:22:42.000000000 +0000 @@ -26,7 +26,7 @@
                -Set here the properties of a crystallographic or atomic direction. +Set here a crystallographic or atomic direction.

                Reference

                @@ -37,7 +37,7 @@

                To create crystallographic directions, set Reference to Cell. -GAMGI automatically shows a Cell entry, plus u, v, w +GAMGI automatically shows a Cell entry, plus U, V, W entries to indicate the direction indices, plus a Vectors menu, to select the cell vectors to use, Conventional or Primitive. For the sake of simplicity, GAMGI does not accept 4-indice notation for planes or directions @@ -53,7 +53,7 @@

                By default, only one family of crystallographic directions is created. -To create a set of families simultaneously, press the button Set (TODO). +To create a set of families simultaneously, press the button List.

                @@ -61,7 +61,7 @@ two Atom entries. Pressing the mouse sucessively over two non-colinear atoms in the current layer, the two entries become occupied and the direction defined. After pressing Ok, an error is shown -if the atoms are coincident. +when the two atoms are coincident.

                diff -Nru gamgi-0.16.8/doc/interfaces/direction/modify_projection.html gamgi-0.17/doc/interfaces/direction/modify_projection.html --- gamgi-0.16.8/doc/interfaces/direction/modify_projection.html 2012-06-20 13:39:21.000000000 +0000 +++ gamgi-0.17/doc/interfaces/direction/modify_projection.html 2013-12-18 16:48:35.000000000 +0000 @@ -42,64 +42,62 @@ To change the name for a list of directions, press List first and then write the new common name in the Name entry. -

                Wulff, Schmidt

                +

                Net

                -Every family of crystallographic planes or directions can be described -by the intersection of the plane or direction passing through the origin -O with a sphere of radius R centered at O, defining a circumpherence or -a point, respectively. These in turn can be projected on the circle -parallel to the screen (constant Z coordinate) that divides the sphere -in half, with radius R and origin O. In GAMGI, points in the half-sphere -farther from the user are hidden, so only half-circumpherences and points -above are visible. - -

                - -The actual projection can be Wulff (Stereographic) or Schmidt -(Equivalent). In the Wulff projection, the point to project (above) -and the point of the sphere farther from the user (below) define a segment +The projection net can be Wulff (Stereographic) or Schmidt +(Equivalent). In the Wulff projection, the point to project (above) +and the point of the sphere farther from the user (below) define a segment that intersects the circle at a point, giving the final representation.

                -In the Schmidt projection, the point to project (above) is -rotated around the point of the sphere closer to the user (above), -keeping the same XY direction, until both points have the same Z -coordinate, and then divided by square root of 2, to be inside the +In the Schmidt projection, the point to project (above) is +rotated around the point of the sphere closer to the user (above), +keeping the same XY direction, until both points have the same Z +coordinate, and then divided by square root of 2, to be inside the circle with radius R at coordinate Z, giving the final representation.

                -To select the projection to use, press Wulff or Schmidt. +Every family of crystallographic planes or directions can be described +by the intersection of the plane or direction passing through the origin +O with a sphere of radius R centered at O, defining a circumpherence or +a point, respectively. These in turn can be projected on the circle +parallel to the screen (constant Z coordinate) that divides the sphere +in half, with radius R and origin O. In GAMGI, points in the half-sphere +farther from the user are hidden, so only half-circumpherences and points +above are visible. + +

                Model

                + +In both projections, a direction can always be represented by a Pole +or a Trace. The intersection of the direction with the projection +sphere is a point that projected gives the Pole representation. +The intersection of the plane normal to the direction with the projection +sphere is an arch that projected gives the Trace representation: +a circumpherence arch in the Wulff projection and a 4th order +conic arch in the Schmidt projection. -

                Pole, Trace

                +

                -In both projections, a direction is represented by a point, a Pole, -and a plane by an arch, a Trace. These are circumpherence archs, in -the Wulff projection, and 4th order conic archs, in the Schmidt -projection. A plane can always be described by its normal vector, and a -direction by its plane perpendicular, so both representations are valid -for planes and directions. +A plane can always be described by its normal vector, and a direction +by its plane perpendicular, so both representations are valid for +crystallographic planes and directions.

                In a Wulff projection, angles between planes are given by -the angles between the traces, so angles are preserved. This is not -true for the Schmidt projection. The Wulff projection +the angles between the traces, so angles are preserved. This is not +true for the Schmidt projection. The Wulff projection is mostly used in materials science.

                -In a Schmidt projection, minor circles on the sphere are -distorted when projected but the areas are preserved. This is not -true for the Wulff projection. The Schmidt projection +In a Schmidt projection, minor circles on the sphere are +distorted when projected but the areas are preserved. This is not +true for the Wulff projection. The Schmidt projection is mostly used in structural geology. -

                - -To select the visual representation to use, press on Pole, -Trace or both. -

                diff -Nru gamgi-0.16.8/doc/interfaces/orbital/create_model.html gamgi-0.17/doc/interfaces/orbital/create_model.html --- gamgi-0.16.8/doc/interfaces/orbital/create_model.html 2013-01-13 23:54:43.000000000 +0000 +++ gamgi-0.17/doc/interfaces/orbital/create_model.html 2013-11-29 21:58:34.000000000 +0000 @@ -26,13 +26,24 @@
                -Set here the parameters controlling the numerical representation of the orbital. +Set here the numerical representation of an orbital. + +

                Style

                + +There are two ways to describe orbitals in GAMGI: as a cloud of random points +describing all the regions of space where the probability density is above +a specified value, the Wired approach; 2) as the outer isosurface +linking points with the specified probability density, the Solid +approach. Please note that in s orbitals, there are several different +isosurfaces with the same probability density, GAMGI shows only the +most external one.

                Density

                -This parameter sets the minimum threeshold for the probability -density that a scanned point in space must have, to be accepted -as representative of the orbital. +Defines the probability density (probability / volume) value used +to accept points in Wired mode (when they are above this +threeshold) or to build points in Solid mode (where they +have exactly this threeshold).

                @@ -41,22 +52,25 @@ For example, the six inter-node regions of orbital 6s are all visible with the default parameters. -

                Points

                +

                Sampling

                In Wired mode, random points are generated and tried -untill the number of accepted points equals Points, so -this is the number of sampling points effectively shown. +untill the number of accepted points equals Sampling. +By default Sampling is 50000 x N, +where N is the main quantum number.

                -By default Points is 50000 x N, -where N is the main quantum number. +In Solid mode, a sampling cubic grid is built for +each octant, with Sampling slices on each dimension. +By default Sampling is 50.

                Radius

                -This parameter sets the radius of the sphere defining the sampling -volume. Only the sampling volume is scanned when building the -orbital. +Defines the sampling volume that is scanned when building an orbital. +In Wired mode, the sampling volume is the sphere with this radius. +In Solid mode, the sampling volume is the cube containing this +sphere.

                diff -Nru gamgi-0.16.8/doc/interfaces/orbital/create_position.html gamgi-0.17/doc/interfaces/orbital/create_position.html --- gamgi-0.16.8/doc/interfaces/orbital/create_position.html 2013-01-11 21:40:49.000000000 +0000 +++ gamgi-0.17/doc/interfaces/orbital/create_position.html 2013-11-29 21:59:34.000000000 +0000 @@ -26,7 +26,7 @@

                -Define here the orbital position and orientation. +Set here the position and orientation of an orbital.

                Translation

                diff -Nru gamgi-0.16.8/doc/interfaces/orbital/create_type.html gamgi-0.17/doc/interfaces/orbital/create_type.html --- gamgi-0.16.8/doc/interfaces/orbital/create_type.html 2013-01-12 00:06:41.000000000 +0000 +++ gamgi-0.17/doc/interfaces/orbital/create_type.html 2013-11-29 22:00:01.000000000 +0000 @@ -26,7 +26,7 @@
                -Choose here the orbital to build. +Set here the quantum parameters describing an orbital.

                Numbers

                diff -Nru gamgi-0.16.8/doc/interfaces/orbital/create_view.html gamgi-0.17/doc/interfaces/orbital/create_view.html --- gamgi-0.16.8/doc/interfaces/orbital/create_view.html 2013-01-12 00:03:22.000000000 +0000 +++ gamgi-0.17/doc/interfaces/orbital/create_view.html 2013-11-29 22:00:27.000000000 +0000 @@ -26,13 +26,13 @@
                -Set here the orbital visual aspect. +Set here the visual aspect of an orbital.

                Color

                Set here the R, G, B color components of the orbital, from black (0.0, 0.0, 0.0) to white (1.0, 1.0, 1.0), -in the places where the wavefunction is positive. +in the positions where the wavefunction is positive.

                @@ -48,8 +48,8 @@

                When Phase is switched off (in the Volume page), -the Phase entries are disabled as the whole orbital -is colored only with the Color components defined above. +the Phase entries are disabled and the whole orbital +is colored using only the Color components.

                Frame

                diff -Nru gamgi-0.16.8/doc/interfaces/orbital/create_volume.html gamgi-0.17/doc/interfaces/orbital/create_volume.html --- gamgi-0.16.8/doc/interfaces/orbital/create_volume.html 2013-01-12 00:04:56.000000000 +0000 +++ gamgi-0.17/doc/interfaces/orbital/create_volume.html 2013-11-29 22:01:10.000000000 +0000 @@ -26,7 +26,7 @@
                -Set here how the orbital volume is represented. +Set here how the volume representation of an orbital.

                Phase

                @@ -44,7 +44,7 @@

                Octants

                -Often it is useful to show only parts of the whole orbital. +Often it is useful to show only parts of the orbital. In GAMGI each orbital is divided in 8 octants, four above the xy plane, marked as positive, and four below, marked as negative. The four octants, above and below, are numbered @@ -57,17 +57,17 @@ When Axes is set to None, no axes are shown (the default). When Axes is set to Unit, axes -are shown with unit length. When Axes is set to Bohr, -axes are shown with the length of the Bohr first radius. -When Axes is set to Frame, axes are shown -along the frame edges. This option is disabled when Frame -is switched off. +are shown with a unit length. When Axes is set to +Bohr, axes are shown with the length of Bohr first radius. +When Axes is set to Radius, axes are shown +with the radius length (when Frame is disabled) or +the diameter length (when Frame is enabled).

                -When Frame is switched on, axes are positioned along the -frame edges, starting from the xyz lower corner. When Frame -is switched off, axes are positioned from the orbital center. +When Frame is enabled (the default), axes are positioned +along the frame edges, starting from the xyz lower corner. When +Frame is disabled, axes start from the orbital center.

                diff -Nru gamgi-0.16.8/doc/interfaces/orbital/modify_model.html gamgi-0.17/doc/interfaces/orbital/modify_model.html --- gamgi-0.16.8/doc/interfaces/orbital/modify_model.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/interfaces/orbital/modify_model.html 2013-11-29 22:40:02.000000000 +0000 @@ -0,0 +1,113 @@ + + + + + +GAMGI Interfaces: Orbital Modify + + + + + + + +

                Orbital Modify

                + +
                + +
                + +
                + +Change here the numerical representation of a single orbital or a list of orbitals. + +

                + +To modify an orbital, click over its graphic image, or write its id on +the Orbital entry. To modify a list of orbitals, press the button +List (after creating the list of orbitals with Orbital->Select). +Parameters for empty entries or Local choices remain unchanged. + +

                + +To change an orbital name write the new name in the Orbital entry, +followed by the orbital number (GAMGI needs the number to identify the orbital). +To change the name for a list of orbitals, press List first +and then write the new common name in the Name entry. + +

                Style

                + +There are two ways to describe orbitals in GAMGI: as a cloud of random points +describing all the regions of space where the probability density is above +a specified value, the Wired approach; 2) as the outer isosurface +linking points with the specified probability density, the Solid +approach. Please note that in s orbitals, there are several different +isosurfaces with the same probability density, GAMGI shows only the +most external one. + +

                Density

                + +Defines the probability density (probability / volume) value used +to accept points in Wired mode (when they are above this +threeshold) or to build points in Solid mode (where they +have exactly this threeshold). + +

                + +The low default value (1E-6)) was chosen to guarantee that +all the inter-node regions are visible with default parameters. +For example, the six inter-node regions of orbital 6s are all +visible with the default parameters. + +

                Sampling

                + +In Wired mode, random points are generated and tried +untill the number of accepted points equals Sampling. +By default Sampling is 50000 x N, +where N is the main quantum number. + +

                + +In Solid mode, a sampling cubic grid is built for +each octant, with Sampling slices on each dimension. +By default Sampling is 50. + +

                Radius

                + +Defines the sampling volume that is scanned when building an orbital. +In Wired mode, the sampling volume is the sphere with this radius. +In Solid mode, the sampling volume is the cube containing this +sphere. + +

                + +For each orbital, the default radius is obtained calculating first +the distance for the last maximum of the radial probability density +(the first Bohr radius, for orbital 1s), then adding an offset (to +guarantee a proper sampling region, currently 2.0 Angstrom) and finally +increasing the radius untill the probability density becomes lower +in all directions than the default probability density. + +

                Seed

                + +In Wired mode, sampling points are randomly positioned using +a sequence of (pseudo) random numbers, generated from a Seed +initiator. Using different seeds, different random sequences and +final results will be produced. Using the same seed, the same results +will be obtained. + +
                + +
                +Home +
                + + + diff -Nru gamgi-0.16.8/doc/interfaces/orbital/modify_position.html gamgi-0.17/doc/interfaces/orbital/modify_position.html --- gamgi-0.16.8/doc/interfaces/orbital/modify_position.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/interfaces/orbital/modify_position.html 2013-11-29 22:40:23.000000000 +0000 @@ -0,0 +1,83 @@ + + + + + +GAMGI Interfaces: Orbital Modify + + + + + + + +

                Orbital Modify

                + +
                + +
                + +
                + +Change here the position and orientation for a single orbital or a list of orbitals. + +

                + +To modify an orbital, click over its graphic image, or write its id on +the Orbital entry. To modify a list of orbitals, press the button +List (after creating the list of orbitals with Orbital->Select). +Parameters for empty entries or Local choices remain unchanged. + +

                + +To change an orbital name write the new name in the Orbital entry, +followed by the orbital number (GAMGI needs the number to identify the orbital). +To change the name for a list of orbitals, press List first +and then write the new common name in the Name entry. + +

                Translation

                + +The origin of an orbital object, defined as its center, +can be set using the X, Y, Z entries. + +A simpler way to set directly the orbital position is to click on +the screen, at the wished position, after defining all the other +orbital properties: a new orbital object is created at that position. + +

                Rotation

                + +The orientation of an orbital object, defined by the Euler angles theta, +phi, psi, can be set using the E1, E2, E3 entries. + +

                + +Euler angles in GAMGI are defined as follows: first, the (x, y, z) +referential is rotated theta degrees (between 0 and 180) around the +y axis, then the referential is rotated phi degrees (between 0 and 360) +around the initial z axis, and finally it is rotated psi degrees (between +0 and 360) around the new z axis, always in the direct, counter-clockwise, +direction. If the first Euler angle (theta) is zero, the old and new z axis +coincide, thus (0, 0, 10) and (0, 5, 5) represent the same rotation. + +

                + +By default, the orbital frame first vector is aligned with the x axis +(to the right), the second vector is on the xy (screen) plane and the +third vector has a positive z coordinate (pointing to the user), +corresponding to Euler angles (0, 0, 0). + +

                + +
                +Home +
                + + + diff -Nru gamgi-0.16.8/doc/interfaces/orbital/modify_type.html gamgi-0.17/doc/interfaces/orbital/modify_type.html --- gamgi-0.16.8/doc/interfaces/orbital/modify_type.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/interfaces/orbital/modify_type.html 2013-11-29 22:40:32.000000000 +0000 @@ -0,0 +1,63 @@ + + + + + +GAMGI Interfaces: Orbital Modify + + + + + + + +

                Orbital Modify

                + +
                + +
                + +
                + +Change here the quantum parameters describing a single orbital or a list of orbitals. + +

                + +To modify an orbital, click over its graphic image, or write its id on +the Orbital entry. To modify a list of orbitals, press the button +List (after creating the list of orbitals with Orbital->Select). +Parameters for empty entries or Local choices remain unchanged. + +

                + +To change an orbital name write the new name in the Orbital entry, +followed by the orbital number (GAMGI needs the number to identify the orbital). +To change the name for a list of orbitals, press List first +and then write the new common name in the Name entry. + +

                Numbers

                + +Set here the n, l, m, quantum numbers defining +the hydrogen-based atomic orbital to build. +By default n = 1, l = 0, m = 0. + +

                Charge

                + +Set here the nucleus charge for the atomic orbital +(by default 1.0, the nucleus charge for Hydrogen). + +
                + +
                +Home +
                + + + diff -Nru gamgi-0.16.8/doc/interfaces/orbital/modify_view.html gamgi-0.17/doc/interfaces/orbital/modify_view.html --- gamgi-0.16.8/doc/interfaces/orbital/modify_view.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/interfaces/orbital/modify_view.html 2013-11-29 22:40:40.000000000 +0000 @@ -0,0 +1,93 @@ + + + + + +GAMGI Interfaces: Orbital Modify + + + + + + + +

                Orbital Modify

                + +
                + +
                + +
                + +Change here the visual aspect for a single orbital or a list of orbitals. + +

                + +To modify an orbital, click over its graphic image, or write its id on +the Orbital entry. To modify a list of orbitals, press the button +List (after creating the list of orbitals with Orbital->Select). +Parameters for empty entries or Local choices remain unchanged. + +

                + +To change an orbital name write the new name in the Orbital entry, +followed by the orbital number (GAMGI needs the number to identify the orbital). +To change the name for a list of orbitals, press List first +and then write the new common name in the Name entry. + +

                Color

                + +Set here the R, G, B color components of the orbital, +from black (0.0, 0.0, 0.0) to white (1.0, 1.0, 1.0), +in the positions where the wavefunction is positive. + +

                + +When Phase is switched off (in the Volume page), +the Color components are used to color the whole orbital. + +

                Phase

                + +Set here the R, G, B color components of the orbital, +from black (0.0, 0.0, 0.0) to white (1.0, 1.0, 1.0), +in the places where the wavefunction is negative. + +

                + +When Phase is switched off (in the Volume page), +the Phase entries are disabled and the whole orbital +is colored using only the Color components. + +

                Frame

                + +Set here the R, G, B color components of the orbital frame, +from black (0.0, 0.0, 0.0) to white (1.0, 1.0, 1.0). + +

                + +When Frame is switched off (in the Volume page), +the Frame entries are disabled as the orbital frame +is not shown. + +

                Scale

                + +Set the orbital size, including its child objects. Orbital objects are +scaled around the orbital center. The visual representation of an object +is always scaled by its own scale factor multiplied by the scale factor +of all its parent objects until layer, inclusive. + +
                + +
                +Home +
                + + + diff -Nru gamgi-0.16.8/doc/interfaces/orbital/modify_volume.html gamgi-0.17/doc/interfaces/orbital/modify_volume.html --- gamgi-0.16.8/doc/interfaces/orbital/modify_volume.html 1970-01-01 00:00:00.000000000 +0000 +++ gamgi-0.17/doc/interfaces/orbital/modify_volume.html 2013-11-29 22:40:49.000000000 +0000 @@ -0,0 +1,93 @@ + + + + + +GAMGI Interfaces: Orbital Modify + + + + + + + +

                Orbital Modify

                + +
                + +
                + +
                + +Change here the volume representation for a single orbital or a list of orbitals. + +

                + +To modify an orbital, click over its graphic image, or write its id on +the Orbital entry. To modify a list of orbitals, press the button +List (after creating the list of orbitals with Orbital->Select). +Parameters for empty entries or Local choices remain unchanged. + +

                + +To change an orbital name write the new name in the Orbital entry, +followed by the orbital number (GAMGI needs the number to identify the orbital). +To change the name for a list of orbitals, press List first +and then write the new common name in the Name entry. + +

                Phase

                + +When Phase is switched on (the default), the orbital is +represented with two colors, to distinguish places where the wave +function is positive and negative. When Phase is switched off, +the whole orbital is represented with just one color. + +

                Frame

                + +When Frame is switched on (the default), a cubic frame +is shown around the orbital, with a edge length equal to twice +the sampling Radius defined in the Model page. +When Frame is switched off, no frame is shown. + +

                Octants

                + +Often it is useful to show only parts of the orbital. +In GAMGI each orbital is divided in 8 octants, four above +the xy plane, marked as positive, and four below, marked +as negative. The four octants, above and below, are numbered +increasing in a counter-clockwise pattern, as usual in trigonometry. +To set which orbital octants should be represented, +switch on / off each of the eight octant buttons. +By default all octants are shown. + +

                Axes

                + +When Axes is set to None, no axes are shown +(the default). When Axes is set to Unit, axes +are shown with a unit length. When Axes is set to +Bohr, axes are shown with the length of Bohr first radius. +When Axes is set to Radius, axes are shown +with the radius length (when Frame is disabled) or +the diameter length (when Frame is enabled). + +

                + +When Frame is enabled (the default), axes are positioned +along the frame edges, starting from the xyz lower corner. When +Frame is disabled, axes start from the orbital center. + +

                + +
                +Home +
                + + + diff -Nru gamgi-0.16.8/doc/interfaces/plane/create_projection.html gamgi-0.17/doc/interfaces/plane/create_projection.html --- gamgi-0.16.8/doc/interfaces/plane/create_projection.html 2011-07-18 20:17:56.000000000 +0000 +++ gamgi-0.17/doc/interfaces/plane/create_projection.html 2013-12-18 16:44:18.000000000 +0000 @@ -25,23 +25,11 @@
                -Set here how a crystallographic plane is represented -in a stereographic projection. +Set here how a crystallographic plane is projected. -

                Wulff, Schmidt

                +

                Net

                -Every family of crystallographic planes or directions can be described -by the intersection of the plane or direction passing through the origin -O with a sphere of radius R centered at O, defining a circumpherence or -a point, respectively. These in turn can be projected on the circle -parallel to the screen (constant Z coordinate) that divides the sphere -in half, with radius R and origin O. In GAMGI, points in the half-sphere -farther from the user are hidden, so only half-circumpherences and points -above are visible. - -

                - -The actual projection can be Wulff (Stereographic) or Schmidt +The projection net can be Wulff (Stereographic) or Schmidt (Equivalent). In the Wulff projection, the point to project (above) and the point of the sphere farther from the user (below) define a segment that intersects the circle at a point, giving the final representation. @@ -54,18 +42,33 @@ coordinate, and then divided by square root of 2, to be inside the circle with radius R at coordinate Z, giving the final representation. +

                -To select the projection to use, press Wulff or Schmidt. +Every family of crystallographic planes or directions can be described +by the intersection of the plane or direction passing through the origin +O with a sphere of radius R centered at O, defining a circumpherence or +a point, respectively. These in turn can be projected on the circle +parallel to the screen (constant Z coordinate) that divides the sphere +in half, with radius R and origin O. In GAMGI, points in the half-sphere +farther from the user are hidden, so only half-circumpherences and points +above are visible. + +

                Model

                + +In both projections, a plane can always be represented by a Pole +or a Trace. The intersection of a vector normal to the plane with +the projection sphere is a point that projected gives the Pole +representation. The intersection of the plane with the projection sphere +is an arch that projected gives the Trace representation: a +circumpherence arch in the Wulff projection and a 4th order +conic arch in the Schmidt projection. -

                Pole, Trace

                +

                -In both projections, a direction is represented by a point, a Pole, -and a plane by an arch, a Trace. These are circumpherence archs, in -the Wulff projection, and 4th order conic archs, in the Schmidt -projection. A plane can always be described by its normal vector, and a -direction by its plane perpendicular, so both representations are valid -for planes and directions. +A plane can always be described by its normal vector, and a direction +by its plane perpendicular, so both representations are valid for +crystallographic planes and directions.

                @@ -81,11 +84,6 @@ true for the Wulff projection. The Schmidt projection is mostly used in structural geology. -

                - -To select the visual representation to use, press on Pole, -Trace or both. -

                diff -Nru gamgi-0.16.8/doc/interfaces/plane/create_type.html gamgi-0.17/doc/interfaces/plane/create_type.html --- gamgi-0.16.8/doc/interfaces/plane/create_type.html 2011-07-18 20:18:17.000000000 +0000 +++ gamgi-0.17/doc/interfaces/plane/create_type.html 2013-12-18 21:22:15.000000000 +0000 @@ -25,7 +25,7 @@
                -Set here the properties of a crystallographic or atomic plane. +Set here a crystallographic or atomic plane.

                Reference

                @@ -36,7 +36,7 @@

                To create crystallographic planes, set Reference to Cell. -GAMGI automatically shows a Cell entry, h, k, l +GAMGI automatically shows a Cell entry, H, K, L entries to indicate the plane indices, plus a Vectors menu, to select the cell vectors to use, Conventional or Primitive. For the sake of simplicity, GAMGI does not accept 4-indice notation for planes or directions @@ -52,15 +52,15 @@

                By default, only one family of crystallographic planes is created. -To create a set of families simultaneously, press the button Set (TODO). +To create a set of families simultaneously, press the button List.

                When Reference is set to Atoms, GAMGI automatically shows three Atom entries. Pressing the mouse sucessively over three non-colinear atoms in the current layer, the three entries become occupied -and the plane defined. After pressing Ok, an error is shown if the -atoms are disposed linearly. +and the plane defined. After pressing Ok, an error is shown when +the three atoms are collinear.

                diff -Nru gamgi-0.16.8/doc/interfaces/plane/modify_projection.html gamgi-0.17/doc/interfaces/plane/modify_projection.html --- gamgi-0.16.8/doc/interfaces/plane/modify_projection.html 2012-06-20 13:33:40.000000000 +0000 +++ gamgi-0.17/doc/interfaces/plane/modify_projection.html 2013-12-18 16:49:32.000000000 +0000 @@ -26,7 +26,7 @@
                -Change here the stereographic projection for a single plane or a list of planes. +Change here the projection for a single plane or a list of planes.

                @@ -42,20 +42,9 @@ To change the name for a list of planes, press List first and then write the new common name in the Name entry. -

                Wulff, Schmidt

                +

                Net

                -Every family of crystallographic planes or directions can be described -by the intersection of the plane or direction passing through the origin -O with a sphere of radius R centered at O, defining a circumpherence or -a point, respectively. These in turn can be projected on the circle -parallel to the screen (constant Z coordinate) that divides the sphere -in half, with radius R and origin O. In GAMGI, points in the half-sphere -farther from the user are hidden, so only half-circumpherences and points -above are visible. - -

                - -The actual projection can be Wulff (Stereographic) or Schmidt +The projection net can be Wulff (Stereographic) or Schmidt (Equivalent). In the Wulff projection, the point to project (above) and the point of the sphere farther from the user (below) define a segment that intersects the circle at a point, giving the final representation. @@ -70,16 +59,30 @@

                -To select the projection to use, press Wulff or Schmidt. +Every family of crystallographic planes or directions can be described +by the intersection of the plane or direction passing through the origin +O with a sphere of radius R centered at O, defining a circumpherence or +a point, respectively. These in turn can be projected on the circle +parallel to the screen (constant Z coordinate) that divides the sphere +in half, with radius R and origin O. In GAMGI, points in the half-sphere +farther from the user are hidden, so only half-circumpherences and points +above are visible. + +

                Model

                + +In both projections, a plane can always be represented by a Pole +or a Trace. The intersection of a vector normal to the plane with +the projection sphere is a point that projected gives the Pole +representation. The intersection of the plane with the projection sphere +is an arch that projected gives the Trace representation: a +circumpherence arch in the Wulff projection and a 4th order +conic arch in the Schmidt projection. -

                Pole, Trace

                +

                -In both projections, a direction is represented by a point, a Pole, -and a plane by an arch, a Trace. These are circumpherence archs, in -the Wulff projection, and 4th order conic archs, in the Schmidt -projection. A plane can always be described by its normal vector, and a -direction by its plane perpendicular, so both representations are valid -for planes and directions. +A plane can always be described by its normal vector, and a direction +by its plane perpendicular, so both representations are valid for +crystallographic planes and directions.

                @@ -95,11 +98,6 @@ true for the Wulff projection. The Schmidt projection is mostly used in structural geology. -

                - -To select the visual representation to use, press on Pole, -Trace or both. -

                diff -Nru gamgi-0.16.8/src/chem/gamgi_chem.h gamgi-0.17/src/chem/gamgi_chem.h --- gamgi-0.16.8/src/chem/gamgi_chem.h 2013-07-03 15:10:19.000000000 +0000 +++ gamgi-0.17/src/chem/gamgi_chem.h 2013-12-16 23:12:41.000000000 +0000 @@ -25,12 +25,11 @@ /********** enumerations ********** **********************************/ -/**************************************************************** - * external GAMGI enumerations start at 1 and share FALSE for 0 * - ****************************************************************/ +/************************************************************** + * All external enumerations start at 1 and share FALSE for 0 * + **************************************************************/ -enum { GAMGI_CHEM_AXES_NONE = 1, GAMGI_CHEM_AXES_UNIT, -GAMGI_CHEM_AXES_BOHR, GAMGI_CHEM_AXES_FRAME }; +enum { GAMGI_CHEM_UNIT = 1, GAMGI_CHEM_BOHR, GAMGI_CHEM_RADIUS }; /************* macros ************ *********************************/ @@ -184,13 +183,16 @@ #define GAMGI_CHEM_ATOM_SIZE 0.8 #define GAMGI_CHEM_BOND_SIZE 0.5 -/************************************************* - * Atom Temperature: 273.15 Kelvin = 0 Celsius * - * (Current IUPAC standard temperature), used in * - * Diffraction Analysis, in Debye-Waller factors * - *************************************************/ +/**************************************************** + * Atom temperature (X-Ray Debye-Waller factor), * + * measured in Angstrom squared (A**2): 0 < T < 100 * + * Generally, T < 30 signifies confidence in its * + * position, while T > 60 signifies disorder. * + ****************************************************/ -#define GAMGI_CHEM_ATOM_TEMPERATURE 273.15 +#define GAMGI_CHEM_ATOM_TEMPERATURE_MIN 0.0 +#define GAMGI_CHEM_ATOM_TEMPERATURE_MAX 100.0 +#define GAMGI_CHEM_ATOM_TEMPERATURE GAMGI_CHEM_ATOM_TEMPERATURE_MIN /*********************** * default atom origin * diff -Nru gamgi-0.16.8/src/chem/gamgi_chem_orbital.c gamgi-0.17/src/chem/gamgi_chem_orbital.c --- gamgi-0.16.8/src/chem/gamgi_chem_orbital.c 2013-08-01 19:21:48.000000000 +0000 +++ gamgi-0.17/src/chem/gamgi_chem_orbital.c 2013-11-21 16:41:59.000000000 +0000 @@ -900,12 +900,11 @@ *c /= sqrt (4.0 * GAMGI_MATH_PI); } -static double static_density (double r, double value, gamgi_angular function_a) +static double static_density (double r, double f, gamgi_angular function_a) { -double theta, phi; +double theta, phi, end; double x, y, z, s; -double end; -double f; +double g; end = GAMGI_MATH_PI / 2.0; for (theta = 0.0; theta < end; theta += GAMGI_CHEM_ORBITAL_T_STEP) @@ -918,8 +917,8 @@ x = s * cos (phi); y = s * sin (phi); - f = (*function_a) (x, y, z, r); - if (value * f * f > GAMGI_CHEM_ORBITAL_DENSITY) return TRUE; + g = f * (*function_a) (x, y, z, r); + if (g * g > GAMGI_CHEM_ORBITAL_DENSITY) return TRUE; } } @@ -1023,7 +1022,7 @@ za = orbital->charge / GAMGI_CHEM_A0; ho = 2 * za / orbital->n; -constant_z = pow (za, 1.5); +constant_z = pow (za, 1.5) * pow (ho, orbital->l); constant = constant_z * constant_r * constant_a; /*************************************************** @@ -2516,7 +2515,7 @@ za = orbital->charge / GAMGI_CHEM_A0; surface->ho = 2 * za / orbital->n; -constant_z = pow (za, 1.5); +constant_z = pow (za, 1.5) * pow (surface->ho, orbital->l); surface->constant = constant_z * constant_r * constant_a; /***************************** @@ -2916,7 +2915,7 @@ za = charge / GAMGI_CHEM_A0; ho = 2 * za / n; -constant_z = pow (za, 1.5); +constant_z = pow (za, 1.5) * pow (ho, l); static_radial (n, l, &constant_r, &function_r); static_angular (l, m, &constant_a, &function_a); @@ -2932,7 +2931,7 @@ for (r = 0.0; r < GAMGI_CHEM_ORBITAL_R_MAX; r += GAMGI_CHEM_ORBITAL_R_STEP) { rho = r * ho; - f = constant * exp (-rho / 2) * (*function_r) (rho); + f = constant * exp (-rho / 2) * pow (r, l) * (*function_r) (rho); d = f * f * r * r; if (d < d_old && d_old > d_old_old) r_max = r - GAMGI_CHEM_ORBITAL_R_STEP; @@ -2957,7 +2956,7 @@ { rho = r * ho; f = constant * exp (-rho / 2) * (*function_r) (rho); - if (static_density (r, f * f, function_a) == FALSE) return r; + if (static_density (r, f, function_a) == FALSE) return r; } return GAMGI_CHEM_ORBITAL_R_MAX; diff -Nru gamgi-0.16.8/src/chem/gamgi_chem_orbital.h gamgi-0.17/src/chem/gamgi_chem_orbital.h --- gamgi-0.16.8/src/chem/gamgi_chem_orbital.h 2013-06-17 13:17:03.000000000 +0000 +++ gamgi-0.17/src/chem/gamgi_chem_orbital.h 2013-11-15 16:35:00.000000000 +0000 @@ -86,7 +86,7 @@ static void static_angular (int l, int m, double *c, gamgi_angular *f); -static double static_density (double r, double value, gamgi_angular function_a); +static double static_density (double r, double f, gamgi_angular function_a); static void static_frame (gamgi_orbital *orbital); diff -Nru gamgi-0.16.8/src/engine/gamgi_engine.h gamgi-0.17/src/engine/gamgi_engine.h --- gamgi-0.16.8/src/engine/gamgi_engine.h 2013-06-16 18:31:42.000000000 +0000 +++ gamgi-0.17/src/engine/gamgi_engine.h 2013-12-18 23:58:44.000000000 +0000 @@ -184,7 +184,7 @@ gamgi_bool phase, frame; int octants[8]; -double axes; +gamgi_enum axes; /************** * array data * @@ -274,10 +274,10 @@ gamgi_object object; void (*draw) (struct _gamgi_direction *); -void (*projection) (double *, double *); +void (*net) (double *, double *); gamgi_enum reference; -gamgi_enum type; +gamgi_enum model; int uvw[3]; gamgi_enum vectors; @@ -310,10 +310,10 @@ gamgi_object object; void (*draw) (struct _gamgi_plane *); -void (*projection) (double *, double *); +void (*net) (double *, double *); gamgi_enum reference; -gamgi_enum type; +gamgi_enum model; int hkl[3]; gamgi_enum vectors; @@ -459,7 +459,7 @@ double p1[3], p2[3], p3[3]; double v1, v2, v3, v12, v13, v23; double reciprocal; -gamgi_enum lattice, type, borders; +gamgi_enum lattice, model, borders; gamgi_bool faces, nodes; int group, n1, n2, n3; @@ -828,9 +828,9 @@ /********** enumerations ********** **********************************/ -/************************************************************ - * All GAMGI enumerations start at 1 and share FALSE for 0. * - ************************************************************/ +/************************************************************** + * All external enumerations start at 1 and share FALSE for 0 * + **************************************************************/ enum {GAMGI_ENGINE_HELP = 1, GAMGI_ENGINE_TEXT, GAMGI_ENGINE_ORBITAL, GAMGI_ENGINE_BOND, GAMGI_ENGINE_ATOM, GAMGI_ENGINE_DIRECTION, GAMGI_ENGINE_PLANE, diff -Nru gamgi-0.16.8/src/engine/gamgi_engine_copy_out.c gamgi-0.17/src/engine/gamgi_engine_copy_out.c --- gamgi-0.16.8/src/engine/gamgi_engine_copy_out.c 2013-06-15 18:43:23.000000000 +0000 +++ gamgi-0.17/src/engine/gamgi_engine_copy_out.c 2013-12-18 23:59:00.000000000 +0000 @@ -217,10 +217,10 @@ int i; static_copy (GAMGI_CAST_OBJECT direction, GAMGI_CAST_OBJECT direction_new); -direction_new->projection = direction->projection; +direction_new->net = direction->net; direction_new->draw = direction->draw; direction_new->reference = direction->reference; -direction_new->type = direction->type; +direction_new->model = direction->model; /***************************** * copy description: indices * @@ -288,10 +288,10 @@ int i; static_copy (GAMGI_CAST_OBJECT plane, GAMGI_CAST_OBJECT plane_new); -plane_new->projection = plane->projection; +plane_new->net = plane->net; plane_new->draw = plane->draw; plane_new->reference = plane->reference; -plane_new->type = plane->type; +plane_new->model = plane->model; /***************************** * copy description: indices * @@ -578,7 +578,7 @@ * copy volume data: number of cells, volume parameters * ********************************************************/ -cell_new->type = cell->type; +cell_new->model = cell->model; cell_new->n1 = cell->n1; cell_new->n2 = cell->n2; diff -Nru gamgi-0.16.8/src/engine/gamgi_engine_start.c gamgi-0.17/src/engine/gamgi_engine_start.c --- gamgi-0.16.8/src/engine/gamgi_engine_start.c 2013-06-15 18:43:49.000000000 +0000 +++ gamgi-0.17/src/engine/gamgi_engine_start.c 2013-12-18 23:59:23.000000000 +0000 @@ -120,7 +120,7 @@ orbital->phase = FALSE; orbital->frame = FALSE; for (i = 0; i < 8; i++) orbital->octants[i] = 0; -orbital->axes = 0.0; +orbital->axes = FALSE; orbital->dots[0] = 0; orbital->dots[1] = 0; @@ -260,8 +260,8 @@ direction->quaternion[3] = 1.0; direction->draw = NULL; -direction->projection = NULL; -direction->type = FALSE; +direction->net = NULL; +direction->model = FALSE; direction->points = NULL; direction->loops = NULL; @@ -312,8 +312,8 @@ plane->quaternion[3] = 1.0; plane->draw = NULL; -plane->projection = NULL; -plane->type = FALSE; +plane->net = NULL; +plane->model = FALSE; plane->points = NULL; plane->loops = NULL; @@ -501,7 +501,7 @@ cell->quaternion[2] = 0.0; cell->quaternion[3] = 1.0; -cell->type = FALSE; +cell->model = FALSE; cell->n1 = 1; cell->n2 = 1; diff -Nru gamgi-0.16.8/src/expat/gamgi_expat_export.c gamgi-0.17/src/expat/gamgi_expat_export.c --- gamgi-0.16.8/src/expat/gamgi_expat_export.c 2011-07-15 18:01:53.000000000 +0000 +++ gamgi-0.17/src/expat/gamgi_expat_export.c 2013-12-18 22:55:04.000000000 +0000 @@ -949,7 +949,7 @@ * write cdata: each point has 3 coordinates x,y,z * ***************************************************/ -if (plane->type == GAMGI_PHYS_POLYGON) +if (plane->model == GAMGI_PHYS_POLYGON) { static_cdata ("points", "double", 3 * plane->n_points, plane->points, window, fp, depth, depth_last, error); diff -Nru gamgi-0.16.8/src/expat/gamgi_expat_export_config.c gamgi-0.17/src/expat/gamgi_expat_export_config.c --- gamgi-0.16.8/src/expat/gamgi_expat_export_config.c 2009-11-22 15:49:21.000000000 +0000 +++ gamgi-0.17/src/expat/gamgi_expat_export_config.c 2013-12-15 23:08:12.000000000 +0000 @@ -355,7 +355,7 @@ if (fabs (atom_class->temperature - GAMGI_CHEM_ATOM_TEMPERATURE) > GAMGI_MATH_TOLERANCE) { sprintf (string, "temperature=\"%.*f\"", - GAMGI_MATH_DECIMAL_TEMPERATURE, atom_class->temperature); + GAMGI_MATH_DECIMAL_OCCUPANCY, atom_class->temperature); gamgi_expat_export_element (fp, "axes > 0.0) - { - sprintf (string, "axes=\"%.*f\"", gamgi->gamgi->length, orbital->axes); - gamgi_expat_export_attribute (fp, string, depth, column, error); - } +if (orbital->axes == GAMGI_CHEM_UNIT) + gamgi_expat_export_attribute (fp, "axes=\"unit\"", depth, column, error); +else if (orbital->axes == GAMGI_CHEM_BOHR) + gamgi_expat_export_attribute (fp, "axes=\"bohr\"", depth, column, error); +else if (orbital->axes == GAMGI_CHEM_RADIUS) + gamgi_expat_export_attribute (fp, "axes=\"radius\"", depth, column, error); /************************************* * origin: x,y,z (optional, coupled) * @@ -664,7 +665,7 @@ if (fabs (atom->temperature - gamgi->atom->temperature) > GAMGI_MATH_TOLERANCE) { sprintf (string, "temperature=\"%.*f\"", - GAMGI_MATH_DECIMAL_TEMPERATURE, atom->temperature); + GAMGI_MATH_DECIMAL_OCCUPANCY, atom->temperature); gamgi_expat_export_attribute (fp, string, depth, column, error); } @@ -807,17 +808,16 @@ gamgi_expat_export_attribute (fp, string, depth, column, error); } - /************************* - * projection (optional) * - *************************/ + /***************************** + * projection net (optional) * + *****************************/ - if (direction->projection != NULL && - direction->projection != GAMGI_PHYS_CELL_PROJECTION) + if (direction->net != NULL && direction->net != GAMGI_PHYS_PROJECTION_NET) { - if (direction->projection == gamgi_phys_projection_wulff) - sprintf (string, "projection=\"wulff\""); - if (direction->projection == gamgi_phys_projection_schmidt) - sprintf (string, "projection=\"schmidt\""); + if (direction->net == gamgi_phys_projection_wulff) + sprintf (string, "net=\"wulff\""); + if (direction->net == gamgi_phys_projection_schmidt) + sprintf (string, "net=\"schmidt\""); gamgi_expat_export_attribute (fp, string, depth, column, error); } @@ -826,9 +826,9 @@ * pole is default for 2D projection * *************************************/ - if (direction->type == GAMGI_PHYS_TRACE) + if (direction->model == GAMGI_PHYS_TRACE) { - sprintf (string, "type=\"trace\""); + sprintf (string, "model=\"trace\""); gamgi_expat_export_attribute (fp, string, depth, column, error); } @@ -872,7 +872,7 @@ * initial,final x,y,z points (required, coupled) * **************************************************/ -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) { sprintf (string, "begin_x=\"%.*f\"", gamgi->gamgi->length, direction->points[0]); gamgi_expat_export_attribute (fp, string, depth, column, error); @@ -1060,16 +1060,16 @@ gamgi_expat_export_attribute (fp, string, depth, column, error); } - /************************* - * projection (optional) * - *************************/ + /***************************** + * projection net (optional) * + *****************************/ - if (plane->projection != NULL && plane->projection != GAMGI_PHYS_CELL_PROJECTION) + if (plane->net != NULL && plane->net != GAMGI_PHYS_PROJECTION_NET) { - if (plane->projection == gamgi_phys_projection_wulff) - sprintf (string, "projection=\"wulff\""); - if (plane->projection == gamgi_phys_projection_schmidt) - sprintf (string, "projection=\"schmidt\""); + if (plane->net == gamgi_phys_projection_wulff) + sprintf (string, "net=\"wulff\""); + if (plane->net == gamgi_phys_projection_schmidt) + sprintf (string, "net=\"schmidt\""); gamgi_expat_export_attribute (fp, string, depth, column, error); } @@ -1078,15 +1078,15 @@ * pole is default for 2D projection * *************************************/ - if (plane->type == GAMGI_PHYS_TRACE) + if (plane->model == GAMGI_PHYS_TRACE) { - sprintf (string, "type=\"trace\""); + sprintf (string, "model=\"trace\""); gamgi_expat_export_attribute (fp, string, depth, column, error); } - if (plane->type == GAMGI_PHYS_VECTOR) + if (plane->model == GAMGI_PHYS_VECTOR) { - sprintf (string, "type=\"vector\""); + sprintf (string, "model=\"vector\""); gamgi_expat_export_attribute (fp, string, depth, column, error); } @@ -1606,24 +1606,24 @@ * volume (optional) * *********************/ -if (cell->type != GAMGI_PHYS_CONVENTIONAL) +if (cell->model != GAMGI_PHYS_CONVENTIONAL) { - if (cell->type == GAMGI_PHYS_PRIMITIVE) - sprintf (string, "type=\"%s\"", "primitive"); - else if (cell->type == GAMGI_PHYS_WIGNER) - sprintf (string, "type=\"%s\"", "wigner"); - else if (cell->type == GAMGI_PHYS_PARALLELEPIPED) - sprintf (string, "type=\"%s\"", "parallelepiped"); - else if (cell->type == GAMGI_PHYS_SPHERE) - sprintf (string, "type=\"%s\"", "sphere"); - else if (cell->type == GAMGI_PHYS_PROJECTION) - sprintf (string, "type=\"%s\"", "projection"); + if (cell->model == GAMGI_PHYS_PRIMITIVE) + sprintf (string, "model=\"%s\"", "primitive"); + else if (cell->model == GAMGI_PHYS_WIGNER) + sprintf (string, "model=\"%s\"", "wigner"); + else if (cell->model == GAMGI_PHYS_PARALLELEPIPED) + sprintf (string, "model=\"%s\"", "parallelepiped"); + else if (cell->model == GAMGI_PHYS_SPHERE) + sprintf (string, "model=\"%s\"", "sphere"); + else if (cell->model == GAMGI_PHYS_PROJECTION) + sprintf (string, "model=\"%s\"", "projection"); gamgi_expat_export_attribute (fp, string, depth, column, error); } -if ((cell->type == GAMGI_PHYS_CONVENTIONAL -|| cell->type == GAMGI_PHYS_PRIMITIVE -|| cell->type == GAMGI_PHYS_WIGNER) && +if ((cell->model == GAMGI_PHYS_CONVENTIONAL +|| cell->model == GAMGI_PHYS_PRIMITIVE +|| cell->model == GAMGI_PHYS_WIGNER) && (cell->n1 != 1 || cell->n2 != 1 || cell->n3 != 1)) { /******************************** @@ -1638,8 +1638,8 @@ gamgi_expat_export_attribute (fp, string, depth, column, error); } -if (cell->type == GAMGI_PHYS_PARALLELEPIPED -|| cell->type == GAMGI_PHYS_SPHERE) +if (cell->model == GAMGI_PHYS_PARALLELEPIPED +|| cell->model == GAMGI_PHYS_SPHERE) { /***************** * v1 (required) * @@ -1649,7 +1649,7 @@ gamgi_expat_export_attribute (fp, string, depth, column, error); } -if (cell->type == GAMGI_PHYS_PARALLELEPIPED) +if (cell->model == GAMGI_PHYS_PARALLELEPIPED) { /******************************** * v2,v3,v12,v13,v23 (required) * @@ -1671,7 +1671,7 @@ * nodes,faces,borders (optional) * **********************************/ -if (cell->nodes == FALSE && cell->type != GAMGI_PHYS_PROJECTION) +if (cell->nodes == FALSE && cell->model != GAMGI_PHYS_PROJECTION) gamgi_expat_export_attribute (fp, "nodes=\"no\"", depth, column, error); if (cell->faces == TRUE) @@ -1680,8 +1680,8 @@ if (cell->borders == FALSE) gamgi_expat_export_attribute (fp, "borders=\"none\"", depth, column, error); -if (cell->borders == GAMGI_PHYS_EDGES && cell->type != GAMGI_PHYS_PARALLELEPIPED -&& cell->type != GAMGI_PHYS_SPHERE && cell->type != GAMGI_PHYS_PROJECTION) +else if (cell->borders == GAMGI_PHYS_EDGES && cell->model != GAMGI_PHYS_PARALLELEPIPED +&& cell->model != GAMGI_PHYS_SPHERE && cell->model != GAMGI_PHYS_PROJECTION) gamgi_expat_export_attribute (fp, "borders=\"edges\"", depth, column, error); else if (cell->borders == GAMGI_PHYS_FACES && cell->faces == FALSE) diff -Nru gamgi-0.16.8/src/expat/gamgi_expat_import.c gamgi-0.17/src/expat/gamgi_expat_import.c --- gamgi-0.16.8/src/expat/gamgi_expat_import.c 2012-02-11 19:52:57.000000000 +0000 +++ gamgi-0.17/src/expat/gamgi_expat_import.c 2013-12-19 00:18:16.000000000 +0000 @@ -491,13 +491,13 @@ **************************/ cell = GAMGI_CAST_CELL object->object; - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { - gamgi_phys_projection_create (plane->type, &plane->points, + gamgi_phys_projection_create (plane->model, &plane->points, &plane->n_points, &plane->loops, &plane->n_loops); gamgi_mesa_rotate_out_plane (plane, NULL, NULL, NULL); } - if (plane->type == GAMGI_PHYS_VECTOR) + if (plane->model == GAMGI_PHYS_VECTOR) gamgi_phys_reciprocal_points (plane); } break; @@ -512,9 +512,9 @@ ******************************/ cell = GAMGI_CAST_CELL object->object; - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { - gamgi_phys_projection_create (direction->type, &direction->points, + gamgi_phys_projection_create (direction->model, &direction->points, &direction->n_points, &direction->loops, &direction->n_loops); gamgi_mesa_rotate_out_direction (direction, NULL, NULL, NULL); } @@ -1307,32 +1307,32 @@ if (parent->class != GAMGI_ENGINE_CELL) { - if (plane->type == FALSE) plane->type = GAMGI_PHYS_POLYGON; + if (plane->model == FALSE) plane->model = GAMGI_PHYS_POLYGON; - if (plane->type != GAMGI_PHYS_POLYGON) + if (plane->model != GAMGI_PHYS_POLYGON) return gamgi_io_error_child (filename, fileline, gml->ml.window); - if (plane->projection != NULL) + if (plane->net != NULL) return gamgi_io_error_child (filename, fileline, gml->ml.window); return TRUE; } cell = GAMGI_CAST_CELL parent; -if (cell->type == GAMGI_PHYS_PROJECTION) +if (cell->model == GAMGI_PHYS_PROJECTION) { /**************************************** * stereographic projection: show the * * pole and Wulff projection by default * ****************************************/ - if (plane->type == GAMGI_PHYS_POLYGON || plane->type == GAMGI_PHYS_VECTOR) + if (plane->model == GAMGI_PHYS_POLYGON || plane->model == GAMGI_PHYS_VECTOR) return gamgi_io_error_child (filename, fileline, gml->ml.window); - if (plane->projection == NULL) - plane->projection = GAMGI_PHYS_CELL_PROJECTION; + if (plane->net == NULL) + plane->net = GAMGI_PHYS_PROJECTION_NET; - if (plane->type == FALSE) plane->type = GAMGI_PHYS_POLE; + if (plane->model == FALSE) plane->model = GAMGI_PHYS_POLE; } else { @@ -1340,16 +1340,16 @@ * real plane: show polygon; reciprocal lattice vector: show cross * *******************************************************************/ - if (plane->type == GAMGI_PHYS_POLE || plane->type == GAMGI_PHYS_TRACE) + if (plane->model == GAMGI_PHYS_POLE || plane->model == GAMGI_PHYS_TRACE) return gamgi_io_error_child (filename, fileline, gml->ml.window); - if (plane->projection != NULL) + if (plane->net != NULL) return gamgi_io_error_child (filename, fileline, gml->ml.window); - if (plane->type == GAMGI_PHYS_VECTOR && cell->reciprocal == 0.0) + if (plane->model == GAMGI_PHYS_VECTOR && cell->reciprocal == 0.0) return gamgi_io_error_child (filename, fileline, gml->ml.window); - if (plane->type == FALSE) plane->type = GAMGI_PHYS_POLYGON; + if (plane->model == FALSE) plane->model = GAMGI_PHYS_POLYGON; } return TRUE; @@ -1373,12 +1373,12 @@ if (parent->class != GAMGI_ENGINE_CELL) { - if (direction->type == FALSE) direction->type = GAMGI_PHYS_LINE; + if (direction->model == FALSE) direction->model = GAMGI_PHYS_LINE; - if (direction->type != GAMGI_PHYS_LINE) + if (direction->model != GAMGI_PHYS_LINE) return gamgi_io_error_child (filename, fileline, gml->ml.window); - if (direction->projection != NULL) + if (direction->net != NULL) return gamgi_io_error_child (filename, fileline, gml->ml.window); return TRUE; @@ -1388,20 +1388,20 @@ if (gamgi_math_node_check (cell->lattice, direction->node[3]) == FALSE) return gamgi_io_error_child (filename, fileline, gml->ml.window); -if (cell->type == GAMGI_PHYS_PROJECTION) +if (cell->model == GAMGI_PHYS_PROJECTION) { /**************************************** * stereographic projection: show the * * pole and Wulff projection by default * ****************************************/ - if (direction->type == GAMGI_PHYS_LINE) + if (direction->model == GAMGI_PHYS_LINE) return gamgi_io_error_child (filename, fileline, gml->ml.window); - if (direction->projection == NULL) - direction->projection = GAMGI_PHYS_CELL_PROJECTION; + if (direction->net == NULL) + direction->net = GAMGI_PHYS_PROJECTION_NET; - if (direction->type == FALSE) direction->type = GAMGI_PHYS_POLE; + if (direction->model == FALSE) direction->model = GAMGI_PHYS_POLE; } else { @@ -1409,13 +1409,13 @@ * real direction: show line * *****************************/ - if (direction->type == GAMGI_PHYS_POLE || direction->type == GAMGI_PHYS_TRACE) + if (direction->model == GAMGI_PHYS_POLE || direction->model == GAMGI_PHYS_TRACE) return gamgi_io_error_child (filename, fileline, gml->ml.window); - if (direction->projection != NULL) + if (direction->net != NULL) return gamgi_io_error_child (filename, fileline, gml->ml.window); - if (direction->type == FALSE) direction->type = GAMGI_PHYS_LINE; + if (direction->model == FALSE) direction->model = GAMGI_PHYS_LINE; } return TRUE; diff -Nru gamgi-0.16.8/src/expat/gamgi_expat_import_object.c gamgi-0.17/src/expat/gamgi_expat_import_object.c --- gamgi-0.16.8/src/expat/gamgi_expat_import_object.c 2013-10-26 22:29:03.000000000 +0000 +++ gamgi-0.17/src/expat/gamgi_expat_import_object.c 2013-12-19 15:47:08.000000000 +0000 @@ -2767,11 +2767,11 @@ gml->ml.filename, fileline, gml->ml.window); } - /******** - * type * - ********/ + /********* + * model * + *********/ - else if (strcmp (attributes[i], "type") == 0) + else if (strcmp (attributes[i], "model") == 0) { if (gamgi_io_token_alpha_scan (attributes[i + 1], token, GAMGI_IO_TEXT, GAMGI_ENGINE_TOKEN) == FALSE) @@ -2779,17 +2779,17 @@ gml->ml.filename, fileline, gml->ml.window); if (strcmp (token, "conventional") == 0) - cell->type = GAMGI_PHYS_CONVENTIONAL; + cell->model = GAMGI_PHYS_CONVENTIONAL; else if (strcmp (token, "primitive") == 0) - cell->type = GAMGI_PHYS_PRIMITIVE; + cell->model = GAMGI_PHYS_PRIMITIVE; else if (strcmp (token, "wigner") == 0) - cell->type = GAMGI_PHYS_WIGNER; + cell->model = GAMGI_PHYS_WIGNER; else if (strcmp (token, "parallelepiped") == 0) - cell->type = GAMGI_PHYS_PARALLELEPIPED; + cell->model = GAMGI_PHYS_PARALLELEPIPED; else if (strcmp (token, "sphere") == 0) - cell->type = GAMGI_PHYS_SPHERE; + cell->model = GAMGI_PHYS_SPHERE; else if (strcmp (token, "projection") == 0) - cell->type = GAMGI_PHYS_PROJECTION; + cell->model = GAMGI_PHYS_PROJECTION; else return gamgi_io_error_value (attributes[i + 1], gml->ml.filename, fileline, gml->ml.window); @@ -3094,11 +3094,11 @@ * global: missing attributes * ******************************/ -if (cell->type == GAMGI_PHYS_PARALLELEPIPED && volume != 6) +if (cell->model == GAMGI_PHYS_PARALLELEPIPED && volume != 6) return gamgi_io_error_missing (gml->ml.filename, fileline, gml->ml.window); -if (cell->type == GAMGI_PHYS_SPHERE && cell->v1 == 0.0) +if (cell->model == GAMGI_PHYS_SPHERE && cell->v1 == 0.0) return gamgi_io_error_missing (gml->ml.filename, fileline, gml->ml.window); @@ -3147,7 +3147,7 @@ * two, or smaller than the difference of the other two * *********************************************************/ -if (cell->type == GAMGI_PHYS_PARALLELEPIPED) +if (cell->model == GAMGI_PHYS_PARALLELEPIPED) { if (cell->v12 + cell->v13 + cell->v23 > 360.0 - GAMGI_MATH_TOLERANCE_ANGLE) return gamgi_io_error_incompatible (gml->ml.filename, @@ -3166,18 +3166,18 @@ fileline, gml->ml.window); } -if (cell->type != GAMGI_PHYS_PARALLELEPIPED && -cell->type != GAMGI_PHYS_SPHERE && volume != 0) +if (cell->model != GAMGI_PHYS_PARALLELEPIPED && +cell->model != GAMGI_PHYS_SPHERE && volume != 0) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); -if (cell->type == GAMGI_PHYS_SPHERE && volume != 1) +if (cell->model == GAMGI_PHYS_SPHERE && volume != 1) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); -if (cell->type == GAMGI_PHYS_PARALLELEPIPED -|| cell->type == GAMGI_PHYS_SPHERE -|| cell->type == GAMGI_PHYS_PROJECTION) +if (cell->model == GAMGI_PHYS_PARALLELEPIPED +|| cell->model == GAMGI_PHYS_SPHERE +|| cell->model == GAMGI_PHYS_PROJECTION) { if (cell->borders == GAMGI_PHYS_ALL || cell->borders == GAMGI_PHYS_FACES) @@ -3193,7 +3193,7 @@ fileline, gml->ml.window); } -if (cell->type == GAMGI_PHYS_WIGNER) +if (cell->model == GAMGI_PHYS_WIGNER) { if (cell->lattice == GAMGI_PHYS_TRICLINIC_P || cell->lattice == GAMGI_PHYS_MONOCLINIC_P || @@ -3202,7 +3202,7 @@ fileline, gml->ml.window); } -if (cell->type == GAMGI_PHYS_PROJECTION) +if (cell->model == GAMGI_PHYS_PROJECTION) { if (cell->reciprocal != 0.0) return gamgi_io_error_incompatible (gml->ml.filename, @@ -3249,17 +3249,17 @@ if (position == 0) gamgi_math_vector_zero (origin); if (angle == 0) gamgi_math_vector_zero (euler); -if (cell->type == FALSE) - cell->type = GAMGI_PHYS_CONVENTIONAL; +if (cell->model == FALSE) + cell->model = GAMGI_PHYS_CONVENTIONAL; -if (nodes == 0 && cell->type != GAMGI_PHYS_PROJECTION) +if (nodes == 0 && cell->model != GAMGI_PHYS_PROJECTION) cell->nodes = TRUE; if (borders == 0) { - if (cell->type == GAMGI_PHYS_PARALLELEPIPED - || cell->type == GAMGI_PHYS_SPHERE - || cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PARALLELEPIPED + || cell->model == GAMGI_PHYS_SPHERE + || cell->model == GAMGI_PHYS_PROJECTION) cell->borders = GAMGI_PHYS_EDGES; else if (cell->faces == TRUE) cell->borders = GAMGI_PHYS_FACES; @@ -4167,7 +4167,7 @@ int fileline; plane = GAMGI_CAST_PLANE gml->ml.parent->data; -if (plane->type == GAMGI_PHYS_POLYGON) +if (plane->model == GAMGI_PHYS_POLYGON) { /****************************************** * used only in error messages: file line * @@ -4206,7 +4206,7 @@ int fileline, i; int parent = 0; int hkl = 0, color = 0, order = 0; -int vectors = 0, projection = 0; +int vectors = 0, net = 0; int position = 0, center = 0, angle = 0; unsigned int hash; @@ -4390,11 +4390,11 @@ gml->ml.filename, fileline, gml->ml.window); } - /******************* - * type (optional) * - *******************/ + /******************** + * model (optional) * + ********************/ - else if (strcmp (attributes[i], "type") == 0) + else if (strcmp (attributes[i], "model") == 0) { if (gamgi_io_token_alpha_scan (attributes[i + 1], token, GAMGI_IO_TEXT, GAMGI_ENGINE_TOKEN) == FALSE) @@ -4402,34 +4402,34 @@ gml->ml.filename, fileline, gml->ml.window); if (strcmp (token, "polygon") == 0) - plane->type = GAMGI_PHYS_POLYGON; + plane->model = GAMGI_PHYS_POLYGON; else if (strcmp (token, "trace") == 0) - plane->type = GAMGI_PHYS_TRACE; + plane->model = GAMGI_PHYS_TRACE; else if (strcmp (token, "pole") == 0) - plane->type = GAMGI_PHYS_POLE; + plane->model = GAMGI_PHYS_POLE; else if (strcmp (token, "vector") == 0) - plane->type = GAMGI_PHYS_VECTOR; + plane->model = GAMGI_PHYS_VECTOR; else return gamgi_io_error_value (attributes[i + 1], gml->ml.filename, fileline, gml->ml.window); } - /************************* - * projection (optional) * - *************************/ + /***************************** + * projection net (optional) * + *****************************/ - else if (strcmp (attributes[i], "projection") == 0) + else if (strcmp (attributes[i], "net") == 0) { - projection++; + net++; if (gamgi_io_token_alpha_scan (attributes[i + 1], token, GAMGI_IO_TEXT, GAMGI_ENGINE_TOKEN) == FALSE) return gamgi_io_error_value (attributes[i + 1], gml->ml.filename, fileline, gml->ml.window); if (strcmp (token, "wulff") == 0) - plane->projection = gamgi_phys_projection_wulff; + plane->net = gamgi_phys_projection_wulff; else if (strcmp (token, "schmidt") == 0) - plane->projection = gamgi_phys_projection_schmidt; + plane->net = gamgi_phys_projection_schmidt; else return gamgi_io_error_value (attributes[i + 1], gml->ml.filename, fileline, gml->ml.window); @@ -4610,20 +4610,20 @@ if (plane->reference == GAMGI_ENGINE_ATOM) { - if (hkl != 0 || vectors != 0 || projection != 0 || order != 0) + if (hkl != 0 || vectors != 0 || net != 0 || order != 0) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); - if (plane->type == GAMGI_PHYS_POLE || plane->type == GAMGI_PHYS_TRACE - || plane->type == GAMGI_PHYS_VECTOR) + if (plane->model == GAMGI_PHYS_POLE || plane->model == GAMGI_PHYS_TRACE + || plane->model == GAMGI_PHYS_VECTOR) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); - if (plane->projection != NULL) + if (plane->net != NULL) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); - if (plane->type == FALSE) plane->type = GAMGI_PHYS_POLYGON; + if (plane->model == FALSE) plane->model = GAMGI_PHYS_POLYGON; } if (parent == 0 && gamgi_expat_import_plane (plane, @@ -4700,7 +4700,7 @@ int parent = 0; int xyz = 0; int uvw = 0, color = 0; -int vectors = 0, projection = 0; +int vectors = 0, net = 0; int o123 = 0, o4 = 0; int position = 0, center = 0, angle = 0; unsigned int hash; @@ -4886,11 +4886,11 @@ gml->ml.filename, fileline, gml->ml.window); } - /******************* - * type (optional) * - *******************/ + /******************** + * model (optional) * + ********************/ - else if (strcmp (attributes[i], "type") == 0) + else if (strcmp (attributes[i], "model") == 0) { if (gamgi_io_token_alpha_scan (attributes[i + 1], token, GAMGI_IO_TEXT, GAMGI_ENGINE_TOKEN) == FALSE) @@ -4898,32 +4898,32 @@ gml->ml.filename, fileline, gml->ml.window); if (strcmp (token, "line") == 0) - direction->type = GAMGI_PHYS_LINE; + direction->model = GAMGI_PHYS_LINE; else if (strcmp (token, "trace") == 0) - direction->type = GAMGI_PHYS_TRACE; + direction->model = GAMGI_PHYS_TRACE; else if (strcmp (token, "pole") == 0) - direction->type = GAMGI_PHYS_POLE; + direction->model = GAMGI_PHYS_POLE; else return gamgi_io_error_value (attributes[i + 1], gml->ml.filename, fileline, gml->ml.window); } - /************************* - * projection (optional) * - *************************/ + /***************************** + * projection net (optional) * + *****************************/ - else if (strcmp (attributes[i], "projection") == 0) + else if (strcmp (attributes[i], "net") == 0) { - projection++; + net++; if (gamgi_io_token_alpha_scan (attributes[i + 1], token, GAMGI_IO_TEXT, GAMGI_ENGINE_TOKEN) == FALSE) return gamgi_io_error_value (attributes[i + 1], gml->ml.filename, fileline, gml->ml.window); if (strcmp (token, "wulff") == 0) - direction->projection = gamgi_phys_projection_wulff; + direction->net = gamgi_phys_projection_wulff; else if (strcmp (token, "schmidt") == 0) - direction->projection = gamgi_phys_projection_schmidt; + direction->net = gamgi_phys_projection_schmidt; else return gamgi_io_error_value (attributes[i + 1], gml->ml.filename, fileline, gml->ml.window); @@ -5219,33 +5219,33 @@ if (direction->reference == GAMGI_ENGINE_ATOM) { - if (uvw != 0 || vectors != 0 || projection != 0 || o123 != 0 || o4 != 0) + if (uvw != 0 || vectors != 0 || net != 0 || o123 != 0 || o4 != 0) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); - if (direction->type == GAMGI_PHYS_POLE || direction->type == GAMGI_PHYS_TRACE) + if (direction->model == GAMGI_PHYS_POLE || direction->model == GAMGI_PHYS_TRACE) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); - if (direction->projection != NULL) + if (direction->net != NULL) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); - if (direction->type == FALSE) direction->type = GAMGI_PHYS_LINE; + if (direction->model == FALSE) direction->model = GAMGI_PHYS_LINE; } if (xyz != 0 && xyz != 6) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); -if (xyz == 6 && direction->type == FALSE) direction->type = GAMGI_PHYS_LINE; -if (xyz == 0 && direction->type == FALSE) direction->type = GAMGI_PHYS_POLE; +if (xyz == 6 && direction->model == FALSE) direction->model = GAMGI_PHYS_LINE; +if (xyz == 0 && direction->model == FALSE) direction->model = GAMGI_PHYS_POLE; -if (xyz == 6 && direction->type != GAMGI_PHYS_LINE) +if (xyz == 6 && direction->model != GAMGI_PHYS_LINE) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); -if (xyz == 0 && direction->type == GAMGI_PHYS_LINE) +if (xyz == 0 && direction->model == GAMGI_PHYS_LINE) return gamgi_io_error_incompatible (gml->ml.filename, fileline, gml->ml.window); @@ -5298,7 +5298,7 @@ * be built only when the cell parent is known) * ************************************************/ -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) gamgi_phys_direction_line (direction, points); /********************************************************************* @@ -5540,7 +5540,7 @@ else if (strcmp (attributes[i], "temperature") == 0) { if (gamgi_io_token_double_scan (attributes[i + 1], &atom->temperature, - 0.0, DBL_MAX) == FALSE) + GAMGI_CHEM_ATOM_TEMPERATURE_MIN, GAMGI_CHEM_ATOM_TEMPERATURE_MAX) == FALSE) return gamgi_io_error_value (attributes[i + 1], gml->ml.filename, fileline, gml->ml.window); } @@ -6246,12 +6246,24 @@ else if (strcmp (attributes[i], "axes") == 0) { - if (gamgi_io_token_double_scan (attributes[i + 1], - &orbital->axes, GAMGI_MATH_TOLERANCE_LENGTH, DBL_MAX) == FALSE) + if (gamgi_io_token_alpha_scan (attributes[i + 1], token, + GAMGI_IO_TEXT, GAMGI_ENGINE_TOKEN) == FALSE) return gamgi_io_error_value (attributes[i + 1], gml->ml.filename, fileline, gml->ml.window); + + if (strcmp (token, "none") == 0) + orbital->axes = FALSE; + else if (strcmp (token, "unit") == 0) + orbital->axes = GAMGI_CHEM_UNIT; + else if (strcmp (token, "bohr") == 0) + orbital->axes = GAMGI_CHEM_BOHR; + else if (strcmp (token, "radius") == 0) + orbital->axes = GAMGI_CHEM_RADIUS; + + else return gamgi_io_error_value (attributes[i + 1], + gml->ml.filename, fileline, gml->ml.window); } - + /************************************* * origin: x,y,z (optional, coupled) * *************************************/ diff -Nru gamgi-0.16.8/src/gtk/assembly/gamgi_gtk_assembly_select.c gamgi-0.17/src/gtk/assembly/gamgi_gtk_assembly_select.c --- gamgi-0.16.8/src/gtk/assembly/gamgi_gtk_assembly_select.c 2010-11-13 21:29:17.000000000 +0000 +++ gamgi-0.17/src/gtk/assembly/gamgi_gtk_assembly_select.c 2013-11-22 21:01:24.000000000 +0000 @@ -580,7 +580,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -839,12 +838,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -862,12 +862,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/atom/gamgi_gtk_atom_config.c gamgi-0.17/src/gtk/atom/gamgi_gtk_atom_config.c --- gamgi-0.16.8/src/gtk/atom/gamgi_gtk_atom_config.c 2013-05-15 15:14:10.000000000 +0000 +++ gamgi-0.17/src/gtk/atom/gamgi_gtk_atom_config.c 2013-12-15 23:05:59.000000000 +0000 @@ -555,7 +555,7 @@ **************************/ entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_temperature"); -sprintf (token, "%.*f", GAMGI_MATH_DECIMAL_TEMPERATURE, atom_class->temperature); +sprintf (token, "%.*f", GAMGI_MATH_DECIMAL_OCCUPANCY, atom_class->temperature); gtk_entry_set_text (GTK_ENTRY (entry), token); /************************************ diff -Nru gamgi-0.16.8/src/gtk/atom/gamgi_gtk_atom_create.c gamgi-0.17/src/gtk/atom/gamgi_gtk_atom_create.c --- gamgi-0.16.8/src/gtk/atom/gamgi_gtk_atom_create.c 2013-09-01 19:36:05.000000000 +0000 +++ gamgi-0.17/src/gtk/atom/gamgi_gtk_atom_create.c 2013-12-16 23:17:34.000000000 +0000 @@ -487,7 +487,8 @@ entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_temperature"); name = gtk_entry_get_text (GTK_ENTRY (entry)); -if (gamgi_io_token_double_scan (name, &atom->temperature, 0.0, DBL_MAX) == FALSE) +if (gamgi_io_token_double_scan (name, &atom->temperature, +GAMGI_CHEM_ATOM_TEMPERATURE_MIN, GAMGI_CHEM_ATOM_TEMPERATURE_MAX) == FALSE) { gamgi_gtk_dialog_message_create ("Error", "Invalid temperature", window); gamgi_engine_remove_atom (atom); @@ -700,7 +701,7 @@ ************************************/ entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_temperature"); -sprintf (token, "%.*f", GAMGI_MATH_DECIMAL_TEMPERATURE, atom_class->temperature); +sprintf (token, "%.*f", GAMGI_MATH_DECIMAL_OCCUPANCY, atom_class->temperature); gtk_entry_set_text (GTK_ENTRY (entry), token); entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_occupancy"); diff -Nru gamgi-0.16.8/src/gtk/atom/gamgi_gtk_atom_modify.c gamgi-0.17/src/gtk/atom/gamgi_gtk_atom_modify.c --- gamgi-0.16.8/src/gtk/atom/gamgi_gtk_atom_modify.c 2013-09-02 15:23:21.000000000 +0000 +++ gamgi-0.17/src/gtk/atom/gamgi_gtk_atom_modify.c 2013-12-16 23:19:18.000000000 +0000 @@ -579,7 +579,7 @@ *******************************/ entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_temperature"); -sprintf (string, "%.*f", GAMGI_MATH_DECIMAL_TEMPERATURE, atom->temperature); +sprintf (string, "%.*f", GAMGI_MATH_DECIMAL_OCCUPANCY, atom->temperature); gtk_entry_set_text (GTK_ENTRY (entry), string); entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_occupancy"); @@ -1754,8 +1754,8 @@ if (gamgi_io_token_check (name) == TRUE) { cache.new[STATIC_TEMPERATURE] = TRUE; - if (gamgi_io_token_double_scan (name, - &cache.temperature, 0.0, DBL_MAX) == FALSE) + if (gamgi_io_token_double_scan (name, &cache.temperature, + GAMGI_CHEM_ATOM_TEMPERATURE_MIN, GAMGI_CHEM_ATOM_TEMPERATURE_MAX) == FALSE) { gamgi_gtk_dialog_message_create ("Error", "Invalid temperature", window); return FALSE; diff -Nru gamgi-0.16.8/src/gtk/atom/gamgi_gtk_atom_select.c gamgi-0.17/src/gtk/atom/gamgi_gtk_atom_select.c --- gamgi-0.16.8/src/gtk/atom/gamgi_gtk_atom_select.c 2013-09-12 22:53:18.000000000 +0000 +++ gamgi-0.17/src/gtk/atom/gamgi_gtk_atom_select.c 2013-11-22 21:11:46.000000000 +0000 @@ -1420,7 +1420,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -1736,12 +1735,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -1759,12 +1759,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/bond/gamgi_gtk_bond_create.c gamgi-0.17/src/gtk/bond/gamgi_gtk_bond_create.c --- gamgi-0.16.8/src/gtk/bond/gamgi_gtk_bond_create.c 2012-10-05 18:40:29.000000000 +0000 +++ gamgi-0.17/src/gtk/bond/gamgi_gtk_bond_create.c 2013-12-16 22:13:27.000000000 +0000 @@ -177,7 +177,7 @@ gtk_entry_set_text (GTK_ENTRY (entry), ""); } -static void static_method (GtkWidget *widget, void *data) +static void static_model (GtkWidget *widget, void *data) { gamgi_window *window = GAMGI_CAST_WINDOW data; GtkWidget *dialog = window->dialog0; @@ -408,16 +408,16 @@ } /************************ - * determine the method * + * determine the model * * used to create bonds * ************************/ button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_atoms"); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)) == TRUE) { - /*************** - * pick method * - ***************/ + /************** + * pick model * + **************/ /************** * get atom 1 * @@ -574,7 +574,7 @@ /******************************************* * generate list with atoms in the current * - * object, for element and voronoi methods * + * object, for element and voronoi models * *******************************************/ atom_list = gamgi_engine_dlist_atom_object (window->focus, NULL); @@ -688,7 +688,7 @@ * hide Length page * ********************/ -static_method (NULL, window); +static_model (NULL, window); /************************************************************ * initialize dependent parameters: size and red,green,blue * @@ -848,12 +848,12 @@ g_object_set_data (G_OBJECT (dialog), "notebook", notebook); gtk_widget_show (notebook); -/*************** - * method page * - ***************/ +/************* + * Type page * + *************/ vbox_page = gtk_vbox_new (FALSE, 5); -label = gtk_label_new ("Method"); +label = gtk_label_new (" Type "); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox_page, label); gtk_container_set_border_width (GTK_CONTAINER (vbox_page), 10); gtk_widget_show (vbox_page); @@ -881,7 +881,7 @@ button = gtk_radio_button_new_with_label (NULL, "Atoms"); gtk_box_pack_start (GTK_BOX (hbox_left), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", -G_CALLBACK (static_method), window); +G_CALLBACK (static_model), window); g_object_set_data (G_OBJECT (dialog), "button_atoms", button); gtk_widget_show (button); @@ -889,7 +889,7 @@ gtk_radio_button_get_group (GTK_RADIO_BUTTON (button)), "Length"); gtk_box_pack_start (GTK_BOX (hbox_left), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", -G_CALLBACK (static_method), window); +G_CALLBACK (static_model), window); g_object_set_data (G_OBJECT (dialog), "button_length", button); gtk_widget_show (button); @@ -897,7 +897,7 @@ gtk_radio_button_get_group (GTK_RADIO_BUTTON (button)), "Delaunay"); gtk_box_pack_start (GTK_BOX (hbox_left), button, FALSE, FALSE, 0); g_signal_connect (button, "clicked", -G_CALLBACK (static_method), window); +G_CALLBACK (static_model), window); g_object_set_data (G_OBJECT (dialog), "button_voronoi", button); gtk_widget_show (button); diff -Nru gamgi-0.16.8/src/gtk/bond/gamgi_gtk_bond_create.h gamgi-0.17/src/gtk/bond/gamgi_gtk_bond_create.h --- gamgi-0.16.8/src/gtk/bond/gamgi_gtk_bond_create.h 2009-11-11 17:35:16.000000000 +0000 +++ gamgi-0.17/src/gtk/bond/gamgi_gtk_bond_create.h 2013-12-16 22:13:41.000000000 +0000 @@ -21,7 +21,7 @@ static void static_length (gamgi_window *window); -static void static_method (GtkWidget *widget, void *data); +static void static_model (GtkWidget *widget, void *data); static void static_reset (gamgi_window *window); diff -Nru gamgi-0.16.8/src/gtk/bond/gamgi_gtk_bond_modify.c gamgi-0.17/src/gtk/bond/gamgi_gtk_bond_modify.c --- gamgi-0.16.8/src/gtk/bond/gamgi_gtk_bond_modify.c 2011-05-10 15:47:35.000000000 +0000 +++ gamgi-0.17/src/gtk/bond/gamgi_gtk_bond_modify.c 2013-11-29 23:17:28.000000000 +0000 @@ -932,7 +932,7 @@ gtk_box_pack_start (GTK_BOX (vbox_top), hbox_center, FALSE, FALSE, 0); gtk_widget_show (hbox_center); -hbox_left = gtk_hbox_new (FALSE, 35); +hbox_left = gtk_hbox_new (FALSE, 15); gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); diff -Nru gamgi-0.16.8/src/gtk/bond/gamgi_gtk_bond_select.c gamgi-0.17/src/gtk/bond/gamgi_gtk_bond_select.c --- gamgi-0.16.8/src/gtk/bond/gamgi_gtk_bond_select.c 2013-05-15 14:28:51.000000000 +0000 +++ gamgi-0.17/src/gtk/bond/gamgi_gtk_bond_select.c 2013-11-22 21:16:56.000000000 +0000 @@ -196,40 +196,6 @@ gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (combo), 0); } -static void static_method_color (char *label, gamgi_window *window) -{ -GtkWidget *dialog = window->dialog0; -GtkWidget *widget; -GtkWidget *hbox; -GtkWidget *combo; -GtkListStore *store; -GtkCellRenderer *renderer; -GtkTreeIter iter; - -widget = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), label); -hbox = gtk_widget_get_parent (widget); -gtk_widget_destroy (widget); - -combo = gtk_combo_box_new (); -gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); -g_object_set_data (G_OBJECT (dialog), label, combo); -gtk_widget_show (combo); - -store = gtk_list_store_new (1, G_TYPE_STRING); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " Yes ", -1); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " No ", -1); -gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); -g_object_unref (store); - -renderer = gtk_cell_renderer_text_new (); -gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); -gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); - -gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); -} - static void static_method (GtkWidget *widget, void *data) { gamgi_window *window = GAMGI_CAST_WINDOW data; @@ -273,6 +239,11 @@ gamgi_gtk_select_method_direct ("widget_min", window); gamgi_gtk_select_method_direct ("widget_max", window); } +else if (strcmp (name, "Color") == 0) + { + gamgi_gtk_select_method_bool ("widget_min", window); + gamgi_gtk_select_method_bool ("widget_max", window); + } else if (strcmp (name, "Style") == 0) { static_method_style ("widget_min", window); @@ -283,11 +254,6 @@ static_method_size ("widget_min", window); static_method_size ("widget_max", window); } -else if (strcmp (name, "Color") == 0) - { - static_method_color ("widget_min", window); - static_method_color ("widget_max", window); - } else { gamgi_gtk_select_method_default ("widget_min", window); @@ -1061,7 +1027,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -1336,12 +1301,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -1359,12 +1325,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/bond/gamgi_gtk_bond_select.h gamgi-0.17/src/gtk/bond/gamgi_gtk_bond_select.h --- gamgi-0.16.8/src/gtk/bond/gamgi_gtk_bond_select.h 2011-07-01 16:35:02.000000000 +0000 +++ gamgi-0.17/src/gtk/bond/gamgi_gtk_bond_select.h 2013-11-03 00:30:14.000000000 +0000 @@ -25,8 +25,6 @@ static void static_method_size (char *label, gamgi_window *window); -static void static_method_color (char *label, gamgi_window *window); - static void static_method (GtkWidget *widget, void *data); static void static_reset (gamgi_window *window); diff -Nru gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_create.c gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_create.c --- gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_create.c 2012-10-28 18:03:11.000000000 +0000 +++ gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_create.c 2013-12-19 00:00:17.000000000 +0000 @@ -103,7 +103,7 @@ else sensitive[GAMGI_PHYS_ALL - 1] = TRUE; } -static void static_type (GtkWidget *widget, void *data) +static void static_model (GtkWidget *widget, void *data) { gamgi_window *window = GAMGI_CAST_WINDOW data; GtkWidget *dialog = window->dialog0; @@ -118,10 +118,10 @@ char token[GAMGI_ENGINE_TOKEN]; const char *name; gamgi_bool *sensitive; -int row_type, row_borders; +int row_model, row_borders; -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_type"); -row_type = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); +combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); +row_model = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); /******************************************* * set N1, N2, N3 entries and Faces button * @@ -137,8 +137,8 @@ button_faces = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_faces"); -if (row_type != GAMGI_PHYS_PARALLELEPIPED - 1 && -row_type != GAMGI_PHYS_SPHERE - 1 && row_type != GAMGI_PHYS_PROJECTION - 1) +if (row_model != GAMGI_PHYS_PARALLELEPIPED - 1 && +row_model != GAMGI_PHYS_SPHERE - 1 && row_model != GAMGI_PHYS_PROJECTION - 1) { /****************** * enable widgets * @@ -217,8 +217,8 @@ label_v13 = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "label_v13"); label_v23 = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "label_v23"); -if (row_type == GAMGI_PHYS_PARALLELEPIPED - 1 || -row_type == GAMGI_PHYS_SPHERE - 1) +if (row_model == GAMGI_PHYS_PARALLELEPIPED - 1 || +row_model == GAMGI_PHYS_SPHERE - 1) { /****************** * enable widgets * @@ -238,7 +238,7 @@ gtk_widget_set_sensitive (label_v1, FALSE); } -if (row_type == GAMGI_PHYS_PARALLELEPIPED - 1) +if (row_model == GAMGI_PHYS_PARALLELEPIPED - 1) { /****************** * enable widgets * @@ -291,8 +291,8 @@ button_nodes = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_nodes"); -if (row_type != GAMGI_PHYS_PARALLELEPIPED - 1 && -row_type != GAMGI_PHYS_SPHERE - 1 && row_type != GAMGI_PHYS_PROJECTION - 1) +if (row_model != GAMGI_PHYS_PARALLELEPIPED - 1 && +row_model != GAMGI_PHYS_SPHERE - 1 && row_model != GAMGI_PHYS_PROJECTION - 1) { /**************************** * enable Borders combo box * @@ -314,7 +314,7 @@ sensitive[GAMGI_PHYS_FACES - 1] = FALSE; } -if (row_type != GAMGI_PHYS_PROJECTION - 1) +if (row_model != GAMGI_PHYS_PROJECTION - 1) { /*********************** * enable Nodes button * @@ -637,16 +637,16 @@ return; } -/***************** - * get Type page * - *****************/ +/******************* + * get Volume page * + *******************/ -/******** - * Type * - ********/ +/********* + * Model * + *********/ -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_type"); -cell->type = 1 + gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); +combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); +cell->model = 1 + gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); /************** * N1, N2, N3 * @@ -756,7 +756,7 @@ * two, or smaller than the difference of the other two * *********************************************************/ -if (cell->type == GAMGI_PHYS_PARALLELEPIPED) +if (cell->model == GAMGI_PHYS_PARALLELEPIPED) { if (cell->v12 + cell->v13 + cell->v23 > 360.0 - GAMGI_MATH_TOLERANCE_ANGLE) { @@ -945,7 +945,7 @@ return; } -if (cell->type == GAMGI_PHYS_WIGNER && (cell->lattice == GAMGI_PHYS_TRICLINIC_P || +if (cell->model == GAMGI_PHYS_WIGNER && (cell->lattice == GAMGI_PHYS_TRICLINIC_P || cell->lattice == GAMGI_PHYS_MONOCLINIC_P || cell->lattice == GAMGI_PHYS_MONOCLINIC_C) ) { gamgi_gtk_dialog_message_create ("Error", "Sorry, not supported yet", window); @@ -997,9 +997,9 @@ * Borders, Faces, Nodes in the View page are also modified * ************************************************************/ -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_type"); +combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), GAMGI_PHYS_CONVENTIONAL - 1); -static_type (NULL, window); +static_model (NULL, window); /*********************** * start Position page * @@ -1247,9 +1247,9 @@ gtk_box_pack_start (GTK_BOX (vbox_center), vbox_top, FALSE, FALSE, 0); gtk_widget_show (vbox_top); -/****************** - * Type combo box * - ******************/ +/******************* + * Model combo box * + *******************/ hbox_center = gtk_hbox_new (TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox_top), hbox_center, FALSE, FALSE, 0); @@ -1259,14 +1259,14 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -label = gtk_label_new ("Type"); +label = gtk_label_new ("Model"); gtk_box_pack_start (GTK_BOX (hbox_left), label, FALSE, FALSE, 0); gtk_widget_show (label); combo = gtk_combo_box_new (); gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); -g_signal_connect (combo, "changed", G_CALLBACK (static_type), window); -g_object_set_data (G_OBJECT (dialog), "combo_type", combo); +g_signal_connect (combo, "changed", G_CALLBACK (static_model), window); +g_object_set_data (G_OBJECT (dialog), "combo_model", combo); gtk_widget_show (combo); store = gtk_list_store_new (1, G_TYPE_STRING); diff -Nru gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_create.h gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_create.h --- gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_create.h 2009-11-11 16:27:39.000000000 +0000 +++ gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_create.h 2013-12-18 20:59:00.000000000 +0000 @@ -19,7 +19,7 @@ static void static_faces (GtkWidget *widget, void *data); -static void static_volume (GtkWidget *widget, void *data); +static void static_model (GtkWidget *widget, void *data); static void static_button (GtkWidget *dialog, char *string); diff -Nru gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_link.c gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_link.c --- gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_link.c 2012-10-28 21:23:10.000000000 +0000 +++ gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_link.c 2013-12-19 00:02:12.000000000 +0000 @@ -355,16 +355,16 @@ { GtkWidget *dialog = window->dialog0; GtkWidget *button_p, *button_i, *button_a, *button_b, *button_c, *button_r; -gamgi_enum lattice, type; +gamgi_enum lattice, model; -/***************************** - * get cell lattice and type * - *****************************/ +/****************************** + * get cell lattice and model * + ******************************/ if (cell == NULL) - { lattice = FALSE; type = FALSE; } + { lattice = FALSE; model = FALSE; } else - { lattice = cell->lattice; type = cell->type; } + { lattice = cell->lattice; model = cell->model; } /*********************************** * get buttons for occupancy nodes * @@ -451,7 +451,7 @@ * this cell type really requires them) are set insensitive * ************************************************************/ -if (type != GAMGI_PHYS_CONVENTIONAL) +if (model != GAMGI_PHYS_CONVENTIONAL) { gtk_widget_set_sensitive (button_p, FALSE); gtk_widget_set_sensitive (button_i, FALSE); @@ -1542,7 +1542,7 @@ double translation[3]; gamgi_bool nodes[6]; -if (cell->type == GAMGI_PHYS_PROJECTION) +if (cell->model == GAMGI_PHYS_PROJECTION) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", "Invalid cell type", window); @@ -1598,7 +1598,7 @@ { GtkWidget *text, *dialog; -if (cell->type == GAMGI_PHYS_PROJECTION) +if (cell->model == GAMGI_PHYS_PROJECTION) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", "Invalid cell type", window); diff -Nru gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_modify.c gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_modify.c --- gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_modify.c 2011-08-23 18:52:00.000000000 +0000 +++ gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_modify.c 2013-12-19 00:02:48.000000000 +0000 @@ -43,7 +43,7 @@ #include "gamgi_global_selection.h" enum { STATIC_NAME = 0, STATIC_LATTICE_GROUP, STATIC_A, STATIC_B, -STATIC_C, STATIC_AB, STATIC_AC, STATIC_BC, STATIC_TYPE, STATIC_N1, STATIC_N2, +STATIC_C, STATIC_AB, STATIC_AC, STATIC_BC, STATIC_MODEL, STATIC_N1, STATIC_N2, STATIC_N3, STATIC_V1, STATIC_V2, STATIC_V3, STATIC_V12, STATIC_V13, STATIC_V23, STATIC_O1, STATIC_O2, STATIC_O3, STATIC_O4, STATIC_ORIGIN_VECTORS, STATIC_AXES, STATIC_AXES_VECTORS, STATIC_TRANSLATION_X, STATIC_TRANSLATION_Y, @@ -57,7 +57,7 @@ char name[GAMGI_ENGINE_TOKEN]; int lattice, group; double a, b, c, ab, ac, bc; -gamgi_enum type; +gamgi_enum model; int n1, n2, n3; double v1, v2, v3, v12, v13, v23; int o1, o2, o3; @@ -225,7 +225,7 @@ * enable Borders combo box * ****************************/ - combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_type"); + combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); row = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); if (row != GAMGI_PHYS_PARALLELEPIPED - 1 && row != GAMGI_PHYS_SPHERE - 1 && row != GAMGI_PHYS_PROJECTION - 1) @@ -233,7 +233,7 @@ } } -static void static_type (GtkWidget *widget, void *data) +static void static_model (GtkWidget *widget, void *data) { gamgi_window *window = GAMGI_CAST_WINDOW data; GtkWidget *dialog = window->dialog0; @@ -248,11 +248,11 @@ GtkWidget *combo_faces, *combo_nodes, *combo_borders; char token[GAMGI_ENGINE_TOKEN]; const char *name; -int row_type, row_faces, row_borders; +int row_model, row_faces, row_borders; gamgi_bool *sensitive; -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_type"); -row_type = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); +combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); +row_model = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); /********************************************** * set N1, N2, N3 entries and Faces combo box * @@ -270,8 +270,8 @@ combo_faces = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_faces"); row_faces = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_faces)); -if (row_type == GAMGI_PHYS_CONVENTIONAL - 1 || -row_type == GAMGI_PHYS_PRIMITIVE - 1 || row_type == GAMGI_PHYS_WIGNER - 1) +if (row_model == GAMGI_PHYS_CONVENTIONAL - 1 || +row_model == GAMGI_PHYS_PRIMITIVE - 1 || row_model == GAMGI_PHYS_WIGNER - 1) { name = gtk_entry_get_text (GTK_ENTRY (entry_n1)); if (gamgi_io_token_check (name) == FALSE) @@ -299,8 +299,8 @@ gtk_entry_set_text (GTK_ENTRY (entry_n3), ""); } -if (row_type != GAMGI_PHYS_PARALLELEPIPED - 1 && -row_type != GAMGI_PHYS_SPHERE - 1 && row_type != GAMGI_PHYS_PROJECTION - 1) +if (row_model != GAMGI_PHYS_PARALLELEPIPED - 1 && +row_model != GAMGI_PHYS_SPHERE - 1 && row_model != GAMGI_PHYS_PROJECTION - 1) { /****************** * enable widgets * @@ -353,14 +353,14 @@ label_v13 = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "label_v13"); label_v23 = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "label_v23"); -if (row_type != GAMGI_PHYS_PARALLELEPIPED - 1 && -row_type != GAMGI_PHYS_SPHERE - 1) +if (row_model != GAMGI_PHYS_PARALLELEPIPED - 1 && +row_model != GAMGI_PHYS_SPHERE - 1) gtk_entry_set_text (GTK_ENTRY (entry_v1), ""); -if (row_type == GAMGI_PHYS_CONVENTIONAL - 1 || -row_type == GAMGI_PHYS_PRIMITIVE - 1 || -row_type == GAMGI_PHYS_WIGNER - 1 || -row_type == GAMGI_PHYS_PROJECTION - 1) +if (row_model == GAMGI_PHYS_CONVENTIONAL - 1 || +row_model == GAMGI_PHYS_PRIMITIVE - 1 || +row_model == GAMGI_PHYS_WIGNER - 1 || +row_model == GAMGI_PHYS_PROJECTION - 1) { /****************** * disable widget * @@ -379,7 +379,7 @@ gtk_widget_set_sensitive (entry_v1, TRUE); } -if (row_type != GAMGI_PHYS_PARALLELEPIPED - 1) +if (row_model != GAMGI_PHYS_PARALLELEPIPED - 1) { /********************** * initialize widgets * @@ -392,7 +392,7 @@ gtk_entry_set_text (GTK_ENTRY (entry_v23), ""); } -if (row_type == GAMGI_PHYS_PARALLELEPIPED - 1 || row_type == 6) +if (row_model == GAMGI_PHYS_PARALLELEPIPED - 1 || row_model == 6) { /****************** * enable widgets * @@ -437,8 +437,8 @@ combo_borders = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_borders"); row_borders = gtk_combo_box_get_active (GTK_COMBO_BOX (combo_borders)); -if (row_type == GAMGI_PHYS_PARALLELEPIPED - 1 || -row_type == GAMGI_PHYS_SPHERE - 1 || row_type == GAMGI_PHYS_PROJECTION - 1) +if (row_model == GAMGI_PHYS_PARALLELEPIPED - 1 || +row_model == GAMGI_PHYS_SPHERE - 1 || row_model == GAMGI_PHYS_PROJECTION - 1) { /****************************** * disable Borders All, Faces * @@ -463,7 +463,7 @@ vbox_nodes = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "vbox_nodes"); combo_nodes = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_nodes"); -if (row_type == GAMGI_PHYS_PROJECTION - 1) +if (row_model == GAMGI_PHYS_PROJECTION - 1) { /***************** * disable Nodes * @@ -588,11 +588,11 @@ entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_bc"); gtk_entry_set_text (GTK_ENTRY (entry), ""); -/************************************************* - * clean Type page: Type, Cells, Lengths, Angles * - *************************************************/ +/**************************************************** + * clean Volume page: Model, Cells, Lengths, Angles * + ****************************************************/ -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_type"); +combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 6); entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_n1"); @@ -713,7 +713,7 @@ entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_scale"); gtk_entry_set_text (GTK_ENTRY (entry), ""); -static_type (NULL, window); +static_model (NULL, window); } /****************** internal function ************** @@ -872,14 +872,14 @@ } } -/******************************************************* - * volume: type, n1, n2, n3, v1, v2, v3, v12, v13, v23 * - *******************************************************/ +/******************************************************** + * volume: model, n1, n2, n3, v1, v2, v3, v12, v13, v23 * + ********************************************************/ -cache.new[STATIC_TYPE] = FALSE; -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_type"); +cache.new[STATIC_MODEL] = FALSE; +combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); row = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); -if (row < 6) { cache.new[STATIC_TYPE] = TRUE; cache.type = row + 1; } +if (row < 6) { cache.new[STATIC_MODEL] = TRUE; cache.model = row + 1; } cache.new[STATIC_N1] = FALSE; entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_n1"); @@ -1008,7 +1008,7 @@ } /****************************** - * translation: type, x, y, z * + * translation: mode, x, y, z * ******************************/ button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_translation_absolute"); @@ -1060,7 +1060,7 @@ } /****************************** - * rotation: type, e1, e2, e3 * + * rotation: mode, e1, e2, e3 * ******************************/ button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_rotation_absolute"); @@ -1303,7 +1303,7 @@ gamgi_enum origin_vectors, axes_vectors; gamgi_bool axes; int lattice, group; -int type, borders, nodes, faces; +int model, borders, nodes, faces; /************************* * import data from cell * @@ -1320,7 +1320,7 @@ ac = 0.0; bc = 0.0; -type = cell->type; +model = cell->model; n1 = cell->n1; n2 = cell->n2; n3 = cell->n3; @@ -1375,7 +1375,7 @@ if (cache.new[STATIC_AC] == TRUE) ac = cache.ac; if (cache.new[STATIC_BC] == TRUE) bc = cache.bc; -if (cache.new[STATIC_TYPE] == TRUE) type = cache.type; +if (cache.new[STATIC_MODEL] == TRUE) model = cache.model; if (cache.new[STATIC_N1] == TRUE) n1 = cache.n1; if (cache.new[STATIC_N2] == TRUE) n2 = cache.n2; if (cache.new[STATIC_N3] == TRUE) n3 = cache.n3; @@ -1426,7 +1426,7 @@ return FALSE; } -if (type == GAMGI_PHYS_PARALLELEPIPED) +if (model == GAMGI_PHYS_PARALLELEPIPED) { /********************************************************* * The three angles together must be smaller than 360, * @@ -1504,7 +1504,7 @@ return FALSE; } -if ((type == GAMGI_PHYS_PARALLELEPIPED || type == GAMGI_PHYS_SPHERE) +if ((model == GAMGI_PHYS_PARALLELEPIPED || model == GAMGI_PHYS_SPHERE) && (borders == GAMGI_PHYS_ALL || borders == GAMGI_PHYS_FACES)) { /************************************************************** @@ -1516,7 +1516,7 @@ return FALSE; } -if (type == GAMGI_PHYS_PROJECTION && borders != GAMGI_PHYS_EDGES) +if (model == GAMGI_PHYS_PROJECTION && borders != GAMGI_PHYS_EDGES) { /****************************************** * projection mode: borders must be edges * @@ -1527,7 +1527,7 @@ return FALSE; } -if (type == GAMGI_PHYS_PROJECTION && nodes == TRUE) +if (model == GAMGI_PHYS_PROJECTION && nodes == TRUE) { /***************************************** * projection mode: nodes must be hidden * @@ -1590,7 +1590,7 @@ cell->ac = ac; cell->bc = bc; -cell->type = type; +cell->model = model; cell->n1 = n1; cell->n2 = n2; cell->n3 = n3; @@ -1768,7 +1768,7 @@ * initialize combo boxes to Local * ***********************************/ -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_type"); +combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 6); combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_o4"); @@ -1862,9 +1862,9 @@ gamgi_gtk_cell_symmetry_press (cell, window); -/****************************************** - * set Type: Type, Cells, Lengths, Angles * - ******************************************/ +/********************************************* + * set Volume: Model, Cells, Lengths, Angles * + *********************************************/ entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_n1"); sprintf (string, "%d", cell->n1); @@ -1902,9 +1902,9 @@ sprintf (string, "%.*f", gamgi->gamgi->angle, cell->v23); gtk_entry_set_text (GTK_ENTRY (entry), string); -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_type"); -gtk_combo_box_set_active (GTK_COMBO_BOX (combo), cell->type - 1); -static_type (NULL, window); +combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); +gtk_combo_box_set_active (GTK_COMBO_BOX (combo), cell->model - 1); +static_model (NULL, window); /************************* * set Position: Lengths * @@ -2178,9 +2178,9 @@ gamgi_gtk_cell_symmetry (notebook, window); -/************************************ - * Volume page: Type, Length, Angle * - ************************************/ +/************************************* + * Volume page: Model, Length, Angle * + *************************************/ vbox_page = gtk_vbox_new (FALSE, 5); label = gtk_label_new ("Volume"); @@ -2188,9 +2188,9 @@ gtk_container_set_border_width (GTK_CONTAINER (vbox_page), 10); gtk_widget_show (vbox_page); -/**************** - * Type section * - ****************/ +/***************** + * Model section * + *****************/ vbox_center = gtk_vbox_new (TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox_page), vbox_center, TRUE, TRUE, 0); @@ -2200,9 +2200,9 @@ gtk_box_pack_start (GTK_BOX (vbox_center), vbox_top, FALSE, FALSE, 0); gtk_widget_show (vbox_top); -/****************** - * Type combo box * - ******************/ +/******************* + * Model combo box * + *******************/ hbox_center = gtk_hbox_new (TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox_top), hbox_center, FALSE, FALSE, 0); @@ -2212,14 +2212,14 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -label = gtk_label_new ("Type"); +label = gtk_label_new ("Model"); gtk_box_pack_start (GTK_BOX (hbox_left), label, FALSE, FALSE, 0); gtk_widget_show (label); combo = gtk_combo_box_new (); gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); -g_signal_connect (combo, "changed", G_CALLBACK (static_type), window); -g_object_set_data (G_OBJECT (dialog), "combo_type", combo); +g_signal_connect (combo, "changed", G_CALLBACK (static_model), window); +g_object_set_data (G_OBJECT (dialog), "combo_model", combo); gtk_widget_show (combo); store = gtk_list_store_new (1, G_TYPE_STRING); diff -Nru gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_modify.h gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_modify.h --- gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_modify.h 2010-09-17 18:39:03.000000000 +0000 +++ gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_modify.h 2013-12-18 21:09:35.000000000 +0000 @@ -27,7 +27,7 @@ static void static_faces (GtkWidget *widget, void *data); -static void static_volume (GtkWidget *widget, void *data); +static void static_model (GtkWidget *widget, void *data); static void static_button (GtkWidget *dialog, char *string); diff -Nru gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_remove.c gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_remove.c --- gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_remove.c 2011-05-11 16:02:41.000000000 +0000 +++ gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_remove.c 2013-12-18 23:02:19.000000000 +0000 @@ -149,7 +149,7 @@ { plane = GAMGI_CAST_PLANE dlist->data; dlist = dlist->next; - if (plane->type != GAMGI_PHYS_POLYGON) + if (plane->model != GAMGI_PHYS_POLYGON) { gamgi_engine_unlink_plane (plane); gamgi_engine_remove_plane (plane); } } @@ -160,7 +160,7 @@ { direction = GAMGI_CAST_DIRECTION dlist->data; dlist = dlist->next; - if (direction->type != GAMGI_PHYS_LINE) + if (direction->model != GAMGI_PHYS_LINE) { gamgi_engine_unlink_direction (direction); gamgi_engine_remove_direction (direction); } } diff -Nru gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_select.c gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_select.c --- gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_select.c 2013-05-15 14:29:07.000000000 +0000 +++ gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_select.c 2013-12-19 20:14:23.000000000 +0000 @@ -305,7 +305,7 @@ gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (combo), 0); } -static void static_method_type (char *label, gamgi_window *window) +static void static_method_model (char *label, gamgi_window *window) { GtkWidget *dialog = window->dialog0; GtkWidget *widget; @@ -391,40 +391,6 @@ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); } -static void static_method_axes (char *label, gamgi_window *window) -{ -GtkWidget *dialog = window->dialog0; -GtkWidget *widget; -GtkWidget *hbox; -GtkWidget *combo; -GtkListStore *store; -GtkCellRenderer *renderer; -GtkTreeIter iter; - -widget = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), label); -hbox = gtk_widget_get_parent (widget); -gtk_widget_destroy (widget); - -combo = gtk_combo_box_new (); -gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); -g_object_set_data (G_OBJECT (dialog), label, combo); -gtk_widget_show (combo); - -store = gtk_list_store_new (1, G_TYPE_STRING); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " Yes ", -1); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " No ", -1); -gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); -g_object_unref (store); - -renderer = gtk_cell_renderer_text_new (); -gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); -gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); - -gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); -} - static void static_method_borders (char *label, gamgi_window *window) { GtkWidget *dialog = window->dialog0; @@ -463,74 +429,6 @@ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); } -static void static_method_faces (char *label, gamgi_window *window) -{ -GtkWidget *dialog = window->dialog0; -GtkWidget *widget; -GtkWidget *hbox; -GtkWidget *combo; -GtkListStore *store; -GtkCellRenderer *renderer; -GtkTreeIter iter; - -widget = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), label); -hbox = gtk_widget_get_parent (widget); -gtk_widget_destroy (widget); - -combo = gtk_combo_box_new (); -gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); -g_object_set_data (G_OBJECT (dialog), label, combo); -gtk_widget_show (combo); - -store = gtk_list_store_new (1, G_TYPE_STRING); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " Yes ", -1); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " No ", -1); -gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); -g_object_unref (store); - -renderer = gtk_cell_renderer_text_new (); -gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); -gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); - -gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); -} - -static void static_method_nodes (char *label, gamgi_window *window) -{ -GtkWidget *dialog = window->dialog0; -GtkWidget *widget; -GtkWidget *hbox; -GtkWidget *combo; -GtkListStore *store; -GtkCellRenderer *renderer; -GtkTreeIter iter; - -widget = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), label); -hbox = gtk_widget_get_parent (widget); -gtk_widget_destroy (widget); - -combo = gtk_combo_box_new (); -gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); -g_object_set_data (G_OBJECT (dialog), label, combo); -gtk_widget_show (combo); - -store = gtk_list_store_new (1, G_TYPE_STRING); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " Yes ", -1); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " No ", -1); -gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); -g_object_unref (store); - -renderer = gtk_cell_renderer_text_new (); -gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); -gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); - -gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); -} - static void static_method (GtkWidget *widget, void *data) { gamgi_window *window = GAMGI_CAST_WINDOW data; @@ -569,6 +467,12 @@ gamgi_gtk_select_method_direct ("widget_min", window); gamgi_gtk_select_method_direct ("widget_max", window); } +else if (strcmp (name, "Faces") == 0 || strcmp (name, +"Nodes") == 0 || strcmp (name, "Axes") == 0) + { + gamgi_gtk_select_method_bool ("widget_min", window); + gamgi_gtk_select_method_bool ("widget_max", window); + } else if (strcmp (name, "System") == 0) { static_method_system ("widget_min", window); @@ -579,36 +483,21 @@ static_method_lattice ("widget_min", window); static_method_lattice ("widget_max", window); } -else if (strcmp (name, "Type") == 0) +else if (strcmp (name, "Model") == 0) { - static_method_type ("widget_min", window); - static_method_type ("widget_max", window); + static_method_model ("widget_min", window); + static_method_model ("widget_max", window); } else if (strcmp (name, "O4") == 0) { static_method_o4 ("widget_min", window); static_method_o4 ("widget_max", window); } -else if (strcmp (name, "Axes") == 0) - { - static_method_axes ("widget_min", window); - static_method_axes ("widget_max", window); - } else if (strcmp (name, "Borders") == 0) { static_method_borders ("widget_min", window); static_method_borders ("widget_max", window); } -else if (strcmp (name, "Faces") == 0) - { - static_method_faces ("widget_min", window); - static_method_faces ("widget_max", window); - } -else if (strcmp (name, "Nodes") == 0) - { - static_method_nodes ("widget_min", window); - static_method_nodes ("widget_max", window); - } else { gamgi_gtk_select_method_default ("widget_min", window); @@ -1131,13 +1020,13 @@ return dlist_new; } -static gamgi_dlist *static_ok_type (gamgi_dlist *dlist_old, +static gamgi_dlist *static_ok_model (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window) { gamgi_cell *cell; gamgi_dlist *dlist, *dlist_new; gamgi_bool condition; -gamgi_enum type; +gamgi_enum model; int min, max; /******************** @@ -1154,8 +1043,8 @@ for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) { cell = GAMGI_CAST_CELL dlist->data; - type = cell->type - 1; - condition = (type >= min && type <= max); + model = cell->model - 1; + condition = (model >= min && model <= max); if (condition != action) { @@ -2223,8 +2112,8 @@ else if (strcmp (name, "AB") == 0) dlist_new = static_ok_ab (dlist_old, action, window); -else if (strcmp (name, "Type") == 0) - dlist_new = static_ok_type (dlist_old, action, window); +else if (strcmp (name, "Model") == 0) + dlist_new = static_ok_model (dlist_old, action, window); else if (strcmp (name, "N1") == 0) dlist_new = static_ok_n1 (dlist_old, action, window); else if (strcmp (name, "N2") == 0) @@ -2445,7 +2334,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -2687,7 +2575,7 @@ gtk_tree_store_append (tree_store, &iter, NULL); gtk_tree_store_set (tree_store, &iter, 0, "Volume", -1); gtk_tree_store_append (tree_store, &child, &iter); -gtk_tree_store_set (tree_store, &child, 0, "Type", -1); +gtk_tree_store_set (tree_store, &child, 0, "Model", -1); gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "N1", -1); gtk_tree_store_append (tree_store, &child, &iter); @@ -2787,12 +2675,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -2810,12 +2699,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_select.h gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_select.h --- gamgi-0.16.8/src/gtk/cell/gamgi_gtk_cell_select.h 2010-09-07 17:56:30.000000000 +0000 +++ gamgi-0.17/src/gtk/cell/gamgi_gtk_cell_select.h 2013-12-19 20:12:35.000000000 +0000 @@ -33,18 +33,12 @@ static void static_method_lattice (char *label, gamgi_window *window); -static void static_method_type (char *label, gamgi_window *window); +static void static_method_model (char *label, gamgi_window *window); static void static_method_o4 (char *label, gamgi_window *window); -static void static_method_axes (char *label, gamgi_window *window); - static void static_method_borders (char *label, gamgi_window *window); -static void static_method_faces (char *label, gamgi_window *window); - -static void static_method_nodes (char *label, gamgi_window *window); - static void static_method (GtkWidget *widget, void *data); static void static_reset (gamgi_window *window); @@ -82,7 +76,7 @@ static gamgi_dlist *static_ok_ab (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window); -static gamgi_dlist *static_ok_type (gamgi_dlist *dlist_old, +static gamgi_dlist *static_ok_model (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window); static gamgi_dlist *static_ok_n1 (gamgi_dlist *dlist_old, diff -Nru gamgi-0.16.8/src/gtk/cluster/gamgi_gtk_cluster_select.c gamgi-0.17/src/gtk/cluster/gamgi_gtk_cluster_select.c --- gamgi-0.16.8/src/gtk/cluster/gamgi_gtk_cluster_select.c 2010-11-13 21:30:57.000000000 +0000 +++ gamgi-0.17/src/gtk/cluster/gamgi_gtk_cluster_select.c 2013-11-22 21:17:12.000000000 +0000 @@ -586,7 +586,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -849,12 +848,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -872,12 +872,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_create.c gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_create.c --- gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_create.c 2013-10-29 18:23:51.000000000 +0000 +++ gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_create.c 2013-12-19 00:06:42.000000000 +0000 @@ -217,7 +217,7 @@ cell = GAMGI_CAST_CELL gamgi_gtk_object_name_number (dialog, "entry_cell", GAMGI_ENGINE_CELL, window); -if (cell != NULL && cell->type == GAMGI_PHYS_PROJECTION) +if (cell != NULL && cell->model == GAMGI_PHYS_PROJECTION) { gtk_widget_hide (vbox_scope); gtk_widget_show (vbox_projection); @@ -265,7 +265,7 @@ cell = GAMGI_CAST_CELL gamgi_gtk_object_name_number (dialog, "entry_cell", GAMGI_ENGINE_CELL, window); -if (cell != NULL && cell->type != GAMGI_PHYS_PROJECTION) +if (cell != NULL && cell->model != GAMGI_PHYS_PROJECTION) static_nodes (cell, window); } @@ -597,14 +597,14 @@ GtkWidget *dialog = window->dialog0; GtkWidget *button; -/************************************ - * get projection: Wulff or Schmidt * - ************************************/ +/**************************************** + * get projection net: Wulff or Schmidt * + ****************************************/ -direction->projection = gamgi_phys_projection_wulff; +direction->net = gamgi_phys_projection_wulff; button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_schmidt"); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)) == TRUE) - direction->projection = gamgi_phys_projection_schmidt; + direction->net = gamgi_phys_projection_schmidt; /************************************ * get direction model: pole, trace * @@ -752,7 +752,7 @@ ****************************************/ if (static_ok_cell (direction, &cell, window) == FALSE) return; - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { if (static_ok_projection (direction, &pole, &trace, window) == FALSE) return; } @@ -792,7 +792,7 @@ ****************************************/ dlist = NULL; - if (cell->type != GAMGI_PHYS_PROJECTION) + if (cell->model != GAMGI_PHYS_PROJECTION) { dlist = gamgi_engine_dlist_atom_object (GAMGI_CAST_OBJECT cell, NULL); dlist = gamgi_engine_filter_atom (dlist, 0, filter, @@ -824,7 +824,7 @@ if (strcmp (direction->object.name, "") == 0) strcpy (direction->object.name, "Direction"); - direction->type = GAMGI_PHYS_LINE; + direction->model = GAMGI_PHYS_LINE; direction->vectors = GAMGI_PHYS_DIRECTION_VECTORS; parent = gamgi_phys_direction_parent (atom1, atom2, window); diff -Nru gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_link.c gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_link.c --- gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_link.c 2011-05-25 16:56:59.000000000 +0000 +++ gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_link.c 2013-12-18 23:03:08.000000000 +0000 @@ -426,7 +426,7 @@ gamgi_layer *layer_child, gamgi_layer *layer_parent, gamgi_window *window) { if (child->class == GAMGI_ENGINE_DIRECTION && -(GAMGI_CAST_DIRECTION child)->type != GAMGI_PHYS_LINE) +(GAMGI_CAST_DIRECTION child)->model != GAMGI_PHYS_LINE) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", diff -Nru gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_list.c gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_list.c --- gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_list.c 2013-10-29 18:13:05.000000000 +0000 +++ gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_list.c 2013-12-19 00:06:58.000000000 +0000 @@ -771,7 +771,7 @@ gamgi_cell *cell, gamgi_enum structure, gamgi_enum filter, double thickness, gamgi_dlist *dlist, gamgi_enum pole, gamgi_enum trace) { -if (cell->type == GAMGI_PHYS_PROJECTION) +if (cell->model == GAMGI_PHYS_PROJECTION) gamgi_phys_direction_projection (direction, cell, pole, trace); else gamgi_phys_direction_node (direction, diff -Nru gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_modify.c gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_modify.c --- gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_modify.c 2013-10-29 19:05:06.000000000 +0000 +++ gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_modify.c 2013-12-19 00:07:51.000000000 +0000 @@ -76,8 +76,8 @@ gamgi_enum structure, filter; double thickness; int node[4]; -gamgi_projection projection; -gamgi_enum type; +gamgi_net net; +gamgi_enum model; double translation[3], rotation[3]; float red, green, blue; double scale; } cache; @@ -604,7 +604,7 @@ "entry_cell", GAMGI_ENGINE_CELL, window); if (cell != NULL) { - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { gtk_widget_hide (vbox_scope); gtk_widget_hide (vbox_position); @@ -992,9 +992,9 @@ if (visible == TRUE && row < STATIC_NET_LOCAL) { cache.new[STATIC_NET] = TRUE; - cache.projection = NULL; - if (row == STATIC_NET_WULFF) cache.projection = gamgi_phys_projection_wulff; - if (row == STATIC_NET_SCHMIDT) cache.projection = gamgi_phys_projection_schmidt; + cache.net = NULL; + if (row == STATIC_NET_WULFF) cache.net = gamgi_phys_projection_wulff; + if (row == STATIC_NET_SCHMIDT) cache.net = gamgi_phys_projection_schmidt; } cache.new[STATIC_MODEL] = FALSE; @@ -1003,9 +1003,9 @@ if (visible == TRUE && row < STATIC_MODEL_LOCAL) { cache.new[STATIC_MODEL] = TRUE; - cache.type = FALSE; - if (row == STATIC_MODEL_POLE) cache.type = GAMGI_PHYS_POLE; - if (row == STATIC_MODEL_TRACE) cache.type = GAMGI_PHYS_TRACE; + cache.model = FALSE; + if (row == STATIC_MODEL_POLE) cache.model = GAMGI_PHYS_POLE; + if (row == STATIC_MODEL_TRACE) cache.model = GAMGI_PHYS_TRACE; } /********************************* @@ -1173,8 +1173,8 @@ gamgi_object *parent; gamgi_dlist *dlist; char name[GAMGI_ENGINE_TOKEN]; -gamgi_projection projection; -gamgi_enum reference, vectors, type; +gamgi_net net; +gamgi_enum reference, vectors, model; gamgi_bool link[2]; gamgi_bool new; double zero[3], euler[3], origin[3]; @@ -1200,8 +1200,8 @@ uvw[2] = direction->uvw[2]; vectors = direction->vectors; -projection = direction->projection; -type = direction->type; +net = direction->net; +model = direction->model; node[0] = direction->node[0]; node[1] = direction->node[1]; node[2] = direction->node[2]; @@ -1228,8 +1228,8 @@ if (cache.new[STATIC_W] == TRUE) uvw[2] = cache.uvw[2]; if (cache.new[STATIC_VECTORS] == TRUE) vectors = cache.vectors; -if (cache.new[STATIC_NET] == TRUE) projection = cache.projection; -if (cache.new[STATIC_MODEL] == TRUE) type = cache.type; +if (cache.new[STATIC_NET] == TRUE) net = cache.net; +if (cache.new[STATIC_MODEL] == TRUE) model = cache.model; if (cache.new[STATIC_O1] == TRUE) node[0] = cache.node[0]; if (cache.new[STATIC_O2] == TRUE) node[1] = cache.node[1]; if (cache.new[STATIC_O3] == TRUE) node[2] = cache.node[2]; @@ -1260,16 +1260,16 @@ uvw[0] = 0; uvw[1] = 0; uvw[2] = 0; vectors = GAMGI_PHYS_DIRECTION_VECTORS; node[0] = 0; node[1] = 0; node[2] = 0; node[3] = 0; - type = GAMGI_PHYS_LINE; - projection = NULL; + model = GAMGI_PHYS_LINE; + net = NULL; } if (reference == GAMGI_ENGINE_CELL) { - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { node[0] = 0; node[1] = 0; node[2] = 0; node[3] = 0; } else - { type = GAMGI_PHYS_LINE; projection = NULL; } + { model = GAMGI_PHYS_LINE; net = NULL; } } } @@ -1287,8 +1287,8 @@ return FALSE; } - if ((type == GAMGI_PHYS_POLE || type == GAMGI_PHYS_TRACE) && - (projection == NULL || cell == NULL || cell->type != GAMGI_PHYS_PROJECTION)) + if ((model == GAMGI_PHYS_POLE || model == GAMGI_PHYS_TRACE) && + (net == NULL || cell == NULL || cell->model != GAMGI_PHYS_PROJECTION)) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", @@ -1296,7 +1296,7 @@ return FALSE; } - if (type != GAMGI_PHYS_POLE && type != GAMGI_PHYS_TRACE && projection != NULL) + if (model != GAMGI_PHYS_POLE && model != GAMGI_PHYS_TRACE && net != NULL) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", @@ -1331,7 +1331,7 @@ return FALSE; } - if (projection != NULL) + if (net != NULL) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", @@ -1339,7 +1339,7 @@ return FALSE; } - if (type == GAMGI_PHYS_POLE || type == GAMGI_PHYS_TRACE) + if (model == GAMGI_PHYS_POLE || model == GAMGI_PHYS_TRACE) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", @@ -1408,10 +1408,10 @@ if (direction->node[1] != node[1]) new = TRUE; if (direction->node[2] != node[2]) new = TRUE; if (direction->node[3] != node[3]) new = TRUE; -if (direction->projection != projection) new = TRUE; -if (direction->type != type) new = TRUE; +if (direction->net != net) new = TRUE; +if (direction->model != model) new = TRUE; -if (new == TRUE && type == GAMGI_PHYS_LINE && +if (new == TRUE && model == GAMGI_PHYS_LINE && cache.new[STATIC_THICKNESS] == FALSE) { if (cache.local == TRUE) @@ -1443,8 +1443,8 @@ direction->node[1] = node[1]; direction->node[2] = node[2]; direction->node[3] = node[3]; -direction->projection = projection; -direction->type = type; +direction->net = net; +direction->model = model; direction->red = red; direction->green = green; @@ -1486,10 +1486,10 @@ * this is a crystallographic direction * ****************************************/ - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { - if (direction->type == GAMGI_PHYS_POLE) pole = TRUE; else pole = FALSE; - if (direction->type == GAMGI_PHYS_TRACE) trace = TRUE; else trace = FALSE; + if (direction->model == GAMGI_PHYS_POLE) pole = TRUE; else pole = FALSE; + if (direction->model == GAMGI_PHYS_TRACE) trace = TRUE; else trace = FALSE; gamgi_phys_direction_projection (direction, cell, pole, trace); } else @@ -1515,7 +1515,7 @@ * the direction type is needed because of the rotation next * *************************************************************/ - direction->type = GAMGI_PHYS_LINE; + direction->model = GAMGI_PHYS_LINE; direction->vectors = GAMGI_PHYS_DIRECTION_VECTORS; parent = gamgi_phys_direction_parent (cache.atom1, cache.atom2, window); @@ -1779,18 +1779,18 @@ combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_vectors"); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), direction->vectors - 1); - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); - if (direction->type == GAMGI_PHYS_POLE) + if (direction->model == GAMGI_PHYS_POLE) gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_MODEL_POLE); - if (direction->type == GAMGI_PHYS_TRACE) + if (direction->model == GAMGI_PHYS_TRACE) gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_MODEL_TRACE); combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_net"); - if (direction->projection == gamgi_phys_projection_wulff) + if (direction->net == gamgi_phys_projection_wulff) gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_NET_WULFF); - if (direction->projection == gamgi_phys_projection_schmidt) + if (direction->net == gamgi_phys_projection_schmidt) gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_NET_SCHMIDT); } else diff -Nru gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_select.c gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_select.c --- gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_select.c 2010-12-18 22:08:36.000000000 +0000 +++ gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_select.c 2013-12-20 16:21:23.000000000 +0000 @@ -22,6 +22,7 @@ #include "gamgi_gtk_dialog.h" #include "gamgi_mesa_select.h" #include "gamgi_math_node.h" +#include "gamgi_phys_projection.h" #include "gamgi_io_token.h" #include "gamgi_global_selection.h" @@ -157,7 +158,7 @@ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); } -static void static_method_o4 (char *label, gamgi_window *window) +static void static_method_model (char *label, gamgi_window *window) { GtkWidget *dialog = window->dialog0; GtkWidget *widget; @@ -178,19 +179,45 @@ store = gtk_list_store_new (1, G_TYPE_STRING); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "000", -1); +gtk_list_store_set (store, &iter, 0, "Line", -1); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "011", -1); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "101", -1); +gtk_list_store_set (store, &iter, 0, "Pole", -1); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "110", -1); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "111", -1); +gtk_list_store_set (store, &iter, 0, "Trace", -1); +gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); +g_object_unref (store); + +renderer = gtk_cell_renderer_text_new (); +gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); +gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); + +gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); +} + +static void static_method_net (char *label, gamgi_window *window) +{ +GtkWidget *dialog = window->dialog0; +GtkWidget *widget; +GtkWidget *hbox; +GtkWidget *combo; +GtkListStore *store; +GtkCellRenderer *renderer; +GtkTreeIter iter; + +widget = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), label); +hbox = gtk_widget_get_parent (widget); +gtk_widget_destroy (widget); + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), label, combo); +gtk_widget_show (combo); + +store = gtk_list_store_new (1, G_TYPE_STRING); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "122", -1); +gtk_list_store_set (store, &iter, 0, "Wulff", -1); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "211", -1); +gtk_list_store_set (store, &iter, 0, "Schmidt", -1); gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); g_object_unref (store); @@ -201,7 +228,7 @@ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); } -static void static_method_style (char *label, gamgi_window *window) +static void static_method_o4 (char *label, gamgi_window *window) { GtkWidget *dialog = window->dialog0; GtkWidget *widget; @@ -222,9 +249,19 @@ store = gtk_list_store_new (1, G_TYPE_STRING); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "Wired", -1); +gtk_list_store_set (store, &iter, 0, "000", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, "011", -1); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "Solid", -1); +gtk_list_store_set (store, &iter, 0, "101", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, "110", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, "111", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, "122", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, "211", -1); gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); g_object_unref (store); @@ -278,16 +315,21 @@ static_method_reference ("widget_min", window); static_method_reference ("widget_max", window); } +else if (strcmp (name, "Model") == 0) + { + static_method_model ("widget_min", window); + static_method_model ("widget_max", window); + } +else if (strcmp (name, "Net") == 0) + { + static_method_net ("widget_min", window); + static_method_net ("widget_max", window); + } else if (strcmp (name, "O4") == 0) { static_method_o4 ("widget_min", window); static_method_o4 ("widget_max", window); } -else if (strcmp (name, "Style") == 0) - { - static_method_style ("widget_min", window); - static_method_style ("widget_max", window); - } else { gamgi_gtk_select_method_default ("widget_min", window); @@ -475,6 +517,45 @@ return dlist_new; } +static gamgi_dlist *static_ok_model (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_direction *direction; +gamgi_dlist *dlist, *dlist_new; +gamgi_enum model; +gamgi_bool condition; +int min, max; + +/******************** + * get range limits * + ********************/ + +gamgi_gtk_select_combo_int (&min, &max, window); + +/*********************************** + * get list of selected directions * + ***********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + direction = GAMGI_CAST_DIRECTION dlist->data; + + if (direction->model == GAMGI_PHYS_LINE) model = 0; + if (direction->model == GAMGI_PHYS_POLE) model = 1; + if (direction->model == GAMGI_PHYS_TRACE) model = 2; + condition = (model >= min && model <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = direction; + } + } + +return dlist_new; +} + static gamgi_dlist *static_ok_u (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window) { @@ -589,6 +670,44 @@ return dlist_new; } +static gamgi_dlist *static_ok_net (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_direction *direction; +gamgi_dlist *dlist, *dlist_new; +gamgi_enum net; +gamgi_bool condition; +int min, max; + +/******************** + * get range limits * + ********************/ + +gamgi_gtk_select_combo_int (&min, &max, window); + +/****************************** + * get list of selected planes * + ******************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + direction = GAMGI_CAST_DIRECTION dlist->data; + + if (direction->net == gamgi_phys_projection_wulff) net = 0; + if (direction->net == gamgi_phys_projection_schmidt) net = 1; + condition = (net >= min && net <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = direction; + } + } + +return dlist_new; +} + static gamgi_dlist *static_ok_o1 (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window) { @@ -960,6 +1079,8 @@ else if (strcmp (name, "Reference") == 0) dlist_new = static_ok_reference (dlist_old, action, window); +else if (strcmp (name, "Model") == 0) + dlist_new = static_ok_model (dlist_old, action, window); else if (strcmp (name, "U") == 0) dlist_new = static_ok_u (dlist_old, action, window); else if (strcmp (name, "V") == 0) @@ -967,6 +1088,9 @@ else if (strcmp (name, "W") == 0) dlist_new = static_ok_w (dlist_old, action, window); +else if (strcmp (name, "Net") == 0) + dlist_new = static_ok_net (dlist_old, action, window); + else if (strcmp (name, "O1") == 0) dlist_new = static_ok_o1 (dlist_old, action, window); else if (strcmp (name, "O2") == 0) @@ -1165,7 +1289,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -1401,6 +1524,8 @@ gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "Reference", -1); gtk_tree_store_append (tree_store, &child, &iter); +gtk_tree_store_set (tree_store, &child, 0, "Model", -1); +gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "U", -1); gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "V", -1); @@ -1408,6 +1533,11 @@ gtk_tree_store_set (tree_store, &child, 0, "W", -1); gtk_tree_store_append (tree_store, &iter, NULL); +gtk_tree_store_set (tree_store, &iter, 0, "Projection", -1); +gtk_tree_store_append (tree_store, &child, &iter); +gtk_tree_store_set (tree_store, &child, 0, "Net", -1); + +gtk_tree_store_append (tree_store, &iter, NULL); gtk_tree_store_set (tree_store, &iter, 0, "Scope", -1); gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "Autonomy", -1); @@ -1466,12 +1596,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -1489,12 +1620,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_select.h gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_select.h --- gamgi-0.16.8/src/gtk/direction/gamgi_gtk_direction_select.h 2010-11-24 16:59:54.000000000 +0000 +++ gamgi-0.17/src/gtk/direction/gamgi_gtk_direction_select.h 2013-12-20 16:18:17.000000000 +0000 @@ -25,7 +25,9 @@ static void static_method_reference (char *label, gamgi_window *window); -static void static_method_autonomy (char *label, gamgi_window *window); +static void static_method_model (char *label, gamgi_window *window); + +static void static_method_net (char *label, gamgi_window *window); static void static_method_o4 (char *label, gamgi_window *window); @@ -51,7 +53,7 @@ static gamgi_dlist *static_ok_w (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window); -static gamgi_dlist *static_ok_autonomy (gamgi_dlist *dlist_old, +static gamgi_dlist *static_ok_net (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window); static gamgi_dlist *static_ok_o1 (gamgi_dlist *dlist_old, diff -Nru gamgi-0.16.8/src/gtk/gamgi_gtk.h gamgi-0.17/src/gtk/gamgi_gtk.h --- gamgi-0.16.8/src/gtk/gamgi_gtk.h 2010-09-15 18:28:52.000000000 +0000 +++ gamgi-0.17/src/gtk/gamgi_gtk.h 2013-11-27 23:18:39.000000000 +0000 @@ -29,9 +29,9 @@ /********** enumerations ********** **********************************/ -/************************************************************ - * All GAMGI enumerations start at 1 and share FALSE for 0. * - ************************************************************/ +/************************************************************** + * All external enumerations start at 1 and share FALSE for 0 * + **************************************************************/ enum { GAMGI_GTK_SCALE = 1, GAMGI_GTK_MOVE, GAMGI_GTK_ROTATE }; diff -Nru gamgi-0.16.8/src/gtk/gamgi_gtk_measure.c gamgi-0.17/src/gtk/gamgi_gtk_measure.c --- gamgi-0.16.8/src/gtk/gamgi_gtk_measure.c 2012-08-21 21:21:28.000000000 +0000 +++ gamgi-0.17/src/gtk/gamgi_gtk_measure.c 2013-12-19 00:10:56.000000000 +0000 @@ -532,7 +532,7 @@ * lattice is useful only for centered lattices * ************************************************/ - if (cell->type != GAMGI_PHYS_CONVENTIONAL || + if (cell->model != GAMGI_PHYS_CONVENTIONAL || gamgi_phys_cell_primitive (cell->lattice) == cell->lattice) { gamgi_gtk_dialog_message_create ("Error", diff -Nru gamgi-0.16.8/src/gtk/gamgi_gtk_select.c gamgi-0.17/src/gtk/gamgi_gtk_select.c --- gamgi-0.16.8/src/gtk/gamgi_gtk_select.c 2013-09-09 15:56:49.000000000 +0000 +++ gamgi-0.17/src/gtk/gamgi_gtk_select.c 2013-11-02 23:56:04.000000000 +0000 @@ -72,6 +72,40 @@ gtk_widget_set_sensitive (entry, FALSE); } +void gamgi_gtk_select_method_bool (char *label, gamgi_window *window) +{ +GtkWidget *dialog = window->dialog0; +GtkWidget *widget; +GtkWidget *hbox; +GtkWidget *combo; +GtkListStore *store; +GtkCellRenderer *renderer; +GtkTreeIter iter; + +widget = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), label); +hbox = gtk_widget_get_parent (widget); +gtk_widget_destroy (widget); + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), label, combo); +gtk_widget_show (combo); + +store = gtk_list_store_new (1, G_TYPE_STRING); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, " Yes ", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, " No ", -1); +gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); +g_object_unref (store); + +renderer = gtk_cell_renderer_text_new (); +gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); +gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); + +gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); +} + void gamgi_gtk_select_method_default (char *label, gamgi_window *window) { GtkWidget *dialog = window->dialog0; diff -Nru gamgi-0.16.8/src/gtk/gamgi_gtk_select.h gamgi-0.17/src/gtk/gamgi_gtk_select.h --- gamgi-0.16.8/src/gtk/gamgi_gtk_select.h 2013-07-03 22:09:12.000000000 +0000 +++ gamgi-0.17/src/gtk/gamgi_gtk_select.h 2013-11-02 23:54:56.000000000 +0000 @@ -21,6 +21,8 @@ void gamgi_gtk_select_mode (char *name, gamgi_window *window); +void gamgi_gtk_select_method_bool (char *label, gamgi_window *window); + void gamgi_gtk_select_method_direct (char *label, gamgi_window *window); void gamgi_gtk_select_method_default (char *label, gamgi_window *window); diff -Nru gamgi-0.16.8/src/gtk/group/gamgi_gtk_group_select.c gamgi-0.17/src/gtk/group/gamgi_gtk_group_select.c --- gamgi-0.16.8/src/gtk/group/gamgi_gtk_group_select.c 2010-11-14 00:14:18.000000000 +0000 +++ gamgi-0.17/src/gtk/group/gamgi_gtk_group_select.c 2013-11-22 21:17:27.000000000 +0000 @@ -191,40 +191,6 @@ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); } -static void static_method_color (char *label, gamgi_window *window) -{ -GtkWidget *dialog = window->dialog0; -GtkWidget *widget; -GtkWidget *hbox; -GtkWidget *combo; -GtkListStore *store; -GtkCellRenderer *renderer; -GtkTreeIter iter; - -widget = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), label); -hbox = gtk_widget_get_parent (widget); -gtk_widget_destroy (widget); - -combo = gtk_combo_box_new (); -gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); -g_object_set_data (G_OBJECT (dialog), label, combo); -gtk_widget_show (combo); - -store = gtk_list_store_new (1, G_TYPE_STRING); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " Yes ", -1); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " No ", -1); -gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); -g_object_unref (store); - -renderer = gtk_cell_renderer_text_new (); -gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); -gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); - -gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); -} - static void static_method (GtkWidget *widget, void *data) { gamgi_window *window = GAMGI_CAST_WINDOW data; @@ -263,6 +229,11 @@ gamgi_gtk_select_method_direct ("widget_min", window); gamgi_gtk_select_method_direct ("widget_max", window); } +else if (strcmp (name, "Color") == 0) + { + gamgi_gtk_select_method_bool ("widget_min", window); + gamgi_gtk_select_method_bool ("widget_max", window); + } else if (strcmp (name, "Autonomy") == 0) { static_method_autonomy ("widget_min", window); @@ -273,11 +244,6 @@ static_method_style ("widget_min", window); static_method_style ("widget_max", window); } -else if (strcmp (name, "Color") == 0) - { - static_method_color ("widget_min", window); - static_method_color ("widget_max", window); - } else { gamgi_gtk_select_method_default ("widget_min", window); @@ -822,7 +788,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -1114,12 +1079,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -1137,12 +1103,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/help/gamgi_gtk_help_current.c gamgi-0.17/src/gtk/help/gamgi_gtk_help_current.c --- gamgi-0.16.8/src/gtk/help/gamgi_gtk_help_current.c 2013-01-08 23:46:58.000000000 +0000 +++ gamgi-0.17/src/gtk/help/gamgi_gtk_help_current.c 2013-12-16 22:18:06.000000000 +0000 @@ -111,7 +111,8 @@ case GAMGI_GTK_ORBITAL_MODIFY: gamgi_gtk_help_dialog_import ("Help Orbital Modify", - "interfaces/orbital/modify", window, 0, n); + "interfaces/orbital/modify", window, 5, n, + "type", "model", "volume", "position", "view"); break; case GAMGI_GTK_ORBITAL_REMOVE: @@ -121,7 +122,7 @@ case GAMGI_GTK_BOND_CREATE: gamgi_gtk_help_dialog_import ("Help Bond Create", - "interfaces/bond/create", window, 4, n, "method", "length", + "interfaces/bond/create", window, 4, n, "type", "length", "property", "view"); break; diff -Nru gamgi-0.16.8/src/gtk/help/gamgi_gtk_help_topic.c gamgi-0.17/src/gtk/help/gamgi_gtk_help_topic.c --- gamgi-0.16.8/src/gtk/help/gamgi_gtk_help_topic.c 2013-01-08 23:59:48.000000000 +0000 +++ gamgi-0.17/src/gtk/help/gamgi_gtk_help_topic.c 2013-12-16 22:27:39.000000000 +0000 @@ -787,7 +787,7 @@ static void static_interfaces_bond_create (void *data) { gamgi_gtk_help_dialog_import ("Help Interfaces Bond Create", -"interfaces/bond/create", data, 4, 1, "method", "length", +"interfaces/bond/create", data, 4, 1, "type", "length", "property", "view"); } @@ -852,6 +852,13 @@ "interfaces/orbital/link", data, 2, 1, "object", "shift"); } +static void static_interfaces_orbital_modify (void *data) +{ +gamgi_gtk_help_dialog_import ("Help Interfaces Orbital Modify", +"interfaces/orbital/modify", data, 5, 1, +"type", "model", "volume", "position", "view"); +} + static void static_interfaces_orbital_remove (void *data) { gamgi_gtk_help_dialog_import ("Help Interfaces Orbital Remove", @@ -1184,7 +1191,7 @@ static void static_formats_cell_create (void *data) { gamgi_gtk_help_dialog_import ("Help Formats Cell Create", -"formats/cell/create", data, 5, 1, "symmetry", "type", +"formats/cell/create", data, 5, 1, "symmetry", "volume", "position", "origin", "view"); } @@ -1265,7 +1272,8 @@ static void static_formats_atom_create (void *data) { gamgi_gtk_help_dialog_import ("Help Formats Atom Create", -"formats/atom/create", data, 0, 0); +"formats/atom/create", data, 5, 1, "type", "property", +"analysis", "position", "view"); } static void static_formats_atom_config (void *data) @@ -1283,7 +1291,7 @@ static void static_formats_bond_create (void *data) { gamgi_gtk_help_dialog_import ("Help Formats Bond Create", -"formats/bond/create", data, 3, 1, "mode", "type", "view"); +"formats/bond/create", data, 3, 1, "type", "property", "view"); } static void static_formats_bond_config (void *data) @@ -1301,7 +1309,8 @@ static void static_formats_orbital_create (void *data) { gamgi_gtk_help_dialog_import ("Help Formats Orbital Create", -"formats/orbital/create", data, 1, 1, "view"); +"formats/orbital/create", data, 5, 1, "type", "model", +"volume", "position", "view"); } static void static_formats_text (void *data) @@ -1551,6 +1560,7 @@ static_row (store, &iter2, "Copy", static_interfaces_orbital_copy); static_row (store, &iter2, "Select", static_interfaces_orbital_select); static_row (store, &iter2, "Link", static_interfaces_orbital_link); +static_row (store, &iter2, "Modify", static_interfaces_orbital_modify); static_row (store, &iter2, "Remove", static_interfaces_orbital_remove); iter2 = static_row (store, &iter1, "Text", static_interfaces_text); diff -Nru gamgi-0.16.8/src/gtk/help/gamgi_gtk_help_topic.h gamgi-0.17/src/gtk/help/gamgi_gtk_help_topic.h --- gamgi-0.16.8/src/gtk/help/gamgi_gtk_help_topic.h 2013-01-11 17:07:02.000000000 +0000 +++ gamgi-0.17/src/gtk/help/gamgi_gtk_help_topic.h 2013-11-29 22:11:46.000000000 +0000 @@ -265,6 +265,8 @@ static void static_interfaces_orbital_link (void *data); +static void static_interfaces_orbital_modify (void *data); + static void static_interfaces_orbital_remove (void *data); static void static_interfaces_text (void *data); diff -Nru gamgi-0.16.8/src/gtk/layer/gamgi_gtk_layer_select.c gamgi-0.17/src/gtk/layer/gamgi_gtk_layer_select.c --- gamgi-0.16.8/src/gtk/layer/gamgi_gtk_layer_select.c 2013-05-15 14:29:38.000000000 +0000 +++ gamgi-0.17/src/gtk/layer/gamgi_gtk_layer_select.c 2013-11-22 21:17:34.000000000 +0000 @@ -187,40 +187,6 @@ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); } -static void static_method_axes (char *label, gamgi_window *window) -{ -GtkWidget *dialog = window->dialog0; -GtkWidget *widget; -GtkWidget *hbox; -GtkWidget *combo; -GtkListStore *store; -GtkCellRenderer *renderer; -GtkTreeIter iter; - -widget = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), label); -hbox = gtk_widget_get_parent (widget); -gtk_widget_destroy (widget); - -combo = gtk_combo_box_new (); -gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); -g_object_set_data (G_OBJECT (dialog), label, combo); -gtk_widget_show (combo); - -store = gtk_list_store_new (1, G_TYPE_STRING); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " Yes ", -1); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, " No ", -1); -gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); -g_object_unref (store); - -renderer = gtk_cell_renderer_text_new (); -gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); -gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); - -gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); -} - static void static_method (GtkWidget *widget, void *data) { gamgi_window *window = GAMGI_CAST_WINDOW data; @@ -261,6 +227,11 @@ gamgi_gtk_select_method_direct ("widget_min", window); gamgi_gtk_select_method_direct ("widget_max", window); } +else if (strcmp (name, "Axes") == 0) + { + gamgi_gtk_select_method_bool ("widget_min", window); + gamgi_gtk_select_method_bool ("widget_max", window); + } else if (strcmp (name, "Type") == 0) { static_method_projection ("widget_min", window); @@ -271,11 +242,6 @@ static_method_visibility ("widget_min", window); static_method_visibility ("widget_max", window); } -else if (strcmp (name, "Axes") == 0) - { - static_method_axes ("widget_min", window); - static_method_axes ("widget_max", window); - } else { gamgi_gtk_select_method_default ("widget_min", window); @@ -1387,7 +1353,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -1685,12 +1650,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -1708,12 +1674,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/layer/gamgi_gtk_layer_select.h gamgi-0.17/src/gtk/layer/gamgi_gtk_layer_select.h --- gamgi-0.16.8/src/gtk/layer/gamgi_gtk_layer_select.h 2010-09-07 17:56:48.000000000 +0000 +++ gamgi-0.17/src/gtk/layer/gamgi_gtk_layer_select.h 2013-11-03 00:30:38.000000000 +0000 @@ -25,8 +25,6 @@ static void static_method_visibility (char *label, gamgi_window *window); -static void static_method_axes (char *label, gamgi_window *window); - static void static_method (GtkWidget *widget, void *data); static void static_reset (gamgi_window *window); diff -Nru gamgi-0.16.8/src/gtk/light/gamgi_gtk_light_select.c gamgi-0.17/src/gtk/light/gamgi_gtk_light_select.c --- gamgi-0.16.8/src/gtk/light/gamgi_gtk_light_select.c 2010-11-13 21:32:19.000000000 +0000 +++ gamgi-0.17/src/gtk/light/gamgi_gtk_light_select.c 2013-11-22 21:17:45.000000000 +0000 @@ -1396,7 +1396,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -1695,12 +1694,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -1718,12 +1718,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/molecule/gamgi_gtk_molecule_select.c gamgi-0.17/src/gtk/molecule/gamgi_gtk_molecule_select.c --- gamgi-0.16.8/src/gtk/molecule/gamgi_gtk_molecule_select.c 2010-11-13 21:32:44.000000000 +0000 +++ gamgi-0.17/src/gtk/molecule/gamgi_gtk_molecule_select.c 2013-11-22 21:17:51.000000000 +0000 @@ -586,7 +586,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -849,12 +848,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -872,12 +872,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/orbital/gamgi_gtk_orbital_create.c gamgi-0.17/src/gtk/orbital/gamgi_gtk_orbital_create.c --- gamgi-0.16.8/src/gtk/orbital/gamgi_gtk_orbital_create.c 2013-08-04 21:37:49.000000000 +0000 +++ gamgi-0.17/src/gtk/orbital/gamgi_gtk_orbital_create.c 2013-11-27 22:33:47.000000000 +0000 @@ -29,59 +29,6 @@ #include "gamgi_math_position.h" #include "gamgi_io_token.h" -static void static_axes (GtkWidget *widget, void *data) -{ -gamgi_window *window = GAMGI_CAST_WINDOW data; -GtkWidget *dialog = window->dialog0; -GtkWidget *combo; -GtkWidget *entry; -GtkWidget *label; -GtkWidget *button; -char token[GAMGI_ENGINE_TOKEN] = ""; -const char *name; -double radius; -int axes; -gamgi_bool active; - -entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_radius"); -name = gtk_entry_get_text (GTK_ENTRY (entry)); - -button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_frame"); -active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); - -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_axes"); -axes = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); - -entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_length"); -label = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "label_length"); - -if (axes == GAMGI_CHEM_AXES_NONE - 1) - { - gtk_widget_set_sensitive (entry, FALSE); - gtk_widget_set_sensitive (label, FALSE); - } -else - { - gtk_widget_set_sensitive (entry, TRUE); - gtk_widget_set_sensitive (label, TRUE); - - if (axes == GAMGI_CHEM_AXES_UNIT - 1) - sprintf (token, "%.*f", gamgi->gamgi->length, 1.0); - - if (axes == GAMGI_CHEM_AXES_BOHR - 1) - sprintf (token, "%.*f", gamgi->gamgi->length, GAMGI_CHEM_A0); - - if (axes == GAMGI_CHEM_AXES_FRAME - 1 && gamgi_io_token_double_scan (name, - &radius, GAMGI_MATH_TOLERANCE_LENGTH, DBL_MAX) == TRUE) - { - if (active == TRUE) radius *= 2.0; - sprintf (token, "%.*f", gamgi->gamgi->length, radius); - } - } - -gtk_entry_set_text (GTK_ENTRY (entry), token); -} - static void static_phase (GtkWidget *widget, void *data) { gamgi_window *window = GAMGI_CAST_WINDOW data; @@ -186,7 +133,6 @@ gtk_widget_set_sensitive (entry_green, FALSE); gtk_widget_set_sensitive (entry_blue, FALSE); } - } static void static_style (GtkWidget *widget, void *data) @@ -264,12 +210,6 @@ gtk_entry_set_text (GTK_ENTRY (entry), token); } else gtk_entry_set_text (GTK_ENTRY (entry), ""); - -/*************************** - * set default axes length * - ***************************/ - -static_axes (NULL, window); } static void static_l (GtkWidget *widget, void *data) @@ -424,29 +364,29 @@ return; } -entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_sampling"); +entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_radius"); name = gtk_entry_get_text (GTK_ENTRY (entry)); -if (gamgi_io_token_int_scan (name, &orbital->sampling, 1, INT_MAX) == FALSE) +if (gamgi_io_token_double_scan (name, &orbital->radius, +GAMGI_MATH_TOLERANCE_LENGTH, DBL_MAX) == FALSE) { - gamgi_gtk_dialog_message_create ("Error", "Invalid sampling data", window); + gamgi_gtk_dialog_message_create ("Error", "Invalid sampling radius", window); gamgi_engine_remove_orbital (orbital); return; } -if (orbital->style == GAMGI_MESA_SOLID && -orbital->sampling > GAMGI_CHEM_ORBITAL_SLICES_MAX) +entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_sampling"); +name = gtk_entry_get_text (GTK_ENTRY (entry)); +if (gamgi_io_token_int_scan (name, &orbital->sampling, 1, INT_MAX) == FALSE) { gamgi_gtk_dialog_message_create ("Error", "Invalid sampling data", window); gamgi_engine_remove_orbital (orbital); return; } -entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_radius"); -name = gtk_entry_get_text (GTK_ENTRY (entry)); -if (gamgi_io_token_double_scan (name, &orbital->radius, -GAMGI_MATH_TOLERANCE_LENGTH, DBL_MAX) == FALSE) +if (orbital->style == GAMGI_MESA_SOLID && +orbital->sampling > GAMGI_CHEM_ORBITAL_SLICES_MAX) { - gamgi_gtk_dialog_message_create ("Error", "Invalid sampling radius", window); + gamgi_gtk_dialog_message_create ("Error", "Invalid sampling data", window); gamgi_engine_remove_orbital (orbital); return; } @@ -460,9 +400,17 @@ return; } -/********************************** - * Volume page: get octants, axes * - **********************************/ +/************************************************ + * Volume page: get phase, frame, octants, axes * + ************************************************/ + +button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_phase"); +if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)) == TRUE) + orbital->phase = TRUE; + +button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_frame"); +if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)) == TRUE) + orbital->frame = TRUE; button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_1"); orbital->octants[0] = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); @@ -482,16 +430,7 @@ orbital->octants[7] = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)); combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_axes"); -entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_length"); -name = gtk_entry_get_text (GTK_ENTRY (entry)); -if (gtk_combo_box_get_active (GTK_COMBO_BOX (combo)) != GAMGI_CHEM_AXES_NONE - 1 -&& gamgi_io_token_double_scan (name, &orbital->axes, GAMGI_MATH_TOLERANCE_LENGTH, -DBL_MAX) == FALSE) - { - gamgi_gtk_dialog_message_create ("Error", "Invalid axes length", window); - gamgi_engine_remove_orbital (orbital); - return; - } +orbital->axes = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); /************************* * get x,y,z coordinates * @@ -558,9 +497,9 @@ return; } -/************************************************************************ - * View page: get 1) Base, Phase, Frame colors; 2) Phase, Frame buttons * - ************************************************************************/ +/******************************************** + * View page: get Base, Phase, Frame colors * + ********************************************/ entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_base_red"); name = gtk_entry_get_text (GTK_ENTRY (entry)); @@ -589,11 +528,8 @@ return; } -button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_phase"); -if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)) == TRUE) +if (orbital->phase == TRUE) { - orbital->phase = TRUE; - entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_phase_red"); name = gtk_entry_get_text (GTK_ENTRY (entry)); if (gamgi_io_token_float_scan (name, &orbital->phase_r, 0.0, 1.0) == FALSE) @@ -622,11 +558,8 @@ } } -button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_frame"); -if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)) == TRUE) +if (orbital->frame == TRUE) { - orbital->frame = TRUE; - entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_frame_red"); name = gtk_entry_get_text (GTK_ENTRY (entry)); if (gamgi_io_token_float_scan (name, &orbital->frame_r, 0.0, 1.0) == FALSE) @@ -770,8 +703,7 @@ gtk_button_clicked (GTK_BUTTON (button)); combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_axes"); -gtk_combo_box_set_active (GTK_COMBO_BOX (combo), GAMGI_CHEM_AXES_NONE - 1); -static_axes (NULL, window); +gtk_combo_box_set_active (GTK_COMBO_BOX (combo), FALSE); /*********************** * start Position page * @@ -1194,9 +1126,9 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -/******************* - * Density, Radius * - *******************/ +/********************* + * Density, Sampling * + *********************/ vbox_top_top = gtk_vbox_new (FALSE, 15); gtk_box_pack_start (GTK_BOX (hbox_left), vbox_top_top, FALSE, FALSE, 0); @@ -1225,16 +1157,16 @@ gtk_box_pack_end (GTK_BOX (hbox_left_left), entry, FALSE, FALSE, 0); gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); -g_object_set_data (G_OBJECT (dialog), "entry_radius", entry); +g_object_set_data (G_OBJECT (dialog), "entry_sampling", entry); gtk_widget_show (entry); -label = gtk_label_new ("Radius"); +label = gtk_label_new ("Sampling"); gtk_box_pack_end (GTK_BOX (hbox_left_left), label, FALSE, FALSE, 0); gtk_widget_show (label); -/****************** - * Sampling, Seed * - ******************/ +/**************** + * Radius, Seed * + ****************/ vbox_top_top = gtk_vbox_new (FALSE, 15); gtk_box_pack_start (GTK_BOX (hbox_left), vbox_top_top, FALSE, FALSE, 0); @@ -1248,10 +1180,10 @@ gtk_box_pack_end (GTK_BOX (hbox_left_left), entry, FALSE, FALSE, 0); gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); -g_object_set_data (G_OBJECT (dialog), "entry_sampling", entry); +g_object_set_data (G_OBJECT (dialog), "entry_radius", entry); gtk_widget_show (entry); -label = gtk_label_new ("Sampling"); +label = gtk_label_new ("Radius"); gtk_box_pack_end (GTK_BOX (hbox_left_left), label, FALSE, FALSE, 0); gtk_widget_show (label); @@ -1390,7 +1322,6 @@ combo = gtk_combo_box_new (); gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); -g_signal_connect (combo, "changed", G_CALLBACK (static_axes), window); g_object_set_data (G_OBJECT (dialog), "combo_axes", combo); gtk_widget_show (combo); @@ -1410,18 +1341,6 @@ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); -g_object_set_data (G_OBJECT (dialog), "entry_length", entry); -gtk_widget_show (entry); - -label = gtk_label_new ("Length"); -gtk_box_pack_start (GTK_BOX (hbox_left), label, FALSE, FALSE, 0); -g_object_set_data (G_OBJECT (dialog), "label_length", label); -gtk_widget_show (label); - /***************** * Position page * *****************/ diff -Nru gamgi-0.16.8/src/gtk/orbital/gamgi_gtk_orbital_modify.c gamgi-0.17/src/gtk/orbital/gamgi_gtk_orbital_modify.c --- gamgi-0.16.8/src/gtk/orbital/gamgi_gtk_orbital_modify.c 2013-09-03 14:35:34.000000000 +0000 +++ gamgi-0.17/src/gtk/orbital/gamgi_gtk_orbital_modify.c 2013-11-27 23:12:13.000000000 +0000 @@ -102,57 +102,6 @@ gtk_entry_set_text (GTK_ENTRY (entry), string); } -static void static_axes (GtkWidget *widget, void *data) -{ -gamgi_window *window = GAMGI_CAST_WINDOW data; -GtkWidget *dialog = window->dialog0; -GtkWidget *combo; -GtkWidget *entry; -GtkWidget *label; -char token[GAMGI_ENGINE_TOKEN] = ""; -const char *name; -double radius; -int axes, frame; - -entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_radius"); -name = gtk_entry_get_text (GTK_ENTRY (entry)); - -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_frame"); -frame = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); - -combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_axes"); -axes = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); - -entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_axes"); -label = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "label_axes"); - -if (axes == STATIC_AXES_NONE || axes == STATIC_AXES_LOCAL) - { - gtk_widget_set_sensitive (entry, FALSE); - gtk_widget_set_sensitive (label, FALSE); - } -else - { - gtk_widget_set_sensitive (entry, TRUE); - gtk_widget_set_sensitive (label, TRUE); - - if (axes == STATIC_AXES_UNIT) - sprintf (token, "%.*f", gamgi->gamgi->length, 1.0); - - if (axes == STATIC_AXES_BOHR) - sprintf (token, "%.*f", gamgi->gamgi->length, GAMGI_CHEM_A0); - - if (axes == STATIC_AXES_RADIUS && gamgi_io_token_double_scan (name, - &radius, GAMGI_MATH_TOLERANCE_LENGTH, DBL_MAX) == TRUE) - { - if (frame == STATIC_FRAME_YES) radius *= 2.0; - sprintf (token, "%.*f", gamgi->gamgi->length, radius); - } - } - -gtk_entry_set_text (GTK_ENTRY (entry), token); -} - static void static_phase (GtkWidget *widget, void *data) { gamgi_window *window = GAMGI_CAST_WINDOW data; @@ -369,12 +318,12 @@ sprintf (token, "%d", GAMGI_MATH_SEED); gtk_entry_set_text (GTK_ENTRY (entry), token); -/*************************** - * set default axes length * - ***************************/ +/******************** + * set default axes * + ********************/ combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_axes"); -gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_AXES_NONE); +gtk_combo_box_set_active (GTK_COMBO_BOX (combo), FALSE); } static void static_l (GtkWidget *widget, void *data) @@ -586,13 +535,12 @@ } else { - combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_axes"); - static_type_clean (window); static_model_clean (window); - gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_AXES_LOCAL); gtk_widget_set_sensitive (hbox, FALSE); static_name (window, NULL); + combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_axes"); + gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_AXES_LOCAL); } } @@ -887,7 +835,7 @@ cache.new[STATIC_PHASE] = FALSE; combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_phase"); row = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); -if (row < 2) +if (row < STATIC_PHASE_LOCAL) { cache.new[STATIC_PHASE] = TRUE; if (row == STATIC_PHASE_YES) cache.phase = TRUE; @@ -897,7 +845,7 @@ cache.new[STATIC_FRAME] = FALSE; combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_frame"); row = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); -if (row < 2) +if (row < STATIC_FRAME_LOCAL) { cache.new[STATIC_FRAME] = TRUE; if (row == STATIC_FRAME_YES) cache.frame = TRUE; @@ -930,18 +878,10 @@ cache.new[STATIC_AXES] = FALSE; combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_axes"); row = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); -if (row < 4) +if (row < STATIC_AXES_LOCAL) { cache.new[STATIC_AXES] = TRUE; - entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_axes"); - name = gtk_entry_get_text (GTK_ENTRY (entry)); - cache.axes = 0.0; - if (row > 0 && gamgi_io_token_double_scan (name, - &cache.axes, GAMGI_MATH_TOLERANCE_LENGTH, DBL_MAX) == FALSE) - { - gamgi_gtk_dialog_message_create ("Error", "Invalid orbital axes", window); - return FALSE; - } + cache.axes = row; } /****************************** @@ -1671,27 +1611,12 @@ button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_8"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), orbital->octants[7]); -/******** - * axes * - ********/ +/************ + * set axes * + ************/ combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_axes"); -if (orbital->axes == 0.0) - gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_AXES_NONE); -else if (orbital->axes == 1.0) - gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_AXES_UNIT); -else if (orbital->axes == GAMGI_CHEM_A0) - gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_AXES_BOHR); -else - gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_AXES_RADIUS); - -entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "entry_axes"); -if (orbital->axes == 0.0) gtk_entry_set_text (GTK_ENTRY (entry), ""); -else - { - sprintf (string, "%.*f", gamgi->gamgi->length, orbital->axes); - gtk_entry_set_text (GTK_ENTRY (entry), string); - } +gtk_combo_box_set_active (GTK_COMBO_BOX (combo), orbital->axes); /********************* * set position data * @@ -2158,9 +2083,9 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -/******************* - * Density, Radius * - *******************/ +/********************* + * Density, Sampling * + *********************/ vbox_top_top = gtk_vbox_new (FALSE, 15); gtk_box_pack_start (GTK_BOX (hbox_left), vbox_top_top, FALSE, FALSE, 0); @@ -2189,16 +2114,16 @@ gtk_box_pack_end (GTK_BOX (hbox_left_left), entry, FALSE, FALSE, 0); gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); -g_object_set_data (G_OBJECT (dialog), "entry_radius", entry); +g_object_set_data (G_OBJECT (dialog), "entry_sampling", entry); gtk_widget_show (entry); -label = gtk_label_new ("Radius"); +label = gtk_label_new ("Sampling"); gtk_box_pack_end (GTK_BOX (hbox_left_left), label, FALSE, FALSE, 0); gtk_widget_show (label); -/****************** - * Sampling, Seed * - ******************/ +/**************** + * Radius, Seed * + ****************/ vbox_top_top = gtk_vbox_new (FALSE, 15); gtk_box_pack_start (GTK_BOX (hbox_left), vbox_top_top, FALSE, FALSE, 0); @@ -2212,10 +2137,10 @@ gtk_box_pack_end (GTK_BOX (hbox_left_left), entry, FALSE, FALSE, 0); gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); -g_object_set_data (G_OBJECT (dialog), "entry_sampling", entry); +g_object_set_data (G_OBJECT (dialog), "entry_radius", entry); gtk_widget_show (entry); -label = gtk_label_new ("Sampling"); +label = gtk_label_new ("Radius"); gtk_box_pack_end (GTK_BOX (hbox_left_left), label, FALSE, FALSE, 0); gtk_widget_show (label); @@ -2409,7 +2334,6 @@ combo = gtk_combo_box_new (); gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); -g_signal_connect (combo, "changed", G_CALLBACK (static_axes), window); g_object_set_data (G_OBJECT (dialog), "combo_axes", combo); gtk_widget_show (combo); @@ -2431,18 +2355,6 @@ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_7); -g_object_set_data (G_OBJECT (dialog), "entry_axes", entry); -gtk_widget_show (entry); - -label = gtk_label_new ("Length"); -gtk_box_pack_start (GTK_BOX (hbox_left), label, FALSE, FALSE, 0); -g_object_set_data (G_OBJECT (dialog), "label_axes", label); -gtk_widget_show (label); - /***************** * Position page * *****************/ diff -Nru gamgi-0.16.8/src/gtk/orbital/gamgi_gtk_orbital_select.c gamgi-0.17/src/gtk/orbital/gamgi_gtk_orbital_select.c --- gamgi-0.16.8/src/gtk/orbital/gamgi_gtk_orbital_select.c 2013-10-29 22:20:43.000000000 +0000 +++ gamgi-0.17/src/gtk/orbital/gamgi_gtk_orbital_select.c 2013-11-23 22:17:11.000000000 +0000 @@ -201,12 +201,17 @@ gamgi_gtk_select_method_direct ("widget_min", window); gamgi_gtk_select_method_direct ("widget_max", window); } +else if (strcmp (name, "Phase") == 0 || strcmp (name, +"Frame") == 0 || strcmp (name, "Axes") == 0) + { + gamgi_gtk_select_method_bool ("widget_min", window); + gamgi_gtk_select_method_bool ("widget_max", window); + } else if (strcmp (name, "Style") == 0) { static_method_style ("widget_min", window); static_method_style ("widget_max", window); } - else { gamgi_gtk_select_method_default ("widget_min", window); @@ -263,8 +268,8 @@ gamgi_bool condition; /******************** - * * get range limits * - * ********************/ + * get range limits * + ********************/ entry = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "widget_min"); name = gtk_entry_get_text (GTK_ENTRY (entry)); @@ -284,72 +289,465 @@ return NULL; } -if (*name_min != '\0' && *name_max != '\0' && strcmp (name_min, name_max) > 0) - { - gamgi_gtk_dialog_message_create ("Warning", "Swapped range limits", window); +if (*name_min != '\0' && *name_max != '\0' && strcmp (name_min, name_max) > 0) + { + gamgi_gtk_dialog_message_create ("Warning", "Swapped range limits", window); + + strcpy (swap, name_min); + strcpy (name_min, name_max); + strcpy (name_max, swap); + } + +/****************************** + * get list of selected atoms * + ******************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + atom = GAMGI_CAST_ATOM dlist->data; + + condition = TRUE; + if (*name_min != '\0' && strcmp (atom->object.name, name_min) < 0) + condition = FALSE; + if (*name_max != '\0' && strcmp (atom->object.name, name_max) > 0) + condition = FALSE; + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = atom; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_parent (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_enum class, gamgi_window *window) +{ +gamgi_atom *atom; +gamgi_object *parent; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +int min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_int (1, INT_MAX, +&min, &max, window) == FALSE) return NULL; + +/****************************** + * get list of selected atoms * + ******************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + atom = GAMGI_CAST_ATOM dlist->data; + parent = atom->object.object; + condition = (parent->class == class && + parent->number >= min && parent->number <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = atom; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_n (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +int min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_int (-INT_MAX, +INT_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->n >= min && orbital->n <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_l (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +int min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_int (-INT_MAX, +INT_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->l >= min && orbital->l <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_m (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +int min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_int (-INT_MAX, +INT_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->m >= min && orbital->m <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_charge (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +double min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_double (-DBL_MAX, +DBL_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->charge >= min && orbital->charge <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_style (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +int min, max; +int style; + +/******************** + * get range limits * + ********************/ + +gamgi_gtk_select_combo_int (&min, &max, window); + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + style = (orbital->style == GAMGI_MESA_WIRED) ? 0 : 1; + condition = (style >= min && style <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_density (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +double min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_double (-DBL_MAX, +DBL_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->density >= min && orbital->density <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_radius (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +double min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_double (-DBL_MAX, +DBL_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->radius >= min && orbital->radius <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_phase (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +int min, max; +int phase; + +/******************** + * get range limits * + ********************/ + +gamgi_gtk_select_combo_int (&min, &max, window); + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + phase = (orbital->phase == TRUE) ? 0 : 1; + condition = (phase >= min && phase <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_frame (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +int min, max; +int frame; + +/******************** + * get range limits * + ********************/ + +gamgi_gtk_select_combo_int (&min, &max, window); + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + frame = (orbital->frame == TRUE) ? 0 : 1; + condition = (frame >= min && frame <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_octants (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +int min, max; +int n, octants; - strcpy (swap, name_min); - strcpy (name_min, name_max); - strcpy (name_max, swap); - } +/******************** + * get range limits * + ********************/ -/****************************** - * * get list of selected atoms * - * ******************************/ +if (gamgi_gtk_select_entry_int (-INT_MAX, +INT_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) { - atom = GAMGI_CAST_ATOM dlist->data; - - condition = TRUE; - if (*name_min != '\0' && strcmp (atom->object.name, name_min) < 0) - condition = FALSE; - if (*name_max != '\0' && strcmp (atom->object.name, name_max) > 0) - condition = FALSE; + orbital = GAMGI_CAST_ORBITAL dlist->data; + octants = 0; + for (n = 0; n < 8; n++) + octants += orbital->octants[n]; + condition = (octants >= min && octants <= max); if (condition != action) { dlist_new = gamgi_engine_dlist_add_start (dlist_new); - dlist_new->data = atom; + dlist_new->data = orbital; } } return dlist_new; } -static gamgi_dlist *static_ok_parent (gamgi_dlist *dlist_old, -gamgi_bool action, gamgi_enum class, gamgi_window *window) +static gamgi_dlist *static_ok_axes (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) { -gamgi_atom *atom; -gamgi_object *parent; +gamgi_orbital *orbital; gamgi_dlist *dlist, *dlist_new; gamgi_bool condition; int min, max; +int axes; /******************** - * * get range limits * - * ********************/ + * get range limits * + ********************/ -if (gamgi_gtk_select_entry_int (1, INT_MAX, -&min, &max, window) == FALSE) return NULL; +gamgi_gtk_select_combo_int (&min, &max, window); -/****************************** - * * get list of selected atoms * - * ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) { - atom = GAMGI_CAST_ATOM dlist->data; - parent = atom->object.object; - condition = (parent->class == class && - parent->number >= min && parent->number <= max); + orbital = GAMGI_CAST_ORBITAL dlist->data; + axes = (orbital->axes > 0.0) ? 0 : 1; + condition = (axes >= min && axes <= max); if (condition != action) { dlist_new = gamgi_engine_dlist_add_start (dlist_new); - dlist_new->data = atom; + dlist_new->data = orbital; } } @@ -371,9 +769,9 @@ if (gamgi_gtk_select_entry_double (-DBL_MAX, DBL_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) @@ -406,9 +804,9 @@ if (gamgi_gtk_select_entry_double (-DBL_MAX, DBL_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - *****************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) @@ -441,9 +839,9 @@ if (gamgi_gtk_select_entry_double (-DBL_MAX, DBL_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) @@ -477,9 +875,9 @@ if (gamgi_gtk_select_entry_double (-DBL_MAX, DBL_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) @@ -515,9 +913,9 @@ if (gamgi_gtk_select_entry_double (-DBL_MAX, DBL_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) @@ -553,9 +951,9 @@ if (gamgi_gtk_select_entry_double (-DBL_MAX, DBL_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) @@ -575,48 +973,115 @@ return dlist_new; } -static gamgi_dlist *static_ok_style (gamgi_dlist *dlist_old, +static gamgi_dlist *static_ok_color_r (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window) { -gamgi_text *text; +gamgi_orbital *orbital; gamgi_dlist *dlist, *dlist_new; gamgi_bool condition; -int min, max; -int style; +float min, max; /******************** * get range limits * ********************/ -gamgi_gtk_select_combo_int (&min, &max, window); +if (gamgi_gtk_select_entry_float (-FLT_MAX, +FLT_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) { - text = GAMGI_CAST_TEXT dlist->data; + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->base_r >= min && orbital->base_r <= max); - style = 0; - if (text->style == GAMGI_MESA_SOLID) style = 1; - condition = (style >= min && style <= max); + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_color_g (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +float min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_float (-FLT_MAX, +FLT_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->base_g >= min && orbital->base_g <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_color_b (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +float min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_float (-FLT_MAX, +FLT_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->base_b >= min && orbital->base_b <= max); if (condition != action) { dlist_new = gamgi_engine_dlist_add_start (dlist_new); - dlist_new->data = text; + dlist_new->data = orbital; } } return dlist_new; } -static gamgi_dlist *static_ok_red (gamgi_dlist *dlist_old, +static gamgi_dlist *static_ok_phase_r (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window) { -gamgi_text *text; +gamgi_orbital *orbital; gamgi_dlist *dlist, *dlist_new; gamgi_bool condition; float min, max; @@ -628,30 +1093,30 @@ if (gamgi_gtk_select_entry_float (-FLT_MAX, FLT_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) { - text = GAMGI_CAST_TEXT dlist->data; - condition = (text->red >= min && text->red <= max); + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->phase_r >= min && orbital->phase_r <= max); if (condition != action) { dlist_new = gamgi_engine_dlist_add_start (dlist_new); - dlist_new->data = text; + dlist_new->data = orbital; } } return dlist_new; } -static gamgi_dlist *static_ok_green (gamgi_dlist *dlist_old, +static gamgi_dlist *static_ok_phase_g (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window) { -gamgi_text *text; +gamgi_orbital *orbital; gamgi_dlist *dlist, *dlist_new; gamgi_bool condition; float min, max; @@ -663,30 +1128,30 @@ if (gamgi_gtk_select_entry_float (-FLT_MAX, FLT_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) { - text = GAMGI_CAST_TEXT dlist->data; - condition = (text->green >= min && text->green <= max); + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->phase_g >= min && orbital->phase_g <= max); if (condition != action) { dlist_new = gamgi_engine_dlist_add_start (dlist_new); - dlist_new->data = text; + dlist_new->data = orbital; } } return dlist_new; } -static gamgi_dlist *static_ok_blue (gamgi_dlist *dlist_old, +static gamgi_dlist *static_ok_phase_b (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window) { -gamgi_text *text; +gamgi_orbital *orbital; gamgi_dlist *dlist, *dlist_new; gamgi_bool condition; float min, max; @@ -698,20 +1163,125 @@ if (gamgi_gtk_select_entry_float (-FLT_MAX, FLT_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->phase_b >= min && orbital->phase_b <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_frame_r (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +float min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_float (-FLT_MAX, +FLT_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->frame_r >= min && orbital->frame_r <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_frame_g (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +float min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_float (-FLT_MAX, +FLT_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->frame_g >= min && orbital->frame_g <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = orbital; + } + } + +return dlist_new; +} + +static gamgi_dlist *static_ok_frame_b (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_orbital *orbital; +gamgi_dlist *dlist, *dlist_new; +gamgi_bool condition; +float min, max; + +/******************** + * get range limits * + ********************/ + +if (gamgi_gtk_select_entry_float (-FLT_MAX, +FLT_MAX, &min, &max, window) == FALSE) return NULL; + +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) { - text = GAMGI_CAST_TEXT dlist->data; - condition = (text->blue >= min && text->blue <= max); + orbital = GAMGI_CAST_ORBITAL dlist->data; + condition = (orbital->frame_b >= min && orbital->frame_b <= max); if (condition != action) { dlist_new = gamgi_engine_dlist_add_start (dlist_new); - dlist_new->data = text; + dlist_new->data = orbital; } } @@ -733,9 +1303,9 @@ if (gamgi_gtk_select_entry_double (-DBL_MAX, DBL_MAX, &min, &max, window) == FALSE) return NULL; -/****************************** - * get list of selected texts * - ******************************/ +/********************************* + * get list of selected orbitals * + *********************************/ dlist_new = NULL; for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) @@ -837,6 +1407,31 @@ dlist_new = static_ok_parent (dlist_old, action, GAMGI_ENGINE_TEXT, window); +else if (strcmp (name, "N") == 0) + dlist_new = static_ok_n (dlist_old, action, window); +else if (strcmp (name, "L") == 0) + dlist_new = static_ok_l (dlist_old, action, window); +else if (strcmp (name, "M") == 0) + dlist_new = static_ok_m (dlist_old, action, window); +else if (strcmp (name, "Charge") == 0) + dlist_new = static_ok_charge (dlist_old, action, window); + +else if (strcmp (name, "Style") == 0) + dlist_new = static_ok_style (dlist_old, action, window); +else if (strcmp (name, "Density") == 0) + dlist_new = static_ok_density (dlist_old, action, window); +else if (strcmp (name, "Radius") == 0) + dlist_new = static_ok_radius (dlist_old, action, window); + +else if (strcmp (name, "Phase") == 0) + dlist_new = static_ok_phase (dlist_old, action, window); +else if (strcmp (name, "Frame") == 0) + dlist_new = static_ok_frame (dlist_old, action, window); +else if (strcmp (name, "Octants") == 0) + dlist_new = static_ok_octants (dlist_old, action, window); +else if (strcmp (name, "Axes") == 0) + dlist_new = static_ok_axes (dlist_old, action, window); + else if (strcmp (name, "X") == 0) dlist_new = static_ok_x (dlist_old, action, window); else if (strcmp (name, "Y") == 0) @@ -850,14 +1445,24 @@ else if (strcmp (name, "E3") == 0) dlist_new = static_ok_e3 (dlist_old, action, window); -else if (strcmp (name, "Style") == 0) - dlist_new = static_ok_style (dlist_old, action, window); -else if (strcmp (name, "R") == 0) - dlist_new = static_ok_red (dlist_old, action, window); -else if (strcmp (name, "G") == 0) - dlist_new = static_ok_green (dlist_old, action, window); -else if (strcmp (name, "B") == 0) - dlist_new = static_ok_blue (dlist_old, action, window); +else if (strcmp (name, "Color_R") == 0) + dlist_new = static_ok_color_r (dlist_old, action, window); +else if (strcmp (name, "Color_G") == 0) + dlist_new = static_ok_color_g (dlist_old, action, window); +else if (strcmp (name, "Color_B") == 0) + dlist_new = static_ok_color_b (dlist_old, action, window); +else if (strcmp (name, "Phase_R") == 0) + dlist_new = static_ok_phase_r (dlist_old, action, window); +else if (strcmp (name, "Phase_G") == 0) + dlist_new = static_ok_phase_g (dlist_old, action, window); +else if (strcmp (name, "Phase_B") == 0) + dlist_new = static_ok_phase_b (dlist_old, action, window); +else if (strcmp (name, "Frame_R") == 0) + dlist_new = static_ok_frame_r (dlist_old, action, window); +else if (strcmp (name, "Frame_G") == 0) + dlist_new = static_ok_frame_g (dlist_old, action, window); +else if (strcmp (name, "Frame_B") == 0) + dlist_new = static_ok_frame_b (dlist_old, action, window); else if (strcmp (name, "Scale") == 0) dlist_new = static_ok_scale (dlist_old, action, window); @@ -1273,8 +1878,6 @@ gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "Density", -1); gtk_tree_store_append (tree_store, &child, &iter); -gtk_tree_store_set (tree_store, &child, 0, "Sampling", -1); -gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "Radius", -1); gtk_tree_store_append (tree_store, &iter, NULL); @@ -1364,14 +1967,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + combo = gtk_combo_box_new (); gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); g_object_set_data (G_OBJECT (dialog), "widget_min", combo); -gtk_widget_show (combo); - -renderer = gtk_cell_renderer_text_new (); -gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); -gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); /******* * Max * @@ -1389,14 +1991,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + combo = gtk_combo_box_new (); gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); g_object_set_data (G_OBJECT (dialog), "widget_max", combo); -gtk_widget_show (combo); - -renderer = gtk_cell_renderer_text_new (); -gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); -gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/orbital/gamgi_gtk_orbital_select.h gamgi-0.17/src/gtk/orbital/gamgi_gtk_orbital_select.h --- gamgi-0.16.8/src/gtk/orbital/gamgi_gtk_orbital_select.h 2013-10-02 23:11:48.000000000 +0000 +++ gamgi-0.17/src/gtk/orbital/gamgi_gtk_orbital_select.h 2013-11-03 00:28:07.000000000 +0000 @@ -25,6 +25,8 @@ static void static_method_style (char *label, gamgi_window *window); +static void static_method_octants (char *label, gamgi_window *window); + static void static_method (GtkWidget *widget, void *data); static void static_reset (gamgi_window *window); diff -Nru gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_create.c gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_create.c --- gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_create.c 2013-10-29 18:09:11.000000000 +0000 +++ gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_create.c 2013-12-19 00:04:11.000000000 +0000 @@ -232,7 +232,7 @@ cell = GAMGI_CAST_CELL gamgi_gtk_object_name_number (dialog, "entry_cell", GAMGI_ENGINE_CELL, window); -if (cell != NULL && cell->type == GAMGI_PHYS_PROJECTION) +if (cell != NULL && cell->model == GAMGI_PHYS_PROJECTION) { gtk_widget_hide (vbox_scope); gtk_widget_show (vbox_projection); @@ -604,10 +604,10 @@ * get projection: Wulff or Schmidt * ************************************/ -plane->projection = gamgi_phys_projection_wulff; +plane->net = gamgi_phys_projection_wulff; button = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "button_schmidt"); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)) == TRUE) - plane->projection = gamgi_phys_projection_schmidt; + plane->net = gamgi_phys_projection_schmidt; /******************************** * get plane model: pole, trace * @@ -750,7 +750,7 @@ ************************************/ if (static_ok_cell (plane, &cell, window) == FALSE) return; - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { if (static_ok_projection (plane, &pole, &trace, window) == FALSE) return; } @@ -791,7 +791,7 @@ ************************************/ dlist = NULL; - if (cell->type != GAMGI_PHYS_PROJECTION) + if (cell->model != GAMGI_PHYS_PROJECTION) { dlist = gamgi_engine_dlist_atom_object (GAMGI_CAST_OBJECT cell, NULL); dlist = gamgi_engine_filter_atom (dlist, 0, filter, @@ -818,7 +818,7 @@ if (strcmp (plane->object.name, "") == 0) strcpy (plane->object.name, "Plane"); - plane->type = GAMGI_PHYS_POLYGON; + plane->model = GAMGI_PHYS_POLYGON; plane->vectors = GAMGI_PHYS_PLANE_VECTORS; parent = gamgi_phys_plane_parent (atom1, atom2, atom3, window); @@ -1146,9 +1146,9 @@ gtk_box_pack_start (GTK_BOX (vbox_page), vbox_top, FALSE, FALSE, 0); gtk_widget_show (vbox_top); -/******** - * Type * - ********/ +/************* + * Reference * + *************/ hbox_center = gtk_hbox_new (TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox_top), hbox_center, FALSE, FALSE, 0); diff -Nru gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_link.c gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_link.c --- gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_link.c 2011-05-25 16:56:19.000000000 +0000 +++ gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_link.c 2013-12-18 22:30:05.000000000 +0000 @@ -424,7 +424,7 @@ gamgi_layer *layer_child, gamgi_layer *layer_parent, gamgi_window *window) { if (child->class == GAMGI_ENGINE_PLANE && -(GAMGI_CAST_PLANE child)->type != GAMGI_PHYS_POLYGON) +(GAMGI_CAST_PLANE child)->model != GAMGI_PHYS_POLYGON) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", diff -Nru gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_list.c gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_list.c --- gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_list.c 2013-10-29 16:43:34.000000000 +0000 +++ gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_list.c 2013-12-19 00:04:29.000000000 +0000 @@ -772,7 +772,7 @@ gamgi_enum structure, gamgi_enum filter, double thickness, gamgi_dlist *dlist, int start, int end, gamgi_enum pole, gamgi_enum trace) { -if (cell->type == GAMGI_PHYS_PROJECTION) +if (cell->model == GAMGI_PHYS_PROJECTION) gamgi_phys_plane_projection (plane, cell, pole, trace); else gamgi_phys_plane_range (plane, cell, diff -Nru gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_modify.c gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_modify.c --- gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_modify.c 2013-10-29 19:02:23.000000000 +0000 +++ gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_modify.c 2013-12-19 00:05:53.000000000 +0000 @@ -77,8 +77,8 @@ double thickness; int order; int node[4]; -gamgi_projection projection; -gamgi_enum type; +gamgi_net net; +gamgi_enum model; double translation[3], rotation[3]; float red, green, blue; double scale; } cache; @@ -491,9 +491,9 @@ GtkWidget *combo; int row; -/****************************************************** - * default for projection and type combo boxes: Local * - ******************************************************/ +/******************************************************* + * default for projection and model combo boxes: Local * + *******************************************************/ combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_reference"); row = gtk_combo_box_get_active (GTK_COMBO_BOX (combo)); @@ -651,7 +651,7 @@ "entry_cell", GAMGI_ENGINE_CELL, window); if (cell != NULL) { - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { gtk_widget_hide (vbox_scope); gtk_widget_hide (vbox_position); @@ -795,10 +795,10 @@ const char *name; int row; -/*************************************************** - * type: Cell, Atom1,Atom2,Atom3 are required when * - * Reference is explicitly set to Cell or Atoms * - ***************************************************/ +/***************************************************** + * Cell, Atom1,Atom2,Atom3 objects are required when * + * Reference is explicitly set to Cell or Atoms * + *****************************************************/ cache.new[STATIC_REFERENCE] = FALSE; combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_reference"); @@ -1070,9 +1070,9 @@ if (visible == TRUE && row < STATIC_NET_LOCAL) { cache.new[STATIC_NET] = TRUE; - cache.projection = NULL; - if (row == STATIC_NET_WULFF) cache.projection = gamgi_phys_projection_wulff; - if (row == STATIC_NET_SCHMIDT) cache.projection = gamgi_phys_projection_schmidt; + cache.net = NULL; + if (row == STATIC_NET_WULFF) cache.net = gamgi_phys_projection_wulff; + if (row == STATIC_NET_SCHMIDT) cache.net = gamgi_phys_projection_schmidt; } cache.new[STATIC_MODEL] = FALSE; @@ -1081,9 +1081,9 @@ if (visible == TRUE && row < STATIC_MODEL_LOCAL) { cache.new[STATIC_MODEL] = TRUE; - cache.type = FALSE; - if (row == STATIC_MODEL_POLE) cache.type = GAMGI_PHYS_POLE; - if (row == STATIC_MODEL_TRACE) cache.type = GAMGI_PHYS_TRACE; + cache.model = FALSE; + if (row == STATIC_MODEL_POLE) cache.model = GAMGI_PHYS_POLE; + if (row == STATIC_MODEL_TRACE) cache.model = GAMGI_PHYS_TRACE; } /********************************* @@ -1246,8 +1246,8 @@ gamgi_object *parent; gamgi_dlist *dlist; char name[GAMGI_ENGINE_TOKEN]; -gamgi_projection projection; -gamgi_enum reference, vectors, type; +gamgi_net net; +gamgi_enum reference, vectors, model; gamgi_bool link[3]; gamgi_bool new; double zero[3], euler[3], origin[3]; @@ -1274,8 +1274,8 @@ hkl[2] = plane->hkl[2]; vectors = plane->vectors; -projection = plane->projection; -type = plane->type; +net = plane->net; +model = plane->model; order = plane->order; gamgi_math_position_plane_rotation_get (plane, euler); @@ -1299,8 +1299,8 @@ if (cache.new[STATIC_L] == TRUE) hkl[2] = cache.hkl[2]; if (cache.new[STATIC_VECTORS] == TRUE) vectors = cache.vectors; -if (cache.new[STATIC_NET] == TRUE) projection = cache.projection; -if (cache.new[STATIC_MODEL] == TRUE) type = cache.type; +if (cache.new[STATIC_NET] == TRUE) net = cache.net; +if (cache.new[STATIC_MODEL] == TRUE) model = cache.model; if (cache.new[STATIC_ORDER] == TRUE) order = cache.order; if (cache.new[STATIC_TRANSLATION_X] == TRUE) origin[0] = cache.translation[0]; @@ -1328,14 +1328,14 @@ hkl[0] = 0; hkl[1] = 0; hkl[2] = 0; vectors = GAMGI_PHYS_PLANE_VECTORS; order = 1; - type = GAMGI_PHYS_POLYGON; - projection = NULL; + model = GAMGI_PHYS_POLYGON; + net = NULL; } if (reference == GAMGI_ENGINE_CELL) { - if (cell->type == GAMGI_PHYS_PROJECTION) order = 1; - else { type = GAMGI_PHYS_POLYGON; projection = NULL; } + if (cell->model == GAMGI_PHYS_PROJECTION) order = 1; + else { model = GAMGI_PHYS_POLYGON; net = NULL; } } } @@ -1353,8 +1353,8 @@ return FALSE; } - if ((type == GAMGI_PHYS_POLE || type == GAMGI_PHYS_TRACE) && - (projection == NULL || cell == NULL || cell->type != GAMGI_PHYS_PROJECTION)) + if ((model == GAMGI_PHYS_POLE || model == GAMGI_PHYS_TRACE) && + (net == NULL || cell == NULL || cell->model != GAMGI_PHYS_PROJECTION)) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", @@ -1362,7 +1362,8 @@ return FALSE; } - if (type != GAMGI_PHYS_POLE && type != GAMGI_PHYS_TRACE && projection != NULL) + if (model != GAMGI_PHYS_POLE && model != GAMGI_PHYS_TRACE && + net != NULL) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", @@ -1370,7 +1371,7 @@ return FALSE; } - if (type == GAMGI_PHYS_VECTOR && + if (model == GAMGI_PHYS_VECTOR && (cache.new[STATIC_TRANSLATION_X] == TRUE || cache.new[STATIC_TRANSLATION_Y] == TRUE || cache.new[STATIC_TRANSLATION_Z] == TRUE || @@ -1412,7 +1413,7 @@ return FALSE; } - if (projection != NULL) + if (net != NULL) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", @@ -1420,8 +1421,8 @@ return FALSE; } - if (type == GAMGI_PHYS_POLE || type == GAMGI_PHYS_TRACE || - type == GAMGI_PHYS_VECTOR) + if (model == GAMGI_PHYS_POLE || model == GAMGI_PHYS_TRACE || + model == GAMGI_PHYS_VECTOR) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", @@ -1479,8 +1480,8 @@ } if (order != 1 && -(reference == GAMGI_ENGINE_ATOM || type == GAMGI_PHYS_POLE || -type == GAMGI_PHYS_TRACE || type == GAMGI_PHYS_VECTOR)) +(reference == GAMGI_ENGINE_ATOM || model == GAMGI_PHYS_POLE || +model == GAMGI_PHYS_TRACE || model == GAMGI_PHYS_VECTOR)) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", @@ -1503,15 +1504,15 @@ if (plane->vectors != vectors) new = TRUE; if (plane->order != order) new = TRUE; -if (plane->projection != projection) new = TRUE; -if (plane->type != type) new = TRUE; +if (plane->net != net) new = TRUE; +if (plane->model != model) new = TRUE; /************************************* * reciprocal lattica cannot be new * * and polygon planes need thickness * *************************************/ -if (new == TRUE && plane->type == GAMGI_PHYS_VECTOR) +if (new == TRUE && plane->model == GAMGI_PHYS_VECTOR) { if (cache.local == TRUE) gamgi_gtk_dialog_message_create ("Error", @@ -1519,7 +1520,7 @@ return FALSE; } -if (new == TRUE && type == GAMGI_PHYS_POLYGON && +if (new == TRUE && model == GAMGI_PHYS_POLYGON && cache.new[STATIC_THICKNESS] == FALSE) { if (cache.local == TRUE) @@ -1548,8 +1549,8 @@ plane->vectors = vectors; plane->order = order; -plane->projection = projection; -plane->type = type; +plane->net = net; +plane->model = model; plane->red = red; plane->green = green; @@ -1591,10 +1592,10 @@ * this is a crystallographic plane * ************************************/ - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { - if (plane->type == GAMGI_PHYS_POLE) pole = TRUE; else pole = FALSE; - if (plane->type == GAMGI_PHYS_TRACE) trace = TRUE; else trace = FALSE; + if (plane->model == GAMGI_PHYS_POLE) pole = TRUE; else pole = FALSE; + if (plane->model == GAMGI_PHYS_TRACE) trace = TRUE; else trace = FALSE; gamgi_phys_plane_projection (plane, cell, pole, trace); } else @@ -1617,10 +1618,10 @@ * this is an atomic plane: 1) get list of parent atoms * * 2) reorder list so the three defining atoms come first * * * - * the plane type is needed because of the rotation next * + * the plane model is needed because of the rotation next * **********************************************************/ - plane->type = GAMGI_PHYS_POLYGON; + plane->model = GAMGI_PHYS_POLYGON; plane->vectors = GAMGI_PHYS_PLANE_VECTORS; parent = gamgi_phys_plane_parent (cache.atom1, cache.atom2, cache.atom3, window); @@ -1876,18 +1877,18 @@ combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_vectors"); gtk_combo_box_set_active (GTK_COMBO_BOX (combo), plane->vectors - 1); - if (cell->type == GAMGI_PHYS_PROJECTION) + if (cell->model == GAMGI_PHYS_PROJECTION) { combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_net"); - if (plane->projection == gamgi_phys_projection_wulff) + if (plane->net == gamgi_phys_projection_wulff) gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_NET_WULFF); - if (plane->projection == gamgi_phys_projection_schmidt) + if (plane->net == gamgi_phys_projection_schmidt) gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_NET_SCHMIDT); combo = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), "combo_model"); - if (plane->type == GAMGI_PHYS_POLE) + if (plane->model == GAMGI_PHYS_POLE) gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_MODEL_POLE); - if (plane->type == GAMGI_PHYS_TRACE) + if (plane->model == GAMGI_PHYS_TRACE) gtk_combo_box_set_active (GTK_COMBO_BOX (combo), STATIC_MODEL_TRACE); } else diff -Nru gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_select.c gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_select.c --- gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_select.c 2010-12-18 22:08:24.000000000 +0000 +++ gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_select.c 2013-12-20 16:16:33.000000000 +0000 @@ -12,6 +12,7 @@ #include "gamgi_engine.h" #include "gamgi_gtk.h" #include "gamgi_mesa.h" +#include "gamgi_phys.h" #include "gamgi_io.h" #include "gamgi_global.h" @@ -21,6 +22,7 @@ #include "gamgi_gtk_dialog.h" #include "gamgi_mesa_select.h" #include "gamgi_math_node.h" +#include "gamgi_phys_projection.h" #include "gamgi_io_token.h" #include "gamgi_global_selection.h" @@ -156,7 +158,7 @@ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); } -static void static_method_o4 (char *label, gamgi_window *window) +static void static_method_model (char *label, gamgi_window *window) { GtkWidget *dialog = window->dialog0; GtkWidget *widget; @@ -177,19 +179,47 @@ store = gtk_list_store_new (1, G_TYPE_STRING); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "000", -1); +gtk_list_store_set (store, &iter, 0, "Polygon", -1); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "011", -1); +gtk_list_store_set (store, &iter, 0, "Pole", -1); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "101", -1); +gtk_list_store_set (store, &iter, 0, "Trace", -1); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "110", -1); -gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "111", -1); +gtk_list_store_set (store, &iter, 0, "Vector", -1); +gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); +g_object_unref (store); + +renderer = gtk_cell_renderer_text_new (); +gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); +gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); + +gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); +} + +static void static_method_net (char *label, gamgi_window *window) +{ +GtkWidget *dialog = window->dialog0; +GtkWidget *widget; +GtkWidget *hbox; +GtkWidget *combo; +GtkListStore *store; +GtkCellRenderer *renderer; +GtkTreeIter iter; + +widget = (GtkWidget *) g_object_get_data (G_OBJECT (dialog), label); +hbox = gtk_widget_get_parent (widget); +gtk_widget_destroy (widget); + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), label, combo); +gtk_widget_show (combo); + +store = gtk_list_store_new (1, G_TYPE_STRING); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "122", -1); +gtk_list_store_set (store, &iter, 0, "Wulff", -1); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "211", -1); +gtk_list_store_set (store, &iter, 0, "Schmidt", -1); gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); g_object_unref (store); @@ -200,7 +230,7 @@ gtk_combo_box_set_active (GTK_COMBO_BOX (combo), 0); } -static void static_method_style (char *label, gamgi_window *window) +static void static_method_o4 (char *label, gamgi_window *window) { GtkWidget *dialog = window->dialog0; GtkWidget *widget; @@ -221,9 +251,19 @@ store = gtk_list_store_new (1, G_TYPE_STRING); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "Wired", -1); +gtk_list_store_set (store, &iter, 0, "000", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, "011", -1); gtk_list_store_append (store, &iter); -gtk_list_store_set (store, &iter, 0, "Solid", -1); +gtk_list_store_set (store, &iter, 0, "101", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, "110", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, "111", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, "122", -1); +gtk_list_store_append (store, &iter); +gtk_list_store_set (store, &iter, 0, "211", -1); gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (store)); g_object_unref (store); @@ -277,16 +317,21 @@ static_method_reference ("widget_min", window); static_method_reference ("widget_max", window); } +else if (strcmp (name, "Model") == 0) + { + static_method_model ("widget_min", window); + static_method_model ("widget_max", window); + } +else if (strcmp (name, "Net") == 0) + { + static_method_net ("widget_min", window); + static_method_net ("widget_max", window); + } else if (strcmp (name, "O4") == 0) { static_method_o4 ("widget_min", window); static_method_o4 ("widget_max", window); } -else if (strcmp (name, "Style") == 0) - { - static_method_style ("widget_min", window); - static_method_style ("widget_max", window); - } else { gamgi_gtk_select_method_default ("widget_min", window); @@ -474,6 +519,46 @@ return dlist_new; } +static gamgi_dlist *static_ok_model (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_plane *plane; +gamgi_dlist *dlist, *dlist_new; +gamgi_enum model; +gamgi_bool condition; +int min, max; + +/******************** + * get range limits * + ********************/ + +gamgi_gtk_select_combo_int (&min, &max, window); + +/****************************** + * get list of selected planes * + ******************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + plane = GAMGI_CAST_PLANE dlist->data; + + if (plane->model == GAMGI_PHYS_POLYGON) model = 0; + if (plane->model == GAMGI_PHYS_POLE) model = 1; + if (plane->model == GAMGI_PHYS_TRACE) model = 2; + if (plane->model == GAMGI_PHYS_VECTOR) model = 3; + condition = (model >= min && model <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = plane; + } + } + +return dlist_new; +} + static gamgi_dlist *static_ok_h (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window) { @@ -582,6 +667,44 @@ return dlist_new; } +static gamgi_dlist *static_ok_net (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window) +{ +gamgi_plane *plane; +gamgi_dlist *dlist, *dlist_new; +gamgi_enum net; +gamgi_bool condition; +int min, max; + +/******************** + * get range limits * + ********************/ + +gamgi_gtk_select_combo_int (&min, &max, window); + +/****************************** + * get list of selected planes * + ******************************/ + +dlist_new = NULL; +for (dlist = dlist_old; dlist != NULL; dlist = dlist->next) + { + plane = GAMGI_CAST_PLANE dlist->data; + + if (plane->net == gamgi_phys_projection_wulff) net = 0; + if (plane->net == gamgi_phys_projection_schmidt) net = 1; + condition = (net >= min && net <= max); + + if (condition != action) + { + dlist_new = gamgi_engine_dlist_add_start (dlist_new); + dlist_new->data = plane; + } + } + +return dlist_new; +} + static gamgi_dlist *static_ok_o1 (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window) { @@ -953,6 +1076,8 @@ else if (strcmp (name, "Reference") == 0) dlist_new = static_ok_reference (dlist_old, action, window); +else if (strcmp (name, "Model") == 0) + dlist_new = static_ok_model (dlist_old, action, window); else if (strcmp (name, "H") == 0) dlist_new = static_ok_h (dlist_old, action, window); else if (strcmp (name, "K") == 0) @@ -960,6 +1085,9 @@ else if (strcmp (name, "L") == 0) dlist_new = static_ok_l (dlist_old, action, window); +else if (strcmp (name, "Net") == 0) + dlist_new = static_ok_net (dlist_old, action, window); + else if (strcmp (name, "O1") == 0) dlist_new = static_ok_o1 (dlist_old, action, window); else if (strcmp (name, "O2") == 0) @@ -1158,7 +1286,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -1392,6 +1519,8 @@ gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "Reference", -1); gtk_tree_store_append (tree_store, &child, &iter); +gtk_tree_store_set (tree_store, &child, 0, "Model", -1); +gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "H", -1); gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "K", -1); @@ -1399,6 +1528,11 @@ gtk_tree_store_set (tree_store, &child, 0, "L", -1); gtk_tree_store_append (tree_store, &iter, NULL); +gtk_tree_store_set (tree_store, &iter, 0, "Projection", -1); +gtk_tree_store_append (tree_store, &child, &iter); +gtk_tree_store_set (tree_store, &child, 0, "Net", -1); + +gtk_tree_store_append (tree_store, &iter, NULL); gtk_tree_store_set (tree_store, &iter, 0, "Scope", -1); gtk_tree_store_append (tree_store, &child, &iter); gtk_tree_store_set (tree_store, &child, 0, "Autonomy", -1); @@ -1457,12 +1591,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -1480,12 +1615,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_select.h gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_select.h --- gamgi-0.16.8/src/gtk/plane/gamgi_gtk_plane_select.h 2010-11-24 17:08:33.000000000 +0000 +++ gamgi-0.17/src/gtk/plane/gamgi_gtk_plane_select.h 2013-12-20 16:18:44.000000000 +0000 @@ -25,7 +25,9 @@ static void static_method_reference (char *label, gamgi_window *window); -static void static_method_autonomy (char *label, gamgi_window *window); +static void static_method_model (char *label, gamgi_window *window); + +static void static_method_net (char *label, gamgi_window *window); static void static_method_o4 (char *label, gamgi_window *window); @@ -42,6 +44,9 @@ static gamgi_dlist *static_ok_reference (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window); +static gamgi_dlist *static_ok_model (gamgi_dlist *dlist_old, +gamgi_bool action, gamgi_window *window); + static gamgi_dlist *static_ok_h (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window); @@ -51,7 +56,7 @@ static gamgi_dlist *static_ok_l (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window); -static gamgi_dlist *static_ok_autonomy (gamgi_dlist *dlist_old, +static gamgi_dlist *static_ok_net (gamgi_dlist *dlist_old, gamgi_bool action, gamgi_window *window); static gamgi_dlist *static_ok_o1 (gamgi_dlist *dlist_old, diff -Nru gamgi-0.16.8/src/gtk/text/gamgi_gtk_text_select.c gamgi-0.17/src/gtk/text/gamgi_gtk_text_select.c --- gamgi-0.16.8/src/gtk/text/gamgi_gtk_text_select.c 2013-05-15 14:30:02.000000000 +0000 +++ gamgi-0.17/src/gtk/text/gamgi_gtk_text_select.c 2013-11-22 21:16:08.000000000 +0000 @@ -1509,16 +1509,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + combo = gtk_combo_box_new (); gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); g_object_set_data (G_OBJECT (dialog), "widget_min", combo); -gtk_widget_show (combo); - -gamgi_gtk_text_config_all (combo); - -renderer = gtk_cell_renderer_text_new (); -gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); -gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); /******* * Max * @@ -1536,16 +1533,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + combo = gtk_combo_box_new (); gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); g_object_set_data (G_OBJECT (dialog), "widget_max", combo); -gtk_widget_show (combo); - -gamgi_gtk_text_config_all (combo); - -renderer = gtk_cell_renderer_text_new (); -gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE); -gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer, "text", 0, NULL); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/gtk/window/gamgi_gtk_window_select.c gamgi-0.17/src/gtk/window/gamgi_gtk_window_select.c --- gamgi-0.16.8/src/gtk/window/gamgi_gtk_window_select.c 2013-05-15 14:30:08.000000000 +0000 +++ gamgi-0.17/src/gtk/window/gamgi_gtk_window_select.c 2013-11-22 21:18:22.000000000 +0000 @@ -486,7 +486,6 @@ GtkWidget *treeview; GtkWidget *combo; GtkWidget *button; -GtkWidget *entry; GtkWidget *label; GtkWidget *hbox_center, *hbox_left; GtkWidget *vbox_dialog, *vbox_page, *vbox_top, *vbox_top_top; @@ -725,12 +724,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_min", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_min", combo); /******* * Max * @@ -748,12 +748,13 @@ gtk_box_pack_start (GTK_BOX (hbox_center), hbox_left, FALSE, FALSE, 0); gtk_widget_show (hbox_left); -entry = gtk_entry_new (); -gtk_box_pack_start (GTK_BOX (hbox_left), entry, FALSE, FALSE, 0); -gtk_entry_set_width_chars (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -gtk_entry_set_max_length (GTK_ENTRY (entry), GAMGI_GTK_CHAR_10); -g_object_set_data (G_OBJECT (dialog), "widget_max", entry); -gtk_widget_show (entry); +/********************************************** + * this widget will be removed in static_init * + **********************************************/ + +combo = gtk_combo_box_new (); +gtk_box_pack_start (GTK_BOX (hbox_left), combo, FALSE, FALSE, 0); +g_object_set_data (G_OBJECT (dialog), "widget_max", combo); /********************* * Ok/Cancel buttons * diff -Nru gamgi-0.16.8/src/io/gamgi_io.h gamgi-0.17/src/io/gamgi_io.h --- gamgi-0.16.8/src/io/gamgi_io.h 2013-10-31 15:18:21.000000000 +0000 +++ gamgi-0.17/src/io/gamgi_io.h 2013-12-20 16:48:50.000000000 +0000 @@ -101,8 +101,8 @@ * the Gamgi->About GUI dialog * *******************************/ -#define GAMGI_IO_DATE "31st October 2013" -#define GAMGI_IO_VERSION "0.16.8" +#define GAMGI_IO_DATE "20th December 2013" +#define GAMGI_IO_VERSION "0.17+" #define GAMGI_IO_AUTHORS "Carlos Pereira et al." #define GAMGI_IO_LICENSE "GPL" #define GAMGI_IO_WEBSITE "http://www.gamgi.org/" diff -Nru gamgi-0.16.8/src/io/gamgi_io_x3d.c gamgi-0.17/src/io/gamgi_io_x3d.c --- gamgi-0.16.8/src/io/gamgi_io_x3d.c 2012-08-21 21:24:34.000000000 +0000 +++ gamgi-0.17/src/io/gamgi_io_x3d.c 2013-12-19 00:17:21.000000000 +0000 @@ -533,7 +533,7 @@ gamgi->gamgi->length, direction->origin[2]); gamgi_io_file_fprintf (fp, string, error); - if (direction->type == GAMGI_PHYS_LINE) + if (direction->model == GAMGI_PHYS_LINE) { /****************************** * render direction as a line * @@ -565,7 +565,7 @@ gamgi_io_file_fprintf (fp, "\n", error); gamgi_io_file_fprintf (fp, "\n", error); } - else if (direction->type == GAMGI_PHYS_POLE) + else if (direction->model == GAMGI_PHYS_POLE) { /***************************************************************** * stereographic projection: render direction as a chess bitmask * @@ -576,7 +576,7 @@ color[2] = direction->blue; gamgi_io_x3d_render_chess (fp, direction->loops[0], direction->points, color, error); } - else if (direction->type == GAMGI_PHYS_TRACE) + else if (direction->model == GAMGI_PHYS_TRACE) { /********************************************************* * stereographic projection: render direction as an arch * @@ -635,7 +635,7 @@ if (plane->loops[0] != 0) { - if (plane->type == GAMGI_PHYS_VECTOR) + if (plane->model == GAMGI_PHYS_VECTOR) { /******************************************************* * reciprocal lattice: render plane as a cross bitmask * @@ -654,7 +654,7 @@ gamgi->gamgi->length, plane->origin[2]); gamgi_io_file_fprintf (fp, string, error); - if (plane->type == GAMGI_PHYS_POLYGON) + if (plane->model == GAMGI_PHYS_POLYGON) { /***************************** * render plane as a polygon * @@ -689,7 +689,7 @@ gamgi_io_file_fprintf(fp, "\n", error); gamgi_io_file_fprintf(fp, "\n", error); } - else if (plane->type == GAMGI_PHYS_POLE) + else if (plane->model == GAMGI_PHYS_POLE) { /************************************************************* * stereographic projection: render plane as a cross bitmask * @@ -700,7 +700,7 @@ color[2] = plane->blue; gamgi_io_x3d_render_cross (fp, plane->loops[0], plane->points, color, error); } - else if (plane->type == GAMGI_PHYS_TRACE) + else if (plane->model == GAMGI_PHYS_TRACE) { /***************************************************** * stereographic projection: render plane as an arch * @@ -1012,7 +1012,7 @@ gamgi->gamgi->length, cell->origin[2]); gamgi_io_file_fprintf (fp, string, error); -if (cell->type != GAMGI_PHYS_PROJECTION) +if (cell->model != GAMGI_PHYS_PROJECTION) { gamgi_math_quaternion_to_axis (cell->quaternion, &phi, axis); sprintf (string, "\n", @@ -1031,8 +1031,8 @@ if (cell->loops != NULL && cell->borders != FALSE && (cell->lattice != GAMGI_PHYS_HEXAGONAL_P || -(cell->type != GAMGI_PHYS_WIGNER && cell->type != GAMGI_PHYS_CONVENTIONAL)) && -(cell->lattice != GAMGI_PHYS_ORTHORHOMBIC_C || cell->type != GAMGI_PHYS_WIGNER)) +(cell->model != GAMGI_PHYS_WIGNER && cell->model != GAMGI_PHYS_CONVENTIONAL)) && +(cell->lattice != GAMGI_PHYS_ORTHORHOMBIC_C || cell->model != GAMGI_PHYS_WIGNER)) { gamgi_io_file_fprintf (fp, "\n\n", error); @@ -1120,7 +1120,7 @@ if (cell->nodes == TRUE) gamgi_io_x3d_render_points (fp, cell->n_nodes, cell->points, color,error); -if (cell->type != GAMGI_PHYS_PROJECTION) +if (cell->model != GAMGI_PHYS_PROJECTION) gamgi_io_file_fprintf (fp, "\n", error); gamgi_io_file_fprintf (fp, "\n", error); diff -Nru gamgi-0.16.8/src/math/gamgi_math.h gamgi-0.17/src/math/gamgi_math.h --- gamgi-0.16.8/src/math/gamgi_math.h 2013-06-15 20:22:20.000000000 +0000 +++ gamgi-0.17/src/math/gamgi_math.h 2013-12-15 23:04:07.000000000 +0000 @@ -103,7 +103,6 @@ #define GAMGI_MATH_DECIMAL_ANGLE 2 #define GAMGI_MATH_DECIMAL_MASS 4 #define GAMGI_MATH_DECIMAL_CHARGE 4 -#define GAMGI_MATH_DECIMAL_TEMPERATURE 2 #define GAMGI_MATH_DECIMAL_OCCUPANCY 4 #define GAMGI_MATH_DECIMAL_COLOR 3 #define GAMGI_MATH_DECIMAL_SCALE 3 diff -Nru gamgi-0.16.8/src/math/gamgi_math_measure.c gamgi-0.17/src/math/gamgi_math_measure.c --- gamgi-0.16.8/src/math/gamgi_math_measure.c 2011-03-05 23:55:36.000000000 +0000 +++ gamgi-0.17/src/math/gamgi_math_measure.c 2013-12-18 23:12:41.000000000 +0000 @@ -204,7 +204,7 @@ * rotate yes, normalize yes * **********************************************/ -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) { /************************************** * a parent cell is not needed * @@ -266,7 +266,7 @@ * rotate yes, normalize yes * ***************************************/ -if (plane->type == GAMGI_PHYS_POLYGON) +if (plane->model == GAMGI_PHYS_POLYGON) { /****************************************************** * polygon planes: 1) use transformed center to enter * @@ -289,7 +289,7 @@ if (object->class != GAMGI_ENGINE_CELL) return FALSE; cell = GAMGI_CAST_CELL object; - if (plane->type == GAMGI_PHYS_VECTOR) + if (plane->model == GAMGI_PHYS_VECTOR) { /******************** * reciprocal space * @@ -320,7 +320,7 @@ gamgi_bool gamgi_math_measure_length_direction (gamgi_direction *direction, double *length) { -if (direction->type != GAMGI_PHYS_LINE) return FALSE; +if (direction->model != GAMGI_PHYS_LINE) return FALSE; *length = gamgi_math_polygon_length_lines (direction->loops, direction->points); @@ -393,7 +393,7 @@ if (object->class != GAMGI_ENGINE_CELL) return FALSE; cell = GAMGI_CAST_CELL object; -if (plane->type == GAMGI_PHYS_VECTOR) +if (plane->model == GAMGI_PHYS_VECTOR) { if (cell->reciprocal == 0.0) return FALSE; gamgi_math_cell_offset (cell, origin); @@ -411,7 +411,7 @@ gamgi_bool gamgi_math_measure_area_plane (gamgi_plane *plane, double *area) { -if (plane->type != GAMGI_PHYS_POLYGON) return FALSE; +if (plane->model != GAMGI_PHYS_POLYGON) return FALSE; *area = gamgi_math_polygon_area_faces (plane->loops, plane->points); @@ -452,7 +452,7 @@ *************************************************/ gamgi_phys_direction_decrease (plane->hkl, hkl_min); -if (plane->type == GAMGI_PHYS_VECTOR) +if (plane->model == GAMGI_PHYS_VECTOR) { if (cell->reciprocal == 0.0) return FALSE; lattice_new = gamgi_phys_reciprocal_lattice (cell->lattice); @@ -478,7 +478,7 @@ volume = gamgi_math_vector_mix (cell->p1, cell->p2, cell->p3); -if (plane->type == GAMGI_PHYS_VECTOR) +if (plane->model == GAMGI_PHYS_VECTOR) { volume = pow (cell->reciprocal, 2) / volume; gamgi_math_cell_offset (cell, origin); @@ -689,7 +689,7 @@ if (object->class != GAMGI_ENGINE_CELL) return FALSE; cell = GAMGI_CAST_CELL object; -if (plane1->type == GAMGI_PHYS_VECTOR) +if (plane1->model == GAMGI_PHYS_VECTOR) { gamgi_math_cell_offset (cell, origin); gamgi_math_vector_sub (plane1->points, origin, pole); @@ -706,7 +706,7 @@ if (object->class != GAMGI_ENGINE_CELL) return FALSE; cell = GAMGI_CAST_CELL object; -if (plane2->type == GAMGI_PHYS_VECTOR) +if (plane2->model == GAMGI_PHYS_VECTOR) { gamgi_math_cell_offset (cell, origin); gamgi_math_vector_sub (plane2->points, origin, pole); @@ -750,7 +750,7 @@ if (object->class != GAMGI_ENGINE_CELL) return FALSE; cell = GAMGI_CAST_CELL object; -if (plane->type == GAMGI_PHYS_VECTOR) +if (plane->model == GAMGI_PHYS_VECTOR) { gamgi_math_cell_offset (cell, origin); gamgi_math_vector_sub (plane->points, origin, pole); diff -Nru gamgi-0.16.8/src/math/gamgi_math_modify.c gamgi-0.17/src/math/gamgi_math_modify.c --- gamgi-0.16.8/src/math/gamgi_math_modify.c 2011-03-07 15:35:15.000000000 +0000 +++ gamgi-0.17/src/math/gamgi_math_modify.c 2013-12-18 23:12:58.000000000 +0000 @@ -287,7 +287,7 @@ * rotate yes, normalize yes * **********************************************/ -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) { /************************************** * a parent cell is not needed * @@ -355,7 +355,7 @@ * rotate yes, normalize yes * ***************************************/ -if (plane->type == GAMGI_PHYS_POLYGON) +if (plane->model == GAMGI_PHYS_POLYGON) { /****************************************************** * polygon planes: 1) use transformed center to enter * @@ -384,7 +384,7 @@ * reciprocal space * ********************/ - if (plane->type == GAMGI_PHYS_VECTOR) + if (plane->model == GAMGI_PHYS_VECTOR) { /******************** * reciprocal space * diff -Nru gamgi-0.16.8/src/mesa/gamgi_mesa.h gamgi-0.17/src/mesa/gamgi_mesa.h --- gamgi-0.16.8/src/mesa/gamgi_mesa.h 2013-10-30 20:23:36.000000000 +0000 +++ gamgi-0.17/src/mesa/gamgi_mesa.h 2013-12-18 23:33:20.000000000 +0000 @@ -14,7 +14,7 @@ typedef void (*gamgi_tesselation) (); -typedef void (*gamgi_projection) (double *, double *); +typedef void (*gamgi_net) (double *, double *); /********** enumerations ********** **********************************/ diff -Nru gamgi-0.16.8/src/mesa/gamgi_mesa_axes.c gamgi-0.17/src/mesa/gamgi_mesa_axes.c --- gamgi-0.16.8/src/mesa/gamgi_mesa_axes.c 2013-06-15 18:57:52.000000000 +0000 +++ gamgi-0.17/src/mesa/gamgi_mesa_axes.c 2013-11-27 23:24:01.000000000 +0000 @@ -12,6 +12,7 @@ #include "gamgi_engine.h" #include "gamgi_mesa.h" #include "gamgi_math.h" +#include "gamgi_chem.h" #include "gamgi_phys.h" #include "gamgi_math_vector.h" @@ -95,10 +96,10 @@ double offset[3], v1[3], v2[3], v3[3]; double radius, length; -/******************************************************************* - * when a frame is present (dots[0] > 0), axes are positioned at * - * the lower frame corner, otherwise they are placed at the origin * - *******************************************************************/ +/************************************************************ + * when a frame is present axes are positioned at the lower * + * frame corner, otherwise they are placed at the origin * + ************************************************************/ radius = orbital->radius; if (orbital->frame == TRUE) @@ -106,12 +107,16 @@ else gamgi_math_vector_zero (offset); -/******************************************************* - * axes usually have lengths equal to 0.5292 (the Bohr * - * radius), 1.0, or the frame size (2 * radius) * - *******************************************************/ +/***************************************************** + * axes length can be 1.0, 0.5292 (the Bohr radius), * + * the radius (frame no) or 2 * radius (frame yes) * + *****************************************************/ + +length = 1.0; +if (orbital->axes == GAMGI_CHEM_BOHR) length = GAMGI_CHEM_A0; +else if (orbital->axes == GAMGI_CHEM_RADIUS) + { length = (orbital->frame == TRUE) ? 2 * radius : radius; } -length = orbital->axes; gamgi_math_vector_absolute (v1, length, 0.0, 0.0); gamgi_math_vector_absolute (v2, 0.0, length, 0.0); gamgi_math_vector_absolute (v3, 0.0, 0.0, length); diff -Nru gamgi-0.16.8/src/mesa/gamgi_mesa_draw.c gamgi-0.17/src/mesa/gamgi_mesa_draw.c --- gamgi-0.16.8/src/mesa/gamgi_mesa_draw.c 2013-10-29 22:21:42.000000000 +0000 +++ gamgi-0.17/src/mesa/gamgi_mesa_draw.c 2013-12-19 00:11:47.000000000 +0000 @@ -352,7 +352,7 @@ glColor3f (direction->red, direction->green, direction->blue); -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) { glTranslatef (direction->center[0], direction->center[1], direction->center[2]); glScalef (direction->object.scale, direction->object.scale, direction->object.scale); @@ -363,7 +363,7 @@ glTranslatef (direction->origin[0], direction->origin[1], direction->origin[2]); -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) { gamgi_math_quaternion_to_matrix4 (direction->quaternion, rotate); glMultMatrixd (rotate); @@ -373,13 +373,13 @@ glLineWidth (1.0); } -else if (direction->type == GAMGI_PHYS_POLE) +else if (direction->model == GAMGI_PHYS_POLE) { gamgi_mesa_render_points_chess (direction->loops[0], direction->points, GAMGI_MESA_POLE_WIDTH * direction->object.scale); } -else if (direction->type == GAMGI_PHYS_TRACE) +else if (direction->model == GAMGI_PHYS_TRACE) { glLineWidth (GAMGI_MESA_TRACE_WIDTH * direction->object.scale); gamgi_mesa_render_line_strip (direction->loops[0], direction->points); @@ -419,7 +419,7 @@ glColor3f (plane->red, plane->green, plane->blue); -if (plane->type == GAMGI_PHYS_POLYGON) +if (plane->model == GAMGI_PHYS_POLYGON) { glTranslatef (plane->center[0], plane->center[1], plane->center[2]); glScalef (plane->object.scale, plane->object.scale, plane->object.scale); @@ -428,7 +428,7 @@ glPushMatrix (); -if (plane->type == GAMGI_PHYS_VECTOR) +if (plane->model == GAMGI_PHYS_VECTOR) { gamgi_mesa_render_points_cross (plane->loops[0], plane->origin, GAMGI_MESA_POLE_WIDTH * plane->object.scale); @@ -437,7 +437,7 @@ { glTranslatef (plane->origin[0], plane->origin[1], plane->origin[2]); - if (plane->type == GAMGI_PHYS_POLYGON) + if (plane->model == GAMGI_PHYS_POLYGON) { gamgi_math_quaternion_to_matrix4 (plane->quaternion, rotate); glMultMatrixd (rotate); @@ -458,13 +458,13 @@ glLineWidth (1.0); } - else if (plane->type == GAMGI_PHYS_POLE) + else if (plane->model == GAMGI_PHYS_POLE) { gamgi_mesa_render_points_cross (plane->loops[0], plane->points, GAMGI_MESA_POLE_WIDTH * plane->object.scale); } - else if (plane->type == GAMGI_PHYS_TRACE) + else if (plane->model == GAMGI_PHYS_TRACE) { glLineWidth (GAMGI_MESA_TRACE_WIDTH * plane->object.scale); gamgi_mesa_render_line_strip (plane->loops[0], plane->points); @@ -810,7 +810,7 @@ glTranslatef (cell->origin[0], cell->origin[1], cell->origin[2]); -if (cell->type != GAMGI_PHYS_PROJECTION) +if (cell->model != GAMGI_PHYS_PROJECTION) { gamgi_math_quaternion_to_matrix4 (cell->quaternion, rotate); glMultMatrixd (rotate); @@ -842,8 +842,8 @@ if (cell->loops != NULL && cell->borders != FALSE && (cell->lattice != GAMGI_PHYS_HEXAGONAL_P || -(cell->type != GAMGI_PHYS_WIGNER && cell->type != GAMGI_PHYS_CONVENTIONAL)) && -(cell->lattice != GAMGI_PHYS_ORTHORHOMBIC_C || cell->type != GAMGI_PHYS_WIGNER)) +(cell->model != GAMGI_PHYS_WIGNER && cell->model != GAMGI_PHYS_CONVENTIONAL)) && +(cell->lattice != GAMGI_PHYS_ORTHORHOMBIC_C || cell->model != GAMGI_PHYS_WIGNER)) gamgi_mesa_render_loops (cell->loops, cell->points); if (cell->nodes == TRUE) diff -Nru gamgi-0.16.8/src/mesa/gamgi_mesa_grab.c gamgi-0.17/src/mesa/gamgi_mesa_grab.c --- gamgi-0.16.8/src/mesa/gamgi_mesa_grab.c 2013-09-02 18:11:23.000000000 +0000 +++ gamgi-0.17/src/mesa/gamgi_mesa_grab.c 2013-12-19 00:12:30.000000000 +0000 @@ -568,7 +568,7 @@ glPushMatrix (); -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) { glTranslatef (direction->center[0], direction->center[1], direction->center[2]); glScalef (direction->object.scale, direction->object.scale, direction->object.scale); @@ -584,7 +584,7 @@ glPushMatrix (); glTranslatef (direction->origin[0], direction->origin[1], direction->origin[2]); - if (direction->type == GAMGI_PHYS_LINE) + if (direction->model == GAMGI_PHYS_LINE) { gamgi_math_quaternion_to_matrix4 (direction->quaternion, rotate); glMultMatrixd (rotate); @@ -593,12 +593,12 @@ gamgi_mesa_render_lines (direction->loops, direction->points); glLineWidth (1.0); } - else if (direction->type == GAMGI_PHYS_POLE) + else if (direction->model == GAMGI_PHYS_POLE) { gamgi_mesa_render_points_chess (direction->loops[0], direction->points, GAMGI_MESA_POLE_WIDTH * direction->object.scale); } - else if (direction->type == GAMGI_PHYS_TRACE) + else if (direction->model == GAMGI_PHYS_TRACE) { glLineWidth (GAMGI_MESA_TRACE_WIDTH * direction->object.scale); gamgi_mesa_render_line_strip (direction->loops[0], direction->points); @@ -682,7 +682,7 @@ glPushMatrix (); -if (plane->type == GAMGI_PHYS_POLYGON) +if (plane->model == GAMGI_PHYS_POLYGON) { glTranslatef (plane->center[0], plane->center[1], plane->center[2]); glScalef (plane->object.scale, plane->object.scale, plane->object.scale); @@ -697,7 +697,7 @@ { glPushMatrix (); - if (plane->type == GAMGI_PHYS_VECTOR) + if (plane->model == GAMGI_PHYS_VECTOR) { gamgi_mesa_render_points_cross (plane->loops[0], plane->origin, GAMGI_MESA_POLE_WIDTH * plane->object.scale); @@ -705,7 +705,7 @@ else { glTranslatef (plane->origin[0], plane->origin[1], plane->origin[2]); - if (plane->type == GAMGI_PHYS_POLYGON) + if (plane->model == GAMGI_PHYS_POLYGON) { gamgi_math_quaternion_to_matrix4 (plane->quaternion, rotate); glMultMatrixd (rotate); @@ -717,13 +717,13 @@ glEnable(GL_CULL_FACE); } - else if (plane->type == GAMGI_PHYS_POLE) + else if (plane->model == GAMGI_PHYS_POLE) { gamgi_mesa_render_points_cross (plane->loops[0], plane->points, GAMGI_MESA_POLE_WIDTH * plane->object.scale); } - else if (plane->type == GAMGI_PHYS_TRACE) + else if (plane->model == GAMGI_PHYS_TRACE) { glLineWidth (GAMGI_MESA_TRACE_WIDTH * plane->object.scale); gamgi_mesa_render_line_strip (plane->loops[0], plane->points); @@ -1269,7 +1269,7 @@ glPushMatrix (); glTranslatef (cell->origin[0], cell->origin[1], cell->origin[2]); - if (cell->type != GAMGI_PHYS_PROJECTION) + if (cell->model != GAMGI_PHYS_PROJECTION) { gamgi_math_quaternion_to_matrix4 (cell->quaternion, rotate); glMultMatrixd (rotate); @@ -1296,8 +1296,8 @@ if (cell->loops != NULL && cell->borders != FALSE && (cell->lattice != GAMGI_PHYS_HEXAGONAL_P || - (cell->type != GAMGI_PHYS_WIGNER && cell->type != GAMGI_PHYS_CONVENTIONAL)) && - (cell->lattice != GAMGI_PHYS_ORTHORHOMBIC_C || cell->type != GAMGI_PHYS_WIGNER)) + (cell->model != GAMGI_PHYS_WIGNER && cell->model != GAMGI_PHYS_CONVENTIONAL)) && + (cell->lattice != GAMGI_PHYS_ORTHORHOMBIC_C || cell->model != GAMGI_PHYS_WIGNER)) gamgi_mesa_render_loops (cell->loops, cell->points); if (cell->nodes == TRUE) diff -Nru gamgi-0.16.8/src/mesa/gamgi_mesa_pick.c gamgi-0.17/src/mesa/gamgi_mesa_pick.c --- gamgi-0.16.8/src/mesa/gamgi_mesa_pick.c 2013-10-26 15:19:41.000000000 +0000 +++ gamgi-0.17/src/mesa/gamgi_mesa_pick.c 2013-12-19 00:13:03.000000000 +0000 @@ -423,7 +423,7 @@ glPushMatrix (); -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) { glTranslatef (direction->center[0], direction->center[1], direction->center[2]); glScalef (direction->object.scale, direction->object.scale, direction->object.scale); @@ -434,7 +434,7 @@ glTranslatef (direction->origin[0], direction->origin[1], direction->origin[2]); -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) { gamgi_math_quaternion_to_matrix4 (direction->quaternion, rotate); glMultMatrixd (rotate); @@ -444,13 +444,13 @@ glLineWidth (1.0); } -else if (direction->type == GAMGI_PHYS_POLE) +else if (direction->model == GAMGI_PHYS_POLE) { gamgi_mesa_render_points_chess (direction->loops[0], direction->points, GAMGI_MESA_POLE_WIDTH * direction->object.scale); } -else if (direction->type == GAMGI_PHYS_TRACE) +else if (direction->model == GAMGI_PHYS_TRACE) { glLineWidth (GAMGI_MESA_TRACE_WIDTH * direction->object.scale); gamgi_mesa_render_line_strip (direction->loops[0], direction->points); @@ -500,7 +500,7 @@ glPushMatrix (); -if (plane->type == GAMGI_PHYS_POLYGON) +if (plane->model == GAMGI_PHYS_POLYGON) { glTranslatef (plane->center[0], plane->center[1], plane->center[2]); glScalef (plane->object.scale, plane->object.scale, plane->object.scale); @@ -509,7 +509,7 @@ glPushMatrix (); -if (plane->type == GAMGI_PHYS_VECTOR) +if (plane->model == GAMGI_PHYS_VECTOR) { gamgi_mesa_render_points_cross (plane->loops[0], plane->origin, GAMGI_MESA_POLE_WIDTH * plane->object.scale); @@ -518,7 +518,7 @@ { glTranslatef (plane->origin[0], plane->origin[1], plane->origin[2]); - if (plane->type == GAMGI_PHYS_POLYGON) + if (plane->model == GAMGI_PHYS_POLYGON) { gamgi_math_quaternion_to_matrix4 (plane->quaternion, rotate); glMultMatrixd (rotate); @@ -531,13 +531,13 @@ glEnable(GL_CULL_FACE); } - else if (plane->type == GAMGI_PHYS_POLE) + else if (plane->model == GAMGI_PHYS_POLE) { gamgi_mesa_render_points_cross (plane->loops[0], plane->points, GAMGI_MESA_POLE_WIDTH * plane->object.scale); } - else if (plane->type == GAMGI_PHYS_TRACE) + else if (plane->model == GAMGI_PHYS_TRACE) { glLineWidth (GAMGI_MESA_TRACE_WIDTH * plane->object.scale); gamgi_mesa_render_line_strip (plane->loops[0], plane->points); @@ -916,7 +916,7 @@ glTranslatef (cell->origin[0], cell->origin[1], cell->origin[2]); -if (cell->type != GAMGI_PHYS_PROJECTION) +if (cell->model != GAMGI_PHYS_PROJECTION) { gamgi_math_quaternion_to_matrix4 (cell->quaternion, rotate); glMultMatrixd (rotate); @@ -943,8 +943,8 @@ if (cell->loops != NULL && cell->borders != FALSE && (cell->lattice != GAMGI_PHYS_HEXAGONAL_P || -(cell->type != GAMGI_PHYS_WIGNER && cell->type != GAMGI_PHYS_CONVENTIONAL)) && -(cell->lattice != GAMGI_PHYS_ORTHORHOMBIC_C || cell->type != GAMGI_PHYS_WIGNER)) +(cell->model != GAMGI_PHYS_WIGNER && cell->model != GAMGI_PHYS_CONVENTIONAL)) && +(cell->lattice != GAMGI_PHYS_ORTHORHOMBIC_C || cell->model != GAMGI_PHYS_WIGNER)) gamgi_mesa_render_loops (cell->loops, cell->points); if (cell->nodes == TRUE) diff -Nru gamgi-0.16.8/src/mesa/gamgi_mesa_rotate.c gamgi-0.17/src/mesa/gamgi_mesa_rotate.c --- gamgi-0.16.8/src/mesa/gamgi_mesa_rotate.c 2012-10-08 21:33:36.000000000 +0000 +++ gamgi-0.17/src/mesa/gamgi_mesa_rotate.c 2013-12-18 23:10:58.000000000 +0000 @@ -600,13 +600,13 @@ case GAMGI_ENGINE_DIRECTION: direction = GAMGI_CAST_DIRECTION object; - if (direction->type == GAMGI_PHYS_LINE) + if (direction->model == GAMGI_PHYS_LINE) gamgi_mesa_rotate_direction (GAMGI_CAST_DIRECTION object, quaternion, rotate, center); break; case GAMGI_ENGINE_PLANE: plane = GAMGI_CAST_PLANE object; - if (plane->type == GAMGI_PHYS_POLYGON) + if (plane->model == GAMGI_PHYS_POLYGON) gamgi_mesa_rotate_plane (GAMGI_CAST_PLANE object, quaternion, rotate, center); break; @@ -753,7 +753,7 @@ for (dlist = gamgi->directions; dlist != NULL; dlist = dlist->next) { direction = GAMGI_CAST_DIRECTION dlist->data; - if (direction->type != GAMGI_PHYS_LINE) continue; + if (direction->model != GAMGI_PHYS_LINE) continue; static_layer (GAMGI_CAST_OBJECT direction, &layer, angle, axis, quaternion, rotate); @@ -772,7 +772,7 @@ for (dlist = gamgi->planes; dlist != NULL; dlist = dlist->next) { plane = GAMGI_CAST_PLANE dlist->data; - if (plane->type != GAMGI_PHYS_POLYGON) continue; + if (plane->model != GAMGI_PHYS_POLYGON) continue; static_layer (GAMGI_CAST_OBJECT plane, &layer, angle, axis, quaternion, rotate); diff -Nru gamgi-0.16.8/src/mesa/gamgi_mesa_rotate_out.c gamgi-0.17/src/mesa/gamgi_mesa_rotate_out.c --- gamgi-0.16.8/src/mesa/gamgi_mesa_rotate_out.c 2012-10-08 21:38:21.000000000 +0000 +++ gamgi-0.17/src/mesa/gamgi_mesa_rotate_out.c 2013-12-18 23:46:28.000000000 +0000 @@ -94,7 +94,7 @@ double pole[3], normal[3]; double v1[3], v2[3]; -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) { /****************************** * atomic or crystallographic * @@ -129,12 +129,12 @@ gamgi_phys_direction_vector (cell, direction->uvw, direction->vectors, pole); gamgi_math_cell_vector_rotate (cell, pole, normal); - if (direction->type == GAMGI_PHYS_POLE) - gamgi_phys_projection_pole (direction->projection, + if (direction->model == GAMGI_PHYS_POLE) + gamgi_phys_projection_pole (direction->net, normal, direction->points, direction->loops); - else if (direction->type == GAMGI_PHYS_TRACE) - gamgi_phys_projection_trace (direction->projection, + else if (direction->model == GAMGI_PHYS_TRACE) + gamgi_phys_projection_trace (direction->net, normal, direction->points, direction->loops); /************* @@ -152,7 +152,7 @@ double pole[3], normal[3]; double v1[3], v2[3]; -if (plane->type == GAMGI_PHYS_POLYGON || plane->type == GAMGI_PHYS_VECTOR) +if (plane->model == GAMGI_PHYS_POLYGON || plane->model == GAMGI_PHYS_VECTOR) { /*********************************************** * atomic or crystallographic plane, in direct * @@ -187,12 +187,12 @@ gamgi_phys_plane_vector (cell, plane->hkl, plane->vectors, pole); gamgi_math_cell_vector_rotate (cell, pole, normal); - if (plane->type == GAMGI_PHYS_POLE) - gamgi_phys_projection_pole (plane->projection, + if (plane->model == GAMGI_PHYS_POLE) + gamgi_phys_projection_pole (plane->net, normal, plane->points, plane->loops); - else if (plane->type == GAMGI_PHYS_TRACE) - gamgi_phys_projection_trace (plane->projection, + else if (plane->model == GAMGI_PHYS_TRACE) + gamgi_phys_projection_trace (plane->net, normal, plane->points, plane->loops); /************* diff -Nru gamgi-0.16.8/src/mesa/gamgi_mesa_translate.c gamgi-0.17/src/mesa/gamgi_mesa_translate.c --- gamgi-0.16.8/src/mesa/gamgi_mesa_translate.c 2011-05-25 19:46:47.000000000 +0000 +++ gamgi-0.17/src/mesa/gamgi_mesa_translate.c 2013-12-18 23:11:57.000000000 +0000 @@ -567,13 +567,13 @@ case GAMGI_ENGINE_DIRECTION: direction = GAMGI_CAST_DIRECTION object; - if (direction->type == GAMGI_PHYS_LINE) + if (direction->model == GAMGI_PHYS_LINE) gamgi_mesa_translate_direction (direction, translate); break; case GAMGI_ENGINE_PLANE: plane = GAMGI_CAST_PLANE object; - if (plane->type == GAMGI_PHYS_POLYGON) + if (plane->model == GAMGI_PHYS_POLYGON) gamgi_mesa_translate_plane (plane, translate); break; @@ -706,7 +706,7 @@ for (dlist = gamgi->directions; dlist != NULL; dlist = dlist->next) { direction = GAMGI_CAST_DIRECTION dlist->data; - if (direction->type != GAMGI_PHYS_LINE) continue; + if (direction->model != GAMGI_PHYS_LINE) continue; static_layer (GAMGI_CAST_OBJECT direction, &layer, shift, translate); gamgi_mesa_translate_direction (direction, translate); @@ -723,7 +723,7 @@ for (dlist = gamgi->planes; dlist != NULL; dlist = dlist->next) { plane = GAMGI_CAST_PLANE dlist->data; - if (plane->type != GAMGI_PHYS_POLYGON) continue; + if (plane->model != GAMGI_PHYS_POLYGON) continue; static_layer (GAMGI_CAST_OBJECT plane, &layer, shift, translate); gamgi_mesa_translate_plane (plane, translate); diff -Nru gamgi-0.16.8/src/mesa/gamgi_mesa_translate_out.c gamgi-0.17/src/mesa/gamgi_mesa_translate_out.c --- gamgi-0.16.8/src/mesa/gamgi_mesa_translate_out.c 2012-10-08 21:10:42.000000000 +0000 +++ gamgi-0.17/src/mesa/gamgi_mesa_translate_out.c 2013-12-18 23:12:13.000000000 +0000 @@ -67,7 +67,7 @@ { gamgi_cell *cell; -if (direction->type == GAMGI_PHYS_LINE) +if (direction->model == GAMGI_PHYS_LINE) { /****************************** * atomic or crystallographic * @@ -94,7 +94,7 @@ { gamgi_cell *cell; -if (plane->type == GAMGI_PHYS_POLYGON || plane->type == GAMGI_PHYS_VECTOR) +if (plane->model == GAMGI_PHYS_POLYGON || plane->model == GAMGI_PHYS_VECTOR) { /************************************* * atomic or crystallographic plane, * diff -Nru gamgi-0.16.8/src/phys/gamgi_phys.h gamgi-0.17/src/phys/gamgi_phys.h --- gamgi-0.16.8/src/phys/gamgi_phys.h 2011-03-05 23:47:33.000000000 +0000 +++ gamgi-0.17/src/phys/gamgi_phys.h 2013-12-18 23:31:32.000000000 +0000 @@ -203,7 +203,7 @@ * Default stereographic projection * ************************************/ -#define GAMGI_PHYS_CELL_PROJECTION gamgi_phys_projection_wulff +#define GAMGI_PHYS_PROJECTION_NET gamgi_phys_projection_wulff /**************************************** * Default alignment directions for * diff -Nru gamgi-0.16.8/src/phys/gamgi_phys_cell.c gamgi-0.17/src/phys/gamgi_phys_cell.c --- gamgi-0.16.8/src/phys/gamgi_phys_cell.c 2013-05-15 15:31:14.000000000 +0000 +++ gamgi-0.17/src/phys/gamgi_phys_cell.c 2013-12-19 00:13:56.000000000 +0000 @@ -1797,7 +1797,7 @@ * create and position the cell * ********************************/ -switch (cell->type) +switch (cell->model) { case GAMGI_PHYS_CONVENTIONAL: if (cell->lattice == GAMGI_PHYS_HEXAGONAL_P) @@ -1888,7 +1888,7 @@ * copy volume parameters * **************************/ -cell->type = cell_old->type; +cell->model = cell_old->model; cell->n1 = cell_old->n1; cell->n2 = cell_old->n2; @@ -1912,7 +1912,7 @@ * representations they are represented differently, as poles/traces. * ************************************************************************/ -if (cell->type == GAMGI_PHYS_PARALLELEPIPED) cell->borders = GAMGI_PHYS_FACES; +if (cell->model == GAMGI_PHYS_PARALLELEPIPED) cell->borders = GAMGI_PHYS_FACES; else cell->faces = TRUE; gamgi_phys_cell_create (cell); diff -Nru gamgi-0.16.8/src/phys/gamgi_phys_cell_link.c gamgi-0.17/src/phys/gamgi_phys_cell_link.c --- gamgi-0.16.8/src/phys/gamgi_phys_cell_link.c 2013-05-15 15:34:20.000000000 +0000 +++ gamgi-0.17/src/phys/gamgi_phys_cell_link.c 2013-12-19 00:15:06.000000000 +0000 @@ -321,7 +321,7 @@ * for all nodes, because it is under the border tolerance. * *****************************************************************/ - if (cell->type == GAMGI_PHYS_WIGNER) + if (cell->model == GAMGI_PHYS_WIGNER) gamgi_math_cell_range_positive (relative + 3*n, relative + 3*n); else gamgi_math_cell_range_half (relative + 3*n, relative + 3*n); @@ -394,7 +394,7 @@ n2 = cell->n2; n3 = cell->n3; -switch (cell->type) +switch (cell->model) { case GAMGI_PHYS_CONVENTIONAL: if (cell->lattice == GAMGI_PHYS_HEXAGONAL_P) @@ -510,7 +510,7 @@ { double relative[3]; -switch (cell->type) +switch (cell->model) { case GAMGI_PHYS_CONVENTIONAL: case GAMGI_PHYS_PRIMITIVE: @@ -751,7 +751,7 @@ inverse, i, j, replicas) == FALSE) continue; if (cell->lattice == GAMGI_PHYS_HEXAGONAL_P && - cell->type == GAMGI_PHYS_CONVENTIONAL && + cell->model == GAMGI_PHYS_CONVENTIONAL && static_inside_triangles (cell, i, relative + 3*j, index, triangles) == FALSE) continue; } @@ -1907,7 +1907,7 @@ n1 = cell->n1; n2 = cell->n2; n3 = cell->n3; -if (cell->type == GAMGI_PHYS_CONVENTIONAL) +if (cell->model == GAMGI_PHYS_CONVENTIONAL) gamgi_math_node_conventional (cell->lattice, cell->o1, cell->o2, cell->o3, &o1, &o2, &o3, &o4); else @@ -2212,7 +2212,7 @@ * 4) object-cutoff and Wigner-Seitz volumes * ************************************************************/ -switch (cell->type) +switch (cell->model) { case GAMGI_PHYS_CONVENTIONAL: diff -Nru gamgi-0.16.8/src/phys/gamgi_phys_direction.c gamgi-0.17/src/phys/gamgi_phys_direction.c --- gamgi-0.16.8/src/phys/gamgi_phys_direction.c 2013-10-29 18:22:46.000000000 +0000 +++ gamgi-0.17/src/phys/gamgi_phys_direction.c 2013-12-19 00:15:21.000000000 +0000 @@ -455,7 +455,7 @@ } static void static_projection (gamgi_direction *direction, -gamgi_cell *cell, gamgi_enum type) +gamgi_cell *cell, gamgi_enum model) { gamgi_direction *direction_new; @@ -478,9 +478,9 @@ if (strcmp (direction->object.name, "") == 0) gamgi_phys_direction_name (direction->uvw[0], direction->uvw[1], direction->uvw[2], direction_new->object.name); -direction_new->type = type; +direction_new->model = model; -gamgi_phys_projection_create (direction_new->type, &direction_new->points, +gamgi_phys_projection_create (direction_new->model, &direction_new->points, &direction_new->n_points, &direction_new->loops, &direction_new->n_loops); gamgi_engine_link_direction_cell (direction_new, cell); @@ -720,7 +720,7 @@ * direction representation * ****************************/ -direction->type = GAMGI_PHYS_LINE; +direction->model = GAMGI_PHYS_LINE; /******************************************** * get 2 points describing the direction: * @@ -756,7 +756,7 @@ gamgi_math_vector_add (r1, translate, r1); gamgi_math_vector_add (r2, translate, r2); -if (cell->type == GAMGI_PHYS_SPHERE) +if (cell->model == GAMGI_PHYS_SPHERE) { /************************************************ * get an array of points describing the * @@ -1018,7 +1018,7 @@ * direction representation * ****************************/ -direction->type = GAMGI_PHYS_LINE; +direction->model = GAMGI_PHYS_LINE; /********************************************************************** * initially the parent object is rotated and translated backward so * @@ -1109,7 +1109,7 @@ strcpy (direction->object.name, "Direction"); direction->reference = GAMGI_ENGINE_ATOM; -direction->type = GAMGI_PHYS_LINE; +direction->model = GAMGI_PHYS_LINE; direction->red = red; direction->green = green; diff -Nru gamgi-0.16.8/src/phys/gamgi_phys_direction.h gamgi-0.17/src/phys/gamgi_phys_direction.h --- gamgi-0.16.8/src/phys/gamgi_phys_direction.h 2013-10-26 22:40:44.000000000 +0000 +++ gamgi-0.17/src/phys/gamgi_phys_direction.h 2013-12-18 23:14:52.000000000 +0000 @@ -42,7 +42,7 @@ double *normal, gamgi_bool link); static void static_projection (gamgi_direction *direction, -gamgi_cell *cell, gamgi_enum type); +gamgi_cell *cell, gamgi_enum model); ********************** * external functions * diff -Nru gamgi-0.16.8/src/phys/gamgi_phys_plane.c gamgi-0.17/src/phys/gamgi_phys_plane.c --- gamgi-0.16.8/src/phys/gamgi_phys_plane.c 2013-10-29 18:17:00.000000000 +0000 +++ gamgi-0.17/src/phys/gamgi_phys_plane.c 2013-12-19 00:16:02.000000000 +0000 @@ -69,7 +69,7 @@ * plane representation * ************************/ -plane->type = GAMGI_PHYS_VECTOR; +plane->model = GAMGI_PHYS_VECTOR; gamgi_engine_link_plane_cell (plane, cell); } @@ -81,7 +81,7 @@ int n, h, k, l; gamgi_enum vectors; -if (cell->type == GAMGI_PHYS_CONVENTIONAL) +if (cell->model == GAMGI_PHYS_CONVENTIONAL) vectors = GAMGI_PHYS_CONVENTIONAL; else vectors = GAMGI_PHYS_PRIMITIVE; @@ -550,7 +550,7 @@ index = (int *) malloc (cell->n_nodes * 3 * sizeof (int)); -switch (cell->type) +switch (cell->model) { case GAMGI_PHYS_CONVENTIONAL: switch (cell->lattice) @@ -628,7 +628,7 @@ * primitive lattices OR primitive volumes * *******************************************/ -if (cell->type != GAMGI_PHYS_CONVENTIONAL || +if (cell->model != GAMGI_PHYS_CONVENTIONAL || gamgi_phys_cell_primitive (cell->lattice) == cell->lattice) { offset[0] = cell->o1; @@ -1045,7 +1045,7 @@ } static void static_projection (gamgi_plane *plane, -gamgi_cell *cell, gamgi_enum type) +gamgi_cell *cell, gamgi_enum model) { gamgi_plane *plane_new; @@ -1068,9 +1068,9 @@ if (strcmp (plane->object.name, "") == 0) gamgi_phys_plane_name (plane->hkl[0], plane->hkl[1], plane->hkl[2], plane_new->object.name); -plane_new->type = type; +plane_new->model = model; -gamgi_phys_projection_create (plane_new->type, &plane_new->points, +gamgi_phys_projection_create (plane_new->model, &plane_new->points, &plane_new->n_points, &plane_new->loops, &plane_new->n_loops); gamgi_engine_link_plane_cell (plane_new, cell); @@ -1408,7 +1408,7 @@ * plane representation * ************************/ -plane->type = GAMGI_PHYS_POLYGON; +plane->model = GAMGI_PHYS_POLYGON; /******************************************* * get 3 points describing the plane: they * @@ -1444,7 +1444,7 @@ gamgi_math_vector_add (r2, translate, r2); gamgi_math_vector_add (r3, translate, r3); -if (cell->type == GAMGI_PHYS_SPHERE) +if (cell->model == GAMGI_PHYS_SPHERE) { /******************************************** * get an array of points describing the * @@ -1606,7 +1606,7 @@ * plane representation * ************************/ -plane->type = GAMGI_PHYS_POLYGON; +plane->model = GAMGI_PHYS_POLYGON; /******************************************************************** * initially the parent object is rotated and translated backward * @@ -1704,7 +1704,7 @@ strcpy (plane->object.name, "Plane"); plane->reference = GAMGI_ENGINE_ATOM; -plane->type = GAMGI_PHYS_POLYGON; +plane->model = GAMGI_PHYS_POLYGON; plane->red = red; plane->green = green; diff -Nru gamgi-0.16.8/src/phys/gamgi_phys_plane.h gamgi-0.17/src/phys/gamgi_phys_plane.h --- gamgi-0.16.8/src/phys/gamgi_phys_plane.h 2013-10-26 22:40:17.000000000 +0000 +++ gamgi-0.17/src/phys/gamgi_phys_plane.h 2013-12-18 22:49:37.000000000 +0000 @@ -68,7 +68,7 @@ double *normal, gamgi_bool link); static void static_projection (gamgi_plane *plane, -gamgi_cell *cell, gamgi_enum type); +gamgi_cell *cell, gamgi_enum model); ********************** * external functions * diff -Nru gamgi-0.16.8/src/phys/gamgi_phys_projection.c gamgi-0.17/src/phys/gamgi_phys_projection.c --- gamgi-0.16.8/src/phys/gamgi_phys_projection.c 2013-10-29 23:17:26.000000000 +0000 +++ gamgi-0.17/src/phys/gamgi_phys_projection.c 2013-12-18 23:48:12.000000000 +0000 @@ -104,7 +104,7 @@ *n_loops = 1; } -void gamgi_phys_projection_pole (gamgi_projection projection, +void gamgi_phys_projection_pole (gamgi_net net, double *direction, double *points, int *loops) { /*************************************************** @@ -118,10 +118,10 @@ if (direction[2] < -GAMGI_MATH_TOLERANCE) return; loops[0] = 1; -(projection) (direction, points); +(net) (direction, points); } -void gamgi_phys_projection_trace (gamgi_projection projection, +void gamgi_phys_projection_trace (gamgi_net net, double *direction, double *points, int *loops) { double rotate[9]; @@ -207,7 +207,7 @@ sin (offset + i * angle), 0.0); gamgi_math_matrix_vector (rotate, xy, xyz); - (projection) (xyz, points + 3*i); + (net) (xyz, points + 3*i); } } diff -Nru gamgi-0.16.8/src/phys/gamgi_phys_projection.h gamgi-0.17/src/phys/gamgi_phys_projection.h --- gamgi-0.16.8/src/phys/gamgi_phys_projection.h 2008-02-09 23:11:27.000000000 +0000 +++ gamgi-0.17/src/phys/gamgi_phys_projection.h 2013-12-18 23:35:02.000000000 +0000 @@ -20,10 +20,10 @@ void gamgi_phys_projection_create (gamgi_enum model, double **points, int *n_points, int **loops, int *n_loops); -void gamgi_phys_projection_pole (gamgi_projection projection, +void gamgi_phys_projection_pole (gamgi_net net, double *direction, double *points, int *loops); -void gamgi_phys_projection_trace (gamgi_projection projection, +void gamgi_phys_projection_trace (gamgi_net net, double *direction, double *points, int *loops); /************* diff -Nru gamgi-0.16.8/src/phys/gamgi_phys_reciprocal.c gamgi-0.17/src/phys/gamgi_phys_reciprocal.c --- gamgi-0.16.8/src/phys/gamgi_phys_reciprocal.c 2011-05-25 17:01:54.000000000 +0000 +++ gamgi-0.17/src/phys/gamgi_phys_reciprocal.c 2013-12-19 00:16:25.000000000 +0000 @@ -114,7 +114,7 @@ * copy volume parameters * **************************/ -cell->type = cell_old->type; +cell->model = cell_old->model; cell->n1 = cell_old->n1; cell->n2 = cell_old->n2; @@ -357,7 +357,7 @@ cell->lattice = gamgi_phys_cell_primitive (cell_old->lattice); if (cell_old->lattice == GAMGI_PHYS_HEXAGONAL_R) - cell->type = GAMGI_PHYS_PRIMITIVE; + cell->model = GAMGI_PHYS_PRIMITIVE; cell->reciprocal = factor; static_vectors (factor, cell->lattice, cell_old->a1,