81
81
/* manipulation of affine transforms */
82
void aff2_translate (Aff2 *naff, gdouble x, gdouble y);
83
void aff2_rotate (Aff2 *naff, gdouble theta);
84
void aff2_scale (Aff2 *naff, gdouble s, gint flip);
85
void aff2_distort (Aff2 *naff, gdouble asym, gdouble shear);
86
void aff2_compute_stretch (Aff2 *naff,
87
gdouble xo, gdouble yo,
88
gdouble xn, gdouble yn);
89
void aff2_compute_distort (Aff2 *naff,
90
gdouble xo, gdouble yo,
91
gdouble xn, gdouble yn);
92
void aff2_compose (Aff2 *naff, Aff2 *aff1, Aff2 *aff2);
93
void aff2_invert (Aff2 *naff, Aff2 *aff);
94
void aff2_apply (Aff2 *aff, gdouble x, gdouble y,
95
gdouble *xf, gdouble *yf);
96
void aff2_fixed_point (Aff2 *aff, gdouble *xf, gdouble *yf);
97
void aff3_apply (Aff3 *t, gdouble x, gdouble y, gdouble z,
98
gdouble *xf, gdouble *yf, gdouble *zf);
82
void aff2_translate (Aff2 *naff,
85
void aff2_rotate (Aff2 *naff,
87
void aff2_scale (Aff2 *naff,
90
void aff2_distort (Aff2 *naff,
93
void aff2_compute_stretch (Aff2 *naff,
98
void aff2_compute_distort (Aff2 *naff,
103
void aff2_compose (Aff2 *naff,
106
void aff2_invert (Aff2 *naff,
108
void aff2_apply (Aff2 *aff,
113
void aff2_fixed_point (Aff2 *aff,
116
void aff3_apply (Aff3 *t,
101
125
/* manipulation of polygons */
102
126
IPolygon *ipolygon_convex_hull (IPolygon *poly);
103
gint ipolygon_contains (IPolygon *poly, gint xt, gint yt);
127
gint ipolygon_contains (IPolygon *poly,
106
132
/* manipulation of composite transforms */
107
AffElement *aff_element_new (gdouble x, gdouble y, GimpRGB *color, gint count);
108
void aff_element_free (AffElement *elem);
109
void aff_element_compute_trans (AffElement *elem, gdouble width,
111
gdouble center_x, gdouble center_y);
112
void aff_element_compute_color_trans (AffElement *elem);
113
void aff_element_decompose_trans (AffElement *elem, Aff2 *aff,
114
gdouble width, gdouble height,
115
gdouble center_x, gdouble center_y);
116
void aff_element_compute_boundary (AffElement *elem, gint width,
118
AffElement **elements,
133
AffElement *aff_element_new (gdouble x,
137
void aff_element_free (AffElement *elem);
138
void aff_element_compute_trans (AffElement *elem,
143
void aff_element_compute_color_trans (AffElement *elem);
144
void aff_element_decompose_trans (AffElement *elem,
150
void aff_element_compute_boundary (AffElement *elem,
153
AffElement **elements,
120
155
void aff_element_draw (AffElement *elem,
127
162
PangoLayout *layout);
130
void ifs_render (AffElement **elements, gint num_elements,
131
gint width, gint height, gint nsteps,
132
IfsComposeVals *vals, gint band_y, gint band_height,
133
guchar *data, guchar *mask, guchar *nhits, gint preview);
165
void ifs_render (AffElement **elements,
170
IfsComposeVals *vals,
135
178
gchar * ifsvals_stringify (IfsComposeVals *vals,
136
179
AffElement **elements);