geomui 0.5.55 → 0.5.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Drawing.svelte +131 -180
- package/dist/Drawing.svelte.d.ts +6 -24
- package/dist/DrawingList.svelte +20 -28
- package/dist/DrawingList.svelte.d.ts +3 -18
- package/dist/InputParams.svelte +107 -115
- package/dist/InputParams.svelte.d.ts +5 -25
- package/dist/LabelCheckbox.svelte +11 -11
- package/dist/LocStorRead.svelte +13 -7
- package/dist/LocStorRead.svelte.d.ts +3 -18
- package/dist/LocStorTable.svelte +20 -14
- package/dist/LocStorTable.svelte.d.ts +3 -18
- package/dist/LocStorWrite.svelte +10 -19
- package/dist/LocStorWrite.svelte.d.ts +3 -18
- package/dist/ModalDiag.svelte +22 -8
- package/dist/ModalDiag.svelte.d.ts +5 -27
- package/dist/ModalImg.svelte +6 -3
- package/dist/ModalImg.svelte.d.ts +3 -18
- package/dist/OneDesign.svelte +8 -4
- package/dist/OneDesign.svelte.d.ts +3 -18
- package/dist/ParamDrawExport.svelte +103 -37
- package/dist/ParamDrawExport.svelte.d.ts +3 -18
- package/dist/SimpleDrawing.svelte +67 -50
- package/dist/SimpleDrawing.svelte.d.ts +6 -24
- package/dist/SubDesign.svelte +15 -12
- package/dist/SubDesign.svelte.d.ts +6 -21
- package/dist/TimeControl.svelte +17 -10
- package/dist/TimeControl.svelte.d.ts +3 -18
- package/dist/ZoomControl.svelte +11 -21
- package/dist/ZoomControl.svelte.d.ts +4 -19
- package/dist/initStore.js +12 -11
- package/dist/stateDrawing.svelte.d.ts +8 -0
- package/dist/stateDrawing.svelte.js +8 -0
- package/dist/stateParams.svelte.d.ts +5 -0
- package/dist/stateParams.svelte.js +3 -0
- package/package.json +20 -20
- package/dist/drawingLayers.d.ts +0 -2
- package/dist/drawingLayers.js +0 -6
- package/dist/storePVal.d.ts +0 -5
- package/dist/storePVal.js +0 -4
package/dist/Drawing.svelte
CHANGED
|
@@ -2,160 +2,135 @@
|
|
|
2
2
|
import TimeControl from './TimeControl.svelte';
|
|
3
3
|
import ZoomControl from './ZoomControl.svelte';
|
|
4
4
|
import LabelCheckbox from './LabelCheckbox.svelte';
|
|
5
|
-
import type {
|
|
6
|
-
tCanvasAdjust,
|
|
7
|
-
tLayers,
|
|
8
|
-
Figure,
|
|
9
|
-
tParamDef,
|
|
10
|
-
tParamVal,
|
|
11
|
-
tGeomFunc
|
|
12
|
-
} from 'geometrix';
|
|
5
|
+
import type { tCanvasAdjust, tLayers, Figure, tSimTime } from 'geometrix';
|
|
13
6
|
import {
|
|
14
7
|
colors,
|
|
15
8
|
canvas2point,
|
|
9
|
+
adjustCopy,
|
|
16
10
|
adjustCenter,
|
|
17
11
|
adjustRect,
|
|
18
12
|
adjustScale,
|
|
19
|
-
adjustTranslate
|
|
20
|
-
mergeFaces
|
|
13
|
+
adjustTranslate
|
|
21
14
|
} from 'geometrix';
|
|
22
|
-
import {
|
|
23
|
-
import { dLayers } from './drawingLayers';
|
|
15
|
+
import { sDraw } from './stateDrawing.svelte';
|
|
24
16
|
import { onMount } from 'svelte';
|
|
25
17
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
18
|
+
// props
|
|
19
|
+
interface Props {
|
|
20
|
+
pDefSim: tSimTime;
|
|
21
|
+
pFig: Figure;
|
|
22
|
+
simTime?: number;
|
|
23
|
+
}
|
|
24
|
+
let { pDefSim, pFig, simTime = $bindable(0) }: Props = $props();
|
|
25
|
+
|
|
26
|
+
// const
|
|
27
|
+
const canvas_size_min = 400;
|
|
28
|
+
const canvas_size_max = 1200;
|
|
32
29
|
|
|
33
|
-
|
|
34
|
-
let windowWidth: number;
|
|
30
|
+
// state
|
|
31
|
+
let windowWidth: number = $state(canvas_size_min); // TODO5: $state is not needed, but otherwise svelte complains
|
|
32
|
+
// those internal states are bound: no need of $state
|
|
35
33
|
let canvasFull: HTMLCanvasElement;
|
|
36
34
|
let canvasZoom: HTMLCanvasElement;
|
|
37
|
-
const canvas_size_min = 400;
|
|
38
35
|
|
|
39
36
|
// Canavas Figures
|
|
40
|
-
let aFigure: Figure;
|
|
41
37
|
let cAdjust: tCanvasAdjust;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
38
|
+
function canvasRedrawFull(iFig: Figure, iLayers: tLayers) {
|
|
39
|
+
if (canvasFull) {
|
|
40
|
+
const ctx1 = canvasFull.getContext('2d')!;
|
|
41
|
+
ctx1.clearRect(0, 0, ctx1.canvas.width, ctx1.canvas.height);
|
|
42
|
+
try {
|
|
43
|
+
cAdjust = iFig.getAdjustFull(ctx1.canvas.width, ctx1.canvas.height);
|
|
44
|
+
iFig.draw(ctx1, cAdjust, iLayers);
|
|
45
|
+
} catch (emsg) {
|
|
46
|
+
//rGeome.logstr += emsg;
|
|
47
|
+
console.log(emsg);
|
|
48
|
+
}
|
|
49
|
+
// extra drawing
|
|
50
|
+
//point(5, 5).draw(ctx1, cAdjust, 'green');
|
|
51
|
+
//point(5, 15).draw(ctx1, cAdjust, 'blue', 'rectangle');
|
|
52
52
|
}
|
|
53
|
-
// extra drawing
|
|
54
|
-
//point(5, 5).draw(ctx1, cAdjust, 'green');
|
|
55
|
-
//point(5, 15).draw(ctx1, cAdjust, 'blue', 'rectangle');
|
|
56
53
|
}
|
|
57
|
-
function canvasRedrawZoom(iLayers: tLayers) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
54
|
+
function canvasRedrawZoom(iFig: Figure, iZAdjust: tCanvasAdjust, iLayers: tLayers) {
|
|
55
|
+
if (canvasZoom) {
|
|
56
|
+
const ctx2 = canvasZoom.getContext('2d')!;
|
|
57
|
+
ctx2.clearRect(0, 0, ctx2.canvas.width, ctx2.canvas.height);
|
|
58
|
+
try {
|
|
59
|
+
if (iZAdjust === undefined || iZAdjust.init === 0) {
|
|
60
|
+
iZAdjust = iFig.getAdjustZoom(ctx2.canvas.width, ctx2.canvas.height);
|
|
61
|
+
//console.log(`dbg047: init iZAdjust: ${iZAdjust.xMin} ${iZAdjust.yMin}`);
|
|
62
|
+
}
|
|
63
|
+
iFig.draw(ctx2, iZAdjust, iLayers);
|
|
64
|
+
} catch (emsg) {
|
|
65
|
+
//rGeome.logstr += emsg;
|
|
66
|
+
console.log(emsg);
|
|
64
67
|
}
|
|
65
|
-
aFigure.draw(ctx2, zAdjust, iLayers);
|
|
66
|
-
} catch (emsg) {
|
|
67
|
-
//rGeome.logstr += emsg;
|
|
68
|
-
console.log(emsg);
|
|
69
68
|
}
|
|
70
69
|
}
|
|
71
70
|
function canvasSetSize() {
|
|
72
71
|
//console.log(`windowWidth: ${windowWidth}`);
|
|
73
|
-
const
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
const ctxF = canvasFull.getContext('2d')!;
|
|
73
|
+
const ctxZ = canvasZoom.getContext('2d')!;
|
|
74
|
+
const canvas_size = Math.min(Math.max(0.4 * windowWidth, canvas_size_min), canvas_size_max);
|
|
75
|
+
ctxF.canvas.width = canvas_size;
|
|
76
|
+
ctxF.canvas.height = canvas_size;
|
|
77
|
+
ctxZ.canvas.width = canvas_size;
|
|
78
|
+
ctxZ.canvas.height = canvas_size;
|
|
79
|
+
// initialize zAdjust
|
|
80
|
+
sDraw.canvasZWidth = canvas_size;
|
|
81
|
+
if (sDraw.zAdjust.init === 0) {
|
|
82
|
+
sDraw.zAdjust = pFig.getAdjustZoom(ctxZ.canvas.width, ctxZ.canvas.height);
|
|
83
|
+
}
|
|
77
84
|
}
|
|
78
85
|
function canvasResize() {
|
|
79
86
|
canvasSetSize();
|
|
80
|
-
canvasRedrawFull(
|
|
81
|
-
canvasRedrawZoom(
|
|
82
|
-
}
|
|
83
|
-
let domInit = 0;
|
|
84
|
-
function checkFace(iFaces: string[], iFace: string): string {
|
|
85
|
-
let rFace = iFace;
|
|
86
|
-
if (iFaces.length === 0) {
|
|
87
|
-
console.log(`warn404: Drawing has an empty face list`);
|
|
88
|
-
} else {
|
|
89
|
-
//rFace = iFaces[0];
|
|
90
|
-
const FaceList2 = iFaces.slice();
|
|
91
|
-
FaceList2.push(c_ParametrixAll);
|
|
92
|
-
if (!FaceList2.includes(rFace)) {
|
|
93
|
-
//console.log(`warn403: Drawing has an invalid face ${rFace}`);
|
|
94
|
-
rFace = iFaces[0];
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
//console.log(iFaces);
|
|
98
|
-
//console.log(`dbg097: rFace ${rFace}`);
|
|
99
|
-
return rFace;
|
|
100
|
-
}
|
|
101
|
-
function geomRedrawSub(iSimTime: number, pVal: tParamVal, iFace: string, iLayers: tLayers) {
|
|
102
|
-
const FigList = fgeom(iSimTime, pVal).fig;
|
|
103
|
-
const FigListKeys = Object.keys(FigList);
|
|
104
|
-
const sFace = checkFace(FigListKeys, iFace);
|
|
105
|
-
selFace = sFace; // update input select
|
|
106
|
-
if (FigListKeys.includes(sFace)) {
|
|
107
|
-
aFigure = FigList[sFace];
|
|
108
|
-
} else {
|
|
109
|
-
aFigure = mergeFaces(FigList);
|
|
110
|
-
}
|
|
111
|
-
canvasRedrawFull(iLayers);
|
|
112
|
-
canvasRedrawZoom(iLayers);
|
|
87
|
+
canvasRedrawFull(pFig, sDraw.dLayers);
|
|
88
|
+
canvasRedrawZoom(pFig, sDraw.zAdjust, sDraw.dLayers);
|
|
113
89
|
}
|
|
114
|
-
function geomRedraw(
|
|
115
|
-
|
|
90
|
+
function geomRedraw(iFig: Figure, iZAdjust: tCanvasAdjust, iLayers: tLayers) {
|
|
91
|
+
canvasRedrawFull(iFig, iLayers);
|
|
92
|
+
canvasRedrawZoom(iFig, iZAdjust, iLayers);
|
|
116
93
|
}
|
|
94
|
+
// initialization
|
|
117
95
|
onMount(() => {
|
|
118
|
-
// initial drawing
|
|
119
96
|
canvasSetSize();
|
|
120
|
-
geomRedraw(simTime, selFace);
|
|
121
|
-
//paramChange();
|
|
122
|
-
domInit = 1;
|
|
123
97
|
});
|
|
124
|
-
// reactivity on
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
98
|
+
// reactivity on pFig, zAdjust and dLayers
|
|
99
|
+
$effect(() => {
|
|
100
|
+
geomRedraw(pFig, sDraw.zAdjust, sDraw.dLayers);
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
// actions
|
|
130
104
|
// Zoom stories
|
|
131
|
-
function zoomClick(
|
|
132
|
-
//console.log(`dbg094: ${
|
|
133
|
-
|
|
105
|
+
function zoomClick(action: string) {
|
|
106
|
+
//console.log(`dbg094: ${action}`);
|
|
107
|
+
const ctx2 = canvasZoom.getContext('2d')!;
|
|
108
|
+
switch (action) {
|
|
134
109
|
case 'zoomInit':
|
|
135
|
-
zAdjust
|
|
110
|
+
sDraw.zAdjust = pFig.getAdjustZoom(ctx2.canvas.width, ctx2.canvas.height);
|
|
136
111
|
break;
|
|
137
112
|
case 'zoomIn':
|
|
138
|
-
zAdjust = adjustScale(0.7, zAdjust);
|
|
113
|
+
sDraw.zAdjust = adjustScale(0.7, sDraw.zAdjust);
|
|
139
114
|
break;
|
|
140
115
|
case 'zoomOut':
|
|
141
|
-
zAdjust = adjustScale(1.3, zAdjust);
|
|
116
|
+
sDraw.zAdjust = adjustScale(1.3, sDraw.zAdjust);
|
|
142
117
|
break;
|
|
143
118
|
case 'moveLeft':
|
|
144
|
-
zAdjust.xMin += -0.2 * zAdjust.xyDiff;
|
|
119
|
+
sDraw.zAdjust.xMin += -0.2 * sDraw.zAdjust.xyDiff;
|
|
145
120
|
break;
|
|
146
121
|
case 'moveRight':
|
|
147
|
-
zAdjust.xMin += 0.2 * zAdjust.xyDiff;
|
|
122
|
+
sDraw.zAdjust.xMin += 0.2 * sDraw.zAdjust.xyDiff;
|
|
148
123
|
break;
|
|
149
124
|
case 'moveUp':
|
|
150
|
-
zAdjust.yMin += 0.2 * zAdjust.xyDiff;
|
|
125
|
+
sDraw.zAdjust.yMin += 0.2 * sDraw.zAdjust.xyDiff;
|
|
151
126
|
break;
|
|
152
127
|
case 'moveDown':
|
|
153
|
-
zAdjust.yMin += -0.2 * zAdjust.xyDiff;
|
|
128
|
+
sDraw.zAdjust.yMin += -0.2 * sDraw.zAdjust.xyDiff;
|
|
154
129
|
break;
|
|
155
130
|
default:
|
|
156
|
-
console.log(`ERR423: ${
|
|
131
|
+
console.log(`ERR423: ${action} has no case!`);
|
|
157
132
|
}
|
|
158
|
-
canvasRedrawZoom(
|
|
133
|
+
canvasRedrawZoom(pFig, sDraw.zAdjust, sDraw.dLayers);
|
|
159
134
|
}
|
|
160
135
|
// zoom functions on the canvasFull
|
|
161
136
|
interface tMouse {
|
|
@@ -192,8 +167,8 @@
|
|
|
192
167
|
if (diffX < mouseDiffClick && diffY < mouseDiffClick) {
|
|
193
168
|
//console.log(`dbg160: a click at ${eve.offsetX} ${eve.offsetY}`);
|
|
194
169
|
const [px, py] = canvas2point(eve.offsetX, eve.offsetY, cAdjust);
|
|
195
|
-
zAdjust = adjustCenter(px, py, zAdjust);
|
|
196
|
-
geomRedraw(
|
|
170
|
+
sDraw.zAdjust = adjustCenter(px, py, sDraw.zAdjust);
|
|
171
|
+
geomRedraw(pFig, sDraw.zAdjust, sDraw.dLayers);
|
|
197
172
|
}
|
|
198
173
|
if (diffX > mouseDiffClick && diffY > mouseDiffClick) {
|
|
199
174
|
const diffRatio1 = diffX / diffY;
|
|
@@ -202,8 +177,10 @@
|
|
|
202
177
|
//console.log(`dbg160: a selection at ${eve.offsetX} ${eve.offsetY}`);
|
|
203
178
|
const [p1x, p1y] = canvas2point(eve.offsetX, eve.offsetY, cAdjust);
|
|
204
179
|
const [p2x, p2y] = canvas2point(mouseF.offsetX, mouseF.offsetY, cAdjust);
|
|
205
|
-
|
|
206
|
-
|
|
180
|
+
const ctx2 = canvasZoom.getContext('2d')!;
|
|
181
|
+
const w2 = ctx2.canvas.width;
|
|
182
|
+
sDraw.zAdjust = adjustRect(p1x, p1y, p2x, p2y, w2, w2);
|
|
183
|
+
geomRedraw(pFig, sDraw.zAdjust, sDraw.dLayers);
|
|
207
184
|
}
|
|
208
185
|
}
|
|
209
186
|
} else {
|
|
@@ -214,25 +191,27 @@
|
|
|
214
191
|
// just drawing a rectangle to help zooming
|
|
215
192
|
function cFullMouseMove(eve: MouseEvent) {
|
|
216
193
|
//console.log(`dbg179: cFullMouseMove ${eve.offsetX} ${eve.offsetY} ${eve.buttons}`);
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
194
|
+
if (canvasFull) {
|
|
195
|
+
const ctx1 = canvasFull.getContext('2d')!;
|
|
196
|
+
// left click
|
|
197
|
+
if (eve.buttons === 1) {
|
|
198
|
+
const diffX = eve.offsetX - mouseF.offsetX;
|
|
199
|
+
const diffY = eve.offsetY - mouseF.offsetY;
|
|
200
|
+
canvasRedrawFull(pFig, sDraw.dLayers);
|
|
201
|
+
//const ctx1 = canvasFull.getContext('2d') as CanvasRenderingContext2D;
|
|
202
|
+
ctx1.beginPath();
|
|
203
|
+
ctx1.rect(mouseF.offsetX, mouseF.offsetY, diffX, diffY);
|
|
204
|
+
ctx1.strokeStyle = colors.mouse;
|
|
205
|
+
ctx1.stroke();
|
|
206
|
+
}
|
|
207
|
+
// mouse position
|
|
208
|
+
if (sDraw.dLayers.ruler) {
|
|
209
|
+
const [p1x, p1y] = canvas2point(eve.offsetX, eve.offsetY, cAdjust);
|
|
210
|
+
ctx1.clearRect(5, 5, 200, 25);
|
|
211
|
+
ctx1.font = '15px Arial';
|
|
212
|
+
ctx1.fillStyle = colors.ruler;
|
|
213
|
+
ctx1.fillText(`x: ${p1x.toFixed(4)} y: ${p1y.toFixed(4)}`, 5, 20);
|
|
214
|
+
}
|
|
236
215
|
}
|
|
237
216
|
}
|
|
238
217
|
// translate Zoom drawing
|
|
@@ -243,10 +222,10 @@
|
|
|
243
222
|
//console.log(`dbg231: cZoomMouseDn ${eve.offsetX} ${eve.offsetY} ${eve.button}`);
|
|
244
223
|
// left click
|
|
245
224
|
if (eve.button === 0) {
|
|
246
|
-
const [p1x, p1y] = canvas2point(eve.offsetX, eve.offsetY, zAdjust);
|
|
225
|
+
const [p1x, p1y] = canvas2point(eve.offsetX, eve.offsetY, sDraw.zAdjust);
|
|
247
226
|
mouseZx = p1x; // point
|
|
248
227
|
mouseZy = p1y;
|
|
249
|
-
mouseZadjust =
|
|
228
|
+
mouseZadjust = adjustCopy(sDraw.zAdjust); // deepCopy
|
|
250
229
|
//const ctx2 = canvasZoom.getContext('2d') as CanvasRenderingContext2D;
|
|
251
230
|
//const [px, py] = canvas2point(eve.offsetX, eve.offsetY, cAdjust);
|
|
252
231
|
//point(px, py).draw(ctx2, cAdjust, colors.mouse, 'rectangle');
|
|
@@ -257,13 +236,13 @@
|
|
|
257
236
|
// left click
|
|
258
237
|
if (eve.buttons === 1) {
|
|
259
238
|
const [p2x, p2y] = canvas2point(eve.offsetX, eve.offsetY, mouseZadjust);
|
|
260
|
-
zAdjust = adjustTranslate(mouseZx, mouseZy, p2x, p2y, mouseZadjust);
|
|
261
|
-
canvasRedrawZoom(
|
|
239
|
+
sDraw.zAdjust = adjustTranslate(mouseZx, mouseZy, p2x, p2y, mouseZadjust);
|
|
240
|
+
canvasRedrawZoom(pFig, sDraw.zAdjust, sDraw.dLayers);
|
|
262
241
|
} else {
|
|
263
242
|
// mouse position
|
|
264
|
-
if (
|
|
243
|
+
if (sDraw.dLayers.ruler && canvasZoom) {
|
|
265
244
|
const ctx2 = canvasZoom.getContext('2d')!;
|
|
266
|
-
const [p2x, p2y] = canvas2point(eve.offsetX, eve.offsetY, zAdjust);
|
|
245
|
+
const [p2x, p2y] = canvas2point(eve.offsetX, eve.offsetY, sDraw.zAdjust);
|
|
267
246
|
ctx2.clearRect(5, 5, 200, 25);
|
|
268
247
|
ctx2.font = '15px Arial';
|
|
269
248
|
ctx2.fillStyle = colors.ruler;
|
|
@@ -272,26 +251,19 @@
|
|
|
272
251
|
}
|
|
273
252
|
}
|
|
274
253
|
function cZoomWheel(eve: WheelEvent) {
|
|
254
|
+
eve.preventDefault();
|
|
275
255
|
if (eve.deltaY > 0) {
|
|
276
|
-
zAdjust = adjustScale(0.7, zAdjust);
|
|
256
|
+
sDraw.zAdjust = adjustScale(0.7, sDraw.zAdjust);
|
|
277
257
|
} else {
|
|
278
|
-
zAdjust = adjustScale(1.3, zAdjust);
|
|
258
|
+
sDraw.zAdjust = adjustScale(1.3, sDraw.zAdjust);
|
|
279
259
|
}
|
|
280
|
-
canvasRedrawZoom(
|
|
260
|
+
canvasRedrawZoom(pFig, sDraw.zAdjust, sDraw.dLayers);
|
|
281
261
|
}
|
|
282
262
|
</script>
|
|
283
263
|
|
|
284
|
-
|
|
264
|
+
// TODO: onresize is not triggered when the window is maximized
|
|
265
|
+
<svelte:window bind:innerWidth={windowWidth} onresize={canvasResize} />
|
|
285
266
|
<section>
|
|
286
|
-
<h2>
|
|
287
|
-
Drawing
|
|
288
|
-
<select bind:value={selFace}>
|
|
289
|
-
{#each optFaces as optFace}
|
|
290
|
-
<option value={optFace}>{optFace}</option>
|
|
291
|
-
{/each}
|
|
292
|
-
<option value={c_ParametrixAll}>All faces merged</option>
|
|
293
|
-
</select>
|
|
294
|
-
</h2>
|
|
295
267
|
<LabelCheckbox />
|
|
296
268
|
<div class="rack">
|
|
297
269
|
<canvas
|
|
@@ -299,14 +271,14 @@
|
|
|
299
271
|
width={canvas_size_min}
|
|
300
272
|
height={canvas_size_min}
|
|
301
273
|
bind:this={canvasFull}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
274
|
+
onmousedown={cFullMouseDn}
|
|
275
|
+
onmouseup={cFullMouseUp}
|
|
276
|
+
onmousemove={cFullMouseMove}
|
|
305
277
|
></canvas>
|
|
306
278
|
<TimeControl
|
|
307
|
-
tMax={
|
|
308
|
-
tStep={
|
|
309
|
-
tUpdate={
|
|
279
|
+
tMax={pDefSim.tMax}
|
|
280
|
+
tStep={pDefSim.tStep}
|
|
281
|
+
tUpdate={pDefSim.tUpdate}
|
|
310
282
|
bind:simTime
|
|
311
283
|
/>
|
|
312
284
|
</div>
|
|
@@ -316,11 +288,11 @@
|
|
|
316
288
|
width={canvas_size_min}
|
|
317
289
|
height={canvas_size_min}
|
|
318
290
|
bind:this={canvasZoom}
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
291
|
+
onmousedown={cZoomMouseDn}
|
|
292
|
+
onmousemove={cZoomMouseMove}
|
|
293
|
+
onwheel={cZoomWheel}
|
|
322
294
|
></canvas>
|
|
323
|
-
<ZoomControl
|
|
295
|
+
<ZoomControl {zoomClick} />
|
|
324
296
|
</div>
|
|
325
297
|
</section>
|
|
326
298
|
|
|
@@ -332,27 +304,6 @@ $canvas-point: grey;
|
|
|
332
304
|
colorCanvasPoint: $canvas-point;
|
|
333
305
|
}
|
|
334
306
|
*/
|
|
335
|
-
section > h2 {
|
|
336
|
-
color: grey;
|
|
337
|
-
margin: 1rem 0.5rem 0;
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
section > h2 > select {
|
|
341
|
-
/*display: inline-block;*/
|
|
342
|
-
height: 1.6rem;
|
|
343
|
-
/*width: 1.6rem;*/
|
|
344
|
-
color: darkBlue;
|
|
345
|
-
font-size: 0.8rem;
|
|
346
|
-
font-weight: 400;
|
|
347
|
-
padding: 0.2rem 0.4rem 0.2rem;
|
|
348
|
-
border-style: solid;
|
|
349
|
-
border-width: 0.1rem;
|
|
350
|
-
border-radius: 0.2rem;
|
|
351
|
-
border-color: darkBlue;
|
|
352
|
-
margin: 0.5rem;
|
|
353
|
-
background-color: lightBlue;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
307
|
section > div.rack {
|
|
357
308
|
display: inline-block;
|
|
358
309
|
margin: 0 1rem 0;
|
package/dist/Drawing.svelte.d.ts
CHANGED
|
@@ -1,26 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
} & Exports;
|
|
6
|
-
(internal: unknown, props: Props & {
|
|
7
|
-
$$events?: Events;
|
|
8
|
-
$$slots?: Slots;
|
|
9
|
-
}): Exports & {
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
declare const Drawing: $$__sveltets_2_IsomorphicComponent<{
|
|
16
|
-
pDef: tParamDef;
|
|
17
|
-
fgeom: tGeomFunc;
|
|
18
|
-
optFaces: string[];
|
|
19
|
-
selFace: string;
|
|
20
|
-
zAdjust: tCanvasAdjust;
|
|
1
|
+
import type { Figure, tSimTime } from 'geometrix';
|
|
2
|
+
declare const Drawing: import("svelte").Component<{
|
|
3
|
+
pDefSim: tSimTime;
|
|
4
|
+
pFig: Figure;
|
|
21
5
|
simTime?: number;
|
|
22
|
-
}, {
|
|
23
|
-
|
|
24
|
-
}, {}, {}, string>;
|
|
25
|
-
type Drawing = InstanceType<typeof Drawing>;
|
|
6
|
+
}, {}, "simTime">;
|
|
7
|
+
type Drawing = ReturnType<typeof Drawing>;
|
|
26
8
|
export default Drawing;
|
package/dist/DrawingList.svelte
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { tParamDef } from 'geometrix';
|
|
3
3
|
import ModalImg from './ModalImg.svelte';
|
|
4
|
-
//import { onMount } from 'svelte';
|
|
5
|
-
//import { browser } from '$app/environment';
|
|
6
4
|
import { base } from '$app/paths';
|
|
7
5
|
|
|
8
|
-
|
|
6
|
+
// props
|
|
7
|
+
interface Props {
|
|
8
|
+
pDef: tParamDef;
|
|
9
|
+
}
|
|
10
|
+
let { pDef }: Props = $props();
|
|
9
11
|
|
|
10
12
|
// helper function
|
|
11
13
|
function getSvgList(ipDef: tParamDef): string[] {
|
|
@@ -17,36 +19,26 @@
|
|
|
17
19
|
}
|
|
18
20
|
return rList;
|
|
19
21
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
return rList2;
|
|
31
|
-
}
|
|
32
|
-
// initialization
|
|
33
|
-
let lSvg: string[] = [];
|
|
34
|
-
// reactivity
|
|
35
|
-
$: lSvg = getSvgList2(pDef.partName);
|
|
36
|
-
// modalImg
|
|
37
|
-
let modalImg = false;
|
|
38
|
-
let svgPath: string;
|
|
22
|
+
|
|
23
|
+
// state
|
|
24
|
+
let sModalImg: boolean = $state(false);
|
|
25
|
+
let sSvgPath: string = $state('');
|
|
26
|
+
|
|
27
|
+
// derived
|
|
28
|
+
let dSvgList: string[] = $derived(getSvgList(pDef).map((iSvg) => `${base}/pgdsvg/${iSvg}`));
|
|
29
|
+
|
|
30
|
+
// actions
|
|
39
31
|
function showSvg(iSvgPath: string) {
|
|
40
|
-
|
|
41
|
-
//console.log(`dbg231:
|
|
42
|
-
|
|
32
|
+
sSvgPath = iSvgPath;
|
|
33
|
+
//console.log(`dbg231: sSvgPath: ${sSvgPath}`);
|
|
34
|
+
sModalImg = true;
|
|
43
35
|
}
|
|
44
36
|
</script>
|
|
45
37
|
|
|
46
38
|
<section>
|
|
47
|
-
<ModalImg bind:modalOpen={
|
|
48
|
-
{#each
|
|
49
|
-
<button
|
|
39
|
+
<ModalImg bind:modalOpen={sModalImg} svgPath={sSvgPath} />
|
|
40
|
+
{#each dSvgList as iSvg}
|
|
41
|
+
<button onclick={() => showSvg(iSvg)}>
|
|
50
42
|
<img src={iSvg} alt={iSvg} />
|
|
51
43
|
</button>
|
|
52
44
|
{/each}
|
|
@@ -1,21 +1,6 @@
|
|
|
1
1
|
import type { tParamDef } from 'geometrix';
|
|
2
|
-
|
|
3
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
-
$$bindings?: Bindings;
|
|
5
|
-
} & Exports;
|
|
6
|
-
(internal: unknown, props: Props & {
|
|
7
|
-
$$events?: Events;
|
|
8
|
-
$$slots?: Slots;
|
|
9
|
-
}): Exports & {
|
|
10
|
-
$set?: any;
|
|
11
|
-
$on?: any;
|
|
12
|
-
};
|
|
13
|
-
z_$$bindings?: Bindings;
|
|
14
|
-
}
|
|
15
|
-
declare const DrawingList: $$__sveltets_2_IsomorphicComponent<{
|
|
2
|
+
declare const DrawingList: import("svelte").Component<{
|
|
16
3
|
pDef: tParamDef;
|
|
17
|
-
}, {
|
|
18
|
-
|
|
19
|
-
}, {}, {}, string>;
|
|
20
|
-
type DrawingList = InstanceType<typeof DrawingList>;
|
|
4
|
+
}, {}, "">;
|
|
5
|
+
type DrawingList = ReturnType<typeof DrawingList>;
|
|
21
6
|
export default DrawingList;
|