\brief Class interface for specifying NDRange values.
| 4738 | |
| 4739 | //! \brief Class interface for specifying NDRange values. |
| 4740 | class NDRange |
| 4741 | { |
| 4742 | private: |
| 4743 | size_t<3> sizes_; |
| 4744 | cl_uint dimensions_; |
| 4745 | |
| 4746 | public: |
| 4747 | //! \brief Default constructor - resulting range has zero dimensions. |
| 4748 | NDRange() |
| 4749 | : dimensions_(0) |
| 4750 | { } |
| 4751 | |
| 4752 | //! \brief Constructs one-dimensional range. |
| 4753 | NDRange(::size_t size0) |
| 4754 | : dimensions_(1) |
| 4755 | { |
| 4756 | sizes_[0] = size0; |
| 4757 | } |
| 4758 | |
| 4759 | //! \brief Constructs two-dimensional range. |
| 4760 | NDRange(::size_t size0, ::size_t size1) |
| 4761 | : dimensions_(2) |
| 4762 | { |
| 4763 | sizes_[0] = size0; |
| 4764 | sizes_[1] = size1; |
| 4765 | } |
| 4766 | |
| 4767 | //! \brief Constructs three-dimensional range. |
| 4768 | NDRange(::size_t size0, ::size_t size1, ::size_t size2) |
| 4769 | : dimensions_(3) |
| 4770 | { |
| 4771 | sizes_[0] = size0; |
| 4772 | sizes_[1] = size1; |
| 4773 | sizes_[2] = size2; |
| 4774 | } |
| 4775 | |
| 4776 | /*! \brief Conversion operator to const ::size_t *. |
| 4777 | * |
| 4778 | * \returns a pointer to the size of the first dimension. |
| 4779 | */ |
| 4780 | operator const ::size_t*() const { |
| 4781 | return (const ::size_t*) sizes_; |
| 4782 | } |
| 4783 | |
| 4784 | //! \brief Queries the number of dimensions in the range. |
| 4785 | ::size_t dimensions() const { return dimensions_; } |
| 4786 | }; |
| 4787 | |
| 4788 | //! \brief A zero-dimensional range. |
| 4789 | static const NDRange NullRange; |