const CollectionList = {
list_collections: [],
init: () => {
// Peuple lors du chargement du .blend
},
set_collections: (list_raw) => {
CollectionList.list_collections = [];
if (!list_raw || list_raw.length === 0) {
CollectionList.render();
let obj_badge = document.getElementById("badge_collection_count");
obj_badge.textContent = "0";
return;
}
for (let obj_raw of list_raw) {
let is_hidden = obj_raw.is_hide_render || obj_raw.is_exclude;
CollectionList.list_collections.push({
str_name: obj_raw.str_name,
nb_depth: obj_raw.nb_depth,
is_original_hide_render: is_hidden,
is_original_exclude: obj_raw.is_exclude,
is_hide_render: is_hidden,
has_override: false,
});
}
CollectionList.render();
let obj_badge = document.getElementById("badge_collection_count");
obj_badge.textContent = String(CollectionList.list_collections.length);
},
get_overrides: () => {
let list_overrides = [];
for (let obj_col of CollectionList.list_collections) {
list_overrides.push({
str_name: obj_col.str_name,
is_hide_render: obj_col.is_hide_render,
});
}
return list_overrides;
},
render: () => {
let obj_container = document.getElementById("container_collection_list");
obj_container.innerHTML = "";
if (CollectionList.list_collections.length === 0) {
obj_container.innerHTML = '
'
+ ''
+ "Chargez un fichier .blend"
+ "
";
return;
}
for (let obj_col of CollectionList.list_collections) {
let obj_item = document.createElement("div");
obj_item.classList.add("list-group-item", "bg-dark", "text-light",
"border-secondary", "d-flex", "align-items-center", "gap-2", "py-1");
let nb_padding = 0.75 + obj_col.nb_depth * 1.2;
obj_item.style.paddingLeft = nb_padding + "rem";
let obj_checkbox = document.createElement("input");
obj_checkbox.type = "checkbox";
obj_checkbox.classList.add("form-check-input");
obj_checkbox.checked = !obj_col.is_hide_render;
obj_checkbox.addEventListener("change", () => {
obj_col.is_hide_render = !obj_checkbox.checked;
obj_col.has_override = (obj_col.is_hide_render !== obj_col.is_original_hide_render);
CollectionList.render();
});
let obj_icon = document.createElement("i");
obj_icon.classList.add("mdi");
if (obj_col.is_hide_render) {
obj_icon.classList.add("mdi-folder-off-outline", "text-muted");
} else {
obj_icon.classList.add("mdi-folder-outline");
}
let obj_label = document.createElement("span");
obj_label.classList.add("flex-grow-1", "collection-name");
obj_label.textContent = obj_col.str_name;
if (obj_col.is_hide_render) {
obj_label.classList.add("text-muted");
}
let obj_indicator = document.createElement("small");
obj_indicator.classList.add("collection-original-badge");
if (obj_col.has_override) {
obj_indicator.classList.add("text-warning");
obj_indicator.innerHTML = '';
obj_indicator.title = "Modifie (original : "
+ (obj_col.is_original_hide_render ? "masque" : "visible") + ")";
} else if (obj_col.is_original_hide_render) {
obj_indicator.classList.add("text-muted");
obj_indicator.innerHTML = '';
obj_indicator.title = "Masque dans le .blend";
}
obj_item.appendChild(obj_checkbox);
obj_item.appendChild(obj_icon);
obj_item.appendChild(obj_label);
obj_item.appendChild(obj_indicator);
obj_container.appendChild(obj_item);
}
},
reset_to_original: () => {
for (let obj_col of CollectionList.list_collections) {
obj_col.is_hide_render = obj_col.is_original_hide_render;
obj_col.has_override = false;
}
CollectionList.render();
},
clear: () => {
CollectionList.list_collections = [];
let obj_container = document.getElementById("container_collection_list");
obj_container.innerHTML = ''
+ ''
+ "Chargez un fichier .blend"
+ "
";
let obj_badge = document.getElementById("badge_collection_count");
obj_badge.textContent = "0";
},
};