function Torus(options) {
    options  = options || {};
    var detail   = options.detail || 30;
    var holeRadius = options.holeRadius || 0.80;
    var tubeRadius = options.tubeRadius || 0.20;

    var buffers = GeometryHelper.generateParametric(
        detail,
        detail,
        Torus.generator.bind(null, holeRadius, tubeRadius)
    );

    options.buffers = [
        { name: 'a_pos', data: buffers.vertices },
        { name: 'a_texCoord', data: GeometryHelper.getSpheroidUV(buffers.vertices), size: 2 },
        { name: 'a_normals', data: GeometryHelper.computeNormals(buffers.vertices, buffers.indices) },
        { name: 'indices', data: buffers.indices, size: 1 }
    ];

    return new Geometry(options);
}
This function returns a new static geometry, which is passed
custom buffer data.

@class Torus
@constructor

@param {Object} options Parameters that alter the
vertex buffers of the generated geometry.

@return {Object} constructed geometry