BALL  1.5.0
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
BALL::GeometricCenterProcessor
Definition: geometricProperties.h:133
BALL_INDEX_TYPE
BALL::CrystalGenerator::system_
System * system_
Definition: crystalGenerator.h:123
BALL::CrystalGenerator::ci_ptr_
boost::shared_ptr< CrystalInfo > ci_ptr_
Definition: crystalGenerator.h:127
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
system.h
BALL::CrystalGenerator::center_processor_
GeometricCenterProcessor center_processor_
Definition: crystalGenerator.h:120
BALL::CrystalGenerator::setSpaceGroupFilename
void setSpaceGroupFilename(String &filename)
Definition: crystalGenerator.h:98
BALL::CrystalGenerator::Default
Definition: crystalGenerator.h:69
BALL::CrystalGenerator::Option::SPACE_GROUP_FILE
static const string SPACE_GROUP_FILE
Definition: crystalGenerator.h:64
BALL::System
Definition: KERNEL/system.h:38
BALL::CrystalGenerator::CellType
CellType
Definition: crystalGenerator.h:51
BALL::TransformationProcessor
Definition: geometricTransformations.h:87
BALL::CrystalGenerator::Option
Definition: crystalGenerator.h:60
BALL
Definition: constants.h:12
crystalInfo.h
BALL::String
Definition: string.h:56
BALL::TBox3
Definition: box3.h:32
BALL::Constants::c
const BALL_EXTERN_VARIABLE double c
Definition: constants.h:149
BALL::CrystalGenerator::transformer_
TransformationProcessor transformer_
Definition: crystalGenerator.h:121
BALL::CrystalGenerator::getSpaceGroupFilename
const String & getSpaceGroupFilename() const
Definition: crystalGenerator.h:101
geometricProperties.h
BALL::CrystalGenerator::Default::SPACE_GROUP_FILE
static const string SPACE_GROUP_FILE
Definition: crystalGenerator.h:73
BALL::CrystalGenerator::asu_
System * asu_
Definition: crystalGenerator.h:125
box3.h
regularData3D.h
atomContainer.h
BALL::CrystalGenerator::filename_
String filename_
Definition: crystalGenerator.h:128
BALL::CrystalGenerator::unitcell_
System * unitcell_
Definition: crystalGenerator.h:126
geometricTransformations.h
BALL::CrystalGenerator
Definition: crystalGenerator.h:40