///////////////////////////////////////////////////////////////////////// //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& pointarray); void AddPoint(CArray& pointarray); void AddPoint(FACIESPOINT* pointarray,int count); void InsertPoint(int index,CPoint2D point); virtual void BuildBorderPointArray(); //控制点 virtual void BuildControlNodePointArray(); void BuildLineByIndexArray(CArray& indexarray); void CopyLine(int index0,int index1,FACIESSEGMENTDIRECTION direction,CArray& 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); };