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)