summaryrefslogtreecommitdiff
path: root/extra/avogadro
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2013-05-07 22:31:25 -0300
committerNicolás Reynolds <fauno@endefensadelsl.org>2013-05-07 22:31:25 -0300
commit9f7fb9c12e84f20cd108b933f1a51e216f76cd98 (patch)
tree06520d9024b40745b94f02d0d3419386e6496863 /extra/avogadro
parent6cc893589a6bd208f2b7711f985e17df7a6df816 (diff)
parenta86ff663185661ee304bb1f6d00d982102dd706d (diff)
Merge branch 'master' of gparabola:abslibre-mips64el
Diffstat (limited to 'extra/avogadro')
-rw-r--r--extra/avogadro/PKGBUILD17
-rw-r--r--extra/avogadro/boost153.patch60
-rw-r--r--extra/avogadro/fix-boost.patch33
-rw-r--r--extra/avogadro/fix-opengl-headers.patch53
-rw-r--r--extra/avogadro/replace-qt4_automoc-with-qt4_wrap_cpp.patch778
5 files changed, 70 insertions, 871 deletions
diff --git a/extra/avogadro/PKGBUILD b/extra/avogadro/PKGBUILD
index 39d1d61cc..9631d7030 100644
--- a/extra/avogadro/PKGBUILD
+++ b/extra/avogadro/PKGBUILD
@@ -1,32 +1,35 @@
-# $Id: PKGBUILD 176282 2013-01-28 16:48:15Z stephane $
+# $Id: PKGBUILD 181116 2013-03-31 19:16:38Z stephane $
# Maintainer:
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Nick B <Shirakawasuna at gmail _dot_com>
pkgname=avogadro
pkgver=1.1.0
-pkgrel=3
+pkgrel=4
pkgdesc="An advanced molecular editor based on Qt"
arch=('i686' 'x86_64' 'mips64el')
url="http://avogadro.openmolecules.net/wiki/Main_Page"
license=('GPL2')
depends=('eigen2' 'openbabel' 'python2-pyqt' 'boost-libs' 'glew' 'python2-numpy')
-makedepends=('cmake' 'boost' 'doxygen' 'mesa')
+makedepends=('cmake' 'boost' 'doxygen' 'mesa-libgl')
install=avogadro.install
source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2"
- "avogadro-1.1.0-textrel.patch")
+ 'boost153.patch')
md5sums=('f4fbef5ffc69cc312b2316426c36a78d'
- '88c68540c0ccce7007e515f1b3fd03ed')
+ 'aa2573f78d5dbd85b3cb79e08acde8ab')
build() {
- patch -Np0 -i ${srcdir}/avogadro-1.1.0-textrel.patch
+ cd ${pkgname}-${pkgver}
+ patch -p1 -i "${srcdir}"/boost153.patch
+ cd ../
+
mkdir build
cd build
cmake ../${pkgname}-${pkgver} \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DPYTHON_EXECUTABLE=/usr/bin/python2 \
- -DQT_MKSPECS_RELATIVE=share/qt/mkspecs
+ -DQT_MKSPECS_RELATIVE=share/qt4/mkspecs
make
}
diff --git a/extra/avogadro/boost153.patch b/extra/avogadro/boost153.patch
new file mode 100644
index 000000000..fd8685974
--- /dev/null
+++ b/extra/avogadro/boost153.patch
@@ -0,0 +1,60 @@
+--- avogadro-1.1.0/libavogadro/src/pythonengine_p.h~ 2013-03-29 12:46:16.306165881 +0000
++++ avogadro-1.1.0/libavogadro/src/pythonengine_p.h 2013-03-29 12:45:43.123089622 +0000
+@@ -27,7 +27,9 @@
+
+ #include <avogadro/global.h>
+ #include <avogadro/engine.h>
++#ifndef Q_MOC_RUN
+ #include <boost/python.hpp>
++#endif
+
+ namespace Avogadro {
+
+--- avogadro-1.1.0/libavogadro/src/pythonextension_p.h~ 2013-03-29 12:46:32.156043085 +0000
++++ avogadro-1.1.0/libavogadro/src/pythonextension_p.h 2013-03-29 12:47:07.265771087 +0000
+@@ -29,7 +29,9 @@
+ #include <avogadro/extension.h>
+ #include <avogadro/primitive.h>
+ #include <avogadro/glwidget.h>
++#ifndef Q_MOC_RUN
+ #include <boost/python.hpp>
++#endif
+
+ #include <QWidget>
+ #include <QList>
+--- avogadro-1.1.0/libavogadro/src/pythontool_p.h~ 2013-03-29 12:47:33.335569185 +0000
++++ avogadro-1.1.0/libavogadro/src/pythontool_p.h 2013-03-29 12:47:50.732101147 +0000
+@@ -27,7 +27,9 @@
+
+ #include <avogadro/global.h>
+ #include <avogadro/tool.h>
++#ifndef Q_MOC_RUN
+ #include <boost/python.hpp>
++#endif
+
+ #include <QObject>
+ #include <QAction>
+--- avogadro-1.1.0/libavogadro/src/pythoninterpreter.h~ 2013-03-29 12:50:46.550738652 +0000
++++ avogadro-1.1.0/libavogadro/src/pythoninterpreter.h 2013-03-29 12:51:00.853961341 +0000
+@@ -26,7 +26,9 @@
+ #define PYTHONINTERPRETER_H
+
+ #include <avogadro/global.h>
++#ifndef Q_MOC_RUN
+ #include <boost/python.hpp>
++#endif
+ #include <avogadro/primitive.h>
+ #include <QString>
+
+--- avogadro-1.1.0/libavogadro/src/pythonscript.h~ 2013-03-29 12:52:00.723488935 +0000
++++ avogadro-1.1.0/libavogadro/src/pythonscript.h 2013-03-29 12:52:11.676745364 +0000
+@@ -27,7 +27,9 @@
+ #define PYTHONSCRIPT_H
+
+ #include <avogadro/global.h>
++#ifndef Q_MOC_RUN
+ #include <boost/python.hpp>
++#endif
+
+ #include "pythonerror.h"
+
diff --git a/extra/avogadro/fix-boost.patch b/extra/avogadro/fix-boost.patch
deleted file mode 100644
index 8fb53ef12..000000000
--- a/extra/avogadro/fix-boost.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- avogadro-1.0.3/libavogadro/src/CMakeLists.txt~ 2011-11-29 18:33:01.777291627 +0000
-+++ avogadro-1.0.3/libavogadro/src/CMakeLists.txt 2011-11-29 18:33:23.480814612 +0000
-@@ -149,7 +149,7 @@
- endforeach(P_ITEM ${PYTHON_SRCS})
- endif(NOT ENABLE_PYTHON OR NOT ALL_PYTHON_FOUND)
-
--QT4_WRAP_CPP(libavogadro_MOC_SRCS ${libavogadro_MOC_HDRS})
-+QT4_WRAP_CPP(libavogadro_MOC_SRCS ${libavogadro_MOC_HDRS} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
-
- # you have to add link_directories before you add the target
- if(ENABLE_PYTHON AND ALL_PYTHON_FOUND)
---- avogadro-1.0.3/libavogadro/src/python/CMakeLists.txt~ 2011-11-29 18:37:15.449506548 +0000
-+++ avogadro-1.0.3/libavogadro/src/python/CMakeLists.txt 2011-11-29 18:37:52.729831744 +0000
-@@ -11,7 +11,7 @@
- # use all cpp files in this directory
- FILE(GLOB wrapper_SRCS "*.cpp")
-
--QT4_WRAP_CPP(MOC_SRCS moleculelist.h)
-+QT4_WRAP_CPP(MOC_SRCS moleculelist.h OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
-
- ADD_LIBRARY(python-module MODULE ${wrapper_SRCS} ${MOC_SRCS})
- SET_TARGET_PROPERTIES(python-module PROPERTIES OUTPUT_NAME Avogadro)
---- avogadro-1.0.3/libavogadro/CMakeLists.txt~ 2011-11-29 19:41:34.066938217 +0000
-+++ avogadro-1.0.3/libavogadro/CMakeLists.txt 2011-11-29 19:42:53.084320315 +0000
-@@ -18,7 +18,7 @@
- # Assume all MOC stuff is in the headers, replace .cpp and use qt4_wrap_cpp
- # We should probably scan the header to verify the Q_OBJECT macro is used
- string(REPLACE ".cpp" ".h" hdr_list "${src_list}")
-- qt4_wrap_cpp(moc_files ${hdr_list})
-+ qt4_wrap_cpp(moc_files ${hdr_list} OPTIONS -DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
- # Now sort out the ui and qrc files, process them as appropriate
- set(ui_plugin_files)
- set(qrc_plugin_files)
diff --git a/extra/avogadro/fix-opengl-headers.patch b/extra/avogadro/fix-opengl-headers.patch
deleted file mode 100644
index e6e8bc3b5..000000000
--- a/extra/avogadro/fix-opengl-headers.patch
+++ /dev/null
@@ -1,53 +0,0 @@
---- avogadro-1.0.3/libavogadro/src/camera.cpp~ 2012-02-27 18:35:52.109999585 +0000
-+++ avogadro-1.0.3/libavogadro/src/camera.cpp 2012-02-27 18:36:27.103053453 +0000
-@@ -25,6 +25,8 @@
- #include "camera.h"
- #include "glwidget.h"
- #include <avogadro/molecule.h>
-+#include <Eigen/LU>
-+#include <GL/glu.h>
-
- using namespace Eigen;
-
---- avogadro-1.0.3/libavogadro/src/glpainter_p.cpp~ 2012-02-27 18:37:28.535894209 +0000
-+++ avogadro-1.0.3/libavogadro/src/glpainter_p.cpp 2012-02-27 18:37:46.912413557 +0000
-@@ -42,6 +42,7 @@
- #include <QColor>
- #include <QVarLengthArray>
- #include <Eigen/Geometry>
-+#include <GL/glu.h>
-
- namespace Avogadro
- {
---- avogadro-1.0.3/libavogadro/src/glwidget.cpp~ 2012-02-27 18:37:55.099014598 +0000
-+++ avogadro-1.0.3/libavogadro/src/glwidget.cpp 2012-02-27 18:38:30.805395066 +0000
-@@ -70,6 +70,8 @@
-
- #include <openbabel/mol.h>
-
-+#include <GL/glu.h>
-+
- using namespace OpenBabel;
- using namespace Eigen;
-
---- avogadro-1.0.3/libavogadro/src/extensions/povpainter.cpp~ 2012-02-27 18:36:53.646173944 +0000
-+++ avogadro-1.0.3/libavogadro/src/extensions/povpainter.cpp 2012-02-27 18:37:10.739370227 +0000
-@@ -36,6 +36,7 @@
- #include <QFile>
- #include <QDebug>
- #include <Eigen/Geometry>
-+#include <GL/glu.h>
-
- namespace Avogadro
- {
---- avogadro-1.0.3/libavogadro/src/tools/selectrotatetool.cpp~ 2012-02-27 18:38:47.491928000 +0000
-+++ avogadro-1.0.3/libavogadro/src/tools/selectrotatetool.cpp 2012-02-27 18:39:05.735115136 +0000
-@@ -44,6 +44,8 @@
- #include <QComboBox>
- #include <QDebug>
-
-+#include <GL/glu.h>
-+
- using namespace std;
- using namespace OpenBabel;
- using namespace Eigen;
diff --git a/extra/avogadro/replace-qt4_automoc-with-qt4_wrap_cpp.patch b/extra/avogadro/replace-qt4_automoc-with-qt4_wrap_cpp.patch
deleted file mode 100644
index 11f58a505..000000000
--- a/extra/avogadro/replace-qt4_automoc-with-qt4_wrap_cpp.patch
+++ /dev/null
@@ -1,778 +0,0 @@
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/CMakeLists.txt avogadro-1.0.3-edit/libavogadro/src/CMakeLists.txt
---- avogadro-1.0.3/libavogadro/src/CMakeLists.txt 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/CMakeLists.txt 2011-11-29 18:49:58.520790652 +0100
-@@ -75,6 +75,42 @@
- zmatrix.h
- )
-
-+SET(libavogadro_MOC_HDRS
-+ animation.h
-+ atom.h
-+ bond.h
-+ color.h
-+ colorbutton.h
-+ colors/elementcolor.h
-+ cube.h
-+ elementdetail_p.h
-+ elementtranslator.h
-+ engine.h
-+ engines/bsdyengine.h
-+ extension.h
-+ fragment.h
-+ glwidget.h
-+ mesh.h
-+ molecule.h
-+ moleculefile.h
-+ moleculefile_p.h
-+ periodictablescene_p.h
-+ periodictableview.h
-+ plotwidget.h
-+ plugin.h
-+ pluginmanager.h
-+ primitive.h
-+ protein.h
-+ pythonengine_p.h
-+ pythonerror.h
-+ pythonextension_p.h
-+ pythontool_p.h
-+ residue.h
-+ tool.h
-+ toolgroup.h
-+ zmatrix.h
-+)
-+
- set(libavogadro_SRCS ${libavogadro_SRCS} ${libavogadro_UIS})
- # Also add in the qtiocompressor class
- #set(libavogadro_SRCS ${libavogadro_SRCS} ../qtiocompressor/qtiocompressor.cpp)
-@@ -113,7 +148,7 @@
- endforeach(P_ITEM ${PYTHON_SRCS})
- endif(NOT ENABLE_PYTHON OR NOT ALL_PYTHON_FOUND)
-
--qt4_automoc(${libavogadro_SRCS})
-+QT4_WRAP_CPP(libavogadro_MOC_SRCS ${libavogadro_MOC_HDRS})
-
- # you have to add link_directories before you add the target
- if(ENABLE_PYTHON AND ALL_PYTHON_FOUND)
-@@ -149,7 +184,7 @@
- COMMAND ${CMAKE_COMMAND} -E ${header_cmd} "${from}" "${to}")
- endforeach(headerFile ${libavogadro_HDRS})
-
--add_library(avogadro SHARED ${libavogadro_SRCS} ${libavogadro_QM} ${pythontool_RC_SRCS})
-+add_library(avogadro SHARED ${libavogadro_SRCS} ${libavogadro_MOC_SRCS} ${libavogadro_QM} ${pythontool_RC_SRCS})
- set_target_properties(avogadro
- PROPERTIES VERSION ${Avogadro_VERSION_FULL} SOVERSION 1 )
- target_link_libraries(avogadro ${AVO_LINK_LIBRARIES})
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/animation.cpp avogadro-1.0.3-edit/libavogadro/src/animation.cpp
---- avogadro-1.0.3/libavogadro/src/animation.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/animation.cpp 2011-11-29 18:48:47.967839537 +0100
-@@ -224,5 +224,3 @@
- }
-
- } // end namespace Avogadro
--
--#include "animation.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/atom.cpp avogadro-1.0.3-edit/libavogadro/src/atom.cpp
---- avogadro-1.0.3/libavogadro/src/atom.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/atom.cpp 2011-11-29 18:48:39.561218412 +0100
-@@ -293,5 +293,3 @@
- }
-
- } // End namespace Avogadro
--
--#include "atom.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/bond.cpp avogadro-1.0.3-edit/libavogadro/src/bond.cpp
---- avogadro-1.0.3/libavogadro/src/bond.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/bond.cpp 2011-11-29 18:49:00.067773985 +0100
-@@ -166,5 +166,3 @@
- }
-
- } // End namespace Avogadro
--
--#include "bond.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/color.cpp avogadro-1.0.3-edit/libavogadro/src/color.cpp
---- avogadro-1.0.3/libavogadro/src/color.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/color.cpp 2011-11-29 18:49:05.207746140 +0100
-@@ -152,5 +152,3 @@
- return "Generic Color";
- }
- }
--
--#include "color.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/colorbutton.cpp avogadro-1.0.3-edit/libavogadro/src/colorbutton.cpp
---- avogadro-1.0.3/libavogadro/src/colorbutton.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/colorbutton.cpp 2011-11-29 18:49:11.987709410 +0100
-@@ -94,5 +94,3 @@
- }
-
- } // end namespace
--
--#include "colorbutton.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/colors/elementcolor.cpp avogadro-1.0.3-edit/libavogadro/src/colors/elementcolor.cpp
---- avogadro-1.0.3/libavogadro/src/colors/elementcolor.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/colors/elementcolor.cpp 2011-11-29 18:50:11.077389292 +0100
-@@ -63,7 +63,5 @@
-
- }
-
--#include "elementcolor.moc"
- //this is a static color plugin...
- //Q_EXPORT_PLUGIN2(elementcolor, Avogadro::ElementColorFactory)
--
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/cube.cpp avogadro-1.0.3-edit/libavogadro/src/cube.cpp
---- avogadro-1.0.3/libavogadro/src/cube.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/cube.cpp 2011-11-29 18:50:26.357306516 +0100
-@@ -322,5 +322,3 @@
- }
-
- } // End namespace Avogadro
--
--#include "cube.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/elementdetail_p.cpp avogadro-1.0.3-edit/libavogadro/src/elementdetail_p.cpp
---- avogadro-1.0.3/libavogadro/src/elementdetail_p.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/elementdetail_p.cpp 2011-11-29 18:50:37.680578505 +0100
-@@ -132,5 +132,3 @@
- }
-
- } // End namespace Avogadro
--
--#include "elementdetail_p.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/elementtranslator.cpp avogadro-1.0.3-edit/libavogadro/src/elementtranslator.cpp
---- avogadro-1.0.3/libavogadro/src/elementtranslator.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/elementtranslator.cpp 2011-11-29 18:50:48.160521729 +0100
-@@ -401,5 +401,3 @@
- }
-
- } // End namespace Avogadro
--
--#include "elementtranslator.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/engine.cpp avogadro-1.0.3-edit/libavogadro/src/engine.cpp
---- avogadro-1.0.3/libavogadro/src/engine.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/engine.cpp 2011-11-29 18:50:54.397154610 +0100
-@@ -377,5 +377,3 @@
- return m_molecule->bonds();
- }
- }
--
--#include "engine.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/engines/bsdyengine.cpp avogadro-1.0.3-edit/libavogadro/src/engines/bsdyengine.cpp
---- avogadro-1.0.3/libavogadro/src/engines/bsdyengine.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/engines/bsdyengine.cpp 2011-11-29 18:51:18.733689435 +0100
-@@ -442,7 +442,5 @@
- }
-
- }
--
--#include "bsdyengine.moc"
- // This is a static engine...
- // Q_EXPORT_PLUGIN2( bsdyengine, Avogadro::BSDYEngineFactory )
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/extension.cpp avogadro-1.0.3-edit/libavogadro/src/extension.cpp
---- avogadro-1.0.3/libavogadro/src/extension.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/extension.cpp 2011-11-29 18:51:56.360152261 +0100
-@@ -80,5 +80,3 @@
- }
-
- }
--
--#include "extension.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/fragment.cpp avogadro-1.0.3-edit/libavogadro/src/fragment.cpp
---- avogadro-1.0.3/libavogadro/src/fragment.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/fragment.cpp 2011-11-29 18:52:01.906788880 +0100
-@@ -82,5 +82,3 @@
- }
-
- } // End namespace Avogadro
--
--#include "fragment.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/glwidget.cpp avogadro-1.0.3-edit/libavogadro/src/glwidget.cpp
---- avogadro-1.0.3/libavogadro/src/glwidget.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/glwidget.cpp 2011-11-29 18:52:14.346721486 +0100
-@@ -1966,5 +1966,3 @@
- d->updateCache = true;
- }
- }
--
--#include "glwidget.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/mesh.cpp avogadro-1.0.3-edit/libavogadro/src/mesh.cpp
---- avogadro-1.0.3/libavogadro/src/mesh.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/mesh.cpp 2011-11-29 18:52:23.033341093 +0100
-@@ -231,5 +231,3 @@
- }
-
- } // End namespace Avogadro
--
--#include "mesh.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/molecule.cpp avogadro-1.0.3-edit/libavogadro/src/molecule.cpp
---- avogadro-1.0.3/libavogadro/src/molecule.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/molecule.cpp 2011-11-29 18:52:33.573283993 +0100
-@@ -1575,5 +1575,3 @@
- }
-
- } // End namespace Avogadro
--
--#include "molecule.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/moleculefile.cpp avogadro-1.0.3-edit/libavogadro/src/moleculefile.cpp
---- avogadro-1.0.3/libavogadro/src/moleculefile.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/moleculefile.cpp 2011-11-29 18:56:26.728687548 +0100
-@@ -22,23 +22,14 @@
- 02110-1301, USA.
- **********************************************************************/
-
--#include "moleculefile.h"
-+#include "moleculefile_p.h"
-
- #include <avogadro/molecule.h>
-
--#include <QFile>
- #include <QFileInfo>
--#include <QStringList>
--#include <QThread>
- #include <QDebug>
- #include <QPointer>
-
--#include <openbabel/mol.h>
--#include <openbabel/obconversion.h>
--
--// Included in obconversion.h
--//#include <iostream>
--
- namespace Avogadro {
-
- using OpenBabel::OBConversion;
-@@ -578,164 +569,6 @@
- return false;
- }
-
-- class ReadFileThread : public QThread
-- {
-- // Q_OBJECT
--
-- public:
-- ReadFileThread(MoleculeFile *moleculeFile) : m_moleculeFile(moleculeFile)
-- {
-- }
--
-- void addConformer(const OpenBabel::OBMol &conformer)
-- {
-- unsigned int numAtoms = conformer.NumAtoms();
-- std::vector<Eigen::Vector3d> *coords = new std::vector<Eigen::Vector3d>(numAtoms);
-- for (unsigned int i = 0; i < numAtoms; ++i)
-- coords->push_back(Eigen::Vector3d(conformer.GetAtom(i+1)->GetVector().AsArray()));
-- m_moleculeFile->m_conformers.push_back(coords);
-- }
--
-- void detectConformers(unsigned int c, const OpenBabel::OBMol &first, const OpenBabel::OBMol &current)
-- {
-- if (!c) {
-- // this is the first molecule read
-- m_moleculeFile->setConformerFile(true);
-- addConformer(current);
-- return;
-- }
--
-- if (!m_moleculeFile->isConformerFile())
-- return;
--
-- // as long as we are not sure if this really is a
-- // conformer/trajectory file, add the conformers
-- addConformer(current);
--
-- // performance: check only certain molecule 1-10,20,50
-- switch (c) {
-- case 1:
-- case 2:
-- case 3:
-- case 4:
-- case 5:
-- case 6:
-- case 7:
-- case 8:
-- case 9:
-- case 10:
-- case 20:
-- case 50:
-- break;
-- default:
-- return;
-- }
--
-- if (first.NumAtoms() != current.NumAtoms()) {
-- m_moleculeFile->setConformerFile(false);
-- m_moleculeFile->m_conformers.clear();
-- return;
-- }
--
-- for (unsigned int i = 0; i < first.NumAtoms(); ++i) {
-- OpenBabel::OBAtom *firstAtom = first.GetAtom(i+1);
-- OpenBabel::OBAtom *currentAtom = current.GetAtom(i+1);
-- if (firstAtom->GetAtomicNum() != currentAtom->GetAtomicNum()) {
-- m_moleculeFile->setConformerFile(false);
-- m_moleculeFile->m_conformers.clear();
-- return;
-- }
-- }
-- }
--
-- void run()
-- {
-- // Check that the file can be read from disk
-- if (!MoleculeFile::canOpen(m_moleculeFile->m_fileName, QFile::ReadOnly | QFile::Text)) {
-- // Cannot read the file
-- m_moleculeFile->m_error.append(QObject::tr("File %1 cannot be opened for reading.")
-- .arg(m_moleculeFile->m_fileName));
-- return;
-- }
--
-- // Construct the OpenBabel objects, set the file type
-- OpenBabel::OBConversion conv;
-- OpenBabel::OBFormat *inFormat;
-- if (!m_moleculeFile->m_fileType.isEmpty() && !conv.SetInFormat(m_moleculeFile->m_fileType.toAscii().data())) {
-- // Input format not supported
-- m_moleculeFile->m_error.append(
-- QObject::tr("File type '%1' is not supported for reading.").arg(m_moleculeFile->m_fileType));
-- return;
-- } else {
-- inFormat = conv.FormatFromExt(m_moleculeFile->m_fileName.toAscii().data());
-- if (!inFormat || !conv.SetInFormat(inFormat)) {
-- // Input format not supported
-- m_moleculeFile->m_error.append(QObject::tr("File type for file '%1' is not supported for reading.")
-- .arg(m_moleculeFile->m_fileName));
-- return;
-- }
-- }
--
-- // set any options
-- if (!m_moleculeFile->m_fileOptions.isEmpty()) {
-- foreach(const QString &option,
-- m_moleculeFile->m_fileOptions.split('\n', QString::SkipEmptyParts)) {
-- conv.AddOption(option.toAscii().data(), OBConversion::INOPTIONS);
-- }
-- }
--
-- // Now attempt to read the molecule in
-- ifstream ifs;
-- ifs.open(m_moleculeFile->m_fileName.toLocal8Bit()); // This handles utf8 file names etc
-- if (!ifs) // Should not happen, already checked file could be opened
-- return;
--
-- // read all molecules
-- OpenBabel::OBMol firstOBMol, currentOBMol;
-- unsigned int c = 0;
-- conv.SetInStream(&ifs);
-- m_moleculeFile->streamposRef().push_back(ifs.tellg());
-- while (ifs.good() && conv.Read(&currentOBMol)) {
-- if (!c)
-- firstOBMol = currentOBMol;
--
-- if (c > 20 && !m_moleculeFile->isConformerFile())
-- m_moleculeFile->setFirstReady(true);
--
-- // detect conformer/trajectory files
-- detectConformers(c, firstOBMol, currentOBMol);
-- // store information about molecule
-- m_moleculeFile->streamposRef().push_back(ifs.tellg());
-- m_moleculeFile->titlesRef().append(currentOBMol.GetTitle());
-- // increment count
-- ++c;
-- }
-- m_moleculeFile->streamposRef().pop_back();
--
-- // signle molecule files are not conformer files
-- if (c == 1) {
-- m_moleculeFile->setConformerFile(false);
-- m_moleculeFile->m_conformers.clear();
-- }
--
-- // check for empty titles
-- for (int i = 0; i < m_moleculeFile->titlesRef().size(); ++i) {
-- if (!m_moleculeFile->titlesRef()[i].isEmpty())
-- continue;
--
-- QString title;
-- if (m_moleculeFile->isConformerFile())
-- title = tr("Conformer %1").arg(i+1);
-- else
-- title = tr("Molecule %1").arg(i+1);
--
-- m_moleculeFile->titlesRef()[i] = title;
-- }
-- }
--
-- MoleculeFile *m_moleculeFile;
-- }; // end ReadFileThread class
--
- MoleculeFile* MoleculeFile::readFile(const QString &fileName,
- const QString &fileType, const QString &fileOptions, bool wait)
- {
-@@ -794,6 +627,3 @@
- }
-
- } // end namespace Avogadro
--
--#include "moleculefile.moc"
--
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/moleculefile_p.h avogadro-1.0.3-edit/libavogadro/src/moleculefile_p.h
---- avogadro-1.0.3/libavogadro/src/moleculefile_p.h 1970-01-01 01:00:00.000000000 +0100
-+++ avogadro-1.0.3-edit/libavogadro/src/moleculefile_p.h 2011-11-29 18:57:43.108273764 +0100
-@@ -0,0 +1,202 @@
-+/**********************************************************************
-+ MoleculeFile - Class representing molecule file.
-+
-+ Copyright (C) 2009 Marcus Hanwell, Tim Vandermeersch
-+
-+ This file is part of the Avogadro molecular editor project.
-+ For more information, see <http://avogadro.openmolecules.net/>
-+
-+ Avogadro is free software; you can redistribute it and/or modify
-+ it under the terms of the GNU General Public License as published by
-+ the Free Software Foundation; either version 2 of the License, or
-+ (at your option) any later version.
-+
-+ Avogadro is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ GNU General Public License for more details.
-+
-+ You should have received a copy of the GNU General Public License
-+ along with this program; if not, write to the Free Software
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-+ 02110-1301, USA.
-+ **********************************************************************/
-+
-+#ifndef MOLECULEFILE_P_H
-+#define MOLECULEFILE_P_H
-+
-+#include "moleculefile.h"
-+
-+#include <openbabel/mol.h>
-+#include <openbabel/obconversion.h>
-+
-+#include <QFile>
-+#include <QStringList>
-+#include <QThread>
-+
-+namespace Avogadro {
-+
-+ using OpenBabel::OBConversion;
-+ using std::ifstream;
-+
-+class ReadFileThread : public QThread
-+{
-+ Q_OBJECT
-+
-+ public:
-+ ReadFileThread(MoleculeFile *moleculeFile) : m_moleculeFile(moleculeFile)
-+ {
-+ }
-+
-+ void addConformer(const OpenBabel::OBMol &conformer)
-+ {
-+ unsigned int numAtoms = conformer.NumAtoms();
-+ std::vector<Eigen::Vector3d> *coords = new std::vector<Eigen::Vector3d>(numAtoms);
-+ for (unsigned int i = 0; i < numAtoms; ++i)
-+ coords->push_back(Eigen::Vector3d(conformer.GetAtom(i+1)->GetVector().AsArray()));
-+ m_moleculeFile->m_conformers.push_back(coords);
-+ }
-+
-+ void detectConformers(unsigned int c, const OpenBabel::OBMol &first, const OpenBabel::OBMol &current)
-+ {
-+ if (!c) {
-+ // this is the first molecule read
-+ m_moleculeFile->setConformerFile(true);
-+ addConformer(current);
-+ return;
-+ }
-+
-+ if (!m_moleculeFile->isConformerFile())
-+ return;
-+
-+ // as long as we are not sure if this really is a
-+ // conformer/trajectory file, add the conformers
-+ addConformer(current);
-+
-+ // performance: check only certain molecule 1-10,20,50
-+ switch (c) {
-+ case 1:
-+ case 2:
-+ case 3:
-+ case 4:
-+ case 5:
-+ case 6:
-+ case 7:
-+ case 8:
-+ case 9:
-+ case 10:
-+ case 20:
-+ case 50:
-+ break;
-+ default:
-+ return;
-+ }
-+
-+ if (first.NumAtoms() != current.NumAtoms()) {
-+ m_moleculeFile->setConformerFile(false);
-+ m_moleculeFile->m_conformers.clear();
-+ return;
-+ }
-+
-+ for (unsigned int i = 0; i < first.NumAtoms(); ++i) {
-+ OpenBabel::OBAtom *firstAtom = first.GetAtom(i+1);
-+ OpenBabel::OBAtom *currentAtom = current.GetAtom(i+1);
-+ if (firstAtom->GetAtomicNum() != currentAtom->GetAtomicNum()) {
-+ m_moleculeFile->setConformerFile(false);
-+ m_moleculeFile->m_conformers.clear();
-+ return;
-+ }
-+ }
-+ }
-+
-+ void run()
-+ {
-+ // Check that the file can be read from disk
-+ if (!MoleculeFile::canOpen(m_moleculeFile->m_fileName, QFile::ReadOnly | QFile::Text)) {
-+ // Cannot read the file
-+ m_moleculeFile->m_error.append(QObject::tr("File %1 cannot be opened for reading.")
-+ .arg(m_moleculeFile->m_fileName));
-+ return;
-+ }
-+
-+ // Construct the OpenBabel objects, set the file type
-+ OpenBabel::OBConversion conv;
-+ OpenBabel::OBFormat *inFormat;
-+ if (!m_moleculeFile->m_fileType.isEmpty() && !conv.SetInFormat(m_moleculeFile->m_fileType.toAscii().data())) {
-+ // Input format not supported
-+ m_moleculeFile->m_error.append(
-+ QObject::tr("File type '%1' is not supported for reading.").arg(m_moleculeFile->m_fileType));
-+ return;
-+ } else {
-+ inFormat = conv.FormatFromExt(m_moleculeFile->m_fileName.toAscii().data());
-+ if (!inFormat || !conv.SetInFormat(inFormat)) {
-+ // Input format not supported
-+ m_moleculeFile->m_error.append(QObject::tr("File type for file '%1' is not supported for reading.")
-+ .arg(m_moleculeFile->m_fileName));
-+ return;
-+ }
-+ }
-+
-+ // set any options
-+ if (!m_moleculeFile->m_fileOptions.isEmpty()) {
-+ foreach(const QString &option,
-+ m_moleculeFile->m_fileOptions.split('\n', QString::SkipEmptyParts)) {
-+ conv.AddOption(option.toAscii().data(), OBConversion::INOPTIONS);
-+ }
-+ }
-+
-+ // Now attempt to read the molecule in
-+ ifstream ifs;
-+ ifs.open(m_moleculeFile->m_fileName.toLocal8Bit()); // This handles utf8 file names etc
-+ if (!ifs) // Should not happen, already checked file could be opened
-+ return;
-+
-+ // read all molecules
-+ OpenBabel::OBMol firstOBMol, currentOBMol;
-+ unsigned int c = 0;
-+ conv.SetInStream(&ifs);
-+ m_moleculeFile->streamposRef().push_back(ifs.tellg());
-+ while (ifs.good() && conv.Read(&currentOBMol)) {
-+ if (!c)
-+ firstOBMol = currentOBMol;
-+
-+ if (c > 20 && !m_moleculeFile->isConformerFile())
-+ m_moleculeFile->setFirstReady(true);
-+
-+ // detect conformer/trajectory files
-+ detectConformers(c, firstOBMol, currentOBMol);
-+ // store information about molecule
-+ m_moleculeFile->streamposRef().push_back(ifs.tellg());
-+ m_moleculeFile->titlesRef().append(currentOBMol.GetTitle());
-+ // increment count
-+ ++c;
-+ }
-+ m_moleculeFile->streamposRef().pop_back();
-+
-+ // signle molecule files are not conformer files
-+ if (c == 1) {
-+ m_moleculeFile->setConformerFile(false);
-+ m_moleculeFile->m_conformers.clear();
-+ }
-+
-+ // check for empty titles
-+ for (int i = 0; i < m_moleculeFile->titlesRef().size(); ++i) {
-+ if (!m_moleculeFile->titlesRef()[i].isEmpty())
-+ continue;
-+
-+ QString title;
-+ if (m_moleculeFile->isConformerFile())
-+ title = tr("Conformer %1").arg(i+1);
-+ else
-+ title = tr("Molecule %1").arg(i+1);
-+
-+ m_moleculeFile->titlesRef()[i] = title;
-+ }
-+ }
-+
-+ MoleculeFile *m_moleculeFile;
-+};
-+
-+} // end namespace Avogadro
-+
-+#endif // MOLECULEFILE_P_H
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/periodictablescene_p.cpp avogadro-1.0.3-edit/libavogadro/src/periodictablescene_p.cpp
---- avogadro-1.0.3/libavogadro/src/periodictablescene_p.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/periodictablescene_p.cpp 2011-11-29 18:52:50.259860261 +0100
-@@ -213,5 +213,3 @@
- }
-
- } // End namespace Avogadro
--
--#include "periodictablescene_p.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/periodictableview.cpp avogadro-1.0.3-edit/libavogadro/src/periodictableview.cpp
---- avogadro-1.0.3/libavogadro/src/periodictableview.cpp 2011-11-29 19:30:25.130970122 +0000
-+++ avogadro-1.0.3-edit/libavogadro/src/periodictableview.cpp 2011-11-29 18:52:50.259860261 +0100
-@@ -69,4 +69,3 @@
-
- } // End namespace Avogadro
-
--#include "periodictableview.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/plotwidget.cpp avogadro-1.0.3-edit/libavogadro/src/plotwidget.cpp
---- avogadro-1.0.3/libavogadro/src/plotwidget.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/plotwidget.cpp 2011-11-29 18:53:09.389756626 +0100
-@@ -27,7 +27,6 @@
- **********************************************************************/
-
- #include "plotwidget.h"
--#include "plotwidget.moc"
-
- #include <math.h>
- #include <QDebug>
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/plugin.cpp avogadro-1.0.3-edit/libavogadro/src/plugin.cpp
---- avogadro-1.0.3/libavogadro/src/plugin.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/plugin.cpp 2011-11-29 18:53:16.016387394 +0100
-@@ -65,5 +65,3 @@
- }
-
- } // end namespace Avogadro
--
--#include "plugin.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/pluginmanager.cpp avogadro-1.0.3-edit/libavogadro/src/pluginmanager.cpp
---- avogadro-1.0.3/libavogadro/src/pluginmanager.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/pluginmanager.cpp 2011-11-29 18:53:23.569679807 +0100
-@@ -784,5 +784,3 @@
- }
-
- }
--
--#include "pluginmanager.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/primitive.cpp avogadro-1.0.3-edit/libavogadro/src/primitive.cpp
---- avogadro-1.0.3/libavogadro/src/primitive.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/primitive.cpp 2011-11-29 18:53:29.139649631 +0100
-@@ -77,5 +77,3 @@
- }
-
- }
--
--#include "primitive.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/protein.cpp avogadro-1.0.3-edit/libavogadro/src/protein.cpp
---- avogadro-1.0.3/libavogadro/src/protein.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/protein.cpp 2011-11-29 18:53:37.952935219 +0100
-@@ -978,5 +978,3 @@
- }
-
- } // End namespace Avogadro
--
--#include "protein.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/python/CMakeLists.txt avogadro-1.0.3-edit/libavogadro/src/python/CMakeLists.txt
---- avogadro-1.0.3/libavogadro/src/python/CMakeLists.txt 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/python/CMakeLists.txt 2011-11-29 18:58:02.354836165 +0100
-@@ -11,9 +11,9 @@
- # use all cpp files in this directory
- FILE(GLOB wrapper_SRCS "*.cpp")
-
--qt4_automoc(moleculelist.cpp)
-+QT4_WRAP_CPP(MOC_SRCS moleculelist.h)
-
--ADD_LIBRARY(python-module MODULE ${wrapper_SRCS})
-+ADD_LIBRARY(python-module MODULE ${wrapper_SRCS} ${MOC_SRCS})
- SET_TARGET_PROPERTIES(python-module PROPERTIES OUTPUT_NAME Avogadro)
- SET_TARGET_PROPERTIES(python-module PROPERTIES PREFIX "")
- if (WIN32)
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/python/moleculelist.cpp avogadro-1.0.3-edit/libavogadro/src/python/moleculelist.cpp
---- avogadro-1.0.3/libavogadro/src/python/moleculelist.cpp 2011-11-29 19:26:07.562214311 +0100
-+++ avogadro-1.0.3-edit/libavogadro/src/python/moleculelist.cpp 2011-11-29 19:26:14.538843182 +0100
-@@ -70,4 +70,3 @@
-
- }
-
--#include "moleculelist.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/pythonengine_p.cpp avogadro-1.0.3-edit/libavogadro/src/pythonengine_p.cpp
---- avogadro-1.0.3/libavogadro/src/pythonengine_p.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/pythonengine_p.cpp 2011-11-29 18:53:45.492894371 +0100
-@@ -289,5 +289,3 @@
-
-
- }
--
--#include "pythonengine_p.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/pythonerror.cpp avogadro-1.0.3-edit/libavogadro/src/pythonerror.cpp
---- avogadro-1.0.3/libavogadro/src/pythonerror.cpp 2011-11-29 19:24:26.949426045 +0100
-+++ avogadro-1.0.3-edit/libavogadro/src/pythonerror.cpp 2011-11-29 19:24:41.176015640 +0100
-@@ -112,4 +112,3 @@
-
- } // namespace
-
--#include "pythonerror.moc"
-
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/pythonextension_p.cpp avogadro-1.0.3-edit/libavogadro/src/pythonextension_p.cpp
---- avogadro-1.0.3/libavogadro/src/pythonextension_p.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/pythonextension_p.cpp 2011-11-29 18:53:54.082847836 +0100
-@@ -340,5 +340,3 @@
- }
-
- }
--
--#include "pythonextension_p.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/pythontool_p.cpp avogadro-1.0.3-edit/libavogadro/src/pythontool_p.cpp
---- avogadro-1.0.3/libavogadro/src/pythontool_p.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/pythontool_p.cpp 2011-11-29 18:54:02.269470152 +0100
-@@ -344,5 +344,3 @@
- }
-
- }
--
--#include "pythontool_p.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/residue.cpp avogadro-1.0.3-edit/libavogadro/src/residue.cpp
---- avogadro-1.0.3/libavogadro/src/residue.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/residue.cpp 2011-11-29 18:54:14.316071557 +0100
-@@ -160,6 +160,3 @@
- }
-
- } // End namespace Avogadro
--
-- #include "residue.moc"
--
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/tool.cpp avogadro-1.0.3-edit/libavogadro/src/tool.cpp
---- avogadro-1.0.3/libavogadro/src/tool.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/tool.cpp 2011-11-29 18:55:05.515794184 +0100
-@@ -117,5 +117,3 @@
- }
-
- } // end namespace Avogadro
--
--#include "tool.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/toolgroup.cpp avogadro-1.0.3-edit/libavogadro/src/toolgroup.cpp
---- avogadro-1.0.3/libavogadro/src/toolgroup.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/toolgroup.cpp 2011-11-29 18:55:11.699094018 +0100
-@@ -206,5 +206,3 @@
- }
-
- } // end namespace Avogadro
--
--#include "toolgroup.moc"
-diff -U 3 -H -d -r -N -- avogadro-1.0.3/libavogadro/src/zmatrix.cpp avogadro-1.0.3-edit/libavogadro/src/zmatrix.cpp
---- avogadro-1.0.3/libavogadro/src/zmatrix.cpp 2011-04-25 07:22:18.000000000 +0200
-+++ avogadro-1.0.3-edit/libavogadro/src/zmatrix.cpp 2011-11-29 18:55:17.209064168 +0100
-@@ -149,5 +149,3 @@
-
-
- } // End namespace Avogadro
--
--#include "zmatrix.moc"