Skip to content

Commit 9de20ff

Browse files
committed
Cleanups
1 parent 4b41806 commit 9de20ff

File tree

3 files changed

+14
-50
lines changed

3 files changed

+14
-50
lines changed

demo/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ <h1 class="text-center m-3 mb-5">GCode Preview
244244
v-model="enableDevMode" type="checkbox" /> </div>
245245
<div class="absolute left bottom m-3 has-text-grey slide-in-up">Drop a gcode file to preview it</div>
246246
<div class="wrapper">
247-
<canvas class="preview" :class="{ 'dragging': settings.dragging }" @update.prevent="update"></canvas>
247+
<canvas class="preview" :class="{ 'dragging': settings.dragging }"></canvas>
248248
</div>
249249
</div>
250250
<script type="importmap">

demo/js/app.js

Lines changed: 7 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -35,31 +35,10 @@ export const app = (window.app = createApp({
3535

3636
const removeColor = () => settings.value.colors.pop();
3737

38-
const update = async (evt) => {
39-
model.value = {
40-
name: evt.detail.filename
41-
};
42-
applyDevMode(enableDevMode.value); // HACK: force dev mode to update UI
43-
updateUI();
44-
};
45-
4638
// Update UI with current preview settings
4739
const updateUI = async () => {
48-
const { parser, sceneManager, countLayers } = preview;
49-
const {
50-
topLayerColor,
51-
lastSegmentColor,
52-
buildVolume,
53-
singleLayerMode,
54-
renderTravel,
55-
travelColor,
56-
renderExtrusion,
57-
lineWidth,
58-
renderTubes,
59-
extrusionWidth,
60-
extrusionColor,
61-
backgroundColor
62-
} = sceneManager;
40+
console.log('Updating UI');
41+
const { parser, countLayers, sceneManager } = preview;
6342
const { thumbnails } = parser.metadata;
6443

6544
// thumbnail.value = thumbnails['220x124']?.src;
@@ -70,33 +49,14 @@ export const app = (window.app = createApp({
7049
thumbnail.value = thumbnails[largestThumbnailKey]?.src;
7150

7251
layerCount.value = countLayers;
73-
const colors = extrusionColor instanceof Array ? extrusionColor : [extrusionColor];
52+
sceneManager.endLayer = countLayers;
53+
7454
const currentSettings = {
75-
startLayer: 1,
76-
enableStartLayer: false,
7755
maxLayer: countLayers || 1000,
78-
endLayer: countLayers,
79-
enableEndLayer: false,
80-
singleLayerMode,
81-
renderTravel,
82-
travelColor: '#' + travelColor.getHexString(),
83-
renderExtrusion,
84-
lineWidth,
85-
renderTubes,
86-
extrusionWidth,
87-
colors: colors.map((c) => '#' + c.getHexString()),
88-
topLayerColor: '#' + topLayerColor?.getHexString(),
89-
highlightTopLayer: !!topLayerColor,
90-
lastSegmentColor: '#' + lastSegmentColor?.getHexString(),
91-
highlightLastSegment: !!lastSegmentColor,
92-
buildVolume: buildVolume,
93-
drawBuildVolume: !!buildVolume,
94-
backgroundColor: '#' + backgroundColor.getHexString()
56+
endLayer: countLayers
9557
};
9658

97-
console.debug('app settings:', currentSettings);
9859
Object.assign(settings.value, currentSettings);
99-
sceneManager.endLayer = countLayers;
10060

10161
applyDevMode(enableDevMode.value);
10262
};
@@ -166,8 +126,8 @@ export const app = (window.app = createApp({
166126
observer = new ResizeObserver(() => preview.sceneManager.resize());
167127
observer.observe(canvas);
168128

169-
// to update the layer count
170-
preview.addEventListener('jobUpdated', () => {
129+
// to update the layer count and the thumbnail when available
130+
preview.addEventListener(['jobUpdated', 'streamReadEnd'], () => {
171131
updateUI();
172132
});
173133

@@ -248,7 +208,6 @@ export const app = (window.app = createApp({
248208
selectTab,
249209
addColor,
250210
removeColor,
251-
update,
252211
resetUI: updateUI,
253212
loadGCodeFromServer,
254213
selectPreset

src/gcode-preview.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,13 @@ type LibOptions = {
1919
};
2020

2121
export type GCodePreviewOptions = LibOptions & SceneManagerOptions;
22+
enum GCodePreviewEvent {
23+
STREAM_READ_END = 'streamReadEnd'
24+
}
2225
export const EventName = {
2326
...SceneManagerEvent,
24-
...InterpreterEvent
27+
...InterpreterEvent,
28+
...GCodePreviewEvent
2529
};
2630

2731
export type EventNameType = (typeof EventName)[keyof typeof EventName];
@@ -203,6 +207,7 @@ export class GCodePreview {
203207
} while (!result.done);
204208

205209
console.debug('total read from stream', Math.floor(size / 1024), 'kB');
210+
this.eventsDispatcher.emit(EventName.STREAM_READ_END, null);
206211
}
207212

208213
/**

0 commit comments

Comments
 (0)