|
今天用arx里的例子遍历region的各个边,发现只能找到一个边,为什么呢?
ads_name sset;
if (acedSSGet("_:S", NULL, NULL, NULL, sset) != RTNORM) {
return Acad::eInvalidAdsName;
}
struct resbuf *pRb;
acedSSNameX(&pRb, sset, 0);
acedSSFree(sset);
struct resbuf *pTemp;
int i;
for (i=1, pTemp = pRb;irbnext)
{ ; }
ads_name ename;
ads_name_set(pTemp->resval.rlname, ename);
pTemp = pTemp->rbnext;
marker = pTemp->resval.rint;
acutRelRb(pRb);
acdbGetObjectId(objId, ename);
AcDbEntity *pEnt;
acdbOpenAcDbEntity(pEnt, objId, AcDb::kForRead);
AcGePoint3d pickpnt;
AcGeMatrix3d xform;
int numIds;
AcDbFullSubentPath *subentIds;
pEnt->getSubentPathsAtGsMarker(AcDb::kEdgeSubentType,
marker, pickpnt, xform, numIds, subentIds);
for( i = 0; i highlight(subentIds[i]);
pEnt->unhighlight(subentIds[i]);
}
delete []subentIds;
pEnt->close();
调试的时候发现numIds的值怎么是1呢?为什么只得到一个边? |
|