// Author: Karl Ostmo
// Date: 2/13/2011
// Version: 1.0
//
// Based loosely on: http://trainathomeguru.com/home-gym/#trap
// Units are in inches
// Sky include obtained from:
// http://povray.tashcorp.net/library/sky_sphere/realskies.inc
#include "colors.inc"
#include "textures.inc"
#include "metals.inc"
#include "realskies.inc"
#declare camera_pos = 60;
#declare box_side = 22;
#declare half_box_side = box_side/2;
#declare plate_annulus_radius = 1.5;
#declare flange_radius = 1.5*plate_annulus_radius;
#declare bar_radius = plate_annulus_radius/2;
#declare flange_length = 2;
#declare flange_margin = flange_length;
#declare plate_extension_length = 1.5*half_box_side;
#declare grip_length = half_box_side/2;
#declare triangle_apex = 2*half_box_side;
camera {
location <-camera_pos/5, -camera_pos, 3/4*camera_pos>*0.9
look_at 0
}
plane {
<0, 0, 1>, -flange_radius
pigment {
White
}
}
light_source {
<0, 0, 20*camera_pos>
color 1.4*White
}
sky_sphere {
sky_realsky_04
}
#declare half_shape = merge {
merge {
// Bottom side
cylinder {
<half_box_side, -half_box_side, 0>, <0, -half_box_side, 0>, bar_radius
}
// Right side (leaves a gap for the grip)
cylinder {
<half_box_side, -half_box_side, 0>, <half_box_side, -grip_length/2, 0>, bar_radius
}
cylinder {
<half_box_side, half_box_side, 0>, <half_box_side, grip_length/2, 0>, bar_radius
}
// Top side
cylinder {
<half_box_side, half_box_side, 0>, <0, half_box_side, 0>, bar_radius
}
// Rounded joints
sphere {
<half_box_side, half_box_side, 0>, bar_radius
}
sphere {
<half_box_side, -half_box_side, 0>, bar_radius
}
// Left triangle
cylinder {
<half_box_side, half_box_side, 0>, <triangle_apex, 0, 0>, bar_radius
}
cylinder {
<half_box_side, -half_box_side, 0>, <triangle_apex, 0, 0>, bar_radius
}
// Weight plate extension
cylinder {
<triangle_apex, 0, 0>, <triangle_apex + plate_extension_length, 0, 0>, bar_radius
}
pigment {
Gray45
}
}
// Grip
cylinder {
<half_box_side, -grip_length/2, 0>, <half_box_side, grip_length/2, 0>, bar_radius
pigment {
Gray70
}
}
merge {
cylinder {
<triangle_apex + flange_margin, 0, 0>, <triangle_apex + plate_extension_length, 0, 0>, plate_annulus_radius
}
// Flange
cylinder {
<triangle_apex + flange_margin, 0, 0>, <triangle_apex + flange_margin + flange_length, 0, 0>, flange_radius
}
texture {T_Silver_4E}
}
}
merge {
object{
half_shape
scale -1*x
}
object{ half_shape }
}