// Last edited on 2011-05-13 03:08:30 by stolfi // Attempt to reproduce the view of reactor #3 // in projects/fukushima/images/drone/hcrop/reactor3-W-2.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 for reference grids: #local rf_Z = un4_storey_5_beams_2_hi_Z; // Z top of roof beams. #local uf_Z = un4_crane_support_hi_Z; // Z of top of concrete supports of crane rails. #local mf_Z = un4_building_mid_hi_Z; // Z of midroof terrace lip. #local gf_Z = un4_storey_1_lo_Z; // Z of ground floor. #local sw_Y = un4_building_lo_Y; // Y of south facade. #local ew_X = un4_building_upp_hi_X; // X of east facade of "upp" block. // 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 = < +35.700, +23.100, +42.000 >; #declare cam_rad = 40.000; #declare cam_upp = < 00.000, -0.130, +1.000 >; #declare cam_loc = < +622.0, -30.0, +277.0 >; #declare cam_dir = cam_loc - cam_ctr; #declare cam_dst = vlength(cam_dir); // ---------------------------------------------------------------------- #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 = 5.000; // Grid step. #local grid_R = 0.667*pixel_size; // Grid thickness. #local mag_tx = texture{ tx_phosphor_magenta } #local cya_tx = texture{ tx_phosphor_cyan } #local red_tx = texture{ tx_phosphor_red } #local blu_tx = texture{ tx_phosphor_blue } #local grn_tx = texture{ tx_phosphor_green } #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 rf_org = < 0, 0, rf_Z >; // Origin of top-of-roof-beams grid. #local uf_org = < 0, 0, uf_Z >; // Origin of top-of-supports grid. #local sf_org = < 0, 0, sf_Z >; // Origin of service floor grid. #local mf_org = < 0, 0, mf_Z >; // Origin of floor 3 grid. #local gf_org = < 0, 0, gf_Z >; // Origin of floor 3 grid. #local sw_org = < 0, sw_Y, 0 >; // Origin for South facade grids. #local ew_org = < ew_X, 0, 0 >; // Origin for East facade grids. object{ un4_upp_floor_ref_grid(0.0, grid_R, rf_org) texture{ blu_tx } } object{ un4_upp_floor_ref_grid(0.0, grid_R, sf_org) texture{ blu_tx } } // object{ un4_east_wing_ref_grid(0.0, grid_R, mf_org) texture{ mag_tx } } // object{ un4_west_wing_ref_grid(0.0, grid_R, gf_org) texture{ mag_tx } } object{ un4_crane_support_ref_frames(grid_R) texture{ cya_tx } } object{ un4_elw_cavity_ref_frame (grid_R, sf_Z) texture{ blu_tx } } object{ un4_sfp_cavity_ref_frame (grid_R, sf_Z) texture{ blu_tx } } object{ un4_dsp_cavity_ref_frame (grid_R, sf_Z) texture{ blu_tx } } object{ un4_shroud_cavity_ref_circle(grid_R, sf_Z) texture{ blu_tx } } // object{ un4_roof_storey_EW_cut_ref_grid (0.0, grid_R, sw_org) texture{ cya_tx } } object{ un4_service_storey_EW_cut_ref_grid (0.0, grid_R, sw_org) texture{ cya_tx } } object{ un4_sub_service_block_EW_cut_ref_grid(0.0, grid_R, sw_org) texture{ cya_tx } } // object{ un4_east_wing_EW_cut_ref_grid (0.0, grid_R, sw_org) texture{ mag_tx } } object{ un4_service_storey_NS_cut_ref_grid (0.0, grid_R, ew_org) texture{ cya_tx } } object{ un4_sub_service_block_NS_cut_ref_grid(0.0, grid_R, ew_org) texture{ cya_tx } } object{ dot1 translate cam_ctr } #end } generic_fig(OB,view,cam_mag)