54 lines
1.6 KiB
C++
54 lines
1.6 KiB
C++
// XBlock.h: interface for the XBlock class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_XBLOCK_H__1DDD017D_B0F7_4F9E_97E7_EE7569C71DF5__INCLUDED_)
|
|
#define AFX_XBLOCK_H__1DDD017D_B0F7_4F9E_97E7_EE7569C71DF5__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
class TELAPI XBlock
|
|
{
|
|
public:
|
|
XBlock();
|
|
|
|
XBlock(Entity entBlk);
|
|
virtual ~XBlock();
|
|
BOOL m_bInitSuccess;
|
|
BOOL IsBlockExist(const TCHAR* szBlkName, BOOL bLoadIt = FALSE);
|
|
const TCHAR* GetBlkName(){return m_szBlkName;};
|
|
AcDbBlockReference *GetBlockReference(){return m_pBlkRef;};
|
|
AcDbBlockTable *GetBlockTable(){return m_pBlockTable;};
|
|
AcDbBlockTableRecord *GetBlockTableRecord(){return m_pRecord;};
|
|
AcDbBlockTableRecordIterator *GetIterator(){return m_pIterator;};
|
|
AcGeMatrix3d GetMatrix3d(){return m_matrix;};
|
|
AcDbObjectId GetBlkId(){return m_eId;};
|
|
double GetEntBlkLength();
|
|
double GetEntBlkHeight();
|
|
void TransformBy(const AcGeMatrix3d& xform);
|
|
void GetBlkExtents(AcGePoint3d &pMax, AcGePoint3d &pMin);
|
|
void GetBlkBreakPt(Entity entBreak, double nBreLen, XPoint &ptBr1, XPoint &ptBr2);
|
|
|
|
protected:
|
|
|
|
BOOL InitBlock();
|
|
void GetBlkBreakByLine(XLine l, double nBreLen, XPoint &ptBr1, XPoint &ptBr2);
|
|
void GetBlkBreakByArc(XArc xarc, double nBreLen, XPoint &ptBr1, XPoint &ptBr2);
|
|
|
|
|
|
AcDbBlockReference *m_pBlkRef;
|
|
AcDbBlockTable* m_pBlockTable;
|
|
AcDbBlockTableRecord *m_pRecord;
|
|
AcDbBlockTableRecordIterator *m_pIterator;
|
|
|
|
AcDbObjectId m_eId;
|
|
AcGeMatrix3d m_matrix;
|
|
Entity m_entBlk;
|
|
TCHAR m_szBlkName[256];
|
|
|
|
};
|
|
|
|
#endif // !defined(AFX_XBLOCK_H__1DDD017D_B0F7_4F9E_97E7_EE7569C71DF5__INCLUDED_)
|