00001 /* COPYRIGHT 00002 * 00003 * This file is part of the Visual Effects Engine - VEE 00004 * 00005 * Read the "VEE-LICENSE" file for the license. 00006 * 00007 * Authors & Copyright: 00008 * 00009 * Tommi Ilmonen, Tuukka Heikura, Marko Myllymaa and 00010 * Janne Kontkanen 2001-2004 00011 * 00012 * Additional copyrights: Tekes 2003-2004 00013 * 00014 * firstname.lastname@hut.fi 00015 * 00016 */ 00017 00018 #ifndef VEE_VOLUME_DISK_H 00019 #define VEE_VOLUME_DISK_H 00020 00021 #include <vee_volume.h> 00022 00023 #include <vee_matrix3.h> 00024 00025 class VEE_Random; 00026 00029 class VEE_VolumeDisk : public VEE_Volume 00030 { 00031 public: 00032 VEE_VolumeDisk(); 00033 virtual ~VEE_VolumeDisk(); 00034 00035 virtual VEE_Vector3 newRandomPoint(); 00036 virtual VEE_Volume * clone() const; 00037 virtual float inside(const VEE_Vector3 &) 00038 { return 0.0; } 00039 virtual void getBoundingBox(VEE_BoundingBox *); 00040 00041 float radius() { return m_radius; } 00042 VEE_Matrix3 *rotation() { return &m_rotation; } 00043 void setCenter(float x, float y, float z); 00044 00045 void setRadius(float r) { m_radius = r; } 00046 void setRotation(VEE_Matrix3 &rot) { m_rotation = rot; } 00047 void setRandom(VEE_Random *r) { m_random = r; } 00048 00049 00050 protected: 00051 00052 VEE_Matrix3 m_rotation; 00053 float m_radius; 00054 00055 VEE_Random *m_random; 00056 }; 00057 00058 00059 #endif