vee_volume_ellipsoid.h

Go to the documentation of this file.
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_ELLIPSOID_H
00019 #define VEE_VOLUME_ELLIPSOID_H
00020 
00021 #include <vee_volume.h>
00022 
00023 #include <vee_clonable_pointer.h> 
00024 #include <vee_matrix3.h> 
00025 #include <vee_random.h> 
00026 
00027 
00028 
00034 class VEE_VolumeEllipsoid : public VEE_Volume
00035 {
00036 public:
00037   VEE_VolumeEllipsoid();
00038   VEE_VolumeEllipsoid(const VEE_Vector3 & axes);
00039   virtual ~VEE_VolumeEllipsoid();
00040 
00041   virtual VEE_Vector3 newRandomPoint();
00042   virtual VEE_Volume * clone() const;
00043 
00044   virtual void getBoundingBox(VEE_BoundingBox *);
00045 
00046   virtual float inside(const VEE_Vector3 &location);
00047 
00048   /* VEE_Vector3 *centralLocation() { return &m_center; }
00049      VEE_Vector3 *location() { return &m_center; }*/
00050   VEE_Vector3 *axes() { return &m_axes; }
00051   VEE_Matrix3 *rotation() { return &m_rotation; }
00052   // void setCenter(float x, float y, float z);
00053   // void move(const VEE_Vector3 &l) { m_center += l; }
00054   void setAxes(float a1, float a2, float a3);
00055   void setRotation(VEE_Matrix3 &rot) { m_rotation = rot; }
00056   void setRandom(VEE_Random *r) { m_random = r; }
00057 
00058 
00059 protected:
00060 
00061   // VEE_Vector3  m_center;
00062   VEE_Vector3  m_axes;
00063   VEE_Matrix3  m_rotation; 
00064 
00065   VEE_ClonablePointer<VEE_Random> m_random; 
00066 };
00067 
00068 
00069 #endif

Generated on Mon Mar 12 21:09:01 2007 for VEE - The Visual Effects Engine by  doxygen 1.4.6