Loading...
Searching...
No Matches
crystalInfo.h
Go to the documentation of this file.
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
#ifndef BALL_XRAY_CRYSTALINFO_H
#define BALL_XRAY_CRYSTALINFO_H
#ifndef BALL_CONCEPT_PERSISTENTOBJECT_H
#include <BALL/CONCEPT/persistentObject.h>
#endif
#ifndef BALL_STRUCTURE_GEOMETRICTRANSFORMATIONS_H
#include <BALL/STRUCTURE/geometricTransformations.h>
#endif
#ifndef BALL_DATATYPE_STRING_H
#include <BALL/DATATYPE/string.h>
#endif
#ifndef BALL_DATATYPE_OPTIONS_H
#include <BALL/DATATYPE/options.h>
#endif
#ifndef BALL_COMMON_EXCEPTION_H
# include <BALL/COMMON/exception.h>
#endif
#ifndef BALL_CONCEPT_PERSISTENCEMANAGER_H
# include <BALL/CONCEPT/persistenceManager.h>
#endif
#include <string>
namespace BALL
{
class BALL_EXPORT CrystalInfo
: public PersistentObject
{
public:
struct BALL_EXPORT Option
{
static const string SPACE_GROUP_FILE;
};
struct BALL_EXPORT Default
{
static const string SPACE_GROUP_FILE;
};
//
CrystalInfo();
CrystalInfo(String group, Vector3 dim, Angle alpha, Angle beta, Angle gamma);
CrystalInfo(const CrystalInfo& ci);
BALL_CREATE(CrystalInfo)
~CrystalInfo();
bool setSpaceGroup(const String& sg);
const String& getSpaceGroup() const;
void setCellDimensions(const Vector3& dim);
void setCellEdgeLengthA(const float& a);
const float& getCellEdgeLengthA() const;
void setCellEdgeLengthB(const float& b);
const float& getCellEdgeLengthB() const;
void setCellEdgeLengthC(const float& c);
const float& getCellEdgeLengthC() const;
void setCellAngles(const Angle& alpha, const Angle& beta, const Angle& gamma);
void setCellAngleAlpha(const Angle& alpha);
const Angle& getCellAngleAlpha() const;
void setCellAngleBeta(const Angle& beta);
const Angle& getCellAngleBeta() const;
void setCellAngleGamma(const Angle& gamma);
const Angle& getCellAngleGamma() const;
void setZScore(const int& zscore);
const int& getZScore() const;
Size getNumberOfSymOps() const ;
const Matrix4x4& getSymOp(Position p) const;
Size getNumberOfNCSSymOps() const;
const Matrix4x4& getNCS(Position p) const;
Matrix4x4& getNCS(Position p);
bool isgivenNCS(Position p) const;
bool insertNCS(Position p, Matrix4x4 ncsm, bool is_given = 0);
void pushbackNCS(Matrix4x4 ncsm, bool is_given = 0);
bool eraseNCS(Position p);
const Matrix4x4& getCart2Frac() const;
const Matrix4x4& getFrac2Cart() const;
void setDefaultOptions();
//@
Options options;
//void write(PersistenceManager& pm) const;
void persistentWrite(PersistenceManager& pm, const char* name) const;
//bool read(PersistenceManager& pm);
void persistentRead(PersistenceManager& pm);
protected:
void calculateMatrices_();
bool retrieveSymOps_(const String& sg);
//bool readOptions_();
String space_group_;
Vector3 cell_dimensions_;
Angle alpha_, beta_, gamma_;
int z_score_;
String filename_;
Matrix4x4 cart2frac_;
Matrix4x4 frac2cart_;
vector<Matrix4x4> ncs_symops_;
vector<bool> ncs_isgiven_;
vector<Matrix4x4> sg_symops_;
};
} // namespace BALL
#endif // BALL_XRAY_CRYSTALINFO_H
exception.h
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
BALL::CrystalInfo::isgivenNCS
bool isgivenNCS(Position p) const
BALL::CrystalInfo::CrystalInfo
CrystalInfo(String group, Vector3 dim, Angle alpha, Angle beta, Angle gamma)
BALL::CrystalInfo::setCellAngleGamma
void setCellAngleGamma(const Angle &gamma)
BALL::CrystalInfo::getCellAngleAlpha
const Angle & getCellAngleAlpha() const
BALL::CrystalInfo::insertNCS
bool insertNCS(Position p, Matrix4x4 ncsm, bool is_given=0)
BALL::CrystalInfo::space_group_
String space_group_
Definition crystalInfo.h:195
BALL::CrystalInfo::persistentRead
void persistentRead(PersistenceManager &pm)
BALL::CrystalInfo::calculateMatrices_
void calculateMatrices_()
BALL::CrystalInfo::setCellAngles
void setCellAngles(const Angle &alpha, const Angle &beta, const Angle &gamma)
BALL::CrystalInfo::gamma_
Angle gamma_
Definition crystalInfo.h:197
BALL::CrystalInfo::setCellEdgeLengthC
void setCellEdgeLengthC(const float &c)
BALL::CrystalInfo::setZScore
void setZScore(const int &zscore)
BALL::CrystalInfo::getSpaceGroup
const String & getSpaceGroup() const
BALL::CrystalInfo::cart2frac_
Matrix4x4 cart2frac_
Definition crystalInfo.h:201
BALL::CrystalInfo::getZScore
const int & getZScore() const
BALL::CrystalInfo::filename_
String filename_
Definition crystalInfo.h:199
BALL::CrystalInfo::setCellAngleAlpha
void setCellAngleAlpha(const Angle &alpha)
BALL::CrystalInfo::getSymOp
const Matrix4x4 & getSymOp(Position p) const
BALL::CrystalInfo::setCellDimensions
void setCellDimensions(const Vector3 &dim)
BALL::CrystalInfo::setCellAngleBeta
void setCellAngleBeta(const Angle &beta)
BALL::CrystalInfo::getNumberOfNCSSymOps
Size getNumberOfNCSSymOps() const
BALL::CrystalInfo::getCart2Frac
const Matrix4x4 & getCart2Frac() const
BALL::CrystalInfo::beta_
Angle beta_
Definition crystalInfo.h:197
BALL::CrystalInfo::ncs_symops_
vector< Matrix4x4 > ncs_symops_
Definition crystalInfo.h:204
BALL::CrystalInfo::getCellAngleGamma
const Angle & getCellAngleGamma() const
BALL::CrystalInfo::setSpaceGroup
bool setSpaceGroup(const String &sg)
BALL::CrystalInfo::getCellEdgeLengthA
const float & getCellEdgeLengthA() const
BALL::CrystalInfo::eraseNCS
bool eraseNCS(Position p)
BALL::CrystalInfo::getNumberOfSymOps
Size getNumberOfSymOps() const
BALL::CrystalInfo::getNCS
const Matrix4x4 & getNCS(Position p) const
BALL::CrystalInfo::getNCS
Matrix4x4 & getNCS(Position p)
BALL::CrystalInfo::CrystalInfo
CrystalInfo(const CrystalInfo &ci)
BALL::CrystalInfo::cell_dimensions_
Vector3 cell_dimensions_
Definition crystalInfo.h:196
BALL::CrystalInfo::getCellEdgeLengthC
const float & getCellEdgeLengthC() const
BALL::CrystalInfo::pushbackNCS
void pushbackNCS(Matrix4x4 ncsm, bool is_given=0)
BALL::CrystalInfo::getCellAngleBeta
const Angle & getCellAngleBeta() const
BALL::CrystalInfo::sg_symops_
vector< Matrix4x4 > sg_symops_
Definition crystalInfo.h:206
BALL::CrystalInfo::ncs_isgiven_
vector< bool > ncs_isgiven_
Definition crystalInfo.h:205
BALL::CrystalInfo::setCellEdgeLengthA
void setCellEdgeLengthA(const float &a)
BALL::CrystalInfo::getFrac2Cart
const Matrix4x4 & getFrac2Cart() const
BALL::CrystalInfo::getCellEdgeLengthB
const float & getCellEdgeLengthB() const
BALL::CrystalInfo::retrieveSymOps_
bool retrieveSymOps_(const String &sg)
BALL::CrystalInfo::CrystalInfo
CrystalInfo()
BALL::CrystalInfo::setDefaultOptions
void setDefaultOptions()
BALL::CrystalInfo::z_score_
int z_score_
Definition crystalInfo.h:198
BALL::CrystalInfo::~CrystalInfo
~CrystalInfo()
BALL::CrystalInfo::persistentWrite
void persistentWrite(PersistenceManager &pm, const char *name) const
BALL::CrystalInfo::options
Options options
options
Definition crystalInfo.h:162
BALL::CrystalInfo::alpha_
Angle alpha_
Definition crystalInfo.h:197
BALL::CrystalInfo::setCellEdgeLengthB
void setCellEdgeLengthB(const float &b)
BALL::CrystalInfo::frac2cart_
Matrix4x4 frac2cart_
Definition crystalInfo.h:202
BALL::Options
Definition options.h:48
BALL::PersistenceManager
Definition persistenceManager.h:73
BALL::PersistentObject::PersistentObject
PersistentObject()
Definition persistentObject.h:39
BALL::String
Definition string.h:57
BALL_CREATE
#define BALL_CREATE(name)
Definition create.h:62
geometricTransformations.h
BALL::Matrix4x4
TMatrix4x4< float > Matrix4x4
Definition matrix44.h:2184
BALL
Definition constants.h:13
BALL::Size
BALL_SIZE_TYPE Size
Definition COMMON/global.h:114
BALL::Position
BALL_SIZE_TYPE Position
Definition COMMON/global.h:140
BALL::Vector3
TVector3< float > Vector3
Definition vector3.h:1084
BALL::Angle
TAngle< float > Angle
Definition angle.h:697
options.h
persistenceManager.h
persistentObject.h
string.h
BALL::CrystalInfo::Default
Definition crystalInfo.h:61
BALL::CrystalInfo::Default::SPACE_GROUP_FILE
static const string SPACE_GROUP_FILE
Definition crystalInfo.h:64
BALL::CrystalInfo::Option
Definition crystalInfo.h:52
BALL::CrystalInfo::Option::SPACE_GROUP_FILE
static const string SPACE_GROUP_FILE
Definition crystalInfo.h:55