Files
Work/mdiwin/SEGMENT.HPP
2024-08-07 09:16:27 -04:00

91 lines
1.6 KiB
C++

#ifndef _SEGMENT_HPP_
#define _SEGMENT_HPP_
#include <mdiwin/windows.hpp>
#include <mdiwin/point.hpp>
class Segment
{
public:
Segment(void);
Segment(const Point &firstPoint,const Point &secondPoint,WORD vectorIndex);
Segment(const Segment &someSegment);
WORD operator==(const Segment &someSegment)const;
void operator=(const Segment &someSegment);
void drawSegment(HDC hDC,HPEN hPen=0)const;
WORD vectorIndex(void)const;
WORD xFirst(void)const;
WORD xSecond(void)const;
WORD yFirst(void)const;
WORD ySecond(void)const;
Point firstPoint(void)const;
Point secondPoint(void)const;
Point leadingPoint(void)const;
void firstPoint(const Point &somePoint);
void secondPoint(const Point &somePoint);
~Segment(void);
private:
Point mFirstPoint;
Point mSecondPoint;
WORD mVectorIndex;
};
inline
WORD Segment::xFirst(void)const
{
return mFirstPoint.xPoint();
}
inline
WORD Segment::xSecond(void)const
{
return mSecondPoint.xPoint();
}
inline
WORD Segment::yFirst(void)const
{
return mFirstPoint.yPoint();
}
inline
WORD Segment::ySecond(void)const
{
return mSecondPoint.yPoint();
}
inline
Point Segment::firstPoint(void)const
{
return mFirstPoint;
}
inline
Point Segment::secondPoint(void)const
{
return mSecondPoint;
}
inline
void Segment::firstPoint(const Point &somePoint)
{
mFirstPoint=somePoint;
}
inline
void Segment::secondPoint(const Point &somePoint)
{
mSecondPoint=somePoint;
}
inline
Point Segment::leadingPoint(void)const
{
return (mFirstPoint.yPoint()<mSecondPoint.yPoint()?mSecondPoint:mFirstPoint);
}
inline
WORD Segment::vectorIndex(void)const
{
return mVectorIndex;
}
#endif