|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include <functional>
|
|
|
|
|
|
#include "itemfocusrect.h"
|
|
|
|
|
|
#include <GdiPlus.h>
|
|
|
|
|
|
#include "QTransformTracker.h"
|
|
|
|
|
|
#include "VoronoiMap/InterfaceElements.h"
|
|
|
|
|
|
#include "Util.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NItem
|
|
|
|
|
|
{
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
class CItemSelect : public CItemFocusRect
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
enum SelectMode
|
|
|
|
|
|
{
|
|
|
|
|
|
selnone, // <20><>ѡ
|
|
|
|
|
|
netSelect,
|
|
|
|
|
|
move,
|
|
|
|
|
|
size,
|
|
|
|
|
|
};
|
|
|
|
|
|
SelectMode selectMode;
|
|
|
|
|
|
bool m_isLocationChanged;
|
|
|
|
|
|
public:
|
|
|
|
|
|
CItemSelect(CSigmaDoc * ppDoc);
|
|
|
|
|
|
virtual ~CItemSelect(void);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void OnLButtonDblClk(UINT nFlags, CPoint point) override;
|
|
|
|
|
|
virtual void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override;
|
|
|
|
|
|
virtual void OnLButtonUp(CDC *pDC, UINT nFlags, CPoint point, int vk=0) override;
|
|
|
|
|
|
virtual int OnMouseMove(CDC *pDC, UINT nFlags, CPoint point) override;
|
|
|
|
|
|
void MoveElementsTo(CPoint point);
|
|
|
|
|
|
virtual void OnRButtonDown(UINT nFlags, CPoint point) override;
|
|
|
|
|
|
virtual BOOL OnMoving();
|
|
|
|
|
|
void DrawTrackPath(CDC* pDC);
|
|
|
|
|
|
virtual BOOL OnSetCursor(CPoint pt, int& handle);
|
|
|
|
|
|
BOOL OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) override;
|
|
|
|
|
|
BOOL OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) override;
|
|
|
|
|
|
virtual void OnDraw(CXyDC* pDC) override;
|
|
|
|
|
|
virtual void OnDraw(CXyDC* pXyDC, CDC* pDC) override;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>걳ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><EFBFBD>ͱ߿<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
int CreateVoronoiMap();
|
|
|
|
|
|
int CreateVoronoiMap(POSITION& posCurve, CPositionList& addCurveList);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
int CreateDelaunayMap();
|
|
|
|
|
|
int CreateDelaunayMap(POSITION& posCurve, CPositionList& addCurveList);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ѡ<EFBFBD>еĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>г<EFBFBD>ϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param minSpacing <EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
int SimplifySelectPoints(double minSpacing);
|
|
|
|
|
|
|
|
|
|
|
|
void ReloadTrackerPath(void);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* ɾ<EFBFBD><EFBFBD>ѡ<EFBFBD>е<EFBFBD>ͼԪ
|
|
|
|
|
|
*
|
|
|
|
|
|
*/
|
|
|
|
|
|
virtual int DeleteSelection(void);
|
|
|
|
|
|
|
|
|
|
|
|
void InvalidateSelection(void);
|
|
|
|
|
|
|
|
|
|
|
|
QTransformTracker& GetTracker();
|
|
|
|
|
|
|
|
|
|
|
|
//HTracker * GetTracker();
|
|
|
|
|
|
void EnableTracker(bool bEnbale);
|
|
|
|
|
|
//QTransformTracker* GetQTracker(void);
|
|
|
|
|
|
bool InitItemForGrid();
|
|
|
|
|
|
CPositionList m_selection; // <20><>ѡ<EFBFBD>е<EFBFBD>ͼԪ<CDBC>б<EFBFBD>
|
|
|
|
|
|
CRect8 m_lastRect; // <20><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ѡ<EFBFBD><D1A1>ʱ<EFBFBD><CAB1> Rect
|
|
|
|
|
|
int GetSelectedCount(void);
|
|
|
|
|
|
bool GetPointsZRange(double& zMin, double& zMax);
|
|
|
|
|
|
bool SetPointsColor(CString colorItemsData, double dWidth, double dHeight);
|
|
|
|
|
|
void SelectWithinRect(CRect8 rect, BOOL bAdd = FALSE);
|
|
|
|
|
|
void SetEnableRotate(bool enable);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
vector<int> SelectTypes;
|
|
|
|
|
|
void CloneSelection();
|
|
|
|
|
|
void Remove(POSITION posObj);
|
|
|
|
|
|
|
|
|
|
|
|
int nDragHandle;
|
|
|
|
|
|
CRect8 m_posRect;
|
|
|
|
|
|
|
|
|
|
|
|
bool m_bPointTextSelected; //<2F>Ƿ<EFBFBD><C7B7>ǵ<EFBFBD>Ԫ<EFBFBD>ص<EFBFBD><D8B5>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>ֱ<EFBFBD>ѡ<EFBFBD><D1A1>
|
|
|
|
|
|
CItem * m_pItemForGrid;
|
|
|
|
|
|
//HTracker m_tracker;
|
|
|
|
|
|
QTransformTracker m_Tracker;
|
|
|
|
|
|
bool m_bTrackerEnable;
|
|
|
|
|
|
bool m_bEnableRotate;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
vector<int>& GetSelectTypes() { return SelectTypes; }
|
|
|
|
|
|
void SetSelectTypes(int* types, int size);
|
|
|
|
|
|
void Deselect(POSITION posObj);
|
|
|
|
|
|
void LoadRectPath(Gdiplus::GraphicsPath &path, CRect8 rect);
|
|
|
|
|
|
void LoadCurvePath(Gdiplus::GraphicsPath& path, CCurveEx* pc);
|
|
|
|
|
|
void LoadPath(POSITION pos);
|
|
|
|
|
|
void LoadPath(COne* pOne);
|
|
|
|
|
|
int EndTransformSelection(UINT nFlags, CPoint point, int handle);
|
|
|
|
|
|
BOOL TransformSelection(float* matrix, int nMode, void* pActionItem);
|
|
|
|
|
|
|
|
|
|
|
|
void SelectSameLayer(void);
|
|
|
|
|
|
void SelectSameProperty(void);
|
|
|
|
|
|
void Select(POSITION posObj, BOOL bAdd, CPoint2D& point);
|
|
|
|
|
|
void Select(POSITION posObj, BOOL bAdd = FALSE);
|
|
|
|
|
|
void Select(CPositionList& select, BOOL bAdd = FALSE);
|
|
|
|
|
|
|
|
|
|
|
|
int CurveInRegion(CCurveEx* pCurve, CCurveEx* pRgn);
|
|
|
|
|
|
int IsInside(CCurveEx* pRgn, CRect8& rgnRange, COne* pOne);
|
|
|
|
|
|
int SelectInCurve();
|
|
|
|
|
|
int SelectInCurve(int elementType);
|
|
|
|
|
|
int SelectInCurveEx(double factor);
|
|
|
|
|
|
int SelectInCurveEx(int elementType, double factor);
|
|
|
|
|
|
int SelectSamePropertyElements();
|
|
|
|
|
|
void MakeViewData(COne * pOneSelect, CString &strSelect);
|
|
|
|
|
|
int SelectByNames(CString& data);
|
|
|
|
|
|
void SelectAll(void);
|
|
|
|
|
|
void ClearAll(CDC* pDC);
|
|
|
|
|
|
void ReversalSelectAll(void);
|
|
|
|
|
|
void SelectAll(UINT nElementType, BOOL bAdd = FALSE);
|
|
|
|
|
|
virtual void CancelSelection(void);
|
|
|
|
|
|
BOOL IsSelected(POSITION pos);
|
|
|
|
|
|
|
|
|
|
|
|
int GetCountSelected(void);
|
|
|
|
|
|
void OffsetSelected(double dx, double dy);
|
|
|
|
|
|
CRect8 GetSelectedRect(void);
|
|
|
|
|
|
CRect GetTrackerRect();
|
|
|
|
|
|
|
|
|
|
|
|
void DeleteItemGrid(void);
|
|
|
|
|
|
void GetSelectedNames(CString& names);
|
|
|
|
|
|
bool Past(int nPasteMode); //0=ճ<><D5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>1=ճ<><D5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>㣬2=ճ<><D5B3>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
|
|
|
|
|
|
void PasteNative(CXy* pDraw, CPositionList& list, COleDataObject& dataObject, bool bPasteInCurrentLayer);
|
|
|
|
|
|
void Serialize (CXy* pDraw, CPositionList& list, CArchive& ar, bool bPasteInCurrentLayer);
|
|
|
|
|
|
bool WriteData(CXy* pDraw, BYTE*& outBuffer, int& destLen, int formatCode);
|
|
|
|
|
|
POSITION PasteEmbedded(CXy* pDraw, COleDataObject& dataObject, CPoint point);
|
|
|
|
|
|
void Copy(void);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL IsSameType(void); //ѡ<>е<EFBFBD><D0B5><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>ͳһ
|
|
|
|
|
|
BOOL IsElementType(int nElementType);
|
|
|
|
|
|
BOOL IsCanPaste(void);
|
|
|
|
|
|
|
|
|
|
|
|
CItem* GetItemForGrid(void);
|
|
|
|
|
|
CItem* FindItemForGrid(POSITION pos, BOOL bMulElement=FALSE);
|
|
|
|
|
|
BOOL IsCanMoveCoor(COne* pOne);
|
|
|
|
|
|
|
|
|
|
|
|
POSITION SelectionToFillPath(void);
|
|
|
|
|
|
POSITION GroupSelectionToSymbol();
|
|
|
|
|
|
POSITION GroupSelectionToBlock();
|
|
|
|
|
|
BOOL UngroupAll(int& layerCount);
|
|
|
|
|
|
BOOL UngroupSymbol(POSITION pos, bool nReplaceExist, int& layerCount);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL IsSelectionChanged;
|
|
|
|
|
|
CItem* GetItem() {
|
|
|
|
|
|
return m_pItemForGrid;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SetItem(CItem * pOther) {
|
|
|
|
|
|
this->m_pItemForGrid = pOther;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>ѡ<EFBFBD>е<EFBFBD>ͼԪ
|
|
|
|
|
|
*
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
std::list<COne*> SelectionCones();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡѡ<EFBFBD>еĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
int PointCount();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* Ԫ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ɢ <EFBFBD><EFBFBD>emf<EFBFBD><EFBFBD>
|
|
|
|
|
|
* \param pos <EFBFBD><EFBFBD>ǰѡ<EFBFBD><EFBFBD>ͼԪ
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
int DisperseMetaEmf(POSITION pos, CXy* pXy, long timestamp);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD>浱ǰͼԪΪKML
|
|
|
|
|
|
* \param pos <EFBFBD><EFBFBD>ǰѡ<EFBFBD><EFBFBD>ͼԪ
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
int SaveSelectKml(POSITION pos, CXy* pXy, CString path);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CXy* SelectionToXy();
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡѡ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD>պϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>β<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>µıպ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \return
|
|
|
|
|
|
* \note <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>µĶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ֶ<EFBFBD><EFBFBD>ͷ<EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
std::vector<CCurveEx*> CollectPolygons();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD>жϸ<EFBFBD>ͼԪ<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><EFBFBD>ҿɱ༭
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param pOne
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
static bool COneVisibleAndEditable(COne *pOne);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD>ռ<EFBFBD>Ŀ<EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param layer ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
std::list<CPolyline> CollectLayerPolyline(CString layer);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡ<EFBFBD>߿<EFBFBD><EFBFBD>ڵĶϲ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param pBlock <EFBFBD>߿<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \param layerName <EFBFBD>ϲ<EFBFBD><EFBFBD><EFBFBD>λ
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
std::list<CCurveEx*> CollectFlts(CCurveEx *pBlock);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡ<EFBFBD>߿<EFBFBD><EFBFBD>ڵľ<EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param pBlock <EFBFBD>߿<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
std::vector<CWellPoint> CollectWells(CCurveEx *pBlock);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>һ<EFBFBD><EFBFBD>ͼԪ
|
|
|
|
|
|
*
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
POSITION FirstPositionAfterWell();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param layerName ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \param result <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>걳ͼ
|
|
|
|
|
|
* \param addCurveList <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
void DrawResultToLayer(CString layerName, std::list<CPolyline>& result, CPositionList& addCurveList);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param flts <EFBFBD>ϲ<EFBFBD>
|
|
|
|
|
|
* \param wells <EFBFBD><EFBFBD>
|
|
|
|
|
|
* \param border <EFBFBD>߿<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \param results <EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
int DrawDelaunay(std::list<CPolyline> &flts, std::vector<CWellPoint> &wells, CPolyline &border, std::list<CPolyline> *results);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD>ƹ걳ͼ
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param flts <EFBFBD>ϲ<EFBFBD>
|
|
|
|
|
|
* \param wells <EFBFBD><EFBFBD>
|
|
|
|
|
|
* \param border <EFBFBD>߿<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \param results <EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
int DrawVorono(std::list<CPolyline> &flts, std::vector<CWellPoint> &wells, CPolyline &border, std::list<CPolyline> *results);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param flts <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
std::vector<CWellPoint> GetWellByDelaunay(std::list<CPolyline> &flts);
|
|
|
|
|
|
|
|
|
|
|
|
std::list<COne*> PositionsToCones(CPositionList &list);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PointXYZ
|
|
|
|
|
|
*
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
std::vector<CPointXYZ> SelectedPointXYZs();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵĵ<EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param curves <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
std::vector<CPointXYZ> GetPointsInCurves(std::vector<CCurveEx *> &curves);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD>ĵ㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٳ<EFBFBD>ϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD>еĵ<EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param removedPoints <EFBFBD><EFBFBD>ϡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
|
|
|
|
|
* \param needRemoved <EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>Ҫ<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD>Ľڵ<EFBFBD>
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
int FindNeedRemovePoints(const std::vector<CPointXYZ> &removePoints, CPositionList &needRemoved);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param points
|
|
|
|
|
|
* \param idxReserved
|
|
|
|
|
|
* \param
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
static bool CPointXYZIdxContains(const std::vector<CPointXYZ> &points, const CPointXYZ &point);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡû<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>±꣬<EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param text
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
CString RemoveSuperSubscript(const CString& text);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD>±<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD>ӳɵ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*
|
|
|
|
|
|
* \param text
|
|
|
|
|
|
* \return
|
|
|
|
|
|
*/
|
|
|
|
|
|
CString GetSuperSubscript(const CString& text);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
}
|