added torus primitive