Files
Work/meshwrp/segment.hpp
2024-08-07 09:16:27 -04:00

98 lines
1.8 KiB
C++

#ifndef _MESHWRP_SEGMENT_HPP_
#define _MESHWRP_SEGMENT_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_GDIPOINT_HPP_
#include <common/gdipoint.hpp>
#endif
class PureDevice;
class Segment
{
public:
Segment(void);
Segment(const GDIPoint &firstPoint,const GDIPoint &secondPoint,WORD vectorIndex);
Segment(const Segment &someSegment);
virtual ~Segment(void);
WORD operator==(const Segment &someSegment)const;
void operator=(const Segment &someSegment);
void drawSegment(PureDevice &displayDevice,HPEN hPen=0,bool setROP=true)const;
WORD vectorIndex(void)const;
WORD xFirst(void)const;
WORD xSecond(void)const;
WORD yFirst(void)const;
WORD ySecond(void)const;
const GDIPoint &firstPoint(void)const;
const GDIPoint &secondPoint(void)const;
void firstPoint(const GDIPoint &somePoint);
void secondPoint(const GDIPoint &somePoint);
GDIPoint leadingPoint(void)const;
private:
GDIPoint mFirstPoint;
GDIPoint mSecondPoint;
WORD mVectorIndex;
};
inline
WORD Segment::xFirst(void)const
{
return mFirstPoint.x();
}
inline
WORD Segment::xSecond(void)const
{
return mSecondPoint.x();
}
inline
WORD Segment::yFirst(void)const
{
return mFirstPoint.y();
}
inline
WORD Segment::ySecond(void)const
{
return mSecondPoint.y();
}
inline
const GDIPoint &Segment::firstPoint(void)const
{
return mFirstPoint;
}
inline
const GDIPoint &Segment::secondPoint(void)const
{
return mSecondPoint;
}
inline
void Segment::firstPoint(const GDIPoint &somePoint)
{
mFirstPoint=somePoint;
}
inline
void Segment::secondPoint(const GDIPoint &somePoint)
{
mSecondPoint=somePoint;
}
inline
GDIPoint Segment::leadingPoint(void)const
{
return (mFirstPoint.y()<mSecondPoint.y()?mSecondPoint:mFirstPoint);
}
inline
WORD Segment::vectorIndex(void)const
{
return mVectorIndex;
}
#endif