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