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.

127 lines
3.3 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////
//FaciesObject.h
#pragma once
#include "CommonDefines.h"
class FACIESPOINT;
class CGDFLayer;
class CGDFSegment;
class CPointSegmentArray;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>Ԫ<EFBFBD><D4AA>,<2C>ǵ㡢<C7B5>ߡ<EFBFBD><DFA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4>Ļ<EFBFBD><C4BB><EFBFBD>
class CGDFObject : public CObject
{
public:
DECLARE_SERIAL(CGDFObject)
CGDFObject(CGDFLayer* pLayer=NULL);
virtual ~CGDFObject();
//Attributes
public:
//enum EDITMODE
//{
// modeNone,
// modeCreate,
// modeEdit,
// modeMove,
// modeHeadAdd,
// modeEndAdd,
// modeResize,
// modeMovePoint,
// modeInsertPoint,
// modeChangeRound,
// modeChangeTopInterface,
// modeChangeBottomInterface,
// modeNewStratum,
// modeNewSedimentUnit
//};
protected:
CObject* m_pManagerCell;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
CGDFLayer* m_pLayer;
double m_dZoomFactor;
BOOL m_bModifyFlag;
CString m_strName;
CString m_strTypeName;
CObject* m_pManagerObject;
//EDITMODE m_editmode;
CTypedPtrArray<CPtrArray,CGDFSegment*> m_segmentarray;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
int m_iNodePointCount;
int m_iNodeDrawPointCount;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ
CRect m_drawrect;
CRect8 m_maprect;
CPoint m_firstpoint;
CPoint m_oldpoint;
//CYAPropertyManager m_PropertyManager;
CString m_strClassName;
BOOL m_bVisible;
ULONGLONG m_ullTimeStamp;
BOOL m_bReceiveChangeMessage;//Ϊ<>˱<EFBFBD><CBB1><EFBFBD><EFBFBD>໥Ӱ<E0BBA5><D3B0><EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>ѭ<EFBFBD><D1AD>
//Operations
public:
void AddSegment(CGDFSegment* pSegment);
//<2F>߼<EFBFBD><DFBC><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>Ļ<EFBFBD><C4BB><EFBFBD>
virtual void BuildControlNodePointArray();
virtual void Clear();
void ClearPoint();
virtual void DuplicateObject(CGDFObject** ppObject,CGDFLayer* pLayer);//<2F><><EFBFBD>ƵĶ<C6B5><C4B6><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void DuplicateObject(CGDFObject* pObject);
void DeleteAllSegment();
virtual void DuplicateAttribute(CGDFObject* pObject);
CString GetClassNameG();
virtual int GetControlNodePointCount();//<2F><><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD><C6B5><EFBFBD>
virtual int GetControlNodeDrawPointCount();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ<EFBFBD><C6B5><EFBFBD>,<2C><><EFBFBD>ܶ<EFBFBD><DCB6><EFBFBD>ʵ<EFBFBD>ʵĿ<CAB5><C4BF>Ƶ<EFBFBD><C6B5><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>Ŀ<EFBFBD><C4BF>Ƶ㱣<C6B5><E3B1A3><EFBFBD><EFBFBD>m_nodedrawpointarray<61><79>,<2C><><EFBFBD><EFBFBD><EFBFBD>еĸ<D0B5><C4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>GetControlNodeDrawPointCount()<29>ķ<EFBFBD><C4B7><EFBFBD>ֵ,
//ֻ<><D6BB>CObjectPolyline<6E><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_borderpointdrawarray<61><79>,<2C><><EFBFBD><EFBFBD><EFBFBD>еĸ<D0B5><C4B8><EFBFBD><EFBFBD><EFBFBD>GetControlNodeDrawPointCount()*3
virtual POINT* GetControlNodeDrawPointArray();
void GetControlNodePointArray(CArray<FACIESPOINT,FACIESPOINT>& pointarray);
virtual CPoint2D* GetControlNodeMapPointArray();
virtual CRect GetDrawRect();
CGDFLayer* GetLayer();
virtual void SetLayer(CGDFLayer* pLayer);
virtual CRect8 GetMapRect();
virtual BYTE GetPointAttribute(int index,BYTE byteMask);
//CYAPropertyManager* GetPropertyManager();
CGDFSegment* GetSegment(int index);
void SetSegment(int index,CGDFSegment& segment);
int GetSegmentCount();
CString GetTypeName();
void SetTypeName(LPCTSTR str);
//<2F><><EFBFBD><EFBFBD>Segment<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
virtual BOOL OnChanged(CGDFSegment* pSegment=NULL);//һ<><D2BB><EFBFBD><EFBFBD>Segment<6E>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>index0<78>ı<EFBFBD><C4B1><EFBFBD>
void SetManagerObject(CObject* pObject);
CObject* GetManagerObject();
//void SetModifyFlag(BOOL bValue);
virtual BOOL GetModifyFlag();
CString GetName();
BOOL SetName(LPCTSTR str);
BOOL GetVisible();
void SetVisible(BOOL bVisible);
double GetZoomFactor();
virtual void SetZoomFactor(double dZoomFactor);
void GetControlNodeIndexArray(CArray<POINTINDEX,POINTINDEX>& indexarray);
virtual void GetCurveEx(vector<CCurveEx*>& CurveVec,vector<CString>& faciescode);
friend class CGDFObjectCreator;
};