Comment puis-je choisir la géométrie qui compose les entités et les mettre en évidence sans toucher l'entité entière elle-même?

  1. FAQ
  2. »
  3. Vectorisation et visualisation dans Visualize

Pour mettre en évidence la géométrie à l'intérieur de l'entité, il est nécessaire de remplir l'élément OdTvSubItemPath. Voyons l'exemple le plus simple. Vous avez une entité avec 'OdTvEntityId entId0' et vous souhaitez mettre en évidence la géométrie 'OdTvGeometryId geomId0'. Cette géométrie devrait certainement faire partie de l'entité entId0. L'élément 'OdTvSubItemPath' doit être construit dans ce cas comme suit:

OdTvEntityIdsArray entityIdsArr;
entityIdsArr.append(entId0);
OdTvGeometryDataIdsArray geoDataIds;
geoDataIds.append(geomId0);
OdTvSubGeometryId subGeoDataId;
OdTvSubItemPath subItemPath(entityIdsArr, geoDataIds, subGeoDataId);

Mais il y a encore une chose. Pour effectuer la sélection/mise en évidence des géométries ou des sous-géométries (faces des coquilles par exemple), il est nécessaire de configurer le niveau de sélectionnabilité approprié pour l'entité concrète ou le modèle entier. Le niveau de sélectionnabilité par défaut suppose la sélection et la mise en surbrillance uniquement pour les entités. Voici un exemple de la façon de définir la sélectionnabilité pour l'ensemble du modèle:

OdTvModelPtr pModel = modelId.openObject(OdTv::kForWrite);
OdTvSelectabilityDef selectability;
selectability.setGeometries(true);
pModel->setSelectability(selectability);