Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

PickModeMolLabel.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *cr                                                                       
00003  *cr            (C) Copyright 1995-2019 The Board of Trustees of the           
00004  *cr                        University of Illinois                       
00005  *cr                         All Rights Reserved                        
00006  *cr                                                                   
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  * RCS INFORMATION:
00011  *
00012  *      $RCSfile: PickModeMolLabel.h,v $
00013  *      $Author: johns $        $Locker:  $                $State: Exp $
00014  *      $Revision: 1.28 $      $Date: 2019/01/17 21:21:01 $
00015  *
00016  ***************************************************************************
00017  * DESCRIPTION:
00018  *
00019  * The PickMode object which allows a pointer to be used to create new 
00020  * geometrical monitoring labels.  This particular version is used only for
00021  * adding molecular labels, i.e. Atoms, Bonds, Angles, and Dihedrals.  As
00022  * more atoms are selected, they are remembered until enough have been picked
00023  * to create the relevant label (i.e. 3 atoms to create an Angle label).
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 

Generated on Fri Apr 19 02:45:11 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002