Здравствуйте, извините за запоздалый ответ.
Ни в одном из файлов .js, а также с помощью отладчика не смог найти функцию, отвечающую за обработку открытых аннтоаций.
Это все находится внутри самого движка v3d.js, который минифицирован. Кроме того, в аннотациях это поведение вшито, поэтому просто поменять не получится.
Но фактически там только меняется стиль visibility у соответствующих элементов, поэтому можно переопределить CSS у всех аннотаций в сцене, после того как она была загружена, например в функции runCode стандартного шаблона приложения:
function annotationOverrideVisibility(obj) {
// классы с "visibility: hidden!important;" и
// "visibility: visible!important;"
var FORCE_VISIBLE_CLASS = 'v3d-annotation-dialog--visible';
var FORCE_HIDDEN_CLASS = 'v3d-annotation-dialog--hidden';
// при старте форсируем hidden!important
obj.annotationDialog.classList.add(FORCE_HIDDEN_CLASS);
obj.annotation.addEventListener('click', function() {
// при клике переключаем между hidden!important и visible!important
obj.annotationDialog.classList.toggle(FORCE_VISIBLE_CLASS);
obj.annotationDialog.classList.toggle(FORCE_HIDDEN_CLASS);
});
}
function runCode(app) {
// бежим по всей сцене
app.scene.traverse(function(obj) {
if (obj.isAnnotation) {
// обрабатываем каждую аннотацию
annotationOverrideVisibility(obj);
}
});
}
Ключевой момент в том, чтобы использовать стили с important для visibility, чтобы переопределить скрытие аннотаций автоматом, например добавив в CSS:
.v3d-annotation-dialog--hidden {
visibility: hidden!important;
}
.v3d-annotation-dialog--visible {
visibility: visible!important;
}
Co-founder and lead developer at Soft8Soft.