Example #1
0
static void _tree_write (VsgPRTree3d *tree, gchar *prefix)
{
  gchar fn[1024];
  FILE *f;
  gint np = vsg_prtree3d_point_count (tree);
  gint nn = 0;
  gint i;

  g_sprintf (fn, "%s%03d.vtp", prefix, rk);
  f = fopen (fn, "w");

  vsg_prtree3d_traverse (tree, G_PRE_ORDER,
                         (VsgPRTree3dFunc) _traverse_count_local_nodes,
                         &nn);

  fprintf (f, "<?xml version=\"1.0\" ?>\n" \
           "<VTKFile type=\"PolyData\" version=\"0.1\">\n" \
           "<PolyData>\n" \
           "<Piece NumberOfPoints=\"%d\" NumberOfVerts=\"%d\" " \
           "NumberOfLines=\"%d\" NumberOfStrips=\"0\" " \
           "NumberOfPolys=\"0\">\n",
           np + 6*nn, np, 3*nn);

  fprintf (f, "<Points>\n");
  fprintf (f, "<DataArray type=\"Float64\" NumberOfComponents=\"3\" " \
           "format=\"ascii\">\n");
  vsg_prtree3d_traverse (tree, G_PRE_ORDER,
                         (VsgPRTree3dFunc) _traverse_fg_write,
                         f);
  vsg_prtree3d_traverse (tree, G_PRE_ORDER,
                         (VsgPRTree3dFunc) _traverse_bg_write,
                         f);
  fprintf (f, "</DataArray>\n</Points>\n");

  fprintf (f, "<Verts>\n");
  fprintf (f, "<DataArray type=\"Int32\" Name=\"connectivity\" format=\"ascii\">\n");
  for (i=0; i<np; i++) fprintf (f, "%d ", i);
  fprintf (f, "\n</DataArray>\n");
  fprintf (f, "<DataArray type=\"Int32\" Name=\"offsets\" format=\"ascii\" >");
  for (i=0; i<np; i++) fprintf (f, "%d ", i+1);
  fprintf (f, "\n</DataArray>\n</Verts>\n");

  fprintf (f, "<Lines>\n");
  fprintf (f, "<DataArray type=\"Int32\" Name=\"connectivity\" format=\"ascii\">\n");
  for (i=0; i<3*nn; i++) fprintf (f, "%d %d ", np + 2*i, np + 2*i+1);
  fprintf (f, "\n</DataArray>\n");
  fprintf (f, "<DataArray type=\"Int32\" Name=\"offsets\" format=\"ascii\" >");
  for (i=0; i<3*nn; i++) fprintf (f, "%d ", 2*(i+1));
  fprintf (f, "\n</DataArray>\n</Lines>\n");



  fprintf (f, "\n</Piece>\n");
  fprintf (f, "</PolyData>\n</VTKFile>\n");
  fclose (f);

}
Example #2
0
static void _tree_write (VsgPRTree3d *tree)
{
  gchar fn[1024];
  FILE *f;
  gint np = vsg_prtree3d_point_count (tree);
  gint i;

  g_sprintf (fn, "prtree3parallel-%03d.vtp", rk);
  f = fopen (fn, "w");

  fprintf (f, "<?xml version=\"1.0\" ?>\n" \
           "<VTKFile type=\"PolyData\" version=\"0.1\">\n" \
           "<PolyData>\n" \
           "<Piece NumberOfPoints=\"%d\" NumberOfVerts=\"%d\" " \
           "NumberOfLines=\"0\" NumberOfStrips=\"0\" " \
           "NumberOfPolys=\"0\">\n",
           np, np);

/*   vsg_prtree3d_traverse (tree, G_PRE_ORDER, */
/*                          (VsgPRTree3dFunc) _traverse_bg_write, */
/*                          f); */

  fprintf (f, "<Points>\n");
  fprintf (f, "<DataArray type=\"Float64\" NumberOfComponents=\"3\" " \
           "format=\"ascii\">\n");
  vsg_prtree3d_traverse (tree, G_PRE_ORDER,
                         (VsgPRTree3dFunc) _traverse_fg_write,
                         f);
  fprintf (f, "</DataArray>\n</Points>\n");

  fprintf (f, "<Verts>\n");
  fprintf (f, "<DataArray type=\"Int32\" Name=\"connectivity\" format=\"ascii\">\n");
  for (i=0; i<np; i++) fprintf (f, "%d ", i);
  fprintf (f, "\n</DataArray>\n");
  fprintf (f, "<DataArray type=\"Int32\" Name=\"offsets\" format=\"ascii\" >");
  for (i=0; i<np; i++) fprintf (f, "%d ", i+1);
  fprintf (f, "\n</DataArray>\n</Verts>\n");
  fprintf (f, "\n</Piece>\n</PolyData>\n</VTKFile>\n");

  fclose (f);

}
Example #3
0
/**
 * aran_solver3d_point_count:
 * @solver: an #AranSolver3d.
 *
 * Counts the number of points (particles) in the associated #VsgPRTree3d.
 *
 * Returns: point count.
 */
guint aran_solver3d_point_count (const AranSolver3d *solver)
{
  g_return_val_if_fail (solver != NULL, 0);

  return vsg_prtree3d_point_count (solver->prtree);
}