#declare chrome = texture { pigment { color rgbf < 0.5 0.5 0.5 0>} finish { diffuse 0.1 specular 0.5 reflection 0.7 roughness 0.005 metallic } }

#declare shower_curtain_rodmount =
union {
  cylinder { <0,0,0> <0,0,0.2> 1.3 }
  torus { 1.3 0.1 rotate 90*x translate 0.1*z }
  cylinder { <0,0,0> <0,0,0.3> 1.15 }
  torus { 1.15 0.1 rotate 90*x translate 0.2*z }
  cylinder { <0,0,0> <0,0,0.4> 1.0 }
  torus { 1.0 0.1 rotate 90*x translate 0.3*z }
  cylinder { <0,0,0> <0,0,1> 0.55 }
  difference {
    sphere { <0,0,1> 0.7 }
    cylinder { <0,0,1> <0,0,3> 0.5 }
  }
  texture { chrome }
}

#macro shower_curtain_rod(rodlen)
union {
  object { shower_curtain_rodmount }
  object { shower_curtain_rodmount rotate 180*y translate rodlen*z }
  cylinder { <0,0,0> <0,0,rodlen> 0.48 }
  texture { chrome }
}
#end