File: surfaceModel.h

package info (click to toggle)
ball 1.4.3~beta1-3
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 318,984 kB
  • sloc: cpp: 346,579; ansic: 4,097; python: 2,664; yacc: 1,778; lex: 1,099; xml: 964; sh: 688; sql: 316; awk: 118; makefile: 108
file content (124 lines) | stat: -rw-r--r-- 2,970 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
// $Id: surfaceModel.h,v 1.16 2005/12/23 17:02:18 amoll Exp $
//

#ifndef BALL_VIEW_MODELS_SURFACEMODEL_H
#define BALL_VIEW_MODELS_SURFACEMODEL_H

#ifndef BALL_VIEW_MODELS_MODELPROCESSOR_H
#	include <BALL/VIEW/MODELS/modelProcessor.h>
#endif

#ifndef BALL_STRUCTURE_SURFACEPROCESSOR_H
#	include <BALL/STRUCTURE/surfaceProcessor.h>
#endif

namespace BALL
{
	class Atom;

	namespace VIEW
	{
		/** AddSurfaceModel class.
				The class AddSurfaceModel is a model processor that creates a surface model
				of the given Composite object. 
				A Mesh object is created and filled with the method SurfaceProcessor::getSurface.
				The surface can be either a solvent excluded surface (SES, default) or the
				solvent accesible surface (SAS). See SurfaceProcessor for details.
				\see     Mesh
				\see     SurfaceProcessor
				\ingroup  ViewModels
		*/
		class BALL_VIEW_EXPORT AddSurfaceModel
			: public ModelProcessor
		{
			public:

			BALL_CREATE(AddSurfaceModel)

			/**	@name	Constructors and Destructor
			*/	
			//@{

			/// Default Constructor.
			AddSurfaceModel();

			/// Copy constructor.
			AddSurfaceModel(const AddSurfaceModel& add_surface_model);

			/// Destructor.
			virtual ~AddSurfaceModel();

			/** Explicit default initialization.
					Calls ModelProcessor::clear.
			*/
			virtual void clear();

			///
			virtual void clearComposites();


			//@} 
			/**	@name Accessors 
			*/	
			//{
			
			/// Return the surface type (SES/SAS)
			SurfaceProcessor::SurfaceType getType() const { return type_; }
			
			/// Set the surface type (SES/SAS)
			void setType(SurfaceProcessor::SurfaceType type) { type_ = type; }
			
			//}
			/**	@name Processor specific methods 
			*/ 
			//@{
			
			/**	Operator method.
					This method stores all Composite objects. In the finish()
					method for all stored start composite a Mesh object will be created.
					The resulting Representation is named after the first processed Composite.
					\param  composite the Composite object that will be processed
					\return Processor::Result the result 
			*/
			virtual Processor::Result operator() (Composite& composite);

			//@} 
			/**	@name	debuggers and diagnostics 
			*/ 
			//@{
			
			/** Internal value dump.
					Dump the current state to the output ostream with a given dumping depth.
					Calls ModelProcessor::dump.
					\param   s output stream where to output the state 
					\param   depth the dumping depth
			*/
			virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;

			///
			void setProbeRadius(float radius) 
				{ probe_radius_ = radius;}

			///
			float getProbeRadius() const
				{ return probe_radius_;}
			
			/// 
			virtual bool createGeometricObjects();
		
		  private:

			HashSet<Atom*> 		atoms_;

			SurfaceProcessor::SurfaceType type_;

			float 						probe_radius_;
		};

	} // namespace VIEW
} // namespace BALL

#endif // BALL_VIEW_MODELS_SURFACEMODEL_H