Loading...
Searching...
No Matches
crystalGenerator.h
Go to the documentation of this file.
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
#ifndef BALL_XRAY_CRYSTALGENERATOR_H
#define BALL_XRAY_CRYSTALGENERATOR_H
#ifndef BALL_KERNEL_ATOMCONTAINER_H
#include <BALL/KERNEL/atomContainer.h>
#endif
#ifndef BALL_KERNEL_SYSTEM_H
#include <BALL/KERNEL/system.h>
#endif
#ifndef BALL_DATATYPE_REGULARDATA3D_H
#include <BALL/DATATYPE/regularData3D.h>
#endif
#ifndef BALL_XRAY_CRYSTALINFO_H
#include <BALL/XRAY/crystalInfo.h>
#endif
#ifndef BALL_STRUCTURE_GEOMETRICTRANSFORMATIONS_H
#include <BALL/STRUCTURE/geometricTransformations.h>
#endif
#ifndef BALL_STRUCTURE_GEOMETRICPROPERTIES_H
# include <BALL/STRUCTURE/geometricProperties.h>
#endif
#ifndef BALL_MATHS_BOX3_H
# include <BALL/MATHS/box3.h>
#endif
namespace BALL
{
class BALL_EXPORT CrystalGenerator
{
public:
enum CellType
{
NCS_ASU = 0,
ASU = 1,
UNITCELL = 2
};
struct BALL_EXPORT Option
{
static const string SPACE_GROUP_FILE;
};
struct BALL_EXPORT Default
{
static const string SPACE_GROUP_FILE;
};
CrystalGenerator();
CrystalGenerator(const CrystalGenerator& cg);
~CrystalGenerator();
void setSpaceGroupFilename(String& filename){filename_ = filename;};
const String& getSpaceGroupFilename() const {return filename_;};
void setCrystalInfo(boost::shared_ptr<CrystalInfo> ci_ptr);
void setSystem(System* system_ptr);
std::list<System*> generatePacking(Index a_loweridx, Index a_upperidx, Index b_loweridx, Index b_upperid, Index c_loweridx, Index c_upperid);
System* generateUnitCell(Index a, Index b, Index c);
System* generateUnitCell();
System* generateAsymmetricUnit();
std::list<System*> generateSymMoleculesWithinDistance(float angstrom);
Box3 getUnitCellBox(Index a, Index b, Index c);
protected:
bool buildUnitCell_();
bool buildASU_();
bool correctASUPositions_(System* raw_cell);
GeometricCenterProcessor center_processor_;
TransformationProcessor transformer_;
System* system_;
System* asu_;
System* unitcell_;
boost::shared_ptr<CrystalInfo> ci_ptr_;
String filename_;
};
} // namespace BALL
#endif // BALL_XRAY_CRYSTALINFO_H
BALL_EXPORT
#define BALL_EXPORT
Definition COMMON/global.h:50
system.h
atomContainer.h
box3.h
BALL::CrystalGenerator::CrystalGenerator
CrystalGenerator()
BALL::CrystalGenerator::correctASUPositions_
bool correctASUPositions_(System *raw_cell)
BALL::CrystalGenerator::unitcell_
System * unitcell_
Definition crystalGenerator.h:126
BALL::CrystalGenerator::buildASU_
bool buildASU_()
BALL::CrystalGenerator::~CrystalGenerator
~CrystalGenerator()
BALL::CrystalGenerator::generateAsymmetricUnit
System * generateAsymmetricUnit()
BALL::CrystalGenerator::CellType
CellType
Definition crystalGenerator.h:52
BALL::CrystalGenerator::ASU
@ ASU
Definition crystalGenerator.h:54
BALL::CrystalGenerator::NCS_ASU
@ NCS_ASU
Definition crystalGenerator.h:53
BALL::CrystalGenerator::UNITCELL
@ UNITCELL
Definition crystalGenerator.h:55
BALL::CrystalGenerator::asu_
System * asu_
Definition crystalGenerator.h:125
BALL::CrystalGenerator::ci_ptr_
boost::shared_ptr< CrystalInfo > ci_ptr_
Definition crystalGenerator.h:127
BALL::CrystalGenerator::generateSymMoleculesWithinDistance
std::list< System * > generateSymMoleculesWithinDistance(float angstrom)
BALL::CrystalGenerator::filename_
String filename_
Definition crystalGenerator.h:128
BALL::CrystalGenerator::system_
System * system_
Definition crystalGenerator.h:123
BALL::CrystalGenerator::getUnitCellBox
Box3 getUnitCellBox(Index a, Index b, Index c)
BALL::CrystalGenerator::getSpaceGroupFilename
const String & getSpaceGroupFilename() const
Definition crystalGenerator.h:101
BALL::CrystalGenerator::setSpaceGroupFilename
void setSpaceGroupFilename(String &filename)
Definition crystalGenerator.h:98
BALL::CrystalGenerator::setSystem
void setSystem(System *system_ptr)
BALL::CrystalGenerator::center_processor_
GeometricCenterProcessor center_processor_
Definition crystalGenerator.h:120
BALL::CrystalGenerator::buildUnitCell_
bool buildUnitCell_()
BALL::CrystalGenerator::generatePacking
std::list< System * > generatePacking(Index a_loweridx, Index a_upperidx, Index b_loweridx, Index b_upperid, Index c_loweridx, Index c_upperid)
BALL::CrystalGenerator::transformer_
TransformationProcessor transformer_
Definition crystalGenerator.h:121
BALL::CrystalGenerator::CrystalGenerator
CrystalGenerator(const CrystalGenerator &cg)
BALL::CrystalGenerator::setCrystalInfo
void setCrystalInfo(boost::shared_ptr< CrystalInfo > ci_ptr)
BALL::CrystalGenerator::generateUnitCell
System * generateUnitCell()
BALL::CrystalGenerator::generateUnitCell
System * generateUnitCell(Index a, Index b, Index c)
BALL::GeometricCenterProcessor
Definition geometricProperties.h:135
BALL::String
Definition string.h:57
BALL::System
Definition KERNEL/system.h:40
BALL::TransformationProcessor
Definition geometricTransformations.h:89
crystalInfo.h
geometricProperties.h
geometricTransformations.h
BALL::Box3
TBox3< float > Box3
Definition box3.h:496
BALL
Definition constants.h:13
BALL::Index
BALL_INDEX_TYPE Index
Definition COMMON/global.h:105
regularData3D.h
BALL::CrystalGenerator::Default
Definition crystalGenerator.h:70
BALL::CrystalGenerator::Default::SPACE_GROUP_FILE
static const string SPACE_GROUP_FILE
Definition crystalGenerator.h:73
BALL::CrystalGenerator::Option
Definition crystalGenerator.h:61
BALL::CrystalGenerator::Option::SPACE_GROUP_FILE
static const string SPACE_GROUP_FILE
Definition crystalGenerator.h:64