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-16 07:30:03 +11:00
|
|
|
sphere { 0, RA*1.098 scale <1, 0.62, 3.03> 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-16 07:30:03 +11:00
|
|
|
#local E = 0.38;
|
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-16 07:30:03 +11:00
|
|
|
#local R_Tube = 0.20;
|
|
|
|
#local L_Tube = 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 {
|
2025-01-16 07:30:03 +11:00
|
|
|
#local E = R_Tube * 0.0910;
|
|
|
|
#local R = 0.01;
|
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 {
|
2025-01-16 07:30:03 +11:00
|
|
|
sphere { 0, R_Tube*0.39 }
|
|
|
|
sphere { 0, R_Tube*0.37 }
|
|
|
|
cylinder { <-1, 0, -1>, < 1, 0, 1>, R_Tube*0.21 }
|
|
|
|
cylinder { < 1, 0, -1>, <-1, 0, 1>, R_Tube*0.21 }
|
2025-01-12 12:33:39 +11:00
|
|
|
}
|
|
|
|
scale <1, 1, 4.4>
|
2025-01-16 07:30:03 +11:00
|
|
|
texture { Shadow_Clouds scale 0.56 }
|
2025-01-05 04:56:37 +11:00
|
|
|
}
|
|
|
|
|
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-16 07:30:03 +11:00
|
|
|
cylinder { z*L_Tube*1.5, -z*L_Tube, R_Tube }
|
|
|
|
/* cette sphere devrait devenir
|
|
|
|
un vrai cockpit ? */
|
|
|
|
sphere { z*L_Tube*1.18, R_Tube*0.72
|
|
|
|
scale <1, 0.73, 1>
|
|
|
|
translate y*R_Tube*0.87}
|
2025-01-05 10:18:06 +11:00
|
|
|
}
|
2025-01-16 07:30:03 +11:00
|
|
|
cylinder { z*4, -z*4, R_Tube*0.95 }
|
2025-01-05 10:18:06 +11:00
|
|
|
}
|
|
|
|
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
|
|
|
|
|