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.

53 lines
1.5 KiB
C++

/////////////////////////////////////////////////////////////////////////
//ObjectLine.h
#pragma once
class CGDFObject;
class CGDFSegment;
#include "ObjectLine.h"
//是线编辑的最小单位
class CObjectPolyline : public CGDFObjectLine
{
public:
DECLARE_SERIAL(CObjectPolyline)
CObjectPolyline(CGDFLayer* pLayer=NULL);
virtual ~CObjectPolyline();
//Attributes
protected:
BOOL m_bClose;
int m_iSelectedNode;
//Operations
public:
void SetPoint(CArray<FACIESPOINT,FACIESPOINT>& pointarray);
void AddPoint(CArray<FACIESPOINT,FACIESPOINT>& pointarray);
void AddPoint(FACIESPOINT* pointarray,int count);
void InsertPoint(int index,CPoint2D point);
virtual void BuildBorderPointArray();
//控制点
virtual void BuildControlNodePointArray();
void BuildLineByIndexArray(CArray<POINTINDEX,POINTINDEX>& indexarray);
void CopyLine(int index0,int index1,FACIESSEGMENTDIRECTION direction,CArray<POINTINDEX,POINTINDEX>& indexarray);
virtual void DuplicateAttribute(CGDFObject* pObject);
virtual void DuplicateObject(CGDFObject* pObject);
virtual void DuplicateObject(CGDFObject** ppObject,CGDFLayer* pLayer);
BOOL GetClose();
void SetClose(BOOL bValue);
int GetControlNodeDrawPointCount();
POINT* GetControlNodeDrawPointArray();
CPoint2D* GetControlNodeMapPointArray();
virtual int GetControlNodePointCount();
void IncreasePoint();
void NoSmoothNode(int index);
void ReverseDirection();
void SmoothNode(int index);
void SmoothNode(int index,int count);
void NoSmoothNode(int index,int count);
};