BALL 1.5.0
crystalInfo.h
Go to the documentation of this file.
1// -*- Mode: C++; tab-width: 2; -*-
2// vi: set ts=2:
3
4#ifndef BALL_XRAY_CRYSTALINFO_H
5#define BALL_XRAY_CRYSTALINFO_H
6
7#ifndef BALL_CONCEPT_PERSISTENTOBJECT_H
9#endif
10
11#ifndef BALL_STRUCTURE_GEOMETRICTRANSFORMATIONS_H
13#endif
14
15#ifndef BALL_DATATYPE_STRING_H
17#endif
18
19#ifndef BALL_DATATYPE_OPTIONS_H
21#endif
22
23#ifndef BALL_COMMON_EXCEPTION_H
25#endif
26
27#ifndef BALL_CONCEPT_PERSISTENCEMANAGER_H
29#endif
30
31
32#include <string>
33
34namespace BALL
35{
41 : public PersistentObject
42 {
43 public:
44
48
52 {
55 static const string SPACE_GROUP_FILE;
56 };
57
61 {
64 static const string SPACE_GROUP_FILE;
65 };
66
68
71 //
72
76
79 CrystalInfo(String group, Vector3 dim, Angle alpha, Angle beta, Angle gamma);
80
84
90
91 bool setSpaceGroup(const String& sg);
92 const String& getSpaceGroup() const;
93
94 void setCellDimensions(const Vector3& dim);
95
96 void setCellEdgeLengthA(const float& a);
97 const float& getCellEdgeLengthA() const;
98
99 void setCellEdgeLengthB(const float& b);
100 const float& getCellEdgeLengthB() const;
101
102 void setCellEdgeLengthC(const float& c);
103 const float& getCellEdgeLengthC() const;
104
105 void setCellAngles(const Angle& alpha, const Angle& beta, const Angle& gamma);
106
107 void setCellAngleAlpha(const Angle& alpha);
108 const Angle& getCellAngleAlpha() const;
109
110 void setCellAngleBeta(const Angle& beta);
111 const Angle& getCellAngleBeta() const;
112
113 void setCellAngleGamma(const Angle& gamma);
114 const Angle& getCellAngleGamma() const;
115
116 void setZScore(const int& zscore);
117 const int& getZScore() const;
118
120 const Matrix4x4& getSymOp(Position p) const;
121
123
127 const Matrix4x4& getNCS(Position p) const;
128
133
137 bool isgivenNCS(Position p) const;
138
142 bool insertNCS(Position p, Matrix4x4 ncsm, bool is_given = 0);
143
144 void pushbackNCS(Matrix4x4 ncsm, bool is_given = 0);
145
150
151 const Matrix4x4& getCart2Frac() const;
152 const Matrix4x4& getFrac2Cart() const;
153
157
160 //@
163
165
169
172 //void write(PersistenceManager& pm) const;
173 void persistentWrite(PersistenceManager& pm, const char* name) const;
174
177 //bool read(PersistenceManager& pm);
179
181
182
183 protected:
184
186 bool retrieveSymOps_(const String& sg);
187
193 //bool readOptions_();
194
197 Angle alpha_, beta_, gamma_;
200
203
204 vector<Matrix4x4> ncs_symops_;
205 vector<bool> ncs_isgiven_;
206 vector<Matrix4x4> sg_symops_;
207
208 };
209} // namespace BALL
210
211#endif // BALL_XRAY_CRYSTALINFO_H
#define BALL_CREATE(name)
Definition: create.h:62
Definition: constants.h:13
BALL_EXTERN_VARIABLE const double c
Definition: constants.h:149
bool isgivenNCS(Position p) const
CrystalInfo(String group, Vector3 dim, Angle alpha, Angle beta, Angle gamma)
void setCellAngleGamma(const Angle &gamma)
const Angle & getCellAngleAlpha() const
bool insertNCS(Position p, Matrix4x4 ncsm, bool is_given=0)
void persistentRead(PersistenceManager &pm)
void calculateMatrices_()
void setCellAngles(const Angle &alpha, const Angle &beta, const Angle &gamma)
void setCellEdgeLengthC(const float &c)
void setZScore(const int &zscore)
const String & getSpaceGroup() const
Matrix4x4 cart2frac_
Definition: crystalInfo.h:201
const int & getZScore() const
void setCellAngleAlpha(const Angle &alpha)
const Matrix4x4 & getSymOp(Position p) const
void setCellDimensions(const Vector3 &dim)
void setCellAngleBeta(const Angle &beta)
Size getNumberOfNCSSymOps() const
const Matrix4x4 & getCart2Frac() const
vector< Matrix4x4 > ncs_symops_
Definition: crystalInfo.h:204
const Angle & getCellAngleGamma() const
bool setSpaceGroup(const String &sg)
const float & getCellEdgeLengthA() const
bool eraseNCS(Position p)
Size getNumberOfSymOps() const
const Matrix4x4 & getNCS(Position p) const
Matrix4x4 & getNCS(Position p)
CrystalInfo(const CrystalInfo &ci)
Vector3 cell_dimensions_
Definition: crystalInfo.h:196
const float & getCellEdgeLengthC() const
void pushbackNCS(Matrix4x4 ncsm, bool is_given=0)
const Angle & getCellAngleBeta() const
vector< Matrix4x4 > sg_symops_
Definition: crystalInfo.h:206
vector< bool > ncs_isgiven_
Definition: crystalInfo.h:205
void setCellEdgeLengthA(const float &a)
const Matrix4x4 & getFrac2Cart() const
const float & getCellEdgeLengthB() const
bool retrieveSymOps_(const String &sg)
void setDefaultOptions()
void persistentWrite(PersistenceManager &pm, const char *name) const
Options options
options
Definition: crystalInfo.h:162
void setCellEdgeLengthB(const float &b)
Matrix4x4 frac2cart_
Definition: crystalInfo.h:202
static const string SPACE_GROUP_FILE
Definition: crystalInfo.h:55
static const string SPACE_GROUP_FILE
Definition: crystalInfo.h:64
#define BALL_EXPORT
Definition: COMMON/global.h:50