#ifndef ATS_LINE_H #define ATS_LINE_H #include "ats_point.h" #include /******************************************************* * template class line * 注意: 直線でなく、線分。 *******************************************************/ namespace ats { template class Line3d { private: Line3d(){} public: Line3d(Point3d & p, Point3d & v) : pnt(p), vec(v) {} Line3d(const Line3d& a) : pnt(a.pnt), vec(a.vec) {} virtual ~Line3d(){} Point3d pnt; Point3d vec; }; typedef Line3d Line3dd; typedef Line3d Line3df; typedef Line3d Line3di; /******************************************************** * template Polyline * 概要: list + polylineの開閉を保持するbool ********************************************************/ template class Polyline3d : public std::list< Point3d > { private: Polyline3d(){} public: Polyline3d(Line3d& a, bool b=false) : close(b) { push(a.pnt); push(a.vec); } Polyline3d(const Polyline3d& a) : std::list< Point3d >(a.begin(), a.end()), close(a.close) {} virtual ~Polyline3d() {} bool close; }; typedef Polyline3d Polyline3dd; typedef Polyline3d Polyline3df; typedef Polyline3d Polyline3di; } #endif // ATS_LINE_H