MPQC  2.3.1
vertex.h
1 //
2 // vertex.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 _math_isosurf_vertex_h
29 #define _math_isosurf_vertex_h
30 
31 #ifdef __GNUC__
32 #pragma interface
33 #endif
34 
35 #include <stdlib.h>
36 #include <math.h>
37 #include <util/ref/ref.h>
38 #include <math/scmat/matrix.h>
39 #include <math/isosurf/volume.h>
40 #include <math/isosurf/implicit.h>
41 
42 namespace sc {
43 
44 class Vertex: public RefCount {
45  private:
46  SCVector3 _point;
47  SCVector3 *_normal; // _normal is optional
48  public:
49  Vertex();
50  Vertex(const SCVector3& point,const SCVector3& normal);
51  Vertex(const SCVector3& point);
52  ~Vertex();
53  const SCVector3& point() const { return _point; }
54  int has_normal() const { return _normal != 0; }
55  const SCVector3& normal() const { return *_normal; }
56  void set_point(const SCVector3&p);
57  void set_normal(const SCVector3&p);
58  operator SCVector3&();
59 
60  void print(std::ostream&o=ExEnv::out0());
61 };
62 
63 }
64 
65 #endif
66 
67 // Local Variables:
68 // mode: c++
69 // c-file-style: "CLJ"
70 // End:
sc::Vertex
Definition: vertex.h:44
point
Definition: implicit.h:5
sc::SCVector3
Definition: vector3.h:45
sc::ExEnv::out0
static std::ostream & out0()
Return an ostream that writes from node 0.
sc::RefCount
The base class for all reference counted objects.
Definition: ref.h:194

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