source: ThirdParty/mpqc_open/src/lib/util/render/polygons.h@ 7516f6

Action_Thermostats Adding_MD_integration_tests Adding_StructOpt_integration_tests AutomationFragmentation_failures Candidate_v1.6.1 ChemicalSpaceEvaluator Enhanced_StructuralOptimization Enhanced_StructuralOptimization_continued Exclude_Hydrogens_annealWithBondGraph Fix_Verbose_Codepatterns ForceAnnealing_with_BondGraph ForceAnnealing_with_BondGraph_continued ForceAnnealing_with_BondGraph_continued_betteresults ForceAnnealing_with_BondGraph_contraction-expansion Gui_displays_atomic_force_velocity JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool PythonUI_with_named_parameters Recreated_GuiChecks StoppableMakroAction TremoloParser_IncreasedPrecision
Last change on this file since 7516f6 was 860145, checked in by Frederik Heber <heber@…>, 8 years ago

Merge commit '0b990dfaa8c6007a996d030163a25f7f5fc8a7e7' as 'ThirdParty/mpqc_open'

  • Property mode set to 100644
File size: 2.5 KB
Line 
1//
2// polygons.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#ifndef _util_render_polygons_h
29#define _util_render_polygons_h
30
31#include <util/keyval/keyval.h>
32#include <util/render/object.h>
33
34namespace sc {
35
36class RenderedPolygons: public RenderedObject {
37 public:
38 enum Coloring { None, Vertex /*, Face*/ };
39 private:
40 RenderedPolygons::Coloring coloring_;
41 int nvertex_;
42 int nface_;
43 double** vertices_;
44 double** vertex_rgb_;
45 int** faces_;
46 int* nvertex_in_face_;
47 protected:
48 void render(const Ref<Render>&);
49 public:
50 RenderedPolygons();
51 RenderedPolygons(const Ref<KeyVal>&);
52 ~RenderedPolygons();
53
54 void initialize(int nvertex, int nface,
55 RenderedPolygons::Coloring c = RenderedPolygons::None);
56 void set_vertex(int, double x, double y, double z);
57 void set_vertex_rgb(int, double r, double g, double b);
58 void set_vertex_color(int i, const Color&c) {
59 set_vertex_rgb(i, c.red(), c.green(), c.blue());
60 }
61 void set_face(int iface, int v1, int v2, int v3);
62 void set_face(int iface, int v1, int v2, int v3, int v4);
63
64 int nvertex() const { return nvertex_; }
65 int nface() const { return nface_; }
66 int nvertex_in_face(int iface) const { return nvertex_in_face_[iface]; }
67 const double *vertex(int i) const { return vertices_[i]; }
68 double vertex(int i, int j) const { return vertices_[i][j]; }
69 int face(int i,int j) const { return faces_[i][j]; }
70 double vertex_rgb(int i, int j) const { return vertex_rgb_[i][j]; }
71 int have_vertex_rgb() const { return coloring_ == Vertex; }
72};
73
74}
75
76#endif
77
78// Local Variables:
79// mode: c++
80// c-file-style: "CLJ"
81// End:
Note: See TracBrowser for help on using the repository browser.