3 #ifndef INDIGOX_CLASSES_ATOM_HPP 4 #define INDIGOX_CLASSES_ATOM_HPP 6 #include "../utils/fwd_declares.hpp" 37 template <
typename Archive>
38 void serialise(Archive &archive,
const uint32_t version);
49 double z, std::string name);
84 int64_t
GetID()
const;
107 const std::string &
GetName()
const;
187 void AddBond(
const Bond &b);
193 void AddAngle(
const Angle &a);
199 void AddDihedral(
const Dihedral &d);
205 void RemoveBond(
const Bond &b);
211 void RemoveAngle(
const Angle &a);
217 void RemoveDihedral(
const Dihedral &d);
244 std::shared_ptr<Impl> m_data;
Definition: forcefield.hpp:18
double GetZ() const
Atom z position.
int32_t NumHydrogenBonds() const
#define INDIGOX_GENERIC_PIMPL_CLASS_DEFAULTS(class_name)
Definition: fwd_declares.hpp:18
int64_t NumAngles() const
Number of valid angles this atom is a part of.
void SetType(const FFAtom &type)
Set the FF type of the atom.
void SetPosition(double x, double y, double z)
Set the x, y and z positions.
int32_t GetFormalCharge() const
Formal charge on the atom.
std::vector< Angle > AtomAngles
Container for storing IXAngle references.
Definition: atom.hpp:23
std::vector< Dihedral > AtomDihedrals
Container for storing IXDihedral references.
Definition: atom.hpp:25
int64_t GetTag() const
Tag of the atom.
friend class cereal::access
Friendship allows IXAtom to be serialised.
Definition: atom.hpp:17
int64_t NumDihedrals() const
Number of valid dihedrals this atom is a part of.
const Element & GetElement() const
Element of the atom.
No defined stereochemistry.
void SetName(std::string n)
Set the atom name.
int64_t GetIndex() const
Get the index from the molecule.
void SetPartialCharge(double q)
Set the partial charge of this atom.
int64_t NumBonds() const
Number of valid bonds this atom is part of.
void SetTag(int32_t i)
Set the tag of this atom.
const FFAtom & GetType() const
Get the FF type of the atom.
const Molecule & GetMolecule() const
Molecule this atom is associated with.
double GetX() const
Atom x position.
std::string GetResidueName()
void SetChargeGroupID(int32_t id)
void SetStereochemistry(Stereo s)
Set the stereochemistry of an atomic center.
Namespace for all graph related functionality.
Definition: access.hpp:7
std::vector< Bond > AtomBonds
Container for storing Bond references.
Definition: atom.hpp:21
const AtomAngles & GetAngles() const
int32_t RemoveImplicitHydrogen()
Remove an implicit hydrogen.
const Eigen::Vector3d & GetPosition() const
Vector of the atom's position.
Definition: molecule_impl.hpp:42
int32_t AddImplicitHydrogen()
Add an implicit hydrogen.
const AtomBonds & GetBonds() const
Definition: dihedral.hpp:14
int32_t GetChargeGroupID() const
const AtomDihedrals & GetDihedrals() const
void SetImplicitCount(int32_t h)
Set the number of implicit hydrogens.
const std::string & GetName() const
Atom name.
Definition: molecule.hpp:15
Read only class for storing elemental information.
Definition: periodictable.hpp:28
void SetFormalCharge(int32_t q)
Set the formal charge of this atom.
double GetPartialCharge() const
Partial atomic charge on the atom.
#define INDIGOX_GENERIC_PIMPL_CLASS_OPERATORS(class_name, short_name)
Definition: fwd_declares.hpp:26
double GetY() const
Atom y position.
int32_t NumHeavyAtomBonds() const
Defined as no stereochemistry.
int32_t GetImplicitCount() const
Get number of implicit hydrogens.
void SetElement(const Element &e)
Set the element of this atom.
Stereo GetStereochemistry() const
Get the stereochemistry of the atom.
Stereo
Enum for the different types of atom stereochemistry.
Definition: atom.hpp:29