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.
74 lines
2.5 KiB
C++
74 lines
2.5 KiB
C++
//////////////////////////////////////////////////////////////////////////////////////
|
|
//Segment.h
|
|
|
|
#pragma once
|
|
|
|
#include "PointSegment.h"
|
|
#include "BezierPointSegment.h"
|
|
|
|
class CPointSeries;
|
|
class CPointSeriesManager;
|
|
class CGDFObject;
|
|
|
|
class CGDFSegment
|
|
{
|
|
public:
|
|
CGDFSegment(CPointSeriesManager* pSeriesManager,CPointSeries* pSeries=NULL,int index0=-1,int index1=-1,FACIESSEGMENTDIRECTION direction=segmentforward);
|
|
CGDFSegment(CPointSeriesManager* pSeriesManager,POINTSERIESID id,int index0=-1,int index1=-1,FACIESSEGMENTDIRECTION direction=segmentforward);
|
|
CGDFSegment();
|
|
~CGDFSegment();
|
|
//Attribute
|
|
private:
|
|
CPointSeriesManager* m_pSeriesManager;
|
|
CPointSeries* m_pSeries;
|
|
POINTSERIESID m_id;
|
|
int m_index0;
|
|
int m_index1;
|
|
FACIESSEGMENTDIRECTION m_direction;//0--forward 1--backward
|
|
|
|
int m_pointcount;
|
|
BOOL m_bRelationWithPointSeries;
|
|
|
|
CGDFObject* m_pObject;
|
|
//Operations
|
|
public:
|
|
void Clear();
|
|
int ConvertLocalIndexToSeriesIndex(int localindex);
|
|
void SetDirection(FACIESSEGMENTDIRECTION direction);
|
|
FACIESSEGMENTDIRECTION GetDirection();
|
|
void SetIndex0(int index);
|
|
int GetIndex0();
|
|
void SetIndex1(int index);
|
|
int GetIndex1();
|
|
void GetPointArray(CArray<FACIESPOINT,FACIESPOINT>& pointarray);
|
|
void GetIndexArray(CArray<POINTINDEX,POINTINDEX>& indexarray);
|
|
void GetMapPointSegmentArray(CBezierStyleMapPointSegmentArray& segmentarray);
|
|
BYTE GetPointAttribute(int localindex,BYTE byteMask);
|
|
int GetPointCount();
|
|
CPointSeriesManager* GetSeriesManager();
|
|
CPointSeries* GetSeries();
|
|
|
|
void Initialize(CPointSeriesManager* pSeriesManager,CPoint2D point,BYTE smooth);
|
|
void Initialize(CPointSeriesManager* pSeriesManager,FACIESPOINT* pointarray,int count);
|
|
BOOL InsertPoint(int localindex,CPoint2D point,BYTE smooth);
|
|
BOOL IsWholePointSeries();
|
|
void SmoothPoint(int localindex);
|
|
void NoSmoothPoint(int localindex);
|
|
void SmoothPoint(int localindex,int count);
|
|
|
|
BOOL OnInitialized();
|
|
BOOL OnInsertPoint(int index0,int index1);
|
|
BOOL OnMovePoint(int index0,int index1);
|
|
void operator=(CGDFSegment& segment);
|
|
void ReverseDirection();
|
|
void SetObject(CGDFObject* pObject);
|
|
CGDFObject* GetObjectG();
|
|
void SetParameter(CPointSeriesManager* pSeriesManager,CPointSeries* pSeries=NULL,int index0=-1,int index1=-1,FACIESSEGMENTDIRECTION direction= segmentforward);
|
|
void SetParameter(CPointSeriesManager* pSeriesManager,POINTSERIESID id,int index0=-1,int index1=-1,FACIESSEGMENTDIRECTION direction= segmentforward);
|
|
void SetParameter(int index0,int index1,FACIESSEGMENTDIRECTION direction);
|
|
|
|
private:
|
|
int CalculatePointCount();
|
|
|
|
};
|