BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
standardColorProcessor.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: standardColorProcessor.h,v 1.32.18.2 2007/03/28 13:51:48 amoll Exp $
5 //
6 
7 #ifndef BALL_VIEW_MODELS_STANDARDCOLORPROCESSOR_H
8 #define BALL_VIEW_MODELS_STANDARDCOLORPROCESSOR_H
9 
10 #ifndef BALL_VIEW_MODELS_COLORPROCESSOR_H
12 #endif
13 
14 #ifndef BALL_VIEW_DATATYPTE_COLORMAP_H
16 #endif
17 
18 #ifndef BALL_KERNEL_RESIDUE_H
19 # include<BALL/KERNEL/residue.h>
20 #endif
21 
22 #ifndef BALL_KERNEL_CHAIN_H
23 # include<BALL/KERNEL/chain.h>
24 #endif
25 
26 #ifndef BALL_KERNEL_MOLECULE_H
27 # include<BALL/KERNEL/molecule.h>
28 #endif
29 
30 #ifndef BALL_KERNEL_SECONDARYSTRUCTURE_H
32 #endif
33 
34 
35 namespace BALL
36 {
37  namespace VIEW
38  {
39 
50  : public ColorProcessor
51  {
52  public:
53 
55 
56 
59 
65 
67  void setTransparency(Size value);
68 
70  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
71 
73  HashMap<Position, ColorRGBA>& getColorMap() { return color_map_;}
74 
76  const HashMap<Position, ColorRGBA>& getColorMap() const { return color_map_;}
77 
79  protected:
80 
82  };
83 
84 
89  : public ColorProcessor
90  {
91  public:
92 
94 
95 
97 
99  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
100 
102  void setFirstColor(const ColorRGBA& color) { first_color_ = color;}
103 
105  void setMiddleColor(const ColorRGBA& color) { middle_color_ = color;}
106 
108  void setLastColor(const ColorRGBA& color) { last_color_ = color;}
109 
111  const ColorRGBA& getFirstColor() const { return first_color_;}
112 
114  const ColorRGBA& getMiddleColor() const { return middle_color_;}
115 
117  const ColorRGBA& getLastColor() const { return last_color_;}
118 
120  virtual bool start();
121 
122  protected:
123  bool canUseMeshShortcut_(const Composite& composite);
124 
126  ColorRGBA first_color_, middle_color_, last_color_;
130  };
131 
134  : public ColorProcessor
135  {
136  public:
137 
139 
140 
142 
144  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
145 
147  void setColors(const vector<ColorRGBA>& colors) { colors_ = colors;}
148 
150  vector<ColorRGBA>& getColors() { return colors_;}
151 
153  const vector<ColorRGBA>& getColors() const { return colors_;}
154 
156  bool start();
157 
158  protected:
159 
160  virtual const Composite* getAncestor_(const Composite&) { return 0;}
161 
162  virtual bool isOK_(const Composite&) { return false;}
163 
164  vector<ColorRGBA> colors_;
166  };
167 
168 
171  : public PositionColorProcessor
172  {
173  public:
174 
176 
177 
179 
180  protected:
181 
182  virtual const Composite* getAncestor_(const Composite& composite)
183  { return composite.getAncestor(dummy_chain_);}
184 
185  virtual bool isOK_(const Composite& composite) { return RTTI::isKindOf<Chain>(&composite);}
186  bool canUseMeshShortcut_(const Composite& composite);
187 
189  };
190 
191 
194  : public PositionColorProcessor
195  {
196  public:
197 
199 
200 
202 
203  protected:
204 
205  virtual const Composite* getAncestor_(const Composite& composite)
206  { return composite.getAncestor(dummy_molecule_);}
207 
208  virtual bool isOK_(const Composite& composite) { return RTTI::isKindOf<Molecule>(&composite);}
209  bool canUseMeshShortcut_(const Composite& composite);
210 
212  };
213 
214 
223  : public ColorProcessor
224  {
225  public:
226 
228 
229 
234 
236  void setTransparency(Size value);
237 
239  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
240 
242  StringHashMap<ColorRGBA>& getColorMap() { return color_map_;}
243 
245  const StringHashMap<ColorRGBA>& getColorMap() const { return color_map_;}
246 
247  protected:
250  bool canUseMeshShortcut_(const Composite& composite);
251  };
252 
253 
266  {
267  public:
268 
270 
271 
278 
280  AtomChargeColorProcessor(const AtomChargeColorProcessor& color_Processor);
281 
283  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
284  };
285 
286 
298  : public ColorProcessor
299  {
300  public:
301 
303 
304 
312 
315 
322  void setDistance(float distance) { distance_ = distance;}
323 
326  float getDistance() const;
327 
338  void setNullDistanceColor(const ColorRGBA& color);
339 
342  const ColorRGBA& getNullDistanceColor() const;
343 
354  void setMaxDistanceColor(const ColorRGBA& color);
355 
360  const ColorRGBA& getMaxDistanceColor() const;
361 
369  void calculateDistances();
370 
377  virtual void addAtom(const Atom& atom);
378 
380  virtual bool finish();
381 
383  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
384 
386  bool showSelected() { return show_selection_;}
387 
389  void setShowSelected(bool state) { show_selection_ = state;}
390 
393  virtual Processor::Result operator() (GeometricObject*& object);
394 
395  private:
396 
397  void colorGeometricObject_(GeometricObject& object);
398 
399  //_ Colorize the mesh with the computed grid.
400  virtual void colorMeshFromGrid_(Mesh& mesh);
401 
402  typedef HashMap<const Atom*, float> AtomDistanceHashMap;
403 
404  AtomDistanceHashMap atom_2_distance_;
405  GeometricObjectList list_;
406 
407  float distance_;
408  bool show_selection_;
409 
410  ColorRGBA null_distance_color_;
411  ColorRGBA full_distance_color_;
412  };
413 
414 
419  : public ColorProcessor
420  {
421  public:
422 
424 
426  : ColorProcessor()
427  {}
428 
429  bool canUseMeshShortcut_(const Composite&) { return true;}
430  };
431 
432 
438  {
439  public:
440 
442 
443 
445 
447  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
448  };
449 
450 
456  {
457  public:
458 
460 
461 
463 
465  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
466  };
467 
473  {
474  public:
475 
477 
478 
480 
482  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
483  };
484 
485 
490  : public ColorProcessor
491  {
492  public:
493 
495 
496 
498 
500  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
501 
503  void setHelixColor(const ColorRGBA& color);
504 
506  void setCoilColor(const ColorRGBA& color);
507 
509  void setStrandColor(const ColorRGBA& color);
510 
512  void setTurnColor(const ColorRGBA& color);
513 
515  const ColorRGBA& getHelixColor() const;
516 
518  const ColorRGBA& getCoilColor() const;
519 
521  const ColorRGBA& getStrandColor() const;
522 
524  const ColorRGBA& getTurnColor() const;
525 
527  virtual void setTransparency(Size t);
528 
529  private:
530 
531  bool canUseMeshShortcut_(const Composite& composite);
532 
534  ColorRGBA helix_color_,
535  coil_color_,
536  strand_color_,
537  turn_color_;
538 
539  SecondaryStructure dummy_ss_;
540  };
541 
542 
547  : public ColorProcessor
548  {
549  public:
550 
552 
553 
555 
557  virtual void getColor(const Composite& composite, ColorRGBA& color_to_be_set);
558 
560  void setBasicColor(const ColorRGBA& color);
561 
563  void setAcidicColor(const ColorRGBA& color);
564 
566  void setPolarColor(const ColorRGBA& color);
567 
569  void setHydrophobicColor(const ColorRGBA& color);
570 
572  void setAromaticColor(const ColorRGBA& color);
573 
575  void setOtherColor(const ColorRGBA& color);
576 
578  const ColorRGBA& getBasicColor() const;
579 
581  const ColorRGBA& getAcidicColor() const;
582 
584  const ColorRGBA& getPolarColor() const;
585 
587  const ColorRGBA& getHydrophobicColor() const;
588 
590  const ColorRGBA& getAromaticColor() const;
591 
593  const ColorRGBA& getOtherColor() const;
594 
596  virtual void setTransparency(Size t);
597 
598  private:
599 
600  bool canUseMeshShortcut_(const Composite& composite);
601 
603  ColorRGBA basic_color_,
604  acidic_color_,
605  polar_color_,
606  hydrophobic_color_,
607  aromatic_color_,
608  other_color_;
609 
610  Residue dummy_residue_;
611  };
612 
613 # ifndef BALL_NO_INLINE_FUNCTIONS
614 # include <BALL/VIEW/MODELS/standardColorProcessor.iC>
615 # endif
616 
617 } } // namespaces
618 
619 #endif // BALL_VIEW_MODELS_STANDARDCOLORPROCESSOR_H
virtual bool isOK_(const Composite &composite)
bool canUseMeshShortcut_(const Composite &)
#define BALL_CREATE(name)
Definition: create.h:62
HashMap< Position, ColorRGBA > color_map_
StringHashMap< ColorRGBA > & getColorMap()
const HashMap< Position, ColorRGBA > & getColorMap() const
virtual const Composite * getAncestor_(const Composite &)
const vector< ColorRGBA > & getColors() const
void setColors(const vector< ColorRGBA > &colors)
HashMap< Position, ColorRGBA > & getColorMap()
#define BALL_VIEW_EXPORT
Definition: COMMON/global.h:52
virtual const Composite * getAncestor_(const Composite &composite)
const StringHashMap< ColorRGBA > & getColorMap() const
virtual bool isOK_(const Composite &composite)
virtual const Composite * getAncestor_(const Composite &composite)
BALL_VIEW_EXPORT ColorRGBA getColor(const QLabel *label)
std::list< GeometricObject * > GeometricObjectList
T * getAncestor(const T &)
HashMap< const Residue *, Position > residue_map_
-*- Mode: C++; tab-width: 2; -*-
Definition: constants.h:12
virtual bool isOK_(const Composite &)
HashMap< const Composite *, Position > composite_to_position_
HashMap class based on the STL map (containing serveral convenience functions)
Definition: hashMap.h:73