00001
00002
00003
00004
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 }
00136
00137 #endif // BALL_CONCEPT_MOLECULARINFORMATION_H