CrvTri4G1.h
1 /******************************************************************************
2 
3  (c) 2004-2014 Scientific Computation Research Center,
4  Rensselaer Polytechnic Institute. All rights reserved.
5 
6  The LICENSE-SCOREC file included with this distribution describes the terms
7  of the SCOREC Non-Commercial License this program is distributed under.
8 
9 *******************************************************************************/
10 #ifndef CURVEMESHADAPT_CRVTRI4G1_H
11 #define CURVEMESHADAPT_CRVTRI4G1_H
12 
13 #include "CrvFace.h"
14 #include "curveMesh.h"
15 #include "GregorySurface.h"
16 
19 class CrvTri4G1 : public CrvFace {
20  public:
23  CrvTri4G1(pMeshFace in_face);
24 
27  CrvTri4G1(VtxPtrVec in_vert_vec);
28 
31  ~CrvTri4G1();
32 
33  GregorySurface * get_face_shape() { return m_face_shape_; }
34 
37  int eval(double u, double v, double * pos);
38 
41  int eval_deriv1(double in_xi_1,
42  double in_xi_2,
43  Point3d & out_dxyz_dxi1,
44  Point3d & out_dxyz_dxi2);
45 
46  int save_face_ctrl_pts(curveMesh * in_crv_mesh);
47 
48  int v_data_size() const
49  {
50  return 6*3;
51  }
52 
53  std::string v_tag_name() const
54  {
55  return std::string( "gregory_tri_4_tag" );
56  }
57 
59  void setup_edges();
60  protected:
63 
65  /* edge 0 -- vertex 0, 1
66  edge 1 -- vertex 1, 2
67  edge 2 -- vertex 2, 0
68  */
69  std::vector<pEdge> m_vec_edges;
70 };
71 #endif // CURVEMESHADAPT_CRVTRI4G1_H
GregorySurface * m_face_shape_
pointer to face geometry object
Definition: CrvTri4G1.h:62
The concrete class that implements triangular the quartic Gregory patch of order 4.
Definition: CrvTri4G1.h:19
void setup_edges()
set up the edges vector based on vertex vector
Definition: CrvTri4G1.cc:183
Define the class that implements triangular Gregory patch of order n.
Definition: GregorySurface.h:20
CrvTri4G1(pMeshFace in_face)
ctor 1
Definition: CrvTri4G1.cc:18
int eval(double u, double v, double *pos)
evaluate mapping
Definition: CrvTri4G1.cc:150
int eval_deriv1(double in_xi_1, double in_xi_2, Point3d &out_dxyz_dxi1, Point3d &out_dxyz_dxi2)
evaluate first derivatives
Definition: CrvTri4G1.cc:156
~CrvTri4G1()
dtor
Definition: CrvTri4G1.cc:145
abstract class representing curved mesh face
Definition: CrvFace.h:32
The main driver class for curved mesh adaptation procedures.
Definition: curveMesh.h:41
std::vector< pEdge > m_vec_edges
list of edges based on input vertex order
Definition: CrvTri4G1.h:69