Stanli - 2015-08-02

I'm sorry, I must be too tired; I gave you the wrong thing. It should be this way:

// Return a right circular conical frustum of height h in the direction of axis.
// The lower base of radius r1 is centered at C, the upper base has radius r2.
revolution cone_frustum(triple C, real r1, real r2, real h, triple axis=Z)
{
    return revolution(C,(C.x+r1,C.y,C.z)--(C.x+r2,C.y,C.z+h),axis);
}

Because the previous code din't account for xyz shifts with respect to C.