HexaCone/trident.inc
2025-03-31 03:55:29 +02:00

89 lines
1.9 KiB
PHP

#declare Trid_length = 2;
// ------------------------------------------------------
#declare Trid_cone = object
{
cone { 0, R_basecone, y*0.89, 0.0001 }
}
#macro Trid_A_cone ()
difference {
object { Trid_cone }
object { Trid_cone translate -y*0.001 }
#local Foo = rand(Rng1);
#if (Foo < 0.25)
texture { T_Brass_2C }
#elseif (Foo < 0.50)
texture { T_Planete_B }
#elseif (Foo < 0.75)
texture { T_Chrome_3A }
#else
texture { Flashy }
#end // else
#undef Foo
}
#end // macro
// ------------------------------------------------------
#macro Trid_A_head ()
union {
#for (A, 0, 360, 120)
#local E = 0.23;
#local Tx = E * sin(radians(A));
#local Tz = E * cos(radians(A));
object { Trid_A_cone () translate <Tx*2, 0, Tz> }
#end // for
#undef Tx
#undef Tz
}
#end
// ------------------------------------------------------
#macro Trid_A_body ()
#local L = Trid_length / 2;
merge {
cylinder { <0, -L, 0>, <0, L, 0>, 0.065 }
sphere { 0, 0.065 scale <1, 6, 1> translate y*L }
#if (rand(Rng1) < 0.50)
texture { Lightning2 }
#else
texture { New_Penny }
#end
}
#undef L
#end // macro
// ------------------------------------------------------
#macro Trid_A_ailette ()
union {
#local E = 0.49;
object { Trid_A_cone () scale 0.7
translate <E, -0.05, 0> }
cylinder { 0, x*E, 0.012
scale <1, 4, 1> texture { T_Silver_3A } }
#undef E
}
#end
// ------------------------------------------------------
#macro Trid_A_tail ()
union {
#for (A, 0, 360, 120)
object { Trid_A_ailette () rotate (A+270)*y }
#end // for
}
#end
// ------------------------------------------------------
// ------------------------------------------------------
#macro Trident_A ()
union {
object { Trid_A_head () translate y*0.85 }
object { Trid_A_body () }
object { Trid_A_tail () translate -y*0.6 }
// object { Repere translate <0.1, 0, 0.1> }
}
#end
// ------------------------------------------------------