Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

93 lines
3.5 KiB
C++

//------------------------------------------------------------------------+
// Copyright (C), 1998-2012, Beijing Tangent Software Co. Ltd.
// = FileName : TDbStruSelfBase.h
// = Version : ver1.0
// = Author : zyc
// = CreateDate : 2012-11-05
// = Description: 独立基础平面图类声明
// = Maintainers:
//
//------------------------------------------------------------------------+
#ifdef TASD
#ifndef _TDBSTRUSELFBASE_H_
#define _TDBSTRUSELFBASE_H_
#ifndef _TDBSTRUENTITYBASE_H_
#include "TDbStruEntityBase.h"
#endif
// KEY_SECTYP int 轮廓线类型
// KEY_B double 独基宽
// KEY_H double 独基高
// KEY_POS AcGePoint3d 插入点
// KEY_AXANG double 轴转角
// KEY_H2 double 独基z方向高度
// KEY_CLAB CString 构件编号
#define KEY_INSPTX _T("InsPtX") // double 偏心距X
#define KEY_INSPTY _T("InsPtY") // double 偏心距Y
class TARCH_EXP TDbStruSelfBase : public TDbStruEntityBase
{
DECLARE_TENTBASE();
ACRX_DECLARE_MEMBERS(TDbStruSelfBase);
public:
TDbStruSelfBase();
virtual ~TDbStruSelfBase();
// AcDbEntity
virtual Acad::ErrorStatus dwgInFields (AcDbDwgFiler* pFiler);
virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler* pFiler) const;
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
virtual Acad::ErrorStatus subGetGripPoints(
AcGePoint3dArray &gripPoints,
AcDbIntArray &osnapModes,
AcDbIntArray &geomIds) const;
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray& stretchPoints) const;
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray &indices, const AcGeVector3d &offset);
virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray &indices, const AcGeVector3d &offset);
virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const;
// TEntityBase
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
virtual Acad::ErrorStatus ExplodeOrDraw2d(TGGiExplodeDrawBase &dc) const;
virtual Acad::ErrorStatus GetExtents2d(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const;
virtual Acad::ErrorStatus GetExtents(TADSGePoint3d &ptLow, TADSGePoint3d &ptUp) const;
virtual const TCHAR *GetDefaultLayer() const;
virtual BOOL IsValid() const;
// 支持夹点ctrl功能切换
virtual int GetCtrlToggleIndex()const;
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);
virtual TEntityBase::DrawType GetDrawType() const;
virtual bool GetStandardFaceBody(AcDbVoidPtrArray& arFacePtrs) const;
virtual bool GetSafeProtectedSpace(AcDbVoidPtrArray& arFacePtrs) const;
virtual bool GetSection(
const AcDbFace &face,
const AcGeVector3d &vtPlaneSecDir,
std::vector<TObjSectionRecord> &sectionRecords,
AcDbVoidPtrArray &arFillPtrs) const;
virtual CString GetXml(const AcGeMatrix3d& mat) const;
virtual int GetFirstVersion()const;
virtual bool IsModelEntity() const;
void GenerateOutline(); // 生成轮廓线
const TGGePoly2D& GetOutline(); // 获取轮廓线
// 裁剪关系数组操作
void SetAssocIds(const AcDbObjectIdArray& ids);
void GetAssocIds(AcDbObjectIdArray& ids);
void RemoveAssocIds(const AcDbObjectId& id);
private:
void UpdateInfoFromOutlineRect(); // 根据轮廓线获取实体数据:插入点、宽、高,矩形
void UpdateInfoToOutlineRect(); // 根据实体数据生成轮廓线,矩形
static const Adesk::UInt8 g_nVersion;
TGGePoly2D m_polyOutline;
AcDbObjectIdArray m_arAssocBeamIds; //裁剪独基的梁对象数组
};
#endif
#endif