BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ballAndStickModel.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: ballAndStickModel.h,v 1.17.18.1 2007/03/25 21:26:05 oliver Exp $
5 //
6 
7 #ifndef BALL_VIEW_MODELS_BALLANDSTICKMODEL_H
8 #define BALL_VIEW_MODELS_BALLANDSTICKMODEL_H
9 
10 #ifndef BALL_VIEW_MODELS_ATOMBONDMODELBASEPROCESSOR_H
12 #endif
13 
14 #ifndef BALL_KERNEL_ATOM_H
15  #include <BALL/KERNEL/atom.h>
16 #endif
17 
18 namespace BALL
19 {
20  class Atom;
21 
22  namespace VIEW
23  {
36  {
37  public:
38 
40 
41 
44 
52 
55  AddBallAndStickModel(const AddBallAndStickModel& add_ball_and_stick_model);
56 
59  virtual ~AddBallAndStickModel();
60 
68  virtual void clear();
69 
71 
74 
78  void set(const AddBallAndStickModel& add_ball_and_stick_model);
79 
83  const AddBallAndStickModel& operator = (const AddBallAndStickModel& processor);
84 
86 
94 
99  void setBallRadius(const float radius)
100  throw(Exception::OutOfRange);
101 
104  float getBallRadius() const;
105 
110  void setStickRadius(const float radius)
111  throw(Exception::OutOfRange);
112 
115  float getStickRadius() const;
116 
119  void enableBallAndStickModel();
120 
123  void enableStickModel();
124 
126 
129 
146  virtual Processor::Result operator() (Composite& composite);
147 
149 
152 
156  bool isBallAndStickModel() const;
157 
161  bool isStickModel() const;
162 
164  bool dashedBondsEnabled() const
165  { return dashed_bonds_;}
166 
168  void enableDashedBonds(bool state)
169  { dashed_bonds_ = state;}
170 
172 
175 
183  virtual void dump(std::ostream& s = std::cout, Size depth = 0) const;
184 
186 
187  virtual bool createGeometricObjects();
188 
189  protected:
190 
191  void visualiseBond_(const Bond& bond);
192 
193  virtual void visualiseRings_();
194 
195  inline void renderStandardBond_(const Bond& bond);
196 
197  inline void renderMultipleBond_(const Bond& bond, Vector3 normal, Vector3 dir);
198 
199  inline void renderDashedBond_(const Bond& bond, Vector3 n)
201 
202  void collectRingBonds_();
203 
204  Vector3 getSP2Plane_(const Atom& atom, const Bond& bond, const Vector3& dir) const;
205 
206  private:
207 
208  float ball_radius_;
209  float stick_radius_;
210  float special_radius_;
211 
212  bool ball_and_stick_;
213  bool dashed_bonds_;
214 
215  vector<vector<Bond*> > ring_bonds_;
216  };
217 
218 # ifndef BALL_NO_INLINE_FUNCTIONS
219 # include <BALL/VIEW/MODELS/ballAndStickModel.iC>
220 # endif
221 
222  } // namespace VIEW
223 } // namespace BALL
224 
225 #endif // BALL_VIEW_MODELS_BALLANDSTICKMODEL_H
#define BALL_CREATE(name)
Definition: create.h:62
#define BALL_VIEW_EXPORT
Definition: COMMON/global.h:52
char Atom[5]
Definition: PDBdefs.h:257