124 template <
typename T >
127 Valence position = GetBondPosition< T >();
138 template <
typename T >
141 Valence position = GetBondPosition< T >();
153 template <
typename T >
164 template <
typename T >
167 return *AsBonded< physical::Quantum< T >* >();
175 template <
typename T >
178 #if BIO_CPP_VERSION < 11
179 return AsBondedQuantum< T >();
181 if (IsPrimitive< T >())
183 return AsBondedQuantum< T >();
187 return AsBonded< T >();
198 template <
typename T >
201 #if BIO_CPP_VERSION < 11
202 return AsBondedQuantum< T >();
204 if (IsPrimitive< T >())
206 return AsBondedQuantum< T >();
210 return AsBonded< T >();
221 template <
typename T >
236 template <
typename T >
241 #if BIO_CPP_VERSION < 11
248 if (IsPrimitive< T >())
259 AtomicNumber bondedId = PeriodicTable::Instance().GetIdFromType< T >();
278 template <
typename T >
283 #if BIO_CPP_VERSION < 11
284 return BreakBond< physical::Quantum< T >* >(
289 if (IsPrimitive< T >())
291 return BreakBond< physical::Quantum< T >* >(NULL, type);
294 AtomicNumber bondedId = PeriodicTable::Instance().GetIdFromType< T >();
325 template <
typename T >
328 #if BIO_CPP_VERSION < 11
331 if (IsPrimitive< T >())
335 return GetBondPosition(PeriodicTable::Instance().GetIdFromType< T >());
351 template <
typename T >
354 #if BIO_CPP_VERSION < 11
357 if (IsPrimitive< T >())
400 Wave* toDisassociate,
#define BIO_SANITIZE(test, success, failure)
bool FormBond(T toBond, BondType type=bond_type::Unknown())
virtual physical::Symmetry * Spin() const
virtual Code Disattenuate(const Wave *other)
Wave * GetBonded(Valence position)
virtual bool BreakBondImplementation(Wave *toDisassociate, AtomicNumber id, BondType type)
bool BreakBond(T toDisassociate, BondType type=bond_type::Unknown())
const T AsBondedQuantum() const
virtual bool FormBondImplementation(Wave *toBond, AtomicNumber id, BondType type)
virtual Code Reify(physical::Symmetry *symmetry)
BIO_DISAMBIGUATE_ALL_CLASS_METHODS(physical, Atom) explicit Atom()
BondType GetBondType() const
virtual Code Attenuate(const Wave *other)
Valence GetBondPosition() const
virtual TYPE OptimizedAccess(Index index)
Wave(Symmetry *symmetry=NULL)