#ifndef QRK_POINT_3D_H
#define QRK_POINT_3D_H

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

  \author Satofumi KAMIMURA

  $Id: Point3d.h 780 2009-05-05 08:16:41Z 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 */
