Branch data Line data Source code
1 : : //-----------------------------------C++-------------------------------------//
2 : : // File: src/algs/Global.hpp
3 : : // Wednesday February 11 10:50 2011
4 : : // Brief: HarmonicMap class definition: do the harmonic mapping for the surface
5 : : // mesh
6 : : //---------------------------------------------------------------------------//
7 : :
8 : :
9 : : #ifndef GLOBAL1_HPP
10 : : #define GLOBAL1_HPP
11 : :
12 : : #include <stdlib.h>
13 : : #include <stdio.h>
14 : : #include <assert.h>
15 : : #include <string>
16 : : #include <iostream>
17 : : #include <fstream>
18 : : #include <string.h>
19 : : #include <limits.h>
20 : : #include "meshkit/SimpleArray.hpp"
21 : :
22 : : #include <iGeom.h>
23 : : #include "meshkit/Matrix.hpp"
24 : : #include <vector>
25 : : #include <set>
26 : : #include <list>
27 : :
28 : :
29 : : using namespace std;
30 : : typedef MeshKit::Vector<3> Vector3D;
31 : : typedef MeshKit::Vector<2> Vector2D;
32 : : typedef MeshKit::Matrix<3, 3> Matrix3D;
33 : :
34 : : //===========================================================================//
35 : : /*!
36 : : * \class Global
37 : : * \brief define the data structure for Sweeping
38 : : *
39 : : */
40 : : //===========================================================================//
41 : : namespace MeshKit
42 : : {
43 : : static const double dist_tolerance = 1.0e-1;
44 : : static const double eps = 1.0e-5;
45 : : struct Vertex {
46 : 3501 : Vertex()
47 : 3501 : {
48 : 3501 : onBoundary = 0;
49 : 3501 : }
50 : : int id;
51 : : int index;
52 : : bool onBoundary;
53 : : Vector3D xyz;
54 : : Vector2D uv;
55 : : bool onCorner;
56 : : iBase_EntityHandle gVertexHandle;
57 : : };
58 : : struct Edge {
59 : : int getNumNodes() const
60 : : {
61 : : return connect.size();
62 : : }
63 : : Vertex* getVertex(int i) const
64 : : {
65 : : return connect[i];
66 : : }
67 : : vector<Vertex*> connect;//could be 1 or 2
68 : : iBase_EntityHandle gEdgeHandle;
69 : : int id;
70 : : int index;
71 : : int edge_type;//-1 corner, 0 side, 1 end, -2 reversal
72 : : double e;
73 : : };
74 : :
75 [ + - ][ + - ]: 2835 : struct Face {
[ + - ]
76 : : int getNumNodes() const
77 : : {
78 : : return connect.size();
79 : : }
80 : 3780 : Vertex* getVertex(int i) const
81 : : {
82 : 3780 : return connect[i];
83 : : }
84 : : int index;
85 : : vector<Vertex*> connect;
86 : : vector<Edge*> connEdges;
87 : : vector<vector<int> > vertexloops;
88 : : vector<vector<int> > edgeloops;
89 : : iBase_EntityHandle gFaceHandle;
90 : : int src_tgt_link;//0--source, 1--target, 2--linking
91 : : };
92 : :
93 : : }
94 : :
95 : : #endif
|