MPQC  3.0.0-alpha
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 #include <stdlib.h>
32 #include <math.h>
33 #include <util/ref/ref.h>
34 #include <math/scmat/matrix.h>
35 #include <math/isosurf/volume.h>
36 #include <math/isosurf/implicit.h>
37 
38 namespace sc {
39 
40 class Vertex: public RefCount {
41  private:
42  SCVector3 _point;
43  SCVector3 *_normal; // _normal is optional
44  public:
45  Vertex();
46  Vertex(const SCVector3& point,const SCVector3& normal);
47  Vertex(const SCVector3& point);
48  ~Vertex();
49  const SCVector3& point() const { return _point; }
50  int has_normal() const { return _normal != 0; }
51  const SCVector3& normal() const { return *_normal; }
52  void set_point(const SCVector3&p);
53  void set_normal(const SCVector3&p);
54  operator SCVector3&();
55 
56  void print(std::ostream&o=ExEnv::out0());
57 };
58 
59 }
60 
61 #endif
62 
63 // Local Variables:
64 // mode: c++
65 // c-file-style: "CLJ"
66 // End:
sc::Vertex
Definition: vertex.h:40
sc::SCVector3
a 3-element version of SCVector
Definition: vector3.h:43
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:192
sc
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14

Generated at Sun Jan 26 2020 23:24:00 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.