molecularInformation.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: molecularInformation.h,v 1.1.4.1 2007/03/25 21:23:38 oliver Exp $
00005 
00006 #ifndef BALL_CONCEPT_MOLECULARINFORMATION_H
00007 #define BALL_CONCEPT_MOLECULARINFORMATION_H
00008 
00009 #ifndef BALL_CONCEPT_COMPOSITE_H
00010 # include <BALL/CONCEPT/composite.h>
00011 #endif
00012 
00013 namespace BALL
00014 {
00015   class Atom;
00016 
00022   class BALL_EXPORT MolecularInformation
00023     : public Visitor<Composite>
00024   {
00025     public:
00026     
00033     enum Type
00034     {
00036       TYPE__UNKNOWN              = -1,
00037 
00039       TYPE__SYSTEM               = 0,
00040 
00042       TYPE__PROTEIN              = 1,
00043 
00045       TYPE__MOLECULE             = 2,
00046 
00048       TYPE__CHAIN                = 3,
00049 
00051       TYPE__FRAGMENT             = 4,
00052 
00054       TYPE__RESIDUE              = 5,
00055 
00057       TYPE__SECONDARY_STRUCTURE  = 6,
00058 
00060       TYPE__ATOM                 = 7,
00061         
00063       TYPE__BOND                 = 8
00064 
00065 
00066     };
00067 
00069 
00071 
00075     MolecularInformation()
00076       ;
00077 
00080     virtual ~MolecularInformation()
00081       ;
00082 
00088     virtual void clear()
00089       ;
00090 
00092 
00094 
00102     Type getType() const  { return type_;}
00103 
00105     String getName() const  { return name_;}
00106 
00108     String getTypeName() const  { return type_name_;}
00109 
00120     virtual void visit(Composite& composite);
00122     
00123     private:
00124 
00125     String getBondAtomName_(Atom* atom);
00126     void getType_(Composite& composite);
00127     void getTypeName_();
00128     void getName_(Composite& composite);
00129 
00130     Type   type_;
00131     String name_;
00132     String type_name_;
00133   };
00134 
00135 } // namespace BALL
00136 
00137 #endif // BALL_CONCEPT_MOLECULARINFORMATION_H