#ifndef jbt_disk_h #define jbt_disk_h #include "primitive.h" class jbt_disk : public jbt_primitive { public: jbt_disk( jFlt _disk_radius = 1.0, jFlt field_radius = 1.0 ); jbt_object::Type type() const { return jbt_object::jbtDisk; } jFlt getDiskRadius() const { return disk_radius; } void setDiskRadius( jFlt dr ) { disk_radius = dr; } private: jVec3 displacement(); void bracket( const jRay&, jbt_brackets& ); void computeBound(); void precompute(); void seedPoints( jVec3list& ) const; jVec2 uvl( const jVec3& ); jFlt disk_radius; jVec3 disk_pt; jFlt pt_rad; }; #endif