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

QuickSurf.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *cr                                                                       
00003  *cr            (C) Copyright 1995-2011 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: QuickSurf.h,v $
00013  *      $Author: johns $        $Locker:  $             $State: Exp $
00014  *      $Revision: 1.14 $       $Date: 2012/03/07 21:32:48 $
00015  *
00016  ***************************************************************************
00017  * DESCRIPTION:
00018  *   Fast gaussian surface representation
00019  ***************************************************************************/
00020 #ifndef QUICKSURF_H
00021 #define QUICKSURF_H
00022 
00023 #include "AtomSel.h"
00024 #include "ResizeArray.h"
00025 #include "Isosurface.h"
00026 #include "WKFUtils.h"
00027 #include "VolumetricData.h"
00028 #include "VMDDisplayList.h"
00029 
00030 class CUDAQuickSurf;
00031 
00032 class QuickSurf {
00033 private:
00034   float *volmap;           
00035   float *voltexmap;        
00036   IsoSurface s;            
00037   float isovalue;          
00038   float solidcolor[3];     
00039   int numvoxels[3];        
00040   float origin[3];         
00041   float xaxis[3];          
00042   float yaxis[3];          
00043   float zaxis[3];          
00044 
00045   CUDAQuickSurf *cudaqs;  
00046 
00047   wkf_timerhandle timer;   
00048   double pretime;          
00049   double voltime;          
00050   double gradtime;         
00051   double mctime;           
00052   double mcverttime;       
00053   double reptime;          
00054 
00055 public:
00056   QuickSurf(void);
00057   ~QuickSurf(void);
00058 
00059   int calc_surf(AtomSel * atomSel, DrawMolecule *mymol, 
00060                 const float *atompos, const float *atomradii,
00061                 int quality, float radscale, float gridspacing, float isovalue,
00062                 const int *colidx, const float *cmap, VMDDisplayList *cmdList); 
00063 
00064 private:
00065   int get_trimesh(int &numverts, float *&v3fv, float *&n3fv, float *&c3fv,
00066                   int &numfacets, int *&fiv);
00067 
00068   int draw_trimesh(VMDDisplayList *cmdList);
00069 
00070 };
00071 
00072 #endif
00073 

Generated on Sat May 26 01:48:26 2012 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002