NanoShaper
0.7.2
NanoShaper is a tool able to triangulate and inspect an arbitray triangulated surface or several types of molecular surfaces
|
00001 00002 //--------------------------------------------------------- 00006 //--------------------------------------------------------- 00007 00008 #ifndef ExternalSurface_h 00009 #define ExternalSurface_h 00010 00011 #include "Surface.h" 00012 00013 00020 class ExternalSurface: public Surface 00021 { 00022 public: 00024 ExternalSurface(); 00026 ExternalSurface(DelPhiShared* ds); 00028 ExternalSurface(ConfigFile* cf,DelPhiShared* ds); 00029 00031 00032 virtual bool build(); 00034 virtual bool save(char* fileName); 00036 virtual bool load(char* fileName); 00038 virtual bool getSurf(bool fill=false,double vol=0); 00040 virtual void printSummary(); 00042 virtual bool getProjection(double p[3],double* proj1,double* proj2, 00043 double* proj3,double* normal1,double* normal2,double* normal3); 00045 virtual void getRayIntersection(double p1[3],double p2[3],vector<pair<double,double*> >& intersections,int thdID,bool computeNormals); 00047 virtual void getLocalArea(double gridPoint[3],double* area); 00049 virtual double getSurfaceArea(); 00052 virtual double getVolume(); 00054 virtual void init(); 00056 virtual void init(ConfigFile* cf); 00058 virtual void clear(); 00060 00061 00062 virtual ~ExternalSurface(); 00063 }; 00064 00065 00066 // REGISTER_SURFACE(ExternalSurface,"external") 00067 00068 // expand it explicitly because Swig is not able to expand it 00069 static class ExternalSurfaceRegister{ 00070 static Surface* createSurface(ConfigFile* conf,DelPhiShared* ds) 00071 { 00072 return new ExternalSurface(conf,ds); 00073 } 00074 public: 00075 ExternalSurfaceRegister() 00076 { 00077 surfaceFactory().add("external",createSurface); 00078 } 00079 } ExternalSurfaceRegisterObject; 00080 00081 #endif