Files
Work/common/GDIPOINT.HPP
2024-08-16 13:56:54 -04:00

149 lines
2.4 KiB
C++

#ifndef _COMMON_GDIPOINT_HPP_
#define _COMMON_GDIPOINT_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
class GDIPoint : private POINT
{
public:
GDIPoint(void);
GDIPoint(int x,int y);
GDIPoint(const GDIPoint &someGDIPoint);
virtual ~GDIPoint();
WORD operator==(const GDIPoint &someGDIPoint)const;
GDIPoint operator+(const GDIPoint &someGDIPoint)const;
GDIPoint &operator=(const GDIPoint &someGDIPoint);
GDIPoint &operator-=(const GDIPoint &someGDIPoint);
GDIPoint &operator+=(const GDIPoint &someGDIPoint);
GDIPoint &operator++(void);
GDIPoint operator++(int prefixDummy);
GDIPoint &operator--(void);
GDIPoint operator--(int prefixDummy);
operator POINT&(void);
int x(void)const;
void x(int newx);
int y(void)const;
void y(int newy);
void setPoint(int newx,int newy);
int distance(const GDIPoint &someGDIPoint)const;
POINT &getPOINT(void);
private:
};
inline
GDIPoint::GDIPoint(void)
{
POINT::x=0;
POINT::y=0;
}
inline
GDIPoint::GDIPoint(int x,int y)
{
POINT::x=x;
POINT::y=y;
}
inline
GDIPoint::GDIPoint(const GDIPoint &someGDIPoint)
{
*this=someGDIPoint;
}
inline
GDIPoint::~GDIPoint()
{
}
inline
int GDIPoint::x(void)const
{
return POINT::x;
}
inline
void GDIPoint::x(int newx)
{
POINT::x=newx;
}
inline
int GDIPoint::y(void)const
{
return POINT::y;
}
inline
void GDIPoint::y(int newy)
{
POINT::y=newy;
}
inline
void GDIPoint::setPoint(int newx,int newy)
{
POINT::x=newx;
POINT::y=newy;
}
inline
WORD GDIPoint::operator==(const GDIPoint &someGDIPoint)const
{
return (x()==someGDIPoint.x()&&
y()==someGDIPoint.y());
}
inline
GDIPoint &GDIPoint::operator=(const GDIPoint &someGDIPoint)
{
x(someGDIPoint.x());
y(someGDIPoint.y());
return *this;
}
inline
GDIPoint &GDIPoint::operator-=(const GDIPoint &someGDIPoint)
{
x(x()-someGDIPoint.x());
y(y()-someGDIPoint.y());
return *this;
}
inline
GDIPoint &GDIPoint::operator+=(const GDIPoint &someGDIPoint)
{
x(x()+someGDIPoint.x());
y(y()+someGDIPoint.y());
return *this;
}
inline
GDIPoint &GDIPoint::operator++(void)
{
x(x()+1);
y(y()+1);
return *this;
}
inline
GDIPoint::operator POINT&(void)
{
return *this;
}
inline
int GDIPoint::distance(const GDIPoint &someGDIPoint)const
{
int xDiff(someGDIPoint.x()-x());
int yDiff(someGDIPoint.y()-y());
return (xDiff*xDiff)+(yDiff*yDiff);
}
inline
POINT &GDIPoint::getPOINT(void)
{
return *this;
}
#endif