Files
envi-code/SourceCode/Code2026/tg_shs/inc/subgeo/TPGeDscPoint3D.h
T
2026-09-28 15:28:50 +08:00

81 lines
1.7 KiB
C++

//-------------------------------------------------------------------------------------------------------+
// Copyright (C), 1998-2007, Beijing Tangent Software Co. Ltd.
// = FileName : TPGeDscPoint3D 类
// = Version : ver2.0
// = Author : wlw
// = CreateDate : 2002-09-09
// = Description: TPGeDscPoint3D 声明
// = Maintainers:
//
//-------------------------------------------------------------------------------------------------------+
#ifndef _TPGEDSCPOINT3D_H_
#define _TPGEDSCPOINT3D_H_
#ifndef _TGPOINT_H_
#include "TGPoint.h"
#endif
#ifndef _TDUALPTRLIST_H_
#include "TDualPtrList.h"
#endif
#ifndef _TPGEDSCEDGE3D_H_
#include "TPGeDscEdge3D.h"
#endif
#ifndef _TTABLE_H_
#include "TTable.h"
#endif
class TGPoint3D;
class GEOAPI TPGeDscPoint3D : public TGPoint
{
public:
TPGeDscPoint3D(const TPGeDscPoint3D &pt);
TPGeDscPoint3D(double X = 0,double Y = 0,double Z = 0,double value = 0);
virtual ~TPGeDscPoint3D();
void SetValue(double value);
double GetValue()const;
void AppendValue(double value);
long GetEdgeNum()const;
void AppendEdge(TPGeDscEdge3D*p);
void RemoveEdge(TPGeDscEdge3D*p);
//找到pPtTo的边,失败返回NULL
TPGeDscEdge3D* FindEdge(TPGeDscPoint3D *pPtTo);
//去除所有连接数据,且通知连接点也更新,不删除边本身!
void RemoveAllEdge();
//取出所有邻接点
void GetConnectPoint(TTable<TPGeDscPoint3D*> &connectPoint);
//特殊线性插值,失败返回NULL
TPGeDscPoint3D *GetFitPoint(double value,double vSnap);
//pEdge为出发边,找邻边的邻接点(逆时针邻边优先),最后pEgde返回当前边
TPGeDscPoint3D* FindNext(TPGeDscEdge3D*&pEdge);
TGPoint3D* CreatePoint();
protected:
double m_fValue;
TDualPtrList<TPGeDscEdge3D*> allEdge;
//重合点计数
int m_ptCount;
};
#endif