29 #ifndef CDPL_CHEM_ATOMCONTAINERFUNCTIONS_HPP
30 #define CDPL_CHEM_ATOMCONTAINERFUNCTIONS_HPP
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.
Definition of matrix data types.
Definition of class CDPL::Math::VectorArray.
Common interface for data structures that support a random access to stored Chem::Atom instances.
Definition: AtomContainer.hpp:55
Concrete Chem::MolecularGraph implementation that stores references to a selectable subset of atoms a...
Definition: Fragment.hpp:57
Abstract base class representing a mutable molecular graph that owns its atoms and bonds.
Definition: Molecule.hpp:53
CDPL_CHEM_API void setConformation(AtomContainer &cntnr, std::size_t conf_idx, const Math::Vector3DArray &coords)
Overwrites the conformation at index conf_idx with the supplied 3D coordinates.
CDPL_CHEM_API bool alignConformations(AtomContainer &cntnr, const Util::BitSet &ref_atoms, const Math::Vector3DArray &ref_coords)
Aligns each stored conformation of cntnr onto the supplied reference coordinates using the atoms flag...
CDPL_CHEM_API std::size_t getNumConformations(const AtomContainer &cntnr)
Returns the number of conformations stored on the atoms of cntnr.
CDPL_CHEM_API void transformConformation(AtomContainer &cntnr, std::size_t conf_idx, const Math::Matrix4D &mtx)
Transforms the conformation at index conf_idx by the homogeneous 4×4 matrix mtx.
std::function< bool(const Chem::Atom &)> AtomPredicate
Generic wrapper class used to store a user-defined atom predicate.
Definition: AtomPredicate.hpp:41
CDPL_CHEM_API bool insideBoundingBox(const AtomContainer &cntnr, const Math::Vector3D &min, const Math::Vector3D &max, const Atom3DCoordinatesFunction &coords_func)
Tells whether every atom of cntnr lies inside the axis-aligned bounding box defined by min and max.
CDPL_CHEM_API void addConformation(AtomContainer &cntnr, const Math::Vector3DArray &coords)
Appends a new conformation built from the supplied 3D coordinates to the atoms of cntnr.
CDPL_CHEM_API void copyAtomsIfNot(const AtomContainer &cntnr, Molecule &mol, const AtomPredicate &pred, bool append=false)
Copies every atom of cntnr that does not satisfy pred into the molecule mol.
CDPL_CHEM_API void applyConformation(AtomContainer &cntnr, std::size_t conf_idx)
Promotes the stored conformation at index conf_idx to the active per-atom 3D coordinates.
CDPL_CHEM_API void get2DCoordinates(const AtomContainer &cntnr, Math::Vector2DArray &coords, bool append=false)
Extracts the 2D coordinates of all atoms in cntnr into coords.
CDPL_CHEM_API void getConformation(const AtomContainer &cntnr, std::size_t conf_idx, Math::Vector3DArray &coords, bool append=false)
Extracts the conformation at index conf_idx into coords.
CDPL_CHEM_API void calcBoundingBox(const AtomContainer &cntnr, Math::Vector3D &min, Math::Vector3D &max, const Atom3DCoordinatesFunction &coords_func, bool reset=true)
Computes the axis-aligned bounding box enclosing the atoms of cntnr.
CDPL_CHEM_API void transform2DCoordinates(AtomContainer &cntnr, const Math::Matrix3D &mtx)
Transforms the 2D coordinates of all atoms in cntnr by the affine 3×3 matrix mtx.
CDPL_CHEM_API void transformConformations(AtomContainer &cntnr, const Math::Matrix4D &mtx)
Transforms every stored conformation of the atoms in cntnr by the homogeneous 4×4 matrix mtx.
CDPL_CHEM_API void copyAtomsIf(const AtomContainer &cntnr, Molecule &mol, const AtomPredicate &pred, bool append=false)
Copies every atom of cntnr that satisfies pred into the molecule mol.
CDPL_CHEM_API std::size_t createAtomTypeMask(const AtomContainer &cntnr, Util::BitSet &mask, unsigned int type, bool reset=true, bool strict=true)
Sets bits in mask corresponding to atoms of cntnr whose atom type matches type.
CDPL_CHEM_API void clearConformations(AtomContainer &cntnr)
Removes all stored conformations from the atoms of cntnr.
CDPL_CHEM_API std::size_t getMaxComponentGroupID(const AtomContainer &cntnr)
Returns the largest component-group ID assigned to any atom of cntnr.
CDPL_CHEM_API bool hasCoordinates(const AtomContainer &cntnr, std::size_t dim)
Tells whether all atoms of cntnr carry coordinates of the given dimensionality.
CDPL_CHEM_API bool calcCenterOfMass(const AtomContainer &cntnr, const Atom3DCoordinatesFunction &coords_func, Math::Vector3D &ctr)
Computes the mass-weighted center of mass of the atoms in cntnr.
CDPL_CHEM_API void set2DCoordinates(AtomContainer &cntnr, const Math::Vector2DArray &coords)
Writes the 2D coordinates in coords back to the corresponding atoms of cntnr.
CDPL_CHEM_API std::size_t getMaxAtomMappingID(const AtomContainer &cntnr)
Returns the largest atom-mapping ID assigned to any atom of cntnr.
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
CDPL_CHEM_API bool intersectsBoundingBox(const AtomContainer &cntnr, const Math::Vector3D &min, const Math::Vector3D &max, const Atom3DCoordinatesFunction &coords_func)
Tells whether at least one atom of cntnr lies inside the axis-aligned bounding box defined by min and...
CDPL_CHEM_API void get3DCoordinates(const AtomContainer &cntnr, Math::Vector3DArray &coords, const Atom3DCoordinatesFunction &coords_func, bool append=false)
Extracts the 3D coordinates of all atoms in cntnr into coords using the per-atom coordinate lookup fu...
CDPL_CHEM_API bool calcCentroid(const AtomContainer &cntnr, const Atom3DCoordinatesFunction &coords_func, Math::Vector3D &ctr)
Computes the unweighted centroid (arithmetic mean of atom coordinates) of cntnr.
VectorArray< Vector3D > Vector3DArray
Array storing vectors of type Math::Vector3D.
Definition: VectorArray.hpp:85
CVector< double, 3 > Vector3D
Bounded 3 element vector holding floating point values of type double.
Definition: Vector.hpp:2937
VectorArray< Vector2D > Vector2DArray
Array storing vectors of type Math::Vector2D.
Definition: VectorArray.hpp:80
CMatrix< double, 3, 3 > Matrix3D
Bounded 3x3 matrix holding floating point values of type double.
Definition: Matrix.hpp:3180
boost::dynamic_bitset BitSet
Dynamic bitset class.
Definition: BitSet.hpp:46
The namespace of the Chemical Data Processing Library.