00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef PICKMODEMOLLABEL_H
00027 #define PICKMODEMOLLABEL_H
00028
00029 #include "PickMode.h"
00030 class Molecule;
00031 class DisplayDevice;
00032 class VMDApp;
00033
00035 class PickModeMolLabel : public PickMode {
00036 private:
00037 float pPos[3];
00038 int needItems;
00039 int haveItems;
00040 int needName;
00041 int *molids;
00042 int *atmids;
00043 int *cells;
00044 int atom;
00045 int lastCell[3];
00046 char *modename;
00047
00048 protected:
00049 VMDApp *app;
00050
00052 PickModeMolLabel(const char *, int, VMDApp *);
00053
00054 public:
00055 virtual ~PickModeMolLabel(void);
00056
00057 virtual void pick_molecule_start(DrawMolecule *, DisplayDevice *,
00058 int, int, const int *cell, int, const float *);
00059 virtual void pick_molecule_move (DrawMolecule *, DisplayDevice *,
00060 int, int, const float *);
00061 virtual void pick_molecule_end (DrawMolecule *, DisplayDevice *);
00062
00063 virtual void pick_graphics(int molid, int tag, int btn, DisplayDevice *d);
00064 };
00065
00067 class PickModeAtoms : public PickModeMolLabel {
00068 public:
00069 PickModeAtoms(VMDApp *vmdapp) : PickModeMolLabel("Atoms",1,vmdapp) {}
00070 };
00071
00073 class PickModeBonds : public PickModeMolLabel {
00074 public:
00075 PickModeBonds(VMDApp *vmdapp) : PickModeMolLabel("Bonds",2,vmdapp) {}
00076 };
00077
00079 class PickModeAngles : public PickModeMolLabel {
00080 public:
00081 PickModeAngles(VMDApp *vmdapp) : PickModeMolLabel("Angles",3,vmdapp) {}
00082 };
00083
00085 class PickModeDihedrals : public PickModeMolLabel {
00086 public:
00087 PickModeDihedrals(VMDApp *vmdapp) : PickModeMolLabel("Dihedrals",4,vmdapp) {}
00088 };
00089
00090 #endif
00091