Open Babel  3.0
pointgroup.h
Go to the documentation of this file.
1 /**********************************************************************
2 pointgroup.h - Brute force point group symmetry detection
3 
4 Copyright (C) 1996, 2003 S. Patchkovskii, [email protected]
5 Some portions Copyright (C) 2007 by Geoffrey R. Hutchison
6 
7 This file is part of the Open Babel project.
8 For more information, see <http://openbabel.org/>
9 
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation version 2 of the License.
13 
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18 ***********************************************************************/
19 
20 #ifndef OB_POINTGROUP_H
21 #define OB_POINTGROUP_H
22 
23 #include <openbabel/babelconfig.h>
24 
25 namespace OpenBabel
26 {
27  class OBMol;
28  class PointGroupPrivate;
29 
38  class OBAPI OBPointGroup
39  {
40  public:
41  OBPointGroup();
42  ~OBPointGroup();
43 
44  enum Symbol
45  { // The most likely 60 cases
46  C1 = 0, Cs, Ci, // 0 to 2
47  C2, C3, C4, C5, C6, C7, C8, // 3 to 9
48  D2, D3, D4, D5, D6, D7, D8, // 10 to 16
49  C2v, C3v, C4v, C5v, C6v, C7v, C8v, // 17 to 23
50  C2h, C3h, C4h, C5h, C6h, C7h, C8h, // 24 to 30
51  D2d, D3d, D4d, D5d, D6d, D7d, D8d, // 31 to 37
52  D2h, D3h, D4h, D5h, D6h, D7h, D8h, // 38 to 44
53  S4, S6, S8, // 45 to 47
54  T, Th, Td, // 48 to 50
55  O, Oh, // 51, 52
56  Cinfv, Dinfh, // 53, 54
57  I, Ih, // 55, 56
58  K, Kh, // 57, 58
59  Unknown // 59
60  };
61 
63  void Setup(OBMol *);
64 
71  const char * IdentifyPointGroup();
72 
74  const char * IdentifyPointGroup(double tolerance /* = 0.01*/ );
75 
78  Symbol IdentifyPointGroupSymbol(double tolerance = 0.01);
79 
80  void Symmetrize(OBMol *);
81 
82  protected:
83  PointGroupPrivate *d;
84 
85  }; // class OBPointGroup
86 
87 }// namespace OpenBabel
88 
89 #endif // OB_POINT_GROUP_H
90 
Definition: residue.h:336
Definition: pointgroup.h:58
Definition: pointgroup.h:53
Definition: pointgroup.h:57
Definition: pointgroup.h:52
Molecule Class.
Definition: mol.h:118
Definition: pointgroup.h:50
Definition: residue.h:339
Definition: pointgroup.h:48
Definition: pointgroup.h:51
Definition: pointgroup.h:54
Definition: pointgroup.h:47
Definition: pointgroup.h:49
Definition: pointgroup.h:46
Definition: pointgroup.h:55
Symbol
Definition: pointgroup.h:44
Brute-force point group symmetry perception.
Definition: pointgroup.h:38
Definition: pointgroup.h:56
PointGroupPrivate * d
Definition: pointgroup.h:83
Global namespace for all Open Babel code.
Definition: alias.h:22