93 lines
3.8 KiB
C++
93 lines
3.8 KiB
C++
#ifndef _DBLANDFORM_H
|
|
#define _DBLANDFORM_H
|
|
|
|
#include "TPGeLandform.h"
|
|
|
|
#define _CMF_NO2D 0x000001
|
|
#define _CMF_NO3D 0x000002
|
|
#define _CMF_NO_GRID3D 0x000004
|
|
#define _CMF_NO_CURVE2D 0x000008
|
|
#define _CMF_HAS_CURVE3D 0x000010
|
|
#define _CMF_SQFIT 0x000020//平方插值
|
|
#define _CMF_GRADIENT3D 0x000040//
|
|
//大地模型
|
|
class TARCH_EXP TDbLandform: public TDbEntity
|
|
{
|
|
DECLARE_TENTBASE();
|
|
ACRX_DECLARE_MEMBERS(TDbLandform);
|
|
private:
|
|
const static Adesk::UInt8 g_nVersion;
|
|
protected:
|
|
XPoly2D m_polyOutline;
|
|
DList<XPoly2D> m_lstEqHeightCurve;
|
|
double m_nDistX,m_nDistY;//网格精度
|
|
Adesk::UInt16 m_nMinColor,m_nMaxColor;
|
|
Adesk::UInt32 m_nCMFlag;
|
|
public:
|
|
TDbLandform();
|
|
|
|
void SetOutline(const XPoly2D&poly);
|
|
void SetColor(Adesk::UInt16 c0,Adesk::UInt16 c1){assertWriteEnabled();m_nMinColor=c0;m_nMaxColor=c1;}//ok
|
|
void AppendPoly(const XPoly2D& poly);//RETURN POLY_*
|
|
void Reset(){assertWriteEnabled();m_lstEqHeightCurve.Reset();}//ok
|
|
|
|
void SetHas2D(BOOL bHas=TRUE);
|
|
void SetHas3D(BOOL bHas=TRUE);
|
|
void SetNoGrid3D(BOOL bTrue);
|
|
void SetHasCurve3D(BOOL bTrue);
|
|
void SetNoCurve2D(BOOL bTrue);
|
|
void SetSqFit(BOOL bTrue);
|
|
void SetGradient3D(BOOL bTrue);
|
|
void SetGridSizeX(double size){assertWriteEnabled();m_nDistX=size;}//ok
|
|
void SetGridSizeY(double size){assertWriteEnabled();m_nDistY=size;}//ok
|
|
|
|
BOOL Has2D() const;
|
|
BOOL Has3D() const;
|
|
BOOL HasGrid3D()const{return (m_nCMFlag&_CMF_NO_GRID3D)==0;}//ok
|
|
BOOL HasCurve3D()const{return (m_nCMFlag&_CMF_HAS_CURVE3D)!=0;}//ok
|
|
BOOL HasCurve2D()const{return (m_nCMFlag&_CMF_NO_CURVE2D)==0;}//ok
|
|
BOOL IsSqFit()const{return (m_nCMFlag&_CMF_SQFIT)!=0;}//ok
|
|
BOOL IsGradient3D()const{return (m_nCMFlag&_CMF_GRADIENT3D)!=0;}//ok
|
|
double GetElevation()const;
|
|
double GetGridSizeX()const{return m_nDistX;}//ok
|
|
double GetGridSizeY()const{return m_nDistY;}//ok
|
|
void CreateLandform(GLandform&land)const;
|
|
public:
|
|
// Override from AcDbEntity
|
|
virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const;
|
|
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler*);
|
|
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const;
|
|
virtual Acad::ErrorStatus dxfInFields (AcDbDxfFiler*);
|
|
virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const;
|
|
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
|
|
virtual Acad::ErrorStatus subGetOsnapPoints(
|
|
AcDb::OsnapMode osnapMode,
|
|
INT_PTR gsSelectionMark,
|
|
const AcGePoint3d& ptPick,
|
|
const AcGePoint3d& lastPoint,
|
|
const AcGeMatrix3d& viewXform,
|
|
AcGePoint3dArray& snapPoints,
|
|
AcDbIntArray& geomIds) const;
|
|
virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints,
|
|
AcDbIntArray& osnapModes,
|
|
AcDbIntArray& geomIds) const;
|
|
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,
|
|
const AcGeVector3d& offset);
|
|
|
|
|
|
// Override from TEntityBase
|
|
virtual BOOL IsValid() const;
|
|
virtual bool IsModelEntity() const{return true;}
|
|
virtual int GetFirstVersion()const{return 7;}//ok
|
|
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const;
|
|
virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &dc) const;
|
|
virtual void GetTips(DList<TObjInfoUnit> &) const; //取动态属性显示数据
|
|
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
|
|
virtual int GetCtrlToggleIndex()const{return 3;}//ok
|
|
virtual const TCHAR* GetDefaultLayer()const;
|
|
virtual void UnionScale(double nScale);
|
|
};
|
|
|
|
void InitDbLandform(BOOL bTrue);
|
|
#endif |