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 * iteration weight. Influence fractal based on the weight of 10 * Z values after different iterations 11 */ 12 13 #include "all_fractal_definitions.h" 14 cFractalTransfIterationWeight()15cFractalTransfIterationWeight::cFractalTransfIterationWeight() : cAbstractFractal() 16 { 17 nameInComboBox = "T>Iteration Weight"; 18 internalName = "transf_iteration_weight"; 19 internalID = fractal::transfIterationWeight; 20 DEType = analyticDEType; 21 DEFunctionType = withoutDEFunction; 22 cpixelAddition = cpixelDisabledByDefault; 23 defaultBailout = 100.0; 24 DEAnalyticFunction = analyticFunctionNone; 25 coloringFunction = coloringFunctionDefault; 26 } 27 FormulaCode(CVector4 & z,const sFractal * fractal,sExtendedAux & aux)28void cFractalTransfIterationWeight::FormulaCode( 29 CVector4 &z, const sFractal *fractal, sExtendedAux &aux) 30 { 31 CVector4 zA = (aux.i == fractal->transformCommon.intA) ? z : CVector4(); 32 CVector4 zB = (aux.i == fractal->transformCommon.intB) ? z : CVector4(); 33 34 z = (z * fractal->transformCommon.scale) + (zA * fractal->transformCommon.offset) 35 + (zB * fractal->transformCommon.offset0); 36 aux.DE *= fractal->transformCommon.scale; 37 } 38