MPQC
2.3.1
src
lib
util
render
polygons.h
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
34
namespace
sc {
35
36
class
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:
sc::Ref
A template class that maintains references counts.
Definition:
ref.h:332
sc::RenderedObject
Definition:
object.h:46
sc::Color
Definition:
color.h:35
sc::RenderedPolygons
Definition:
polygons.h:36
sc::Vertex
Definition:
vertex.h:44
vertex
Definition:
implicit.h:9
Generated at Sun Jan 26 2020 23:33:04 for
MPQC
2.3.1 using the documentation package
Doxygen
1.8.16.