summaryrefslogtreecommitdiff
path: root/src/variations.h
blob: c724b580bed41f913004d1dd5df7f418b26ec72b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
    FLAM3 - cosmic recursive fractal flames
    Copyright (C) 1992-2009 Spotworks LLC

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef variations_included
#define variations_included

#include "private.h"



/* Variation functions */
void var0_linear(flam3_iter_helper *, double);
void var1_sinusoidal(flam3_iter_helper *, double);
void var2_spherical(flam3_iter_helper *, double);
void var3_swirl(flam3_iter_helper *, double);
void var4_horseshoe(flam3_iter_helper *, double);
void var5_polar(flam3_iter_helper *, double);
void var6_handkerchief(flam3_iter_helper *, double);
void var7_heart(flam3_iter_helper *, double);
void var8_disc(flam3_iter_helper *, double);
void var9_spiral(flam3_iter_helper *, double);
void var10_hyperbolic(flam3_iter_helper *, double);
void var11_diamond(flam3_iter_helper *, double);
void var12_ex(flam3_iter_helper *, double);
void var13_julia(flam3_iter_helper *, double);
void var14_bent(flam3_iter_helper *, double);
void var15_waves(flam3_iter_helper *, double);
void var16_fisheye(flam3_iter_helper *, double);
void var17_popcorn(flam3_iter_helper *, double);
void var18_exponential(flam3_iter_helper *, double);
void var19_power(flam3_iter_helper *, double);
void var20_cosine(flam3_iter_helper *, double);
void var21_rings(flam3_iter_helper *, double);
void var22_fan(flam3_iter_helper *, double);
void var23_blob(flam3_iter_helper *, double);
void var24_pdj(flam3_iter_helper *, double);
void var25_fan2(flam3_iter_helper *, double);
void var26_rings2(flam3_iter_helper *, double);
void var27_eyefish(flam3_iter_helper *, double);
void var28_bubble(flam3_iter_helper *, double);
void var29_cylinder(flam3_iter_helper *, double);
void var30_perspective(flam3_iter_helper *, double);
void var31_noise(flam3_iter_helper *, double);
void var32_juliaN_generic(flam3_iter_helper *, double);
void var33_juliaScope_generic(flam3_iter_helper *, double);
void var34_blur(flam3_iter_helper *, double);
void var35_gaussian(flam3_iter_helper *, double);
void var36_radial_blur(flam3_iter_helper *, double);
void var37_pie(flam3_iter_helper *, double);
void var38_ngon(flam3_iter_helper *, double);
void var39_curl(flam3_iter_helper *, double);
void var40_rectangles(flam3_iter_helper *, double);
void var41_arch(flam3_iter_helper *, double);
void var42_tangent(flam3_iter_helper *, double);
void var43_square(flam3_iter_helper *, double);
void var44_rays(flam3_iter_helper *, double);
void var45_blade(flam3_iter_helper *, double);
void var46_secant2(flam3_iter_helper *, double);
void var47_twintrian(flam3_iter_helper *, double);
void var48_cross(flam3_iter_helper *, double);
void var49_disc2(flam3_iter_helper *, double);
void var50_supershape(flam3_iter_helper *, double);
void var51_flower(flam3_iter_helper *, double);
void var52_conic(flam3_iter_helper *, double);
void var53_parabola(flam3_iter_helper *, double);
void var54_bent2(flam3_iter_helper *, double);
void var55_bipolar(flam3_iter_helper *, double);
void var56_boarders(flam3_iter_helper *, double);
void var57_butterfly(flam3_iter_helper *, double);
void var58_cell(flam3_iter_helper *, double);
void var59_cpow(flam3_iter_helper *, double);
void var60_curve(flam3_iter_helper *, double);
void var61_edisc(flam3_iter_helper *, double);
void var62_elliptic(flam3_iter_helper *, double);
void var63_escher(flam3_iter_helper *, double);
void var64_foci(flam3_iter_helper *, double);
void var65_lazysusan(flam3_iter_helper *, double);
void var66_loonie(flam3_iter_helper *, double);
void var67_pre_blur(flam3_iter_helper *, double);
void var68_modulus(flam3_iter_helper *, double);
void var69_oscope(flam3_iter_helper *, double);
void var70_polar2(flam3_iter_helper *, double);
void var71_popcorn2(flam3_iter_helper *, double);
void var72_scry(flam3_iter_helper *, double);
void var73_separation(flam3_iter_helper *, double);
void var74_split(flam3_iter_helper *, double);
void var75_splits(flam3_iter_helper *, double);
void var76_stripes(flam3_iter_helper *, double);
void var77_wedge(flam3_iter_helper *, double);
void var78_wedge_julia(flam3_iter_helper *, double);
void var79_wedge_sph(flam3_iter_helper *, double);
void var80_whorl(flam3_iter_helper *, double);
void var81_waves2(flam3_iter_helper *, double);
void var82_exp (flam3_iter_helper *f, double weight);
void var83_log (flam3_iter_helper *f, double weight);
void var84_sin (flam3_iter_helper *f, double weight);
void var85_cos (flam3_iter_helper *f, double weight);
void var86_tan (flam3_iter_helper *f, double weight);
void var87_sec (flam3_iter_helper *f, double weight);
void var88_csc (flam3_iter_helper *f, double weight);
void var89_cot (flam3_iter_helper *f, double weight);
void var90_sinh (flam3_iter_helper *f, double weight);
void var91_cosh (flam3_iter_helper *f, double weight);
void var92_tanh (flam3_iter_helper *f, double weight);
void var93_sech (flam3_iter_helper *f, double weight);
void var94_csch (flam3_iter_helper *f, double weight);
void var95_coth (flam3_iter_helper *f, double weight);
void var96_auger (flam3_iter_helper *f, double weight);

/* Precalculation functions */
void perspective_precalc(flam3_xform *xf);
void juliaN_precalc(flam3_xform *xf);
void juliaScope_precalc(flam3_xform *xf);
void radial_blur_precalc(flam3_xform *xf);
void waves_precalc(flam3_xform *xf);
void disc2_precalc(flam3_xform *xf);
void supershape_precalc(flam3_xform *xf);
void wedgeJulia_precalc(flam3_xform *xf);

void xform_precalc(flam3_genome *cp, int xi);
int prepare_precalc_flags(flam3_genome *);

int apply_xform(flam3_genome *cp, int fn, double *p, double *q, randctx *rc);
void initialize_xforms(flam3_genome *thiscp, int start_here);
#endif