00001
00002
00003
00004 #ifndef __HYPE_H
00005 #define __HYPE_H
00006
00007 #include "geometry/Volume.h"
00008
00021 class Hype: public Volume
00022 {
00023
00024 public:
00025 Hype( double z, double ri, double ro, double sa );
00026
00027
00028
00029
00030 const Vector axis()const;
00031 double halfLength() const { return half_length; }
00032 double innerRadius() const { return inner_radius; }
00033 double outerRadius() const { return outer_radius; }
00034 double stereoAngle() const { return stereo_angle; }
00035
00036 virtual void calcMaxDimension();
00037
00038
00039 virtual const char *nameOf() const { return "Hype"; }
00040 virtual void printOn( std::ostream& os = std::cout ) const;
00041
00042 private:
00043 double half_length;
00044 double inner_radius;
00045 double outer_radius;
00046 double stereo_angle;
00047 };
00048
00049 #endif
00050