1 /** 2 * Mandelbulber v2, a 3D fractal generator ,=#MKNmMMKmmßMNWy, 3 * ,B" ]L,,p%%%,,,§;, "K 4 * Copyright (C) 2019 Mandelbulber Team §R-==%w["'~5]m%=L.=~5N 5 * ,=mm=§M ]=4 yJKA"/-Nsaj "Bw,==,, 6 * This file is part of Mandelbulber. §R.r= jw",M Km .mM FW ",§=ß., ,TN 7 * ,4R =%["w[N=7]J '"5=],""]]M,w,-; T=]M 8 * Mandelbulber is free software: §R.ß~-Q/M=,=5"v"]=Qf,'§"M= =,M.§ Rz]M"Kw 9 * you can redistribute it and/or §w "xDY.J ' -"m=====WeC=\ ""%""y=%"]"" § 10 * modify it under the terms of the "§M=M =D=4"N #"%==A%p M§ M6 R' #"=~.4M 11 * GNU General Public License as §W =, ][T"]C § § '§ e===~ U !§[Z ]N 12 * published by the 4M",,Jm=,"=e~ § § j]]""N BmM"py=ßM 13 * Free Software Foundation, ]§ T,M=& 'YmMMpM9MMM%=w=,,=MT]M m§;'§, 14 * either version 3 of the License, TWw [.j"5=~N[=§%=%W,T ]R,"=="Y[LFT ]N 15 * or (at your option) TW=,-#"%=;[ =Q:["V"" ],,M.m == ]N 16 * any later version. J§"mr"] ,=,," =="""J]= M"M"]==ß" 17 * §= "=C=4 §"eM "=B:m|4"]#F,§~ 18 * Mandelbulber is distributed in "9w=,,]w em%wJ '"~" ,=,,ß" 19 * the hope that it will be useful, . "K= ,=RMMMßM""" 20 * but WITHOUT ANY WARRANTY; .''' 21 * without even the implied warranty 22 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 23 * 24 * See the GNU General Public License for more details. 25 * You should have received a copy of the GNU General Public License 26 * along with Mandelbulber. If not, see <http://www.gnu.org/licenses/>. 27 * 28 * ########################################################################### 29 * 30 * Authors: Krzysztof Marczak (buddhi1980@gmail.com) 31 * 32 * TODO: description 33 */ 34 35 #ifndef MANDELBULBER2_FORMULA_DEFINITION_ALL_FRACTAL_LIST_ENUMS_HPP_ 36 #define MANDELBULBER2_FORMULA_DEFINITION_ALL_FRACTAL_LIST_ENUMS_HPP_ 37 38 namespace fractal 39 { 40 enum enumFractalFormula 41 { 42 invalid = -1, 43 none = 0, 44 fastMandelbulb = 1, 45 mandelbulb = 2, 46 mandelbulbPower2 = 3, 47 hypercomplex = 4, 48 quaternion = 5, 49 minusFastTrig = 6, 50 mengerSponge = 7, 51 mandelbox = 8, 52 mandelboxFast = 9, 53 kaleidoscopicIfs = 10, 54 xenodreambuie = 11, 55 hybrid = 12, 56 mandelbulb2 = 13, 57 mandelbulb3 = 14, 58 mandelbulb4 = 15, 59 boxFoldBulbPow2 = 16, 60 mandelboxSmooth = 17, 61 mandelboxVaryScale4d = 18, // updated V2.10, fix scaleVary v2.12 62 aexion = 19, 63 benesi = 20, // add conditional offset v2.26 64 bristorbrot = 21, 65 invertX = 22, 66 invertY = 23, 67 invertZ = 24, 68 invertR = 25, 69 sphericalFold = 26, 70 powXYZ = 27, 71 scaleX = 28, 72 scaleY = 29, 73 scaleZ = 30, 74 offsetX = 31, 75 offsetY = 32, 76 offsetZ = 33, 77 angleMultiplyX = 34, 78 angleMultiplyY = 35, 79 angleMultiplyZ = 36, 80 generalizedFoldBox = 37, 81 oclCustom = 38, 82 ides = 39, 83 ides2 = 40, 84 buffalo = 41, 85 quickDudley = 48, // covert to analytic v2.20 86 lkmitch = 49, // covert to analytic v2.20 87 makin3d2 = 50, // covert to analytic v2.20 88 msltoeSym2Mod = 51, 89 // mandelbulb5 = 52, 90 // mandelbox103 = 53, 91 // quaternion104 = 54, 92 // mengerSponge105 = 55, 93 transfPlatonicSolid = 56, 94 // mandelbulb6Beta = 57, 95 // benesiTransforms = 58, 96 foldBoxMod1 = 59, 97 aboxModKali = 60, 98 mengerMod1 = 61, // fix V2.10 99 quaternion3d = 62, 100 aexionOctopusMod = 63, 101 aboxMod1 = 64, // fix scale v2.11 v2.12 102 mandelbulbMulti = 65, // updated V2.08 103 benesiPineTree = 66, // updated addCpixel V2.16 104 benesiT1PineTree = 67, // updated V2.09, rot2 v2.14 105 msltoeSym3Mod = 68, 106 msltoeSym4Mod = 69, // fix scal , add mult 107 eiffieMsltoe = 70, // updated V2.08. DE v2.15 108 riemannSphereMsltoeV1 = 71, // covert to analytic v2.20 109 riemannSphereMsltoe = 72, 110 amazingSurf = 73, // fix scale v2.12 111 kalisets1 = 74, 112 aboxMod2 = 75, // fix scale v2.11, major change v2.12 113 aboxVSIcen1 = 76, 114 amazingSurfMod1 = 77, // updated V2.08 v2.12 115 mandelbulbVaryPowerV1 = 78, 116 quaternion4d = 79, // updated V2.10, add DE V2.20 117 msltoeSym3Mod2 = 80, 118 msltoeSym3Mod3 = 81, // DE v2.15 119 msltoeDonut = 82, 120 iqBulb = 83, 121 quickDudleyMod = 84, // covert to analytic v2.20 122 // V2.08 123 riemannBulbMsltoeMod2 = 85, 124 msltoeToroidal = 86, // update DE v2.15 125 aboxModKaliEiffie = 87, // updated z.z scale V2.09 126 collatz = 88, 127 collatzMod = 89, 128 mengerPwr2Poly = 90, // DE v2.15 129 mandelboxMenger = 91, // DE v2.15 130 mandelbulbKali = 92, 131 mandelbulbKaliMulti = 93, 132 mandelbulbBermarte = 94, 133 mengerMiddleMod = 95, // add vary scale v2.19 134 msltoeToroidalMulti = 96, // update DE v2.15 135 amazingSurfMulti = 97, 136 // V2.09 137 mengerCrossKIFS = 98, 138 mengerPrismShape = 99, // fix T1 T1M V2.10. DE v2.15 139 benesiMagTransforms = 100, // update addCpixel V2.16, analytic v2.20 140 pseudoKleinianStdDE = 101, // fix T1 T1M V2.10, change to aux.dist DE v2.21 141 bristorbrot4d = 102, 142 pseudoKleinian = 103, // fix DE V2.10 143 pseudoKleinianMod1 = 104, // fix T1 T1M V2.10 & DE 144 benesiPwr2Mandelbulb = 105, // rot2 v2.14, updated addCpixel V2.16 145 mengerCrossMod1 = 106, 146 // V2.10 147 mengerPrismShape2 = 107, // DE v2.15 148 mixPinski4d = 108, // fixed V2.11 149 sierpinski4d = 109, // update DE v2.15 150 sierpinski3d = 110, // update DE v2.15, fixDE v2.20. fix 2.22 151 menger4d = 111, // fixed V2.11 152 menger4dMod1 = 112, // fixed V2.11 153 mengerSmooth = 113, 154 mengerSmoothMod1 = 114, 155 mengerOcto = 115, 156 abox4d = 116, // fixed varyscale v2.12 157 // V2.11 158 pseudoKleinianMod2 = 117, 159 mandelbulbMulti2 = 118, // mbulb default changed V2.12 160 aboxMod11 = 119, // fixed varyscale v2.12 161 // V2.12 162 mandelbulbQuat = 120, // DE 2.15 163 mandelbulbJuliabulb = 121, 164 josKleinian = 122, 165 aboxMod12 = 123, 166 quaternionCubic4d = 124, // add DE V2.20 167 boxFoldBulbPow2V2 = 125, 168 boxFoldBulbPow2V3 = 126, // added sphere invert 169 aboxMod13 = 127, // add missing sphere fold iter controls 170 boxFoldQuat = 128, 171 // 2.13 172 coastalbrot = 129, 173 modulusMengerSponge = 130, 174 modulusMandelbulb = 131, 175 amazingSurfMod2 = 132, // fixed: comboBox v2.14, type2 v2.17 176 // 2.14 177 mandelboxVariable = 133, 178 boxFold4dBulbPow2 = 134, 179 aboxModKaliV2 = 135, // v2.18 add oldZ sign transform 180 // 2.15 181 aboxModKaliV3 = 136, 182 // 2.16 183 mandelbulbAbsPower2 = 137, 184 mandelbulbPow2V2 = 138, 185 riemannSphereMsltoeV2 = 139, // covert to analytic v2.20 186 aboxSurfBox = 140, 187 boxFoldBulbMenger = 141, 188 vicsek = 142, 189 // 2.17 190 josKleinianV2 = 143, 191 mandelbulbAtan2Power2 = 144, 192 bristorbrot2 = 145, 193 mandeltorus = 146, // fixed prescale mode2 swapped checkboxes v2.23 194 // 2.18 195 amazingSurfMod3 = 147, 196 // 2.19 197 mandelbulbPower1234 = 148, 198 mengerPolyFold = 149, 199 ifsXY = 150, 200 201 // 152 to 172 reserved for scator 202 scatorPower2Imaginary = 152, // fixed r calc v2.14, change to std r calc v2.21 203 scatorPower2Real = 156, // added V2.15, change to std r calc v2.21 204 scatorPower2 = 173, // added V2.15, change to aux.dist DE v2.21 205 scatorPower2StdR = 174, // added V2.15 206 207 // 2.20 208 riemannSphereHoboldPow4 = 180, 209 riemannSphereHoboldPow8 = 181, 210 mandelbulbKosalos = 182, 211 mandelbulbKosalosV2 = 183, 212 riemannSphereHoboldMulti = 184, 213 mandelbulbLambda = 185, 214 amazingSurfMod4 = 186, 215 // 2.21 216 aboxSphere4d = 187, 217 aboxTetra4d = 188, 218 mengerV2 = 189, 219 mengerV3 = 190, 220 koch = 191, 221 kochV2 = 192, 222 kochV3 = 193, 223 foldCutCube = 194, 224 knotV1 = 195, 225 knotV2 = 196, 226 pseudoKleinianMod3 = 197, 227 mandalayBoxV1 = 198, 228 mandalayBoxV2 = 199, 229 mandalayKIFS = 200, 230 // 2.22 231 sierpinski3dV2 = 201, 232 sierpinski3dV3 = 202, 233 mengerChebyshev = 203, 234 riemannSphereMsltoeM3d = 204, 235 octahedron = 205, 236 aboxMod14 = 206, 237 menger3 = 207, 238 mandelcup = 208, 239 spheretree = 209, 240 // 2.23 241 spheretreeV2 = 210, 242 sierpinski3dV4 = 211, 243 mandeltorusV2 = 212, 244 aexion4dV2 = 213, 245 menger4dMod2 = 214, 246 // 2.24 247 mandelbulbPlusZ = 215, 248 mandelbulbAbs = 216, 249 pseudoKleinianMod4 = 217, 250 msltoeSym3Mod4 = 218, 251 msltoeSym3Mod5 = 219, 252 msltoeSym3Mod6 = 220, 253 amazingSurfKlein = 221, 254 aboxKlein = 222, 255 aboxTetra = 223, 256 amazingSurfKleinV2 = 224, 257 // 2.25 258 josKleinianV3 = 225, 259 aboxMod15 = 226, 260 kochV4 = 227, 261 ifsGen = 228, 262 mandelnest = 229, 263 josKleinianV4 = 230, // still beta 264 pseudoKleinianMod5 = 231, 265 266 // 2.26 267 mandelnestV2 = 232, 268 amazingSurfM3d = 233, 269 pseudoKleinian4d = 234, 270 hypercomplexV2 = 235, 271 mandelbar = 236, 272 boxFoldBulbV4 = 237, 273 mandelbulbQuadrat = 238, 274 amazingIfs = 239, 275 mandelbulbPow2V3 = 240, 276 277 // mandelbulber dIFS 278 dIFSBoxDiagonalV1 = 600, 279 dIFSBoxV1 = 601, 280 dIFSBoxDiagonalV3 = 602, 281 dIFSCylinder = 603, 282 dIFSSphere = 604, 283 dIFSEllipsoid = 605, 284 dIFSTorus = 606, 285 dIFSMenger = 607, 286 dIFSHextgrid2 = 608, 287 dIFSPrism = 609, 288 dIFSMsltoeDonut = 610, 289 dIFSMultiV1 = 611, 290 dIFSAmazingIfs = 612, 291 292 mandelbulbEye = 800, 293 294 transfAddConstant = 1001, 295 transfRotation = 1002, 296 transfScale = 1003, 297 transfScale3d = 1004, 298 transfBoxOffset = 1005, 299 transfSphericalOffset = 1006, 300 transfAddCpixel = 1007, 301 transfAddCpixelAxisSwap = 1008, // fixed V2.09 302 transfBenesiT1 = 1009, 303 transfBenesiT1Mod = 1010, 304 transfBenesiT2 = 1011, 305 transfBenesiT3 = 1012, // covert to analytic v2.20 306 transfBenesiT4 = 1013, // covert to analytic v2.20 307 transfBenesiT5b = 1014, // covert to analytic v2.20 308 transfBenesiMagForward = 1015, 309 transfBenesiMagBackward = 1016, 310 transfBenesiCubeSphere = 1017, // covert to analytic v2.20 311 transfBenesiSphereCube = 1018, // covert to analytic v2.20 312 transfAddCpixelSymmetrical = 1019, 313 transfBoxFold = 1020, 314 transfSphericalFold = 1021, 315 transfZvectorAxisSwap = 1022, 316 transfAbsAddConstant = 1023, 317 transfNegAbsAddConstant = 1024, 318 transfAbsAddTgladFold = 1025, // fixed tweak groupCheck V2.14 319 transfMultipleAngle = 1026, 320 transfRPower = 1027, 321 transfIterationWeight = 1028, // fixed V2.10 322 transfAbsAddMulti = 1029, 323 transfSphericalPwrFold = 1030, 324 transfAddCpixelVaryV1 = 1031, 325 transfScaleVaryV1 = 1032, 326 transfAddConstantVaryV1 = 1033, 327 transfBoxFoldXYZ = 1034, 328 transfAddCpixelCxCyAxisSwap = 1035, // fixed V2.09 329 transfRotationVaryV1 = 1036, 330 transfLinCombineCXYZ = 1037, 331 transfSphericalInvC = 1038, // updated V2.12 332 transfAddConstant4d = 1039, 333 transfBoxFold4d = 1040, 334 transfIterationWeight4d = 1041, // fixed V2.10 335 transfSphericalFold4d = 1042, // updated V2.11 336 transfScale4d = 1043, 337 transfAbsAddConstant4d = 1044, 338 transfAbsAddTgladFold4d = 1045, 339 // v2.08 340 transfSurfFoldMulti = 1046, 341 transfPwr2Polynomial = 1047, 342 transfRotationFoldingPlane = 1048, 343 transfSphericalFoldAbox = 1049, 344 transfSphericalFoldVaryV1 = 1050, 345 transfQuaternionFold = 1051, // changed DE v2.15 346 transfMengerFold = 1052, // fixed v2.15 347 // V2.09 348 transfInvCylindrical = 1053, 349 transfRpow3 = 1054, 350 transfSphericalInv = 1055, // fixed modesRadius1 v2.15 351 transfFoldingTetra3d = 1056, 352 transfBoxFoldVaryV1 = 1057, 353 // 2.10 354 transfSurfBoxFold = 1058, 355 transfOctoFold = 1059, // added aox.r_dz v2.14 356 transfScaleVaryVCL = 1060, 357 transfSphericalFoldVaryVCL = 1061, 358 transfAddExp2Z = 1062, // updated V2.12 359 transfReciprocal3 = 1063, 360 transfRotationFolding = 1064, 361 transfAbsAddConditional = 1065, // scale fixed v2.17 362 transfReciprocal4d = 1066, 363 transfAbsAddConditional4d = 1067, // scale fixed v2.17 364 transfSphericalOffsetVCL = 1068, // fixed v2.14 365 transfRotation4d = 1069, 366 // 2.11 367 transfParabFold = 1070, 368 transfScaleVaryV212 = 1071, // updated, renamed V2.12 369 transfSphericalFoldCHS = 1072, 370 transfSphericalFoldParab = 1073, 371 // 2.12 372 transfScaleVaryMulti = 1074, 373 transfBoxFold4dTglad = 1075, 374 transfSphericalFoldCuboid = 1076, 375 transfSphericalFoldXYZBias = 1077, 376 // 2.13 377 transfAddCpixelRotated = 1078, 378 transfAddConstantMod1 = 1079, 379 // 2.14 380 transfPolyFoldSymXY = 1080, // updated v2.19 381 transfPolyFoldSymMulti = 1081, // updated v2.19 382 // 2.15 383 transfSinOrCos = 1082, 384 transfSinAndCos = 1083, 385 transfSinAndCosMax = 1084, 386 transfBlockify = 1085, 387 transfAddCpixelScator = 1086, 388 transfAddCpixelSinOrCos = 1087, 389 // 2.16 390 transfSurfBoxFoldV2 = 1088, 391 // 2.17 392 transfBoxWrap4d = 1089, 393 transfSphericalInvV2 = 1090, 394 // 2.18 395 transfRotationIterControls = 1091, // fix order of rot v2.20 396 transfClamp4d = 1092, 397 transfAbsAddMulti4d = 1093, 398 transfRotateAboutVec3 = 1094, 399 transfOffsetSCurve4d = 1095, 400 transfGnarl = 1096, 401 transfBoxTiling4d = 1097, 402 // 2.19 403 transfDiagonalFold = 1098, 404 transfPolyFoldAtan = 1099, 405 transfPolyFoldAtan2 = 1100, 406 transfAbsAddConditional2 = 1101, 407 // 2.20 408 transfAddConstantMod2 = 1102, 409 transfAddConstantRotV1 = 1103, 410 transfSurfBoxFoldV24d = 1104, // duplicated number 1089 411 transfScaleOffset = 1105, // fix DE v2.23 412 transfScaleOffsetV2 = 1106, // fix DE v2.23 413 // 2.21 414 transfDEControls = 1107, // pk offset default = 1 415 transfMandalayFoldV1 = 1108, 416 transfMandalayFoldV2 = 1109, 417 transfSinAdd = 1110, 418 transfSphericalFoldV1 = 1111, 419 // 2.22 420 transfRotationChebyshev = 1112, 421 transfDELinearCube = 1113, 422 transfSphericalFoldV2 = 1114, 423 transfBoxTilingV2 = 1115, 424 transfStepXY = 1116, 425 transfAbsRecFoldXY = 1117, 426 // 2.23 427 transfAddNorm = 1118, 428 transfMandalayFold4d = 1119, 429 transfSmooth = 1120, 430 transfSmoothV2 = 1121, 431 transfInitial4d = 1122, 432 transfAddCpixel4d = 1123, 433 transfSphericalFold4dV2 = 1124, 434 // 2.24 435 transfBlockifyV2 = 1125, 436 // 2.25 437 transfPolyFoldAtan2Iter = 1126, 438 transfSinTan = 1127, 439 transfAddConstantMod3 = 1128, 440 441 // 2.26 442 transfRotationM3d = 1129, 443 transfSphericalInvPnorm = 1130, 444 transfSphericalFoldPnorm = 1131, 445 transfSphericalCoordInvs = 1132, 446 transfAddScaleRotate = 1133, 447 transfQuadraticFold4d = 1134, 448 transfAddCpixelInvert = 1135, 449 transfAddCpixelSphereFold = 1136, 450 transfAddCpixelTile = 1137, 451 452 // mandelbulber transfdIFS 453 // 2.20 454 transfDIFSBox = 1600, 455 transfDIFSCylinder = 1601, 456 transfDIFSEllipsoid = 1602, 457 transfDIFSHextgrid2 = 1603, 458 transfDIFSSphere = 1604, 459 transfDIFSTorus = 1605, 460 transfDIFSPrism = 1606, 461 transfDIFSBoxV2 = 1607, 462 transfDIFSCylinderV2 = 1608, 463 transfDIFSBoxV3 = 1609, 464 transfDIFSTorusV2 = 1610, 465 transfDIFSTorusV3 = 1611, 466 transfDIFSPrismV2 = 1612, 467 transfDIFSGrid = 1613, 468 transfDIFSGridV2 = 1614, 469 // 2.21 470 transfDIFSTorusGrid = 1615, 471 // 2.22 472 transfDIFSHexprism = 1616, 473 // 2.23 474 transfDIFSPolyhedra = 1617, 475 transfDIFSPolyhedraV2 = 1618, 476 // 2.25 477 transfDIFSGearV1 = 1619, 478 transfDIFSGridV3 = 1620, 479 transfDIFSClipPlane = 1621, // still beta 480 transfDIFSDiamond = 1622, 481 // 2.26 482 transfDIFSSpring = 1623, 483 transfDIFSAmazingIfs = 1624, 484 transfDIFSHexprismV2 = 1625, 485 transfDIFSTriGrid = 1626, 486 487 // hybrid color 488 transfHybridColor = 2000, 489 transfHybridColor2 = 2001, 490 transfDIFSHybridColor = 2002, 491 492 testing = 2100, 493 testing4d = 2101, 494 testingLog = 2103, 495 testingTransform = 2104, 496 testingTransform2 = 2105, 497 498 custom = 10000, 499 }; 500 } 501 502 #endif /* MANDELBULBER2_FORMULA_DEFINITION_ALL_FRACTAL_LIST_ENUMS_HPP_ */ 503