BALL  1.5.0
cartoonModel.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: cartoonModel.h,v 1.32.18.1 2007/03/25 21:26:05 oliver Exp $
5 //
6 
7 #ifndef BALL_VIEW_MODELS_CARTOONMODEL_H
8 #define BALL_VIEW_MODELS_CARTOONMODEL_H
9 
10 #ifndef BALL_VIEW_MODELS_BACKBONEMODEL_H
12 #endif
13 
14 namespace BALL
15 {
16  namespace VIEW
17  {
18  class Mesh;
19 
29  : public AddBackboneModel
30  {
31  public:
32 
33  enum Types
34  {
35  STRAND = NUCLEIC_ACID + 1,
36  HELIX
37  };
38 
40 
41 
43 
45  AddCartoonModel(const AddCartoonModel& cartoon_model);
46 
48  virtual ~AddCartoonModel();
49 
51  void setHelixRadius(float radius)
52  { helix_radius_ = radius;}
53 
55  float getHelixRadius() const
56  { return helix_radius_;}
57 
59  void setArrowWidth(float width)
60  {arrow_width_ = width;}
61 
63  float getArrowWidth() const
64  { return arrow_width_;}
65 
67  void setStrandHeight(float heigth)
68  { strand_height_ = heigth;}
69 
71  float getStrandHeight() const
72  { return strand_height_;}
73 
75  void setStrandWidth(float w)
76  { strand_width_ = w;}
77 
79  float getStrandWidth() const
80  { return strand_width_;}
81 
83  void setDNABaseRadius(float r)
84  { DNA_base_radius_ = r;}
85 
87  float getDNABaseRadius() const
88  { return DNA_base_radius_;}
89 
91  void setDNAHelixRadius(float r)
92  { DNA_helix_radius_ = r;}
93 
95  float getDNAHelixRadius() const
96  { return DNA_helix_radius_;}
97 
99  void setDNALadderRadius(float r)
100  { DNA_ladder_radius_ = r;}
101 
103  float getDNALadderRadius() const
104  { return DNA_ladder_radius_;}
105 
107  void setDrawDNAAsLadderModel(bool state)
108  { draw_DNA_as_ladder_ = state;}
109 
112  { return draw_DNA_as_ladder_;}
113 
115  void enableRibbons(bool state)
116  { draw_ribbon_ = state;}
117 
119  bool ribbonsEnabled() const
120  {return draw_ribbon_;}
121 
122  protected:
123 
124  void insertTriangle_(Position v1, Position v2, Position v3, Mesh& mesh);
125  inline void drawStrand_(const Vector3& start,
126  Vector3& right,
127  Vector3& hn,
128  float arrow_width,
129  Position& last_vertices,
130  Mesh& mesh);
131 
132  void calculateComplementaryBases_(const Composite& composite);
133 
134  bool assignNucleotideAtoms_(Residue& r, Size nr_atoms, String atom_names[10], Atom* atoms[10]);
135 
136  void drawRiboseAtoms_(const Atom* atom1, const Atom* atom2, const Vector3& v1, const Vector3& v2);
137 
138  void calculateModelParts(Protein& protein);
140  void createModel_(Position set_pos, Position part_pos);
141 
142  void createStrand_(Position set_pos, Position part_pos);
143  void createHelix_(Position set_first, Position part_pos);
144  void createTubeHelix_(Position set_first, Position part_pos);
145  void createWatsonCrickModel_(Position set_pos, Position part_pos);
146  void createSimpleNucleicAcid_(Position set_pos, Position part_pos);
147 
148  void renderNucleotideOutline_(const vector<Vector3>& positions, Vector3 uv, Mesh& mesh);
149  Mesh* createDoubleRing_(const vector<Vector3>& positions);
150  Mesh* create6Ring_(vector<Vector3> positions);
151  virtual void refineGuidePoints_();
152 
164 
167 
169  };
170 
171 
172  } // namespace VIEW
173 } // namespace BALL
174 
175 #endif // BALL_VIEW_MODELS_CARTOONMODEL_H
#define BALL_CREATE(name)
Definition: create.h:62
BALL_EXPORT AtomList atoms(const AtomContainer &fragment, const String &expression=String())
Definition: constants.h:13
HashMap class based on the STL map (containing serveral convenience functions)
Definition: hashMap.h:74
void setDNABaseRadius(float r)
Definition: cartoonModel.h:83
float getStrandWidth() const
Definition: cartoonModel.h:79
void createStrand_(Position set_pos, Position part_pos)
void assignModelType(ModelPart &part)
virtual void refineGuidePoints_()
float getDNABaseRadius() const
Definition: cartoonModel.h:87
void drawStrand_(const Vector3 &start, Vector3 &right, Vector3 &hn, float arrow_width, Position &last_vertices, Mesh &mesh)
float getStrandHeight() const
Definition: cartoonModel.h:71
void drawRiboseAtoms_(const Atom *atom1, const Atom *atom2, const Vector3 &v1, const Vector3 &v2)
void setStrandHeight(float heigth)
Definition: cartoonModel.h:67
float getDNALadderRadius() const
Definition: cartoonModel.h:103
void createTubeHelix_(Position set_first, Position part_pos)
void calculateModelParts(Protein &protein)
void createWatsonCrickModel_(Position set_pos, Position part_pos)
void createSimpleNucleicAcid_(Position set_pos, Position part_pos)
void setArrowWidth(float width)
Definition: cartoonModel.h:59
void setDrawDNAAsLadderModel(bool state)
Definition: cartoonModel.h:107
HashMap< const Residue *, const Residue * > complementary_bases_
Definition: cartoonModel.h:168
void createHelix_(Position set_first, Position part_pos)
bool assignNucleotideAtoms_(Residue &r, Size nr_atoms, String atom_names[10], Atom *atoms[10])
void setStrandWidth(float w)
Definition: cartoonModel.h:75
void setDNAHelixRadius(float r)
Definition: cartoonModel.h:91
float getDNAHelixRadius() const
Definition: cartoonModel.h:95
void createModel_(Position set_pos, Position part_pos)
void insertTriangle_(Position v1, Position v2, Position v3, Mesh &mesh)
Mesh * createDoubleRing_(const vector< Vector3 > &positions)
void enableRibbons(bool state)
Definition: cartoonModel.h:115
void calculateComplementaryBases_(const Composite &composite)
float getHelixRadius() const
Definition: cartoonModel.h:55
void setDNALadderRadius(float r)
Definition: cartoonModel.h:99
Mesh * create6Ring_(vector< Vector3 > positions)
void renderNucleotideOutline_(const vector< Vector3 > &positions, Vector3 uv, Mesh &mesh)
#define BALL_VIEW_EXPORT
Definition: COMMON/global.h:52