BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | List of all members
BALL::Molecule Class Reference

#include <BALL/KERNEL/molecule.h>

Inheritance diagram for BALL::Molecule:
BALL::AtomContainer BALL::Composite BALL::PropertyManager BALL::PersistentObject BALL::Selectable BALL::Object BALL::AutoDeletable BALL::NucleicAcid BALL::Protein

Public Types

Enums
enum  Property { IS_SOLVENT = AtomContainer::NUMBER_OF_PROPERTIES, NUMBER_OF_PROPERTIES }
 
- Public Types inherited from BALL::AtomContainer
enum  Property { NUMBER_OF_PROPERTIES = 0 }
 The number of predefined properties for AtomContainer. More...
 
- Public Types inherited from BALL::Composite
typedef ForwardIterator
< Composite, Composite,
Composite
*, AncestorIteratorTraits
AncestorIterator
 
typedef ConstForwardIterator
< Composite, Composite,
Composite
*, AncestorIteratorTraits
AncestorConstIterator
 
typedef BidirectionalIterator
< Composite, Composite,
Composite
*, ChildCompositeIteratorTraits
ChildCompositeIterator
 
typedef
ConstBidirectionalIterator
< Composite, Composite,
Composite
*, ChildCompositeIteratorTraits
ChildCompositeConstIterator
 
typedef std::reverse_iterator
< ChildCompositeIterator
ChildCompositeReverseIterator
 
typedef std::reverse_iterator
< ChildCompositeConstIterator
ChildCompositeConstReverseIterator
 
typedef BidirectionalIterator
< Composite, Composite,
Composite
*, CompositeIteratorTraits
CompositeIterator
 
typedef
ConstBidirectionalIterator
< Composite, Composite,
Composite
*, CompositeIteratorTraits
CompositeConstIterator
 
typedef std::reverse_iterator
< CompositeIterator
CompositeReverseIterator
 
typedef std::reverse_iterator
< CompositeConstIterator
CompositeConstReverseIterator
 
enum  StampType { MODIFICATION = 1, SELECTION = 2, BOTH = 3 }
 
typedef UnaryPredicate< CompositeKernelPredicateType
 

Public Member Functions

bool operator== (const Molecule &molecule) const
 
bool operator!= (const Molecule &molecule) const
 
Constructors and Destructors
 Molecule ()
 
 Molecule (const Molecule &molecule, bool deep=true)
 
 Molecule (const String &name)
 
virtual ~Molecule ()
 
Persistence
void persistentWrite (PersistenceManager &pm, const char *name=0) const
 
void persistentRead (PersistenceManager &pm)
 
Assignment
void set (const Molecule &molecule, bool deep=true)
 
Moleculeoperator= (const Molecule &molecule)
 
void get (Molecule &molecule, bool deep=true) const
 
void swap (Molecule &molecule)
 
Accessors
SystemgetSystem ()
 
const SystemgetSystem () const
 
void prepend (Atom &atom)
 
void append (Atom &atom)
 
void insert (Atom &atom)
 
void insertBefore (Atom &atom, Composite &before)
 
void insertAfter (Atom &atom, Composite &after)
 
bool remove (Atom &atom)
 
void prepend (AtomContainer &atom_container)
 
void append (AtomContainer &atom_container)
 
void insert (AtomContainer &atom_container)
 
void insertBefore (AtomContainer &atom_container, Composite &before)
 
void insertAfter (AtomContainer &atom_container, Composite &after)
 
void spliceBefore (AtomContainer &atom_container)
 
void spliceAfter (AtomContainer &atom_container)
 
void splice (AtomContainer &atom_container)
 
bool remove (AtomContainer &atom_container)
 
Debugging and Diagnostics
virtual void dump (std::ostream &s=std::cout, Size depth=0) const
 
- Public Member Functions inherited from BALL::AtomContainer
 AtomContainer ()
 
 AtomContainer (const AtomContainer &atom_container, bool deep=true)
 
 AtomContainer (const String &name)
 
virtual ~AtomContainer ()
 
virtual void clear ()
 
virtual void destroy ()
 
void set (const AtomContainer &atom_container, bool deep=true)
 
AtomContaineroperator= (const AtomContainer &atom_container)
 
void get (AtomContainer &atom_container, bool deep=true) const
 
void swap (AtomContainer &atom_container)
 
bool operator== (const AtomContainer &atom_container) const
 
bool operator!= (const AtomContainer &atom_container) const
 
bool isSubAtomContainerOf (const AtomContainer &atom_container) const
 
bool isSuperAtomContainerOf (const AtomContainer &atom_container) const
 
void setName (const String &name)
 
const StringgetName () const
 
AtomContainergetSuperAtomContainer ()
 
const AtomContainergetSuperAtomContainer () const
 
AtomContainergetAtomContainer (Position position)
 
const AtomContainergetAtomContainer (Position position) const
 
AtomgetAtom (Position position)
 
const AtomgetAtom (Position position) const
 
AtomgetAtom (const String &name)
 
const AtomgetAtom (const String &name) const
 
Size countAtomContainers () const
 
Size countAtoms () const
 
Size countBonds () const
 
Size countInterBonds () const
 
Size countIntraBonds () const
 
void prepend (Atom &atom)
 
void append (Atom &atom)
 
void insert (Atom &atom)
 
void insertBefore (Atom &atom, Composite &before)
 
void insertAfter (Atom &atom, Composite &after)
 
bool remove (Atom &atom)
 
Size removeHavingProperty (BALL::Property p)
 
Size removeNotHavingProperty (BALL::Property p)
 
Size removeHavingProperty (const string &name)
 
Size removeNotHavingProperty (const string &name)
 
void prepend (AtomContainer &atom_container)
 
void append (AtomContainer &atom_container)
 
void insert (AtomContainer &atom_container)
 
void insertBefore (AtomContainer &atom_container, Composite &before)
 
void insertAfter (AtomContainer &atom_container, Composite &after)
 
void spliceBefore (AtomContainer &atom_container)
 
void spliceAfter (AtomContainer &atom_container)
 
void splice (AtomContainer &atom_container)
 
bool remove (AtomContainer &atom_container)
 
void destroyBonds ()
 
virtual bool isValid () const
 
bool applyIntraBond (UnaryProcessor< Bond > &processor)
 Apply to all bonds connecting two atoms inside this AtomContainer. More...
 
bool applyInterBond (UnaryProcessor< Bond > &processor)
 Apply to all bonds connected to atoms outside this AtomContainer. More...
 
- Public Member Functions inherited from BALL::Composite
AncestorIterator beginAncestor ()
 
AncestorIterator endAncestor ()
 
AncestorConstIterator beginAncestor () const
 
AncestorConstIterator endAncestor () const
 
ChildCompositeIterator beginChildComposite ()
 
ChildCompositeIterator endChildComposite ()
 
ChildCompositeConstIterator beginChildComposite () const
 
ChildCompositeConstIterator endChildComposite () const
 
ChildCompositeReverseIterator rbeginChildComposite ()
 
ChildCompositeReverseIterator rendChildComposite ()
 
ChildCompositeConstReverseIterator rbeginChildComposite () const
 
ChildCompositeConstReverseIterator rendChildComposite () const
 
CompositeIterator beginComposite ()
 
CompositeIterator endComposite ()
 
CompositeConstIterator beginComposite () const
 
CompositeConstIterator endComposite () const
 
CompositeReverseIterator rbeginComposite ()
 
CompositeReverseIterator rendComposite ()
 
CompositeConstReverseIterator rbeginComposite () const
 
CompositeConstReverseIterator rendComposite () const
 
void deleteChildrenList_ (std::list< Composite * > &composites)
 
template<typename T >
BALL_INLINE bool apply (UnaryProcessor< T > &processor)
 
template<typename T >
BALL_INLINE T * getAncestor (const T &)
 
template<typename T >
BALL_INLINE const T * getAncestor (const T &) const
 
template<typename T >
BALL_INLINE T * getPrevious (const T &)
 
template<typename T >
BALL_INLINE const T * getPrevious (const T &dummy) const
 
template<typename T >
BALL_INLINE T * getNext (const T &)
 
template<typename T >
BALL_INLINE const T * getNext (const T &dummy) const
 
template<typename T >
BALL_INLINE bool hasAncestor (const T &dummy) const
 
 Composite ()
 
 Composite (const Composite &composite, bool deep=true)
 
virtual ~Composite ()
 
void destroy (bool virtual_destroy)
 
void * clone (Composite &root) const
 
bool operator== (const Composite &composite) const
 
bool operator!= (const Composite &composite) const
 
bool isEmpty () const
 
bool isRoot () const
 
bool isRootOf (const Composite &composite) const
 
bool isInterior () const
 
bool hasChild () const
 
bool isChildOf (const Composite &composite) const
 
bool isFirstChild () const
 
bool isFirstChildOf (const Composite &composite) const
 
bool isLastChild () const
 
bool isLastChildOf (const Composite &composite) const
 
bool hasParent () const
 
bool isParentOf (const Composite &composite) const
 
bool hasSibling () const
 
bool isSiblingOf (const Composite &composite) const
 
bool hasPreviousSibling () const
 
bool isPreviousSiblingOf (const Composite &composite) const
 
bool hasNextSibling () const
 
bool isNextSiblingOf (const Composite &composite) const
 
bool isDescendantOf (const Composite &composite) const
 
template<typename T >
bool hasAncestor (const T &dummy) const
 
bool isAncestorOf (const Composite &composite) const
 
bool isRelatedWith (const Composite &composite) const
 
bool isHomomorph (const Composite &composite) const
 
bool containsSelection () const
 
void host (Visitor< Composite > &visitor)
 
template<typename T >
bool applyAncestor (UnaryProcessor< T > &processor)
 
template<typename T >
bool applyChild (UnaryProcessor< T > &processor)
 
template<typename T >
bool applyDescendantPreorder (UnaryProcessor< T > &processor)
 
template<typename T >
bool applyDescendantPostorder (UnaryProcessor< T > &processor)
 
template<typename T >
bool applyDescendant (UnaryProcessor< T > &processor)
 
template<typename T >
bool applyPreorder (UnaryProcessor< T > &processor)
 
template<typename T >
bool applyPostorder (UnaryProcessor< T > &processor)
 
template<typename T >
bool apply (UnaryProcessor< T > &processor)
 
template<typename T >
bool applyLevel (UnaryProcessor< T > &processor, long level)
 
void set (const Composite &composite, bool deep=true)
 
Compositeoperator= (const Composite &composite)
 
void get (Composite &composite, bool deep=true) const
 
Size getDegree () const
 
Size count (const KernelPredicateType &predicate) const
 
Size countDescendants () const
 
Size getPathLength (const Composite &composite) const
 
Size getDepth () const
 
Size getHeight () const
 
CompositegetRoot ()
 
const CompositegetRoot () const
 
CompositegetLowestCommonAncestor (const Composite &composite)
 
const CompositegetLowestCommonAncestor (const Composite &composite) const
 
template<typename T >
T * getAncestor (const T &)
 
template<typename T >
const T * getAncestor (const T &) const
 
template<typename T >
T * getPrevious (const T &)
 
template<typename T >
const T * getPrevious (const T &dummy) const
 
template<typename T >
T * getNext (const T &)
 
template<typename T >
const T * getNext (const T &dummy) const
 
CompositegetParent ()
 
const CompositegetParent () const
 
CompositegetChild (Index index)
 
const CompositegetChild (Index index) const
 
CompositegetSibling (Index index)
 
const CompositegetSibling (Index index) const
 
CompositegetFirstChild ()
 
const CompositegetFirstChild () const
 
CompositegetLastChild ()
 
const CompositegetLastChild () const
 
const PreciseTimegetModificationTime () const
 
const PreciseTimegetSelectionTime () const
 
void stamp (StampType stamp=BOTH)
 
void prependChild (Composite &composite)
 
void appendChild (Composite &composite)
 
void insertBefore (Composite &composite)
 
void insertAfter (Composite &composite)
 
void spliceBefore (Composite &composite)
 
void spliceAfter (Composite &composite)
 
void splice (Composite &composite)
 
bool removeChild (Composite &child)
 
Size removeSelected ()
 
Size removeUnselected ()
 
void replace (Composite &composite)
 
void swap (Composite &composite)
 
virtual void select ()
 
virtual void deselect ()
 
- Public Member Functions inherited from BALL::PersistentObject
 PersistentObject ()
 
virtual ~PersistentObject ()
 
PersistenceManageroperator>> (PersistenceManager &pm) const
 
virtual void finalize ()
 
- Public Member Functions inherited from BALL::Object
 Object ()
 Default constructor. More...
 
 Object (const Object &object)
 Copy constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
const Objectoperator= (const Object &)
 
bool operator== (const Object &object) const
 
bool operator!= (const Object &object) const
 
bool operator< (const Object &object) const
 
bool operator<= (const Object &object) const
 
bool operator>= (const Object &object) const
 
bool operator> (const Object &object) const
 
int compare (const Object &object) const
 
virtual void dump (::std::ostream &s=std::cout, Size depth=0) const
 
Handle getHandle () const
 
- Public Member Functions inherited from BALL::AutoDeletable
virtual ~AutoDeletable ()
 
void * operator new (size_t size)
 
void operator delete (void *ptr)
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *ptr, void *)
 
bool isAutoDeletable () const
 
void setAutoDeletable (bool enable)
 
- Public Member Functions inherited from BALL::Selectable
 Selectable ()
 
 Selectable (const Selectable &selectable, bool deep=true)
 
virtual ~Selectable ()
 
void set (const Selectable &selectable, bool deep=true)
 
const Selectableoperator= (const Selectable &selectable)
 
void get (Selectable &selectable, bool deep=true) const
 
void swap (Selectable &selectable)
 
virtual void setSelected (bool selected)
 
bool isSelected () const
 
bool operator== (const Selectable &selectable) const
 
bool operator!= (const Selectable &selectable) const
 
void write (PersistenceManager &pm) const
 
bool read (PersistenceManager &pm)
 
virtual void dump (::std::ostream &s=std::cout, Size depth=0) const
 
- Public Member Functions inherited from BALL::PropertyManager
BALL_INLINE PropertyManager ()
 Default constructor. More...
 
BALL_INLINE PropertyManager (const PropertyManager &property_manager)
 Copy constructor. More...
 
virtual ~PropertyManager ()
 Destructor. More...
 
void set (const PropertyManager &property_manager)
 
const PropertyManageroperator= (const PropertyManager &property_manager)
 
void get (PropertyManager &property_manager) const
 
void swap (PropertyManager &property_manager)
 
BitVectorgetBitVector ()
 
const BitVectorgetBitVector () const
 
 operator BitVector & ()
 
void setProperty (Property property)
 
void clearProperty (Property property)
 
void toggleProperty (Property property)
 
Size countProperties () const
 
const NamedPropertygetNamedProperty (Position index) const
 
NamedPropertygetNamedProperty (Position index)
 
void setProperty (const NamedProperty &property)
 
void setProperty (const string &name)
 
void setProperty (const string &name, bool value)
 
void setProperty (const string &name, int value)
 
void setProperty (const string &name, unsigned int value)
 
void setProperty (const string &name, float value)
 
void setProperty (const string &name, double value)
 
void setProperty (const string &name, const string &value)
 
void setProperty (const string &name, const PersistentObject &value)
 
const NamedPropertygetProperty (const string &name) const
 
NamedPropertyIterator beginNamedProperty ()
 
NamedPropertyIterator endNamedProperty ()
 
void clearProperty (const string &name)
 
Size countNamedProperties () const
 
bool hasProperty (Property property) const
 Query for an unnamed property. More...
 
bool hasProperty (const string &name) const
 Query for a named property. More...
 
bool operator== (const PropertyManager &pm) const
 
bool operator!= (const PropertyManager &pm) const
 Inequality operator. More...
 
void write (PersistenceManager &pm) const
 Persistent stream writing. More...
 
bool read (PersistenceManager &pm)
 Persistent stream reading. More...
 
bool isValid () const
 
void dump (std::ostream &s=std::cout, Size depth=0) const
 

Protected Member Functions

MoleculegetMolecule ()
 
const MoleculegetMolecule () const
 
AtomContainergetSuperAtomContainer ()
 
const AtomContainergetSuperAtomContainer () const
 
void prepend (Molecule &molecule)
 
void append (Molecule &molecule)
 
void insert (Molecule &molecule)
 
void insertBefore (Molecule &molecule, Composite &composite)
 
void insertAfter (Molecule &molecule, Composite &composite)
 
bool remove (Molecule &molecule)
 
bool isSubAtomContainerOf (const AtomContainer &atom_container) const
 

Additional Inherited Members

- Static Public Member Functions inherited from BALL::Composite
static bool insertParent (Composite &parent, Composite &first, Composite &last, bool destroy_parent=true)
 
- Static Public Member Functions inherited from BALL::Object
static Handle getNextHandle ()
 
static Handle getNewHandle ()
 
- Static Public Member Functions inherited from BALL::AutoDeletable
static void clearLastPtr ()
 
- Static Public Attributes inherited from BALL::Composite
static UnaryProcessor< CompositeDEFAULT_PROCESSOR
 
static KernelPredicateType DEFAULT_UNARY_PREDICATE
 
- Protected Attributes inherited from BALL::Selectable
bool selected_
 

Detailed Description

Molecule class. Used to represent general molecules without specific properties.

Definition at line 29 of file molecule.h.

Member Enumeration Documentation

Properties

Enumerator
IS_SOLVENT 
NUMBER_OF_PROPERTIES 

Definition at line 42 of file molecule.h.

Constructor & Destructor Documentation

BALL::Molecule::Molecule ( )

Default constructor.

BALL::Molecule::Molecule ( const Molecule molecule,
bool  deep = true 
)

Copy constructor.

BALL::Molecule::Molecule ( const String name)

Detailled constructor.

virtual BALL::Molecule::~Molecule ( )
virtual

Destructor.

Member Function Documentation

void BALL::Molecule::append ( Atom atom)

Insert an atom as the last child.

Parameters
atomthe atom to add
void BALL::Molecule::append ( AtomContainer atom_container)

Append an AtomContainer as the last child.

Parameters
atom_containerthe AtomContainer to add
void BALL::Molecule::append ( Molecule molecule)
protected
virtual void BALL::Molecule::dump ( std::ostream &  s = std::cout,
Size  depth = 0 
) const
virtual

Internal state dump. Dump the current internal state to the output ostream s with dumping depth depth .

Parameters
soutput stream where to output the internal state
depththe dumping depth

Reimplemented from BALL::AtomContainer.

Reimplemented in BALL::Protein, and BALL::NucleicAcid.

void BALL::Molecule::get ( Molecule molecule,
bool  deep = true 
) const

Assign to another Molecule.

Parameters
moleculethe Molecule to be assigned to
deepmake a deep (=true) or shallow (=false) copy
Molecule* BALL::Molecule::getMolecule ( )
protected
const Molecule* BALL::Molecule::getMolecule ( ) const
protected
AtomContainer* BALL::Molecule::getSuperAtomContainer ( )
protected
const AtomContainer* BALL::Molecule::getSuperAtomContainer ( ) const
protected
System* BALL::Molecule::getSystem ( )

Access the parent System.

Returns
System* pointer to the parent System
const System* BALL::Molecule::getSystem ( ) const

Get a const pointer to the parent System.

Returns
System* pointer to the parent System
void BALL::Molecule::insert ( Atom atom)

Insert an atom as the last child.

Parameters
atomthe atom to add
void BALL::Molecule::insert ( AtomContainer atom_container)

Insert an AtomContainer as the last child.

Parameters
atom_containerthe AtomContainer to add
void BALL::Molecule::insert ( Molecule molecule)
protected
void BALL::Molecule::insertAfter ( Atom atom,
Composite after 
)

Insert an atom after a Composite object.

Parameters
atomthe atom to insert
afterthe Composite object to insert after
void BALL::Molecule::insertAfter ( AtomContainer atom_container,
Composite after 
)

Insert an AtomContainer after a given Composite object.

Parameters
atom_containerthe AtomContainer to insert
afterthe Composite object to insert after
void BALL::Molecule::insertAfter ( Molecule molecule,
Composite composite 
)
protected
void BALL::Molecule::insertBefore ( Atom atom,
Composite before 
)

Insert an atom before a Composite object.

Parameters
atomthe atom to insert
beforethe Composite object to insert before
void BALL::Molecule::insertBefore ( AtomContainer atom_container,
Composite before 
)

Insert an AtomContainer before a given Composite object.

Parameters
atom_containerthe AtomContainer to insert
beforethe Composite object to insert before
void BALL::Molecule::insertBefore ( Molecule molecule,
Composite composite 
)
protected
bool BALL::Molecule::isSubAtomContainerOf ( const AtomContainer atom_container) const
protected
bool BALL::Molecule::operator!= ( const Molecule molecule) const

Inequality operator

See Also
operator ==
Molecule& BALL::Molecule::operator= ( const Molecule molecule)

Assignment operator.

Parameters
moleculethe Molecule to assign from
bool BALL::Molecule::operator== ( const Molecule molecule) const

Equality operator. Two molecules are equal if they have the same handle.

See Also
Object::operator ==.
void BALL::Molecule::persistentRead ( PersistenceManager pm)
virtual

Reads a Molecule object from a persistent stream.

Parameters
pmthe persistence manager

Reimplemented from BALL::AtomContainer.

Reimplemented in BALL::NucleicAcid, and BALL::Protein.

void BALL::Molecule::persistentWrite ( PersistenceManager pm,
const char *  name = 0 
) const
virtual

Writes a Molecule object to a persistent stream.

Parameters
pmthe persistence manager

Reimplemented from BALL::AtomContainer.

Reimplemented in BALL::NucleicAcid, and BALL::Protein.

void BALL::Molecule::prepend ( Atom atom)

Insert an atom as the first child.

Parameters
atomthe atom to add
void BALL::Molecule::prepend ( AtomContainer atom_container)

Insert an AtomContainer as the first child.

Parameters
atom_containerthe AtomContainer to add
void BALL::Molecule::prepend ( Molecule molecule)
protected
bool BALL::Molecule::remove ( Atom atom)

Remove an atom.

Parameters
atomthe atom to remove
bool BALL::Molecule::remove ( AtomContainer atom_container)

Remove an AtomContainer.

Parameters
atom_containerthe AtomContainer to remove
bool BALL::Molecule::remove ( Molecule molecule)
protected
void BALL::Molecule::set ( const Molecule molecule,
bool  deep = true 
)

Assign from another Molecule.

Parameters
moleculethe Molecule object to assign from
deepmake a deep (=true) or shallow (=false) copy
void BALL::Molecule::splice ( AtomContainer atom_container)

Move the children of atom_container into this molecule. The children of atom_container are inserted at the position of atom_container if it is a child of this. Otherwise the children are inserted using spliceBefore .

void BALL::Molecule::spliceAfter ( AtomContainer atom_container)

Cut all children of atom_container and append them after the children of this molecule.

Parameters
atom_containerthe AtomContainer to access
void BALL::Molecule::spliceBefore ( AtomContainer atom_container)

Cut all children of atom_container and prepend them before the children of this molecule.

Parameters
atom_containerthe AtomContainer to access
void BALL::Molecule::swap ( Molecule molecule)

Swap the contents of two molecules.

Parameters
moleculethe Molecule to swap contents with