103 lines
3.7 KiB
C++
103 lines
3.7 KiB
C++
#ifndef __MULTIVIEW_INSERT_H
|
|
#define __MULTIVIEW_INSERT_H
|
|
//#include "DbBlockInsert.h"
|
|
|
|
class TARCH_EXP TDbMultiViewInsert: public TDbEntity {
|
|
DECLARE_TENTBASE();
|
|
ACRX_DECLARE_MEMBERS(TDbMultiViewInsert);
|
|
private:
|
|
const static Adesk::UInt8 g_nVersion;
|
|
protected:
|
|
Adesk::UInt8 m_nFlag;
|
|
AcDbHardPointerId m_idBlock2d, m_idBlock3d;
|
|
XPoint m_ptLocation;
|
|
double m_xScale, m_yScale, m_zScale;
|
|
double m_nRotation;
|
|
|
|
public:
|
|
AcDbObjectId GetBlockId(BOOL b3D) const {
|
|
return (b3D? m_idBlock3d : m_idBlock2d);
|
|
}
|
|
AcGeScale3d GetScaleFactors() const {
|
|
return AcGeScale3d(m_xScale, m_yScale, m_zScale);
|
|
}
|
|
XPoint GetLocation() const {
|
|
return m_ptLocation;
|
|
}
|
|
double GetRotation() const {
|
|
return m_nRotation;
|
|
}
|
|
void SetBlockId(BOOL b3D, AcDbObjectId id) {
|
|
assertWriteEnabled();
|
|
if(b3D) m_idBlock3d=id;
|
|
else m_idBlock2d=id;
|
|
}
|
|
void SetLocation(XPoint pt) {
|
|
assertWriteEnabled();
|
|
m_ptLocation=pt;
|
|
}
|
|
void SetRotation(double nRot) {
|
|
assertWriteEnabled();
|
|
m_nRotation=nRot;
|
|
}
|
|
void SetScaleFactors(AcGeScale3d scales) {
|
|
assertWriteEnabled();
|
|
m_xScale=scales[0];
|
|
m_yScale=scales[1];
|
|
m_zScale=scales[2];
|
|
}
|
|
|
|
|
|
AcDbBlockReference *NewBlock(BOOL b3D) const;
|
|
TBlockGeomInfo GetGeomInfo() const;
|
|
Acad::ErrorStatus UpdateFrom(const TBlockGeomInfo &geom);
|
|
|
|
protected:
|
|
Acad::ErrorStatus DrawOneView(XExplodeDraw &dc, BOOL bDraw3d) const;
|
|
public:
|
|
TDbMultiViewInsert();
|
|
virtual BOOL IsValid() const;
|
|
virtual bool IsModelEntity() const{return true;}
|
|
virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag);
|
|
virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const;
|
|
virtual Acad::ErrorStatus ExplodeOrDraw3d(XExplodeDraw &dc) const;
|
|
virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const;
|
|
virtual void GetTips(DList<TObjInfoUnit> &) const; //È¡¶¯Ì¬ÊôÐÔÏÔʾÊý¾Ý
|
|
virtual int GetFirstVersion()const{return 6;}//ok
|
|
|
|
// Overriden function 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 subGetGripPoints(AcGePoint3dArray& gripPoints,
|
|
AcDbIntArray& osnapModes,
|
|
AcDbIntArray& geomIds) const;
|
|
virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray & stretchPoints) const;
|
|
virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform);
|
|
virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices,
|
|
const AcGeVector3d& offset);
|
|
virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices,
|
|
const AcGeVector3d& offset);
|
|
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 subIntersectWith(const AcDbEntity* ent,
|
|
AcDb::Intersect intType,
|
|
AcGePoint3dArray& points,
|
|
INT_PTR thisGsMarker,
|
|
INT_PTR otherGsMarker) const;
|
|
|
|
virtual int GetCtrlToggleIndex()const{return 0;}//ok
|
|
};
|
|
|
|
|
|
|
|
#endif |