До Forge Viewer v3.3, к сожалению, Viewer3D#select( dbIds, selectionType)
не использовался для многомодельного варианта использования.Второй аргумент Viewer3D#select
был изменен на Viewer3D#select( dbIds, model )
.Таким образом, приведенные ниже фрагменты кода будут изменены на:
var scene = viewer.impl.modelQueue();
var models = scene.getModels();
var targetIndex = ...;
var targetModel = models[targetIndex];
var selectionType = ...;
// Method 1:
viewer.impl.selector.setSelection( dbIds, targetModel, selectionType );
// Method 2:
model.selector.select( dbIds, selectionType );
// Method 3: (After Forge Viewer v4)
viewer.select( dbIds, targetModel );
// Method 4: (After Forge Viewer v4)
var selections = [
{
model: targetModel,
ids: dbIds
}
];
viewer.impl.selector.setAggregateSelection( selections );
==== Конец обновления ====
К сожалению, Viewer3D#select
не быловыставлены для многомодельного варианта использования.Тем не менее, существует несколько способов выбора элементов через API в мультимодельной среде:
var scene = viewer.impl.modelQueue();
var models = scene.getModels();
var targetIndex = ...;
var targetModel = models[targetIndex];
var selectionType = ...;
// Method 1:
viewer.impl.selector.setSelection( dbIds, targetModel, selectionType );
// Method 2:
model.selector.select( dbIds, selectionType );
// Method 3: (After Forge Viewer v4)
var selections = [
{
model: targetModel,
ids: dbIds
}
];
viewer.impl.selector.setAggregateSelection( selections );
Или вы можете написать свой собственный класс Viewer, который расширяет Autodesk.Viewing.Viewer3D
или Autodesk.Viewing.Private.GuiViewer3D
для частного и select
функция, поддерживающая передачу аргумента model
.