ObjectARX, AutoCAD. Среда программирования библиотеки C++

       

Типовой Код для dwgInFields ()


Следующее - типовой код для AsdkPoly:: dwgInFields ():

Acad::ErrorStatus

AsdkPoly::dwgInFields(AcDbDwgFiler* filer)

{

assertWriteEnabled();

Acad::ErrorStatus es;

if ((es = AcDbCurve::dwgInFields(filer)) != Acad::eOk)

{

return es;

}

// Object Version - must always be the first item.

//

Adesk::Int16 version;



filer->readItem(&version);

if (version > VERSION)

return Acad::eMakeMeProxy;

switch (version)

{

case 1:

{

AcGePoint3d center;

filer->readPoint3d(&center);

AcGePoint3d startPoint;

filer->readPoint3d(&startPoint);

filer->readInt32(&mNumSides);

filer->readVector3d(&mPlaneNormal);

acutDelString(mpName);

filer->readString(&mpName);

filer->readHardPointerId(&mTextStyle);

//convert data from old format

acdbWcs2Ecs(asDblArray(center),asDblArray(center),

asDblArray(mPlaneNormal),Adesk::kFalse);

mCenter.set(center.x,center.y);

mElevation = center.z;

acdbWcs2Ecs(asDblArray(startPoint),asDblArray(startPoint),

asDblArray(mPlaneNormal),Adesk::kFalse);

mStartPoint.set(startPoint.x,startPoint.y);

assert(mElevation == startPoint.z);

break;

}

case 2:

filer->readPoint2d(&mCenter);

filer->readPoint2d(&mStartPoint);

filer->readInt32(&mNumSides);

filer->readVector3d(&mPlaneNormal);

acutDelString(mpName);

filer->readString(&mpName);

filer->readHardPointerId(&mTextStyle);

filer->readDouble(&mElevation);

break;

default:

assert(false);

}

return filer->filerStatus();

}



Содержание раздела