teasing apart monoliths
This commit is contained in:
parent
b8b7ce70d2
commit
85a58f8f50
8 changed files with 489 additions and 434 deletions
3
app.js
3
app.js
|
|
@ -339,6 +339,9 @@ const script = {
|
||||||
"load/file",
|
"load/file",
|
||||||
"moto/broker",
|
"moto/broker",
|
||||||
"moto/webui",
|
"moto/webui",
|
||||||
|
"kiri/consts",
|
||||||
|
"kiri/utils",
|
||||||
|
"kiri/api",
|
||||||
"kiri/ui",
|
"kiri/ui",
|
||||||
"kiri/do",
|
"kiri/do",
|
||||||
"kiri/pack",
|
"kiri/pack",
|
||||||
|
|
|
||||||
33
src/kiri/api.js
Normal file
33
src/kiri/api.js
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
|
||||||
|
const { kiri } = self;
|
||||||
|
const { consts } = kiri;
|
||||||
|
|
||||||
|
const feature = {
|
||||||
|
seed: true, // seed profiles on first use
|
||||||
|
meta: true, // show selected widget metadata
|
||||||
|
frame: true, // receive frame events
|
||||||
|
alert_event: false, // emit alerts as events instead of display
|
||||||
|
controls: true, // show or not side menus
|
||||||
|
device_filter: undefined, // function to limit devices shown
|
||||||
|
drop_group: undefined, // optional array to group multi drop
|
||||||
|
drop_layout: true, // layout on new drop
|
||||||
|
hover: false, // when true fires mouse hover events
|
||||||
|
hoverAdds: false, // when true only searches widget additions
|
||||||
|
on_key: undefined, // function override default key handlers
|
||||||
|
on_load: undefined, // function override file drop loads
|
||||||
|
on_add_stl: undefined, // legacy override stl drop loads
|
||||||
|
work_alerts: true, // allow disabling work progress alerts
|
||||||
|
modes: [ "fdm", "sla", "cam", "laser" ], // enable device modes
|
||||||
|
pmode: consts.PMODES.SPEED // preview modes
|
||||||
|
};
|
||||||
|
|
||||||
|
const api = kiri.api = {
|
||||||
|
feature
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|
@ -251,18 +251,6 @@
|
||||||
normalize,
|
normalize,
|
||||||
device_from_code,
|
device_from_code,
|
||||||
fill_cull_once,
|
fill_cull_once,
|
||||||
// ---------------
|
|
||||||
MODES: {
|
|
||||||
FDM: 1, // fused deposition modeling (also FFF)
|
|
||||||
LASER: 2, // laser cutters
|
|
||||||
CAM: 3, // 3 axis milling/machining
|
|
||||||
SLA: 4 // cured resin printers
|
|
||||||
},
|
|
||||||
VIEWS: {
|
|
||||||
ARRANGE: 1,
|
|
||||||
SLICE: 2,
|
|
||||||
PREVIEW: 3
|
|
||||||
},
|
|
||||||
// --------------- device and process defaults
|
// --------------- device and process defaults
|
||||||
defaults: {
|
defaults: {
|
||||||
fdm:{
|
fdm:{
|
||||||
|
|
|
||||||
133
src/kiri/consts.js
Normal file
133
src/kiri/consts.js
Normal file
|
|
@ -0,0 +1,133 @@
|
||||||
|
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
|
||||||
|
const { kiri } = self;
|
||||||
|
|
||||||
|
const COLOR = {
|
||||||
|
wireframe: 0x444444,
|
||||||
|
wireframe_opacity: 0.25,
|
||||||
|
selected: [ 0xbbff00, 0xbbee00, 0xbbdd00, 0xbb9900 ],
|
||||||
|
deselected: [ 0xffff00, 0xffdd00, 0xffbb00, 0xff9900 ],
|
||||||
|
slicing: 0xffaaaa,
|
||||||
|
preview_opacity: 0.0,
|
||||||
|
model_opacity: 1.0,
|
||||||
|
slicing_opacity: 0.5,
|
||||||
|
sliced_opacity: 0.0,
|
||||||
|
cam_preview: 0x0055bb,
|
||||||
|
cam_preview_opacity: 0.25,
|
||||||
|
cam_sliced_opacity: 0.25
|
||||||
|
};
|
||||||
|
|
||||||
|
const LISTS = {
|
||||||
|
shell: [
|
||||||
|
{ name: "in-out" },
|
||||||
|
{ name: "out-in" },
|
||||||
|
],
|
||||||
|
start: [
|
||||||
|
{ name: "last" },
|
||||||
|
{ name: "center" },
|
||||||
|
{ name: "origin" },
|
||||||
|
],
|
||||||
|
infill: [
|
||||||
|
{ name: "hex" },
|
||||||
|
{ name: "grid" },
|
||||||
|
// { name: "cubic" },
|
||||||
|
{ name: "linear" },
|
||||||
|
{ name: "triangle" },
|
||||||
|
{ name: "gyroid" },
|
||||||
|
{ name: "vase" }
|
||||||
|
],
|
||||||
|
units: [
|
||||||
|
{ name: "mm" },
|
||||||
|
{ name: "in" }
|
||||||
|
],
|
||||||
|
antialias: [
|
||||||
|
{ name: "1", id: 1 },
|
||||||
|
{ name: "2", id: 2 },
|
||||||
|
{ name: "4", id: 4 },
|
||||||
|
{ name: "8", id: 8 }
|
||||||
|
],
|
||||||
|
detail: [
|
||||||
|
{ name: "100" },
|
||||||
|
{ name: "75" },
|
||||||
|
{ name: "50" },
|
||||||
|
{ name: "25" },
|
||||||
|
],
|
||||||
|
linetype: [
|
||||||
|
{ name: "path" },
|
||||||
|
{ name: "flat" },
|
||||||
|
{ name: "line" }
|
||||||
|
],
|
||||||
|
filasrc: [
|
||||||
|
{ name: "direct" },
|
||||||
|
{ name: "palette3" }
|
||||||
|
],
|
||||||
|
animesh: [
|
||||||
|
{ name: "100" },
|
||||||
|
{ name: "200" },
|
||||||
|
{ name: "300" },
|
||||||
|
{ name: "400" },
|
||||||
|
{ name: "500" },
|
||||||
|
{ name: "600" },
|
||||||
|
{ name: "700" },
|
||||||
|
{ name: "800" },
|
||||||
|
{ name: "900" }
|
||||||
|
],
|
||||||
|
trace: [
|
||||||
|
{ name: "follow" },
|
||||||
|
{ name: "clear" }
|
||||||
|
],
|
||||||
|
traceoff: [
|
||||||
|
{ name: "center" },
|
||||||
|
{ name: "inside" },
|
||||||
|
{ name: "outside" }
|
||||||
|
],
|
||||||
|
zanchor: [
|
||||||
|
{ name: "top" },
|
||||||
|
{ name: "middle" },
|
||||||
|
{ name: "bottom" }
|
||||||
|
],
|
||||||
|
regaxis: [
|
||||||
|
{ name: "X" },
|
||||||
|
{ name: "Y" },
|
||||||
|
{ name: "-" }
|
||||||
|
],
|
||||||
|
regpoints: [
|
||||||
|
{ name: "2" },
|
||||||
|
{ name: "3" }
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
// primary device mode
|
||||||
|
const MODES = {
|
||||||
|
FDM: 1, // fused deposition modeling (also FFF)
|
||||||
|
LASER: 2, // laser cutters
|
||||||
|
CAM: 3, // 3 axis milling/machining
|
||||||
|
SLA: 4 // cured resin printers
|
||||||
|
};
|
||||||
|
|
||||||
|
// view mode within device mode
|
||||||
|
const VIEWS = {
|
||||||
|
ARRANGE: 1,
|
||||||
|
SLICE: 2,
|
||||||
|
PREVIEW: 3
|
||||||
|
};
|
||||||
|
|
||||||
|
// preview modes
|
||||||
|
const PMODES = {
|
||||||
|
SPEED: 1,
|
||||||
|
TOOLS: 2
|
||||||
|
};
|
||||||
|
|
||||||
|
kiri.consts = {
|
||||||
|
PMODES,
|
||||||
|
COLOR,
|
||||||
|
LISTS,
|
||||||
|
MODES,
|
||||||
|
VIEWS,
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|
@ -2374,7 +2374,7 @@
|
||||||
if (et.tagName != 'CANVAS' && et.id != 'context-menu') {
|
if (et.tagName != 'CANVAS' && et.id != 'context-menu') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let full = API.view.isArrange();
|
let full = API.view.is_arrange();
|
||||||
for (let key of ["layflat","mirror","duplicate"]) {
|
for (let key of ["layflat","mirror","duplicate"]) {
|
||||||
$(`context-${key}`).disabled = !full;
|
$(`context-${key}`).disabled = !full;
|
||||||
}
|
}
|
||||||
|
|
@ -2667,8 +2667,8 @@
|
||||||
$('rot_z_gt').onclick = () => { API.selection.rotate(0,0,-d) };
|
$('rot_z_gt').onclick = () => { API.selection.rotate(0,0,-d) };
|
||||||
// rendering options
|
// rendering options
|
||||||
$('render-hide').onclick = () => { API.view.wireframe(false, 0, 0); };
|
$('render-hide').onclick = () => { API.view.wireframe(false, 0, 0); };
|
||||||
$('render-ghost').onclick = () => { API.view.wireframe(false, 0, API.view.isArrange() ? 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.isDark() ? 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); };
|
||||||
// mesh buttons
|
// mesh buttons
|
||||||
$('mesh-heal').onclick = () => { API.widgets.heal() };
|
$('mesh-heal').onclick = () => { API.widgets.heal() };
|
||||||
|
|
|
||||||
677
src/kiri/main.js
677
src/kiri/main.js
File diff suppressed because it is too large
Load diff
57
src/kiri/utils.js
Normal file
57
src/kiri/utils.js
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
(function () {
|
||||||
|
|
||||||
|
const { kiri, moto } = self;
|
||||||
|
|
||||||
|
function parseOpt(ov) {
|
||||||
|
let opt = {}, kv, kva;
|
||||||
|
// handle kiri legacy and proper url encoding better
|
||||||
|
ov.replace(/&/g,',').split(',').forEach(function(el) {
|
||||||
|
kv = decodeURIComponent(el).split(':');
|
||||||
|
if (kv.length === 2) {
|
||||||
|
kva = opt[kv[0]] = opt[kv[0]] || [];
|
||||||
|
kva.push(decodeURIComponent(kv[1]));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return opt;
|
||||||
|
}
|
||||||
|
|
||||||
|
function encodeOpt(opt) {
|
||||||
|
let out = [];
|
||||||
|
Object.keys(opt).forEach(key => {
|
||||||
|
if (key === 'ver') return;
|
||||||
|
let val = opt[key];
|
||||||
|
out.push(encodeURIComponent(key) + ":" + encodeURIComponent(val));
|
||||||
|
});
|
||||||
|
return out.length ? '?' + out.join(',') : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
function ajax(url, fn, rt, po, hd) {
|
||||||
|
return new moto.Ajax(fn, rt).request(url, po, hd);
|
||||||
|
}
|
||||||
|
|
||||||
|
function o2js(o,def) {
|
||||||
|
return o ? JSON.stringify(o) : def || null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function js2o(s,def) {
|
||||||
|
try {
|
||||||
|
return s ? JSON.parse(s) : def || null;
|
||||||
|
} catch (e) {
|
||||||
|
console.log({malformed_json:s});
|
||||||
|
return def || null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
kiri.utils = {
|
||||||
|
parseOpt,
|
||||||
|
encodeOpt,
|
||||||
|
ajax,
|
||||||
|
o2js,
|
||||||
|
js2o
|
||||||
|
};
|
||||||
|
|
||||||
|
})();
|
||||||
|
|
@ -976,7 +976,7 @@ console.log/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
||||||
let wire = widget.wire = new THREE.Mesh(mesh.geometry.shallowClone(), mat);
|
let wire = widget.wire = new THREE.Mesh(mesh.geometry.shallowClone(), mat);
|
||||||
mesh.add(wire);
|
mesh.add(wire);
|
||||||
}
|
}
|
||||||
if (KIRI.api.view.get() === KIRI.conf.VIEWS.ARRANGE) {
|
if (KIRI.api.view.get() === KIRI.consts.VIEWS.ARRANGE) {
|
||||||
this.setColor(this.color);
|
this.setColor(this.color);
|
||||||
} else {
|
} else {
|
||||||
this.setColor(0x888888,undefined,false);
|
this.setColor(0x888888,undefined,false);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue