MPQC  2.3.1
molrender.h
1 //
2 // molrender.h
3 //
4 // Copyright (C) 1996 Limit Point Systems, Inc.
5 //
6 // Author: Curtis Janssen <cljanss@limitpt.com>
7 // Maintainer: LPS
8 //
9 // This file is part of the SC Toolkit.
10 //
11 // The SC Toolkit is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU Library General Public License as published by
13 // the Free Software Foundation; either version 2, or (at your option)
14 // any later version.
15 //
16 // The SC Toolkit is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU Library General Public License for more details.
20 //
21 // You should have received a copy of the GNU Library General Public License
22 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24 //
25 // The U.S. Government is granted a limited license as per AL 91-7.
26 //
27 
28 #ifdef __GNUC__
29 #pragma interface
30 #endif
31 
32 #ifndef _chemistry_molecule_molrender_h
33 #define _chemistry_molecule_molrender_h
34 
35 #include <util/render/object.h>
36 #include <util/keyval/keyval.h>
37 #include <chemistry/molecule/molecule.h>
38 #include <chemistry/molecule/atominfo.h>
39 #include <math/isosurf/surf.h>
40 
41 namespace sc {
42 
44  protected:
45  Ref<RenderedObject> object_;
46  Ref<Molecule> mol_;
47  Ref<AtomInfo> atominfo_;
48 
49  public:
50  RenderedMolecule(const Ref<KeyVal>& keyval);
52 
53  Ref<Molecule> molecule() { return mol_; }
54 
55  // init must be called if the molecule changes
56  virtual void init() = 0;
57 
58  void render(const Ref<Render>&);
59 };
60 
61 
63  protected:
64  int use_color_;
65  public:
66  RenderedStickMolecule(const Ref<KeyVal>& keyval);
68 
69  void init();
70 };
71 
73  protected:
74  public:
75  RenderedBallMolecule(const Ref<KeyVal>& keyval);
77 
78  void init();
79 };
80 
82  protected:
83  Ref<Molecule> mol_;
84  public:
88 
89  virtual void colorize(const Ref<RenderedPolygons> &) = 0;
90 };
91 
92 
94  protected:
95  Ref<AtomInfo> atominfo_;
96  public:
100 
101  void colorize(const Ref<RenderedPolygons> &);
102 };
103 
105  protected:
107  Ref<MoleculeColorizer> colorizer_;
108  public:
109  RenderedMolecularSurface(const Ref<KeyVal>& keyval);
111 
112  void init(int reinit_surf);
113  void init();
114 };
115 
116 }
117 
118 #endif
119 
120 // Local Variables:
121 // mode: c++
122 // c-file-style: "CLJ"
123 // End:
sc::Ref
A template class that maintains references counts.
Definition: ref.h:332
sc::RenderedObject
Definition: object.h:46
sc::RenderedMolecule
Definition: molrender.h:43
sc::AtomProximityColorizer
Definition: molrender.h:93
sc::RenderedMolecularSurface
Definition: molrender.h:104
sc::RenderedStickMolecule
Definition: molrender.h:62
sc::DescribedClass
Classes which need runtime information about themselves and their relationship to other classes can v...
Definition: class.h:244
sc::RenderedBallMolecule
Definition: molrender.h:72
sc::MoleculeColorizer
Definition: molrender.h:81

Generated at Sun Jan 26 2020 23:33:04 for MPQC 2.3.1 using the documentation package Doxygen 1.8.16.