3 #ifndef INDIGOX_UTILS_FWD_DECLARES_HPP 4 #define INDIGOX_UTILS_FWD_DECLARES_HPP 11 class PortableBinaryInputArchive;
12 class PortableBinaryOutputArchive;
13 class JSONInputArchive;
14 class JSONOutputArchive;
15 template <
class T>
class construct;
18 #define INDIGOX_GENERIC_PIMPL_CLASS_DEFAULTS(class_name) \ 19 class_name() = default; \ 20 class_name(const class_name &) = default; \ 21 class_name(class_name &&) = default; \ 22 class_name &operator=(const class_name &) = default; \ 23 class_name &operator=(class_name &&) = default; \ 24 ~class_name() = default 26 #define INDIGOX_GENERIC_PIMPL_CLASS_OPERATORS(class_name, short_name) \ 27 bool operator==(const class_name &short_name) const; \ 28 bool operator<(const class_name &short_name) const; \ 29 bool operator>(const class_name &short_name) const; \ 30 inline bool operator!=(const class_name &short_name) const { \ 31 return !(operator==(short_name)); \ 33 inline bool operator<=(const class_name &short_name) const { \ 34 return !(operator>(short_name)); \ 36 inline bool operator>=(const class_name &short_name) const { \ 37 return !(operator<(short_name)); \ 39 inline operator bool() const { return bool(m_data); } \ 40 friend std::ostream &operator<<(std::ostream &os, \ 41 const class_name &short_name) 85 class IXElectronAssigner;
92 template <
class V,
class E,
class S,
class D,
class VP,
class EP>
99 class IXAssignmentGraph;
119 struct TestForcefield;
123 struct TestFFDihedral;
131 struct TestPeriodicTable;
133 struct TestAssignmentGraph;
134 struct TestCondensedMolecularGraph;
135 struct TestCondensedVertex;
136 struct TestCondensedEdge;
137 struct TestMolecularGraph;
138 struct TestMolecularVertex;
139 struct TestMolecularEdge;
std::shared_ptr< Fragment > sFragment
Definition: fwd_declares.hpp:73
Definition: forcefield.hpp:18
Definition: forcefield.hpp:58
std::weak_ptr< Fragment > wFragment
Definition: fwd_declares.hpp:74
Athenaeum class for fragment storage in CherryPicker algorithm.
Definition: athenaeum.hpp:76
Definition: condensed.hpp:131
Definition: residue.hpp:11
Class for the vertices of an IXCondensedMolecularGraph.
Definition: condensed.hpp:21
Class for the edges of a IXMolecularGraph.
Definition: molecular.hpp:55
Definition: forcefield.hpp:234
std::weak_ptr< Athenaeum > wAthenaeum
Definition: fwd_declares.hpp:78
std::shared_ptr< Athenaeum > sAthenaeum
Definition: fwd_declares.hpp:77
Class containing a graph representation of a molecule.
Definition: molecular.hpp:95
Namespace for all graph related functionality.
Definition: access.hpp:7
Class for the vertices of a IXMolecularGraph.
Definition: molecular.hpp:20
std::shared_ptr< IXElectronAssigner > ElectronAssigner
Definition: fwd_declares.hpp:86
std::shared_ptr< IXAGVertex > AGVertex
Definition: fwd_declares.hpp:104
Definition: common.hpp:14
std::weak_ptr< IXAGVertex > _AGVertex
Definition: fwd_declares.hpp:105
uint32_t State
Definition: fwd_declares.hpp:45
Definition: dihedral.hpp:14
std::shared_ptr< IXAssignmentGraph > AssignmentGraph
Definition: fwd_declares.hpp:100
Definition: molecule.hpp:15
Read only class for storing elemental information.
Definition: periodictable.hpp:28
Definition: parameterised.hpp:196
Definition: forcefield.hpp:333
Class for the vertices of an IXAssignmentGraph.
Definition: assignment.hpp:19
Definition: parameterised.hpp:139
Fragment class for CherryPicker parameterisation algorithm.
Definition: athenaeum.hpp:17
Definition: parameterised.hpp:15
std::weak_ptr< IXElectronAssigner > _ElectronAssigner
Definition: fwd_declares.hpp:87
Definition: parameterised.hpp:255
Definition: parameterised.hpp:82
Definition: forcefield.hpp:151
Singleton class for storing and access elemental information.
Definition: periodictable.hpp:145
Class for the edges of an IXCondensedMolecularGraph.
Definition: condensed.hpp:92
std::weak_ptr< IXAssignmentGraph > _AssignmentGraph
Definition: fwd_declares.hpp:101