Published
Edited
Jan 29, 2022
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Gunnerus.structure.decks.Deck_A.affiliations.group
Insert cell
Insert cell
scale_check_box = gui.addFolder("Check Box List")
Insert cell
Insert cell
modelStyle = {
const modelStructure = {
model: "Ship3D",
displayOutline: true
};

return modelStructure;
}
Insert cell
Insert cell
function toggleElement(element, name) {
if (element.children.lenght == 0) {
return;
}

element.children.forEach(child => {
if (child.group == name) {
// Verify if it is visible trought the masks layers
if (child.layers.mask) {
child.layers.disable(0);
} else {
child.layers.enable(0);
}
}
toggleElement(child, name);
});
}
Insert cell
Insert cell
{
scale_check_box
.add(modelStyle, "displayOutline")
.onChange(newValue => {
toggleElement(scene, "Machinery");
})
.name("Machinery");

scale_check_box
.add(modelStyle, "displayOutline")
.onChange(newValue => {
toggleElement(scene, "Tank");
})
.name("Tank");

scale_check_box
.add(modelStyle, "displayOutline")
.onChange(newValue => {
toggleElement(scene, "Compartment");
})
.name("Compartment");

scale_check_box
.add(modelStyle, "displayOutline")
.onChange(newValue => {
toggleElement(scene, "Deck");
})
.name("Deck");

scale_check_box
.add(modelStyle, "displayOutline")
.onChange(newValue => {
toggleElement(scene, "Bulkheads");
})
.name("Bulkheads");

scale_check_box.open();
}
Insert cell
Insert cell
function switchElement(stringModel) {
scene.children.forEach(element => {
var otherName = {
ModelGLTF: "Ship3D",
Ship3D: "ModelGLTF"
};

if (element.name == otherName[stringModel]) {
scene.remove(element);
}
});

// Switch function
switch (stringModel) {
case "ModelGLTF":
scene.add(ModelGLTF);
scale_check_box.domElement.hidden = true;
break;

case "Ship3D":
scene.add(ship3D);
scale_check_box.domElement.hidden = false;
break;

default:
break;
}
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more