107 lines
2.6 KiB
PHP
107 lines
2.6 KiB
PHP
/*
|
|
* H E X A C O N E - A R C H I T E C T U R E
|
|
* nouveau projet du Thu Dec 5 11:37:05 AM UTC 2024
|
|
*
|
|
* file created on Sat Jan 31 07:07:28 AM UTC 2026
|
|
*/
|
|
|
|
// ===========================================================
|
|
#declare SzC = 0.3;
|
|
#macro Base_Col_A ()
|
|
merge {
|
|
box { <-SzC, 0, -SzC>, <SzC, 0.222, SzC> }
|
|
#local B = SzC * 0.7;
|
|
box { <-B, 0, -B>, <B, 0.333, B> }
|
|
#local R = rand(Rng1);
|
|
#if (R < 0.33)
|
|
texture { T_Stone25 }
|
|
#else
|
|
texture { T_Stone26 }
|
|
#end
|
|
}
|
|
#end
|
|
// -----------------------------------------------------------
|
|
#macro Haut_Col_A ()
|
|
difference {
|
|
#local S = SzC * 0.87;
|
|
box { <-S, 0, -S>, <S, 0.222, S> }
|
|
#local E = SzC + 1;
|
|
#local R = S * 0.42;
|
|
cylinder { <-E, 0, S>, <E, 0, S>, R }
|
|
cylinder { <-E, 0, -S>, <E, 0, -S>, R }
|
|
#local R = rand(Rng1);
|
|
#if (R < 0.33)
|
|
texture { T_Stone27 }
|
|
#else
|
|
texture { T_Stone28 }
|
|
#end
|
|
}
|
|
#end
|
|
// -----------------------------------------------------------
|
|
#macro Fut_Col_A (H)
|
|
object {
|
|
cylinder { 0, H*y, 0.15 }
|
|
#local R = rand(Rng1);
|
|
#if (R < 0.43)
|
|
texture { T_Stone29 }
|
|
#else
|
|
texture { T_Stone34 scale 3 }
|
|
#end
|
|
}
|
|
#end
|
|
// -----------------------------------------------------------
|
|
#macro Colonne_A (H)
|
|
union {
|
|
object { Haut_Col_A () translate y*H }
|
|
object { Fut_Col_A (H) }
|
|
object { Base_Col_A () }
|
|
}
|
|
#end
|
|
// ===========================================================
|
|
// bon, on a un pilier/colonne donc de quoi poser
|
|
// dessus un linteau pour avoir un genre de portique
|
|
// pour remplacer les arches de l'approche.
|
|
#macro Linteau_A (Lg, Epp)
|
|
merge {
|
|
#local L = Lg + 0.42;
|
|
#local K = 0.28;
|
|
box { <-L, 0, -K>, <L, Epp, K> }
|
|
cylinder { <0, Epp, -K*0.9>, <0, Epp, K*0.9>, K }
|
|
#local R = rand(Rng1);
|
|
#if (R < 0.63)
|
|
texture { T_Grnt6 scale 4 }
|
|
#else
|
|
texture { T_Stone34 scale 3+rand(Rng2) }
|
|
#end
|
|
}
|
|
#end // macro
|
|
// -----------------------------------------------------------
|
|
#macro Linteau_B (Lg, Epp)
|
|
merge {
|
|
#local L = Lg + 0.20;
|
|
#local K = 0.36;
|
|
box { <-L, 0, -K>, <L, Epp, K> }
|
|
cylinder { <0, Epp, -K*0.9>, <0, Epp, K*0.9>, K }
|
|
texture { T_WIP_dents rotate y*(rand(Rng1)*77) }
|
|
}
|
|
#end // macro
|
|
|
|
// ===========================================================
|
|
#macro Portique_A ()
|
|
union {
|
|
#local Larg = 2.8;
|
|
#local Haut = 3.4;
|
|
object { Colonne_A (Haut) translate -x*Larg }
|
|
object { Colonne_A (Haut) translate x*Larg }
|
|
#local R = rand(Rng1);
|
|
#if (R < 0.80)
|
|
object { Linteau_A (Larg,0.26) translate y*(Haut+0.20) }
|
|
#else
|
|
object { Linteau_B (Larg,0.28) translate y*(Haut+0.20) }
|
|
#end
|
|
}
|
|
#end // macro
|
|
// ===========================================================
|
|
|
|
|