add user toggle of outline

This commit is contained in:
Stewart Allen 2024-09-06 10:22:46 -04:00
commit 424db47bfd
4 changed files with 19 additions and 2 deletions

View file

@ -2742,6 +2742,7 @@ gapp.register("kiri.init", [], (root, exports) => {
$('rot_z_lt').onclick = () => { api.selection.rotate(0,0, d * $('rot_z').value) }; $('rot_z_lt').onclick = () => { api.selection.rotate(0,0, d * $('rot_z').value) };
$('rot_z_gt').onclick = () => { api.selection.rotate(0,0,-d * $('rot_z').value) }; $('rot_z_gt').onclick = () => { api.selection.rotate(0,0,-d * $('rot_z').value) };
// rendering options // rendering options
$('render-outline').onclick = () => { api.view.outline({ toggle: true }) };
$('render-ghost').onclick = () => { api.view.wireframe(false, 0, api.view.is_arrange() ? 0.4 : 0.25); }; $('render-ghost').onclick = () => { api.view.wireframe(false, 0, api.view.is_arrange() ? 0.4 : 0.25); };
$('render-wire').onclick = () => { api.view.wireframe(true, 0, api.space.is_dark() ? 0.25 : 0.5); }; $('render-wire').onclick = () => { api.view.wireframe(true, 0, api.space.is_dark() ? 0.25 : 0.5); };
$('render-solid').onclick = () => { api.view.wireframe(false, 0, 1); }; $('render-solid').onclick = () => { api.view.wireframe(false, 0, 1); };

View file

@ -206,6 +206,7 @@ gapp.register("kiri.main", [], (root, exports) => {
update_speeds: updateSpeeds, update_speeds: updateSpeeds,
hide_slices: hideSlices, hide_slices: hideSlices,
snapshot: null, snapshot: null,
outline: setOutline,
unit_scale: unitScale, unit_scale: unitScale,
wireframe: setWireframe, wireframe: setWireframe,
}, },
@ -387,6 +388,11 @@ gapp.register("kiri.main", [], (root, exports) => {
SPACE.update(); SPACE.update();
} }
function setOutline(bool) {
api.widgets.each(w => w.setOutline(bool));
SPACE.update();
}
function updateSliderMax(set) { function updateSliderMax(set) {
let max = STACKS.getRange().tallest - 1; let max = STACKS.getRange().tallest - 1;
api.var.layer_max = UI.sliderMax.innerText = max; api.var.layer_max = UI.sliderMax.innerText = max;
@ -886,13 +892,16 @@ gapp.register("kiri.main", [], (root, exports) => {
updateSpeeds(); updateSpeeds();
updateSliderMax(); updateSliderMax();
setWidgetVisibility(true); setWidgetVisibility(true);
!isCAM && api.view.outline(false);
break; break;
case VIEWS.PREVIEW: case VIEWS.PREVIEW:
$('act-preview').classList.add('selected'); $('act-preview').classList.add('selected');
setWidgetVisibility(true); setWidgetVisibility(true);
!isCAM && api.view.outline(false);
break; break;
case VIEWS.ANIMATE: case VIEWS.ANIMATE:
$('act-animate').classList.add('selected'); $('act-animate').classList.add('selected');
!isCAM && api.view.outline(false);
break; break;
default: default:
console.log("invalid view mode: "+mode); console.log("invalid view mode: "+mode);

View file

@ -834,16 +834,19 @@ class Widget {
return; return;
} }
let mesh = this.mesh; let mesh = this.mesh;
if (set && set.toggle) {
set = this.outline ? false : true;
}
if (this.outline) { if (this.outline) {
mesh.remove(this.outline); mesh.remove(this.outline);
this.wioutlinere = null; this.outline = null;
} }
if (set) { if (set) {
let dark = api.space.is_dark(); let dark = api.space.is_dark();
let angle = api.conf.get().controller.outline || 20; let angle = api.conf.get().controller.outline || 20;
let edges = new THREE.EdgesGeometry(mesh.geometry, angle); let edges = new THREE.EdgesGeometry(mesh.geometry, angle);
let material = new THREE.LineBasicMaterial({ color: 0x000000 }); let material = new THREE.LineBasicMaterial({ color: 0 });
this.outline = new THREE.LineSegments(edges, material); this.outline = new THREE.LineSegments(edges, material);
mesh.add(this.outline); mesh.add(this.outline);
} }

View file

@ -308,6 +308,10 @@
<i class="fas fa-border-none"></i> <i class="fas fa-border-none"></i>
<div class="pop">render objects transparent</div> <div class="pop">render objects transparent</div>
</span> </span>
<span id="render-outline" class="a-center">
<i class="fa-regular fa-square"></i>
<div class="pop">outline objects</div>
</span>
</div> </div>
</div> </div>