1/**
2 * Mandelbulber v2, a 3D fractal generator  _%}}i*<.        ____                _______
3 * Copyright (C) 2020 Mandelbulber Team   _>]|=||i=i<,     / __ \___  ___ ___  / ___/ /
4 *                                        \><||i|=>>%)    / /_/ / _ \/ -_) _ \/ /__/ /__
5 * This file is part of Mandelbulber.     )<=i=]=|=i<>    \____/ .__/\__/_//_/\___/____/
6 * The project is licensed under GPLv3,   -<>>=|><|||`        /_/
7 * see also COPYING file in this folder.    ~+{i%+++
8 *
9 * diagonal fold conditional
10
11 * This file has been autogenerated by tools/populateUiInformation.php
12 * from the file "fractal_transf_diagonal_fold.cpp" in the folder formula/definition
13 * D O    N O T    E D I T    T H I S    F I L E !
14 */
15
16REAL4 TransfDiagonalFoldIteration(REAL4 z, __constant sFractalCl *fractal, sExtendedAuxCl *aux)
17{
18	if (!fractal->transformCommon.functionEnabledAxFalse)
19	{
20		if (fractal->transformCommon.functionEnabledAx)
21		{
22			if (z.x > z.y)
23			{
24				REAL temp = z.y;
25				z.y = z.x;
26				z.x = temp;
27			}
28		}
29		if (fractal->transformCommon.functionEnabledAyFalse)
30		{
31			if (z.y > z.z)
32			{
33				REAL temp = z.z;
34				z.z = z.y;
35				z.y = temp;
36			}
37		}
38		if (fractal->transformCommon.functionEnabledAzFalse)
39		{
40			if (z.z > z.x)
41			{
42				REAL temp = z.x;
43				z.x = z.z;
44				z.z = temp;
45			}
46		}
47	}
48	else
49	{
50		if (fractal->transformCommon.functionEnabledAx
51				&& aux->i >= fractal->transformCommon.startIterationsA
52				&& aux->i < fractal->transformCommon.stopIterationsA)
53		{
54			if (z.x > z.y)
55			{
56				REAL temp = z.y;
57				z.y = z.x;
58				z.x = temp;
59			}
60		}
61		if (fractal->transformCommon.functionEnabledAyFalse
62				&& aux->i >= fractal->transformCommon.startIterationsB
63				&& aux->i < fractal->transformCommon.stopIterationsB)
64		{
65			if (z.y > z.z)
66			{
67				REAL temp = z.z;
68				z.z = z.y;
69				z.y = temp;
70			}
71		}
72		if (fractal->transformCommon.functionEnabledAzFalse
73				&& aux->i >= fractal->transformCommon.startIterationsC
74				&& aux->i < fractal->transformCommon.stopIterationsC)
75		{
76			if (z.z > z.x)
77			{
78				REAL temp = z.x;
79				z.x = z.z;
80				z.z = temp;
81			}
82		}
83	}
84
85	if (fractal->analyticDE.enabledFalse)
86	{
87		aux->DE = aux->DE * fractal->analyticDE.scale1 + fractal->analyticDE.offset0;
88	}
89	return z;
90}