Самый простой способ, который приходит на ум, - это добавить элемент, содержащий ваши логотипы, на холст - для начала посмотрите этот блог здесь .
В основном вам нужно прикрепить изображения к местоположениям комнат, нависающим над холстом, и подпишитесь на событие смены камеры, чтобы настроить их местоположение / координаты для каждого движения камеры. Вы можете получить координаты вашей комнаты, рассчитав их ограничивающие прямоугольники с помощью dbid:
function get2DBounds(dbId, model){
const find2DBounds = function(fragList, fragId, dbId, bc) {
const mesh = fragList.getVizmesh( fragId );
const vbr = new Autodesk.Viewing.Private.VertexBufferReader( mesh.geometry );
vbr.enumGeomsForObject( dbId, bc );
}
const it = model.getData().instanceTree;
const fragList = model.getFragmentList();
let bounds = new THREE.Box3();
let bc = new Autodesk.Viewing.Private.BoundsCallback( bounds );
const dbId2fragId = model.getData().fragments.dbId2fragId;
const fragIds = dbId2fragId[dbId];
if( Array.isArray( fragIds ) ) {
for( let i = 0; i < fragIds.length; i++ ) {
find2DBounds( fragList, fragIds[i], dbId, bc );
}
} else if( typeof fragIds === 'number' ) {
find2DBounds( fragList, fragIds, dbId, bc );
}
return bc.bounds;
}
const boundingBox = get2DBounds( dbId, viewer.model );
const position = boundingBox.center()