/** * Mandelbulber v2, a 3D fractal generator _%}}i*<. ____ _______ * Copyright (C) 2021 Mandelbulber Team _>]|=||i=i<, / __ \___ ___ ___ / ___/ / * \><||i|=>>%) / /_/ / _ \/ -_) _ \/ /__/ /__ * This file is part of Mandelbulber. )<=i=]=|=i<> \____/ .__/\__/_//_/\___/____/ * The project is licensed under GPLv3, -<>>=|><|||` /_/ * see also COPYING file in this folder. ~+{i%+++ * * http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm * This file has been autogenerated by tools/populateUiInformation.php * from the file "fractal_transf_difs_torus.cpp" in the folder formula/definition * D O N O T E D I T T H I S F I L E ! */ REAL4 TransfDIFSTorusIteration(REAL4 z, __constant sFractalCl *fractal, sExtendedAuxCl *aux) { REAL4 zc = z; REAL torD; // swap axis if (fractal->transformCommon.functionEnabledSwFalse) { REAL temp = zc.x; zc.x = zc.z; zc.z = temp; } if (fractal->transformCommon.functionEnabledSFalse) { REAL temp = zc.y; zc.y = zc.z; zc.z = temp; } REAL T1 = native_sqrt(zc.y * zc.y + zc.x * zc.x) - fractal->transformCommon.offsetT1; if (!fractal->transformCommon.functionEnabledJFalse) torD = native_sqrt(T1 * T1 + zc.z * zc.z) - fractal->transformCommon.offset05; else torD = max(fabs(T1), fabs(zc.z)) - fractal->transformCommon.offset05; aux->dist = min(aux->dist, torD / (aux->DE + 1.0f)); return z; }