/*! \file bond.h \brief Container for bond information \author Martin Peters $Date: 2010/03/29 20:42:27 $ $Revision: 1.10 $ ---------------------------------------------------------------------------- MTK++ - C++ package of modeling libraries. Copyright (C) 2005-2006 (see AUTHORS file for a list of contributors) This file is part of MTK++. MTK++ is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. MTK++ 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 Lessser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . ---------------------------------------------------------------------------- */ #ifndef BOND_h #define BOND_h #include #include namespace MTKpp { class atom; struct bondParam; // ============================================================ // Struct : Bond // ------------------------------------------------------------ /*! \struct Bond \brief Container for Bond info \author Martin Peters \date 2005 \section BondTypeDefinitions Bond Type Definitions - 0 = Undefined - 1 = Single - 2 = Double - 3 = Triple - 4 = Aromatic - 5 = Single or Double - 6 = Single or Aromatic - 7 = Double or Aromatic - 8 = Any type \section BondStereoDefinitions Bond Stereo Definitions - Definitions for Single Bonds -# 0 = Not stereo -# 1 = Up -# 4 = Either -# 6 = Down - Definitions for Double Bonds -# 0 = Use x,y,z coords from atom block to determine cis or trans -# 3 = Either cis or trans \section BondTopologyDefinitions Bond Topology Definitions - 0 = Either - 1 = Ring - 2 = Chain \section BondKindDefinitions Bond Kind Definitions - 0 = Undefined - 1 = Polar */ // ============================================================ struct Bond { //! First Atom in Bond atom* atom1; //! Second Atom in Bond atom* atom2; /*! Bond Type Definitions - 0 = Undefined - 1 = Single - 2 = Double - 3 = Triple - 4 = Aromatic - 5 = Single or Double - 6 = Single or Aromatic - 7 = Double or Aromatic - 8 = Any type */ int type; /*! Bond Type Definitions - 0 = Undefined - 1 = Single - 2 = Double - 3 = Triple - 6 = NO2 bond - 7 = Aromatic and single - 8 = Aromatic and double - 9 = CO2 or CS2 double - 10 = other Aromatic */ int bccType; /*! Bond Stereo - Definitions for Single Bonds -# 0 = Not stereo -# 1 = Up -# 4 = Either -# 6 = Down - Definitions for Double Bonds -# 0 = Use x,y,z coords from atom block to determine cis or trans -# 3 = Either cis or trans */ int stereo; /*! Bond Topology Definitions - 0 = Either - 1 = Ring - 2 = Chain */ int topology; /*! Bond Kind Definitions - 0 = Undefined - 1 = Polar - 2 = Amide - 3 = disulfide */ int kind; //! Length of Bond double size; //! Pointer to Bond Parameters bondParam* pBondParam; /*! Rotatable bonds Definitions - 0 Not Rotatable - 1 Rotatable - 2 Rotatable but C2 Symmetric */ int rotatable; }; } // MTKpp namespace #endif // BOND_H