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