1 #ifndef __OP_TRANSFORM_H__
2 #define __OP_TRANSFORM_H__
3 
4 #include <gegl-matrix.h>
5 
6 G_BEGIN_DECLS
7 
8 #define TYPE_OP_TRANSFORM               (op_transform_get_type ())
9 #define OP_TRANSFORM(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_OP_TRANSFORM, OpTransform))
10 #define OP_TRANSFORM_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass),  TYPE_OP_TRANSFORM, OpTransformClass))
11 #define IS_OP_TRANSFORM(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_OP_TRANSFORM))
12 #define IS_OP_TRANSFORM_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass),  TYPE_OP_TRANSFORM))
13 #define OP_TRANSFORM_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj),  TYPE_OP_TRANSFORM, OpTransformClass))
14 
15 typedef struct _OpTransform OpTransform;
16 
17 struct _OpTransform
18 {
19   GeglOperationFilter parent_instance;
20   gdouble             origin_x;
21   gdouble             origin_y;
22   gdouble             near_z;
23   GeglSamplerType     sampler;
24 };
25 
26 typedef struct _OpTransformClass OpTransformClass;
27 
28 struct _OpTransformClass
29 {
30   GeglOperationFilterClass parent_class;
31 
32   void            (* create_matrix)    (OpTransform *transform,
33                                         GeglMatrix3 *matrix);
34   GeglAbyssPolicy (* get_abyss_policy) (OpTransform *transform);
35 };
36 
37 GType op_transform_get_type (void) G_GNUC_CONST;
38 
39 G_END_DECLS
40 
41 #endif
42