00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: surfaceModel.h,v 1.16 2005/12/23 17:02:18 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_VIEW_MODELS_SURFACEMODEL_H 00008 #define BALL_VIEW_MODELS_SURFACEMODEL_H 00009 00010 #ifndef BALL_VIEW_MODELS_MODELPROCESSOR_H 00011 # include <BALL/VIEW/MODELS/modelProcessor.h> 00012 #endif 00013 00014 #ifndef BALL_STRUCTURE_SURFACEPROCESSOR_H 00015 # include <BALL/STRUCTURE/surfaceProcessor.h> 00016 #endif 00017 00018 namespace BALL 00019 { 00020 class Atom; 00021 00022 namespace VIEW 00023 { 00034 class BALL_VIEW_EXPORT AddSurfaceModel 00035 : public ModelProcessor 00036 { 00037 public: 00038 00039 BALL_CREATE(AddSurfaceModel) 00040 00041 00044 00046 AddSurfaceModel(); 00047 00049 AddSurfaceModel(const AddSurfaceModel& add_surface_model); 00050 00052 virtual ~AddSurfaceModel(); 00053 00057 virtual void clear(); 00058 00060 virtual void clearComposites(); 00061 00062 00064 00066 //{ 00067 00069 SurfaceProcessor::SurfaceType getType() const { return type_; } 00070 00072 void setType(SurfaceProcessor::SurfaceType type) { type_ = type; } 00073 00074 //} 00078 00086 virtual Processor::Result operator() (Composite& composite); 00087 00089 00092 00099 virtual void dump(std::ostream& s = std::cout, Size depth = 0) const; 00100 00102 void setProbeRadius(float radius) 00103 { probe_radius_ = radius;} 00104 00106 float getProbeRadius() const 00107 { return probe_radius_;} 00108 00110 virtual bool createGeometricObjects(); 00111 00112 private: 00113 00114 HashSet<Atom*> atoms_; 00115 00116 SurfaceProcessor::SurfaceType type_; 00117 00118 float probe_radius_; 00119 }; 00120 00121 } // namespace VIEW 00122 } // namespace BALL 00123 00124 #endif // BALL_VIEW_MODELS_SURFACEMODEL_H