You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

135 lines
3.1 KiB
C

1 month ago
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//PointSegment.h
#pragma once
#include "CommonDefines.h"
class CSegmentDrawPoint
{//һ<><D2BB>Bezier<65><72><EFBFBD><EFBFBD>
public:
CSegmentDrawPoint(POINT* point=NULL,int count=0,FACIESSEGMENTDIRECTION direction=segmentforward);
~CSegmentDrawPoint();
int m_count;
POINT* m_point;
//m_index0<m_index1<78><31>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD> m_index0>m_index1<78><31>ʾΪ<CABE><CEAA><EFBFBD><EFBFBD>
FACIESSEGMENTDIRECTION m_direction;
int m_iType;
void SetParameter(POINT* point=NULL,int count=0,FACIESSEGMENTDIRECTION direction=segmentforward);
BOOL GetPoint(int index,POINT& point);
void Reverse();
};
class CSegmentDrawPointArray
{
public:
CSegmentDrawPointArray();
~CSegmentDrawPointArray();
BOOL m_bClose;
int m_iPointCount;
CArray<CSegmentDrawPoint,CSegmentDrawPoint> m_segmentarray;
public:
BOOL GetClose();
void SetClose(BOOL bValue);
void AddSegment(POINT* point,int count,FACIESSEGMENTDIRECTION direction);
void AddSegment(CSegmentDrawPoint& segment);
void AddSegment(CSegmentDrawPointArray& segmentarray);
void InsertSegment(int index,POINT* point,int count,FACIESSEGMENTDIRECTION direction);
void DeleteSegment(int index);
void SetSegment(int index,POINT* point,int count,FACIESSEGMENTDIRECTION direction);
int GetSegmentCount();
CSegmentDrawPoint* GetSegmentArray();
CSegmentDrawPoint* GetSegment(int index);
BOOL GetPoint(int index,POINT& point);
void Clear();
int GetPointCount();
void operator=(CSegmentDrawPointArray& segmentarray);
void GetPointArray(CArray<POINT,POINT>& pointarray);
void SetSize(int iValue);
void Reverse();
};
class CSegmentMapPoint
{//һ<><D2BB>Bezier<65><72><EFBFBD><EFBFBD>
public:
CSegmentMapPoint(CPoint2D* point=NULL,int count=0,FACIESSEGMENTDIRECTION direction=segmentforward);
~CSegmentMapPoint();
int m_count;
CPoint2D* m_point;
FACIESSEGMENTDIRECTION m_direction;
int m_index1;
int m_iType;
void SetParameter(CPoint2D* point=NULL,int count=0,FACIESSEGMENTDIRECTION direction=segmentforward);
BOOL GetPoint(int index,CPoint2D& point);
void Reverse();
};
class CSegmentMapPointArray
{
public:
CSegmentMapPointArray();
~CSegmentMapPointArray();
BOOL m_bClose;
int m_iPointCount;
CArray<CSegmentMapPoint,CSegmentMapPoint> m_segmentarray;
public:
BOOL GetClose();
void SetClose(BOOL bValue);
void AddSegment(CPoint2D* point,int count,FACIESSEGMENTDIRECTION direction);
void AddSegment(CSegmentMapPoint& segment);
void AddSegment(CSegmentMapPointArray& segmentarray);
void InsertSegment(int index,CPoint2D* point,int count,FACIESSEGMENTDIRECTION direction);
void DeleteSegment(int index);
void SetSegment(int index,CPoint2D* point,int count,FACIESSEGMENTDIRECTION direction);
int GetSegmentCount();
CSegmentMapPoint* GetSegmentArray();
CSegmentMapPoint* GetSegment(int index);
BOOL GetPoint(int index,CPoint2D& point);
void Clear();
int GetPointCount();
void operator=(CSegmentMapPointArray& segmentarray);
void GetPointArray(CArray<CPoint2D,CPoint2D>& pointarray);
void GetPointArray(CArray<POINT,POINT>& pointarray,double dZoomFactor);
void SetSize(int iValue);
void Reverse();
};