success = (api) => {
api.start(function () {
api.addEventListener("viewerready", function () {
api.getNodeMap(function (err, nodes) {
const hip = getNodeByName(nodes, "M0_16");
const thigh = getNodeByName(nodes, "M1_15");
const gear1 = getNodeByName(nodes, "gear_1_7");
const gear2 = getNodeByName(nodes, "gear_2_11");
const lever = getNodeByName(nodes, "lever_8");
const calf = getNodeByName(nodes, "Calf_3");
const MinAngle1 = -25;
const MaxAngle1 = 30;
const MinAngle2 = -65;
const MaxAngle2 = 80;
const MinAngle3 = -70;
const MaxAngle3 = 35;
document.getElementById("opacity").addEventListener("input", function (event) {
const opacityValue = parseFloat(event.target.value);
api.getMaterialList(function (err, materials) {
const thighMaterial_1 = materials.find(material => material.name === "Thigh");
const thighMaterial_2 = materials.find(material => material.name === "thigh_protection");
thighMaterial_1.channels["Opacity"].factor = opacityValue;
thighMaterial_2.channels["Opacity"].factor = opacityValue;
api.setMaterial(thighMaterial_1);
api.setMaterial(thighMaterial_2);
});
});
document.getElementById("wireframe").addEventListener("change", function (event) {
const wireframeEnabled = event.target.checked;
api.setWireframe(wireframeEnabled);
});
document
.getElementById("slider1")
.addEventListener("input", function (event) {
const sliderValue = parseFloat(event.target.value);
const Angle = sliderValue * (MaxAngle1 - MinAngle1) + MinAngle1;
const angle = degToRad(Angle);
rotateNode(api, hip.instanceID, angle, 1, 0, 0);
});
document
.getElementById("slider2")
.addEventListener("input", function (event) {
const sliderValue = parseFloat(event.target.value);
const Angle = sliderValue * (MaxAngle2 - MinAngle2) + MinAngle2;
const angle = degToRad(Angle);
rotateNode(api, thigh.instanceID, angle, 0, 1, 0);
});
document
.getElementById("slider3")
.addEventListener("input", function (event) {
const sliderValue = parseFloat(event.target.value);
const Angle = sliderValue * (MaxAngle3 - MinAngle3) + MinAngle3;
const angle = degToRad(Angle);
rotateNode(api, lever.instanceID, -angle, 0, 1, 0);
rotateNode(api, gear1.instanceID, -2 * angle, 0, 1, 0);
rotateNode(api, gear2.instanceID, angle, 0, 1, 0);
rotateNode(api, calf.instanceID, angle, 0, 1, 0);
});
});
});
});
};