source: issm/trunk/src/c/Bamgx/objects/MeshVertex.h@ 3784

Last change on this file since 3784 was 3784, checked in by Mathieu Morlighem, 15 years ago

removed double ../../include/include.h

File size: 2.0 KB
RevLine 
[3420]1#ifndef _MESHVERTEX_H_
2#define _MESHVERTEX_H_
[3407]3
4#include "../../objects/objects.h"
5#include "../../shared/shared.h"
[3775]6#include "../../include/include.h"
[3407]7#include "../../toolkits/toolkits.h"
8
[3775]9#include "../include/include.h"
[3407]10#include "Direction.h"
11#include "Metric.h"
12
13namespace bamg {
14
15 //classes
16 class Triangle;
17 class Triangles;
18 class VertexOnGeom;
19 class VertexOnEdge;
20
21 class MeshVertex {
22
23 public:
24 I2 i; // integer coordinates
25 R2 r; // real coordinates
26 Metric m;
27 long ReferenceNumber;
28 Direction DirOfSearch;
29 short vint; // the vertex number in triangle; varies between 0 and 2 in t
30 union {
31 Triangle* t; // one triangle which is containing the vertex
32 long color;
33 MeshVertex* to; // used in geometry MeshVertex to know the Mesh MeshVertex associated
34 VertexOnGeom* onGeometry; // if vint == 8; // set with Triangles::SetVertexFieldOn()
35 MeshVertex* onBackgroundVertex;// if vint == 16 on Background vertex Triangles::SetVertexFieldOnBTh()
36 VertexOnEdge* onBackgroundEdge; // if vint == 32 on Background edge
37 };
38
39 //Operators
40 operator I2() const {return i;} // Cast operator
41 operator const R2 & () const {return r;} // Cast operator
42 operator Metric () const {return m;} // Cast operator
43 double operator()(R2 x) const { return m(x);} // Get x in the metric m
44
45 //methods (No constructor and no destructors...)
46 double Smoothing(Triangles & ,const Triangles & ,Triangle * & ,double =1);
47 void MetricFromHessian(const double Hxx,const double Hyx, const double Hyy, const double smin,const double smax,const double s,const double err,BamgOpts* bamgopts);
48 void Echo();
49 int ref() const { return ReferenceNumber;}
50 long Optim(int =1,int =0);
51
52 //inline functions
53 inline void Set(const MeshVertex &rec,const Triangles & ,Triangles & ){*this=rec;}
54 };
55
56 //Intermediary
57 double QuadQuality(const MeshVertex &,const MeshVertex &,const MeshVertex &,const MeshVertex &);
58}
59#endif
Note: See TracBrowser for help on using the repository browser.