BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
crystalGenerator.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 
4 #ifndef BALL_XRAY_CRYSTALGENERATOR_H
5 #define BALL_XRAY_CRYSTALGENERATOR_H
6 
7 #ifndef BALL_KERNEL_ATOMCONTAINER_H
9 #endif
10 
11 #ifndef BALL_KERNEL_SYSTEM_H
12 #include <BALL/KERNEL/system.h>
13 #endif
14 
15 #ifndef BALL_DATATYPE_REGULARDATA3D_H
17 #endif
18 
19 #ifndef BALL_XRAY_CRYSTALINFO_H
20 #include <BALL/XRAY/crystalInfo.h>
21 #endif
22 
23 #ifndef BALL_STRUCTURE_GEOMETRICTRANSFORMATIONS_H
25 #endif
26 
27 #ifndef BALL_STRUCTURE_GEOMETRICPROPERTIES_H
29 #endif
30 
31 #ifndef BALL_MATHS_BOX3_H
32 # include <BALL/MATHS/box3.h>
33 #endif
34 
35 namespace BALL
36 {
41  {
42  public:
43 
44 
48 
51  enum CellType
52  {
53  NCS_ASU = 0,
54  ASU = 1,
55  UNITCELL = 2
56  };
57 
61  {
64  static const string SPACE_GROUP_FILE;
65  };
66 
70  {
73  static const string SPACE_GROUP_FILE;
74  };
75 
84 
91 
96 
98  void setSpaceGroupFilename(String& filename){filename_ = filename;};
99 
101  const String& getSpaceGroupFilename() const {return filename_;};
102  void setCrystalInfo(boost::shared_ptr<CrystalInfo> ci_ptr);
103  void setSystem(System* system_ptr);
104 
105  std::list<System*> generatePacking(Index a_loweridx, Index a_upperidx, Index b_loweridx, Index b_upperid, Index c_loweridx, Index c_upperid);
106 
107  System* generateUnitCell(Index a, Index b, Index c);
108  System* generateUnitCell();
109  System* generateAsymmetricUnit();
110  std::list<System*> generateSymMoleculesWithinDistance(float angstrom);
111 
112  Box3 getUnitCellBox(Index a, Index b, Index c);
113 
114  protected:
115 
116  bool buildUnitCell_();
117  bool buildASU_();
118  bool correctASUPositions_(System* raw_cell);
119 
122 
124 
127  boost::shared_ptr<CrystalInfo> ci_ptr_;
129  };
130 } // namespace BALL
131 
132 #endif // BALL_XRAY_CRYSTALINFO_H
const String & getSpaceGroupFilename() const
GeometricCenterProcessor center_processor_
BALL_EXTERN_VARIABLE const double c
Definition: constants.h:149
static const string SPACE_GROUP_FILE
TransformationProcessor transformer_
static const string SPACE_GROUP_FILE
void setSpaceGroupFilename(String &filename)
boost::shared_ptr< CrystalInfo > ci_ptr_
#define BALL_EXPORT
Definition: COMMON/global.h:50