#ifndef QRK_POINT_3D_H
#define QRK_POINT_3D_H

/*!
  \file
  \brief 位置の型定義 (3D)

  \author Satofumi KAMIMURA

  $Id: Point3d.h 1811 2010-04-30 16:12:05Z satofumi $
*/

namespace qrk
{
    /*!
      \brief 位置の型定義 (3D)
    */
    template<class T>
    class Point3d
    {
    public:
        T x;                        //!< X 位置
        T y;                        //!< Y 位置
        T z;                        //!< Z 位置


        Point3d(void) : x(0), y(0), z(0)
        {
        }


        Point3d(const Point3d& rhs) : x(rhs.x), y(rhs.y), z(rhs.z)
        {
        }


        Point3d(T x_, T y_, T z_) : x(x_), y(y_), z(z_)
        {
        }


        Point3d& operator = (const Point3d& rhs)
        {
            this->x = rhs.x;
            this->y = rhs.y;
            this->z = rhs.z;

            return *this;
        }
    };
}

#endif /* !QRK_POINT_3D_H */
