马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
该函数的完整语法:
virtual Acad::ErrorStatus AcDbEntity::getGeomExtents(AcDbExtents& extents) const;
其中AcDbExtents是ARX为该函数专门设计的类,具体使用在以下代码中介绍。
如果,你要选择的实体是完全在规定的矩形区域内部,可以参考以下代码示例.
 - AcDbEntity *pEnt;
- AcDbExtents *extents;
- AcGePoint3d min,max; //这两个参考用于从extents指针中取出内容
- for(pBlkTblItr->start();!pBlkTblItr->done();pBlkTblItr->step())
- //pBlkTblItr是你使用的块表记录浏览器指针
- {
- pBlkTblItr->getEntity(pEnt,AcDb::kForRead);
- if(Acad::eInvalidExtents!=pEnt->getGeomExtents(extents)) /*getGeomExtents()函数在AcDbEntity层次不返回extents对象,因此,若你使用了自定义实体,且在类派生中未重载该函数,将不能得到extents指针,函数返回Acad::eInvalidExtents。*/
- {
- min=extents->minPoint();
- max=extents->maxPoint();
- }
- ....../*在这添加代码,实体pEnt处于以min为左下角,max为右上角的矩形区域中,将此矩形与你规定的矩形进行简单比较,就可判断实体是否满足你的要求,并作进一步处理。若你要选择的实体是类似CAD的交叉窗口选择,以上代码会有缺陷,曲线可能不与规定的矩形区域相交但它的extents区域可能满足条件,此时要利用boudingBoxIntersectWith()函数计算矩形区域与实体的交点来判断。*/
- }
|