#include "front_wall_fixed_section.inc" #include "front_wall_pillar.inc" #include "front_wall_car_gate.inc" #include "front_wall_grille.inc" #include "front_wall_foundation.inc" # macro front_wall( gates_open, show_grilles, show_ground, show_new, tag ) // The remodeled front wall of the Rua Boaretto 113 house // {gates_open} if true, show gates open by various amounts. // {show_grilles} if false, omits grilles, show only masonry. // {show_new} if true, highlights the new parts. // {tag} tag for part identification. // The axes are X towards the street, Y along the street, Z up. // The words "back", "front", "left", "right" mean "-X", "+X", "-Y", "+Y", // as seen from someone in the street looking towards the house. // The object has the origin at the front left corner of the first wall section, // sidewalk level. The front wall extends mostly in the -X and +Y directions, but // the foundations extend into negative Z. // General dimensions of items. The Z dim is measured from sidewalk level. // Foundations are excluded. #local fw_grille_sx = 25; // X thickness of grilles. #local fw_wall_dim = < 210, 10, 2130> ; // Fixed wall sections (Y dim is placeholder). #local fw_pillar_dim = < 320, 320, 2130 >; // Pillars. #local fw_gate_dim = < fw_grille_sx, 10, 2080 >; // Gates (Y dim is placeholder). #local fw_pillar_dx = fw_wall_dim.x - fw_pillar_dim.x; // X coord of back of pillars. #local fw_grille_dx = -90; // X coord of front of gates and wall grilles. #local fw_grille_dz = 660; // Z coord of bottom of grille in fixed wall sections. #local fw_gate_dz = 50; // Z coord of bottom of grille in gates. #local fw_found_bot_z = -400; // Bottom Z coord of foundation beam. #local fw_found_top_z = -200; // Top Z coord of foundation beam. #local fw_found_sz = fw_found_top_z - fw_found_bot_z; // Z extent of foundation. // Fixed wall section 0 (old): #local fw_s1_tag = concat(tag, ".s1") #local fw_s1_dim = < fw_wall_dim.x, 220, fw_wall_dim.z >; #local fw_s1_ay = 0; // Width of plain section before grille. #local fw_s1_by = 220; // Width of plain section after grille. #local fw_s1_dy = 0; // Left Y-coordinate. #local fw_s1 = object{ front_wall_fixed_section( fw_s1_tag, fw_s1_dim, fw_s1_ay, fw_s1_by, false, show_grilles, fw_grille_sx, fw_grille_dx, fw_grille_dz, fw_found_top_z ) } // Pillar 0 (old): #local fw_p0_tag = concat(tag, ".p0") #local fw_p0_dy = fw_s1_dy + fw_s1_dim.y; #local fw_p0 = object{ front_wall_pillar( fw_p0_tag, fw_pillar_dim, fw_found_top_z, false ) } // Car gate 0 (old): #local fw_g0_tag = concat(tag, ".g0") #local fw_g0_dim = < fw_gate_dim.x, 2520, fw_gate_dim.z >; #local fw_g0_dy = fw_p0_dy + fw_pillar_dim.y; #local fw_g0 = object{ front_wall_car_gate( fw_g0_tag, fw_g0_dim, false, false, gates_open ) } // Pillar 1 (reformed): #local fw_p1_tag = concat(tag, ".p1") #local fw_p1_dy = fw_g0_dy + fw_g0_dim.y; #local fw_p1 = object{ front_wall_pillar( fw_p1_tag, fw_pillar_dim, fw_found_top_z, show_new ) } // Car gate 1 (new): #local fw_g1_tag = concat(tag, ".g1") #local fw_g1_dim = < fw_gate_dim.x, 2500, fw_gate_dim.z >; #local fw_g1_dy = fw_p1_dy + fw_pillar_dim.y; #local fw_g1 = object{ front_wall_car_gate( fw_g1_tag, fw_g1_dim, true, show_new, gates_open ) } // Pillar 2 (reformed): #local fw_p2_tag = concat(tag, ".p2") #local fw_p2_dy = fw_g1_dy + fw_g1_dim.y; #local fw_p2 = object{ front_wall_pillar( fw_p2_tag, fw_pillar_dim, fw_found_top_z, show_new ) } // Car gate 2 (old): #local fw_g2_tag = concat(tag, ".g2") #local fw_g2_dim = < fw_gate_dim.x, 2560, fw_gate_dim.z >; #local fw_g2_dy = fw_p2_dy + fw_pillar_dim.y; #local fw_g2 = object{ front_wall_car_gate( fw_g2_tag, fw_g2_dim, false, show_new, gates_open ) } // Pillar 3 (old): #local fw_p3_tag = concat(tag, ".p3") #local fw_p3_dy = fw_g2_dy + fw_g2_dim.y; #local fw_p3 = object{ front_wall_pillar( fw_p3_tag, fw_pillar_dim, fw_found_top_z, false ) } #debug concat("!! fw_p3_dy = ", str(fw_p3_dy, 1, 0), "\n") // Fixed wall section 2 (old): #local fw_s2_tag = concat(tag, ".s2") #local fw_s2_dim = < fw_wall_dim.x, 1810, fw_wall_dim.z >; #local fw_s2_ay = 0; // Width of plain section before grille. #local fw_s2_by = 0; // Width of plain section after grille. #local fw_s2_dy = fw_p3_dy + fw_pillar_dim.y; // Left Y-coordinate. #local fw_s2 = object{ front_wall_fixed_section( fw_s2_tag, fw_s2_dim, fw_s2_ay, fw_s2_by, false, true, fw_grille_sx, fw_grille_dx, fw_grille_dz, fw_found_top_z ) } // Pillar 4 (old): #local fw_p4_tag = concat(tag, ".p4") #local fw_p4_dy = fw_s2_dy + fw_s2_dim.y; #local fw_p4 = object{ front_wall_pillar( fw_p4_tag, fw_pillar_dim, fw_found_top_z, false ) } // Fixed wall section 3 (old): #local fw_s3_tag = concat(tag, ".s3") #local fw_s3_dim = < fw_wall_dim.x, 1810, fw_wall_dim.z >; #local fw_s3_ay = 0; // Width of plain section before grille. #local fw_s3_by = 0; // Width of plain section after grille. #local fw_s3_dy = fw_p4_dy + fw_pillar_dim.y; // Left Y-coordinate. #local fw_s3 = object{ front_wall_fixed_section( fw_s3_tag, fw_s3_dim, fw_s3_ay, fw_s3_by, false, true, fw_grille_sx, fw_grille_dx, fw_grille_dz, fw_found_top_z ) } // Pillar 5 (old): #local fw_p5_tag = concat(tag, ".p4") #local fw_p5_dy = fw_s3_dy + fw_s3_dim.y; #local fw_p5 = object{ front_wall_pillar( fw_p5_tag, fw_pillar_dim, fw_found_top_z, false ) } // Fixed wall section 4 (old): #local fw_s4_tag = concat(tag, ".s3") #local fw_s4_dim = < fw_wall_dim.x, 1780, fw_wall_dim.z >; #local fw_s4_ay = 1780; // Width of plain section before grille. #local fw_s4_by = 0; // Width of plain section after grille. #local fw_s4_dy = fw_p5_dy + fw_pillar_dim.y; // Left Y-coordinate. #local fw_s4 = object{ front_wall_fixed_section( fw_s4_tag, fw_s4_dim, fw_s4_ay, fw_s4_by, false, true, fw_grille_sx, fw_grille_dx, fw_grille_dz, fw_found_top_z ) } // Total width of house: #local fw_tt_dy = fw_s4_dy + fw_s4_dim.y; #debug concat("!! total width = ", str(fw_tt_dy, 1, 0), "\n") // Foundation beam 0 (old): #local fw_f0_tag = concat(tag, ".f0") #local fw_f0_dy = 0; #local fw_f0_sy = fw_p1_dy - fw_f0_dy; // Y extent of foundation. #local fw_f0_dim = < fw_pillar_dim.x, fw_f0_sy, fw_found_sz >; #local fw_f0 = object{ front_wall_foundation( fw_f0_dim, false ) } // Foundation beam 1 (new): #local fw_f1_tag = concat(tag, ".f1") #local fw_f1_dy = fw_g1_dy; #local fw_f1_sy = fw_g2_dy - fw_p1_dy; // Y extent of foundation. #local fw_f1_dim = < fw_pillar_dim.x, fw_f1_sy, fw_found_sz >; #local fw_f1 = object{ front_wall_foundation( fw_f1_dim, show_new ) } // Foundation beam 2 (old): #local fw_f2_tag = concat(tag, ".f2") #local fw_f2_dy = fw_g2_dy; #local fw_f2_sy = fw_tt_dy - fw_g2_dy; // Y extent of foundation. #local fw_f2_dim = < fw_pillar_dim.x, fw_f2_sy, fw_found_sz >; #local fw_f2 = object{ front_wall_foundation( fw_f2_dim, false ) } #local fw_gr_spc = 10; #local fw_ground = box{ < - fw_pillar_dim.x - fw_gr_spc, 0 - fw_gr_spc, fw_found_bot_z - fw_gr_spc > - eps3, < 0 + fw_gr_spc, fw_tt_dy + fw_gr_spc, 00.0 > + eps3 texture{ tx_ground } } #local fw = union{ // Pillars: object{ fw_p0 translate fw_p0_dy*y } object{ fw_p1 translate fw_p1_dy*y } object{ fw_p2 translate fw_p2_dy*y } object{ fw_p3 translate fw_p3_dy*y } object{ fw_p4 translate fw_p4_dy*y } object{ fw_p5 translate fw_p5_dy*y } #if (show_grilles) // Car gates: object{ fw_g0 translate fw_g0_dy*y + fw_grille_dx*x } object{ fw_g1 translate fw_g1_dy*y + fw_grille_dx*x } object{ fw_g2 translate fw_g2_dy*y + fw_grille_dx*x } #end // Fixed wall sections: object{ fw_s1 translate fw_s1_dy*y } object{ fw_s2 translate fw_s2_dy*y } object{ fw_s3 translate fw_s3_dy*y } object{ fw_s4 translate fw_s4_dy*y } // Foundations: object{ fw_f0 translate fw_f0_dy*y + fw_found_bot_z*z } object{ fw_f1 translate fw_f1_dy*y + fw_found_bot_z*z } object{ fw_f2 translate fw_f2_dy*y + fw_found_bot_z*z } #if (show_ground) object{ fw_ground } #end } fw #end