change preview output order

This commit is contained in:
Stewart Allen 2020-04-16 13:43:23 -04:00
commit a78751ba59
3 changed files with 46 additions and 35 deletions

View file

@ -269,8 +269,8 @@ let gs_kiri_conf = exports;
outputRetractDwell: 20, outputRetractDwell: 20,
outputBrimCount: 2, outputBrimCount: 2,
outputBrimOffset: 2, outputBrimOffset: 2,
outputShortPoly: 50.0, outputShortPoly: 100.0,
outputMinSpeed: 15.0, outputMinSpeed: 10.0,
outputCoastDist: 0, outputCoastDist: 0,
outputWipeDistance: 0, outputWipeDistance: 0,
outputLayerRetract: false, outputLayerRetract: false,

View file

@ -734,7 +734,7 @@ let gs_kiri_fdm = exports;
output = [], output = [],
outputLength = 0, outputLength = 0,
lastProgress = 0, lastProgress = 0,
decimals = 3, decimals = 5,
progress = 0, progress = 0,
distance = 0, distance = 0,
emitted = 0, emitted = 0,

View file

@ -336,20 +336,6 @@ let gs_kiri_sla = exports;
filedat.writeU16(0x00ff, true); // light pwm (TODO); filedat.writeU16(0x00ff, true); // light pwm (TODO);
filedat.writeU16(0x00ff, true); // light pwm bottom (TODO); filedat.writeU16(0x00ff, true); // light pwm bottom (TODO);
filedat.view.setUint32(hirez, filedat.pos, true);
writePhotonImage({
width: 400,
height: 300,
data: print.sla.done.large
}, filedat);
filedat.view.setUint32(lorez, filedat.pos, true);
writePhotonImage({
width: 200,
height: 125,
data: print.sla.done.small
}, filedat);
let propstart = filedat.pos; let propstart = filedat.pos;
filedat.view.setUint32(proppos, filedat.pos, true); filedat.view.setUint32(proppos, filedat.pos, true);
// write print properties // write print properties
@ -387,10 +373,24 @@ let gs_kiri_sla = exports;
filedat.view.setUint32(layerat[l], filedat.pos, true); filedat.view.setUint32(layerat[l], filedat.pos, true);
let layer = layers[l].sublayers[0]; let layer = layers[l].sublayers[0];
for (let j=0; j<layer.length; j++) { for (let j=0; j<layer.length; j++) {
filedat.writeU8(layer[j], true); filedat.writeU8(layer[j], false);
} }
} }
filedat.view.setUint32(hirez, filedat.pos, true);
writePhotonImage({
width: 400,
height: 300,
data: print.sla.done.large
}, filedat);
filedat.view.setUint32(lorez, filedat.pos, true);
writePhotonImage({
width: 200,
height: 125,
data: print.sla.done.small
}, filedat);
saveAs( saveAs(
new Blob([filebuf], { type: "application/octet-stream" }), new Blob([filebuf], { type: "application/octet-stream" }),
$('print-filename').value + ".photon"); $('print-filename').value + ".photon");
@ -412,7 +412,7 @@ let gs_kiri_sla = exports;
let bits = new Uint8Array(line.length / 4); let bits = new Uint8Array(line.length / 4);
let bitsDV = new DataView(bits.buffer); let bitsDV = new DataView(bits.buffer);
let lineDV = new DataView(line.buffer); let lineDV = new DataView(line.buffer);
// reduce RGB to R // reduce RGB to R = 0||1
for (let i = 0; i < count; i++) { for (let i = 0; i < count; i++) {
// defeat anti-aliasing for the moment // defeat anti-aliasing for the moment
bitsDV.setUint8(i, lineDV.getUint8(i * 4) > 0 ? 1 : 0); bitsDV.setUint8(i, lineDV.getUint8(i * 4) > 0 ? 1 : 0);
@ -463,7 +463,7 @@ let gs_kiri_sla = exports;
filedat.setUint32 (filePos + 24, 2684702720, false); filedat.setUint32 (filePos + 24, 2684702720, false);
filePos += 28; filePos += 28;
for (let j = 0; j < numbytes; j++) { for (let j = 0; j < numbytes; j++) {
filedat.setUint8(filePos + j, sublayer[j]); filedat.setUint8(filePos + j, sublayer[j], false);
} }
filePos += numbytes; filePos += numbytes;
} }
@ -534,7 +534,7 @@ let gs_kiri_sla = exports;
switch (type) { switch (type) {
case 'pws': case 'pws':
case 'photon': case 'photon':
return length | (color * 128); return (length & 0x7f) | ((color << 7) & 0x80);
case 'photons': case 'photons':
length--; length--;
return (length & 1 ? 128 : 0) | return (length & 1 ? 128 : 0) |
@ -547,21 +547,32 @@ let gs_kiri_sla = exports;
} }
} }
function rleDecode(data) { function rleDecode(data, type) {
let bytes = []; let bytes = [];
for (let i = 0; i < data.length; i++) { if (type === 'photon') {
let val = data[i], for (let i = 0; i < data.length; i++) {
col = val & 1, let val = data[i],
count = color = val >> 7,
((val & 128 ? 1 : 0) | count = val & 0x7f;
(val & 64 ? 2 : 0) | for (let j = 0; j < count; j++) {
(val & 32 ? 4 : 0) | bytes.push(color);
(val & 16 ? 8 : 0) | }
(val & 8 ? 16 : 0) | }
(val & 4 ? 32 : 0) | } else {
(val & 2 ? 64 : 0)) + 1; for (let i = 0; i < data.length; i++) {
for (let j = 0; j < count; j++) { let val = data[i],
bytes.push(col); color = val & 1,
count =
((val & 128 ? 1 : 0) |
(val & 64 ? 2 : 0) |
(val & 32 ? 4 : 0) |
(val & 16 ? 8 : 0) |
(val & 8 ? 16 : 0) |
(val & 4 ? 32 : 0) |
(val & 2 ? 64 : 0)) + 1;
for (let j = 0; j < count; j++) {
bytes.push(color);
}
} }
} }
return bytes; return bytes;