Если я правильно понял вопрос, то где-то так:
void GetImageClip(void)
{
Acad::ErrorStatus es;
ads_name en; ads_point p;
if (acedEntSel("\nSelect clipped IMAGE: ", en, p) != RTNORM) {
return;
}
AcDbObjectId objId;
if (acdbGetObjectId(objId,en) != Acad::eOk) return;
AcDbObjectPointer<AcDbRasterImage> pEnt(objId,AcDb::kForRead);
if ((es = pEnt.openStatus()) == Acad::eOk) {
if (pEnt->isClipped()) {
AcGePoint2dArray clipPixs = pEnt->clipBoundary();
AcGeMatrix3d mTrans; pEnt->getPixelToModelTransform(mTrans);
acutPrintf("\nClip boundary has %d vertices:", clipPixs.length());
for (int i=0; i < clipPixs.length(); i++) {
AcGePoint3d p(clipPixs[i][X],clipPixs[i][Y],0);
p.transformBy(mTrans);
acutPrintf("\n Vertex N%d=(%g %g %g)",i,p[X],p[Y],p[Z]);
}
} else {
acutPrintf("\nIMAGE has not clip boundary!");
}
} else {
acutPrintf("\nError pEnt.openStatus(): %s",acadErrorStatusText(es));
}
return;
}
Обрати внимание, что первая и последняя вершины совпадают.