00001
00002
00003
00004
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 }
00122 }
00123
00124 #endif // BALL_VIEW_MODELS_SURFACEMODEL_H