29 #ifndef CDPL_SHAPE_GAUSSIANSHAPEFUNCTIONALIGNMENT_HPP
30 #define CDPL_SHAPE_GAUSSIANSHAPEFUNCTIONALIGNMENT_HPP
58 typedef std::vector<Result> ResultList;
61 static constexpr
double DEF_OPTIMIZATION_STOP_GRADIENT = 1.0;
62 static constexpr std::size_t DEF_MAX_OPTIMIZATION_ITERATIONS = 20;
76 transform(xform), overlap(overlap), colOverlap(col_overlap) {}
97 transform(), overlap(0.0), colOverlap(0.0) {}
201 unsigned int refShapeSymClass;
203 bool calcColOverlaps;
206 std::size_t maxNumOptIters;
Implementation of the BFGS optimization algorithm.
Definition of the class CDPL::Shape::FastGaussianShapeOverlapFunction.
Definition of matrix data types.
Definition of the class CDPL::Shape::PrincipalAxesAlignmentStartGenerator.
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 the class CDPL::Math::VectorArray.
Definition: Vector.hpp:1053
Definition: FastGaussianShapeOverlapFunction.hpp:47
Definition: GaussianShapeAlignmentStartGenerator.hpp:49
Definition: GaussianShapeFunctionAlignment.hpp:72
double getOverlap() const
Definition: GaussianShapeFunctionAlignment.hpp:83
const Math::Matrix4D & getTransform() const
Definition: GaussianShapeFunctionAlignment.hpp:78
Result(const Math::Matrix4D &xform, double overlap, double col_overlap)
Definition: GaussianShapeFunctionAlignment.hpp:75
double getColorOverlap() const
Definition: GaussianShapeFunctionAlignment.hpp:88
Definition: GaussianShapeFunctionAlignment.hpp:52
std::size_t getNumResults() const
void setOptimizationStopGradient(double grad_norm)
ConstResultIterator begin() const
ConstResultIterator end() const
void setColorFilterFunction(const ColorFilterFunction &func)
FastGaussianShapeOverlapFunction & getDefaultOverlapFunction()
void calcColorOverlaps(bool calc)
GaussianShapeFunctionAlignment & operator=(const GaussianShapeFunctionAlignment &alignment)=delete
const Result & getResult(std::size_t idx) const
void performAlignment(bool perf_align)
void optimizeOverlap(bool optimize)
GaussianShapeFunctionAlignment(const GaussianShapeFunctionAlignment &alignment)=delete
GaussianShapeFunctionAlignment(const GaussianShapeFunction &ref_func, unsigned int sym_class)
double calcColorSelfOverlap(const GaussianShapeFunction &func)
const GaussianShapeFunction * getReference() const
unsigned int setupReference(GaussianShapeFunction &func, Math::Matrix4D &xform) const
bool greedyOptimization() const
const ColorFilterFunction & getColorFilterFunction() const
ResultList::const_iterator ConstResultIterator
Definition: GaussianShapeFunctionAlignment.hpp:66
bool align(const GaussianShapeFunction &func, unsigned int sym_class)
void setColorMatchFunction(const ColorMatchFunction &func)
bool optimizeOverlap() const
double getOptimizationStopGradient() const
const ColorMatchFunction & getColorMatchFunction() const
const PrincipalAxesAlignmentStartGenerator & getDefaultStartGenerator() const
double calcSelfOverlap(const GaussianShapeFunction &func)
void setReference(const GaussianShapeFunction &func, unsigned int sym_class)
GaussianShapeOverlapFunction::ColorMatchFunction ColorMatchFunction
Definition: GaussianShapeFunctionAlignment.hpp:69
const FastGaussianShapeOverlapFunction & getDefaultOverlapFunction() const
PrincipalAxesAlignmentStartGenerator & getDefaultStartGenerator()
GaussianShapeAlignmentStartGenerator & getStartGenerator() const
GaussianShapeOverlapFunction & getOverlapFunction() const
void greedyOptimization(bool greedy)
void setOverlapFunction(GaussianShapeOverlapFunction &func)
~GaussianShapeFunctionAlignment()
ConstResultIterator getResultsBegin() const
GaussianShapeFunctionAlignment()
bool calcColorOverlaps() const
void setMaxNumOptimizationIterations(std::size_t max_iter)
bool performAlignment() const
void setStartGenerator(GaussianShapeAlignmentStartGenerator &gen)
ConstResultIterator getResultsEnd() const
std::size_t getMaxNumOptimizationIterations() const
GaussianShapeOverlapFunction::ColorFilterFunction ColorFilterFunction
Definition: GaussianShapeFunctionAlignment.hpp:68
unsigned int setupAligned(GaussianShapeFunction &func, Math::Matrix4D &xform) const
std::shared_ptr< GaussianShapeFunctionAlignment > SharedPointer
Definition: GaussianShapeFunctionAlignment.hpp:64
Definition: GaussianShapeFunction.hpp:53
Definition: GaussianShapeOverlapFunction.hpp:49
std::function< bool(std::size_t)> ColorFilterFunction
Definition: GaussianShapeOverlapFunction.hpp:54
std::function< bool(std::size_t, std::size_t)> ColorMatchFunction
Definition: GaussianShapeOverlapFunction.hpp:55
Definition: PrincipalAxesAlignmentStartGenerator.hpp:49
VectorArray< Vector3D > Vector3DArray
An array of Math::Vector3D objects.
Definition: VectorArray.hpp:84
CDPL_SHAPE_API void transform(GaussianShape &shape, const Math::Matrix4D &xform)
The namespace of the Chemical Data Processing Library.