29 #ifndef CDPL_CHEM_HYDROGEN3DCOORDINATESCALCULATOR_HPP
30 #define CDPL_CHEM_HYDROGEN3DCOORDINATESCALCULATOR_HPP
156 typedef std::vector<std::size_t> AtomIndexList;
169 void assignTemplateCoords(
const Atom&, std::size_t, std::size_t,
174 bool getConnectedAtomWithCoords(std::size_t,
const Atom&, std::size_t&)
const;
176 double getHydrogenBondLength(
const Atom&)
const;
182 void getRotationReferenceVector(
const Atom&, std::size_t, std::size_t, std::size_t,
186 typedef std::vector<Math::Vector3D> DynamicPointArray;
194 AtomIndexList centerAtoms;
195 AtomIndexList conctdAtoms;
198 DynamicPointArray genPoints;
Type declaration of a generic wrapper class for storing user-defined Chem::Atom 3D coordinates functi...
Type declaration of a generic wrapper class for storing user-defined Chem::Atom predicates.
Declaration of type CDPL::Util::BitSet.
Definition of the preprocessor macro CDPL_CHEM_API.
#define CDPL_CHEM_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Implementation of the Kabsch algorithm.
Definition of matrix data types.
Definition of class CDPL::Math::VectorArray.
Abstract base class representing a chemical atom and its bonded neighborhood.
Definition: Atom.hpp:57
Generates 3D coordinates for the hydrogen atoms of a molecular graph from the existing positions of t...
Definition: Hydrogen3DCoordinatesCalculator.hpp:64
const AtomPredicate & getAtom3DCoordinatesCheckFunction() const
Returns the function that was registered to determine whether for a given atom 3D coordinates are ava...
void setAtom3DCoordinatesFunction(const Atom3DCoordinatesFunction &func)
Specifies a function for the retrieval of atom 3D coordinates.
void calculate(const MolecularGraph &molgraph, Math::Vector3DArray &coords, bool init_coords=true)
Calculates 3D coordinates for the hydrogen atoms of the molecular graph molgraph.
const Atom3DCoordinatesFunction & getAtom3DCoordinatesFunction() const
Returns the function that was registered for the retrieval of atom 3D coordinates.
void calculate(Math::Vector3DArray &coords, bool init_coords=true)
Calculates 3D coordinates for the hydrogen atoms of the molecular graph previously specified via setu...
void setup(const MolecularGraph &molgraph)
Initializes the calculator for the molecular graph molgraph (perceives hydrogen-bearing centers and p...
void setAtom3DCoordinatesCheckFunction(const AtomPredicate &func)
Specifies a function that tells whether 3D coordinates are available for it's argument atom.
Hydrogen3DCoordinatesCalculator(const MolecularGraph &molgraph, Math::Vector3DArray &coords, bool undef_only=true)
Constructs the Hydrogen3DCoordinatesCalculator instance and calculates 3D coordinates for the hydroge...
Hydrogen3DCoordinatesCalculator()
Constructs the Hydrogen3DCoordinatesCalculator instance.
bool undefinedOnly() const
Tells whether already defined hydrogen atom coordinates are recalculated or left unchanged.
void undefinedOnly(bool undef_only)
Allows to specify whether already defined hydrogen atom coordinates have to be recalculated or are le...
Abstract base class for representations of a chemical structure as a graph of bonded atoms.
Definition: MolecularGraph.hpp:57
std::function< bool(const Chem::Atom &)> AtomPredicate
Generic wrapper class used to store a user-defined atom predicate.
Definition: AtomPredicate.hpp:41
std::size_t getConnectedAtoms(AtomType &atom, const MolecularGraph &molgraph, OutputIterator it, AtomType *excl_atom=0)
Writes every neighbor of the atom atom that is connected by a bond belonging to the molecular graph m...
Definition: Chem/AtomFunctions.hpp:1255
CDPL_CHEM_API unsigned int getHybridizationState(const Atom &atom)
Returns the value of the Chem::AtomProperty::HYBRIDIZATION property of the atom atom.
std::function< const Math::Vector3D &(const Chem::Atom &)> Atom3DCoordinatesFunction
Generic wrapper class used to store a user-defined Chem::Atom 3D coordinates function.
Definition: Atom3DCoordinatesFunction.hpp:43
VectorArray< Vector3D > Vector3DArray
Array storing vectors of type Math::Vector3D.
Definition: VectorArray.hpp:87
CVector< double, 3 > Vector3D
Bounded 3 element vector holding floating-point values of type double.
Definition: Vector.hpp:3218
CMatrix< double, 3, 3 > Matrix3D
Bounded 3×3 matrix holding floating-point values of type double.
Definition: Matrix.hpp:3504
boost::dynamic_bitset BitSet
Dynamic bitset class.
Definition: BitSet.hpp:46
The namespace of the Chemical Data Processing Library.