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 * Adds c constant to z vector. C addition constant varies based on iteration parameters. 10 */ 11 12 #include "all_fractal_definitions.h" 13 cFractalTransfAddConstantVaryV1()14cFractalTransfAddConstantVaryV1::cFractalTransfAddConstantVaryV1() : cAbstractFractal() 15 { 16 nameInComboBox = "T>Add Constant VaryV1"; 17 internalName = "transf_add_constant_vary_v1"; 18 internalID = fractal::transfAddConstantVaryV1; 19 DEType = analyticDEType; 20 DEFunctionType = withoutDEFunction; 21 cpixelAddition = cpixelDisabledByDefault; 22 defaultBailout = 100.0; 23 DEAnalyticFunction = analyticFunctionNone; 24 coloringFunction = coloringFunctionDefault; 25 } 26 FormulaCode(CVector4 & z,const sFractal * fractal,sExtendedAux & aux)27void cFractalTransfAddConstantVaryV1::FormulaCode( 28 CVector4 &z, const sFractal *fractal, sExtendedAux &aux) 29 { 30 CVector4 tempVC = fractal->transformCommon.additionConstant000; // constant to be varied 31 if (aux.i < fractal->transformCommon.startIterations250) 32 { 33 ; 34 } 35 if (aux.i >= fractal->transformCommon.startIterations250 36 && aux.i < fractal->transformCommon.stopIterations 37 && (fractal->transformCommon.stopIterations - fractal->transformCommon.startIterations250 38 != 0)) 39 { 40 int iterationRange = 41 fractal->transformCommon.stopIterations - fractal->transformCommon.startIterations250; 42 int currentIteration = (aux.i - fractal->transformCommon.startIterations250); 43 tempVC += fractal->transformCommon.offset000 * (1.0 * currentIteration) / iterationRange; 44 } 45 if (aux.i >= fractal->transformCommon.stopIterations) 46 { 47 tempVC = (tempVC + fractal->transformCommon.offset000); 48 } 49 z += tempVC; 50 } 51