BALL  1.5.0
atom.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_KERNEL_ATOM_H
6 #define BALL_KERNEL_ATOM_H
7 
8 #ifndef BALL_CONCEPT_COMPOSITE_H
9 # include <BALL/CONCEPT/composite.h>
10 #endif
11 
12 #ifndef BALL_CONCEPT_PROPERTY_H
13 # include <BALL/CONCEPT/property.h>
14 #endif
15 
16 #ifndef BALL_CONCEPT_RANDOMACCESSITERATOR_H
18 #endif
19 
20 #ifndef BALL_MATHS_VECTOR3_H
21 # include <BALL/MATHS/vector3.h>
22 #endif
23 
24 // Defines for default values for an atom
25 #define BALL_ATOM_DEFAULT_ELEMENT &Element::UNKNOWN
26 #define BALL_ATOM_DEFAULT_CHARGE 0
27 #define BALL_ATOM_DEFAULT_FORMAL_CHARGE 0
28 #define BALL_ATOM_DEFAULT_NAME ""
29 #define BALL_ATOM_DEFAULT_TYPE_NAME "?"
30 #define BALL_ATOM_DEFAULT_POSITION 0,0,0
31 #define BALL_ATOM_DEFAULT_RADIUS 0
32 #define BALL_ATOM_DEFAULT_TYPE Atom::UNKNOWN_TYPE
33 #define BALL_ATOM_DEFAULT_VELOCITY 0,0,0
34 #define BALL_ATOM_DEFAULT_FORCE 0,0,0
35 
36 namespace BALL
37 {
38  class Bond;
39  class Element;
40  class Fragment;
41  class Residue;
42  class Chain;
43  class SecondaryStructure;
44  class Molecule;
45  class MolecularInteractions;
46 
88  : public Composite,
89  public PropertyManager
90  {
91  public:
92 
97  friend class Bond;
98 
100 
101 
103  typedef short Type;
104 
108 
111  enum
112  {
116  UNKNOWN_TYPE = -1,
117 
121  ANY_TYPE = 0,
122 
124  MAX_NUMBER_OF_BONDS = 12
125  };
126 
130  enum Property
131  {
132  NUMBER_OF_PROPERTIES = 0
133  };
134 
139  {
140  // Do not add extensions
142  // Add the residue extensions
144  // Add the residue ID
146  // Add the residue ID and the residue extension
148  // Add the chain ID and the residue ID
150  // Add the chain ID and the residue ID
151  ADD_VARIANT_EXTENSIONS_AND_CHAIN_RESIDUE_ID
152  };
153 
155 
159 
177  Atom();
178 
189  Atom(const Atom& atom, bool deep = true);
190 
207  Atom(Element& element,
208  const String& name, const String& type_name = BALL_ATOM_DEFAULT_TYPE_NAME,
209  Type atom_type = BALL_ATOM_DEFAULT_TYPE,
210  const Vector3& position = Vector3(BALL_ATOM_DEFAULT_POSITION),
211  const Vector3& velocity = Vector3(BALL_ATOM_DEFAULT_VELOCITY),
212  const Vector3& force = Vector3(BALL_ATOM_DEFAULT_FORCE),
213  float charge = BALL_ATOM_DEFAULT_CHARGE,
214  float radius = BALL_ATOM_DEFAULT_RADIUS,
215  Index formal_charge = BALL_ATOM_DEFAULT_FORMAL_CHARGE);
216 
218 
222 
229  virtual ~Atom();
230 
240  virtual void clear();
241 
247  virtual void destroy();
248 
250 
253 
257  virtual void persistentWrite(PersistenceManager& pm, const char* name = 0) const;
258 
263 
265 
268 
278  void set(const Atom& atom, bool deep = true);
279 
285  void get(Atom& atom, bool deep = true) const;
286 
295  Atom& operator = (const Atom& atom);
296 
301  void swap(Atom& atom);
302 
304 
307 
312  bool operator == (const Atom& atom) const;
313 
317  bool operator != (const Atom& atom) const;
318 
320 
323 
325  void setElement(const Element& element);
326 
328  const Element& getElement() const;
329 
334  void setCharge(float charge);
335 
340  float getCharge() const;
341 
343  void setFormalCharge(Index formal_charge);
344 
347 
355  const Molecule* getMolecule() const;
358 
359 
367  const Fragment* getFragment() const;
370 
378  const Residue* getResidue() const;
381 
390 
396  const Chain* getChain() const;
399 
401  void setName(const String& name);
402 
404  const String& getName() const;
405 
435  String getFullName(FullNameType type = ADD_VARIANT_EXTENSIONS) const;
436 
440  void setPosition(const Vector3& position);
441 
444 
446  const Vector3& getPosition() const;
447 
451  void setRadius(float radius);
452 
454  float getRadius() const;
455 
457  void setType(Type atom_type);
458 
460  Type getType() const;
461 
464 
466  void setTypeName(const String& name);
467 
471  void setVelocity(const Vector3& velocity);
472 
477 
481  const Vector3& getVelocity() const;
482 
486  void setForce(const Vector3& force);
488  const Vector3& getForce() const;
491 
492 
494  Size countBonds() const;
495 
509 
513  const Bond* getBond(Position index) const;
514 
522  Bond* getBond(const Atom& atom);
523 
531  const Bond* getBond(const Atom& atom) const;
533 
534 
538 
549 
561  Bond* createBond(Bond& bond, Atom& atom);
562 
567  Bond* cloneBond(Bond& bond, Atom& atom);
568 
580  bool destroyBond(const Atom& atom);
581 
593  void destroyBonds();
594 
604 
613  const Atom* getPartnerAtom(Position i) const;
614 
621  float getDistance(const Atom& a) const;
622 
624 
625  void addInteraction(const Atom* atom, String interaction_type, double energy);
626 
627  void addInteraction(String interaction_type, double energy);
628 
630 
632 
634 
636 
640 
647  bool hasBond(const Bond& bond) const;
648 
657  bool isBoundTo(const Atom& atom) const;
658 
664  bool isBound() const;
665 
673  bool isGeminal(const Atom& atom) const;
674 
681  bool isVicinal(const Atom& atom) const;
683 
686  virtual bool isAtom() const { return true; }
689 
693 
698  virtual bool isValid() const;
699 
707  virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
709 
713 
720 
722 
725 
727 
729  {
730  public:
731 
733 
734  virtual ~BondIteratorTraits() {}
735 
737  : bound_(0),
738  position_(0)
739  {
740  }
741 
743  : bound_((Atom*)&atom),
744  position_(0)
745  {
746  }
747 
748  BondIteratorTraits(const BondIteratorTraits& traits, bool /* deep */ = true)
749  : bound_(traits.bound_),
750  position_(traits.position_)
751  {
752  }
753 
754  BondIteratorTraits& operator = (const BondIteratorTraits& traits)
755  {
756  bound_ = traits.bound_;
757  position_ = traits.position_;
758  return *this;
759  }
760 
761  Atom* getContainer() { return bound_; }
762 
763  const Atom* getContainer() const { return bound_; }
764 
765  bool isSingular() const { return (bound_ == 0); }
766 
767  BondIteratorPosition& getPosition() { return position_; }
768 
769  const BondIteratorPosition& getPosition() const { return position_; }
770 
771  // Comparison: We do net check whether these traits are bound to
772  // the same container here for efficiency reasons.
773 
774  bool operator == (const BondIteratorTraits& traits) const
775  {
776  return (position_ == traits.position_);
777  }
778 
779  bool operator != (const BondIteratorTraits& traits) const
780  {
781  return !(position_ == traits.position_);
782  }
783 
784  bool operator < (const BondIteratorTraits& traits) const
785  {
786  return (position_ < traits.position_);
787  }
788 
790  {
791  return (Distance)(position_ - traits.position_);
792  }
793 
794  bool isValid() const
795  {
796  return (bound_ != 0 && position_ >= 0 && position_ < bound_->number_of_bonds_);
797  }
798 
799  void invalidate()
800  {
801  bound_ = 0;
802  position_ = 0;
803  }
804 
805  void toBegin() { position_ = 0; }
806 
807  bool isBegin() const { return (position_ == 0); }
808 
809  void toEnd() { position_ = bound_->number_of_bonds_; }
810 
811  bool isEnd() const { return (position_ >= bound_->number_of_bonds_);}
812 
813  Bond& getData() { return *(bound_->bond_[position_]); }
814 
815  const Bond& getData() const { return *(bound_->bond_[position_]); }
816 
817  void forward() { ++position_; }
818 
819  friend std::ostream& operator << (std::ostream& s, const BondIteratorTraits& traits)
820  {
821  return (s << traits.position_ << ' ');
822  }
823 
824  void dump(std::ostream& s) const
825  {
826  s << position_ << std::endl;
827  }
828 
829  void toRBegin()
830  {
831  position_ = bound_->number_of_bonds_ - 1;
832  }
833 
834  bool isRBegin() const
835  {
836  return (position_ == bound_->number_of_bonds_ - 1);
837  }
838 
839  void toREnd()
840  {
841  position_ = -1;
842  }
843 
844  bool isREnd() const
845  {
846  return (position_ <= -1);
847  }
848 
849  void backward()
850  {
851  --position_;
852  }
853 
854  void backward(Distance distance)
855  {
856  position_ -= distance;
857  }
858 
859  void forward(Distance distance)
860  {
861  position_ += distance;
862  }
863 
865  {
866  return *(bound_->bond_[index]);
867  }
868 
869  const Bond& getData(Index index) const
870  {
871  return *(bound_->bond_[index]);
872  }
873 
874  private:
875 
876  Atom* bound_;
877  BondIteratorPosition position_;
878 
879  };
880 
881  friend class BondIteratorTraits;
882 
885  typedef RandomAccessIterator
888 
891  {
892  return BondIterator::begin(*this);
893  }
894 
897  {
898  return BondIterator::end(*this);
899  }
900 
903  <Atom, Bond, BondIteratorPosition, BondIteratorTraits>
905 
908  {
909  return BondConstIterator::begin(*this);
910  }
911 
914  {
915  return BondConstIterator::end(*this);
916  }
917 
919  typedef std::reverse_iterator<BondIterator> BondReverseIterator;
920 
923  {
924  return BondReverseIterator(endBond());
925  }
926 
929  {
930  return BondReverseIterator(beginBond());
931  }
932 
934  typedef std::reverse_iterator<BondConstIterator> BondConstReverseIterator;
935 
938  {
939  return BondConstReverseIterator(endBond());
940  }
941 
944  {
945  return BondConstReverseIterator(beginBond());
946  }
947 
949 
952 
954  typedef std::list<Atom*> AtomPtrList;
955 
957  typedef std::list<Position> AtomIndexList;
958 
959  protected:
960 
962 
965 
968 
976  float radius_;
980  unsigned char number_of_bonds_;
982  Bond* bond_[MAX_NUMBER_OF_BONDS];
988  float charge_;
994 
995 
996 
997  private:
998 
1000  void clear_();
1001 
1003  void swapLastBond_(const Atom* atom);
1004 
1005  };
1006 
1007 // required for visual studio
1008 #ifdef BALL_COMPILER_MSVC
1009 #include <vector>
1010 template class BALL_EXPORT std::vector<Atom*>;
1011 #endif
1012 
1013 # ifndef BALL_NO_INLINE_FUNCTIONS
1014 # include <BALL/KERNEL/atom.iC>
1015 # endif
1016 } // namespace BALL
1017 
1018 #ifndef BALL_KERNEL_BONDITERATOR_H
1019 # include <BALL/KERNEL/bondIterator.h>
1020 #endif
1021 
1022 
1023 #endif // BALL_KERNEL_ATOM_H
BALL_ATOM_DEFAULT_RADIUS
#define BALL_ATOM_DEFAULT_RADIUS
Definition: atom.h:31
BALL::Atom::dump
virtual void dump(std::ostream &s=std::cout, Size depth=0) const
BALL_ATOM_DEFAULT_CHARGE
#define BALL_ATOM_DEFAULT_CHARGE
Definition: atom.h:26
BALL::Atom::BondIteratorTraits::getPosition
const BondIteratorPosition & getPosition() const
Definition: atom.h:769
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::Atom::BondIteratorTraits::getContainer
const Atom * getContainer() const
Definition: atom.h:763
BALL::Atom::persistentWrite
virtual void persistentWrite(PersistenceManager &pm, const char *name=0) const
BALL::Chain
Definition: chain.h:32
BALL::Atom::getBond
const Bond * getBond(const Atom &atom) const
BALL::Atom::BondIteratorTraits::dump
void dump(std::ostream &s) const
Definition: atom.h:824
BALL::Atom::BondIteratorTraits::getDistance
Distance getDistance(const BondIteratorTraits &traits) const
Definition: atom.h:789
BALL::Atom::setType
void setType(Type atom_type)
Assign the numerical atom type.
BALL_ATOM_DEFAULT_TYPE_NAME
#define BALL_ATOM_DEFAULT_TYPE_NAME
Definition: atom.h:29
BALL::Atom::type_name_
String type_name_
Definition: atom.h:972
BALL::Atom::getBond
Bond * getBond(const Atom &atom)
BALL::Atom::BondIteratorTraits::isEnd
bool isEnd() const
Definition: atom.h:811
BALL::Atom::ADD_VARIANT_EXTENSIONS_AND_ID
@ ADD_VARIANT_EXTENSIONS_AND_ID
Definition: atom.h:147
BALL::ConstRandomAccessIterator
Definition: randomAccessIterator.h:26
BALL::Atom::ADD_CHAIN_RESIDUE_ID
@ ADD_CHAIN_RESIDUE_ID
Definition: atom.h:149
BALL_ATOM_DEFAULT_TYPE
#define BALL_ATOM_DEFAULT_TYPE
Definition: atom.h:32
BALL::operator!=
BALL_EXPORT bool operator!=(const String &s1, const String &s2)
BALL::Bond
Definition: bond.h:57
BALL_ATOM_DEFAULT_VELOCITY
#define BALL_ATOM_DEFAULT_VELOCITY
Definition: atom.h:33
property.h
BALL::Atom::BondIteratorTraits::BondIteratorTraits
BondIteratorTraits(const Atom &atom)
Definition: atom.h:742
BALL::Atom::setElement
void setElement(const Element &element)
Assign the atom's element.
BALL::Molecule
Definition: molecule.h:31
BALL::Atom::getDistance
float getDistance(const Atom &a) const
BALL::Atom::getBond
const Bond * getBond(Position index) const
BALL::Atom::radius_
float radius_
Definition: atom.h:976
BALL::Atom::Atom
Atom(Element &element, const String &name, const String &type_name=BALL_ATOM_DEFAULT_TYPE_NAME, Type atom_type=BALL_ATOM_DEFAULT_TYPE, const Vector3 &position=Vector3(BALL_ATOM_DEFAULT_POSITION), const Vector3 &velocity=Vector3(BALL_ATOM_DEFAULT_VELOCITY), const Vector3 &force=Vector3(BALL_ATOM_DEFAULT_FORCE), float charge=BALL_ATOM_DEFAULT_CHARGE, float radius=BALL_ATOM_DEFAULT_RADIUS, Index formal_charge=BALL_ATOM_DEFAULT_FORMAL_CHARGE)
BALL::SecondaryStructure
Definition: secondaryStructure.h:31
BALL::Atom::free_list_
static AtomIndexList free_list_
Definition: atom.h:967
BALL::Atom::charge_
float charge_
Definition: atom.h:988
vector3.h
BALL::Atom::BondIteratorTraits::invalidate
void invalidate()
Definition: atom.h:799
BALL::operator<
BALL_EXPORT bool operator<(const String &s1, const String &s2)
BALL::Atom::createBond
Bond * createBond(Bond &bond, Atom &atom)
BALL::Atom::BondIteratorTraits::BondIteratorTraits
BondIteratorTraits()
Definition: atom.h:736
BALL::Atom::ADD_VARIANT_EXTENSIONS
@ ADD_VARIANT_EXTENSIONS
Definition: atom.h:143
BALL::Atom::ADD_RESIDUE_ID
@ ADD_RESIDUE_ID
Definition: atom.h:145
BALL::PropertyManager
Definition: property.h:344
BALL::Atom::isBoundTo
bool isBoundTo(const Atom &atom) const
BALL::Atom
Definition: atom.h:90
BALL::Atom::getPosition
const Vector3 & getPosition() const
Return the atom coordinates (const)
BALL_CREATE_DEEP
#define BALL_CREATE_DEEP(name)
Definition: create.h:26
BALL::Atom::position_
Vector3 position_
Definition: atom.h:986
BALL::PersistenceManager
Definition: persistenceManager.h:73
BALL::Atom::getElement
const Element & getElement() const
Return the atom's element.
BALL::Atom::name_
String name_
Definition: atom.h:970
BALL::Residue
Definition: residue.h:38
BALL::Atom::destroy
virtual void destroy()
BALL::Atom::velocity_
Vector3 velocity_
Definition: atom.h:990
BALL::Atom::clear
virtual void clear()
BALL::Element
Definition: PTE.h:55
BALL::Atom::BondIteratorTraits::backward
void backward()
Definition: atom.h:849
BALL::Atom::Atom
Atom(const Atom &atom, bool deep=true)
BALL_ATOM_DEFAULT_POSITION
#define BALL_ATOM_DEFAULT_POSITION
Definition: atom.h:30
BALL::Atom::endBond
BondConstIterator endBond() const
Return a constant past-the-end bond iterator.
Definition: atom.h:913
BALL::Atom::rbeginBond
BondReverseIterator rbeginBond()
Return a reverse bond iterator pointing to the last bond.
Definition: atom.h:922
BALL::String
Definition: string.h:57
BALL::Atom::~Atom
virtual ~Atom()
randomAccessIterator.h
BALL::Atom::BondIteratorTraits::getData
Bond & getData(Index index)
Definition: atom.h:864
BALL::Atom::getCharge
float getCharge() const
bondIterator.h
BALL::Atom::isValid
virtual bool isValid() const
BALL::Atom::BondIteratorTraits::backward
void backward(Distance distance)
Definition: atom.h:854
BALL::Atom::rendBond
BondConstReverseIterator rendBond() const
Return a constant past-the-end bond iterator for reverse traversal.
Definition: atom.h:943
BALL
Definition: constants.h:13
BALL::Atom::setRadius
void setRadius(float radius)
BALL::Atom::FullNameType
FullNameType
Definition: atom.h:139
BALL::Atom::isBound
bool isBound() const
BALL::Atom::getForce
Vector3 & getForce()
Return the atom's force vector (mutable)
BALL::Atom::BondIteratorTraits::toRBegin
void toRBegin()
Definition: atom.h:829
BALL::Atom::beginBond
BondConstIterator beginBond() const
Return a constant bond iterator pointing to the first bond.
Definition: atom.h:907
BALL::Atom::addInteraction
void addInteraction(String interaction_type, double energy)
BALL::Atom::BondReverseIterator
std::reverse_iterator< BondIterator > BondReverseIterator
Reverse random access iterator for bonds.
Definition: atom.h:919
BALL::Atom::getPartnerAtom
const Atom * getPartnerAtom(Position i) const
BALL::MolecularInteractions
Definition: molecularInteractions.h:12
BALL::Atom::getBond
Bond * getBond(Position index)
BALL::Atom::getMolecule
Molecule * getMolecule()
Return the molecule the atom is contained in (mutable)
BALL::Atom::cloneBond
Bond * cloneBond(Bond &bond, Atom &atom)
BALL::Atom::Atom
Atom()
BALL::PDB::Atom
char Atom[5]
Definition: PDBdefs.h:257
BALL::Atom::getChain
const Chain * getChain() const
BALL::Atom::getTypeName
String getTypeName() const
Return the atom type name.
BALL::Atom::isVicinal
bool isVicinal(const Atom &atom) const
BALL::Vector3
TVector3< float > Vector3
Definition: vector3.h:1084
BALL::Atom::setPosition
void setPosition(const Vector3 &position)
BALL::Atom::getResidue
const Residue * getResidue() const
BALL::Atom::endBond
BondIterator endBond()
Return a past-the-end bond iterator.
Definition: atom.h:896
BALL::Atom::getChain
Chain * getChain()
Return the chain the atom is contained in (mutable)
BALL_INDEX_TYPE
BALL::Atom::applyBonds
bool applyBonds(UnaryProcessor< Bond > &processor)
BALL::Atom::setFormalCharge
void setFormalCharge(Index formal_charge)
Set the atom's formal charge.
BALL::Atom::hasBond
bool hasBond(const Bond &bond) const
BALL::Composite
Definition: composite.h:74
BALL_SIZE_TYPE
BALL::Atom::setCharge
void setCharge(float charge)
BALL::UnaryProcessor
Definition: processor.h:60
BALL::TVector3< float >
BALL::Atom::BondIteratorTraits::getContainer
Atom * getContainer()
Definition: atom.h:761
BALL::Atom::rbeginBond
BondConstReverseIterator rbeginBond() const
Return a constant reverse bond iterator pointing to the first atom.
Definition: atom.h:937
BALL::Atom::BondIteratorTraits::getData
Bond & getData()
Definition: atom.h:813
BALL::Atom::BondIteratorTraits::isBegin
bool isBegin() const
Definition: atom.h:807
BALL::Atom::type_
Type type_
Definition: atom.h:978
BALL::Atom::element_
const Element * element_
Definition: atom.h:974
BALL::Atom::destroyBond
bool destroyBond(const Atom &atom)
BALL::Atom::getMolecule
const Molecule * getMolecule() const
BALL::Atom::interactions
MolecularInteractions * interactions
Definition: atom.h:623
BALL::Atom::BondIteratorTraits::getData
const Bond & getData(Index index) const
Definition: atom.h:869
BALL::Atom::BondIteratorTraits::toBegin
void toBegin()
Definition: atom.h:805
BALL::Atom::isGeminal
bool isGeminal(const Atom &atom) const
BALL::Atom::BondIteratorTraits::isREnd
bool isREnd() const
Definition: atom.h:844
BALL::Atom::swap
void swap(Atom &atom)
BALL::Atom::createBond
Bond * createBond(Atom &atom)
BALL_ATOM_DEFAULT_FORCE
#define BALL_ATOM_DEFAULT_FORCE
Definition: atom.h:34
BALL::Atom::BondIteratorTraits::toEnd
void toEnd()
Definition: atom.h:809
BALL::Atom::getFormalCharge
Index getFormalCharge() const
Return the atom's formal charge.
BALL::Atom::get
void get(Atom &atom, bool deep=true) const
BALL::Atom::force_
Vector3 force_
Definition: atom.h:992
BALL::Fragment
Definition: fragment.h:22
BALL::Atom::destroyBonds
void destroyBonds()
BALL::Atom::getPartnerAtom
Atom * getPartnerAtom(Position i)
BALL::Atom::BondIteratorTraits::getData
const Bond & getData() const
Definition: atom.h:815
BALL::Atom::BondIteratorTraits::BondIteratorTraits
BondIteratorTraits(const BondIteratorTraits &traits, bool=true)
Definition: atom.h:748
BALL::Atom::beginBond
BondIterator beginBond()
Return a bond iterator pointing to the first bond of the atom.
Definition: atom.h:890
BALL::Atom::BondIteratorTraits::toREnd
void toREnd()
Definition: atom.h:839
BALL::Atom::BondIteratorTraits::forward
void forward()
Definition: atom.h:817
BALL::Atom::BondIteratorPosition
Index BondIteratorPosition
Definition: atom.h:726
BALL_ATOM_DEFAULT_FORMAL_CHARGE
#define BALL_ATOM_DEFAULT_FORMAL_CHARGE
Definition: atom.h:27
BALL::Atom::getType
Type getType() const
Return the (numerical) atom type.
composite.h
BALL::Atom::getResidue
Residue * getResidue()
Return the residue the atom is contained in (mutable)
BALL::operator==
BALL_EXPORT bool operator==(const String &s1, const String &s2)
BALL::Atom::BondIteratorTraits::isRBegin
bool isRBegin() const
Definition: atom.h:834
BALL::Atom::BondIteratorTraits::forward
void forward(Distance distance)
Definition: atom.h:859
BALL::Atom::persistentRead
virtual void persistentRead(PersistenceManager &pm)
BALL::Atom::set
void set(const Atom &atom, bool deep=true)
BALL::Atom::BondIteratorTraits
Definition: atom.h:729
BALL::Atom::addInteraction
void addInteraction(const Atom *atom, String interaction_type, double energy)
BALL::Atom::NO_VARIANT_EXTENSIONS
@ NO_VARIANT_EXTENSIONS
Definition: atom.h:141
BALL::operator<<
BALL_EXPORT std::ostream & operator<<(std::ostream &os, const Exception::GeneralException &e)
BALL::Atom::getVelocity
Vector3 & getVelocity()
BALL::Atom::getFullName
String getFullName(FullNameType type=ADD_VARIANT_EXTENSIONS) const
BALL::Atom::number_of_bonds_
unsigned char number_of_bonds_
Definition: atom.h:980
BALL::Atom::getPosition
Vector3 & getPosition()
Return the atom coordinates (mutable)
BALL::RandomAccessIterator
Definition: randomAccessIterator.h:415
BALL::Atom::setForce
void setForce(const Vector3 &force)
BALL::Atom::getVelocity
const Vector3 & getVelocity() const
BALL::Atom::setVelocity
void setVelocity(const Vector3 &velocity)
BALL::Atom::AtomPtrList
std::list< Atom * > AtomPtrList
Definition: atom.h:954
BALL::Atom::BondConstReverseIterator
std::reverse_iterator< BondConstIterator > BondConstReverseIterator
Constant reverse random access iterator for bonds.
Definition: atom.h:934
BALL::Atom::getName
const String & getName() const
Return the atom name.
BALL::Atom::getFragment
const Fragment * getFragment() const
BALL::Atom::store_interactions_disabled_
bool store_interactions_disabled_
Definition: atom.h:633
BALL::Atom::setTypeName
void setTypeName(const String &name)
Assign the atom type name.
BALL::Atom::AtomIndexList
std::list< Position > AtomIndexList
Definition: atom.h:957
BALL::Atom::countBonds
Size countBonds() const
Return the number of bonds.
BALL::Atom::BondConstIterator
ConstRandomAccessIterator< Atom, Bond, BondIteratorPosition, BondIteratorTraits > BondConstIterator
Constant random access iterator for bonds.
Definition: atom.h:904
BALL::Atom::rendBond
BondReverseIterator rendBond()
Return a past-the-end bond iterator for reverse traversal.
Definition: atom.h:928
BALL::Atom::formal_charge_
Index formal_charge_
Definition: atom.h:984
BALL::Atom::disableStoreInteractions
void disableStoreInteractions()
BALL::Atom::getSecondaryStructure
const SecondaryStructure * getSecondaryStructure() const
BALL::Atom::getRadius
float getRadius() const
Return the atom radius.
BALL::Atom::getFragment
Fragment * getFragment()
Return the fragment the atom is contained in (mutable)
BALL::Atom::setName
void setName(const String &name)
Set the atom name.
BALL::Atom::getSecondaryStructure
SecondaryStructure * getSecondaryStructure()
Return the secondary structure the atom is contained in (mutable)
BALL::Atom::Type
short Type
Definition: atom.h:103
BALL::Atom::getForce
const Vector3 & getForce() const
Return the atom's force vector (const)
BALL::Atom::BondIterator
RandomAccessIterator< Atom, Bond, BondIteratorPosition, BondIteratorTraits > BondIterator
Definition: atom.h:887
BALL::Atom::Property
Property
Definition: atom.h:131
BALL::Atom::BondIteratorTraits::isSingular
bool isSingular() const
Definition: atom.h:765
BALL::Atom::BondIteratorTraits::isValid
bool isValid() const
Definition: atom.h:794
BALL::Atom::enableStoreInteractions
void enableStoreInteractions()
BALL::Atom::BondIteratorTraits::getPosition
BondIteratorPosition & getPosition()
Definition: atom.h:767