Exemple #1
0
TEST ()
{
  GeglBuffer    *buffer, *sub, *subsub, *foo;
  GeglRectangle  subrect =    {5, 5, 10, 10};
  GeglRectangle  foor =  {0, 0, 10, 10};
  GeglRectangle  rect =  {0, 0, 20, 20};
  test_start ();
  buffer = gegl_buffer_new (&rect, babl_format ("Y float"));

  sub = gegl_buffer_create_sub_buffer (buffer, &subrect);
  vgrad (buffer);
  vgrad (sub);
  subsub = g_object_new (GEGL_TYPE_BUFFER,
                         "source", sub,
                         "x", 0,
                         "y", 0,
                         "width", 40,
                         "height", 40,
                         "shift-x", 0,
                         "shift-y", 0,
                         NULL);
  foo = gegl_buffer_create_sub_buffer (subsub, &foor);

  /*fill (subsub, 0.2);*/
  print_buffer (buffer);
  print_buffer (foo);
  g_object_unref (sub);
  g_object_unref (subsub);
  g_object_unref (buffer);
  g_object_unref (foo);
  test_end ();
}
Exemple #2
0
TEST ()
{
  GeglBuffer    *buffer2, *buffer;
  GeglRectangle  bound = {0, 0, 20, 20};
  GeglRectangle  dest = {4, 4, 4, 6};
  float *blank = g_malloc0 (100000);
  gchar *temp = g_malloc0 (100000);
  test_start ();

  buffer2 = gegl_buffer_new (&bound, babl_format ("Y float"));
  buffer = gegl_buffer_new (&bound, babl_format ("Y float"));

  vgrad (buffer2);

  gegl_buffer_set (buffer2, &dest, 1, babl_format ("Y float"), blank, GEGL_AUTO_ROWSTRIDE);
  print_buffer (buffer2);

  gegl_buffer_get (buffer2, &bound, 0.5, babl_format ("Y float"), temp, GEGL_AUTO_ROWSTRIDE, GEGL_ABYSS_NONE);
  gegl_buffer_set (buffer, &bound, 0, babl_format ("Y float"), temp, GEGL_AUTO_ROWSTRIDE);

  print_buffer (buffer);

  vgrad (buffer2);

  {
    GeglBufferIterator *iterator = gegl_buffer_iterator_new (buffer2,
        &dest, 1, babl_format ("Y float"), GEGL_BUFFER_WRITE, GEGL_ABYSS_NONE);
    while (gegl_buffer_iterator_next (iterator))
    {
      int i;
      gfloat *d = iterator->data[0];
      for (i = 0; i < iterator->length; i++)
        d[i] = 0;
    }
  }
  print_buffer (buffer2);

  gegl_buffer_get (buffer2, &bound, 0.5, babl_format ("Y float"), temp, GEGL_AUTO_ROWSTRIDE, GEGL_ABYSS_NONE);
  gegl_buffer_set (buffer, &bound, 0, babl_format ("Y float"), temp, GEGL_AUTO_ROWSTRIDE);

  print_buffer (buffer);

  g_object_unref (buffer);
  g_object_unref (buffer2);

  test_end ();

}
Exemple #3
0
 void DGFiniteElement<D>:: 
 GetGradientTrans (FlatMatrixFixWidth<D> grad, FlatVector<> coefs) const 
 {
   Matrix<> gmat(D*grad.Height(), coefs.Size());
   CalcGradientMatrix (gmat);
   FlatVector<> vgrad(gmat.Height(), &grad(0,0));
   coefs = Trans (gmat) * vgrad;
 }
Exemple #4
0
 void DGFiniteElement<D>:: 
 GetGradient (FlatVector<> coefs, FlatMatrixFixWidth<D> grad) const
 {
   Matrix<> gmat(D*grad.Height(), coefs.Size());
   CalcGradientMatrix (gmat);
   FlatVector<> vgrad(gmat.Height(), &grad(0,0));
   vgrad = gmat * coefs;
 }
TEST ()
{
  GeglBuffer    *buffer;
  GeglRectangle  rect = {0, 0, 20, 20};

  test_start();
  buffer = gegl_buffer_new (&rect, babl_format ("Y float"));
  vgrad (buffer);
  print_buffer (buffer);
  g_object_unref (buffer);
  test_end();
}
TEST ()
{
  GeglBuffer    *buffer, *buffer2;
  GeglRectangle  bound = {0, 0, 20, 20};
  test_start ();
  buffer = gegl_buffer_new (&bound, babl_format ("Y float"));
  vgrad (buffer);
  buffer2 = gegl_buffer_dup (buffer);
  gegl_buffer_destroy (buffer);
  print_buffer (buffer2);
  gegl_buffer_destroy (buffer2);
  test_end ();
}
TEST ()
{
  GeglBuffer    *buffer, *buffer2;
  GeglRectangle  bound = {0, 0, 20, 20};
  test_start ();
  buffer = gegl_buffer_new (&bound, babl_format ("Y float"));
  vgrad (buffer);
  buffer2 = gegl_buffer_dup (buffer);
  checkerboard (buffer, 3, 0.0, 1.0);
  print_buffer (buffer);
  g_object_unref (buffer);
  g_object_unref (buffer2);
  test_end ();
}
TEST ()
{
  GeglAbyssPolicy abyss_type = GEGL_ABYSS_BLACK;
  gint            i, j;
  GeglBuffer     *buffer, *buffer2;
  const Babl     *format = babl_format ("Y float");
  GeglRectangle   query_rect = {0, 0, 13, 13};
  GeglRectangle   buffer_rect = {0, 0, 12, 12};
  gfloat          buf[query_rect.width * query_rect.height * sizeof(gfloat)];

  gint x_offsets[] = {-query_rect.width - 6, -query_rect.width - 0,
                      -query_rect.width + 1, -query_rect.width + 6,
                      -1,
                      buffer_rect.width - 6, buffer_rect.width - 1,
                      buffer_rect.width - 0, buffer_rect.width + 6};

  gint y_offsets[] = {-query_rect.height - 6, -query_rect.height - 0,
                      -query_rect.height + 1, -query_rect.height + 6,
                      -1,
                      buffer_rect.height - 6, buffer_rect.height - 1,
                      buffer_rect.height - 0, buffer_rect.height + 6};

  test_start ();
  buffer = gegl_buffer_new (&buffer_rect, format);
  buffer2 = gegl_buffer_new (&query_rect, format);
  vgrad (buffer);
  // checkerboard (buffer, 2, 0.0f, 1.0f);

  for (i = 0; i < G_N_ELEMENTS(x_offsets); ++i)
    for (j = 0; j < G_N_ELEMENTS(y_offsets); ++j)
    {
      GeglRectangle cur_query_rect = query_rect;
      cur_query_rect.x = cur_query_rect.x + x_offsets[i];
      cur_query_rect.y = cur_query_rect.y + y_offsets[j];

      print (("%d,%d %dx%d\n", cur_query_rect.x, cur_query_rect.y, cur_query_rect.width, cur_query_rect.height));

      gegl_buffer_get (buffer, &cur_query_rect, 1.0, format, buf, GEGL_AUTO_ROWSTRIDE, abyss_type);
      gegl_buffer_set (buffer2, &query_rect, 1.0, format, buf, GEGL_AUTO_ROWSTRIDE);

      print_buffer (buffer2);
    }

  g_object_unref (buffer);
  g_object_unref (buffer2);

  test_end ();
}
Exemple #9
0
TEST ()
{
  GeglBuffer    *buffer, *buffer2;
  GeglRectangle  bound = {0, 0, 20, 20};
  GeglRectangle  source = {2, 2, 5, 5};
  GeglRectangle  dest = {10, 10, 5, 5};
  test_start ();
  buffer = gegl_buffer_new (&bound, babl_format ("Y float"));
  buffer2 = gegl_buffer_new (&bound, babl_format ("Y float"));

  vgrad (buffer);
  gegl_buffer_copy (buffer, &source, GEGL_ABYSS_NONE, buffer2, &dest); 
  print_buffer (buffer2);
  g_object_unref (buffer);
  g_object_unref (buffer2);
  test_end ();
}
TEST ()
{
  GeglBuffer    *buffer, *buffer2;
  GeglRectangle  bound = {0, 0, 20, 20};
  test_start ();
  buffer = gegl_buffer_new (&bound, babl_format ("Y float"));
  vgrad (buffer);
  {
    GeglRectangle rect = *gegl_buffer_get_extent(buffer);

    rect.width-=10;
    rect.height-=10;
  buffer2 = gegl_buffer_new (gegl_buffer_get_extent (buffer), gegl_buffer_get_format (buffer));
  gegl_buffer_copy (buffer, &rect, buffer2, &rect);
  }
  print_buffer (buffer2);
  g_object_unref (buffer);
  g_object_unref (buffer2);
  test_end ();
}
Exemple #11
0
TEST ()
{
  GeglBuffer    *buffer, *buffer2;
  GeglRectangle  bound = {0, 0, 10, 10};
  GeglRectangle  bound2 = {0, 0, 20, 20};
  GeglRectangle  source = {-5, -5, 20, 20};
  GeglRectangle  dest = {0, 0, 20, 20};
  const Babl    *format = babl_format ("Y float");
  gfloat         buf[20 * 20 * sizeof(gfloat)];

  test_start ();
  buffer = gegl_buffer_new (&bound, format);
  buffer2 = gegl_buffer_new (&bound2, format);

  vgrad (buffer);
  gegl_buffer_get (buffer, &source, 1.0, format, buf, GEGL_AUTO_ROWSTRIDE, GEGL_ABYSS_CLAMP);
  gegl_buffer_set (buffer2, &dest, 1.0, format, buf, GEGL_AUTO_ROWSTRIDE);
  print_buffer (buffer2);
  g_object_unref (buffer);
  g_object_unref (buffer2);
  test_end ();
}