91 lines
1.6 KiB
C++
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
|