29 #ifndef CDPL_SHAPE_PRINCIPALAXESALIGNMENTSTARTGENERATOR_HPP
30 #define CDPL_SHAPE_PRINCIPALAXESALIGNMENTSTARTGENERATOR_HPP
34 #include <boost/random/mersenne_twister.hpp>
52 static constexpr
double DEF_SYMMETRY_THRESHOLD = 0.15;
53 static constexpr std::size_t DEF_NUM_RANDOM_STARTS = 4;
54 static constexpr
double DEF_MAX_RANDOM_TRANSLATION = 2.0;
115 void generateForElementCenters(
const GaussianShapeFunction& func,
unsigned int axes_swap_flags,
bool ref_shape);
116 void generate(
const Math::Vector3D& ctr_trans,
unsigned int axes_swap_flags);
118 template <
typename QE>
121 typedef std::vector<QuaternionTransformation> StartTransformList;
122 typedef boost::random::mt11213b RandomEngine;
126 bool nonColCtrStarts;
128 bool genForAlgdShape;
130 bool genForLargerShape;
131 StartTransformList startTransforms;
134 double maxRandomTrans;
135 std::size_t numRandomStarts;
136 unsigned int refAxesSwapFlags;
137 std::size_t numSubTransforms;
138 RandomEngine randomEngine;
Definition of the class CDPL::Shape::GaussianShapeAlignmentStartGenerator.
Definition of various quaternion expression types and operations.
Definition of the preprocessor macro CDPL_SHAPE_API.
#define CDPL_SHAPE_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Definition of vector data types.
Definition: Vector.hpp:1053
Definition: Expression.hpp:98
Definition: GaussianShapeAlignmentStartGenerator.hpp:49
Definition: GaussianShapeFunction.hpp:53
Definition: PrincipalAxesAlignmentStartGenerator.hpp:49
bool genForReferenceShapeCenters() const
bool genForAlignedShapeCenters() const
void setRandomSeed(unsigned int seed)
double getSymmetryThreshold()
void setNumRandomStarts(std::size_t num_starts)
void setSymmetryThreshold(double thresh)
bool genNonColorCenterStarts() const
bool generate(const GaussianShapeFunction &func, unsigned int sym_class)
const QuaternionTransformation & getStartTransform(std::size_t idx) const
void genNonColorCenterStarts(bool generate)
std::size_t getNumStartSubTransforms() const
void genForAlignedShapeCenters(bool generate)
bool genColorCenterStarts() const
void genForLargerShapeCenters(bool generate)
void genForReferenceShapeCenters(bool generate)
PrincipalAxesAlignmentStartGenerator()
std::size_t getNumStartTransforms() const
unsigned int setupReference(GaussianShapeFunction &func, Math::Matrix4D &xform) const
bool genForLargerShapeCenters() const
void genRandomStarts(bool generate)
std::size_t getNumRandomStarts() const
void setReference(const GaussianShapeFunction &func, unsigned int sym_class)
bool genRandomStarts() const
double getMaxRandomTranslation() const
void genColorCenterStarts(bool generate)
void setMaxRandomTranslation(double max_trans)
bool genShapeCenterStarts() const
void genShapeCenterStarts(bool generate)
unsigned int setupAligned(GaussianShapeFunction &func, Math::Matrix4D &xform) const
CVector< double, 3 > Vector3D
A bounded 3 element vector holding floating point values of type double.
Definition: Vector.hpp:1637
The namespace of the Chemical Data Processing Library.