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 Mon Nov 17 02:47:00 2025 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002

AltStyle によって変換されたページ (->オリジナル) /