00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _CELMATH_ELLIPSOID_H_
00011 #define _CELMATH_ELLIPSOID_H_
00012
00013 #include "vecmath.h"
00014
00015 template<class T> class Ellipsoid
00016 {
00017 public:
00018 Ellipsoid();
00019 Ellipsoid(const Vector3<T>&);
00020 Ellipsoid(const Point3<T>&, const Vector3<T>&);
00021
00022 public:
00023 Point3<T> center;
00024 Vector3<T> axes;
00025 };
00026
00027 typedef Ellipsoid<float> Ellipsoidf;
00028 typedef Ellipsoid<double> Ellipsoidd;
00029
00030
00031 template<class T> Ellipsoid<T>::Ellipsoid() :
00032 center(0, 0, 0), axes(1, 1, 1)
00033 {
00034 }
00035
00036 template<class T> Ellipsoid<T>::Ellipsoid(const Vector3<T>& _axes) :
00037 center(0, 0, 0), axes(_axes)
00038 {
00039 }
00040
00041 template<class T> Ellipsoid<T>::Ellipsoid(const Point3<T>& _center,
00042 const Vector3<T>& _axes) :
00043 center(_center), axes(_axes)
00044 {
00045 }
00046
00047 #endif // _CELMATH_ELLIPSOID_H_
00048