Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

BTK::BuildableAtomDecorator< AtomBase > Class Template Reference

Adds buildable and bonded concepts to an atomtype. More...

#include <buildable_atom_decorator.h>

Collaboration diagram for BTK::BuildableAtomDecorator< AtomBase >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef adjacent_container_t::iterator adjacent_iterator
typedef adjacent_container_t::const_iterator const_adjacent_iterator

Public Member Functions

 BuildableAtomDecorator ()
 BuildableAtomDecorator (const self_type &source)
 BuildableAtomDecorator (const base_type &a)
 This copy ctor is intended to make this type copy constructable with any other atom type.

 ~BuildableAtomDecorator ()
self_type & operator= (const self_type &rhs)
self_type & operator= (const base_type &rhs)
 Intended to make this type assignable from any other atom type.

bool is_built () const
void set_is_built (bool i)
adjacent_iterator adjacent_begin ()
adjacent_iterator adjacent_end ()
template<typename AtomType> void add_adjacent (AtomType &next_atom)
 Declare another atom to be bonded to this one.

bool build ()
 Try to build this atom, if it is contained in a buildable group.

bool boot_build ()
 Try to bootstrap build this atom, if it is contained in a buildable group.

void set_buildable_group (buildable_group_t &g)
 Set the buildable group which has primary ownership of this atom.

Topological bond distance functions
This information is important for non-bonded energy calculations, so the bond distance is automatically cached to increase efficiency

bool is_bond_distance_cached () const
 Reports whether the topological bond distance has been cached.

void set_is_bond_distance_cached (bool i)
 Sets the status of topological bond distance caching.

unsigned bond_distance_4 (self_type &a2)
 Report the topological bond distance of another atom up to 4 bonds away.

void set_bond_distance_4 (self_type &a2, unsigned dist)
 Set the topological distance of another atom up to four bonds away.


Detailed Description

template<typename AtomBase>
class BTK::BuildableAtomDecorator< AtomBase >

Adds buildable and bonded concepts to an atomtype.

This class decorates the AtomBase type (the template argument and the base class) with buildable and bonded capabilities reflecting bonding to other atoms and allowing the atom to be built, given that the group which contains the atom has the appropriate data to do so.


Member Typedef Documentation

template<typename AtomBase>
typedef adjacent_container_t::iterator BTK::BuildableAtomDecorator< AtomBase >::adjacent_iterator
 

template<typename AtomBase>
typedef adjacent_container_t::const_iterator BTK::BuildableAtomDecorator< AtomBase >::const_adjacent_iterator
 


Constructor & Destructor Documentation

template<typename AtomBase>
BTK::BuildableAtomDecorator< AtomBase >::BuildableAtomDecorator  )  [inline]
 

template<typename AtomBase>
BTK::BuildableAtomDecorator< AtomBase >::BuildableAtomDecorator const self_type &  source  )  [inline]
 

normal copy ctor must destroy all bond information, it is the containers responsibility to restore this

template<typename AtomBase>
BTK::BuildableAtomDecorator< AtomBase >::BuildableAtomDecorator const base_type &  a  )  [inline]
 

This copy ctor is intended to make this type copy constructable with any other atom type.

template<typename AtomBase>
BTK::BuildableAtomDecorator< AtomBase >::~BuildableAtomDecorator  )  [inline]
 


Member Function Documentation

template<typename AtomBase>
template<typename AtomType>
void BTK::BuildableAtomDecorator< AtomBase >::add_adjacent AtomType &  next_atom  )  [inline]
 

Declare another atom to be bonded to this one.

template<typename AtomBase>
adjacent_iterator BTK::BuildableAtomDecorator< AtomBase >::adjacent_begin  )  [inline]
 

template<typename AtomBase>
adjacent_iterator BTK::BuildableAtomDecorator< AtomBase >::adjacent_end  )  [inline]
 

template<typename AtomBase>
unsigned BTK::BuildableAtomDecorator< AtomBase >::bond_distance_4 self_type &  a2  )  [inline]
 

Report the topological bond distance of another atom up to 4 bonds away.

Returns:
the topological bond distance of atom a2, a result of 5 indicates a distance of 5 or more bonds

template<typename AtomBase>
bool BTK::BuildableAtomDecorator< AtomBase >::boot_build  )  [inline]
 

Try to bootstrap build this atom, if it is contained in a buildable group.

Here is the call graph for this function:

template<typename AtomBase>
bool BTK::BuildableAtomDecorator< AtomBase >::build  )  [inline]
 

Try to build this atom, if it is contained in a buildable group.

Here is the call graph for this function:

template<typename AtomBase>
bool BTK::BuildableAtomDecorator< AtomBase >::is_bond_distance_cached  )  const [inline]
 

Reports whether the topological bond distance has been cached.

template<typename AtomBase>
bool BTK::BuildableAtomDecorator< AtomBase >::is_built  )  const [inline]
 

template<typename AtomBase>
self_type& BTK::BuildableAtomDecorator< AtomBase >::operator= const base_type &  rhs  )  [inline]
 

Intended to make this type assignable from any other atom type.

template<typename AtomBase>
self_type& BTK::BuildableAtomDecorator< AtomBase >::operator= const self_type &  rhs  )  [inline]
 

normal assign op must destroy all bond info, it is the containers responsibility to restore this

template<typename AtomBase>
void BTK::BuildableAtomDecorator< AtomBase >::set_bond_distance_4 self_type &  a2,
unsigned  dist
[inline]
 

Set the topological distance of another atom up to four bonds away.

template<typename AtomBase>
void BTK::BuildableAtomDecorator< AtomBase >::set_buildable_group buildable_group_t g  )  [inline]
 

Set the buildable group which has primary ownership of this atom.

template<typename AtomBase>
void BTK::BuildableAtomDecorator< AtomBase >::set_is_bond_distance_cached bool  i  )  [inline]
 

Sets the status of topological bond distance caching.

template<typename AtomBase>
void BTK::BuildableAtomDecorator< AtomBase >::set_is_built bool  i  )  [inline]
 


The documentation for this class was generated from the following file:
Generated on Wed Apr 14 00:43:19 2004 for BTK by doxygen 1.3.6