|
- Acad::ErrorStatus safeGetTransformedCopy(const AcDbText* pText,const
- AcGeMatrix3d xform, AcDbEntity*& pNewEntity)
- {
- static AcDbText text;
- Acad::ErrorStatus es;
- text.copyFrom(pText);
- AcGePoint3d posorig(text.position());
- AcGePoint3d alignorig(text.alignmentPoint());
- AcGePoint3d pos,align;
- AcGeVector3d norm(text.normal());
- acdbWcs2Ecs(asDblArray(posorig),asDblArray(pos),asDblArray(norm),Adesk::kFalse);
- double elev = pos.z;
- if (fabs(elev)>1E-10)
- {
- pos.z = 0;
- align.z =0;
- acdbEcs2Wcs(asDblArray(pos),asDblArray(pos),asDblArray(norm),Adesk::kFalse);
- acdbEcs2Wcs(asDblArray(align),asDblArray(align),asDblArray(norm),Adesk::kFalse);
- text.setPosition(pos);
- text.setAlignmentPoint(align);
- }
- if ((es = text.getTransformedCopy(xform,pNewEntity))==Acad::eOk)
- {
- AcDbText* pNewText = NULL;
- if ((pNewText = AcDbText::cast(pNewEntity)) && fabs(elev)>1E-10)
- {
- posorig.transformBy(xform);
- alignorig.transformBy(xform);
- pNewText->setPosition(posorig);
- pNewText->setAlignmentPoint(alignorig);
- }
- }
- return es;
- }
- acdbWcs2Ecs(asDblArray(alignorig),asDblArray(align),asDblArray(norm),Adesk::kFalse);
复制代码 |
|