import java.io.*; public class parameters { float VRP_x, VRP_y, VRP_z, VPN_x, VPN_y, VPN_z, VUP_x, VUP_y, VUP_z, view_angle; int img_pixels_x, img_pixels_y, img_dim_x, img_dim_y; String splat_method, strip_integral; String volume_filename; String interp_kernel; float interp_coeff_B, interp_coeff_C; int smooth_interp_code; float smooth_interp_coeff; String gradient_kernel; float gradient_coeff_B, gradient_coeff_C; int smooth_deriv_code; float smooth_deriv_coeff; String deriv_method; String normal_method; String isovalue, num_runs, floating_splat; float ray_stepsize; float light_pos_x, light_pos_y, light_pos_z; float light_col_r, light_col_g, light_col_b; float ambient_col_r, ambient_col_g, ambient_col_b; float diffuse_coeff, ambient_coeff, specular_coeff; int specular_exp; float material_col_r, material_col_g, material_col_b; String intersection_image, gradient_vol; public void ReadFile() throws IOException { DataInput s = new DataInputStream(new FileInputStream("params")); char dummy = '\0'; String line, temp; // VRP line = s.readLine(); line = bypass_label(line); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); VRP_x = Float.valueOf(temp).floatValue(); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); VRP_y = Float.valueOf(temp).floatValue(); VRP_z = Float.valueOf(line).floatValue(); // VPN line = s.readLine(); line = bypass_label(line); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); VPN_x = Float.valueOf(temp).floatValue(); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); VPN_y = Float.valueOf(temp).floatValue(); VPN_z = Float.valueOf(line).floatValue(); // VUP line = s.readLine(); line = bypass_label(line); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); VUP_x = Float.valueOf(temp).floatValue(); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); VUP_y = Float.valueOf(temp).floatValue(); VUP_z = Float.valueOf(line).floatValue(); // view angle line = s.readLine(); line = bypass_label(line); view_angle = Float.valueOf(line).floatValue(); // image pixels line = s.readLine(); line = bypass_label(line); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); img_pixels_x = Integer.valueOf(temp).intValue(); img_pixels_y = Integer.valueOf(line).intValue(); // Image dimensions line = s.readLine(); line = bypass_label(line); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); img_dim_x = Integer.valueOf(temp).intValue(); img_dim_y = Integer.valueOf(line).intValue(); // Splat method and strip integral (these are kept as is) splat_method = s.readLine(); strip_integral = s.readLine(); // volume filename, interp kernel line = s.readLine(); volume_filename = bypass_label(line); line = s.readLine(); interp_kernel = bypass_label(line); // Interp. B & C line = s.readLine(); line = bypass_label(line); interp_coeff_B = Float.valueOf(line).floatValue(); line = s.readLine(); line = bypass_label(line); interp_coeff_C = Float.valueOf(line).floatValue(); // Smooth interp code & coeff. line = s.readLine(); line = bypass_label(line); smooth_interp_code = Integer.valueOf(line).intValue(); line = s.readLine(); line = bypass_label(line); smooth_interp_coeff = Float.valueOf(line).floatValue(); // Gradient Kernel & coeffs line = s.readLine(); line = bypass_label(line); gradient_kernel = line; line = s.readLine(); line = bypass_label(line); gradient_coeff_B = Float.valueOf(line).floatValue(); line = s.readLine(); line = bypass_label(line); gradient_coeff_C = Float.valueOf(line).floatValue(); // smooth derivative coeff. and code line = s.readLine(); line = bypass_label(line); smooth_deriv_code = Integer.valueOf(line).intValue(); line = s.readLine(); line = bypass_label(line); smooth_deriv_coeff = Float.valueOf(line).floatValue(); // derivative method, normal method deriv_method = s.readLine(); line = s.readLine(); line = bypass_label(line); normal_method = line; // a few unused ones isovalue = s.readLine(); num_runs = s.readLine(); floating_splat = s.readLine(); // Rendering options line = s.readLine(); line = bypass_label(line); ray_stepsize = Float.valueOf(line).floatValue(); line = s.readLine(); line = bypass_label(line); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); light_pos_x = Float.valueOf(temp).floatValue(); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); light_pos_y = Float.valueOf(temp).floatValue(); light_pos_z = Float.valueOf(line).floatValue(); line = s.readLine(); line = bypass_label(line); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); light_col_r = Float.valueOf(temp).floatValue(); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); light_col_g = Float.valueOf(temp).floatValue(); light_col_b = Float.valueOf(line).floatValue(); line = s.readLine(); line = bypass_label(line); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); ambient_col_r = Float.valueOf(temp).floatValue(); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); ambient_col_g = Float.valueOf(temp).floatValue(); ambient_col_b = Float.valueOf(line).floatValue(); line = s.readLine(); line = bypass_label(line); diffuse_coeff = Float.valueOf(line).floatValue(); line = s.readLine(); line = bypass_label(line); ambient_coeff = Float.valueOf(line).floatValue(); line = s.readLine(); line = bypass_label(line); specular_coeff = Float.valueOf(line).floatValue(); line = s.readLine(); line = bypass_label(line); specular_exp = Integer.valueOf(line).intValue(); line = s.readLine(); line = bypass_label(line); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); material_col_r = Float.valueOf(temp).floatValue(); temp = line.substring(0,line.indexOf(' ')); line = line.substring(line.indexOf(' ') + 1); material_col_g = Float.valueOf(temp).floatValue(); material_col_b = Float.valueOf(line).floatValue(); line = s.readLine(); line = bypass_label(line); intersection_image = line; line = s.readLine(); line = bypass_label(line); gradient_vol = line; } public void WriteFile() throws IOException { DataOutput s = new DataOutputStream(new FileOutputStream("params")); s.writeBytes("VRP : "+new Float(VRP_x).toString()+" "+new Float(VRP_y).toString()+" "+new Float(VRP_z).toString()+"\n"); s.writeBytes("VPN : "+new Float(VPN_x).toString()+" "+new Float(VPN_y).toString()+" "+new Float(VPN_z).toString()+"\n"); s.writeBytes("VUP : "+new Float(VUP_x).toString()+" "+new Float(VUP_y).toString()+" "+new Float(VUP_z).toString()+"\n"); s.writeBytes("view angle : "+new Float(view_angle).toString() + "\n"); s.writeBytes("image pixels : "+new Integer(img_pixels_x).toString()+" "+new Integer(img_pixels_y).toString()+"\n"); s.writeBytes("image dimensions : "+new Integer(img_dim_x).toString()+" "+new Integer(img_dim_y).toString()+"\n"); s.writeBytes(splat_method + "\n"); s.writeBytes(strip_integral + "\n"); s.writeBytes("volume file : " + volume_filename + "\n"); s.writeBytes("interpolation kernel : " + interp_kernel + "\n"); s.writeBytes("interpolation kernel coefficient B : " + new Float(interp_coeff_B).toString()+"\n"); s.writeBytes("interpolation kernel coefficient C : " + new Float(interp_coeff_C).toString()+"\n"); s.writeBytes("smooth interpolation filter code : " + new Integer(smooth_interp_code).toString()+"\n"); s.writeBytes("smooth interpolation filter coefficient : " + new Float(smooth_interp_coeff).toString()+"\n"); s.writeBytes("gradient kernel : " + gradient_kernel + "\n"); s.writeBytes("gradient kernel coefficient B : " + new Float(gradient_coeff_B).toString()+"\n"); s.writeBytes("gradient kernel coefficient C : " + new Float(gradient_coeff_C).toString()+"\n"); s.writeBytes("smooth derivative filter code : " + new Integer(smooth_deriv_code).toString()+"\n"); s.writeBytes("smooth derivative filter coefficient : " + new Float(smooth_deriv_coeff).toString()+"\n"); s.writeBytes(deriv_method + "\n"); s.writeBytes("normal estimation method : " + normal_method + "\n"); s.writeBytes(isovalue + "\n" + num_runs + "\n" + floating_splat + "\n"); s.writeBytes("ray step size : " + new Float(ray_stepsize).toString()+"\n"); s.writeBytes("light source position : "+new Float(light_pos_x).toString()+" "+ new Float(light_pos_y).toString()+" "+new Float(light_pos_z).toString()+"\n"); s.writeBytes("light source color : "+new Float(light_col_r).toString()+" "+ new Float(light_col_g).toString()+" "+new Float(light_col_g).toString()+"\n"); s.writeBytes("ambient color : "+new Float(ambient_col_r).toString()+" "+ new Float(ambient_col_g).toString()+" "+new Float(ambient_col_b).toString()+"\n"); s.writeBytes("diffuse coefficient : "+new Float(diffuse_coeff).toString()+"\n"); s.writeBytes("ambient coefficient : "+new Float(ambient_coeff).toString()+"\n"); s.writeBytes("specular coefficient : "+new Float(specular_coeff).toString()+"\n"); s.writeBytes("specular exponent : "+new Integer(specular_exp).toString()+"\n"); s.writeBytes("material color : "+new Float(material_col_r).toString()+" "+ new Float(material_col_g).toString()+" "+new Float(material_col_b).toString()+"\n"); s.writeBytes("intersection image : " + intersection_image + "\n"); s.writeBytes("gradient volume : " + gradient_vol + "\n"); s.writeBytes("end\n"); } public String bypass_label(String line) { String temp; temp = line.substring(line.indexOf(':') + 2); return temp; } }