// Last edited on 2011-05-11 19:31:45 by stolfilocal // Attempt to reproduce the view of reactor #3 // in posters/fukushima/blueprint/foto/drone/hcrop/reactor3-Z-3.png // Should use "un3_*" but "un4_*" is the same as far as we have seen. global_settings{ max_trace_level 10 } #include "generic_fig.inc" #include "un4_macros.inc" #local view = 0; // We choose {cam_dir,cam_dst,cam_upp} #local cam_mag = 0.00; // We choose {cam_ctr,cam_rad}. #local show_building = 0; // True to show the building. #local show_crane = 0; // True to show the fallen crane and winch. #local show_grids = 1; // True to show the reference grid. // Coordinates of service floor (extended to outer wall surfs): #local sf_Z = un4_service_floor_Z; // Z of service floor. #local sf_lo_X = un4_building_upp_lo_X; // Min X of service floor. #local sf_hi_X = un4_building_upp_hi_X; // Max X of service floor. #local sf_lo_Y = un4_building_lo_Y; // Min Y of service floor. #local sf_hi_Y = un4_building_hi_Y; // Max Y of service floor. // Coordinates of storey 3 floor (extended to outer walls, incl. terrace): #local mf_Z = un4_building_mid_hi_Z; // Z of terrace lip. // Coordinates of ground floor (extended to outer basement walls): #local gf_Z = un4_storey_1_lo_Z; // Z of ground floor. // Corners and center of service floor: #local sf_SW_crn = < sf_lo_X, sf_lo_Y, sf_Z >; #local sf_SE_crn = < sf_hi_X, sf_lo_Y, sf_Z >; #local sf_NW_crn = < sf_lo_X, sf_hi_Y, sf_Z >; #local sf_NE_crn = < sf_hi_X, sf_hi_Y, sf_Z >; #local sf_ctr_X = (sf_lo_X + sf_hi_X)/2; // X of service floor center. #local sf_ctr_Y = (sf_lo_Y + sf_hi_Y)/2; // Y of service floor center. #local sf_ctr = < sf_ctr_X, sf_ctr_Y, sf_Z >; // Service floor center. // To be improved ---------------------------------------------------------------------- #declare cam_ctr = sf_ctr + < +1.900, +0.600, 00.000 >; #declare cam_rad = 44.800; #declare cam_dir = < +0.113, -0.169, +1.000 >; #declare cam_dst = 360.000; #declare cam_upp = < -1.000, 00.033, 00.000 >; // ---------------------------------------------------------------------- #local cut_Z = sf_Z + 0.003; // #local cut_Z = sf_Z - 2.500; #local CZ = object{ cutter_not_Z() translate cut_Z*z texture{ tx_broken } } #local CN = object{ cutter_keep_all() } #local cr_rt_Z = un4_crane_rel_top_Z; // Z from crane wheel bot to top crane surf. #local cr_rb_Z = un4_crane_rel_bot_Z; // Z from crane wheel bot to bottom crane surf. #local cr_sz_Z = cr_rt_Z - cr_rb_Z; // From bot surf to top surf of crane. #local cr_rot = +4*z; // Rotation of crane frame. #local cr_pos = sf_ctr - cr_rb_Z*z; // Crane displacement. #local wn_rot = -3*z; // Rotation of winch box. #local wn_rps = < 0.000, 0.000, 0.000 >; // XY displacement of winch box from upp ctr. #local wn_pos = sf_ctr + wn_rps + cr_sz_Z*z; // Winch displacement. #local dot1 = sphere{ <0,0,0>, 0.350 texture{ tx_phosphor_magenta } } #local pixel_size = cam_rad/vlength(); #local grid_step = 1.000; // Grid step. #local grid_R = 0.667*pixel_size; // Grid thickness. #local OB = union { #if (show_building) object{ un4_whole(CZ,CN,CN,CN,0,0,0,0,0) } #end #if (show_crane) object{ un4_crane_platform() rotate cr_rot translate cr_pos } object{ un4_crane_winch() rotate wn_rot translate wn_pos } #end #if (show_grids) #local sf_org = sf_ctr; // Origin of service floor grid. #local mf_org = < sf_ctr.x, sf_ctr.y, mf_Z >; // Origin of floor 3 grid. #local gf_org = < sf_ctr.x, sf_ctr.y, gf_Z >; // Origin of floor 3 grid. object{ un4_upp_floor_ref_grid(grid_step, grid_R, sf_org) } object{ un4_east_wing_ref_grid(grid_step, grid_R, mf_org) } object{ un4_west_wing_ref_grid(grid_step, grid_R, gf_org) } object{ un4_elw_cavity_ref_frame(grid_R, sf_Z) } object{ un4_sfp_cavity_ref_frame(grid_R, sf_Z) } object{ un4_dsp_cavity_ref_frame(grid_R, sf_Z) } object{ un4_shroud_cavity_ref_circle(grid_R, sf_Z) } object{ dot1 translate cam_ctr } #end } generic_fig(OB,view,cam_mag)