HexaCone/hexabenz.inc

129 lines
2.3 KiB
PHP
Raw Normal View History

2025-01-05 04:56:37 +11:00
/*
2025-01-14 01:26:12 +11:00
* H E X A B E N Z
2025-01-05 04:56:37 +11:00
*/
// =======================================================
2025-01-12 12:33:39 +11:00
#macro Benz_Cone_Base () // = object
// {
2025-01-05 04:56:37 +11:00
union {
2025-01-14 01:26:12 +11:00
#local RA = R_basecone;
2025-01-12 12:33:39 +11:00
#local RB = 0.001;
2025-01-14 01:26:12 +11:00
cone { 0, RA, y*0.89, 0.0001 }
2025-01-12 12:33:39 +11:00
sphere { 0, RA*1.098 scale <1, 0.62, 3.1> translate -0.02*y }
2025-01-05 04:56:37 +11:00
}
2025-01-12 12:33:39 +11:00
// }
#end
2025-01-07 02:05:57 +11:00
#macro Benz_Cones () // = object
// {
2025-01-05 04:56:37 +11:00
union {
#for (foo, 0, 360, 60)
2025-01-05 10:18:06 +11:00
#local E = 0.40;
2025-01-05 04:56:37 +11:00
#local Tx = E * sin(radians(foo));
#local Ty = E * cos(radians(foo));
2025-01-12 12:33:39 +11:00
object {
Benz_Cone_Base ()
2025-01-07 02:05:57 +11:00
#if ( rand(Rng1) < 0.5 )
2025-01-12 12:33:39 +11:00
texture { T_Silver_2C scale 11.50 }
2025-01-07 02:05:57 +11:00
#else
texture { T_Brass_2C scale 13.50 }
#end
2025-01-05 04:56:37 +11:00
rotate -z*foo
translate <Tx, Ty, 0>
}
#end
}
2025-01-07 02:05:57 +11:00
// }
#end
2025-01-05 04:56:37 +11:00
// ------------------------------------------------------
2025-01-12 12:33:39 +11:00
#local RT = 0.21;
#local LT = 0.54;
2025-01-05 10:18:06 +11:00
#declare Benz_Tubules = object
2025-01-05 04:56:37 +11:00
{
2025-01-12 12:33:39 +11:00
merge {
#local E = 0.167;
2025-01-05 10:18:06 +11:00
#local R = 0.010;
2025-01-05 04:56:37 +11:00
#for (foo, 0, 360, 20)
2025-01-05 10:18:06 +11:00
#local Tx = E * sin(radians(foo));
#local Ty = E * cos(radians(foo));
2025-01-12 12:33:39 +11:00
#local Dza = z * 0.20;
#local Dzb = z * 0.90;
cylinder { -Dza, Dzb, R translate <Tx, Ty, 0> }
sphere { -Dza, R*1.8 translate <Tx, Ty, 0> }
sphere { Dzb, R*1.8 translate <Tx, Ty, 0> }
2025-01-05 04:56:37 +11:00
#end
}
2025-01-07 02:05:57 +11:00
#if ( rand(Rng1) < 0.333)
texture { Orange_Glass }
#else
texture { Yellow_Glass }
#end
2025-01-05 10:18:06 +11:00
}
#declare Benz_Fuseau = object
{
2025-01-12 12:33:39 +11:00
difference {
sphere { 0, RT*0.39 }
sphere { 0, RT*0.37 }
cylinder { <-1, 0, -1>, < 1, 0, 1>, RT*0.21 }
cylinder { < 1, 0, -1>, <-1, 0, 1>, RT*0.21 }
}
scale <1, 1, 4.4>
2025-01-05 04:56:37 +11:00
texture { Gold_Nugget scale 0.56 }
}
2025-01-12 12:33:39 +11:00
#declare Benz_Fuseau_Flash = object
{
union {
object { Benz_Fuseau }
light_source { 0,
rgb <rand(Rng2), rand(Rng2), rand(Rng2)>
fade_distance 0.96
fade_power 1.95
}
}
rotate -z*clock*6
}
2025-01-05 10:18:06 +11:00
#declare Benz_Cylindre = object
{
difference {
union {
2025-01-12 12:33:39 +11:00
cylinder { z*LT*1.5, -z*LT, RT }
sphere { z*LT*1.4, RT*0.72 scale <1, 0.73, 1>
2025-01-14 01:26:12 +11:00
translate y*RT*0.77}
2025-01-05 10:18:06 +11:00
}
cylinder { z*4, -z*4, RT*0.95 }
}
texture { Soft_Silver scale 6.0 }
}
2025-01-12 12:33:39 +11:00
#macro Benz_Tube ()
// #declare Benz_Tube = object
// {
2025-01-05 10:18:06 +11:00
union {
object { Benz_Tubules }
2025-01-12 12:33:39 +11:00
object { Benz_Fuseau_Flash translate z*0.40 }
2025-01-05 10:18:06 +11:00
object { Benz_Cylindre }
}
2025-01-12 12:33:39 +11:00
// }
#end
2025-01-05 10:18:06 +11:00
2025-01-05 04:56:37 +11:00
// ------------------------------------------------------
2025-01-12 12:33:39 +11:00
#macro HexaBenz ()
// #declare HexaBenz = object
// {
2025-01-05 04:56:37 +11:00
union {
2025-01-14 01:26:12 +11:00
#local Rk = (rand(Rng1)-0.5) * 1024;
2025-01-07 02:05:57 +11:00
object { Benz_Cones () rotate z*NormClock*Rk}
2025-01-12 12:33:39 +11:00
object { Benz_Tube () }
2025-01-05 04:56:37 +11:00
}
2025-01-12 12:33:39 +11:00
// }
#end