/* * DANS UN LIEU INCONNU * * essai sur la vision interieur d'un batiment * =========================================== * * les elements rudimentaires qui vont meubler * l'espace EXterieur, et le rendre plus vrai. * */ /* ====================================================== */ #declare Sculpture_0_a = object { #local A = 0.30; #local B = 2.53; #local C = 0.47; difference { box { <-A, 0, -C>, } #local Epp = 0.07; #local A2 = A - Epp; #local B2 = B - Epp; #local C2 = C - Epp; box { <-A2, Epp, -C2>, } #local RX = 30 * sin(NormClock*34); #local RZ = 30 * cos(NormClock*31); box { <-8, -0.08, -8>, <8, 0.08, 8> rotate <-12, 0, 17> translate y*B*0.777 } #local RX = 35 * cos(NormClock*23); #local RZ = 35 * sin(NormClock*27); box { <-8, -0.08, -8>, <8, 0.08, 8> rotate translate y*B*0.329 } } texture { TURQ_BOZO scale 24 } #undef A #undef B #undef C } #local Sculpture_0_decoupe = object { sphere { 0, 0.43 } scale <1, 1, 0.28> } #declare Sculpture_0_base = object { #local A = H_stand / 2; #local B = H_stand; #local C = 0.97; difference { box { <-A, 0, -C>, } object { Sculpture_0_decoupe translate <0, A, -C> } object { Sculpture_0_decoupe translate <0, A, C> } } texture { T_Stone20 scale 1.65 } } #declare Sculpture_0 = object { union { object { Sculpture_0_a rotate <0.8, 1, 0.9> translate y*H_stand } object { Sculpture_0_base } } } /* ====================================================== */ #declare R_verriere = R_v_zarb + 0.60; #declare S_tube = 0.070; #declare Ferme_Verriere = object { union { intersection { torus { R_verriere, S_tube rotate z*90 } #local D = R_verriere+1; box { <-0.2, 0, -D>, <0.2, D, D> } } cylinder { <0, 0, -R_verriere>, <0, 0, R_verriere>, 0.08 } cylinder { <0, 0, 0>, <0, R_verriere, 0>, 0.08 } #local B = 0.106; #local C = 0.500; box { <-B, -C, -B>, translate -z*R_verriere } box { <-B, -C, -B>, translate z*R_verriere } cylinder { <-B, 0, 0>, , B*2.1 } #undef B } } #declare Verriere_0 = object { union { #local L = Sz_Z - 2.20; #for (foo, 2.60, L, 2.000) object { Ferme_Verriere translate -x*foo } object { Ferme_Verriere translate x*foo } #end cylinder { <-L, 0, 0>, , S_tube } cylinder { <-L, R_verriere, 0>, , S_tube } } texture { Rust scale 2.60 } } /* ====================================================== */ /* * Un fronton pour l'entrée latérale du premier batiment * nouveau 9 mai 2022 */ #local HF0 = 3.95; #local LF0 = 3.80; /* demi largeur */ #local EF0 = 1.15; /* epaisseur */ #declare Fronton_0_a = object { difference { box { <0, 0, -LF0>, <-EF0, HF0, LF0> } cylinder { -x*2, x*2, 1.1 scale <1, 1, 2.45> translate <0, HF0, -LF0> } cylinder { -x*2, x*2, 1.1 scale <1, 1, 2.45> translate <0, HF0, LF0> } } texture { T_Stone28 scale 4.97 } } #declare Fronton_0_b = object { #local Hm = HF0 * 1.10; merge { cylinder { 0, y*Hm, 0.21 } sphere { 0, 0.21 scale <1, 0.32, 1> translate y*Hm } } texture { T_Stone37 scale 1.85 } } #declare Fronton_0 = object { union { object { Fronton_0_a } object { Fronton_0_b translate <-0.18, 0, -LF0> } object { Fronton_0_b translate <-0.18, 0, LF0> } } } #undef HF0 #undef LF0 /* ====================================================== */ #declare Colonne_Portique = object { merge { box { <-0.30, 4.05, -0.32>, <0.30, 4.20, 0.32> } cylinder { 0, <0, 4.20, 0>, 0.25 } cylinder { 0, <0, 0.20, 0>, 0.57 } sphere { 0, 0.57 scale <1, 0.29, 1> translate 0.20*y } } texture { ROSE_BIZARRE scale 0.09 } } #declare Haut_Portique_a = object { #local SX = 6.66; // demi longueur de la poutre #local SZ = 0.48; difference { /* * une grande poutre avec des découpes en dessous */ box { <-SX, 0, -SZ>, < SX, 0.50, SZ> } cylinder { <-8, 0, -SZ>, <8, 0, -SZ>, 0.10 scale <1, 1.5, 1> } cylinder { <-8, 0, SZ>, <8, 0, SZ>, 0.10 } } texture { ROSE_BIZARRE scale 5.5 } } #declare Haut_Portique_b = object { #local RB = 0.85; #local HP = 0.90; #local DZ = 0.12; intersection { merge { cylinder { <0, HP, -DZ>, <0, HP, DZ>, RB } sphere { 0, RB scale <1, 1, 0.3> translate <0, HP, -DZ> } sphere { 0, RB scale <1, 1, 0.3> translate <0, HP, DZ> } } box { <-2, 0.20, -1>, <2, 2, 1> } } texture { ROSE_BIZARRE scale 4.1 } #undef RB #undef DZ #undef HP } #declare Haut_Portique = object { merge { object { Haut_Portique_a } object { Haut_Portique_b } } } #declare Portique_A = object { union { object { Colonne_Portique translate -6*x } object { Colonne_Portique translate -3*x } object { Colonne_Portique translate 6*x } object { Colonne_Portique translate 3*x } object { Haut_Portique translate 4.20*y } } } /* ====================================================== */ #declare Quadratic_One = object { lathe { // linear_spline quadratic_spline 8, <2.000, 0.00>, <1.666, 0.08>, <1, 1>, <3 + cos(NormClock*PI*20), 2>, <1.5-NormClock, 3>, <3+1.15*sin(NormClock*PI*18), 4>, <1+1.15*Cos_010(NormClock*2), 5> <3*Cos_010(NormClock)+0.02, 6+(Cos_010(NormClock)*2)> pigment { rgb <0.25, 0.25, 0.60> } finish { ambient .35 phong .65 } } scale <0.2, 0.42, 0.2> } #declare Le_Quadratic_One = object { union { object { Quadratic_One translate H_base*y } object { Base_Machins } } } /* ====================================================== */ /* from http://www.asahi-net.or.jp/~nj2t-hg/ilphowte.htm */ #declare LeefTexture = texture { pigment {color srgb <0.6, 0.7, 0.2>} normal {bozo 2 scale 0.15 } finish {ambient 0.2 diffuse 0.6 } } #declare Leef = object { #local AyA = -7.0 + (cos(clock*0.01) * 0.80); #local AxC = 1.5 + abs(sin(NormClock*5)); #local ByB = 0.80 + (NormClock * 0.40); #local CyC = 1.60 + (cos(NormClock*8) * 0.90); #local DzD = (rand(RND)+rand(RND))*0.6; bicubic_patch { type 1 flatness 0.01 u_steps 4 v_steps 4 // | A | B | C | D <0, -7.2, -0.2>, <1, 1.7, -1.0>, < AxC, 2.3, -1.2>, < 3, 1.5, -0.03>, <0, -7.0, -0.1>, <1, ByB, -0.3>, <2, 2.2, -0.4>, < 3.2, 1.6, -0.01>, <0, -7.0, 0.1>, <1, 1.4, 0.3>, <2, CyC, 0.4>, < 3.1, 1.5, 0.01>, <0, -6.2, 0.2>, <1, 1.6, 1.0>, <2, 2.4, 1.2>, < 3, 1.4, DzD > } texture { LeefTexture } scale 0.42 } #declare Four_Leef_socle = object { #local C = 1.00; box { <-C, 0, -C>, } #undef C texture { MON_VERT_INDUS scale 1.28 } } #declare Four_Leef_feuiles = object { #local T = <0.50, 0.20, 0>; union { object { Leef translate T rotate < 0, 0, 0 > } object { Leef translate T rotate < 0, 90, 0 > } object { Leef translate T rotate < 0, 180, 0 > } object { Leef translate T rotate < 0, 270, 0 > } } } #declare Four_Leef = object { union { object { Four_Leef_feuiles translate y*3.10 } object { Four_Leef_socle } } } /* ====================================================== */