diff --git a/src/kiri-mode/cam/animate.js b/src/kiri-mode/cam/animate.js
index 894d6829..4b6c088c 100644
--- a/src/kiri-mode/cam/animate.js
+++ b/src/kiri-mode/cam/animate.js
@@ -67,6 +67,7 @@ kiri.load(() => {
playButton,
modelButton,
shadeButton,
+ transButton,
posOffset = { x:0, y:0, z:0 };
const { moto } = root;
@@ -103,6 +104,7 @@ kiri.load(() => {
progress = UC.newLabel('0%', {class:"progress"}),
modelButton = UC.newButton(null,toggleModel,{icon:'',title:"show model",class:"padleft"}),
shadeButton = UC.newButton(null,toggleStock,{icon:'',title:"stock box"}),
+ transButton = UC.newButton(null,toggleTrans,{icon:'',title:"transparency"}),
]);
speedIndex = api.local.getInt('cam.anim.speed') || 0;
updateSpeed();
@@ -115,6 +117,7 @@ kiri.load(() => {
api.event.emit('animate', 'CAM');
api.alerts.hide(alert);
moto.space.platform.showGridBelow(false);
+ toggleTrans(0,api.local.getBoolean('cam.anim.trans', true));
toggleModel(0,api.local.getBoolean('cam.anim.model', false));
toggleStock(0,api.local.getBoolean('cam.anim.stock', false));
});
@@ -186,9 +189,7 @@ kiri.load(() => {
});
mesh = new THREE.LineSegments(geo, mat);
} else {
- if (!material.flatShading) {
- geo.computeVertexNormals();
- }
+ geo.computeVertexNormals();
mesh = new THREE.Mesh(geo, material);
mesh.renderOrder = -10;
}
@@ -220,6 +221,12 @@ kiri.load(() => {
return api.event.emit('cam.stock.toggle', bool ?? undefined);
}
+ function toggleTrans(ev,bool) {
+ bool = api.local.toggle('cam.anim.trans', bool);
+ material.transparent = bool;
+ material.needsUpdate = true;
+ }
+
function step() {
updateSpeed();
kiri.client.animate({speed, steps: 1}, handleGridUpdate);
diff --git a/src/kiri/conf.js b/src/kiri/conf.js
index b41ce78c..1aeff6b2 100644
--- a/src/kiri/conf.js
+++ b/src/kiri/conf.js
@@ -956,6 +956,7 @@ const conf = exports({
// legacy localStorage settings (like octo print)
local: {
'model.edges': false,
+ 'cam.anim.trans': false,
'cam.anim.model': false,
'cam.anim.stock': false,
'cam.anim.speed': 3