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(); }
void getSurfPoints( nglib::Ng_Mesh *mesh) { int nse = Ng_GetNSE(mesh); int *surfpoints = new int[3]; for (int i = 0; i < nse; i++) { Ng_GetSurfaceElement(mesh, i+1, surfpoints); FacePoints fp; sort(surfpoints, surfpoints + 3); fp.p[0] = surfpoints[0]; fp.p[1] = surfpoints[1]; fp.p[2] = surfpoints[2]; surfMap[fp] = GetBoundaryID(mesh, i + 1); } /* int i = 1; for (mymap::const_iterator it = surfMap.begin(); it != surfMap.end(); ++it) { printf("SURF: %d: %d %d %d\n",i++, it->first.x, it->first.y, it->second); } */ }
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]) ; } }