xc
GTSVertex.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // xc utils library; general purpose classes and functions.
4 //
5 // Copyright (C) Luis C. Pérez Tato
6 //
7 // XC utils is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // This software is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program.
19 // If not, see <http://www.gnu.org/licenses/>.
20 //----------------------------------------------------------------------------
21 //GTSVertex.h
22 //C++ wrapper para la clase GtsVertex de la biblioteca GTS.
23 
24 #ifndef GTS_VERTEX_H
25 #define GTS_VERTEX_H
26 
27 #include "gts.h"
28 
29 class GTSSurface;
30 class Vector3d;
31 class Pos3d;
32 class GTSSplit;
33 
34 class GTSVertex
35  {
36  GtsVertex *vt;
37 
38  bool borrar;
39 
40  void crea(const double &x,const double &y,const double &z);
41  void borra(void);
42 
43  public:
44 
45  friend class GTSEdge;
46  friend class GTSSplit;
47 
48  GTSVertex(const Pos3d &);
49  GTSVertex(const double &x= 0.0,const double &y= 0.0,const double &z= 0.0);
50  GTSVertex(GtsVertex *pvt);
51  GTSVertex(const GTSVertex &);
52  GTSVertex &operator=(const GTSVertex &);
53 
54  Pos3d Posicion(void) const;
55 
56  double GaussianCurvature(const GTSSurface &surf) const;
57  Vector3d MeanCurvatureNormal(const GTSSurface &surf) const;
58  void PrincipalCurvatures(const GTSSurface &surf,double &k1,double &k2) const;
59  void PrincipalDirections(const GTSSurface &surf,Vector3d &e1,Vector3d &e2) const;
60 
61  GTSSplit GetSplit(const GTSVertex &v1,const GTSVertex &v2);
62 
63  ~GTSVertex(void);
64  };
65 
66 
67 #endif
Definition: GTSSurface.h:38
Posición en tres dimensiones.
Definition: Pos3d.h:44
GTSVertex & operator=(const GTSVertex &)
Assignment operator.
Definition: GTSVertex.cc:66
Definition: GTSVertex.h:34
Definition: GTSSplit.h:31
GTSVertex(const Pos3d &)
Constructor.
Definition: GTSVertex.cc:56
Definition: GTSEdge.h:31
Vector en tres dimensiones.
Definition: Vector3d.h:39