Blame operations/transform/chant.h

Packit bc1512
#ifndef GEGL_CHANT_SELF
Packit bc1512
#error "GEGL_CHANT_SELF not defined"
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#define GEGL_CHANT_PROPERTIES 1
Packit bc1512
Packit bc1512
/****************************************************************************/
Packit bc1512
Packit bc1512
#include <string.h>
Packit bc1512
#include <glib-object.h>
Packit bc1512
#include <gegl-plugin.h>
Packit bc1512
Packit bc1512
#include "transform-core.h"
Packit bc1512
#include "module.h"
Packit bc1512
Packit bc1512
#define GEGL_CHANT_PARENT_TypeName      OpTransform
Packit bc1512
#define GEGL_CHANT_PARENT_TypeNameClass OpTransformClass
Packit bc1512
#define GEGL_CHANT_PARENT_TYPE          TYPE_OP_AFFINE
Packit bc1512
#define GEGL_CHANT_PARENT_CLASS         OP_AFFINE_CLASS
Packit bc1512
Packit bc1512
typedef struct Generated        GeglChantOperation;
Packit bc1512
typedef struct GeneratedClass   ChantClass;
Packit bc1512
Packit bc1512
struct Generated
Packit bc1512
{
Packit bc1512
  GEGL_CHANT_PARENT_TypeName  parent_instance;
Packit bc1512
#define gegl_chant_int(name, min, max, def, blurb)     gint     name;
Packit bc1512
#define gegl_chant_double(name, min, max, def, blurb)  gdouble  name;
Packit bc1512
#define gegl_chant_float(name, min, max, def, blurb)   gfloat   name;
Packit bc1512
#define gegl_chant_boolean(name, def, blurb)           gboolean name;
Packit bc1512
#define gegl_chant_string(name, def, blurb)            gchar   *name;
Packit bc1512
#define gegl_chant_object(name, blurb)                 GObject *name;
Packit bc1512
#define gegl_chant_pointer(name, blurb)                gpointer name;
Packit bc1512
Packit bc1512
#include GEGL_CHANT_SELF
Packit bc1512
Packit bc1512
/****************************************************************************/
Packit bc1512
Packit bc1512
/* undefining the chant macros before all subsequent inclusions */
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_float
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
Packit bc1512
/****************************************************************************/
Packit bc1512
};
Packit bc1512
Packit bc1512
struct GeneratedClass
Packit bc1512
{
Packit bc1512
  GEGL_CHANT_PARENT_TypeNameClass parent_class;
Packit bc1512
};
Packit bc1512
Packit bc1512
#define GEGL_CHANT_OPERATION(obj) ((GeglChantOperation*)(obj))
Packit bc1512
Packit bc1512
#define M_DEFINE_TYPE_EXTENDED(type_name, TYPE_PARENT, flags, CODE) \
Packit bc1512
  \
Packit bc1512
static void     gegl_chant_init              (GeglChantOperation *self); \
Packit bc1512
static void     gegl_chant_class_init        (ChantClass    *klass); \
Packit bc1512
static gpointer gegl_chant_parent_class = NULL; \
Packit bc1512
\
Packit bc1512
static void \
Packit bc1512
gegl_chant_class_intern_init (gpointer klass) \
Packit bc1512
{ \
Packit bc1512
  gegl_chant_parent_class = g_type_class_peek_parent (klass); \
Packit bc1512
  gegl_chant_class_init ((ChantClass*) klass); \
Packit bc1512
} \
Packit bc1512
GType  type_name##_get_type (void); \
Packit bc1512
\
Packit bc1512
GType \
Packit bc1512
type_name##_get_type (void) \
Packit bc1512
{ \
Packit bc1512
  static GType g_define_type_id = 0; \
Packit bc1512
  if (G_UNLIKELY (g_define_type_id == 0)) \
Packit bc1512
    { \
Packit bc1512
      static const GTypeInfo g_define_type_info = \
Packit bc1512
        { \
Packit bc1512
          sizeof (ChantClass), \
Packit bc1512
          (GBaseInitFunc) NULL, \
Packit bc1512
          (GBaseFinalizeFunc) NULL, \
Packit bc1512
          (GClassInitFunc) gegl_chant_class_intern_init, \
Packit bc1512
          (GClassFinalizeFunc) NULL, \
Packit bc1512
          NULL,   /* class_data */ \
Packit bc1512
          sizeof (GeglChantOperation), \
Packit bc1512
          0,      /* n_preallocs */ \
Packit bc1512
          (GInstanceInitFunc) gegl_chant_init, \
Packit bc1512
          NULL    /* value_table */ \
Packit bc1512
        }; \
Packit bc1512
      g_define_type_id = \
Packit bc1512
        gegl_module_register_type (affine_module_get_module (), TYPE_PARENT,\
Packit bc1512
                                   "GeglOpPlugIn-" #type_name,\
Packit bc1512
                                   &g_define_type_info, 0);\
Packit bc1512
      { CODE ; }\
Packit bc1512
    } \
Packit bc1512
  return g_define_type_id; \
Packit bc1512
}
Packit bc1512
Packit bc1512
#define M_DEFINE_TYPE(t_n, T_P)   M_DEFINE_TYPE_EXTENDED (t_n, T_P, 0, )
Packit bc1512
Packit bc1512
M_DEFINE_TYPE (GEGL_CHANT_NAME, GEGL_CHANT_PARENT_TYPE)
Packit bc1512
Packit bc1512
enum
Packit bc1512
{
Packit bc1512
  PROP_0,
Packit bc1512
#define gegl_chant_int(name, min, max, def, blurb)     PROP_##name,
Packit bc1512
#define gegl_chant_double(name, min, max, def, blurb)  PROP_##name,
Packit bc1512
#define gegl_chant_float(name, min, max, def, blurb)   PROP_##name,
Packit bc1512
#define gegl_chant_boolean(name, def, blurb)           PROP_##name,
Packit bc1512
#define gegl_chant_string(name, def, blurb)            PROP_##name,
Packit bc1512
#define gegl_chant_object(name, blurb)                 PROP_##name,
Packit bc1512
#define gegl_chant_pointer(name, blurb)                PROP_##name,
Packit bc1512
Packit bc1512
#include GEGL_CHANT_SELF
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_float
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
  PROP_LAST
Packit bc1512
};
Packit bc1512
Packit bc1512
static void
Packit bc1512
get_property (GObject      *gobject,
Packit bc1512
              guint         property_id,
Packit bc1512
              GValue       *value,
Packit bc1512
              GParamSpec   *pspec)
Packit bc1512
{
Packit bc1512
  GeglChantOperation *self = GEGL_CHANT_OPERATION (gobject);
Packit bc1512
Packit bc1512
  switch (property_id)
Packit bc1512
  {
Packit bc1512
#define gegl_chant_int(name, min, max, def, blurb)\
Packit bc1512
    case PROP_##name: g_value_set_int (value, self->name);break;
Packit bc1512
#define gegl_chant_double(name, min, max, def, blurb)\
Packit bc1512
    case PROP_##name: g_value_set_double (value, self->name);break;
Packit bc1512
#define gegl_chant_float(name, min, max, def, blurb)\
Packit bc1512
    case PROP_##name: g_value_set_float (value, self->name);break;
Packit bc1512
#define gegl_chant_boolean(name, def, blurb)\
Packit bc1512
    case PROP_##name: g_value_set_boolean (value, self->name);break;
Packit bc1512
#define gegl_chant_string(name, def, blurb)\
Packit bc1512
    case PROP_##name: g_value_set_string (value, self->name);break;
Packit bc1512
#define gegl_chant_object(name, blurb)\
Packit bc1512
    case PROP_##name: g_value_set_object (value, self->name);break;
Packit bc1512
#define gegl_chant_pointer(name, blurb)\
Packit bc1512
    case PROP_##name: g_value_set_pointer (value, self->name);break;
Packit bc1512
Packit bc1512
#include GEGL_CHANT_SELF
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_float
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
    default:
Packit bc1512
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec);
Packit bc1512
      break;
Packit bc1512
  }
Packit bc1512
  self = NULL; /* silence GCC if no properties were defined */
Packit bc1512
}
Packit bc1512
Packit bc1512
static void
Packit bc1512
set_property (GObject      *gobject,
Packit bc1512
              guint         property_id,
Packit bc1512
              const GValue *value,
Packit bc1512
              GParamSpec   *pspec)
Packit bc1512
{
Packit bc1512
  GeglChantOperation *self = GEGL_CHANT_OPERATION (gobject);
Packit bc1512
Packit bc1512
  switch (property_id)
Packit bc1512
  {
Packit bc1512
#define gegl_chant_int(name, min, max, def, blurb)\
Packit bc1512
    case PROP_##name:\
Packit bc1512
      self->name = g_value_get_int (value);\
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_double(name, min, max, def, blurb)\
Packit bc1512
    case PROP_##name:\
Packit bc1512
      self->name = g_value_get_double (value);\
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_float(name, min, max, def, blurb)\
Packit bc1512
    case PROP_##name:\
Packit bc1512
      self->name = g_value_get_float (value);\
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_boolean(name, def, blurb)\
Packit bc1512
    case PROP_##name:\
Packit bc1512
      self->name = g_value_get_boolean (value);\
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_string(name, def, blurb)\
Packit bc1512
    case PROP_##name:\
Packit bc1512
      if (self->name)\
Packit bc1512
        g_free (self->name);\
Packit bc1512
      self->name = g_strdup (g_value_get_string (value));\
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_object(name, blurb)\
Packit bc1512
    case PROP_##name:\
Packit bc1512
      if (self->name != NULL) \
Packit bc1512
         g_object_unref (self->name);\
Packit bc1512
      self->name = g_value_get_object (value);\
Packit bc1512
      break;
Packit bc1512
#define gegl_chant_pointer(name, blurb)\
Packit bc1512
    case PROP_##name:\
Packit bc1512
      self->name = g_value_get_pointer (value);\
Packit bc1512
      break;
Packit bc1512
Packit bc1512
#include GEGL_CHANT_SELF
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_float
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
Packit bc1512
    default:
Packit bc1512
      G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, property_id, pspec);
Packit bc1512
      break;
Packit bc1512
  }
Packit bc1512
  self = NULL; /* silence GCC if no properties were defined */
Packit bc1512
}
Packit bc1512
Packit bc1512
static void gegl_chant_init (GeglChantOperation *self)
Packit bc1512
{
Packit bc1512
}
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_INIT
Packit bc1512
static void init (GeglChantOperation *self);
Packit bc1512
Packit bc1512
static GObject *
Packit bc1512
gegl_chant_constructor (GType                  type,
Packit bc1512
                   guint                  n_construct_properties,
Packit bc1512
                   GObjectConstructParam *construct_properties)
Packit bc1512
{
Packit bc1512
  GObject *obj;
Packit bc1512
Packit bc1512
  obj = G_OBJECT_CLASS (gegl_chant_parent_class)->constructor (
Packit bc1512
            type, n_construct_properties, construct_properties);
Packit bc1512
Packit bc1512
  init (GEGL_CHANT_OPERATION (obj));
Packit bc1512
Packit bc1512
  return obj;
Packit bc1512
}
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_CLASS_INIT
Packit bc1512
static void class_init (GeglOperationClass *operation_class);
Packit bc1512
#endif
Packit bc1512
Packit bc1512
static void create_matrix (OpTransform    *affine,
Packit bc1512
                           GeglMatrix3 *matrix);
Packit bc1512
Packit bc1512
static void
Packit bc1512
gegl_chant_class_init (ChantClass * klass)
Packit bc1512
{
Packit bc1512
  GObjectClass               *object_class = G_OBJECT_CLASS (klass);
Packit bc1512
  GEGL_CHANT_PARENT_TypeNameClass *parent_class = GEGL_CHANT_PARENT_CLASS (klass);
Packit bc1512
  GeglOperationClass         *operation_class;
Packit bc1512
Packit bc1512
  operation_class = GEGL_OPERATION_CLASS (klass);
Packit bc1512
Packit bc1512
  object_class->set_property = set_property;
Packit bc1512
  object_class->get_property = get_property;
Packit bc1512
Packit bc1512
  parent_class->create_matrix = create_matrix;
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_INIT
Packit bc1512
  object_class->constructor  = gegl_chant_constructor;
Packit bc1512
#endif
Packit bc1512
#ifdef GEGL_CHANT_CLASS_INIT
Packit bc1512
  class_init (operation_class);
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#if 1
Packit bc1512
#define M_GEGL_CHANT_SET_NAME_EXTENDED(nam) \
Packit bc1512
  operation_class->name=g_strdup("gegl:"#nam);
Packit bc1512
#define M_GEGL_CHANT_SET_NAME(name)   M_GEGL_CHANT_SET_NAME_EXTENDED(name)
Packit bc1512
  M_GEGL_CHANT_SET_NAME (GEGL_CHANT_NAME);
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#ifdef GEGL_CHANT_DESCRIPTION
Packit bc1512
  gegl_operation_class_set_key (operation_class, "description", GEGL_CHANT_DESCRIPTION);
Packit bc1512
#endif
Packit bc1512
Packit bc1512
#define gegl_chant_int(name, min, max, def, blurb)  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,\
Packit bc1512
                                   g_param_spec_int (#name, #name, blurb,\
Packit bc1512
                                                     min, max, def,\
Packit bc1512
                                                     G_PARAM_READWRITE |\
Packit bc1512
                                                     G_PARAM_CONSTRUCT |\
Packit bc1512
                                                     GEGL_PARAM_PAD_INPUT));
Packit bc1512
#define gegl_chant_double(name, min, max, def, blurb)  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,\
Packit bc1512
                                   g_param_spec_double (#name, #name, blurb,\
Packit bc1512
                                                        min, max, def,\
Packit bc1512
                                                        G_PARAM_READWRITE |\
Packit bc1512
                                                        G_PARAM_CONSTRUCT |\
Packit bc1512
                                                        GEGL_PARAM_PAD_INPUT));
Packit bc1512
#define gegl_chant_float(name, min, max, def, blurb)  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,\
Packit bc1512
                                   g_param_spec_float (#name, #name, blurb,\
Packit bc1512
                                                        min, max, def,\
Packit bc1512
                                                        G_PARAM_READWRITE |\
Packit bc1512
                                                        G_PARAM_CONSTRUCT |\
Packit bc1512
                                                        GEGL_PARAM_PAD_INPUT));
Packit bc1512
#define gegl_chant_boolean(name, def, blurb)  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,\
Packit bc1512
                                   g_param_spec_boolean (#name, #name, blurb,\
Packit bc1512
                                                         def,\
Packit bc1512
                                                         G_PARAM_READWRITE |\
Packit bc1512
                                                         G_PARAM_CONSTRUCT |\
Packit bc1512
                                                         GEGL_PARAM_PAD_INPUT));
Packit bc1512
#define gegl_chant_string(name, def, blurb)  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,\
Packit bc1512
                                   g_param_spec_string (#name, #name, blurb,\
Packit bc1512
                                                        def,\
Packit bc1512
                                                        G_PARAM_READWRITE |\
Packit bc1512
                                                        G_PARAM_CONSTRUCT |\
Packit bc1512
                                                        GEGL_PARAM_PAD_INPUT));
Packit bc1512
#define gegl_chant_object(name, blurb)  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,\
Packit bc1512
                                   g_param_spec_object (#name, #name, blurb,\
Packit bc1512
                                                        G_TYPE_OBJECT,\
Packit bc1512
                                                        G_PARAM_READWRITE |\
Packit bc1512
                                                        G_PARAM_CONSTRUCT |\
Packit bc1512
                                                        GEGL_PARAM_PAD_INPUT));
Packit bc1512
#define gegl_chant_pointer(name, blurb)  \
Packit bc1512
  g_object_class_install_property (object_class, PROP_##name,\
Packit bc1512
                                   g_param_spec_pointer (#name, #name, blurb,\
Packit bc1512
                                                        G_PARAM_READWRITE |\
Packit bc1512
                                                        G_PARAM_CONSTRUCT |\
Packit bc1512
                                                        GEGL_PARAM_PAD_INPUT));
Packit bc1512
#include GEGL_CHANT_SELF
Packit bc1512
Packit bc1512
#undef gegl_chant_int
Packit bc1512
#undef gegl_chant_double
Packit bc1512
#undef gegl_chant_float
Packit bc1512
#undef gegl_chant_boolean
Packit bc1512
#undef gegl_chant_string
Packit bc1512
#undef gegl_chant_object
Packit bc1512
#undef gegl_chant_pointer
Packit bc1512
}
Packit bc1512
Packit bc1512
/****************************************************************************/