| 
							- /*
 -  * DISTRHO Plugin Toolkit (DPT)
 -  * Copyright (C) 2012-2013 Filipe Coelho <falktx@falktx.com>
 -  *
 -  * Permission to use, copy, modify, and/or distribute this software for any purpose with
 -  * or without fee is hereby granted, provided that the above copyright notice and this
 -  * permission notice appear in all copies.
 -  *
 -  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
 -  * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
 -  * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 -  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
 -  * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 -  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 -  */
 - 
 - #include "../Geometry.hpp"
 - 
 - START_NAMESPACE_DGL
 - 
 - // -----------------------------------------------------------------------
 - // Point
 - 
 - template<typename T>
 - Point<T>::Point() noexcept
 -     : fX(0),
 -       fY(0)
 - {
 - }
 - 
 - template<typename T>
 - Point<T>::Point(T x, T y) noexcept
 -     : fX(x),
 -       fY(y)
 - {
 - }
 - 
 - template<typename T>
 - Point<T>::Point(const Point& pos) noexcept
 -     : fX(pos.fX),
 -       fY(pos.fY)
 - {
 - }
 - 
 - template<typename T>
 - T Point<T>::getX() const noexcept
 - {
 -     return fX;
 - }
 - 
 - template<typename T>
 - T Point<T>::getY() const noexcept
 - {
 -     return fY;
 - }
 - 
 - template<typename T>
 - void Point<T>::setX(T x) noexcept
 - {
 -     fX = x;
 - }
 - 
 - template<typename T>
 - void Point<T>::setY(T y) noexcept
 - {
 -     fY = y;
 - }
 - 
 - template<typename T>
 - void Point<T>::move(T x, T y) noexcept
 - {
 -     fX += x;
 -     fY += y;
 - }
 - 
 - template<typename T>
 - void Point<T>::move(const Point& pos) noexcept
 - {
 -     fX += pos.fX;
 -     fY += pos.fY;
 - }
 - 
 - template<typename T>
 - Point<T>& Point<T>::operator=(const Point<T>& pos) noexcept
 - {
 -     fX = pos.fX;
 -     fY = pos.fY;
 -     return *this;
 - }
 - 
 - template<typename T>
 - Point<T>& Point<T>::operator+=(const Point<T>& pos) noexcept
 - {
 -     fX += pos.fX;
 -     fY += pos.fY;
 -     return *this;
 - }
 - 
 - template<typename T>
 - Point<T>& Point<T>::operator-=(const Point<T>& pos) noexcept
 - {
 -     fX -= pos.fX;
 -     fY -= pos.fY;
 -     return *this;
 - }
 - 
 - template<typename T>
 - bool Point<T>::operator==(const Point<T>& pos) const noexcept
 - {
 -     return (fX == pos.fX && fY== pos.fY);
 - }
 - 
 - template<typename T>
 - bool Point<T>::operator!=(const Point<T>& pos) const noexcept
 - {
 -     return !operator==(pos);
 - }
 - 
 - // -----------------------------------------------------------------------
 - // Size
 - 
 - template<typename T>
 - Size<T>::Size() noexcept
 -     : fWidth(0),
 -       fHeight(0)
 - {
 - }
 - 
 - template<typename T>
 - Size<T>::Size(T width, T height) noexcept
 -     : fWidth(width),
 -       fHeight(height)
 - {
 - }
 - 
 - template<typename T>
 - Size<T>::Size(const Size<T>& size) noexcept
 -     : fWidth(size.fWidth),
 -       fHeight(size.fHeight)
 - {
 - }
 - 
 - template<typename T>
 - T Size<T>::getWidth() const noexcept
 - {
 -     return fWidth;
 - }
 - 
 - template<typename T>
 - T Size<T>::getHeight() const noexcept
 - {
 -     return fHeight;
 - }
 - 
 - template<typename T>
 - void Size<T>::setWidth(T width) noexcept
 - {
 -     fWidth = width;
 - }
 - 
 - template<typename T>
 - void Size<T>::setHeight(T height) noexcept
 - {
 -     fHeight = height;
 - }
 - 
 - template<typename T>
 - Size<T>& Size<T>::operator=(const Size<T>& size) noexcept
 - {
 -     fWidth  = size.fWidth;
 -     fHeight = size.fHeight;
 -     return *this;
 - }
 - 
 - template<typename T>
 - Size<T>& Size<T>::operator+=(const Size<T>& size) noexcept
 - {
 -     fWidth  += size.fWidth;
 -     fHeight += size.fHeight;
 -     return *this;
 - }
 - 
 - template<typename T>
 - Size<T>& Size<T>::operator-=(const Size<T>& size) noexcept
 - {
 -     fWidth  -= size.fWidth;
 -     fHeight -= size.fHeight;
 -     return *this;
 - }
 - 
 - template<typename T>
 - Size<T>& Size<T>::operator*=(T m) noexcept
 - {
 -     fWidth  *= m;
 -     fHeight *= m;
 -     return *this;
 - }
 - 
 - template<typename T>
 - Size<T>& Size<T>::operator/=(T d) noexcept
 - {
 -     fWidth  /= d;
 -     fHeight /= d;
 -     return *this;
 - }
 - 
 - template<typename T>
 - bool Size<T>::operator==(const Size<T>& size) const noexcept
 - {
 -     return (fWidth == size.fWidth && fHeight == size.fHeight);
 - }
 - 
 - template<typename T>
 - bool Size<T>::operator!=(const Size<T>& size) const noexcept
 - {
 -     return !operator==(size);
 - }
 - 
 - // -----------------------------------------------------------------------
 - // Rectangle
 - 
 - template<typename T>
 - Rectangle<T>::Rectangle() noexcept
 -     : fPos(0, 0),
 -       fSize(0, 0)
 - {
 - }
 - 
 - template<typename T>
 - Rectangle<T>::Rectangle(T x, T y, T width, T height) noexcept
 -     : fPos(x, y),
 -       fSize(width, height)
 - {
 - }
 - 
 - template<typename T>
 - Rectangle<T>::Rectangle(T x, T y, const Size<T>& size) noexcept
 -     : fPos(x, y),
 -       fSize(size)
 - {
 - }
 - 
 - template<typename T>
 - Rectangle<T>::Rectangle(const Point<T>& pos, T width, T height) noexcept
 -     : fPos(pos),
 -       fSize(width, height)
 - {
 - }
 - 
 - template<typename T>
 - Rectangle<T>::Rectangle(const Point<T>& pos, const Size<T>& size) noexcept
 -     : fPos(pos),
 -       fSize(size)
 - {
 - }
 - 
 - template<typename T>
 - Rectangle<T>::Rectangle(const Rectangle<T>& rect) noexcept
 -     : fPos(rect.fPos),
 -       fSize(rect.fSize)
 - {
 - }
 - 
 - template<typename T>
 - T Rectangle<T>::getX() const noexcept
 - {
 -     return fPos.fX;
 - }
 - 
 - template<typename T>
 - T Rectangle<T>::getY() const noexcept
 - {
 -     return fPos.fY;
 - }
 - 
 - template<typename T>
 - T Rectangle<T>::getWidth() const noexcept
 - {
 -     return fSize.fWidth;
 - }
 - 
 - template<typename T>
 - T Rectangle<T>::getHeight() const noexcept
 - {
 -     return fSize.fHeight;
 - }
 - 
 - template<typename T>
 - const Point<T>& Rectangle<T>::getPos() const noexcept
 - {
 -     return fPos;
 - }
 - 
 - template<typename T>
 - const Size<T>& Rectangle<T>::getSize() const noexcept
 - {
 -     return fSize;
 - }
 - 
 - template<typename T>
 - bool Rectangle<T>::contains(T x, T y) const noexcept
 - {
 -     return (x >= fPos.fX && y >= fPos.fY && x <= fPos.fX+fSize.fWidth && y <= fPos.fY+fSize.fHeight);
 - }
 - 
 - template<typename T>
 - bool Rectangle<T>::contains(const Point<T>& pos) const noexcept
 - {
 -     return contains(pos.fX, pos.fY);
 - }
 - 
 - template<typename T>
 - bool Rectangle<T>::containsX(T x) const noexcept
 - {
 -     return (x >= fPos.fX && x <= fPos.fX + fSize.fWidth);
 - }
 - 
 - template<typename T>
 - bool Rectangle<T>::containsY(T y) const noexcept
 - {
 -     return (y >= fPos.fY && y <= fPos.fY + fSize.fHeight);
 - }
 - 
 - template<typename T>
 - void Rectangle<T>::setX(T x) noexcept
 - {
 -     fPos.fX = x;
 - }
 - 
 - template<typename T>
 - void Rectangle<T>::setY(T y) noexcept
 - {
 -     fPos.fY = y;
 - }
 - 
 - template<typename T>
 - void Rectangle<T>::setPos(T x, T y) noexcept
 - {
 -     fPos.fX = x;
 -     fPos.fY = y;
 - }
 - 
 - template<typename T>
 - void Rectangle<T>::setPos(const Point<T>& pos) noexcept
 - {
 -     fPos = pos;
 - }
 - 
 - template<typename T>
 - void Rectangle<T>::move(T x, T y) noexcept
 - {
 -     fPos.fX += x;
 -     fPos.fY += y;
 - }
 - 
 - template<typename T>
 - void Rectangle<T>::move(const Point<T>& pos) noexcept
 - {
 -     fPos += pos;
 - }
 - 
 - template<typename T>
 - void Rectangle<T>::setWidth(T width) noexcept
 - {
 -     fSize.fWidth = width;
 - }
 - 
 - template<typename T>
 - void Rectangle<T>::setHeight(T height) noexcept
 - {
 -     fSize.fHeight = height;
 - }
 - 
 - template<typename T>
 - void Rectangle<T>::setSize(T width, T height) noexcept
 - {
 -     fSize.fWidth  = width;
 -     fSize.fHeight = height;
 - }
 - 
 - template<typename T>
 - void Rectangle<T>::setSize(const Size<T>& size) noexcept
 - {
 -     fSize = size;
 - }
 - 
 - template<typename T>
 - Rectangle<T>& Rectangle<T>::operator=(const Rectangle<T>& rect) noexcept
 - {
 -     fPos  = rect.fPos;
 -     fSize = rect.fSize;
 -     return *this;
 - }
 - 
 - // -----------------------------------------------------------------------
 - // Possible template data types
 - 
 - template class Point<int>;
 - template class Point<long>;
 - template class Point<float>;
 - template class Point<double>;
 - 
 - template class Size<int>;
 - template class Size<long>;
 - template class Size<float>;
 - template class Size<double>;
 - 
 - template class Rectangle<int>;
 - template class Rectangle<long>;
 - template class Rectangle<float>;
 - template class Rectangle<double>;
 - 
 - // -----------------------------------------------------------------------
 - 
 - END_NAMESPACE_DGL
 
 
  |