Example #1
0
void MyDeformObject::initialization(Ng_Mesh * grid)
{
    number_point     = Ng_GetNP(grid);
    number_element   = Ng_GetNSE(grid);

    ///get memory
    p_data_point = new double *[number_point];
    for (int i = 0; i < number_point; ++i)
    {
        p_data_point[i] = new double[3];
    }
    p_data_element = new int *[number_element];
    for (int i = 0; i < number_element; ++i)
    {
        p_data_element[i] = new int[4];
    }
    p_analytic_intensy  = new double[x_pic_deform * y_pic_deform];

    p_interpolate_intensy     = new double[x_pic_deform * y_pic_deform];

    p_source_intensy    = new double[x_pic_source * y_pic_source];
    ///End get memory

    for (int i = 0; i < number_point; ++i)
    {
        Ng_GetPoint(grid, (i + 1), p_data_point[i]);
//        qDebug() << p_data_point[i][0] << p_data_point[i][1];
    }
    for (int i = 0; i < number_element; ++i)
    {
        Ng_GetSurfaceElement(grid, (i + 1), p_data_element[i]);
        for (int j = 0; j < 4; ++j) {
            p_data_element[i][j] --;
        }
//        qDebug() << p_data_element[i][0] << p_data_element[i][1] << p_data_element[i][2];
    }

    x_src_size          = 2.0;
    y_src_size          = 2.0;
    x_deform            = 1.3;
    y_deform            = 0.9;
    x_dfrm_size         = x_src_size * x_deform;
    y_dfrm_size         = y_src_size * y_deform;
    vectr_x << 0.0, (x_dfrm_size / 2.0), x_dfrm_size, 0.0, (x_dfrm_size / 2.0), x_dfrm_size, 0.0, (x_dfrm_size / 2.0), x_dfrm_size;
    vectr_X << 0.0, (x_src_size / 2.0), x_src_size, 0.0, (x_src_size / 2.0), x_src_size, 0.0, (x_src_size / 2.0), x_src_size;
    vectr_y << 0.0, (y_src_size - y_dfrm_size), 0.0, (y_src_size / 2.0), (y_src_size / 2.0), (y_src_size / 2.0), y_src_size, y_dfrm_size, y_src_size;
    vectr_Y << 0.0, 0.0, 0.0, (y_src_size / 2.0), (y_src_size / 2.0), (y_src_size / 2.0), y_src_size, y_src_size, y_src_size;

    calcCoefSourcCoord();
}
Example #2
0
void  cre_geom_surf_mesh(
nglib::Ng_Mesh        *mesh1,
nglib::Ng_Mesh        *mesh2)
{
   
   int     np = Ng_GetNP(mesh1) ;
   int     nse = Ng_GetNSE(mesh1) ;  
   double  xyz[3] ; 
   int     entity[4] ; 
   
   // printf("%d %d\n",np,nse) ; 
   for(int i=1 ; i <= np ; i++) {
     Ng_GetPoint (mesh1,i,xyz) ;
     Ng_AddPoint (mesh2,xyz); 
     // printf("%lf %lf %lf\n",xyz[0],xyz[1],xyz[2]) ; 
   }
   
   for(int i=1 ; i <= nse ; i++) {
      Ng_GetSurfaceElement(mesh1,i,entity) ;
      Ng_AddSurfaceElement(mesh2,nglib::NG_TRIG,entity);
      // printf("%d %d %d\n",entity[0],entity[1],entity[2]) ;
   }
}