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++
135 lines
3.1 KiB
C++
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//PointSegment.h
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "CommonDefines.h"
|
|
|
|
class CSegmentDrawPoint
|
|
{//一段Bezier曲线
|
|
public:
|
|
CSegmentDrawPoint(POINT* point=NULL,int count=0,FACIESSEGMENTDIRECTION direction=segmentforward);
|
|
~CSegmentDrawPoint();
|
|
|
|
int m_count;
|
|
POINT* m_point;
|
|
|
|
//m_index0<m_index1表示正向 m_index0>m_index1表示为反向
|
|
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
|
|
{//一段Bezier曲线
|
|
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();
|
|
};
|
|
|