Subversion Repositories spk

Rev

Blame | Last modification | View Log | RSS feed

#ifndef BOB_GEOMETRY_INCLUDED
#define BOB_GEOMETRY_INCLUDED

#include "geometry.h"

template <class Ty>
class point3d : public geometry::point3d<Ty>
{
        public:
                point3d() 
                        : geometry::point3d<value_type>()
                { }
                point3d(const geometry::point3d<value_type>& pt) 
                        : geometry::point3d<value_type>(pt)
                { }
                point3d(value_type x, value_type y, value_type z) 
                        : geometry::point3d<value_type>(x, y, z)
                { }
                
                bool load(ibinaryfilestream& is)
                {
                        is >> x >> y >> z;
                        return !is.fail();
                }
                
                bool toFile(obinaryfilestream& os) const
                {
                        os << x << y << z;
                        return !os.fail();
                }
                
                bool toFile(otextfilestream& os) const
                {
                        os << x << y << z;
                        return !os.fail();
                }
};

template <class Ty>
class point2d : public geometry::point2d<Ty>
{
        public:
                public:
                point2d() 
                        : geometry::point2d<value_type>()
                { }
                point2d(const geometry::point2d<value_type>& pt) 
                        : geometry::point2d<value_type>(pt)
                { }
                point2d(value_type x, value_type y)
                        : geometry::point2d<value_type>(x, y)
                { }
                
                bool load(ibinaryfilestream& is)
                {
                        is >> x >> y;
                        return !is.fail();
                }
                
                bool toFile(obinaryfilestream& os) const
                {
                        os << x << y;
                        return !os.fail();
                }
                
                bool toFile(otextfilestream& os) const
                {
                        os << x << y;
                        return !os.fail();
                }
};

/*
class vertex : public point3d<int>
{
        public:
                vertex() 
                        : point3d<value_type>()
                { }
                vertex(const point3d<value_type>& pt) 
                        : point3d<value_type>(pt)
                { }
                vertex(int x, int y, int z) 
                        : point3d<value_type>(x, y, z)
                { }
                
                bool toFile(otextfilestream& os) const
                {
                        os << x << y << z;
                        return !os.fail();
                }
                
};

class vector : public point3d<double>
{
        public:
                typedef point3d<value_type> base;
                
                vector() 
                        : point3d<value_type>()
                { }
                vector(const point3d<value_type>& pt) 
                        : point3d<value_type>(pt)
                { }
                vector(double x, double y, double z) 
                        : point3d<value_type>(x, y, z)
                { }
                
                bool toFile(otextfilestream& os) const
                {
                        os << x << y << z;
                        return !os.fail();
                }
                bool toFile(obinaryfilestream& os) const { return base::toFile(os); }
};
*/
typedef point3d<int> vertex;
typedef point3d<double> vector;
typedef vector normal_vector;
typedef vertex position3d;

#endif // !defined(BOB_GEOMETRY_INCLUDED)