// -*- C++ -*-
#ifndef RICYLINDER_H
#define RICYLINDER_H
/* Copyright 1996 
 * Mon Nov 24 14:42:08 1997  Brian Smits  (bes@phoenix.cs.utah.edu)
 * 
 * RiCylinder.H
 * 
 *	
 * 
 * $Id: RiCylinder.H,v 1.1 1997/11/26 00:12:21 bes Exp $ 
 * 
 */
#ifndef RICOMMON_H
#include <RiCommon.H>
#endif


#ifndef RIOBJECT_H
#include <RiObjectBuilder.H>
#endif

#ifndef RIMATERIAL_H
#include <RiMaterial.H>
#endif

#ifndef RIVECTOR3_H
#include <RiVector3.H>
#endif


class RiRayObject;

/***************************************************************
CLASS
    RiCylinderBuilder
     <one line summary> 

DESCRIPTION
     <Detailed description with any warnings>

****************************************************************/

class RiCylinderBuilder : public RiObjectBuilder {
  public:
    // GROUP: Constructors and assignment
    //// Default Constructor
    RiCylinderBuilder(Products wanted = noneFlag);
				// GROUP: Members
				//// Set the material to be used for all subsequent cylinders until
				//   a new material is set
    void		SetMaterial(RiMaterial *);
				//// Define the center of the sphere
    void		SetEnds(const RiVector3 &pnt1, const RiVector3 &pnt2);
				//// Define the radius,
    void		SetRadius(RiReal radius);
				//// Build the Sphere.
    virtual bool  	Build();
  private:
    RiMaterial *mat;
    RiVector3 p1,p2;
    RiReal   r;
};

#endif /* RICYLINDER_H */

