transform3d.h Source File

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Examples

- File List
- File Members

transform3d.h
Go to the documentation of this file.

    00001 /**********************************************************************
    00002 transform3d.h - Handle 3D transformations in space groups.
    00003
    00004 Copyright (C) 2007 by Jean Bréfort
    00005
    00006 This file is part of the Open Babel project.
    00007 For more information, see <http://openbabel.org/>
    00008
    00009 This program is free software; you can redistribute it and/or
    00010 modify it under the terms of the GNU General Public License as
    00011 published by the Free Software Foundation; either version 2 of the
    00012 License, or (at your option) any later version.
    00013
    00014 This program is distributed in the hope that it will be useful,
    00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
    00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00017 GNU General Public License for more details.
    00018 ***********************************************************************/
    00019
    00020 #ifndef OB_TRANSFORM_3D_H
    00021 #define OB_TRANSFORM_3D_H
    00022
    00023 #include <openbabel/math/matrix3x3.h>
    00024 #include <list>
    00025 #include <string>
    00026
    00027 namespace OpenBabel
    00028 {
    00029
    00035   class OBAPI transform3d: private matrix3x3, private vector3
    00036     {
    00037     public:
    00038       transform3d(void): matrix3x3(), vector3()
    00039         {
    00040         }
    00041
    00042       transform3d(const matrix3x3 &m, const vector3 &v): matrix3x3(m), vector3(v)
    00043         {
    00044           Normalize();
    00045         }
    00046
    00047       transform3d(double s): matrix3x3(s), vector3()
    00048         {
    00049         }
    00050
    00052       transform3d(vector3 row1,vector3 row2,vector3 row3,vector3 translation):
    00053         matrix3x3(row1, row2, row3), vector3(translation)
    00054         {
    00055           Normalize();
    00056         }
    00057
    00059
    00060       transform3d(double d[3][3], double t[3]): matrix3x3(d), vector3(t)
    00061        {
    00062          Normalize();
    00063        }
    00064
    00065       vector3 operator *(const vector3 &) const;
    00066
    00067       transform3d operator *(const transform3d &) const;
    00068
    00069       std::string DescribeAsString() const;
    00070       std::string DescribeAsValues() const;
    00071
    00072       void Normalize();
    00073         };
    00074
    00075   typedef std::list<transform3d*>::const_iterator transform3dIterator;
    00076
    00077 }
    00078
    00079 #endif // OB_TRANSFORM_3D_H
    00080

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines