要高亮实体内部的几何图形,需要填充 OdTvSubItemPath 项。请看一个最简单的示例:假设您有一个实体,其 ID 为 OdTvEntityId entId0,您想高亮显示其内部的几何图形 OdTvGeometryId geomId0(该几何图形必须是实体 entId0 的一部分)。此时,OdTvSubItemPath 应如下构建:
OdTvEntityIdsArray entityIdsArr;
entityIdsArr.append(entId0);
OdTvGeometryDataIdsArray geoDataIds;
geoDataIds.append(geomId0);
OdTvSubGeometryId subGeoDataId;
OdTvSubItemPath subItemPath(entityIdsArr, geoDataIds, subGeoDataId);
但还有一点需要注意:
要对几何图形或子几何图形(例如壳体的面)执行选择/高亮操作,必须为具体实体或整个模型设置相应的可选性(selectability)级别。默认的可选性级别仅支持实体级选择和高亮。以下是为整个模型设置几何图形可选性的示例:level assumes the selection and highlighting only for entities. Here is a sample how to set selectability for the whole model:
OdTvModelPtr pModel = modelId.openObject(OdTv::kForWrite);
OdTvSelectabilityDef selectability;
selectability.setGeometries(true);
pModel->setSelectability(selectability);